| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
ha_partition::update_row on slave
Revert commit fd240a10e3a and add a test case
|
|
|
|
| |
just as SHOW CREATE TABLE omits them from the index definition
|
|
|
|
|
|
| |
write_record upon LOAD DATA
copy the corresponding line from mysql_prepare_insert()
|
| |
|
| |
|
|
|
|
|
| |
Remove 1668efb722d that introduced a special magic
behavior for UNIX_TIMESTAMP() in the AS OF context
|
|
|
|
| |
and delete few garbage-in-garbage-out tests
|
| |
|
| |
|
|
|
|
| |
Vers SQL: force VERS_ALTER_HISTORY_KEEP behavior in the slave thread
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
a partitioned table
Vers_parse_info::fix_alter_info(): disallow DROP SYSTEM VERSIONING
for system_time partitioned tables.
|
|
|
|
| |
add a test case
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
UPDATE
vers_insert_history_row(): do not insert rows with zero or negative lifetime.
mysql_update(): properly handle error from vers_insert_history_row()
|
|
|
|
|
|
|
|
|
|
|
| |
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]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
| |
* TIMESTAMP precedence fixed.
|
|
|
|
| |
Update partition stats on ha_partition::write_row()
|
| |
|
|
|
|
|
|
|
|
| |
SQL: DROP PERIOD FOR SYSTEM_TIME syntax
and remove ER_VERS_SYS_FIELD_EXISTS
originally by: Eugene Kosov
|
|
|
|
|
|
| |
also, don't rotate versioning partitions for DELETE HISTORY
originally by: Aleksey Midenkov
|
|
|
|
|
| |
don't expand AS OF in views, and, in particular, don't auto-add
AS OF NOW().
|
| |
|
|
|
|
| |
Hide INVISIBLE_SYSTEM columns from writes and from fix_vcol_expr().
|
|
|
|
| |
update all unique keys, not just PK
|
| |
|
| |
|
| |
|
|
|
|
|
| |
don't add columns to the drop list, INVISIBLE_SYSTEM columns
cannot be recognized as specified by the user
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
unless it's a test of SP or PS
|
| |
|
|
|
|
|
| |
followup to be81b00c843
Fix updates and deletes too
|
| |
|
| |
|
|
|
|
|
|
|
| |
changed to use DBUG keywords instead,
so that the code is compiled and tested
added tests.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
bool greedy_search
|
| |
|
|
|
|
|
|
| |
fill_record_n_invoke_before_triggers upon inserting into versioned table with trigger
|
|
|
|
|
| |
* show SYSTEM VERSIONED in INFORMATION_SCHEMA.TABLES
* show ROW START/ROW END columns in INFORMATION_SCHEMA.COLUMNS
|
|
|
|
|
| |
must behave as any other generated column: an error in the strict mode,
a warning otherwise.
|
|
|
|
|
| |
sys_trx_start -> row_start
sys_trx_end -> row_end
|