Loading mysql-test/r/ndb_restore_print.result +18 −0 Original line number Diff line number Diff line Loading @@ -298,6 +298,24 @@ t4 4 34 5 35 drop table t1; create table t1 (pk int key ,a1 MEDIUMINT, a2 MEDIUMINT UNSIGNED ) engine ndb; insert into t1 values(1, 8388607, 16777215); insert into t1 values(2, -8388608, 0); insert into t1 values(3, -1, 1); CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP; DELETE FROM test.backup_info; LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ','; SELECT @the_backup_id:=backup_id FROM test.backup_info; @the_backup_id:=backup_id <the_backup_id> DROP TABLE test.backup_info; 1;8388607;16777215 2;-8388608;0 3;-1;1 drop table t1; drop table t2; drop table t3; drop table t4; mysql-test/t/ndb_restore_print.test +21 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,27 @@ insert into t4 values (1,31),(2,32),(3,33),(4,34),(5,35); --exec rm -f $MYSQLTEST_VARDIR/tmp/t3.txt --exec rm -f $MYSQLTEST_VARDIR/tmp/t4.txt # now test some other datatypes drop table t1; create table t1 (pk int key ,a1 MEDIUMINT, a2 MEDIUMINT UNSIGNED ) engine ndb; # max values insert into t1 values(1, 8388607, 16777215); # min values insert into t1 values(2, -8388608, 0); # small values insert into t1 values(3, -1, 1); # backup and print --source include/ndb_backup.inc --let ndb_restore_filter=test t1 --let ndb_restore_opts=--verbose=0 --print_data --hex --fields-terminated-by=";" --source include/ndb_backup_print.inc # clean up drop table t1; drop table t2; Loading ndb/include/ndbapi/NdbRecAttr.hpp +31 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,13 @@ public: */ Int32 int32_value() const; /** * Get value stored in NdbRecAttr object. * * @return Medium value. */ Int32 medium_value() const; /** * Get value stored in NdbRecAttr object. * Loading Loading @@ -173,6 +180,13 @@ public: */ Uint32 u_32_value() const; /** * Get value stored in NdbRecAttr object. * * @return Unsigned medium value. */ Uint32 u_medium_value() const; /** * Get value stored in NdbRecAttr object. * Loading Loading @@ -318,6 +332,16 @@ NdbRecAttr::int32_value() const return *(Int32*)theRef; } inline Int32 NdbRecAttr::medium_value() const { Uint32 tmp = *(Uint32*)theRef; if (tmp & (0x1<<23)) tmp|= (0xFF<<24); return (Int32)tmp; } inline short NdbRecAttr::short_value() const Loading @@ -339,6 +363,13 @@ NdbRecAttr::u_32_value() const return *(Uint32*)theRef; } inline Uint32 NdbRecAttr::u_medium_value() const { return *(Uint32*)theRef; } inline Uint16 NdbRecAttr::u_short_value() const Loading ndb/src/ndbapi/NdbRecAttr.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -265,6 +265,9 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r, if (length > 1) out << f.end_array_enclosure; break; case NdbDictionary::Column::Mediumunsigned: out << r.u_medium_value(); break; case NdbDictionary::Column::Smallunsigned: out << r.u_short_value(); break; Loading @@ -277,6 +280,9 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r, case NdbDictionary::Column::Int: out << r.int32_value(); break; case NdbDictionary::Column::Mediumint: out << r.medium_value(); break; case NdbDictionary::Column::Smallint: out << r.short_value(); break; Loading Loading @@ -463,8 +469,6 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r, break; case NdbDictionary::Column::Undefined: case NdbDictionary::Column::Mediumint: case NdbDictionary::Column::Mediumunsigned: unknown: //default: /* no print functions for the rest, just print type */ out << (int) r.getType(); Loading Loading
mysql-test/r/ndb_restore_print.result +18 −0 Original line number Diff line number Diff line Loading @@ -298,6 +298,24 @@ t4 4 34 5 35 drop table t1; create table t1 (pk int key ,a1 MEDIUMINT, a2 MEDIUMINT UNSIGNED ) engine ndb; insert into t1 values(1, 8388607, 16777215); insert into t1 values(2, -8388608, 0); insert into t1 values(3, -1, 1); CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE = HEAP; DELETE FROM test.backup_info; LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ','; SELECT @the_backup_id:=backup_id FROM test.backup_info; @the_backup_id:=backup_id <the_backup_id> DROP TABLE test.backup_info; 1;8388607;16777215 2;-8388608;0 3;-1;1 drop table t1; drop table t2; drop table t3; drop table t4;
mysql-test/t/ndb_restore_print.test +21 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,27 @@ insert into t4 values (1,31),(2,32),(3,33),(4,34),(5,35); --exec rm -f $MYSQLTEST_VARDIR/tmp/t3.txt --exec rm -f $MYSQLTEST_VARDIR/tmp/t4.txt # now test some other datatypes drop table t1; create table t1 (pk int key ,a1 MEDIUMINT, a2 MEDIUMINT UNSIGNED ) engine ndb; # max values insert into t1 values(1, 8388607, 16777215); # min values insert into t1 values(2, -8388608, 0); # small values insert into t1 values(3, -1, 1); # backup and print --source include/ndb_backup.inc --let ndb_restore_filter=test t1 --let ndb_restore_opts=--verbose=0 --print_data --hex --fields-terminated-by=";" --source include/ndb_backup_print.inc # clean up drop table t1; drop table t2; Loading
ndb/include/ndbapi/NdbRecAttr.hpp +31 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,13 @@ public: */ Int32 int32_value() const; /** * Get value stored in NdbRecAttr object. * * @return Medium value. */ Int32 medium_value() const; /** * Get value stored in NdbRecAttr object. * Loading Loading @@ -173,6 +180,13 @@ public: */ Uint32 u_32_value() const; /** * Get value stored in NdbRecAttr object. * * @return Unsigned medium value. */ Uint32 u_medium_value() const; /** * Get value stored in NdbRecAttr object. * Loading Loading @@ -318,6 +332,16 @@ NdbRecAttr::int32_value() const return *(Int32*)theRef; } inline Int32 NdbRecAttr::medium_value() const { Uint32 tmp = *(Uint32*)theRef; if (tmp & (0x1<<23)) tmp|= (0xFF<<24); return (Int32)tmp; } inline short NdbRecAttr::short_value() const Loading @@ -339,6 +363,13 @@ NdbRecAttr::u_32_value() const return *(Uint32*)theRef; } inline Uint32 NdbRecAttr::u_medium_value() const { return *(Uint32*)theRef; } inline Uint16 NdbRecAttr::u_short_value() const Loading
ndb/src/ndbapi/NdbRecAttr.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -265,6 +265,9 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r, if (length > 1) out << f.end_array_enclosure; break; case NdbDictionary::Column::Mediumunsigned: out << r.u_medium_value(); break; case NdbDictionary::Column::Smallunsigned: out << r.u_short_value(); break; Loading @@ -277,6 +280,9 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r, case NdbDictionary::Column::Int: out << r.int32_value(); break; case NdbDictionary::Column::Mediumint: out << r.medium_value(); break; case NdbDictionary::Column::Smallint: out << r.short_value(); break; Loading Loading @@ -463,8 +469,6 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r, break; case NdbDictionary::Column::Undefined: case NdbDictionary::Column::Mediumint: case NdbDictionary::Column::Mediumunsigned: unknown: //default: /* no print functions for the rest, just print type */ out << (int) r.getType(); Loading