| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| | |
Reviewed-by: wlad@mariadb.com
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Original patch was contributed by Jani Tolonen <jani.k.tolonen@gmail.com>
https://github.com/an3l/server/commits/bb-10.3-anel-MDEV-21786-dump-sequence
which distinguishes data structure (linked list) of sequences from
tables.
- Added standard sql output to prevent future changes
of sequences and disabled locks for sequences.
- Added test case for `MDEV-20070: mysqldump won't work correct on
sequences` where table column depends on sequence value.
- Restore sequence last value in the following way:
- Find `next_not_cached_value` and use it to `setval()`
- We just need for logical restore, so don't execute `setval()`
- `setval()` should be showed also in case of `--no-data` option.
Reviewed-by: daniel@mariadb.org
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
Make open_table() fail if sequence should be opened, but it turns out to
be locked view.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
Problem was that the code didn't handle a transaction created in innodb
as part of a failed mysql_lock_tables()
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
MDEV-19320 Sequence gets corrupted and produces ER_KEY_NOT_FOUND
(Can't find record) after ALTER .. ORDER BY
|
| |
| |
| |
| |
| | |
MDEV-19977 Assertion `(0xFUL & mode) == LOCK_S ||
(0xFUL & mode) == LOCK_X' failed in lock_rec_lock
|
|\ \
| |/ |
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| | |
In main.index_merge_myisam we remove the test that was added in
commit a2d24def8cc42d27c72d833abfb39ef24a2b96ba because
it duplicates the test case that was added in
commit 5af12e463549e4bbc2ce6ab720d78937d5e5db4e.
|
| | |
|
|\ \
| |/ |
|
| |
| |
| | |
MDEV-17978 Server crash in SHOW CREATE SEQUENCE on a broken view
|
| | |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
Instead of checking lex->sql_command which does not corect in case of triggers
mark tables for insert.
|
|/
|
|
| |
Idea comes from MySQL which does something similar
|
|
|
|
|
|
|
| |
Fixed by adding table flag HA_WANTS_PRIMARY_KEY, which is like
HA_REQUIRE_PRIMARY_KEY but tells SQL upper layer that the storage engine
internally can handle tables without primary keys (for example for
sequences or trough user variables)
|
|
|
|
|
|
|
| |
This also fixes MDEV-16313 Assertion `next_free_value % real_increment == offset' fails upon CREATE SEQUENCE in galera cluster
Fixed by adding llabs() to assert.
Also adjusted auto_increment_offset to mod auto_increment_increment.
|
|
|
|
| |
Fixed by marking NEXTVAL() and LASTVAL() to be replicated row based
|
|
|
|
|
|
|
|
|
| |
Problem was that we used table->s->db_type() for accessing
handlerton of opened file instead of table->file->ht
Other bug fixed:
- Ensure that we set error if reopen_tables() fails
(This was the cause of assert)
|
|
|
|
|
| |
Debug command-line option should be loose, otherwise the test
fails before it has a chance to be skipped
|
|
|
|
|
|
|
|
| |
MDEV 13029 Assertion `ds_control' failed in debug_sync upon closing connection
after creating temporary sequence
This test doesn't fail anymore. Adding it to ensure that the bug doesn't
appear again.
|
|
|
|
|
|
|
| |
wrong
Looks like the bug was fixed some time ago (at least I can't repeat it).
I added the test case just have this case tested properly.
|
|
|
|
|
|
| |
multi-table format
It is test only (fix was done by Monty in ha_sequence::open by allocating ref)
|
|
|
|
|
| |
The bug was the we copied the lock type to the underlying engine even when
external_lock failed.
|
|
|
|
|
|
|
| |
multiple locks on sequences
Fixed by removing the check of single lock in sequence insert and let MDL
code handle deadlock detection
|
|
|
|
|
|
|
| |
next_free_value >= reserved_until' failed in sequence_definition::adjust_values upon SETVAL for sequence with INCREMENT 0
there was a problem with "next_free_value >= reserved_until" condition:
SEQUENCE::set_value handle next_free_value & reserved_until after adjust_values() call, so it is incorect to put assert on it in adjust_values()
|
|
|
|
|
|
|
|
|
| |
dict_sys_tables_type_valid(): Do not reject NO_ROLLBACK (sequence)
in ROW_FORMAT=REDUNDANT.
dict_load_table_low(): When flagging an error, assign *table = NULL.
Failure to do so could cause a crash if an error was flagged when
accessing INFORMATION_SCHEMA.INNODB_SYS_TABLES.
|
|
|
|
|
| |
MDEV-15742 Assertion `table_share->tmp_table != NO_TMP_TABLE ||
m_lock_type == 1' failed in handler::ha_write_row
|
|
|
|
|
|
| |
inserting into temporary sequence
Fix is to not upgrade MDL locks for temporary tables
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MDEV-14831 CREATE OR REPLACE SEQUENCE under LOCK TABLE corrupts the
sequence, causes ER_KEY_NOT_FOUND
The problem was that sequence_insert didn't properly handle the case
where there where there was a LOCK TABLE while creating the sequence.
Fixed by opening the sequence table, for inserting the first record, in
a new environment without any other open tables.
Found also a bug in Locked_tables_list::reopen_tables() where the lock
structure for the new tables was allocated in THD::mem_root, which causes
crashes. This could cause problems with other create tables done under
LOCK TABLES.
|
|
|
|
|
|
|
|
|
|
| |
MDEV-15117 Server crashes in in open_and_process_table or ASAN
heap-use-after-free in is_temporary_table upon creating/flushing
sequences.
Problem was that sequence_insert closed and reopened the like table
without proper locking. Fixed by ensuring that the like table is
not reopened in sequence_insert
|
|
|
|
|
|
| |
Problem was that sequence_insert closed and reopened the like table
without proper locking. Fixed by ensuring that the like table is
not reopened in sequence_insert
|
|\ |
|
| |
| |
| |
| |
| | |
MDEV 15105 "Bytes lost and Assertion `global_status_var.global_memory_used == 0' fails on shutdown after attempts
to LOCK/RENAME sequence"
|
| |
| |
| |
| |
| | |
MDEV-12887 UT_LIST_GET_LEN(trx->lock.trx_locks) == 0 when mysqldump
sequence
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
Fixes MDEV-14761 "Assertion `!mysql_parse_status || thd->is_error() ||
thd->get_internal_handler()' failed in parse_sql"
|
| |
| |
| |
| | |
MDEV-13732 User with SELECT privilege can ALTER sequence
|
|\ \
| |/ |
|
| |
| |
| |
| | |
dict_tf_is_valid(): Allow no-rollback tables in ROW_FORMAT=REDUNDANT.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
innobase_start_trx_and_assign_read_view
In CREATE SEQUENCE or CREATE TEMPORARY SEQUENCE, we should not start
an InnoDB transaction for inserting the sequence status record into
the underlying no-rollback table. Because we did this, a debug assertion
failure would fail in START TRANSACTION WITH CONSISTENT SNAPSHOT after
CREATE TEMPORARY SEQUENCE was executed.
row_ins_step(): Do not start the transaction. Let the caller do that.
que_thr_step(): Start the transaction before calling row_ins_step().
row_ins_clust_index_entry(): Skip locking and undo logging for no-rollback
tables, even for temporary no-rollback tables.
row_ins_index_entry(): Allow trx->id==0 for no-rollback tables.
row_insert_for_mysql(): Do not start a transaction for no-rollback tables.
|
| |
| |
| |
| |
| | |
The bug was that for prepared statments the new TABLE_LIST was
allocated in the wrong arena.
|