mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
medium int printout support
This commit is contained in:
parent
1fb285db3a
commit
8927dc83c9
4 changed files with 76 additions and 2 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
*
|
||||
|
|
@ -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.
|
||||
*
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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…
Add table
Add a link
Reference in a new issue