sql: make IN operator stop ignoring type and collation
SQLite discards type and collation of IN operator when it comes with only one operand. This leads to different results of straight comparison using '=' operator and IN: SELECT x FROM t1 WHERE x IN (1.0); -- Result is empty set SELECT x FROM t1 WHERE x = 1.0; - - ['1'] Lets remove this strange ignorance and always take into consideration types and collations of operands. Closes #3934
Showing
- src/box/sql/expr.c 0 additions, 4 deletionssrc/box/sql/expr.c
- src/box/sql/parse.y 0 additions, 11 deletionssrc/box/sql/parse.y
- src/box/sql/sqliteInt.h 0 additions, 1 deletionsrc/box/sql/sqliteInt.h
- test/sql-tap/in4.test.lua 4 additions, 4 deletionstest/sql-tap/in4.test.lua
- test/sql-tap/tkt-9a8b09f8e6.test.lua 4 additions, 3 deletionstest/sql-tap/tkt-9a8b09f8e6.test.lua
Loading
Please register or sign in to comment