sql: move default col values to Tarantool's core
Extract expressions parsing into separate routine to allow Tarantool's backend compile DEFAULT statements w/o SQL machinery at all. So far, for DEFAULT values no context is needed: only constant expressions and built-ins are allowed. In future, table context will be added to allow use column values for CHECK constraint expressions. Move DEFAULT string value to space_def. Move compiled expresion to field_def as well. Reason not to move compiled expression to tuple_field as follows: we do not want to engage parser during tuple validation. So, do it in alter.cc. In order to allow expression duplication in alter.cc: expose those routines from expr.c and make their names correspond to coding style. Since recovery is performed before SQL fronend initialization: split it into two pieces: 1. create SQL handler, enable all subsystems 2. Do recovery. This will allow to run parser during recovery, since it needs db handle so far. Part of #3235
Showing
- src/CMakeLists.txt 1 addition, 1 deletionsrc/CMakeLists.txt
- src/box/alter.cc 21 additions, 2 deletionssrc/box/alter.cc
- src/box/box.cc 2 additions, 1 deletionsrc/box/box.cc
- src/box/field_def.c 4 additions, 1 deletionsrc/box/field_def.c
- src/box/field_def.h 4 additions, 0 deletionssrc/box/field_def.h
- src/box/space_def.c 104 additions, 23 deletionssrc/box/space_def.c
- src/box/space_def.h 10 additions, 8 deletionssrc/box/space_def.h
- src/box/sql.c 49 additions, 2 deletionssrc/box/sql.c
- src/box/sql.h 89 additions, 1 deletionsrc/box/sql.h
- src/box/sql/build.c 8 additions, 10 deletionssrc/box/sql/build.c
- src/box/sql/delete.c 6 additions, 6 deletionssrc/box/sql/delete.c
- src/box/sql/expr.c 52 additions, 75 deletionssrc/box/sql/expr.c
- src/box/sql/fkey.c 6 additions, 7 deletionssrc/box/sql/fkey.c
- src/box/sql/insert.c 23 additions, 8 deletionssrc/box/sql/insert.c
- src/box/sql/main.c 0 additions, 15 deletionssrc/box/sql/main.c
- src/box/sql/parse.c 441 additions, 435 deletionssrc/box/sql/parse.c
- src/box/sql/parse.y 19 additions, 13 deletionssrc/box/sql/parse.y
- src/box/sql/resolve.c 6 additions, 6 deletionssrc/box/sql/resolve.c
- src/box/sql/select.c 19 additions, 9 deletionssrc/box/sql/select.c
- src/box/sql/sqliteInt.h 8 additions, 3 deletionssrc/box/sql/sqliteInt.h
Loading
Please register or sign in to comment