| 
Macros | 
| #define | DATA_MYSQL_LATIN1_SWEDISH_CHARSET_COLL   8 | 
| #define | DATA_MYSQL_BINARY_CHARSET_COLL   63 | 
| #define | DATA_MISSING   0	/* missing column */ | 
| #define | DATA_VARCHAR | 
| #define | DATA_CHAR | 
| #define | DATA_FIXBINARY   3	/* binary string of fixed length */ | 
| #define | DATA_BINARY   4	/* binary string */ | 
| #define | DATA_BLOB | 
| #define | DATA_INT   6	/* integer: can be any size 1 - 8 bytes */ | 
| #define | DATA_SYS_CHILD   7	/* address of the child page in node pointer */ | 
| #define | DATA_SYS   8	/* system column */ | 
| #define | DATA_FLOAT   9 | 
| #define | DATA_DOUBLE   10 | 
| #define | DATA_DECIMAL   11	/* decimal number stored as an ASCII string */ | 
| #define | DATA_VARMYSQL   12	/* any charset varying length char */ | 
| #define | DATA_MYSQL   13	/* any charset fixed length char */ | 
| #define | DATA_MTYPE_MAX | 
| #define | DATA_ENGLISH | 
| #define | DATA_ERROR   111	/* another relic from pre-MySQL time */ | 
| #define | DATA_MYSQL_TYPE_MASK | 
| #define | DATA_MYSQL_TRUE_VARCHAR | 
| #define | DATA_ROW_ID   0	/* row id: a 48-bit integer */ | 
| #define | DATA_ROW_ID_LEN   6	/* stored length for row id */ | 
| #define | DATA_TRX_ID   1	/* transaction id: 6 bytes */ | 
| #define | DATA_TRX_ID_LEN   6 | 
| #define | DATA_ROLL_PTR   2	/* rollback data pointer: 7 bytes */ | 
| #define | DATA_ROLL_PTR_LEN   7 | 
| #define | DATA_N_SYS_COLS   3	/* number of system columns defined above */ | 
| #define | DATA_FTS_DOC_ID   3	/* Used as FTS DOC ID column */ | 
| #define | DATA_SYS_PRTYPE_MASK   0xF /* mask to extract the above from prtype */ | 
| #define | DATA_NOT_NULL | 
| #define | DATA_UNSIGNED | 
| #define | DATA_BINARY_TYPE | 
| #define | DATA_LONG_TRUE_VARCHAR | 
| #define | DATA_ORDER_NULL_TYPE_BUF_SIZE   4 | 
| #define | DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE   6 | 
| #define | DATA_MBMAX   5 | 
| #define | DATA_MBMINMAXLEN(mbminlen, mbmaxlen)   ((mbmaxlen) * DATA_MBMAX + (mbminlen)) | 
| #define | DATA_MBMINLEN(mbminmaxlen) | 
| #define | DATA_MBMAXLEN(mbminmaxlen)   ((ulint) ((mbminmaxlen) / DATA_MBMAX)) | 
| #define | MAX_CHAR_COLL_NUM   32767 | 
| #define | CHAR_COLL_MASK   MAX_CHAR_COLL_NUM | 
| 
Functions | 
| UNIV_INLINE ulint | dtype_get_mysql_type (const dtype_t *type) | 
| UNIV_INTERN ulint | dtype_get_at_most_n_mbchars (ulint prtype, ulint mbminmaxlen, ulint prefix_len, ulint data_len, const char *str) | 
| UNIV_INTERN ibool | dtype_is_string_type (ulint mtype) | 
| UNIV_INTERN ibool | dtype_is_binary_string_type (ulint mtype, ulint prtype) | 
| UNIV_INTERN ibool | dtype_is_non_binary_string_type (ulint mtype, ulint prtype) | 
| UNIV_INLINE void | dtype_set (dtype_t *type, ulint mtype, ulint prtype, ulint len) | 
| UNIV_INLINE void | dtype_copy (dtype_t *type1, const dtype_t *type2) | 
| UNIV_INLINE ulint | dtype_get_mtype (const dtype_t *type) | 
| UNIV_INLINE ulint | dtype_get_prtype (const dtype_t *type) | 
| UNIV_INLINE void | dtype_get_mblen (ulint mtype, ulint prtype, ulint *mbminlen, ulint *mbmaxlen) | 
| UNIV_INLINE ulint | dtype_get_charset_coll (ulint prtype) | 
| UNIV_INTERN ulint | dtype_form_prtype (ulint old_prtype, ulint charset_coll) | 
| UNIV_INLINE ibool | dtype_is_utf8 (ulint prtype) | 
| UNIV_INLINE ulint | dtype_get_len (const dtype_t *type) | 
| UNIV_INLINE ulint | dtype_get_mbminlen (const dtype_t *type) | 
| UNIV_INLINE ulint | dtype_get_mbmaxlen (const dtype_t *type) | 
| UNIV_INLINE void | dtype_set_mbminmaxlen (dtype_t *type, ulint mbminlen, ulint mbmaxlen) | 
| UNIV_INLINE ulint | dtype_get_pad_char (ulint mtype, ulint prtype) | 
| UNIV_INLINE ulint | dtype_get_fixed_size_low (ulint mtype, ulint prtype, ulint len, ulint mbminmaxlen, ulint comp) | 
| UNIV_INLINE ulint | dtype_get_min_size_low (ulint mtype, ulint prtype, ulint len, ulint mbminmaxlen) | 
| UNIV_INLINE ulint | dtype_get_max_size_low (ulint mtype, ulint len) | 
| UNIV_INLINE ulint | dtype_get_sql_null_size (const dtype_t *type, ulint comp) | 
| UNIV_INLINE void | dtype_read_for_order_and_null_size (dtype_t *type, const byte *buf) | 
| UNIV_INLINE void | dtype_new_store_for_order_and_null_size (byte *buf, const dtype_t *type, ulint prefix_len) | 
| UNIV_INLINE void | dtype_new_read_for_order_and_null_size (dtype_t *type, const byte *buf) | 
| UNIV_INLINE char * | dtype_sql_name (unsigned mtype, unsigned prtype, unsigned len, char *name, unsigned name_sz) | 
| UNIV_INTERN ibool | dtype_validate (const dtype_t *type) | 
| UNIV_INTERN void | dtype_print (const dtype_t *type) | 
Data types
Created 1/16/1996 Heikki Tuuri 
Definition in file data0type.h.
      
        
          | UNIV_INTERN ulint dtype_get_at_most_n_mbchars | ( | ulint | prtype, | 
        
          |  |  | ulint | mbminmaxlen, | 
        
          |  |  | ulint | prefix_len, | 
        
          |  |  | ulint | data_len, | 
        
          |  |  | const char * | str | 
        
          |  | ) |  |  | 
      
 
Determine how many bytes the first n characters of the given string occupy. If the string is shorter than n characters, returns the number of bytes the characters in the string occupy. 
- Returns
- length of the prefix, in bytes in: the string whose prefix length is being determined
Determine how many bytes the first n characters of the given string occupy. If the string is shorter than n characters, returns the number of bytes the characters in the string occupy. 
- Returns
- length of the prefix, in bytes 
- Parameters
- 
  
    | prtype | in: precise type |  | mbminmaxlen | in: minimum and maximum length of a multi-byte character |  | prefix_len | in: length of the requested prefix, in characters, multiplied by dtype_get_mbmaxlen(dtype) |  | data_len | in: length of str (in bytes) |  | str | in: the string whose prefix length is being determined |  
 
Definition at line 49 of file data0type.cc.
 
 
      
        
          | UNIV_INTERN ibool dtype_is_binary_string_type | ( | ulint | mtype, | 
        
          |  |  | ulint | prtype | 
        
          |  | ) |  |  | 
      
 
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. 
- Returns
- TRUE if binary string type in: precise 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. 
- Returns
- TRUE if binary string type 
- Parameters
- 
  
    | mtype | in: main data type |  | prtype | in: precise type |  
 
Definition at line 111 of file data0type.cc.
 
 
      
        
          | UNIV_INTERN ibool dtype_is_non_binary_string_type | ( | ulint | mtype, | 
        
          |  |  | ulint | prtype | 
        
          |  | ) |  |  | 
      
 
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. 
- Returns
- TRUE if non-binary string type in: precise type
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. 
- Returns
- TRUE if non-binary string type 
- Parameters
- 
  
    | mtype | in: main data type |  | prtype | in: precise type |  
 
Definition at line 134 of file data0type.cc.