mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
ha_innodb.cc, data0type.c, data0type.ic, data0type.h:
Change some inline functions to normal functions, so that they can be called in ha_innodb.cc; this removes the the remaining linking problems reported by Paul DuBois innobase/include/data0type.h: Change some inline functions to normal functions, so that they can be called in ha_innodb.cc; this removes the the remaining linking problems reported by Paul DuBois innobase/include/data0type.ic: Change some inline functions to normal functions, so that they can be called in ha_innodb.cc; this removes the the remaining linking problems reported by Paul DuBois innobase/data/data0type.c: Change some inline functions to normal functions, so that they can be called in ha_innodb.cc; this removes the the remaining linking problems reported by Paul DuBois sql/ha_innodb.cc: Change some inline functions to normal functions, so that they can be called in ha_innodb.cc; this removes the the remaining linking problems reported by Paul DuBois
This commit is contained in:
@ -23,6 +23,87 @@ ulint data_mysql_latin1_swedish_charset_coll = 99999999;
|
|||||||
dtype_t dtype_binary_val = {DATA_BINARY, 0, 0, 0};
|
dtype_t dtype_binary_val = {DATA_BINARY, 0, 0, 0};
|
||||||
dtype_t* dtype_binary = &dtype_binary_val;
|
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. */
|
Validates a data type structure. */
|
||||||
|
|
||||||
|
@ -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
|
Checks if a data main type is a string type. Also a BLOB is considered a
|
||||||
string type. */
|
string type. */
|
||||||
UNIV_INLINE
|
|
||||||
ibool
|
ibool
|
||||||
dtype_is_string_type(
|
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
|
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
|
< 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. */
|
those DATA_BLOB columns this function currently returns FALSE. */
|
||||||
UNIV_INLINE
|
|
||||||
ibool
|
ibool
|
||||||
dtype_is_binary_string_type(
|
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
|
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.
|
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. */
|
For those DATA_BLOB columns this function currently returns TRUE. */
|
||||||
UNIV_INLINE
|
|
||||||
ibool
|
ibool
|
||||||
dtype_is_non_binary_string_type(
|
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
|
Forms a precise type from the < 4.1.2 format precise type plus the
|
||||||
charset-collation code. */
|
charset-collation code. */
|
||||||
UNIV_INLINE
|
|
||||||
ulint
|
ulint
|
||||||
dtype_form_prtype(
|
dtype_form_prtype(
|
||||||
/*==============*/
|
/*==============*/
|
||||||
|
@ -8,70 +8,6 @@ Created 1/16/1996 Heikki Tuuri
|
|||||||
|
|
||||||
#include "mach0data.h"
|
#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. */
|
Sets a data type structure. */
|
||||||
UNIV_INLINE
|
UNIV_INLINE
|
||||||
@ -146,23 +82,6 @@ dtype_get_charset_coll(
|
|||||||
return((prtype >> 16) & 0xFFUL);
|
return((prtype >> 16) & 0xFFUL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
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. */
|
Gets the type length. */
|
||||||
UNIV_INLINE
|
UNIV_INLINE
|
||||||
|
@ -883,7 +883,7 @@ innobase_init(void)
|
|||||||
and consequently we do not need to know the ordering internally in
|
and consequently we do not need to know the ordering internally in
|
||||||
InnoDB. */
|
InnoDB. */
|
||||||
|
|
||||||
ut_a(0 == ut_strcmp((char*)my_charset_latin1.name,
|
ut_a(0 == strcmp((char*)my_charset_latin1.name,
|
||||||
(char*)"latin1_swedish_ci"));
|
(char*)"latin1_swedish_ci"));
|
||||||
memcpy(srv_latin1_ordering, my_charset_latin1.sort_order, 256);
|
memcpy(srv_latin1_ordering, my_charset_latin1.sort_order, 256);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user