Eugene Kosov
ac5eb9771e
SQL: Versioned SHOW CREATE TABLE [ closes #125 ]
2017-06-19 15:21:48 +03:00
Aleksey Midenkov
448374a228
SQL, IB: (0.10) VTMD tracking [ closes #124 ]
...
IB: Fixes in logic when to do versioned or usual row updates. Now it is
able to do unversioned updates for versioned tables just by disabling
`TABLE_SHARE::versioned` flag.
SQL: DDL tracking for:
* RENAME TABLE, ALTER TABLE .. RENAME TO;
* DROP TABLE;
* data-modifying operations (f.ex. ALTER TABLE .. ADD/DROP COLUMN).
2017-06-19 15:21:39 +03:00
Aleksey Midenkov
1c8a2de73e
Scripts: VTMD schema fix
2017-05-25 15:26:05 +03:00
Eugene Kosov
414651c80a
SQL: ALTER ADD COLUMN order fix
2017-05-25 15:25:04 +03:00
Eugene Kosov
84b4baef93
SQL: SHOW CREATE for GENERATED ALWAYS AS ROW
...
Test is main.mysqldump
2017-05-24 18:46:56 +03:00
kevg
45f6acd296
Scripts: VTMD table [ closes #122 ]
2017-05-24 18:46:56 +03:00
kevg
ec0002e908
Parser: useful attributes for AS ROW fields
2017-05-18 17:46:04 +03:00
kevg
fe71bdf568
Tests: order independence of versioning fields
2017-05-16 13:44:55 +03:00
kevg
0185872449
SQL: versioning DDL part I [ closes #172 ]
2017-05-05 20:36:40 +03:00
Aleksey Midenkov
44506f2669
SQL: vers_ sysvars renamed to versioning_
2017-05-05 20:36:40 +03:00
Aleksey Midenkov
7e0ff13d7a
SQL: derived fixes [related to #185 ]
2017-05-05 20:36:39 +03:00
Aleksey Midenkov
7153ff85a1
SQL: derived tables improvements [ closes #185 ]
2017-05-05 20:36:38 +03:00
Aleksey Midenkov
642525b9ad
Tests: cte_recursive, simple (new plans)
...
Author: Alvin Richards
2017-05-05 20:36:38 +03:00
Aleksey Midenkov
b19645caf5
Tests: verify_vtq() fix
2017-05-05 20:36:38 +03:00
Aleksey Midenkov
1e8a81dea6
SQL: CREATE VIEW and misc improvements [ fixes #183 ]
2017-05-05 20:36:37 +03:00
Aleksey Midenkov
27a6ef0a9e
IB,SQL: Innopart UPDATE [ fixes #178 ]
2017-05-05 20:36:37 +03:00
kevg
ecc6cd95c4
SQL: Default 'simple' algorithm for InnoDB 'AS OF' [ closes #175 ]
2017-05-05 20:36:36 +03:00
kevg
d64702d43a
SQL: different results when querying a VIEW from PREPARED STATEMENT and without it [ fixes #176 ]
2017-05-05 20:36:35 +03:00
kevg
ecd18bc099
SQL: allow FOR SYSTEM_TIME BEFORE for SELECT queries [ closes #170 ]
2017-05-05 20:36:35 +03:00
Aleksey Midenkov
9e9af76eaf
SQL: vers_current_time refactoring [ closes #117 ]
...
* session sysvars;
* moved value parsing to set variable phase;
* renamed 'temporal_current_timestamp' to 'vers_current_time'.
2017-05-05 20:36:34 +03:00
kevg
f77a4135bf
SQL: parsing of QUERY FOR [ fixes #159 ]
...
Reverts 46e36bbffa7cd8d9eb861a22755025ffe8751449 - SQL: fix assertion failure in parser
2017-05-05 20:36:34 +03:00
Aleksey Midenkov
67cd92b6f4
SQL, IB: Copy history via CREATE .. SELECT [ closes #157 , #152 ]
2017-05-05 20:36:33 +03:00
Aleksey Midenkov
7a525e7e93
Parser: no implicit NOT NULL for system fields [ fixes #163 ]
2017-05-05 20:36:33 +03:00
kevg
14f007f907
SQL: versioning in embedded JOINs [ fixes #160 ]
2017-05-05 20:36:33 +03:00
kevg
e8ae9f1ae9
SQL: VIEW NATURAL JOIN TABLE [ fixes #161 ]
2017-05-05 20:36:33 +03:00
kevg
352d83569b
SQL: versioning for tmp HEAP tables created from IB tables [ closes #158 ]
2017-05-05 20:36:32 +03:00
Aleksey Midenkov
1894fab11a
Tests: split versioning.select into combinations
2017-05-05 20:36:32 +03:00
kevg
fb0b3e5902
SQL: NATURAL LEFT JOIN for versioned tables [ fixes #156 ]
2017-05-05 20:36:32 +03:00
kevg
5a08bd3515
Tests: subqueries with JOINed tables with different FOR SYSTEM_TIME clauses [ closes #154 ]
2017-05-05 20:36:32 +03:00
kevg
7fd549095f
IB: return correct sys_trx_end in TRIGGER after UPDATE [ fixes #100 ]
2017-05-05 20:36:31 +03:00
kevg
4ebf680c9b
SQL: VIEW over a JOIN of versioned tables [ fixes #153 ]
2017-05-05 20:36:31 +03:00
kevg
9ea02899f8
SQL: nested equi-join for versioned table [ fixes #150 ]
2017-05-05 20:36:31 +03:00
kevg
a37cf5258b
SQL: CREATE VIEW with view_list from versioned table [ fixes #151 ]
2017-05-05 20:36:30 +03:00
kevg
d85e7a5e01
SQL: NATUAL JOIN on view + table [ fixes #148 ]
2017-05-05 20:36:30 +03:00
kevg
7a22dd3716
SQL: INNER JOIN USING with versioned tables [ fixes #147 ]
2017-05-05 20:36:29 +03:00
kevg
9355e3e966
SQL: CREATE TABLE LIKE for versioned tables [ fixes #146 ]
2017-05-05 20:36:29 +03:00
kevg
17745222a1
SQL: incorrect check on specific JOIN query [ fixes #145 ]
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
b8bfc06b26
SQL, Tests: temporal_current_timestamp for setting default AS OF timestamp [ closes #117 ]
2017-05-05 20:36:28 +03:00
Aleksey Midenkov
fc7da4dd4f
IB, SQL: InnoDB partitioning [ closes #118 ]
...
* native InnoDB partitioning for BY SYSTEM_TIME partitions.
2017-05-05 20:36:28 +03:00
kevg
fb801289f3
IB, Tests: ALTER with ALGORITHM=INPLACE for InnoDB [ closes #87 ]
2017-05-05 20:36:28 +03:00
kevg
bcc8ba78bc
SQL, Tests: versioning for nested queries and CTE [ closes #74 ]
2017-05-05 20:36:27 +03:00
kevg
7aa3ebdd18
SQL, Tests: FOR SYSTEM_TIME for VIEWs [ closes #98 ]
2017-05-05 20:36:27 +03:00
Aleksey Midenkov
26a3ff0a22
SQL: (0.6) Pruning for VERSIONING partitions [ closes #97 ]
...
* based on RANGE pruning by COLUMNS (sys_trx_end) condition
* removed DEFAULT; AS OF NOW is always last; current VERSIONING as last non-empty (or first empty)
* Min/Max stats in TABLE_SHARE
* ALTER TABLE ADD PARTITION adds before AS OF NOW partition
2017-05-05 20:36:25 +03:00
kevg
e069de7d9d
SQL: TRUNCATE FOR SYSTEM_TIME BEFORE [ closes #111 ]
2017-05-05 20:36:25 +03:00
Aleksey Midenkov
3a64d55aed
Parser, SQL: table-specific FOR SYSTEM_TIME [ closes #116 ]
...
* Syntax sugar: query-global QUERY FOR SYSTEM_TIME
2017-05-05 20:36:25 +03:00
kevg
57692d7117
SQL, IB: ALTER ADD AUTO_INCREMENT for versioned tables [ closes #112 ]
2017-05-05 20:36:24 +03:00
kevg
c9e4ac4b72
0.6: truncate history feature [ closes #96 ]
2017-05-05 20:36:24 +03:00
kevg
abb2f9488d
IB: skip sys_trx_start when comparing master and slave rows [ closes #107 ]
2017-05-05 20:36:24 +03:00
Aleksey Midenkov
4383e16cbe
IB: skip check_ref on historical record [ fixes #101 ]
2017-05-05 20:36:23 +03:00
Aleksey Midenkov
ea60760e47
SQL: missed FOR SYSTEM_TIME ALL for FOR_SYSTEM_TIME_UNSPECIFIED
...
[fixes #105 ]
2017-05-05 20:36:23 +03:00
Aleksey Midenkov
27d9e762a9
SQL: prohibit write-locking of historic rows [ fixes #102 ]
2017-05-05 20:36:23 +03:00
Aleksey Midenkov
46badf17c4
IB: FK cascade delete when parent versioned [ fixes #101 ]
2017-05-05 20:36:23 +03:00
Aleksey Midenkov
412dd1e1f3
SQL: FOR SYSTEM_TIME support in VIEW expression [ fixes #99 ]
2017-05-05 20:36:23 +03:00
Aleksey Midenkov
e45b85eb3e
SQL: replication from unversioned to versioned [ fixes #94 ]
2017-05-05 20:36:22 +03:00
kevg
ef10ef98ab
SQL: UPDATE on row-based replication [ closes : #94 ]
2017-05-05 20:36:22 +03:00
Aleksey Midenkov
e851c140f4
SQL: (0.5) Versioned partitions [ closes #77 ]
...
* one `AS OF NOW`, multiple `VERSIONING` partitions;
* rotation of `VERSIONING` partitions by record count, time period;
* rotation is multi-threaded;
* conventional subpartitions as bottom level for versioned partitions;
* `DEFAULT` keyword selects first `VERSIONING` partition;
* ALTER TABLE ADD/DROP partition;
* REBUILD PARTITION basic operation.
2017-05-05 20:36:21 +03:00
kevg
1742561b4e
fix use-after-free [ closes #89 ]
2017-05-05 20:36:21 +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
695c5aabad
SQL: error on FOR SYSTEM_TIME without any versioned tables
...
[fixes #88 ]
2017-05-05 20:36:20 +03:00
kevg
48d924693f
IB: do not insert into VTQ on optimized fields only update [ closes #80 ]
2017-05-05 20:36:20 +03:00
Aleksey Midenkov
eff649eba4
Parser: syntax extension FOR SYSTEM_TIME ALL
2017-05-05 20:36:19 +03:00
Aleksey Midenkov
a1c36f2e15
SQL: default NULL for sys fields + misc fixes
...
* sys fields are NULL by default (with exceptions, see comment about NOT_NULL_FLAG in #77 );
* error codes renamed, messages cleared out;
* SHOW CREATE TABLE fixed;
* set_max() fix;
* redundant flag setters/getters removed;
* flags are set in sql_yacc.yy, redundant copy_info_about_generated_fields() eliminated.
2017-05-05 20:36:18 +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
d54d36c45e
IB, SQL: (0.4) COMMIT_ID-based ordering of transactions
...
IB:
* removed CONCURR_TRX from VTQ;
* new fields in VTQ: COMMIT_ID, ISO_LEVEL.
SQL:
* renamed BEGIN_TS, COMMIT_TS to VTQ_BEGIN_TS, VTQ_COMMIT_TS;
* new functions: VTQ_COMMIT_ID, VTQ_ISO_LEVEL, VTQ_TRX_ID, VTQ_TRX_SEES, VTQ_TRX_SEES_EQ;
* versioned SELECT for IB uses VTQ_TRX_SEES, VTQ_TRX_SEES_EQ.
Closes #71
2017-05-05 20:36:17 +03:00
Kosov Eugene
1645e97cc9
Tests: forgotten foreign.result
2017-05-05 20:36:16 +03:00
Kosov Eugene
0581c018b7
SQL: NULL instead of optimized fields in versioned queries
2017-05-05 20:36:16 +03:00
Aleksey Midenkov
d65bc82909
Tests: (0.4) TRANSACTION support in queries ( #27 )
2017-05-05 20:36:16 +03:00
Kosov Eugene
e094228631
SQL: hide implicitly added columns from SELECT *
2017-05-05 20:36:14 +03:00
Aleksey Midenkov
5dea51657d
IB: optimized update for non-versioned fields
...
Fixes #53
2017-05-05 20:36:14 +03:00
Aleksey Midenkov
01c9d1c97f
SQL: SP idempotency fix
...
Fixes #52
2017-05-05 20:36:13 +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