mirror of
https://github.com/MariaDB/server.git
synced 2025-08-24 11:21:36 +02:00
![]() FIXME: commit message invisible property in Alter_column and add_alter_alter_list(). mysql_prepare_alter_table() takes this value for new column definition. Vers_parse_info::fix_alter_info() is more fine-grained on throwing ER_VERS_ALTER_SYSTEM_FIELD. Now it does not fail on visibility change. mysqltest: At line 78: query 'alter table t add column trx_start timestamp(6) as row start' succeeded - should have failed with error ER_MISSING (4125)... In Vers_parse_info::fix_alter_info() we override data from parser: 9059 as_row= start_end_t(start, end); 9060 period= as_row; Then Vers_parse_info::check_conditions() fails to find error: 9180 if (!as_row.start || !as_row.end) 9181 { 9182 my_error(ER_MISSING, MYF(0), table_name.str, 9183 as_row.start ? "AS ROW END" : "AS ROW START"); 9184 return true; 9185 } But as_row is used when creating frm: 529 if (create_info->versioned()) 530 { 531 *pos++= EXTRA2_PERIOD_FOR_SYSTEM_TIME; 532 *pos++= 2 * frm_fieldno_size; 533 store_frm_fieldno(pos, get_fieldno_by_name(create_info, create_fields, 534 create_info->vers_info.as_row.start)); 535 pos+= frm_fieldno_size; 536 store_frm_fieldno(pos, get_fieldno_by_name(create_info, create_fields, 537 create_info->vers_info.as_row.end)); 538 pos+= frm_fieldno_size; 539 } There should be other info for it to take start/end indexes. Parser stage and prepare stage data separation. Vers_parse_info::as_row and period are left untouched (the exception is fix_create_like() where as_row |
||
---|---|---|
.. | ||
r | ||
t | ||
common.inc | ||
common.opt | ||
common_finish.inc | ||
disabled.def | ||
engines.combinations | ||
engines.inc | ||
innodb.combinations | ||
innodb.inc | ||
key_type.combinations | ||
key_type.inc | ||
sys_time.inc | ||
wait_system_clock.inc |