| set hive.mapred.mode=nonstrict; |
| DROP TABLE infertypes; |
| CREATE TABLE infertypes(ti TINYINT, si SMALLINT, i INT, bi BIGINT, fl FLOAT, db DOUBLE, str STRING); |
| |
| LOAD DATA LOCAL INPATH '../../data/files/infer_const_type.txt' OVERWRITE INTO TABLE infertypes; |
| |
| SELECT * FROM infertypes; |
| |
| EXPLAIN SELECT * FROM infertypes WHERE |
| ti = '127' AND |
| si = 32767 AND |
| i = '12345' AND |
| bi = '-12345' AND |
| fl = '0906' AND |
| db = '-307' AND |
| str = 1234; |
| |
| SELECT * FROM infertypes WHERE |
| ti = '127' AND |
| si = 32767 AND |
| i = '12345' AND |
| bi = '-12345' AND |
| fl = '0906' AND |
| db = '-307' AND |
| str = 1234; |
| |
| -- all should return false as all numbers exceeed the largest number |
| -- which could be represented by the corresponding type |
| -- and string_col = long_const should return false |
| EXPLAIN SELECT * FROM infertypes WHERE |
| ti = '128' OR |
| si = 32768 OR |
| i = '2147483648' OR |
| bi = '9223372036854775808' OR |
| fl = 'float' OR |
| db = 'double'; |
| |
| SELECT * FROM infertypes WHERE |
| ti = '128' OR |
| si = 32768 OR |
| i = '2147483648' OR |
| bi = '9223372036854775808' OR |
| fl = 'float' OR |
| db = 'double'; |
| |
| -- for the query like: int_col = double, should return false |
| EXPLAIN SELECT * FROM infertypes WHERE |
| ti = '127.0' OR |
| si = 327.0 OR |
| i = '-100.0'; |
| |
| SELECT * FROM infertypes WHERE |
| ti = '127.0' OR |
| si = 327.0 OR |
| i = '-100.0'; |
| |
| EXPLAIN SELECT * FROM infertypes WHERE |
| ti < '127.0' AND |
| i > '100.0' AND |
| str = 1.57; |
| |
| SELECT * FROM infertypes WHERE |
| ti < '127.0' AND |
| i > '100.0' AND |
| str = 1.57; |
| |
| DROP TABLE infertypes; |