Loading mysql-test/suite/ndb/r/ndb_auto_increment.result +3 −3 Original line number Diff line number Diff line Loading @@ -421,10 +421,10 @@ select * from t1 order by a; a 1 20 21 33 34 35 65 insert into t1 values (100); insert into t1 values (NULL); insert into t1 values (NULL); Loading @@ -432,11 +432,11 @@ select * from t1 order by a; a 1 20 21 22 33 34 35 65 66 100 101 set auto_increment_offset = @old_auto_increment_offset; Loading mysql-test/suite/ndb/r/ndb_restore.result +35 −15 Original line number Diff line number Diff line Loading @@ -253,21 +253,41 @@ a 2000 3000 10000 show table status like 't1_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 3001 X X X X X X X show table status like 't2_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 501 X X X X X X X show table status like 't4_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 290000001 X X X X X X X show table status like 't7_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 29 X X X X X X X show table status like 't10_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 10001 X X X X X X X select max(capgoaledatta) from t1_c; max(capgoaledatta) 3000 select auto_increment from information_schema.tables where table_name = 't1_c'; auto_increment 3001 select max(capgotod) from t2_c; max(capgotod) 500 select auto_increment from information_schema.tables where table_name = 't2_c'; auto_increment 501 select max(capfa) from t4_c; max(capfa) 290000000 select auto_increment from information_schema.tables where table_name = 't4_c'; auto_increment 290000001 select max(dardtestard) from t7_c; max(dardtestard) 28 select auto_increment from information_schema.tables where table_name = 't7_c'; auto_increment 29 select max(a) from t10_c; max(a) 10000 select auto_increment from information_schema.tables where table_name = 't10_c'; auto_increment 10001 ALTER TABLE t7_c PARTITION BY LINEAR KEY (`dardtestard`); CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP; Loading mysql-test/suite/ndb/t/ndb_restore.test +15 −10 Original line number Diff line number Diff line Loading @@ -246,16 +246,21 @@ select count(*) select * from t10_c order by a; # Bug #27775 cont'd # - auto inc info should be correct --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't1_c'; --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't2_c'; --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't4_c'; --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't7_c'; --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't10_c'; select max(capgoaledatta) from t1_c; select auto_increment from information_schema.tables where table_name = 't1_c'; select max(capgotod) from t2_c; select auto_increment from information_schema.tables where table_name = 't2_c'; select max(capfa) from t4_c; select auto_increment from information_schema.tables where table_name = 't4_c'; select max(dardtestard) from t7_c; select auto_increment from information_schema.tables where table_name = 't7_c'; select max(a) from t10_c; select auto_increment from information_schema.tables where table_name = 't10_c'; # # Try Partitioned tables as well Loading sql/ha_ndbcluster.cc +7 −4 Original line number Diff line number Diff line Loading @@ -2738,10 +2738,13 @@ ha_ndbcluster::set_auto_inc(Field *field) ("Trying to set next auto increment value to %s", llstr(next_val, buff))); #endif if (ndb->checkUpdateAutoIncrementValue(m_share->tuple_id_range, next_val)) { Ndb_tuple_id_range_guard g(m_share); if (ndb->setAutoIncrementValue(m_table, g.range, next_val, TRUE) == -1) ERR_RETURN(ndb->getNdbError()); } DBUG_RETURN(0); } Loading storage/ndb/include/ndbapi/Ndb.hpp +16 −11 Original line number Diff line number Diff line Loading @@ -1515,37 +1515,40 @@ public: TupleIdRange() {} Uint64 m_first_tuple_id; Uint64 m_last_tuple_id; Uint64 m_highest_seen; void reset() { m_first_tuple_id = ~(Uint64)0; m_last_tuple_id = ~(Uint64)0; m_highest_seen = 0; }; }; int initAutoIncrement(); int getAutoIncrementValue(const char* aTableName, Uint64 & tupleId, Uint32 cacheSize, Uint64 & autoValue, Uint32 cacheSize, Uint64 step = 1, Uint64 start = 1); int getAutoIncrementValue(const NdbDictionary::Table * aTable, Uint64 & tupleId, Uint32 cacheSize, Uint64 & autoValue, Uint32 cacheSize, Uint64 step = 1, Uint64 start = 1); int getAutoIncrementValue(const NdbDictionary::Table * aTable, TupleIdRange & range, Uint64 & tupleId, TupleIdRange & range, Uint64 & autoValue, Uint32 cacheSize, Uint64 step = 1, Uint64 start = 1); int readAutoIncrementValue(const char* aTableName, Uint64 & tupleId); Uint64 & autoValue); int readAutoIncrementValue(const NdbDictionary::Table * aTable, Uint64 & tupleId); Uint64 & autoValue); int readAutoIncrementValue(const NdbDictionary::Table * aTable, TupleIdRange & range, Uint64 & tupleId); TupleIdRange & range, Uint64 & autoValue); int setAutoIncrementValue(const char* aTableName, Uint64 tupleId, bool increase); Uint64 autoValue, bool modify); int setAutoIncrementValue(const NdbDictionary::Table * aTable, Uint64 tupleId, bool increase); Uint64 autoValue, bool modify); int setAutoIncrementValue(const NdbDictionary::Table * aTable, TupleIdRange & range, Uint64 tupleId, bool increase); TupleIdRange & range, Uint64 autoValue, bool modify); bool checkUpdateAutoIncrementValue(TupleIdRange & range, Uint64 autoValue); private: int getTupleIdFromNdb(const NdbTableImpl* table, TupleIdRange & range, Uint64 & tupleId, Loading @@ -1553,7 +1556,9 @@ private: int readTupleIdFromNdb(const NdbTableImpl* table, TupleIdRange & range, Uint64 & tupleId); int setTupleIdInNdb(const NdbTableImpl* table, TupleIdRange & range, Uint64 tupleId, bool increase); TupleIdRange & range, Uint64 tupleId, bool modify); int checkTupleIdInNdb(TupleIdRange & range, Uint64 tupleId); int opTupleIdOnNdb(const NdbTableImpl* table, TupleIdRange & range, Uint64 & opValue, Uint32 op); public: Loading Loading
mysql-test/suite/ndb/r/ndb_auto_increment.result +3 −3 Original line number Diff line number Diff line Loading @@ -421,10 +421,10 @@ select * from t1 order by a; a 1 20 21 33 34 35 65 insert into t1 values (100); insert into t1 values (NULL); insert into t1 values (NULL); Loading @@ -432,11 +432,11 @@ select * from t1 order by a; a 1 20 21 22 33 34 35 65 66 100 101 set auto_increment_offset = @old_auto_increment_offset; Loading
mysql-test/suite/ndb/r/ndb_restore.result +35 −15 Original line number Diff line number Diff line Loading @@ -253,21 +253,41 @@ a 2000 3000 10000 show table status like 't1_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 3001 X X X X X X X show table status like 't2_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 501 X X X X X X X show table status like 't4_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 290000001 X X X X X X X show table status like 't7_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 29 X X X X X X X show table status like 't10_c'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment X X X X X X X X X X 10001 X X X X X X X select max(capgoaledatta) from t1_c; max(capgoaledatta) 3000 select auto_increment from information_schema.tables where table_name = 't1_c'; auto_increment 3001 select max(capgotod) from t2_c; max(capgotod) 500 select auto_increment from information_schema.tables where table_name = 't2_c'; auto_increment 501 select max(capfa) from t4_c; max(capfa) 290000000 select auto_increment from information_schema.tables where table_name = 't4_c'; auto_increment 290000001 select max(dardtestard) from t7_c; max(dardtestard) 28 select auto_increment from information_schema.tables where table_name = 't7_c'; auto_increment 29 select max(a) from t10_c; max(a) 10000 select auto_increment from information_schema.tables where table_name = 't10_c'; auto_increment 10001 ALTER TABLE t7_c PARTITION BY LINEAR KEY (`dardtestard`); CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP; Loading
mysql-test/suite/ndb/t/ndb_restore.test +15 −10 Original line number Diff line number Diff line Loading @@ -246,16 +246,21 @@ select count(*) select * from t10_c order by a; # Bug #27775 cont'd # - auto inc info should be correct --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't1_c'; --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't2_c'; --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't4_c'; --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't7_c'; --replace_column 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 12 X 13 X 14 X 15 X 16 X 17 X 18 X show table status like 't10_c'; select max(capgoaledatta) from t1_c; select auto_increment from information_schema.tables where table_name = 't1_c'; select max(capgotod) from t2_c; select auto_increment from information_schema.tables where table_name = 't2_c'; select max(capfa) from t4_c; select auto_increment from information_schema.tables where table_name = 't4_c'; select max(dardtestard) from t7_c; select auto_increment from information_schema.tables where table_name = 't7_c'; select max(a) from t10_c; select auto_increment from information_schema.tables where table_name = 't10_c'; # # Try Partitioned tables as well Loading
sql/ha_ndbcluster.cc +7 −4 Original line number Diff line number Diff line Loading @@ -2738,10 +2738,13 @@ ha_ndbcluster::set_auto_inc(Field *field) ("Trying to set next auto increment value to %s", llstr(next_val, buff))); #endif if (ndb->checkUpdateAutoIncrementValue(m_share->tuple_id_range, next_val)) { Ndb_tuple_id_range_guard g(m_share); if (ndb->setAutoIncrementValue(m_table, g.range, next_val, TRUE) == -1) ERR_RETURN(ndb->getNdbError()); } DBUG_RETURN(0); } Loading
storage/ndb/include/ndbapi/Ndb.hpp +16 −11 Original line number Diff line number Diff line Loading @@ -1515,37 +1515,40 @@ public: TupleIdRange() {} Uint64 m_first_tuple_id; Uint64 m_last_tuple_id; Uint64 m_highest_seen; void reset() { m_first_tuple_id = ~(Uint64)0; m_last_tuple_id = ~(Uint64)0; m_highest_seen = 0; }; }; int initAutoIncrement(); int getAutoIncrementValue(const char* aTableName, Uint64 & tupleId, Uint32 cacheSize, Uint64 & autoValue, Uint32 cacheSize, Uint64 step = 1, Uint64 start = 1); int getAutoIncrementValue(const NdbDictionary::Table * aTable, Uint64 & tupleId, Uint32 cacheSize, Uint64 & autoValue, Uint32 cacheSize, Uint64 step = 1, Uint64 start = 1); int getAutoIncrementValue(const NdbDictionary::Table * aTable, TupleIdRange & range, Uint64 & tupleId, TupleIdRange & range, Uint64 & autoValue, Uint32 cacheSize, Uint64 step = 1, Uint64 start = 1); int readAutoIncrementValue(const char* aTableName, Uint64 & tupleId); Uint64 & autoValue); int readAutoIncrementValue(const NdbDictionary::Table * aTable, Uint64 & tupleId); Uint64 & autoValue); int readAutoIncrementValue(const NdbDictionary::Table * aTable, TupleIdRange & range, Uint64 & tupleId); TupleIdRange & range, Uint64 & autoValue); int setAutoIncrementValue(const char* aTableName, Uint64 tupleId, bool increase); Uint64 autoValue, bool modify); int setAutoIncrementValue(const NdbDictionary::Table * aTable, Uint64 tupleId, bool increase); Uint64 autoValue, bool modify); int setAutoIncrementValue(const NdbDictionary::Table * aTable, TupleIdRange & range, Uint64 tupleId, bool increase); TupleIdRange & range, Uint64 autoValue, bool modify); bool checkUpdateAutoIncrementValue(TupleIdRange & range, Uint64 autoValue); private: int getTupleIdFromNdb(const NdbTableImpl* table, TupleIdRange & range, Uint64 & tupleId, Loading @@ -1553,7 +1556,9 @@ private: int readTupleIdFromNdb(const NdbTableImpl* table, TupleIdRange & range, Uint64 & tupleId); int setTupleIdInNdb(const NdbTableImpl* table, TupleIdRange & range, Uint64 tupleId, bool increase); TupleIdRange & range, Uint64 tupleId, bool modify); int checkTupleIdInNdb(TupleIdRange & range, Uint64 tupleId); int opTupleIdOnNdb(const NdbTableImpl* table, TupleIdRange & range, Uint64 & opValue, Uint32 op); public: Loading