diff options
author | unknown <bell@sanja.is.com.ua> | 2005-04-01 02:14:30 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2005-04-01 02:14:30 +0300 |
commit | c831a156ceb2d392ba84ac9bfbee18318b11f333 (patch) | |
tree | bfd8839a822ffd9c3bcccaa970cc506139ae4a9c /sql/field.cc | |
parent | 8a898a0b72ad14b87608c84f6b775eb586a070a2 (diff) | |
download | mariadb-git-c831a156ceb2d392ba84ac9bfbee18318b11f333.tar.gz |
postmerge 4.1->5.0 fixes
mysql-test/r/group_by.result:
result change
mysql-test/r/union.result:
result change
mysql-test/r/view.result:
result change
mysql-test/t/subselect.test:
fixed mistake of merge
sql/field.cc:
new 5.0 types support
temporary table/db names detection in field fixed
sql/field.h:
removed non-existent methods
added wrongly deleted during manual merge string
sql/item.cc:
support of new types added to merge of union types routines
sql/item.h:
fixed method definition
sql/item_cmpfunc.cc:
fixed type
sql/item_func.h:
item type name fixed
sql/item_subselect.cc:
added forgoten methods
sql/item_subselect.h:
fixed type
sql/sql_derived.cc:
fixed typo of manual merge
sql/sql_view.cc:
added new parameter
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 639 |
1 files changed, 391 insertions, 248 deletions
diff --git a/sql/field.cc b/sql/field.cc index 8af33a5e88f..d983b5fb7c0 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -55,9 +55,9 @@ const char field_separator=','; following #defines describe that gap and how to canculate number of fields and index of field in thia array. */ -#define FIELDTYPE_TEAR_FROM (MYSQL_TYPE_NEWDATE+1) -#define FIELDTYPE_TEAR_TO (MYSQL_TYPE_ENUM-1) -#define FIELDTYPE_NUM (FIELDTYPE_TEAR_FROM + (255-FIELDTYPE_TEAR_TO)) +#define FIELDTYPE_TEAR_FROM (MYSQL_TYPE_BIT + 1) +#define FIELDTYPE_TEAR_TO (MYSQL_TYPE_NEWDECIMAL - 1) +#define FIELDTYPE_NUM (FIELDTYPE_TEAR_FROM + (255 - FIELDTYPE_TEAR_TO)) inline int field_type2index (enum_field_types field_type) { return (field_type < FIELDTYPE_TEAR_FROM ? @@ -70,118 +70,126 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= /* MYSQL_TYPE_DECIMAL -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_DECIMAL, MYSQL_TYPE_DECIMAL, + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_NEWDECIMAL, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_DECIMAL, MYSQL_TYPE_DECIMAL, + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_NEWDECIMAL, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE MYSQL_TYPE_DOUBLE, MYSQL_TYPE_DOUBLE, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_DECIMAL, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 MYSQL_TYPE_DECIMAL, MYSQL_TYPE_DECIMAL, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_TINY -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY, + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_TINY, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_TINY, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_TINY, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 MYSQL_TYPE_LONGLONG, MYSQL_TYPE_INT24, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_SHORT -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_DECIMAL, MYSQL_TYPE_SHORT, + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_SHORT, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_SHORT, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_SHORT, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 MYSQL_TYPE_LONGLONG, MYSQL_TYPE_INT24, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_SHORT, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_SHORT, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_LONG -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_DECIMAL, MYSQL_TYPE_LONG, + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_LONG, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG MYSQL_TYPE_LONG, MYSQL_TYPE_LONG, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE MYSQL_TYPE_DOUBLE, MYSQL_TYPE_DOUBLE, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_LONG, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_LONG, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_LONGLONG, MYSQL_TYPE_LONG, + MYSQL_TYPE_LONGLONG, MYSQL_TYPE_INT24, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_LONG, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_LONG, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_FLOAT -> */ { @@ -192,25 +200,27 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_FLOAT, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_FLOAT, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_DOUBLE, MYSQL_TYPE_FLOAT, + MYSQL_TYPE_FLOAT, MYSQL_TYPE_INT24, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_FLOAT, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_FLOAT, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_DOUBLE, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_DOUBLE -> */ { @@ -221,30 +231,32 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE MYSQL_TYPE_DOUBLE, MYSQL_TYPE_DOUBLE, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_DOUBLE, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_DOUBLE, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_DOUBLE, MYSQL_TYPE_DOUBLE, + MYSQL_TYPE_DOUBLE, MYSQL_TYPE_INT24, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_DOUBLE, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_DOUBLE, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_DOUBLE, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_NULL -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY, + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_TINY, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE @@ -257,192 +269,206 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= MYSQL_TYPE_NEWDATE, MYSQL_TYPE_TIME, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR MYSQL_TYPE_DATETIME, MYSQL_TYPE_YEAR, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_NEWDATE, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_ENUM, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_BIT, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_ENUM, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB MYSQL_TYPE_SET, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY MYSQL_TYPE_STRING, MYSQL_TYPE_GEOMETRY }, /* MYSQL_TYPE_TIMESTAMP -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP, MYSQL_TYPE_TIMESTAMP, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME MYSQL_TYPE_DATETIME, MYSQL_TYPE_DATETIME, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_DATETIME, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_DATETIME, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_DATETIME, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_LONGLONG -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_DECIMAL, MYSQL_TYPE_LONGLONG, + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_LONGLONG, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG MYSQL_TYPE_LONGLONG, MYSQL_TYPE_LONGLONG, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE MYSQL_TYPE_DOUBLE, MYSQL_TYPE_DOUBLE, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_LONGLONG, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_LONGLONG, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 MYSQL_TYPE_LONGLONG, MYSQL_TYPE_LONG, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_LONGLONG, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_LONGLONG, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_INT24 -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_DECIMAL, MYSQL_TYPE_INT24, + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_INT24, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG MYSQL_TYPE_INT24, MYSQL_TYPE_LONG, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_INT24, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_INT24, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 MYSQL_TYPE_LONGLONG, MYSQL_TYPE_INT24, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_INT24, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_INT24, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_DATE -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP MYSQL_TYPE_NEWDATE, MYSQL_TYPE_DATETIME, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME MYSQL_TYPE_NEWDATE, MYSQL_TYPE_DATETIME, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_DATETIME, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_NEWDATE, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_DATETIME, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_TIME -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP MYSQL_TYPE_TIME, MYSQL_TYPE_DATETIME, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME MYSQL_TYPE_DATETIME, MYSQL_TYPE_TIME, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_DATETIME, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_DATETIME, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_DATETIME, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_DATETIME -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP MYSQL_TYPE_DATETIME, MYSQL_TYPE_DATETIME, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME MYSQL_TYPE_DATETIME, MYSQL_TYPE_DATETIME, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_DATETIME, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_DATETIME, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_DATETIME, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_YEAR -> */ { @@ -453,112 +479,213 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_YEAR, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_YEAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 MYSQL_TYPE_LONGLONG, MYSQL_TYPE_INT24, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_YEAR, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_YEAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_NEWDATE -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP MYSQL_TYPE_NEWDATE, MYSQL_TYPE_DATETIME, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME MYSQL_TYPE_NEWDATE, MYSQL_TYPE_DATETIME, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_DATETIME, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_NEWDATE, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_DATETIME, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, + //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB + MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, + //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR + }, + /* MYSQL_TYPE_VARCHAR -> */ + { + //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_DATE MYSQL_TYPE_TIME + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, + //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB + MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, + //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR + }, + /* MYSQL_TYPE_BIT -> */ + { + //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP + MYSQL_TYPE_BIT, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_DATE MYSQL_TYPE_TIME + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_BIT, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, + //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB + MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, + //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR + }, + /* MYSQL_TYPE_NEWDECIMAL -> */ + { + //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_NEWDECIMAL, + //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_NEWDECIMAL, + //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE + MYSQL_TYPE_DOUBLE, MYSQL_TYPE_DOUBLE, + //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_NEWDECIMAL, + //MYSQL_TYPE_DATE MYSQL_TYPE_TIME + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_NEWDECIMAL, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_NEWDECIMAL, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_ENUM -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_ENUM, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_ENUM, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_SET -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_SET, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_SET, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_TINY_BLOB -> */ { @@ -576,10 +703,12 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_TINY_BLOB, - //MYSQL_TYPE_NEWDATE <14> + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_TINY_BLOB, + //MYSQL_TYPE_BIT <16>-<245> MYSQL_TYPE_TINY_BLOB, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_TINY_BLOB, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB @@ -605,10 +734,12 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_MEDIUM_BLOB, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_MEDIUM_BLOB, - //MYSQL_TYPE_NEWDATE <14> + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_MEDIUM_BLOB, + //MYSQL_TYPE_BIT <16>-<245> MYSQL_TYPE_MEDIUM_BLOB, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_MEDIUM_BLOB, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_MEDIUM_BLOB, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_MEDIUM_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB @@ -634,10 +765,12 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_LONG_BLOB, - //MYSQL_TYPE_NEWDATE <14> + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_LONG_BLOB, + //MYSQL_TYPE_BIT <16>-<245> MYSQL_TYPE_LONG_BLOB, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_LONG_BLOB, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB @@ -663,10 +796,12 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= MYSQL_TYPE_BLOB, MYSQL_TYPE_BLOB, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR MYSQL_TYPE_BLOB, MYSQL_TYPE_BLOB, - //MYSQL_TYPE_NEWDATE <14> + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_BLOB, MYSQL_TYPE_BLOB, + //MYSQL_TYPE_BIT <16>-<245> MYSQL_TYPE_BLOB, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_BLOB, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_BLOB, MYSQL_TYPE_BLOB, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB MYSQL_TYPE_BLOB, MYSQL_TYPE_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB @@ -679,31 +814,33 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= /* MYSQL_TYPE_VAR_STRING -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR }, /* MYSQL_TYPE_STRING -> */ { @@ -721,45 +858,49 @@ static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]= MYSQL_TYPE_STRING, MYSQL_TYPE_STRING, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR MYSQL_TYPE_STRING, MYSQL_TYPE_STRING, - //MYSQL_TYPE_NEWDATE <14> + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_STRING, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> MYSQL_TYPE_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_STRING, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_STRING, MYSQL_TYPE_STRING, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB MYSQL_TYPE_STRING, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY MYSQL_TYPE_STRING, MYSQL_TYPE_STRING }, /* MYSQL_TYPE_GEOMETRY -> */ { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_NULL MYSQL_TYPE_TIMESTAMP - MYSQL_TYPE_GEOMETRY, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_GEOMETRY, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_LONGLONG MYSQL_TYPE_INT24 - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATE MYSQL_TYPE_TIME - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_VAR_STRING, - //MYSQL_TYPE_NEWDATE <14> - MYSQL_TYPE_VAR_STRING, - //<246> MYSQL_TYPE_ENUM - MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_BIT <16>-<245> + MYSQL_TYPE_VARCHAR, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB - MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_TINY_BLOB, + MYSQL_TYPE_VARCHAR, MYSQL_TYPE_TINY_BLOB, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, //MYSQL_TYPE_BLOB MYSQL_TYPE_VAR_STRING - MYSQL_TYPE_BLOB, MYSQL_TYPE_VAR_STRING, + MYSQL_TYPE_BLOB, MYSQL_TYPE_VARCHAR, //MYSQL_TYPE_STRING MYSQL_TYPE_GEOMETRY MYSQL_TYPE_STRING, MYSQL_TYPE_GEOMETRY } @@ -789,7 +930,7 @@ enum_field_types Field::field_type_merge(enum_field_types a, static Item_result field_types_result_type [FIELDTYPE_NUM]= { //MYSQL_TYPE_DECIMAL MYSQL_TYPE_TINY - REAL_RESULT, INT_RESULT, + DECIMAL_RESULT, INT_RESULT, //MYSQL_TYPE_SHORT MYSQL_TYPE_LONG INT_RESULT, INT_RESULT, //MYSQL_TYPE_FLOAT MYSQL_TYPE_DOUBLE @@ -802,10 +943,12 @@ static Item_result field_types_result_type [FIELDTYPE_NUM]= STRING_RESULT, STRING_RESULT, //MYSQL_TYPE_DATETIME MYSQL_TYPE_YEAR STRING_RESULT, INT_RESULT, - //MYSQL_TYPE_NEWDATE <14> + //MYSQL_TYPE_NEWDATE MYSQL_TYPE_VARCHAR + STRING_RESULT, STRING_RESULT, + //MYSQL_TYPE_BIT <16>-<245> STRING_RESULT, - //<246> MYSQL_TYPE_ENUM - STRING_RESULT, + //MYSQL_TYPE_NEWDECIMAL MYSQL_TYPE_ENUM + DECIMAL_RESULT, STRING_RESULT, //MYSQL_TYPE_SET MYSQL_TYPE_TINY_BLOB STRING_RESULT, STRING_RESULT, //MYSQL_TYPE_MEDIUM_BLOB MYSQL_TYPE_LONG_BLOB @@ -1102,13 +1245,13 @@ void Field_num::add_zerofill_and_unsigned(String &res) const void Field::make_field(Send_field *field) { - if ((field->org_table_name= orig_table->s->table_name) == &unknown_table_name) + if (orig_table->s->table_cache_key && *(orig_table->s->table_cache_key)) + { + field->org_table_name= orig_table->s->table_name; field->db_name= orig_table->s->table_cache_key; } else - { - field->db_name= ""; - } + field->org_table_name= field->db_name= ""; field->table_name= orig_table->alias; field->col_name= field->org_col_name= field_name; field->charsetnr= charset()->number; |