sql: Support persistency for SQL triggers
Persistency for SQL triggers supported by introducing new system space called `_trigger` which should store all SQL triggers registered. Add space itself, make visible to Lua, update bootstrap code and regenerate bootstrap.snap. Insertion into the space is done by introducing new VDBE opcode `OP_ParseSchema3` which provides a pair of trigger name and SQL which creates the trigger. During system restore `_trigger` is scanned and its contents parsed back into VDBE. Update tests and extend test for persistency w/ trigger case. Closes #2320
Showing
- src/box/bootstrap.snap 0 additions, 0 deletionssrc/box/bootstrap.snap
- src/box/lua/space.cc 2 additions, 0 deletionssrc/box/lua/space.cc
- src/box/lua/upgrade.lua 20 additions, 0 deletionssrc/box/lua/upgrade.lua
- src/box/schema.cc 6 additions, 0 deletionssrc/box/schema.cc
- src/box/schema.h 2 additions, 0 deletionssrc/box/schema.h
- src/box/sql.c 51 additions, 6 deletionssrc/box/sql.c
- src/box/sql/opcodes.c 28 additions, 27 deletionssrc/box/sql/opcodes.c
- src/box/sql/opcodes.h 32 additions, 31 deletionssrc/box/sql/opcodes.h
- src/box/sql/tarantoolInt.h 1 addition, 0 deletionssrc/box/sql/tarantoolInt.h
- src/box/sql/trigger.c 72 additions, 11 deletionssrc/box/sql/trigger.c
- src/box/sql/vdbe.c 55 additions, 0 deletionssrc/box/sql/vdbe.c
- src/box/sql/vdbe.h 1 addition, 0 deletionssrc/box/sql/vdbe.h
- src/box/sql/vdbeaux.c 9 additions, 0 deletionssrc/box/sql/vdbeaux.c
- test/app-tap/tarantoolctl.test.lua 2 additions, 2 deletionstest/app-tap/tarantoolctl.test.lua
- test/box-py/bootstrap.result 4 additions, 1 deletiontest/box-py/bootstrap.result
- test/box/access_misc.result 2 additions, 0 deletionstest/box/access_misc.result
- test/box/access_sysview.result 3 additions, 3 deletionstest/box/access_sysview.result
- test/box/alter.result 3 additions, 2 deletionstest/box/alter.result
- test/sql/sql-persistency.result 42 additions, 0 deletionstest/sql/sql-persistency.result
- test/sql/sql-persistency.test.lua 21 additions, 0 deletionstest/sql/sql-persistency.test.lua
Loading
Please register or sign in to comment