firebird/firebird-2.5.1-svn-CORE-3610.patch

32 lines
833 B
Diff

--- src/jrd/vio.cpp 2011/09/29 03:27:33 53487
+++ jrd/vio.cpp 2011/09/29 07:45:12 53488
@@ -1821,7 +1821,6 @@
bool VIO_get_current(thread_db* tdbb,
- //record_param* old_rpb,
record_param* rpb,
jrd_tra* transaction,
MemoryPool* pool,
@@ -2025,12 +2024,14 @@
if (rpb->rpb_flags & rpb_deleted)
return !foreign_key;
- if (rpb->rpb_flags & rpb_uk_modified)
- return !foreign_key;
-
- // clear lock error from status vector
- fb_utils::init_status(tdbb->tdbb_status_vector);
- return true;
+ if (foreign_key)
+ {
+ // clear lock error from status vector
+ fb_utils::init_status(tdbb->tdbb_status_vector);
+ return !(rpb->rpb_flags & rpb_uk_modified);
+ }
+
+ return !foreign_key;
case tra_dead:
if (transaction->tra_attachment->att_flags & ATT_no_cleanup) {