Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
Description
Add a session server variable @@system_versioning_insert_history which allows to use ROW_START and ROW_END columns in the INSERT (unless they are normal visible (in SELECT *) fields, they have to be explicitly specified in INSERT as any invisible fields are). And if @@secure_timestamp allows the current user to modify @@timestamp then he should be able to insert directly into ROW_START/ROW_END columns.
The use case of this is to be able to dump the history with mysqldump and to load it back later (MDEV-16029). It provides a convenient way to have a row in the system versioned table with row_start=A and row_end=B. Without @@system_versioning_insert_history it can be achieved with
set @@timestamp=A; |
insert t1 values (...); |
set @@timestamp=B; |
delete from t1 where ... -- a condition to match the row that was just inserted |
So this new feature does not provide any new functionality, but allows to load the history dump much faster than with timestamp manipulations as above. In particular it does not allow to do anything that wasn't possible to do before, it requires exactly the same set of privileges as the snippet above, and is subject to the same set of restrictions.
Attachments
Issue Links
- blocks
-
MDEV-16029 mysqldump: dump and restore historical data
- Closed
- causes
-
MDEV-29674 History modification inserts records into a wrong partition without warning
- Stalled
-
MDEV-29721 Inconsistency upon inserting history with visible system versioning columns
- Closed
-
MDEV-29722 History modification requires specifying values for both period columns
- Closed
-
MDEV-29732 mysqlbinlog produces syntactically incorrect output with system_versioning_insert_history
- Closed
-
MDEV-29738 REPLACE under system_versioning_insert_history allows to change existing historical records
- Closed
-
MDEV-29741 SHOW BINLOG EVENTS shows garbage with system_versioning_insert_history=on
- Closed
-
MDEV-29750 Triggers can modify history
- Closed
-
MDEV-29805 Attempt to insert into system versioning columns on old server may make slave data diverge
- Closed
-
MDEV-29812 Confusing behavior upon ODKU trying to insert/modify history
- Closed
-
MDEV-29813 REPLACE/IGNORE does not work with historical records in InnoDB
- Closed
-
MDEV-29830 Assertion `table->versioned()' in THD::vers_insert_history_fast
- Closed
-
MDEV-29837 Column privileges prevent from direct history insert but not from timestamp tampering
- Open
- duplicates
-
MDEV-16734 LOAD DATA and system_versioning_modify_history
- Closed
- includes
-
MDEV-16587 Vers: SQL sysvers_show SELECT fix
- Closed
- is blocked by
-
MDEV-18727 System Versioning: optimize DML operation
- Closed
-
MDEV-29833 CREATE ... SELECT system_versioned_table causes invalid defaults
- Closed
- is part of
-
MDEV-29547 prepare 10.11.0 preview releases
- Closed
- relates to
-
MDEV-22413 Server hangs upon UPDATE/DELETE on a view reading from versioned partitioned table
- Closed
-
MDEV-29730 mysqldump --dump-history creates broken dump if there are precision-versioned tables
- Closed
-
MDEV-29736 mysqldump sets system_versioning_insert_history=1 twice and doesn't restore previous value
- Closed
-
MDEV-29737 mysqldump doesn't check for --tz-utc when it accepts --dump-history
- Closed
- links to