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
4624e565f3
System Versioning 1.0 pre6
...
Merge remote-tracking branch 'mariadb/bb-10.3-temporal-serg' into trunk
2017-12-15 18:12:18 +03:00
Eugene Kosov
0e0f1126e6
MDEV-14649 Assertion `t->mysql_col_len == 8' failed in row_insert_for_mysql
...
SQL: add check for internal partition table type
Also fixes MDEV-14654
2017-12-15 16:35:53 +03:00
Sergei Golubchik
18405e5fd9
Partitioning syntax for versioning
...
partition by system_time (
partition p0 history,
partition pn current
)
2017-12-14 20:19:14 +01: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
Sergei Golubchik
f149013393
rename versioning_* variables
2017-12-14 11:31:44 +01:00
Aleksey Midenkov
eab471260b
Paritioning: better error for disabled IB engine
2017-12-13 23:51:30 +03:00
Sergei Golubchik
e77080c7d5
if a table is partitioned by system_time, its partitions are not versioned
...
they store history and the history does not have history
2017-12-13 21:44:30 +01:00
Eugene Kosov
c66a20b494
SQL: better check for partition engine [ #366 ]
...
Cleaned up by @midenok.
2017-12-12 22:01:39 +03:00
Eugene Kosov
8c9c302016
SQL: fix implicit sys fields for implicit engine of partitioned table [ #366 ]
2017-12-08 16:26:18 +03:00
Sergei Golubchik
903be4e6be
remove my_error_as and one unnecessary error message
2017-12-08 16:26:16 +03:00
Sergei Golubchik
ea1ccfa500
SQL: regression fix: make NOW a valid identifier again [ #363 ]
...
* again, as in 10.2, NOW is a keyword only if followed by parentheses
* use AS OF CURRENT_TIMESTAMP or AS OF NOW()
* AS OF CURRENT_TIMESTAMP and AS OF NOW() mean AS OF NOW(6),
not AS OF NOW(0), (same behavior as in a DEFAULT clause)
2017-12-08 16:24:56 +03:00
Aleksey Midenkov
9980886cab
Revert "SQL: 1-row partition rotation fix [ fixes #260 ]"
...
Related to IB partitioning only.
This reverts commit 7e764ae188efe3f866222eb393513bf30e2b75ab.
2017-11-17 11:25:52 +03:00
Aleksey Midenkov
7e764ae188
SQL: 1-row partition rotation fix [ fixes #260 ]
2017-09-13 10:57:46 +03:00
Aleksey Midenkov
904b69cd9e
SQL: partitioning misc fixes [ closes #242 ]
...
* cleanup: *never* use assert(A && B)
* vers_setup_1() revisited
* vers_setup_2() renamed
* partition_element::type removed
* Copy ctor instead of memcpy()
* Handle return value from check_range_constants()
* Malloc error fix
* error, style, misc fixes
2017-09-07 15:49:11 +03:00
Aleksey Midenkov
88ccf759c1
SQL: pruning, derived, view fixes [ fixes #244 ]
2017-09-01 19:05:20 +03:00
Eugene Kosov
99baeaa951
SQL: MAX microseconds for current system rows [ fixes #245 ]
2017-08-18 14:29:22 +03:00
Aleksey Midenkov
53370de103
IB: partition-wise ha_innopart::rnd_init() [ fixes #208 ]
2017-08-04 17:17:28 +03:00
Aleksey Midenkov
4b0f1284ee
SQL: revisit error messages [ closes #217 ]
2017-07-03 14:04:34 +03:00
Eugene Kosov
2442a81eff
IB: read lock on partitioned table read [ closes #200 ]
...
Closes #204
2017-06-22 18:37:49 +03:00
Aleksey Midenkov
27a6ef0a9e
IB,SQL: Innopart UPDATE [ fixes #178 ]
2017-05-05 20:36:37 +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
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
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