Aleksey Midenkov
585cb18ed1
MDEV-27452 TIMESTAMP(0) system field is allowed for certain creation of system-versioned table
...
First, we do not add VERS_UPDATE_UNVERSIONED_FLAG for system field and
that fixes SHOW CREATE result.
Second, we have to call check_sys_fields() for any CREATE TABLE and
there correct type is checked for system fields.
Third, we update system_time like as_row structures for ALTER TABLE
and that makes check_sys_fields() happy for ALTER TABLE when we make
system fields hidden.
2022-01-13 23:35:17 +03:00
Aleksey Midenkov
c8cece9144
MDEV-26928 Column-inclusive WITH SYSTEM VERSIONING doesn't work with explicit system fields
...
versioning_fields flag indicates that any columns were specified WITH
SYSTEM VERSIONING. In that case we imply WITH SYSTEM VERSIONING for
the whole table and WITHOUT SYSTEM VERSIONING for the other columns.
2021-11-02 11:49:47 +03:00
Aleksey Midenkov
e09e304b78
MDEV-16857 system-invisible row_end is displayed in SHOW INDEX
...
Skip system-invisible keypart in get_schema_stat_record().
2021-07-06 01:02:09 +03:00
Aleksey Midenkov
9b46d8e5c4
MDEV-23968 CREATE TEMPORARY TABLE .. LIKE (system versioned table) returns error if unique index is defined in the table
...
- Remove row_start/row_end from keys in fix_create_like();
- Disable manual adding of implicit row_start/row_end to indexes on
CREATE TABLE. INVISIBLE_SYSTEM fields are unoperable by user;
- Fix memory leak on allocation of Key_part_spec.
2020-10-20 10:49:54 +03:00
Aleksey Midenkov
6684989801
versioning test suite fixes
...
Preparation for MDEV-16210:
replace.test:
key_type combinations: PK and UNIQUE.
foreign.test:
Preparation for key_type combinations.
Other fixes:
* Merged versioning.update2 into versioning.update;
* Removed test2 database and done individual drop instead.
2019-10-10 00:20:34 +03:00
Nikita Malyavin
f6a7730c45
MDEV-16490: It's possible to make a system versioned table without any versioning field
...
* do not allow versioned table to be without versioned (non-system) fields
* prohibit changing field versioning, when removing table versioning
* handle CREATE...SELECT as well
2019-09-09 20:14:47 +03:00
Monty
a071e0e029
Merge branch '10.2' into 10.3
2019-09-03 13:17:32 +03:00
Eugene Kosov
6473641b9a
MDEV-18512 using DATETIME(6) as row_start/row_end crashes server
...
Disallow DATETIME for SYSTEM VERSIONING tables.
2019-05-20 15:19:01 +04:00
Sergei Golubchik
e506bef430
MDEV-15458 Segfault in heap_scan() upon UPDATE after ADD SYSTEM VERSIONING
...
* Versioning tests support
Closes #1043
2019-05-17 13:53:22 +02:00
Eugene Kosov
3d649c6e37
MDEV-15408 Confusing error message upon ER_VERS_FIELD_WRONG_TYPE while omitting UNSIGNED in BIGINT
...
Improve diagnostics. Try to guess what type user tried to type.
2019-05-17 13:53:22 +02:00
Sergei Golubchik
9bd3af97df
MDEV-15413 Unexpected errors upon CREATE TABLE .. WITH SYSTEM VERSIONING AS SELECT ...
...
numerous fixes for CREATE ... SELECT with system versioning:
In CREATE ... SELECT the table is created based on the result set,
field properties do not count. That is
* field invisibility is *not* copied over
* AS ROW START/END is *not* copied over
* the history is *not* copied over
* system row_start/row_end fields can *not* be created from the SELECT part
2018-04-10 13:12:36 +02:00
Sergei Golubchik
052668f500
simplify versioning tests
2018-02-24 00:50:57 +01:00
Sergei Golubchik
558ee2ee84
fix --embedded tests
2018-01-13 02:01:35 +01:00
Sergei Golubchik
26971c9aea
SQL: versioning info in INFORMATION_SCHEMA
...
* show SYSTEM VERSIONED in INFORMATION_SCHEMA.TABLES
* show ROW START/ROW END columns in INFORMATION_SCHEMA.COLUMNS
2018-01-10 11:54:21 +03:00
Sergei Golubchik
6470a9343d
Tests: use bigint in versioning.create,trx_id
2018-01-10 11:53:20 +03:00
Sergei Golubchik
b85efdc3af
rename system_time columns
...
sys_trx_start -> row_start
sys_trx_end -> row_end
2018-01-09 15:49:07 +03:00
Sergei Golubchik
ca4dbcff69
Tests: system columns *not* being auto-renamed (create, alter)
...
it's correct, they preserve their documented names
2018-01-09 14:18:39 +03:00
Aleksey Midenkov
b8b5d8d87d
MDEV-14828 Server crashes in JOIN::prepare / setup_fields on 2nd execution of PS [ fixes #437 ]
2018-01-02 15:28:50 +03:00
Aleksey Midenkov
8efca72f4a
MDEV-14792 INSERT without column list into table with explicit versioning columns produces bad data
2018-01-01 23:37:02 +03:00
Sergei Golubchik
9daf583ab6
fix CREATE ... SELECT
...
move table->vers_update_fields() where it belongs - into fill_record(),
right after table_arg->update_virtual_fields()
2017-12-29 00:23:13 +03:00
Sergei Golubchik
1a06a48230
Tests: ER_VERS_DUPLICATE_ROW_START_END check
2017-12-29 00:23:13 +03:00
Eugene Kosov
a04a283469
MDEV-14692 Server crash in MDL_ticket::has_stronger_or_equal_type
...
SQL: disable system-versioning stuff on TEMPORARY tables
2017-12-21 10:14:25 +03:00
Aleksey Midenkov
ee68d019d1
SQL: removed VERS_HIDDEN_FLAG [ closes #409 ]
2017-12-19 16:12:56 +03:00
Aleksey Midenkov
b55a149194
Timestamp-based versioning for InnoDB [ closes #209 ]
...
* Removed integer_fields check
* Reworked Vers_parse_info::check_sys_fields()
* Misc renames
* versioned as vers_sys_type_t
* Removed versioned_by_sql(), versioned_by_engine()
versioned() works as before;
versioned(VERS_TIMESTAMP) is versioned_by_sql();
versioned(VERS_TRX_ID) is versioned_by_engine().
* create_tmp_table() fix
* Foreign constraints for timestamp-based
* Range auto-specifier fix
* SQL: 1-row partition rotation fix [fixes #260 ]
* Fix 'drop system versioning, algorithm=inplace'
2017-12-18 19:03:51 +03:00
Aleksey Midenkov
27187443ef
MDEV-14650 Assertion 0 failed in TABLE::vers_update_fields [ fixes #402 ]
...
SQL: fixed selecion of handlerton by respecting partitioning
2017-12-14 19:45:11 +03:00
Aleksey Midenkov
459f40a232
SQL: create..select revisited [ closes #370 ]
2017-12-12 21:30:49 +03:00
Eugene Kosov
03b54a6b8a
SQL: table with duplicate ROW START/END columns [ fixes #369 ]
2017-12-08 16:26:17 +03:00
Sergei Golubchik
b3fe45bcd4
rephrase error messages, fix quoting
2017-12-08 16:26:17 +03:00
Sergei Golubchik
903be4e6be
remove my_error_as and one unnecessary error message
2017-12-08 16:26:16 +03:00
Aleksey Midenkov
5bf14f93a4
Tests: fix combinations
2017-12-04 00:49:44 +03:00
Aleksey Midenkov
5c820a7125
SQL: create_like_table strip versioning for tmp tables [ #365 bug 6]
...
Tests affected (forced versioning):
rpl.rpl_row_merge_engine
2017-12-01 12:21:49 +03:00
Aleksey Midenkov
7320c683b9
Parser: disable SV for tmp tables [ closes #344 ]
2017-11-27 15:07:33 +03:00
Eugene Kosov
f9b8c908a0
SQL: ADD/DROP SYSTEM VERSIONING syntax for ALTER TABLE
2017-11-17 11:25:49 +03:00
Eugene Kosov
b4cd2d3c12
Tests: duplicate system versioning field
2017-08-18 15:30:55 +03:00
Aleksey Midenkov
d3d2ea9fd5
SQL, Parser: system_time logic and syntax fixes [ closes #237 ]
2017-08-08 17:12:16 +03:00
Eugene Kosov
1903b407da
SQL: ignore columns WITHOUT VERSIONING [ fixes #220 ]
2017-07-04 17:45:14 +03:00
Aleksey Midenkov
72de7721b9
SQL: No implicit versioning when created from SELECT [ closes #219 ]
2017-07-03 17:38:59 +03:00
Eugene Kosov
46d572dde4
SQL: default engine fix in create from versioned [ fixes #206 ]
2017-06-29 12:07:16 +03:00
kevg
ec0002e908
Parser: useful attributes for AS ROW fields
2017-05-18 17:46:04 +03:00
Aleksey Midenkov
67cd92b6f4
SQL, IB: Copy history via CREATE .. SELECT [ closes #157 , #152 ]
2017-05-05 20:36:33 +03:00
kevg
9355e3e966
SQL: CREATE TABLE LIKE for versioned tables [ fixes #146 ]
2017-05-05 20:36:29 +03:00
kevg
204b54d2d9
SQL: create versioned tmp table from query [ fixes #144 ]
2017-05-05 20:36:28 +03:00
kevg
a17b8f707f
0.5: basic support for ALTER TABLE for InnoDB and other storage engines [ closes #57 ]
2017-05-05 20:36:21 +03:00
Aleksey Midenkov
303d72a0f4
SQL: redundant error codes reduced
...
Replaced codes:
ER_NO_VERSIONED_FIELDS_IN_VERSIONED_TABLE
ER_MISSING_WITH_SYSTEM_VERSIONING
ER_SYS_START_NOT_SPECIFIED
ER_SYS_END_NOT_SPECIFIED
ER_MISSING_PERIOD_FOR_SYSTEM_TIME
ER_PERIOD_FOR_SYSTEM_TIME_CONTAINS_WRONG_START_COLUMN
ER_PERIOD_FOR_SYSTEM_TIME_CONTAINS_WRONG_END_COLUMN
ER_SYS_START_AND_SYS_END_SAME
ER_SYS_START_MORE_THAN_ONCE
ER_SYS_END_MORE_THAN_ONCE
with:
ER_VERS_WRONG_PARAMS
ER_VERS_FIELD_WRONG_TYPE
2017-05-05 20:36:18 +03:00
Aleksey Midenkov
d3b737d910
Tests: moved to dedicated versioning suite
...
Run `mtr --suite=versioning` or `mtr versioning.<test-name>`
2017-05-05 20:36:13 +03:00