txn: merge struct sql_txn into struct txn
This procedure is processed in several steps. Firstly, we add name to struct txn_savepoint since we should be capable of operating on named savepoints (which in turn is SQL feature). Still, anonymous (in the sense of name absence) savepoints are also valid. Then, we add list (as implementation of stailq) of savepoints to struct txn: it allows us to find savepoint by its name. Finally, we patch rollback to/release savepoint routines: for rollback tail of the list containing savepoints is cut (but subject of rollback routine remains in the list); for release routine we cut tail including node being released.
Showing
- src/box/sql/vdbe.c 22 additions, 62 deletionssrc/box/sql/vdbe.c
- src/box/sql/vdbe.h 0 additions, 9 deletionssrc/box/sql/vdbe.h
- src/box/sql/vdbeInt.h 1 addition, 2 deletionssrc/box/sql/vdbeInt.h
- src/box/sql/vdbeaux.c 0 additions, 45 deletionssrc/box/sql/vdbeaux.c
- src/box/txn.c 58 additions, 12 deletionssrc/box/txn.c
- src/box/txn.h 29 additions, 7 deletionssrc/box/txn.h
- test/sql/savepoints.result 17 additions, 0 deletionstest/sql/savepoints.result
- test/sql/savepoints.test.lua 12 additions, 0 deletionstest/sql/savepoints.test.lua
Loading
Please register or sign in to comment