0e1f7f5c4a
MDEV-18057 Assertion `(node->state == 5) || (node->state == 6)' failed in row_upd_sec_step upon DELETE after UPDATE failed due to FK violation
...
The idea of the fix: reset state from previous query.
row_upd_clust_step(): reset cached index before updating a clustered index
Closes #1133
2019-01-25 16:35:50 +02:00
19a182b1ea
MDEV-15364 FOREIGN CASCADE operations in system versioned referenced tables
...
Make foreign system versioning tables work in CASCADE UPDATE/SET NULL.
In that case basically row update is performed. This patch makes insert
of a historical row performed too.
row_update_versioned_insert(): restores btr_pcur_t, reads row from it, makes
row historical and inserts to table.
row_ins_check_foreign_constraint(): disable constraint check for historical
rows because it has no sense. Also check will fail always, because referenced
table is updated at that point.
row_update_cascade_for_mysql(): insert historical row for system versioning
tables before updating current row.
revert DATA_VERSIONED -> DATA_UNVERSIONED
2018-03-27 22:35:10 +03:00
0cf97ad5b9
IB: CASCADE operation for DELETE
...
* Removed "Not supported for TIMESTAMP-based" error
* Fixed code duplication with node->vers_set_fields()
* Recovered foreign.test
[closes tempesta-tech#473]
2018-03-19 17:32:46 +03:00
485325e7e3
don't allow TIMESTAMP(6) versioning and FK with CASCADE or SET NULL
2018-02-24 01:28:50 +01:00
5fb08323e1
Tests: versioning.foreign check row_end after constraint execution
2018-02-24 00:50:57 +01:00
f1bd02d994
MDEV-15004 parser greedily parses AS OF TIMESTAMP
...
* TIMESTAMP precedence fixed.
2018-02-23 15:33:23 +01:00
0fe67f2ef9
MDEV-14744 Assertion `table->versioned() == m_prebuilt->table->versioned()' failed in ha_innobase::open
2017-12-29 00:23:07 +03:00
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
a3802ecb58
IB: assertion failure on delete with foreign [ #366 ]
2017-12-02 12:54:32 +03:00
4383e16cbe
IB: skip check_ref on historical record [ fixes #101 ]
2017-05-05 20:36:23 +03:00
46badf17c4
IB: FK cascade delete when parent versioned [ fixes #101 ]
2017-05-05 20:36:23 +03:00
a22cbc453f
IB: (0.4) foreign keys for versioned tables ( #58 )
2017-05-05 20:36:15 +03:00