mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 02:03:04 +01:00
Misc
This commit is contained in:
parent
af54b59e3c
commit
d6e4b53865
@ -406,6 +406,7 @@
|
||||
#
|
||||
#BugcheckAbort = 0
|
||||
|
||||
|
||||
# Prior to Firebird 2.5 the SET clause of the UPDATE statement assigned
|
||||
# columns in the user-defined order with the NEW column values being
|
||||
# immediately accessible to the subsequent assignments. This did not
|
||||
|
@ -689,4 +689,3 @@ static void alice_output(const SCHAR* format, ...)
|
||||
|
||||
tdgbl->uSvc->outputError(buf.c_str());
|
||||
}
|
||||
|
||||
|
@ -1067,7 +1067,7 @@ int gbak(Firebird::UtilSvc* uSvc)
|
||||
{
|
||||
if (f->fil_name == "stdout")
|
||||
{
|
||||
// the very first thing to do not to corrupt backup file...
|
||||
// the very first thing to do to not corrupt backup file...
|
||||
tdgbl->uSvc->setDataMode(true);
|
||||
}
|
||||
}
|
||||
@ -1529,13 +1529,16 @@ void BURP_print_status(const ISC_STATUS* status_vector, bool flagStuff)
|
||||
* to allow redirecting output.
|
||||
*
|
||||
**************************************/
|
||||
if (status_vector) {
|
||||
if (status_vector)
|
||||
{
|
||||
const ISC_STATUS* vector = status_vector;
|
||||
|
||||
if (flagStuff) {
|
||||
if (flagStuff)
|
||||
{
|
||||
BurpGlobals* tdgbl = BurpGlobals::getSpecific();
|
||||
tdgbl->uSvc->setServiceStatus(vector);
|
||||
tdgbl->uSvc->started();
|
||||
|
||||
if (tdgbl->uSvc->isService())
|
||||
{
|
||||
return;
|
||||
@ -1543,10 +1546,13 @@ void BURP_print_status(const ISC_STATUS* status_vector, bool flagStuff)
|
||||
}
|
||||
|
||||
SCHAR s[1024];
|
||||
if (fb_interpret(s, sizeof(s), &vector)) {
|
||||
if (fb_interpret(s, sizeof(s), &vector))
|
||||
{
|
||||
BURP_msg_partial(true, 256); // msg 256: gbak: ERROR:
|
||||
burp_output(true, "%s\n", s);
|
||||
while (fb_interpret(s, sizeof(s), &vector)) {
|
||||
|
||||
while (fb_interpret(s, sizeof(s), &vector))
|
||||
{
|
||||
BURP_msg_partial(true, 256); // msg 256: gbak: ERROR:
|
||||
burp_output(true, " %s\n", s);
|
||||
}
|
||||
@ -1573,13 +1579,18 @@ void BURP_print_warning(const ISC_STATUS* status_vector)
|
||||
// skip the error, assert that one does not exist
|
||||
fb_assert(status_vector[0] == isc_arg_gds);
|
||||
fb_assert(status_vector[1] == 0);
|
||||
|
||||
// print the warning message
|
||||
const ISC_STATUS* vector = &status_vector[2];
|
||||
SCHAR s[1024];
|
||||
if (fb_interpret(s, sizeof(s), &vector)) {
|
||||
|
||||
if (fb_interpret(s, sizeof(s), &vector))
|
||||
{
|
||||
BURP_msg_partial(true, 255); // msg 255: gbak: WARNING:
|
||||
burp_output(true, "%s\n", s);
|
||||
while (fb_interpret(s, sizeof(s), &vector)) {
|
||||
|
||||
while (fb_interpret(s, sizeof(s), &vector))
|
||||
{
|
||||
BURP_msg_partial(true, 255); // msg 255: gbak: WARNING:
|
||||
burp_output(true, " %s\n", s);
|
||||
}
|
||||
|
@ -48,4 +48,3 @@ void BURP_verbose(USHORT, const MsgFormat::SafeArg& arg = MsgFormat::SafeArg());
|
||||
void BURP_verbose(USHORT, const char* str);
|
||||
|
||||
#endif // BURP_BURP_PROTO_H
|
||||
|
||||
|
@ -74,7 +74,7 @@ public:
|
||||
{
|
||||
outputFile(usvcDataMode ? stderr : stdout, text);
|
||||
}
|
||||
|
||||
|
||||
void outputError(const char* text)
|
||||
{
|
||||
outputFile(stderr, text);
|
||||
@ -85,7 +85,7 @@ public:
|
||||
fb_assert(usvcDataMode);
|
||||
outputFile(stdout, data, size);
|
||||
}
|
||||
|
||||
|
||||
virtual void printf(bool err, const SCHAR* format, ...)
|
||||
{
|
||||
va_list arglist;
|
||||
|
@ -71,6 +71,7 @@ public:
|
||||
virtual void hidePasswd(ArgvType&, int) = 0;
|
||||
virtual void getAddressPath(Firebird::ClumpletWriter& dpb) = 0;
|
||||
virtual bool finished() = 0;
|
||||
|
||||
void setDataMode(bool value)
|
||||
{
|
||||
usvcDataMode = value;
|
||||
@ -108,5 +109,4 @@ public:
|
||||
|
||||
} // namespace Firebird
|
||||
|
||||
|
||||
#endif // FB_UTILFACE
|
||||
|
@ -162,10 +162,10 @@ typedef Hash<
|
||||
//
|
||||
// Deferred work item:
|
||||
// * Encapsulates deferred invocation of the task routine with a given set of
|
||||
// arguments.
|
||||
// arguments.
|
||||
// * Has code to maintain a doubly linked list of itself.
|
||||
//
|
||||
// These two functions need to be split, and linked list of custom entries can
|
||||
// These two functions need to be split, and linked list of custom entries can
|
||||
// become generic.
|
||||
//
|
||||
|
||||
|
@ -4464,9 +4464,9 @@ bool JRD_reschedule(thread_db* tdbb, SLONG quantum, bool punt)
|
||||
dbb->dbb_ast_flags &= ~DBB_monitor_off;
|
||||
LCK_lock(tdbb, dbb->dbb_monitor_lock, LCK_SR, LCK_WAIT);
|
||||
|
||||
// While waiting for return from LCK_lock call above the blocking AST (see
|
||||
// DatabaseSnapshot::blockingAst) was called and set DBB_monitor_off flag
|
||||
// again. But it not released lock as lck_id was unknown at that moment.
|
||||
// While waiting for return from LCK_lock call above, the blocking AST (see
|
||||
// DatabaseSnapshot::blockingAst) was called and set DBB_monitor_off flag
|
||||
// again. But it do not released lock as lck_id was unknown at that moment.
|
||||
// Do it now to not block another process waiting for a monitoring lock.
|
||||
|
||||
if (dbb->dbb_ast_flags & DBB_monitor_off)
|
||||
|
@ -673,8 +673,10 @@ bool VIO_chase_record_version(thread_db* tdbb, record_param* rpb,
|
||||
|
||||
CCH_RELEASE(tdbb, &rpb->getWindow(tdbb));
|
||||
state = TRA_wait(tdbb, transaction, rpb->rpb_transaction_nr, jrd_tra::tra_wait);
|
||||
if (state == tra_active) {
|
||||
ERR_post(Arg::Gds(isc_deadlock) <<
|
||||
|
||||
if (state == tra_active)
|
||||
{
|
||||
ERR_post(Arg::Gds(isc_deadlock) <<
|
||||
Arg::Gds(isc_concurrent_transaction) << Arg::Num(rpb->rpb_transaction_nr));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user