[MDEV-12809] Bad column type created for TEXT(1431655798) CHARACTER SET utf8 Created: 2017-05-16  Updated: 2018-06-21  Resolved: 2018-06-21

Status: Closed
Project: MariaDB Server
Component/s: Character Sets, Data types
Affects Version/s: 10.1, 10.2, 10.3
Fix Version/s: 10.2.16, 10.3.8, 10.4.0

Type: Bug Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-4912 Data type plugin API version 1 Closed
Relates
relates to MDEV-13384 "window" seems like a reserved column... Closed
relates to MDEV-13530 VARBINARY doesn't convert to to BLOB ... Closed

 Description   

CREATE OR REPLACE TABLE t1 (a TEXT(1431655798) CHARACTER SET utf8);
SHOW CREATE TABLE t1;

+-------+-----------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                              |
+-------+-----------------------------------------------------------------------------------------------------------+
| t1    | CREATE TABLE `t1` (
  `a` tinytext CHARACTER SET utf8 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-----------------------------------------------------------------------------------------------------------+

Notice, it created a TINYTEXT column.
The expected type is LONGTEXT.



 Comments   
Comment by Alexander Barkov [ 2018-06-21 ]

In 10.2 the above script crashes on assert:

mysqld: /home/bar/maria-git/server.10.3/sql/field.h:4346: void Column_definition::create_length_to_internal_length_string(): Assertion `length <= 0xFFFFFFFFL' failed.
 
Program received signal SIGABRT, Aborted.
0x00007ffff5e42a28 in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/unix/sysv/linux/raise.c:55
55	  return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);

with the following stack:

#3  0x00007ffff5e3b2d2 in __GI___assert_fail (
    assertion=0x12ff30c "length <= 0xFFFFFFFFL", 
    file=0x12ff2e0 "/home/bar/maria-git/server.10.3/sql/field.h", line=4346, 
    function=0x1301760 <Column_definition::create_length_to_internal_length_string()::__PRETTY_FUNCTION__> "void Column_definition::create_length_to_internal_length_string()") at assert.c:101
#4  0x000000000083cced in Column_definition::create_length_to_internal_length_string (this=0x7ffe60013330) at /home/bar/maria-git/server.10.3/sql/field.h:4346
#5  0x00000000008273f6 in Column_definition::prepare_stage1_string (
    this=0x7ffe60013330, thd=0x7ffe60000a98, mem_root=0x7ffe60006110, 
    file=0x7ffe600137f0, table_flags=264484092609758)
    at /home/bar/maria-git/server.10.3/sql/sql_table.cc:3186
#6  0x000000000093d36b in Type_handler_string_result::Column_definition_prepare_stage1 (this=0x1ee7fd8 <type_handler_blob>, thd=0x7ffe60000a98, 
    mem_root=0x7ffe60006110, def=0x7ffe60013330, file=0x7ffe600137f0, 
    table_flags=264484092609758)
    at /home/bar/maria-git/server.10.3/sql/sql_type.cc:1679
#7  0x00000000008275db in Column_definition::prepare_stage1 (
    this=0x7ffe60013330, thd=0x7ffe60000a98, mem_root=0x7ffe60006110, 
    file=0x7ffe600137f0, table_flags=264484092609758)
    at /home/bar/maria-git/server.10.3/sql/sql_table.cc:3228
#8  0x0000000000828117 in mysql_prepare_create_table (thd=0x7ffe60000a98, 
    create_info=0x7ffff0c1e4e0, alter_info=0x7ffff0c1e3f0, 
    db_options=0x7ffff0c1cc04, file=0x7ffe600137f0, 
    key_info_buffer=0x7ffff0c1e2d0, key_count=0x7ffff0c1e2cc, 
    create_table_mode=0)

Generated at Thu Feb 08 08:00:38 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.