sql: replace affinity with field type in struct Expr
Also this patch resolves issue connected with wrong query plans during select on spaces created from Lua: instead of index search in most cases table scan was used. It appeared due to the fact that index was checked on affinity compatibility with space format. So, if space is created without affinity in format, indexes won't be used. However, now all checks are related to field types, and as a result query optimizer is able to choose correct index. Closes #3886 Part of #3698
Showing
- src/box/sql/build.c 5 additions, 1 deletionsrc/box/sql/build.c
- src/box/sql/expr.c 109 additions, 187 deletionssrc/box/sql/expr.c
- src/box/sql/fkey.c 2 additions, 3 deletionssrc/box/sql/fkey.c
- src/box/sql/parse.y 18 additions, 6 deletionssrc/box/sql/parse.y
- src/box/sql/resolve.c 3 additions, 4 deletionssrc/box/sql/resolve.c
- src/box/sql/select.c 16 additions, 26 deletionssrc/box/sql/select.c
- src/box/sql/sqliteInt.h 42 additions, 19 deletionssrc/box/sql/sqliteInt.h
- src/box/sql/vdbemem.c 5 additions, 9 deletionssrc/box/sql/vdbemem.c
- src/box/sql/where.c 17 additions, 18 deletionssrc/box/sql/where.c
- src/box/sql/whereInt.h 2 additions, 1 deletionsrc/box/sql/whereInt.h
- src/box/sql/wherecode.c 15 additions, 22 deletionssrc/box/sql/wherecode.c
- src/box/sql/whereexpr.c 13 additions, 18 deletionssrc/box/sql/whereexpr.c
- test/sql-tap/lua-tables.test.lua 37 additions, 1 deletiontest/sql-tap/lua-tables.test.lua
- test/sql-tap/where2.test.lua 6 additions, 19 deletionstest/sql-tap/where2.test.lua
- test/sql/iproto.result 1 addition, 1 deletiontest/sql/iproto.result
Loading
Please register or sign in to comment