Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
create table cx2(bool1 boolean); insert into cx2 values (true),(false),(null); set hive.cbo.enable=true; select bool1 IS TRUE OR (cast(NULL as boolean) AND bool1 IS NOT TRUE AND bool1 IS NOT FALSE) from cx2; +--------+ | _c0 | +--------+ | true | | false | | NULL | +--------+ set hive.cbo.enable=false; select bool1 IS TRUE OR (cast(NULL as boolean) AND bool1 IS NOT TRUE AND bool1 IS NOT FALSE) from cx2; +-------+ | _c0 | +-------+ | true | | NULL | | NULL | +-------+
from explain it seems the expression was simplified to: (_col0 is true or null)