core: drop constraints in two phases
Currently, core constraints are dropped on commit. That is why it is impossible to drop constraint and drop objects it references to at the same transaction. Let's drop constraints in two steps - detach them when DDL occurs, then reattach on rollback or delete on commit. Closes #7339 NO_DOC=bugfix
Showing
- changelogs/unreleased/gh_7339_fk_drop_in_one_txn.md 4 additions, 0 deletionschangelogs/unreleased/gh_7339_fk_drop_in_one_txn.md
- src/box/alter.cc 9 additions, 0 deletionssrc/box/alter.cc
- src/box/space.c 40 additions, 0 deletionssrc/box/space.c
- src/box/space.h 12 additions, 0 deletionssrc/box/space.h
- src/box/tuple_constraint.c 4 additions, 2 deletionssrc/box/tuple_constraint.c
- src/box/tuple_constraint.h 13 additions, 6 deletionssrc/box/tuple_constraint.h
- src/box/tuple_constraint_fkey.c 55 additions, 14 deletionssrc/box/tuple_constraint_fkey.c
- src/box/tuple_constraint_func.c 38 additions, 5 deletionssrc/box/tuple_constraint_func.c
- test/engine-luatest/gh_7339_drop_fk_in_same_txn_test.lua 120 additions, 0 deletionstest/engine-luatest/gh_7339_drop_fk_in_same_txn_test.lua
Loading
Please register or sign in to comment