sql: introduce Tarantool's ephemeral tables
- Added intermediate functions between SQL and Tarantool, tarantoolSqlite3Ephemeral* in order to create and use Tarantool's ephemeral tables. Also, for this reason added BTCF_TEphemeral flag to BtCursor instead of BTCF_TaCursor to call appropriate functions. - Added struct space* to SQL cursor, which allows to delete ephemeral tables. (since ephemeral tables don't have space_id and it is impossible to find them by traditional space_id lookup). Moreover, it enables us to avoid using box API inasmuch as we can directly call space_execute_* functions having struct space*. - As the first stage of implemenation, ephemeral tables were successfully replaced for DELETE FROM ... WHERE statement. It utilized ephemeral space as intermediate holder where all tuples to be removed are placed before actual deletion. Part of #2680
Showing
- src/box/index.cc 3 additions, 0 deletionssrc/box/index.cc
- src/box/sql.c 242 additions, 2 deletionssrc/box/sql.c
- src/box/sql/btree.c 30 additions, 3 deletionssrc/box/sql/btree.c
- src/box/sql/btree.h 1 addition, 0 deletionssrc/box/sql/btree.h
- src/box/sql/btreeInt.h 1 addition, 0 deletionssrc/box/sql/btreeInt.h
- src/box/sql/delete.c 1 addition, 1 deletionsrc/box/sql/delete.c
- src/box/sql/opcodes.c 52 additions, 51 deletionssrc/box/sql/opcodes.c
- src/box/sql/opcodes.h 59 additions, 58 deletionssrc/box/sql/opcodes.h
- src/box/sql/tarantoolInt.h 7 additions, 0 deletionssrc/box/sql/tarantoolInt.h
- src/box/sql/vdbe.c 49 additions, 0 deletionssrc/box/sql/vdbe.c
Loading
Please register or sign in to comment