Loading mysql-test/r/ndb_index_ordered.result +16 −0 Original line number Diff line number Diff line Loading @@ -420,3 +420,19 @@ count(*)-8 select count(*)-9 from t1 use index (ti) where ti <= '23:59:59'; count(*)-9 0 drop table t1; create table t1(a int primary key, b int not null, index(b)); insert into t1 values (1,1), (2,2); set autocommit=0; begin; select count(*) from t1; count(*) 2 ALTER TABLE t1 ADD COLUMN c int; select a from t1 where b = 2; a 2 show tables; Tables_in_test t1 drop table t1; mysql-test/t/ndb_index_ordered.test +18 −0 Original line number Diff line number Diff line Loading @@ -236,3 +236,21 @@ select count(*)-5 from t1 use index (ti) where ti < '10:11:11'; select count(*)-6 from t1 use index (ti) where ti <= '10:11:11'; select count(*)-8 from t1 use index (ti) where ti < '23:59:59'; select count(*)-9 from t1 use index (ti) where ti <= '23:59:59'; drop table t1; # bug#7798 create table t1(a int primary key, b int not null, index(b)); insert into t1 values (1,1), (2,2); connect (con1,localhost,,,test); connect (con2,localhost,,,test); connection con1; set autocommit=0; begin; select count(*) from t1; connection con2; ALTER TABLE t1 ADD COLUMN c int; connection con1; select a from t1 where b = 2; show tables; drop table t1; ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +23 −5 Original line number Diff line number Diff line Loading @@ -1879,7 +1879,6 @@ void Dbtc::packKeyData000Lab(Signal* signal, Uint32 totalLen) { CacheRecord * const regCachePtr = cachePtr.p; UintR Tmp; jam(); Uint32 len = 0; Loading Loading @@ -8503,14 +8502,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal) apiConnectptr.i = scanTabReq->apiConnectPtr; tabptr.i = scanTabReq->tableId; if (apiConnectptr.i >= capiConnectFilesize || tabptr.i >= ctabrecFilesize) { if (apiConnectptr.i >= capiConnectFilesize) { jam(); warningHandlerLab(signal); return; }//if ptrAss(apiConnectptr, apiConnectRecord); ApiConnectRecord * transP = apiConnectptr.p; if (transP->apiConnectstate != CS_CONNECTED) { jam(); // could be left over from TCKEYREQ rollback Loading @@ -8524,9 +8525,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal) } else { jam(); errCode = ZSTATE_ERROR; goto SCAN_TAB_error; goto SCAN_TAB_error_no_state_change; } } if(tabptr.i >= ctabrecFilesize) { errCode = ZUNKNOWN_TABLE_ERROR; goto SCAN_TAB_error; } ptrAss(tabptr, tableRecord); if ((aiLength == 0) || (!tabptr.p->checkTable(schemaVersion)) || Loading Loading @@ -8623,6 +8631,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal) SCAN_TAB_error: jam(); /** * Prepare for up coming ATTRINFO/KEYINFO */ transP->apiConnectstate = CS_ABORTING; transP->abortState = AS_IDLE; transP->transid[0] = transid1; transP->transid[1] = transid2; SCAN_TAB_error_no_state_change: ScanTabRef * ref = (ScanTabRef*)&signal->theData[0]; ref->apiConnectPtr = transP->ndbapiConnect; ref->transId1 = transid1; Loading Loading
mysql-test/r/ndb_index_ordered.result +16 −0 Original line number Diff line number Diff line Loading @@ -420,3 +420,19 @@ count(*)-8 select count(*)-9 from t1 use index (ti) where ti <= '23:59:59'; count(*)-9 0 drop table t1; create table t1(a int primary key, b int not null, index(b)); insert into t1 values (1,1), (2,2); set autocommit=0; begin; select count(*) from t1; count(*) 2 ALTER TABLE t1 ADD COLUMN c int; select a from t1 where b = 2; a 2 show tables; Tables_in_test t1 drop table t1;
mysql-test/t/ndb_index_ordered.test +18 −0 Original line number Diff line number Diff line Loading @@ -236,3 +236,21 @@ select count(*)-5 from t1 use index (ti) where ti < '10:11:11'; select count(*)-6 from t1 use index (ti) where ti <= '10:11:11'; select count(*)-8 from t1 use index (ti) where ti < '23:59:59'; select count(*)-9 from t1 use index (ti) where ti <= '23:59:59'; drop table t1; # bug#7798 create table t1(a int primary key, b int not null, index(b)); insert into t1 values (1,1), (2,2); connect (con1,localhost,,,test); connect (con2,localhost,,,test); connection con1; set autocommit=0; begin; select count(*) from t1; connection con2; ALTER TABLE t1 ADD COLUMN c int; connection con1; select a from t1 where b = 2; show tables; drop table t1;
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +23 −5 Original line number Diff line number Diff line Loading @@ -1879,7 +1879,6 @@ void Dbtc::packKeyData000Lab(Signal* signal, Uint32 totalLen) { CacheRecord * const regCachePtr = cachePtr.p; UintR Tmp; jam(); Uint32 len = 0; Loading Loading @@ -8503,14 +8502,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal) apiConnectptr.i = scanTabReq->apiConnectPtr; tabptr.i = scanTabReq->tableId; if (apiConnectptr.i >= capiConnectFilesize || tabptr.i >= ctabrecFilesize) { if (apiConnectptr.i >= capiConnectFilesize) { jam(); warningHandlerLab(signal); return; }//if ptrAss(apiConnectptr, apiConnectRecord); ApiConnectRecord * transP = apiConnectptr.p; if (transP->apiConnectstate != CS_CONNECTED) { jam(); // could be left over from TCKEYREQ rollback Loading @@ -8524,9 +8525,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal) } else { jam(); errCode = ZSTATE_ERROR; goto SCAN_TAB_error; goto SCAN_TAB_error_no_state_change; } } if(tabptr.i >= ctabrecFilesize) { errCode = ZUNKNOWN_TABLE_ERROR; goto SCAN_TAB_error; } ptrAss(tabptr, tableRecord); if ((aiLength == 0) || (!tabptr.p->checkTable(schemaVersion)) || Loading Loading @@ -8623,6 +8631,16 @@ void Dbtc::execSCAN_TABREQ(Signal* signal) SCAN_TAB_error: jam(); /** * Prepare for up coming ATTRINFO/KEYINFO */ transP->apiConnectstate = CS_ABORTING; transP->abortState = AS_IDLE; transP->transid[0] = transid1; transP->transid[1] = transid2; SCAN_TAB_error_no_state_change: ScanTabRef * ref = (ScanTabRef*)&signal->theData[0]; ref->apiConnectPtr = transP->ndbapiConnect; ref->transId1 = transid1; Loading