netbox: introduce prepared statements
This patch introduces support of prepared statements in IProto protocol. To achieve this new IProto command is added - IPROTO_PREPARE (key is 0x13). It is sent with one of two mandatory keys: IPROTO_SQL_TEXT (0x40 and assumes string value) or IPROTO_STMT_ID (0x43 and assumes integer value). Depending on body it means to prepare or unprepare SQL statement: IPROTO_SQL_TEXT implies prepare request, meanwhile IPROTO_STMT_ID - unprepare. Also to reply on PREPARE request a few response keys are added: IPROTO_BIND_METADATA (0x33 and contains parameters metadata of type map) and IPROTO_BIND_COUNT (0x34 and corresponds to the count of parameters to be bound). Part of #2592
Showing
- src/box/execute.c 83 additions, 0 deletionssrc/box/execute.c
- src/box/iproto.cc 57 additions, 11 deletionssrc/box/iproto.cc
- src/box/iproto_constants.c 5 additions, 2 deletionssrc/box/iproto_constants.c
- src/box/iproto_constants.h 5 additions, 0 deletionssrc/box/iproto_constants.h
- src/box/lua/net_box.c 94 additions, 4 deletionssrc/box/lua/net_box.c
- src/box/lua/net_box.lua 27 additions, 0 deletionssrc/box/lua/net_box.lua
- src/box/xrow.c 18 additions, 5 deletionssrc/box/xrow.c
- src/box/xrow.h 3 additions, 1 deletionsrc/box/xrow.h
- test/box/misc.result 1 addition, 0 deletionstest/box/misc.result
- test/sql/engine.cfg 1 addition, 0 deletionstest/sql/engine.cfg
- test/sql/iproto.result 1 addition, 1 deletiontest/sql/iproto.result
- test/sql/prepared.result 77 additions, 53 deletionstest/sql/prepared.result
- test/sql/prepared.test.lua 58 additions, 22 deletionstest/sql/prepared.test.lua
Loading
Please register or sign in to comment