blob: 583873a5bf23bd747f88cab24a97b69dbc81b67e [file] [log] [blame]
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;