mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Bug#52199 utf32: mbminlen=4, mbmaxlen=4, type->mbminlen=0, type->mbmaxlen=4
Merge and adjust a forgotten change to fix this bug. rb://393 approved by Jimmy Yang ------------------------------------------------------------------------ r3794 | marko | 2009-01-07 14:14:53 +0000 (Wed, 07 Jan 2009) | 18 lines branches/6.0: Allow the minimum length of a multi-byte character to be up to 4 bytes. (Bug #35391) dtype_t, dict_col_t: Replace mbminlen:2, mbmaxlen:3 with mbminmaxlen:5. In this way, the 5 bits can hold two values of 0..4, and the storage size of the fields will not cross the 64-bit boundary. Encode the values as DATA_MBMAX * mbmaxlen + mbminlen. Define the auxiliary macros DB_MBMINLEN(mbminmaxlen), DB_MBMAXLEN(mbminmaxlen), and DB_MINMAXLEN(mbminlen, mbmaxlen). Try to trim and pad UTF-16 and UTF-32 with spaces as appropriate. Alexander Barkov suggested the use of cs->cset->fill(cs, buff, len, 0x20). ha_innobase::store_key_val_for_row() now does that, but the added function row_mysql_pad_col() does not, because it doesn't have the MySQL TABLE object. rb://49 approved by Heikki Tuuri ------------------------------------------------------------------------
This commit is contained in:
@@ -103,6 +103,17 @@ row_mysql_read_blob_ref(
|
||||
ulint col_len); /*!< in: BLOB reference length
|
||||
(not BLOB length) */
|
||||
/**************************************************************//**
|
||||
Pad a column with spaces. */
|
||||
UNIV_INTERN
|
||||
void
|
||||
row_mysql_pad_col(
|
||||
/*==============*/
|
||||
ulint mbminlen, /*!< in: minimum size of a character,
|
||||
in bytes */
|
||||
byte* pad, /*!< out: padded buffer */
|
||||
ulint len); /*!< in: number of bytes to pad */
|
||||
|
||||
/**************************************************************//**
|
||||
Stores a non-SQL-NULL field given in the MySQL format in the InnoDB format.
|
||||
The counterpart of this function is row_sel_field_store_in_mysql_format() in
|
||||
row0sel.c.
|
||||
|
Reference in New Issue
Block a user