8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-24 14:03:02 +01:00

Backport fix for bug CORE-3100 : Wait mode and lock timeout of external transaction of EXECUTE STATEMENT not matched to corresponding parameters of local transaction

This commit is contained in:
hvlad 2010-08-07 21:29:43 +00:00
parent 70ad7ef699
commit 2dbab9603b
2 changed files with 4 additions and 3 deletions

View File

@ -215,6 +215,7 @@ ClumpletReader::ClumpletType ClumpletReader::getClumpletType(UCHAR tag) const
{
case isc_tpb_lock_write:
case isc_tpb_lock_read:
case isc_tpb_lock_timeout:
return TraditionalDpb;
}
return SingleTpb;

View File

@ -583,7 +583,7 @@ void Transaction::generateTPB(thread_db* tdbb, ClumpletWriter& tpb,
tpb.insertTag(readOnly ? isc_tpb_read : isc_tpb_write);
tpb.insertTag(wait ? isc_tpb_wait : isc_tpb_nowait);
if (wait && lockTimeout)
if (wait && lockTimeout && lockTimeout != DEFAULT_LOCK_TIMEOUT)
tpb.insertInt(isc_tpb_lock_timeout, lockTimeout);
}
@ -688,8 +688,8 @@ Transaction* Transaction::getTransaction(thread_db* tdbb, Connection* conn, TraS
tra_scope,
traMode,
tran->tra_flags & TRA_readonly,
tran->getLockWait() == DEFAULT_LOCK_TIMEOUT,
tran->getLockWait()
tran->getLockWait() != 0,
-tran->getLockWait()
);
}
catch (const Exception&)