mariadb/mysql-test/suite/versioning/r
Aleksey Midenkov 04b06f69e6 MDEV-37008 ROW START/END columns added with ALTER TABLE are never INVISIBLE
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
2025-07-21 17:25:28 +03:00
..
alter.result MDEV-37008 ROW START/END columns added with ALTER TABLE are never INVISIBLE 2025-07-21 17:25:28 +03:00
autoinc.result MDEV-22562 Assertion `next_insert_id == 0' upon UPDATE on system-versioned table 2021-03-31 21:25:36 +03:00
binlog.result MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
commit_id.result Removed "<select expression> INTO <destination>" deprication. 2023-02-03 11:57:50 +03:00
create.result MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
cte,32bit.rdiff MDEV-32188 make TIMESTAMP use whole 32-bit unsigned range 2024-05-27 12:39:02 +02:00
cte.result MDEV-32188 make TIMESTAMP use whole 32-bit unsigned range 2024-05-27 12:39:02 +02:00
data.result Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
debug.result MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
delete.result MDEV-25644 UPDATE not working properly on transaction precise system versioned table 2023-07-20 18:22:31 +03:00
delete_history,32bit.rdiff MDEV-32188 make TIMESTAMP use whole 32-bit unsigned range 2024-05-27 12:39:02 +02:00
delete_history.result MariaDB 11.4.4 release 2024-11-08 07:17:00 +01:00
derived.result MDEV-15751 CURRENT_TIMESTAMP should return a TIMESTAMP [WITH TIME ZONE?] 2024-10-19 22:48:23 +02:00
foreign.result MDEV-28933: Per-table unique FOREIGN KEY constraint names 2025-07-08 12:30:27 +03:00
insert.result MDEV-36397 Record change_user command in MTR output 2025-06-23 20:38:36 +02:00
insert2.result MDEV-32188 make TIMESTAMP use whole 32-bit unsigned range 2024-05-27 12:39:02 +02:00
misc.result MDEV-32188 make TIMESTAMP use whole 32-bit unsigned range 2024-05-27 12:39:02 +02:00
not_embedded.result cleanup: disconnect before DROP USER 2025-07-16 09:14:33 +07:00
old_timestamp.result Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
online.result MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
optimized.result MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
partition,heap.rdiff Merge branch '11.4' into 11.5 2024-08-05 17:50:18 +02:00
partition.result Merge branch '11.8' into 12.0 2025-06-18 07:50:39 +02:00
replace.result MDEV-35343 unexpected replace behaviour when long unique index on 2025-01-14 18:56:13 +03:00
rpl.result MariaDB 11.4.4 release 2024-11-08 07:17:00 +01:00
rpl_mix.result MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
rpl_row.result MariaDB 11.4.4 release 2024-11-08 07:17:00 +01:00
rpl_stmt.result MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
select.result MDEV-32188 make TIMESTAMP use whole 32-bit unsigned range 2024-05-27 12:39:02 +02:00
select2,trx_id.rdiff Merge 10.11 into 11.4 2025-01-09 07:58:08 +02:00
select2.result Removed "<select expression> INTO <destination>" deprication. 2023-02-03 11:57:50 +03:00
simple.result MDEV-28632 Change default of explicit_defaults_for_timestamp to ON 2022-08-10 15:03:22 +02:00
sysvars.result Merge branch '10.3' into 10.4 2021-07-31 22:59:58 +02:00
trx_id.result MDEV-19123 Change default charset from latin1 to utf8mb4 2024-07-11 10:21:07 +04:00
update,trx_id.rdiff Merge branch '10.11' into 11.0 2023-08-09 07:53:48 +02:00
update-big.result MDEV-17554 Auto-create new partition for system versioned tables with history partitioned by INTERVAL/LIMIT 2022-05-06 15:11:02 +03:00
update.result fix incorrect merge 15700f54c2 2025-04-18 09:41:24 +02:00
view.result MDEV-23779 Error upon querying the view, that selecting from versioned table with partitions 2020-10-20 10:49:54 +03:00