sql: return result-set type via IProto
Lets evaluate an expression type during processing of expression's AST and code generation. It allows to calculate resulting columns data types and export them as IProto meta alongside with columns' names. Also, correct types are also returned for binding parameters as well. Note that NULL literal has type "BOOLEAN". It was made on purpose - different DBs interpret NULL's type in different ways: some of them use INT; others - VARCHAR; still others - UNKNOWN. We've decided that NULL is rather of type "BOOLEAN", since NULL is kind if subset of "BOOLEAN" values: any comparison with NULL results in neither TRUE nor FALSE, but in NULL. Part of #2620
Showing
- src/box/execute.c 8 additions, 3 deletionssrc/box/execute.c
- src/box/iproto_constants.h 1 addition, 0 deletionssrc/box/iproto_constants.h
- src/box/lua/net_box.c 6 additions, 2 deletionssrc/box/lua/net_box.c
- src/box/sql/select.c 54 additions, 0 deletionssrc/box/sql/select.c
- src/box/sql/sqliteInt.h 3 additions, 0 deletionssrc/box/sql/sqliteInt.h
- src/box/sql/vdbe.h 0 additions, 4 deletionssrc/box/sql/vdbe.h
- src/box/sql/vdbeInt.h 13 additions, 0 deletionssrc/box/sql/vdbeInt.h
- src/box/sql/vdbeapi.c 57 additions, 0 deletionssrc/box/sql/vdbeapi.c
- src/box/sql/vdbeaux.c 2 additions, 1 deletionsrc/box/sql/vdbeaux.c
- test/sql/errinj.result 1 addition, 0 deletionstest/sql/errinj.result
- test/sql/gh-2362-select-access-rights.result 2 additions, 0 deletionstest/sql/gh-2362-select-access-rights.result
- test/sql/iproto.result 47 additions, 0 deletionstest/sql/iproto.result
Loading
Please register or sign in to comment