summaryrefslogtreecommitdiff
path: root/mysql-test/suite/versioning/r
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-11952 Oracle-style packages: stage#5mariadb-10.3.5bb-10.3-compatibilityAlexander Barkov2018-02-251-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - CREATE PACKAGE [BODY] statements are now entirely written to mysql.proc with type='PACKAGE' and type='PACKAGE BODY'. - CREATE PACKAGE BODY now supports IF NOT EXISTS - DROP PACKAGE BODY now supports IF EXISTS - CREATE OR REPLACE PACKAGE [BODY] is now supported - CREATE PACKAGE [BODY] now support the DEFINER clause: CREATE DEFINER user@host PACKAGE pkg ... END; CREATE DEFINER user@host PACKAGE BODY pkg ... END; - CREATE PACKAGE [BODY] now supports SQL SECURITY and COMMENT clauses, e.g.: CREATE PACKAGE p1 SQL SECURITY INVOKER COMMENT "comment" AS ... END; - Package routines are now created from the package CREATE PACKAGE BODY statement and don't produce individual records in mysql.proc. - CREATE PACKAGE BODY now supports package-wide variables. Package variables can be read and set inside package routines. Package variables are stored in a separate sp_rcontext, which is cached in THD on the first packate routine call. - CREATE PACKAGE BODY now supports the initialization section. - All public routines (i.e. declared in CREATE PACKAGE) must have implementations in CREATE PACKAGE BODY - Only public package routines are available outside of the package - {CREATE|DROP} PACKAGE [BODY] now respects CREATE ROUTINE and ALTER ROUTINE privileges - "GRANT EXECUTE ON PACKAGE BODY pkg" is now supported - SHOW CREATE PACKAGE [BODY] is now supported - SHOW PACKAGE [BODY] STATUS is now supported - CREATE and DROP for PACKAGE [BODY] now works for non-current databases - mysqldump now supports packages - "SHOW {PROCEDURE|FUNCTION) CODE pkg.routine" now works for package routines - "SHOW PACKAGE BODY CODE pkg" now works (the package initialization section) - A new package body level MDL was added - Recursive calls for package procedures are now possible - Routine forward declarations in CREATE PACKATE BODY are now supported. - Package body variables now work as SP OUT parameters - Package body variables now work as SELECT INTO targets - Package body variables now support ROW, %ROWTYPE, %TYPE
* MDEV-15405 Mixed replication fails with "Could not execute Delete_rows_v1 ↵Sergei Golubchik2018-02-251-0/+11
| | | | | | | | | | | | event" upon DELETE HISTORY Allow slave thread to set time for system versioning Note that every binlog event stores now(0), while microseconds are only stored when they're actually used in the query. Meaning for unversioned->versioned replication, there will be no microseconds. Need to compensate for that.
* MDEV-15395 Wrong result or Assertion `old_part_id == m_last_part' failed in ↵Sergei Golubchik2018-02-241-0/+7
| | | | | | ha_partition::update_row on slave Revert commit fd240a10e3a and add a test case
* omit system invisible fields from the duplicate key errorSergei Golubchik2018-02-241-1/+1
| | | | just as SHOW CREATE TABLE omits them from the index definition
* MDEV-15330 Server crash or assertion `table->insert_values' failure in ↵Sergei Golubchik2018-02-241-0/+8
| | | | | | write_record upon LOAD DATA copy the corresponding line from mysql_prepare_insert()
* don't allow TIMESTAMP(6) versioning and FK with CASCADE or SET NULLSergei Golubchik2018-02-243-74/+188
|
* unify error messages a bitSergei Golubchik2018-02-241-2/+12
|
* MDEV-14645: AS OF TIMESTAMP is misused as TRX_IDSergei Golubchik2018-02-242-5/+5
| | | | | Remove 1668efb722d that introduced a special magic behavior for UNIX_TIMESTAMP() in the AS OF context
* remove @@system_versioning_innodb_algorithm_simpleSergei Golubchik2018-02-242-37/+0
| | | | and delete few garbage-in-garbage-out tests
* Tests: versioning.foreign check row_end after constraint executionAleksey Midenkov2018-02-241-3/+6
|
* simplify versioning testsSergei Golubchik2018-02-2411-1247/+465
|
* MDEV-14767 system_versioning_alter_history breaks ALTER replicationAleksey Midenkov2018-02-241-0/+42
| | | | Vers SQL: force VERS_ALTER_HISTORY_KEEP behavior in the slave thread
* Tests: partitioning cases for duplicate bugsAleksey Midenkov2018-02-241-0/+18
| | | | | | | | | MDEV-15191 Assertion `bit < (map)->n_bits' failed in bitmap_is_set upon INSERT MDEV-15036 Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' in Diagnostics_area::set_ok_status or unexpected ER_RANGE_NOT_INCREASING_ERROR
* MDEV-15168 Unexpected ER_VERS_ENGINE_UNSUPPORTED upon dropping versioning on ↵Eugene Kosov2018-02-241-0/+7
| | | | | | | a partitioned table Vers_parse_info::fix_alter_info(): disallow DROP SYSTEM VERSIONING for system_time partitioned tables.
* MDEV-15103 Assertion in ha_partition::part_records() for updating VIEWSergei Golubchik2018-02-241-0/+8
| | | | add a test case
* cannot rotate both by INTERVAL and LIMITSergei Golubchik2018-02-241-0/+5
|
* MDEV-15190 Bad error for non-versioned table PARTITION BY SYSTEM_TIMESergei Golubchik2018-02-241-2/+2
|
* MDEV-14829 Assertion `0' failed in Protocol::end_statement upon concurrent ↵Eugene Kosov2018-02-242-1/+21
| | | | | | | | UPDATE vers_insert_history_row(): do not insert rows with zero or negative lifetime. mysql_update(): properly handle error from vers_insert_history_row()
* MDEV-15001 no tests for system_versioning_innodb_algorithm_simpleAleksey Midenkov2018-02-242-4/+95
| | | | | | | | | | | Vers SQL: TRT fix getting TRX_ID by COMMIT_TS Fixed wrong assumption that records are ordered by COMMIT_TS. This is anyway a quick hack until tempesta-tech#314 is done. See also FIXME and TODO in TR_table::query(MYSQL_TIME, bool). Test: SEES case for trx_id.test [closes #456]
* PARTITION BY SYSTEM_TIME INTERVAL ...Sergei Golubchik2018-02-232-30/+122
| | | | | | | | | | | | | | | | | | | Lots of changes: * calculate the current history partition in ::external_lock(), not in ::write_row() or ::update_row() * remove dynamically collected per-partition row_end stats * no full table scan in open_table_from_share to calculate these stats, no manual MDL/thr_locks in open_table_from_share * no shared stats in TABLE_SHARE = no mutexes or condition waits when calculating current history partition * always compare timestamps, don't convert them to MYSQL_TIME (avoid DST ambiguity, and it's faster too) * correct interval handling, 1 month = 1 month, not 30 * 24 * 3600 seconds * save/restore first partition start time, and count intervals from there * only allow to drop first partitions if INTERVAL * when adding new history partitions, split the data in the last history parition, if it was overflowed * show partition boundaries in INFORMATION_SCHEMA.PARTITIONS
* cleanup: remove *.opt files from the versioning suiteSergei Golubchik2018-02-231-0/+1
| | | | | | | | use include/have_xxx.inc when some feature needs to be present (because --xxx in the opt file will fail if the xxx is not compiled in) set variables in the test, not on the command line, to avoid unnecessary server restarts (they're must slower than SET).
* MDEV-15004 parser greedily parses AS OF TIMESTAMPAleksey Midenkov2018-02-235-8/+18
| | | | * TIMESTAMP precedence fixed.
* Vers SQL: partition rotation by INTERVAL fixAleksey Midenkov2018-02-231-5/+24
| | | | Update partition stats on ha_partition::write_row()
* cleanup: remove a pretty formatting function from a testSergei Golubchik2018-02-231-16/+12
|
* MDEV-14798 Add, drop system versioning semantic and syntaxSergei Golubchik2018-02-231-2/+39
| | | | | | | | SQL: DROP PERIOD FOR SYSTEM_TIME syntax and remove ER_VERS_SYS_FIELD_EXISTS originally by: Eugene Kosov
* SQL: Truncate history of partitioned table [fixes #399, closes #403]Sergei Golubchik2018-02-231-3/+12
| | | | | | also, don't rotate versioning partitions for DELETE HISTORY originally by: Aleksey Midenkov
* MDEV-15146 SQLError[4122]: View is not system versionedSergei Golubchik2018-02-121-5/+22
| | | | | don't expand AS OF in views, and, in particular, don't auto-add AS OF NOW().
* Remove ER_NON_VERSIONED_FIELD_IN_HISTORICAL_QUERYSergei Golubchik2018-02-121-33/+0
|
* MDEV-14785 SYSTEM_INVISIBLE behaviour not consistentSergei Golubchik2018-02-121-1/+6
| | | | Hide INVISIBLE_SYSTEM columns from writes and from fix_vcol_expr().
* ALTER TABLE ... DROP COLUMN sys_startSergei Golubchik2018-02-121-0/+17
| | | | update all unique keys, not just PK
* ALTER TABLE ... DROP COLUMN sys_start should rename a "dropped" columnSergei Golubchik2018-02-122-3/+10
|
* Cannot DROP VERSIONING without dropping all visible AS ROW fieldsSergei Golubchik2018-02-121-0/+2
|
* Don't allow adding AS ROW START column to a not versioned tableSergei Golubchik2018-02-121-0/+2
|
* ALTER TABLE ... DROP VERSIONINGSergei Golubchik2018-02-121-0/+4
| | | | | don't add columns to the drop list, INVISIBLE_SYSTEM columns cannot be recognized as specified by the user
* Merge bb-10.2-ext into 10.3Marko Mäkelä2018-01-301-2/+2
| | | | | | | | | | MDEV-11415 Remove excessive undo logging during ALTER TABLE…ALGORITHM=COPY Move a test from innodb.rename_table_debug to innodb.alter_copy. ha_innobase::extra(HA_EXTRA_BEGIN_ALTER_COPY): Register id-versioned tables so that mysql.transaction_registry will be updated, even for empty tables that are subjected to ALTER TABLE…ALGORITHM=COPY.
* Fixing versioning.insert and versioning.replace test failes.Alexander Barkov2018-01-292-3/+3
| | | | | | | | Tests started to fail after a merge of MDEV-15107 (from bb-10.2-ext to 10.3), because MDEV-15107 additionally fixed this problem: MDEV-15112 Inconsistent evaluation of spvariable=0 in strict mode Modifying tests not to reply on the pre-MDEV-15112 behavior.
* cleanup: don't generate tests with SP or PSSergei Golubchik2018-01-132-70/+77
| | | | unless it's a test of SP or PS
* fix --embedded testsSergei Golubchik2018-01-131-4/+1
|
* MDEV-14788 System versioning cannot be based on local timestamps, as it is nowSergei Golubchik2018-01-132-4/+8
| | | | | followup to be81b00c843 Fix updates and deletes too
* fix tests on windowsSergei Golubchik2018-01-131-0/+1
|
* debug: don't hide row_start/row_end columns for testingSergei Golubchik2018-01-131-1/+16
|
* remove dead VERS_EXPERIMENTAL codeSergei Golubchik2018-01-132-1/+40
| | | | | | | changed to use DBUG keywords instead, so that the code is compiled and tested added tests.
* remove "Transaction-based system versioning is EXPERIMENTAL" warningSergei Golubchik2018-01-133-34/+0
| | | | | | | | | | and the system_versioning_transaction_registry variable. The user enables transaction registry by specifying BIGINT for row_start/row_end columns. check mysql.transaction_registry structure on the first open, not on startup. Avoid warnings unless transaction_registry is actually used.
* MDEV-14923 Assertion upon INSERT into locked versioned partitioned tableAleksey Midenkov2018-01-131-0/+8
|
* MDEV-14816 Assertion `join->best_read < double(1.797...e+308L)` failed in ↵Eugene Kosov2018-01-123-7/+76
| | | | | | bool greedy_search
* MDEV-14798 Add, drop system versioning semantic and syntaxEugene Kosov2018-01-121-24/+7
|
* MDEV-14871 Server crashes in fill_record / ↵Eugene Kosov2018-01-101-0/+6
| | | | | | fill_record_n_invoke_before_triggers upon inserting into versioned table with trigger
* SQL: versioning info in INFORMATION_SCHEMASergei Golubchik2018-01-101-0/+64
| | | | | * show SYSTEM VERSIONED in INFORMATION_SCHEMA.TABLES * show ROW START/ROW END columns in INFORMATION_SCHEMA.COLUMNS
* Tests: inserting an explicit value into a vers columnSergei Golubchik2018-01-091-1/+5
| | | | | must behave as any other generated column: an error in the strict mode, a warning otherwise.
* rename system_time columnsSergei Golubchik2018-01-0910-100/+100
| | | | | sys_trx_start -> row_start sys_trx_end -> row_end