[MDEV-21941] RENAME doesn't work for system time or period fields Created: 2020-03-14  Updated: 2020-04-21  Resolved: 2020-04-04

Status: Closed
Project: MariaDB Server
Component/s: Data Definition - Alter Table, Versioned Tables
Affects Version/s: 10.5
Fix Version/s: 10.5.3

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Aleksey Midenkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-16290 ALTER TABLE ... RENAME COLUMN syntax Closed

 Description   

Assertion `0' in get_fieldno_by_name or ER_VERS_FIELD_WRONG_TYPE upon RENAME on system versioning column

CREATE TABLE t1 (a INT) WITH SYSTEM VERSIONING;
ALTER TABLE t1 RENAME COLUMN row_start TO x;
 
# Cleanup
DROP TABLE t1;

10.5 774fe896 debug

mysqld: /data/src/10.5/sql/unireg.cc:132: uint16 get_fieldno_by_name(HA_CREATE_INFO*, List<Create_field>&, const Lex_ident&): Assertion `0' failed.
200314 16:09:29 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f3a54f28f12 in __GI___assert_fail (assertion=0x564dcbbd2f71 "0", file=0x564dcbbd2f31 "/data/src/10.5/sql/unireg.cc", line=132, function=0x564dcbbd33a0 <get_fieldno_by_name(HA_CREATE_INFO*, List<Create_field>&, Lex_cstring_with_compare<Compare_identifiers> const&)::__PRETTY_FUNCTION__> "uint16 get_fieldno_by_name(HA_CREATE_INFO*, List<Create_field>&, const Lex_ident&)") at assert.c:101
#8  0x0000564dcaf5bf05 in get_fieldno_by_name (create_info=0x7f3a502c4450, create_fields=..., field_name=...) at /data/src/10.5/sql/unireg.cc:132
#9  0x0000564dcaf5cfd2 in build_frm_image (thd=0x7f3a34000b18, table=..., create_info=0x7f3a502c4450, create_fields=..., keys=0, key_info=0x7f3a340150a8, db_file=0x7f3a34014910) at /data/src/10.5/sql/unireg.cc:494
#10 0x0000564dcaef147c in mysql_create_frm_image (thd=0x7f3a34000b18, db=..., table_name=..., create_info=0x7f3a502c4450, alter_info=0x7f3a502c4380, create_table_mode=-2, key_info=0x7f3a502c1df8, key_count=0x7f3a502c1dc8, frm=0x7f3a502c1e70) at /data/src/10.5/sql/sql_table.cc:4828
#11 0x0000564dcaef1ef3 in create_table_impl (thd=0x7f3a34000b18, orig_db=..., orig_table_name=..., db=..., table_name=..., path=0x7f3a502c40bd "./test/#sql-10c7_4", options=..., create_info=0x7f3a502c4450, alter_info=0x7f3a502c4380, create_table_mode=-2, is_trans=0x0, key_info=0x7f3a502c1df8, key_count=0x7f3a502c1dc8, frm=0x7f3a502c1e70) at /data/src/10.5/sql/sql_table.cc:5067
#12 0x0000564dcaf00413 in mysql_alter_table (thd=0x7f3a34000b18, new_db=0x7f3a340053c8, new_name=0x7f3a340057d0, create_info=0x7f3a502c4450, table_list=0x7f3a34013a28, alter_info=0x7f3a502c4380, order_num=0, order=0x0, ignore=false) at /data/src/10.5/sql/sql_table.cc:10089
#13 0x0000564dcafa3f1a in Sql_cmd_alter_table::execute (this=0x7f3a34014158, thd=0x7f3a34000b18) at /data/src/10.5/sql/sql_alter.cc:525
#14 0x0000564dcae07f2c in mysql_execute_command (thd=0x7f3a34000b18) at /data/src/10.5/sql/sql_parse.cc:5887
#15 0x0000564dcae0e2fe in mysql_parse (thd=0x7f3a34000b18, rawbuf=0x7f3a34013920 "ALTER TABLE t1 RENAME COLUMN row_start TO x", length=43, parser_state=0x7f3a502c5520, is_com_multi=false, is_next_command=false) at /data/src/10.5/sql/sql_parse.cc:7926
#16 0x0000564dcadf9e07 in dispatch_command (command=COM_QUERY, thd=0x7f3a34000b18, packet=0x7f3a341b0209 "ALTER TABLE t1 RENAME COLUMN row_start TO x", packet_length=43, is_com_multi=false, is_next_command=false) at /data/src/10.5/sql/sql_parse.cc:1840
#17 0x0000564dcadf853d in do_command (thd=0x7f3a34000b18) at /data/src/10.5/sql/sql_parse.cc:1359
#18 0x0000564dcaf99c6b in do_handle_one_connection (connect=0x564dcd816c48, put_in_cache=true) at /data/src/10.5/sql/sql_connect.cc:1422
#19 0x0000564dcaf9999a in handle_one_connection (arg=0x564dcd816c48) at /data/src/10.5/sql/sql_connect.cc:1319
#20 0x0000564dcb4c540e in pfs_spawn_thread (arg=0x564dcd84d008) at /data/src/10.5/storage/perfschema/pfs.cc:2201
#21 0x00007f3a56eb14a4 in start_thread (arg=0x7f3a502c6700) at pthread_create.c:456
#22 0x00007f3a54fe5d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

10.5 774fe896 non-debug

mysqltest: At line 2: query 'ALTER TABLE t1 RENAME COLUMN row_start TO x' failed: 4110: `a` must be of type TIMESTAMP(6) for system-versioned table `t1`



 Comments   
Comment by Oleksandr Byelkin [ 2020-04-03 ]

OK to push after small fix we discussed.

Generated at Thu Feb 08 09:10:59 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.