mariadb/storage/innobase/include
Marko Mäkelä cffbb17480 MDEV-28933: Per-table unique FOREIGN KEY constraint names
Before MySQL 4.0.18, user-specified constraint names were ignored.
Starting with MySQL 4.0.18, the specified constraint name was
prepended with the schema name and '/'.  Now we are transforming
into a format where the constraint name is prepended with the
dict_table_t::name and the impossible UTF-8 sequence 0xff.
Generated constraint names will be ASCII decimal numbers.

On upgrade, old FOREIGN KEY constraint names will be displayed
without any schema name prefix. They will be updated to the new
format on DDL operations.

dict_foreign_t::sql_id(): Return the SQL constraint name
without any schemaname/tablename\377 or schemaname/ prefix.

row_rename_table_for_mysql(), dict_table_rename_in_cache():
Simplify the logic: Just rename constraints to the new format.

dict_table_get_foreign_id(): Replaces dict_table_get_highest_foreign_id().

innobase_get_foreign_key_info(): Let my_error() refer to erroneous
anonymous constraints as "(null)".

row_delete_constraint(): Try to drop all 3 constraint name variants.

Reviewed by: Thirunarayanan Balathandayuthapani
Tested by: Matthias Leich
2025-07-08 12:30:27 +03:00
..
btr0btr.h Merge 10.11 into 11.4 2024-12-02 11:35:34 +02:00
btr0btr.inl MDEV-29603 btr_cur_open_at_index_side() is missing some consistency checks 2022-11-17 08:19:01 +02:00
btr0bulk.h MDEV-13542: Crashing on corrupted page is unhelpful 2022-06-06 14:03:22 +03:00
btr0cur.h MDEV-35049: Fix bogus BTR_CUR_HASH_FAIL on contention 2025-01-10 16:40:30 +02:00
btr0cur.inl MDEV-34515: Contention between purge and workload 2024-08-26 12:23:06 +03:00
btr0pcur.h Merge 10.5 into 10.6 2024-04-19 16:01:26 +03:00
btr0pcur.inl MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
btr0sea.h Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
btr0types.h MDEV-35049: btr_search_check_free_space_in_heap() is a bottleneck 2025-01-10 16:30:42 +02:00
buf0buddy.h MDEV-36781: Assertion i < BUF_BUDDY_SIZES failed in buf_buddy_shrink() 2025-05-13 12:27:46 +03:00
buf0buf.h Merge remote-tracking branch 'github/bb-11.4-release' into bb-11.8-serg 2025-04-27 19:40:00 +02:00
buf0buf.inl MDEV-29445: Reimplement SET GLOBAL innodb_buffer_pool_size 2025-03-26 17:05:44 +02:00
buf0checksum.h MDEV-35049: Privatize ut_fold_ulint_pair() 2025-01-10 16:40:22 +02:00
buf0dblwr.h Merge 10.11 into 11.4 2025-04-02 10:15:08 +03:00
buf0dump.h
buf0flu.h Merge branch '10.6' into 10.11 2025-01-10 13:14:42 +01:00
buf0lru.h Merge 10.11 into 11.4 2025-03-28 13:55:21 +02:00
buf0rea.h Merge branch '10.11' into 11.4 2025-01-14 23:45:41 +01:00
buf0types.h Merge branch '10.6' into 10.11 2025-01-10 13:14:42 +01:00
cache.h MDEV-33447 fixup for POWER 8 2024-04-24 12:39:30 +03:00
data0data.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
data0data.inl MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
data0type.h MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
data0type.inl MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
data0types.h
db0err.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
dict0boot.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
dict0crea.h MDEV-28933: Per-table unique FOREIGN KEY constraint names 2025-07-08 12:30:27 +03:00
dict0crea.inl MDEV-28933: Per-table unique FOREIGN KEY constraint names 2025-07-08 12:30:27 +03:00
dict0dict.h MDEV-28933: Per-table unique FOREIGN KEY constraint names 2025-07-08 12:30:27 +03:00
dict0dict.inl Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
dict0load.h MDEV-34529 Shrink the system tablespace when system tablespace contains MDEV-30671 leaked undo pages 2024-10-16 21:34:24 +05:30
dict0mem.h MDEV-28933: Per-table unique FOREIGN KEY constraint names 2025-07-08 12:30:27 +03:00
dict0mem.inl Merge 10.5 into 10.6 2024-04-17 14:14:58 +03:00
dict0pagecompress.h
dict0pagecompress.inl
dict0stats.h Merge 10.11 into 11.4 2025-03-03 11:07:56 +02:00
dict0stats_bg.h Merge 10.5 into 10.6 2022-04-26 15:21:20 +03:00
dict0types.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
dyn0buf.h Merge branch '10.6' into 10.11 2024-04-22 15:23:10 +02:00
dyn0types.h Merge from 10.4 to 10.5 2024-04-15 17:46:49 +02:00
eval0eval.h
eval0eval.inl
eval0proc.h
eval0proc.inl
fil0crypt.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fil0crypt.inl
fil0fil.h Merge branch '11.8' into 12.0 2025-05-22 09:22:55 +02:00
fil0pagecompress.h
fsp0file.h Merge 10.11 into 11.2 2024-10-18 11:32:22 +03:00
fsp0fsp.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fsp0space.h
fsp0sysspace.h MDEV-34529 Shrink the system tablespace when system tablespace contains MDEV-30671 leaked undo pages 2024-10-16 21:34:24 +05:30
fsp0types.h MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
fts0ast.h
fts0blex.h
fts0fts.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fts0opt.h
fts0pars.h
fts0plugin.h
fts0priv.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fts0priv.inl MDEV-33383: Corrupted red-black tree due to incorrect comparison 2024-02-12 17:01:45 +02:00
fts0tlex.h
fts0tokenize.h
fts0types.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fts0types.inl Merge branch '11.4' into 11.5 2024-05-23 17:01:43 +02:00
fts0vlc.h
fut0lst.h MDEV-35689 InnoDB system tables cannot be optimized or defragmented 2025-04-10 17:13:34 +05:30
gis0geo.h
gis0rtree.h Merge 10.11 into 11.0 2023-01-25 10:17:54 +02:00
gis0rtree.inl MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
gis0type.h Merge 10.5 into 10.6 2024-04-17 14:14:58 +03:00
ha0storage.h
ha0storage.inl
ha_prototypes.h MDEV-28933: Per-table unique FOREIGN KEY constraint names 2025-07-08 12:30:27 +03:00
handler0alter.h
hash0hash.h MDEV-34877 Port "Bug #11745929 Change lock priority so that the transaction holding S-lock gets X-lock first" fix from MySQL to MariaDB 2025-01-23 17:38:32 +03:00
ibuf0ibuf.h MDEV-35000 preparation: Clean up dict_table_t::stat 2025-02-28 08:55:16 +02:00
lock0iter.h
lock0lock.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
lock0lock.inl MDEV-34877 Port "Bug #11745929 Change lock priority so that the transaction holding S-lock gets X-lock first" fix from MySQL to MariaDB 2025-01-23 17:38:32 +03:00
lock0prdt.h Fix remaining typos 2025-04-29 11:18:00 +10:00
lock0priv.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
lock0priv.inl MDEV-34877 Port "Bug #11745929 Change lock priority so that the transaction holding S-lock gets X-lock first" fix from MySQL to MariaDB 2025-01-23 17:38:32 +03:00
lock0types.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
log0crypt.h Merge 10.11 into 11.0 2024-03-28 10:51:36 +02:00
log0log.h Merge branch '10.11' into 11.4 2025-06-17 09:50:22 +02:00
log0recv.h Merge 10.11 into 11.4 2025-03-28 13:55:21 +02:00
log0types.h Remove bogus references to replaced Google contributions 2023-08-21 15:51:16 +03:00
mach0data.h
mach0data.inl Merge branch '10.5' into 10.6 2024-08-03 09:04:24 +02:00
mariadb_stats.h MDEV-34190: r_engine_stats.pages_read_count is unrealistically low 2024-07-04 15:24:49 +03:00
mem0mem.h MDEV-35049: btr_search_check_free_space_in_heap() is a bottleneck 2025-01-10 16:30:42 +02:00
mem0mem.inl MDEV-35049: btr_search_check_free_space_in_heap() is a bottleneck 2025-01-10 16:30:42 +02:00
mtr0log.h Merge 10.6 into 10.11 2024-11-29 13:43:17 +02:00
mtr0mtr.h Merge remote-tracking branch 'github/bb-11.4-release' into bb-11.8-serg 2025-04-27 19:40:00 +02:00
mtr0types.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
os0file.h Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
os0file.inl Merge branch '10.6' into 10.11 2024-10-29 15:24:38 +01:00
page0cur.h MDEV-35312 page_cur_search_with_match() could avoid rec_get_offsets() 2025-01-10 16:40:55 +02:00
page0cur.inl Merge 10.11 into 11.2 2024-08-29 16:02:57 +03:00
page0page.h MDEV-35312 page_cur_search_with_match() could avoid rec_get_offsets() 2025-01-10 16:40:55 +02:00
page0page.inl MDEV-32175: Reduce page_align(), page_offset() calls 2024-11-21 11:01:30 +02:00
page0types.h MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
page0zip.h MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
page0zip.inl MDEV-29694 Remove the InnoDB change buffer 2023-01-11 17:59:36 +02:00
pars0grm.h
pars0opt.h
pars0pars.h
pars0sym.h
pars0types.h
que0que.h MDEV-34515: Reduce context switching in purge 2024-08-26 12:23:17 +03:00
que0que.inl
que0types.h
read0types.h MDEV-24402: InnoDB CHECK TABLE ... EXTENDED 2022-10-21 10:02:54 +03:00
rem0cmp.h MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
rem0rec.h MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
rem0rec.inl MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
rem0types.h
row0ext.h
row0ext.inl
row0ftsort.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
row0import.h MDEV-26137 Improve import tablespace workflow. 2023-07-04 17:56:27 +10:00
row0ins.h Merge 10.5 into 10.6 2023-03-28 15:25:52 +03:00
row0log.h MDEV-15250 UPSERT during ALTER TABLE results in 'Duplicate entry' error for alter 2022-04-26 16:22:56 +05:30
row0merge.h MDEV-34703 LOAD DATA INFILE using Innodb bulk load aborts 2025-01-15 23:49:13 +05:30
row0mysql.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
row0purge.h MDEV-34515: Contention between purge and workload 2024-08-26 12:23:06 +03:00
row0quiesce.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
row0row.h Merge 10.11 into 11.4 2025-03-03 11:07:56 +02:00
row0row.inl MDEV-36015: unrepresentable value in row_parse_int() 2025-02-13 15:10:53 +01:00
row0sel.h MDEV-36015: unrepresentable value in row_parse_int() 2025-02-13 15:10:53 +01:00
row0types.h
row0uins.h
row0umod.h Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
row0undo.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
row0upd.h Merge 10.5 into 10.6 2023-01-03 18:13:11 +02:00
row0upd.inl
row0vers.h MDEV-34515: Contention between purge and workload 2024-08-26 12:23:06 +03:00
rw_lock.h MDEV-34983: Remove x86 asm from InnoDB 2024-09-23 12:51:27 +03:00
small_vector.h MDEV-35701 trx_t::autoinc_locks causes unnecessary dynamic memory allocation 2025-01-15 16:55:01 +02:00
srv0mon.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
srv0mon.inl
srv0srv.h Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
srv0start.h MDEV-19229 Allow innodb_undo_tablespaces to be changed after database creation 2022-10-25 11:19:36 +05:30
srw_lock.h Merge 10.6 into 10.11 2024-10-03 10:55:08 +03:00
sux_lock.h Merge branch '10.11' into 11.4 2025-01-14 23:45:41 +01:00
transactional_lock_guard.h MDEV-34973 fixup for POWER,s390x 2024-10-01 13:29:59 +03:00
trx0i_s.h MDEV-35189: Updating cache for INNODB_LOCKS et al is suboptimal 2024-11-12 12:17:34 +02:00
trx0purge.h Fix remaining typos 2025-04-29 11:18:00 +10:00
trx0rec.h Merge 10.6 into 10.11 2024-08-29 07:47:29 +03:00
trx0roll.h Merge 11.4 into 11.7 2025-01-09 09:41:38 +02:00
trx0rseg.h Merge 10.6 into 10.11 2024-10-03 10:55:08 +03:00
trx0sys.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
trx0trx.h Merge remote-tracking branch 'github/bb-11.4-release' into bb-11.8-serg 2025-04-27 19:40:00 +02:00
trx0trx.inl MDEV-24035 Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure 2024-12-12 18:02:00 +02:00
trx0types.h MDEV-36504 Memory leak after CREATE TABLE..SELECT 2025-04-17 12:04:09 +05:30
trx0undo.h Merge 10.11 into 11.4 2024-12-02 11:35:34 +02:00
trx0undo.inl MDEV-33819 The purge of committed history is mis-parsing some log 2024-04-08 11:48:46 +03:00
trx0xa.h
univ.i Fix remaining typos 2025-04-29 11:18:00 +10:00
ut0byte.h MDEV-21174 fixup: Remove unused ut_bit_set_nth() 2023-09-19 18:02:56 +03:00
ut0byte.inl MDEV-21174 fixup: Remove unused ut_bit_set_nth() 2023-09-19 18:02:56 +03:00
ut0counter.h Merge 10.5 into 10.6 2024-06-17 08:40:07 +03:00
ut0dbg.h
ut0list.h
ut0list.inl
ut0lst.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
ut0mem.h
ut0mem.inl
ut0new.h MDEV-36510 InnoDB fails to compile with clang++-20 2025-04-14 09:22:39 +03:00
ut0pool.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
ut0rbt.h
ut0rnd.h MDEV-35049: Privatize ut_fold_ulint_pair() 2025-01-10 16:40:22 +02:00
ut0sort.h
ut0stage.h
ut0ut.h MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
ut0vec.h MDEV-33383: Replace fts_doc_id_cmp, ib_vector_sort 2024-02-12 17:01:17 +02:00
ut0vec.inl MDEV-33383: Replace fts_doc_id_cmp, ib_vector_sort 2024-02-12 17:01:17 +02:00
ut0wqueue.h