sql: do not allow oversized integer literals
Before the patch, big integer constants were silently converted to floating point values. Fix that by issuing error message if value doesn't fit in int64_t range. Also, refactor surrounding code as per Tarantool's code style. Closes #2347
Showing
- src/box/sql/expr.c 33 additions, 37 deletionssrc/box/sql/expr.c
- src/box/sql/main.c 2 additions, 3 deletionssrc/box/sql/main.c
- src/box/sql/sqliteInt.h 50 additions, 2 deletionssrc/box/sql/sqliteInt.h
- src/box/sql/util.c 29 additions, 73 deletionssrc/box/sql/util.c
- src/box/sql/vdbe.c 3 additions, 5 deletionssrc/box/sql/vdbe.c
- src/box/sql/vdbemem.c 3 additions, 3 deletionssrc/box/sql/vdbemem.c
- test/sql-tap/default.test.lua 2 additions, 3 deletionstest/sql-tap/default.test.lua
- test/sql/gh-2347-max-int-literals.result 28 additions, 0 deletionstest/sql/gh-2347-max-int-literals.result
- test/sql/gh-2347-max-int-literals.test.lua 11 additions, 0 deletionstest/sql/gh-2347-max-int-literals.test.lua
Loading
Please register or sign in to comment