mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-18512 using DATETIME(6) as row_start/row_end crashes server
Disallow DATETIME for SYSTEM VERSIONING tables.
This commit is contained in:
committed by
Alexander Barkov
parent
b77460508e
commit
6473641b9a
@ -508,5 +508,12 @@ row_end bigint as row end,
|
||||
period for system_time (row_start, row_end)
|
||||
) engine=myisam with system versioning;
|
||||
ERROR HY000: `row_start` must be of type TIMESTAMP(6) for system-versioned table `t1`
|
||||
create table t (
|
||||
a int,
|
||||
row_start datetime(6) generated always as row start,
|
||||
row_end datetime(6) generated always as row end,
|
||||
period for system_time(row_start, row_end)
|
||||
) with system versioning;
|
||||
ERROR HY000: `row_start` must be of type TIMESTAMP(6) for system-versioned table `t`
|
||||
drop database test;
|
||||
create database test;
|
||||
|
@ -387,5 +387,14 @@ create or replace table t1 (
|
||||
period for system_time (row_start, row_end)
|
||||
) engine=myisam with system versioning;
|
||||
|
||||
--error ER_VERS_FIELD_WRONG_TYPE
|
||||
create table t (
|
||||
a int,
|
||||
row_start datetime(6) generated always as row start,
|
||||
row_end datetime(6) generated always as row end,
|
||||
period for system_time(row_start, row_end)
|
||||
) with system versioning;
|
||||
|
||||
|
||||
drop database test;
|
||||
create database test;
|
||||
|
@ -7433,8 +7433,7 @@ bool Vers_parse_info::check_conditions(const Lex_table_name &table_name,
|
||||
|
||||
static bool is_versioning_timestamp(const Create_field *f)
|
||||
{
|
||||
return (f->type_handler() == &type_handler_datetime2 ||
|
||||
f->type_handler() == &type_handler_timestamp2) &&
|
||||
return f->type_handler() == &type_handler_timestamp2 &&
|
||||
f->length == MAX_DATETIME_FULL_WIDTH;
|
||||
}
|
||||
|
||||
|
@ -2025,7 +2025,6 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write,
|
||||
switch (field_type)
|
||||
{
|
||||
case MYSQL_TYPE_TIMESTAMP2:
|
||||
case MYSQL_TYPE_DATETIME2:
|
||||
break;
|
||||
case MYSQL_TYPE_LONGLONG:
|
||||
if (vers_can_native)
|
||||
|
Reference in New Issue
Block a user