diff options
-rw-r--r-- | innobase/data/data0type.c | 81 | ||||
-rw-r--r-- | innobase/include/data0type.h | 8 | ||||
-rw-r--r-- | innobase/include/data0type.ic | 81 | ||||
-rw-r--r-- | sql/ha_innodb.cc | 2 |
4 files changed, 86 insertions, 86 deletions
diff --git a/innobase/data/data0type.c b/innobase/data/data0type.c index a1cd34acd23..71ce5ff3d58 100644 --- a/innobase/data/data0type.c +++ b/innobase/data/data0type.c @@ -24,6 +24,87 @@ dtype_t dtype_binary_val = {DATA_BINARY, 0, 0, 0}; dtype_t* dtype_binary = &dtype_binary_val; /************************************************************************* +Checks if a data main type is a string type. Also a BLOB is considered a +string type. */ + +ibool +dtype_is_string_type( +/*=================*/ + /* out: TRUE if string type */ + ulint mtype) /* in: InnoDB main data type code: DATA_CHAR, ... */ +{ + if (mtype <= DATA_BLOB + || mtype == DATA_MYSQL + || mtype == DATA_VARMYSQL) { + + return(TRUE); + } + + return(FALSE); +} + +/************************************************************************* +Checks if a type is a binary string type. Note that for tables created with +< 4.0.14, we do not know if a DATA_BLOB column is a BLOB or a TEXT column. For +those DATA_BLOB columns this function currently returns FALSE. */ + +ibool +dtype_is_binary_string_type( +/*========================*/ + /* out: TRUE if binary string type */ + ulint mtype, /* in: main data type */ + ulint prtype) /* in: precise type */ +{ + if ((mtype == DATA_FIXBINARY) + || (mtype == DATA_BINARY) + || (mtype == DATA_BLOB && (prtype & DATA_BINARY_TYPE))) { + + return(TRUE); + } + + return(FALSE); +} + +/************************************************************************* +Checks if a type is a non-binary string type. That is, dtype_is_string_type is +TRUE and dtype_is_binary_string_type is FALSE. Note that for tables created +with < 4.0.14, we do not know if a DATA_BLOB column is a BLOB or a TEXT column. +For those DATA_BLOB columns this function currently returns TRUE. */ + +ibool +dtype_is_non_binary_string_type( +/*============================*/ + /* out: TRUE if non-binary string type */ + ulint mtype, /* in: main data type */ + ulint prtype) /* in: precise type */ +{ + if (dtype_is_string_type(mtype) == TRUE + && dtype_is_binary_string_type(mtype, prtype) == FALSE) { + + return(TRUE); + } + + return(FALSE); +} + +/************************************************************************* +Forms a precise type from the < 4.1.2 format precise type plus the +charset-collation code. */ + +ulint +dtype_form_prtype( +/*==============*/ + ulint old_prtype, /* in: the MySQL type code and the flags + DATA_BINARY_TYPE etc. */ + ulint charset_coll) /* in: MySQL charset-collation code */ +{ + ut_a(old_prtype < 256 * 256); + ut_a(charset_coll < 256); + + return(old_prtype + (charset_coll << 16)); +} + +/************************************************************************* Validates a data type structure. */ ibool diff --git a/innobase/include/data0type.h b/innobase/include/data0type.h index 4b8a5393405..2b27ead5fac 100644 --- a/innobase/include/data0type.h +++ b/innobase/include/data0type.h @@ -147,7 +147,7 @@ store the charset-collation number; one byte is left unused, though */ /************************************************************************* Checks if a data main type is a string type. Also a BLOB is considered a string type. */ -UNIV_INLINE + ibool dtype_is_string_type( /*=================*/ @@ -157,7 +157,7 @@ dtype_is_string_type( Checks if a type is a binary string type. Note that for tables created with < 4.0.14, we do not know if a DATA_BLOB column is a BLOB or a TEXT column. For those DATA_BLOB columns this function currently returns FALSE. */ -UNIV_INLINE + ibool dtype_is_binary_string_type( /*========================*/ @@ -169,7 +169,7 @@ Checks if a type is a non-binary string type. That is, dtype_is_string_type is TRUE and dtype_is_binary_string_type is FALSE. Note that for tables created with < 4.0.14, we do not know if a DATA_BLOB column is a BLOB or a TEXT column. For those DATA_BLOB columns this function currently returns TRUE. */ -UNIV_INLINE + ibool dtype_is_non_binary_string_type( /*============================*/ @@ -219,7 +219,7 @@ dtype_get_charset_coll( /************************************************************************* Forms a precise type from the < 4.1.2 format precise type plus the charset-collation code. */ -UNIV_INLINE + ulint dtype_form_prtype( /*==============*/ diff --git a/innobase/include/data0type.ic b/innobase/include/data0type.ic index 9da6501761e..21f617c7590 100644 --- a/innobase/include/data0type.ic +++ b/innobase/include/data0type.ic @@ -9,70 +9,6 @@ Created 1/16/1996 Heikki Tuuri #include "mach0data.h" /************************************************************************* -Checks if a data main type is a string type. Also a BLOB is considered a -string type. */ -UNIV_INLINE -ibool -dtype_is_string_type( -/*=================*/ - /* out: TRUE if string type */ - ulint mtype) /* in: InnoDB main data type code: DATA_CHAR, ... */ -{ - if (mtype <= DATA_BLOB - || mtype == DATA_MYSQL - || mtype == DATA_VARMYSQL) { - - return(TRUE); - } - - return(FALSE); -} - -/************************************************************************* -Checks if a type is a binary string type. Note that for tables created with -< 4.0.14, we do not know if a DATA_BLOB column is a BLOB or a TEXT column. For -those DATA_BLOB columns this function currently returns FALSE. */ -UNIV_INLINE -ibool -dtype_is_binary_string_type( -/*========================*/ - /* out: TRUE if binary string type */ - ulint mtype, /* in: main data type */ - ulint prtype) /* in: precise type */ -{ - if ((mtype == DATA_FIXBINARY) - || (mtype == DATA_BINARY) - || (mtype == DATA_BLOB && (prtype & DATA_BINARY_TYPE))) { - - return(TRUE); - } - - return(FALSE); -} - -/************************************************************************* -Checks if a type is a non-binary string type. That is, dtype_is_string_type is -TRUE and dtype_is_binary_string_type is FALSE. Note that for tables created -with < 4.0.14, we do not know if a DATA_BLOB column is a BLOB or a TEXT column. -For those DATA_BLOB columns this function currently returns TRUE. */ -UNIV_INLINE -ibool -dtype_is_non_binary_string_type( -/*============================*/ - /* out: TRUE if non-binary string type */ - ulint mtype, /* in: main data type */ - ulint prtype) /* in: precise type */ -{ - if (dtype_is_string_type(mtype) == TRUE - && dtype_is_binary_string_type(mtype, prtype) == FALSE) { - - return(TRUE); - } - - return(FALSE); -} - -/************************************************************************* Sets a data type structure. */ UNIV_INLINE void @@ -147,23 +83,6 @@ dtype_get_charset_coll( } /************************************************************************* -Forms a precise type from the < 4.1.2 format precise type plus the -charset-collation code. */ -UNIV_INLINE -ulint -dtype_form_prtype( -/*==============*/ - ulint old_prtype, /* in: the MySQL type code and the flags - DATA_BINARY_TYPE etc. */ - ulint charset_coll) /* in: MySQL charset-collation code */ -{ - ut_a(old_prtype < 256 * 256); - ut_a(charset_coll < 256); - - return(old_prtype + (charset_coll << 16)); -} - -/************************************************************************* Gets the type length. */ UNIV_INLINE ulint diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index 40ba7ab1cef..5c6fc9da06c 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -883,7 +883,7 @@ innobase_init(void) and consequently we do not need to know the ordering internally in InnoDB. */ - ut_a(0 == ut_strcmp((char*)my_charset_latin1.name, + ut_a(0 == strcmp((char*)my_charset_latin1.name, (char*)"latin1_swedish_ci")); memcpy(srv_latin1_ordering, my_charset_latin1.sort_order, 256); |