diff options
author | unknown <heikki@hundin.mysql.fi> | 2004-10-01 20:01:25 +0300 |
---|---|---|
committer | unknown <heikki@hundin.mysql.fi> | 2004-10-01 20:01:25 +0300 |
commit | d822c6f7efbf01a3c7dc257b2e65aab8187b6098 (patch) | |
tree | b99f5669c6448da9932bab0ed49e52fe9d08db47 /innobase/include | |
parent | 0db72d6e335d89a734bceff5f2d1a8617f5557e6 (diff) | |
download | mariadb-git-d822c6f7efbf01a3c7dc257b2e65aab8187b6098.tar.gz |
Many files:
Fix bug introduced by the prefix key + multibyte charsets patch today
sql/ha_innodb.cc:
Fix bug introduced by the prefix key + multibyte charsets patch today
innobase/include/data0type.h:
Fix bug introduced by the prefix key + multibyte charsets patch today
innobase/include/fsp0fsp.h:
Fix bug introduced by the prefix key + multibyte charsets patch today
innobase/data/data0type.c:
Fix bug introduced by the prefix key + multibyte charsets patch today
innobase/row/row0ins.c:
Fix bug introduced by the prefix key + multibyte charsets patch today
innobase/row/row0row.c:
Fix bug introduced by the prefix key + multibyte charsets patch today
innobase/row/row0sel.c:
Fix bug introduced by the prefix key + multibyte charsets patch today
innobase/row/row0upd.c:
Fix bug introduced by the prefix key + multibyte charsets patch today
Diffstat (limited to 'innobase/include')
-rw-r--r-- | innobase/include/data0type.h | 23 | ||||
-rw-r--r-- | innobase/include/fsp0fsp.h | 34 |
2 files changed, 57 insertions, 0 deletions
diff --git a/innobase/include/data0type.h b/innobase/include/data0type.h index fe38a224a66..c263d2bf613 100644 --- a/innobase/include/data0type.h +++ b/innobase/include/data0type.h @@ -145,6 +145,29 @@ store the charset-collation number; one byte is left unused, though */ #define DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE 6 /************************************************************************* +Checks if a string type has to be compared by the MySQL comparison functions. +InnoDB internally only handles binary byte string comparisons, as well as +latin1_swedish_ci strings. For example, UTF-8 strings have to be compared +by MySQL. */ + +ibool +dtype_str_needs_mysql_cmp( +/*======================*/ + /* out: TRUE if a string type that requires + comparison with MySQL functions */ + dtype_t* dtype); /* in: type struct */ +/************************************************************************* +For the documentation of this function, see innobase_get_at_most_n_mbchars() +in ha_innodb.cc. */ + +ulint +dtype_get_at_most_n_mbchars( +/*========================*/ + dtype_t* dtype, + ulint prefix_len, + ulint data_len, + const char* str); +/************************************************************************* Checks if a data main type is a string type. Also a BLOB is considered a string type. */ diff --git a/innobase/include/fsp0fsp.h b/innobase/include/fsp0fsp.h index 2fcde882df7..cebfb9ea2dd 100644 --- a/innobase/include/fsp0fsp.h +++ b/innobase/include/fsp0fsp.h @@ -16,6 +16,40 @@ Created 12/18/1995 Heikki Tuuri #include "ut0byte.h" #include "page0types.h" +typedef byte xdes_t; + +/************************************************************************ +Gets pointer to a the extent descriptor of a page. The page where the +extent descriptor resides is x-locked. If the page offset is equal to +the free limit of the space, adds new extents from above the free limit +to the space free list, if not free limit == space size. This adding +is necessary to make the descriptor defined, as they are uninitialized +above the free limit. */ + +xdes_t* +xdes_get_descriptor( +/*================*/ + /* out: pointer to the extent descriptor, NULL if the + page does not exist in the space or if offset > free + limit */ + ulint space, /* in: space id */ + ulint offset, /* in: page offset; if equal to the free limit, + we try to add new extents to the space free list */ + mtr_t* mtr); /* in: mtr handle */ + +/************************************************************************** +Gets a descriptor bit of a page. */ + +ibool +xdes_get_bit( +/*=========*/ + /* out: TRUE if free */ + xdes_t* descr, /* in: descriptor */ + ulint bit, /* in: XDES_FREE_BIT or XDES_CLEAN_BIT */ + ulint offset, /* in: page offset within extent: + 0 ... FSP_EXTENT_SIZE - 1 */ + mtr_t* mtr); /* in: mtr */ + /* If records are inserted in order, there are the following flags to tell this (their type is made byte for the compiler to warn if direction and hint parameters are switched in |