Releases: tempesta-tech/mariadb
Releases · tempesta-tech/mariadb
1.0: Review fixes and merge into 10.3
Added:
- IB-layer VTQ is moved to SQL-layer TRT (Transaction Registry Table);
- IB System Versioning timestamp-based mode;
- MariaDB review fixes and syntax changes.
Fixed:
- More than 50 bugs fixed.
Review, bug fixes
Added:
- IB system fields comparison with timestamps.
Fixed:
- Syntax changes:
QUERY FOR
removed;- system fields drop rules for WITHOUT SYSTEM VERSIONING;
- no implicit versioning for CREATE ... SELECT.
- partitioning fixes;
- SYSTEM_TIME for derived revisited;
- Error messages revisited;
- minor refactorings;
- 14 bugs fixed.
DDL survival: VTMD tracking
Added:
- VTMD tables are created as copy of mysql.vtmd_template;
- VTMD tracking:
CREATE
,ALTER
,DROP
,RENAME
; - Versioned
SHOW CREATE TABLE
as tracked by VTMD; - Additional clauses for
GENERATED AS ROW
fields:NOT NULL
,[PRIMARY] KEY
,UNIQUE [KEY]
,COMMENT
.
Fixed:
- IB: start_time_micro usage;
CREATE TABLE .. LIKE
;ALTER TABLE .. ADD COLUMN
.
DDL survival intro; Advanced derived handling
Based on Apr-9 10.3
Added:
- Retain intact history as separate tables on data-changing DDL (controlled by
versioning_ddl_survival
); versioning_ddl_survival
turns DDL Survival ON/OFF;- SYSTEM_TIME is propagated downward/upward in derived tables and views;
- Default simple algorithm for InnoDB (controlled by
versioning_innodb_algorithm_simple
); FOR SYSTEM_TIME BEFORE
in SELECT.
Fixed:
- Prefix changed for versioning sysvars from
vers_
toversioning_
; - Innopart UPDATE fix;
- Misc bug fixes.
Known problems:
Condition commit_ts >= begin_ts
is unstable (#189)
Bug fixes, CREATE .. SELECT
Added:
- System variables:
vers_current_timestamp
,vers_force
,vers_hide
; - Forced versioning mode (
vers_force
) to create all tables with System Versioning; - 4 modes of
vers_hide
: AUTO, IMPLICIT, FULL, NEVER; CREATE .. SELECT
to copy structure and data of versioned tables.
Fixed:
- 14 bugs fixed (mostly found in
main.select
with forced versioning mode); - temporary tables from InnoDB tables.
InnoDB partitioning, syntax extensions
Partition pruning, History truncation
Added:
- Partition pruning [#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);
- ALTER TABLE ADD PARTITION adds before AS OF NOW partition;
- Min/Max partition stats are multi-threaded.
- History truncation [#96, #111]:
- FOR SYSTEM_TIME clause for TRUNCATE TABLE;
- FOR SYSTEM_TIME BEFORE syntax extension.
- FOR SYSTEM_TIME is now table-local or query-global [#116]:
- QUERY keyword makes it query-global.
Fixed:
Server-level partitioning, ALTER TABLE
Added:
- Server-level partitioning [#77]:
- one
AS OF NOW
, multipleVERSIONING
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 firstVERSIONING
partition;- ALTER TABLE ADD/DROP partition;
- REBUILD PARTITION basic operation.
- one
- ALTER TABLE basic support [#57].
Fixed:
Transaction visibility
Based on mariadb-10.2.2.
Added:
- TRANSACTION keyword in SELECT query;
- TIMESTAMP/TRANSACTION keyword can be used before FROM ... TO, BETWEEN ... AND;
- COMMIT_ID-based transaction ordering and transaction visibility in SELECT;
- Foreign Key constraints.
Fixed:
- implicit sys_trx_* columns are hidden from SELECT *;
- NULL in unverstioned fields in historical queries.