-
unknown authored
The old blob implementation had code that attempted to upgrade the lock mode for LM_CommittedRead operations, but it did not work properly as it did not recompute the operation flags. As a consequence, reading a blob with LM_CommittedRead could return inconsistent data, with different part of the read data being from different commits done by other transactions. The fix is to correctly recompute all necessary flags when upgrading lock mode. ndb/include/kernel/signaldata/ScanTab.hpp: Remove assumption in setXXX() methods that old value is zero, needed to allow blob code to upgrade lock mode. Fix spelling and commments. ndb/include/ndbapi/NdbOperation.hpp: Add method to change lock mode, to allow blob code to upgrade lock mode. ndb/include/ndbapi/NdbScanOperation.hpp: Add method to change lock mode, to allow blob code to upgrade lock mode. ndb/src/ndbapi/NdbBlob.cpp: Fix upgrading lock mode (old code had no effect). ndb/src/ndbapi/NdbOperationDefine.cpp: Add method to change lock mode, to allow blob code to upgrade lock mode. ndb/src/ndbapi/NdbScanOperation.cpp: Add method to change lock mode, to allow blob code to upgrade lock mode. ndb/test/ndbapi/testBlobs.cpp: Add testcase. ndb/test/run-test/daily-basic-tests.txt: Enable bug tests for auto test.
2dedc1cd