sql: add index_def to Index
Now every sqlite struct Index is created with tnt struct index_def inside. This allows us to use tnt index_def in work with sqlite indexes in the same manner as with tnt index and is a step to remove sqlite Index with tnt index. Fields coll_array, coll_id_array, aiColumn, sort_order, aiRowLogEst and zName are removed from Index. All usages of this fields changed to usage of corresponding index_def or index_def->opts fields. index_is_unique(), sql_index_collation() and index_column_count() are removed with calls of index_def corresponding fields. Also there is small change in behavior: before the patch a statement like CREATE TABLE t1(a,b, PRIMARY KEY(a,b), UNIQUE(a,b)) created only one constraint index (for primary key) and no index for UNIQUE constraint (since it is upon the same columns), neither it is named or non-named constraint. After the patch index will be always created for named constraints. It is a temporary solution. In future it's preferable not to create an index, but to make some record in _constraints space that this named unique constraint implemented with the same index as primary key constraint. Closes: #3369, #3498
Showing
- src/box/errcode.h 1 addition, 0 deletionssrc/box/errcode.h
- src/box/sql.c 26 additions, 28 deletionssrc/box/sql.c
- src/box/sql/analyze.c 41 additions, 46 deletionssrc/box/sql/analyze.c
- src/box/sql/build.c 414 additions, 527 deletionssrc/box/sql/build.c
- src/box/sql/delete.c 6 additions, 4 deletionssrc/box/sql/delete.c
- src/box/sql/expr.c 33 additions, 28 deletionssrc/box/sql/expr.c
- src/box/sql/fkey.c 109 additions, 107 deletionssrc/box/sql/fkey.c
- src/box/sql/insert.c 71 additions, 76 deletionssrc/box/sql/insert.c
- src/box/sql/parse.y 8 additions, 6 deletionssrc/box/sql/parse.y
- src/box/sql/pragma.c 16 additions, 18 deletionssrc/box/sql/pragma.c
- src/box/sql/select.c 1 addition, 1 deletionsrc/box/sql/select.c
- src/box/sql/sqliteInt.h 51 additions, 94 deletionssrc/box/sql/sqliteInt.h
- src/box/sql/update.c 21 additions, 18 deletionssrc/box/sql/update.c
- src/box/sql/vdbeaux.c 1 addition, 1 deletionsrc/box/sql/vdbeaux.c
- src/box/sql/vdbemem.c 9 additions, 12 deletionssrc/box/sql/vdbemem.c
- src/box/sql/where.c 123 additions, 103 deletionssrc/box/sql/where.c
- src/box/sql/wherecode.c 55 additions, 47 deletionssrc/box/sql/wherecode.c
- test/box/misc.result 1 addition, 0 deletionstest/box/misc.result
- test/sql-tap/analyze6.test.lua 3 additions, 3 deletionstest/sql-tap/analyze6.test.lua
- test/sql-tap/collation.test.lua 6 additions, 1 deletiontest/sql-tap/collation.test.lua
Loading
Please register or sign in to comment