[ https://issues.apache.org/jira/browse/HIVE-16609?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Dai updated HIVE-16609: ------------------------------ Description: A variation of alter_partition_change_col.q produces wrong result: {code} SET hive.exec.dynamic.partition.mode = nonstrict; create table alter_partition_change_col0 (c1 string, c2 string); load data local inpath 'dec.txt' overwrite into table alter_partition_change_col0; create table alter_partition_change_col1 (c1 string, c2 string) partitioned by (p1 string comment 'Column p1', p2 string comment 'Column p2'); insert overwrite table alter_partition_change_col1 partition (p1, p2) select c1, c2, 'abc', '123' from alter_partition_change_col0 union all select c1, c2, cast(null as string), '123' from alter_partition_change_col0; select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__' or lower(p1)='a'; {code} The "select" statement does not produce the rows containing "__HIVE_DEFAULT_PARTITION__". We need another condition containing a udf so the condition is not recognized by PartFilterExprUtil.makeExpressionTree in ObjectStore. Looks like HIVE-11208 breaks it. was: A variation of drop_partitions_filter4.q produces wrong result: {code} create table ptestfilter (a string, b int) partitioned by (c string, d int); INSERT OVERWRITE TABLE ptestfilter PARTITION (c,d) select 'Col1', 1, null, null; INSERT OVERWRITE TABLE ptestfilter PARTITION (c,d) select 'Col2', 2, null, 2; INSERT OVERWRITE TABLE ptestfilter PARTITION (c,d) select 'Col3', 3, 'Uganda', null; select * from ptestfilter where c='__HIVE_DEFAULT_PARTITION__' or lower(c)='a'; {code} The "select" statement does not produce the rows containing "__HIVE_DEFAULT_PARTITION__". Note "select * from ptestfilter where c is null or lower(c)='a';" works fine. In the query, c is a non-string partition column, we need another condition containing a udf so the condition is not recognized by PartFilterExprUtil.makeExpressionTree in ObjectStore. HIVE-11208/HIVE-15923 is addressing a similar issue in drop partition, however, select is not covered. > col='__HIVE_DEFAULT_PARTITION__' condition in select statement may produce > wrong result > --------------------------------------------------------------------------------------- > > Key: HIVE-16609 > URL: https://issues.apache.org/jira/browse/HIVE-16609 > Project: Hive > Issue Type: Bug > Components: Metastore > Reporter: Daniel Dai > Assignee: Daniel Dai > > A variation of alter_partition_change_col.q produces wrong result: > {code} > SET hive.exec.dynamic.partition.mode = nonstrict; > create table alter_partition_change_col0 (c1 string, c2 string); > load data local inpath 'dec.txt' overwrite into table > alter_partition_change_col0; > create table alter_partition_change_col1 (c1 string, c2 string) partitioned > by (p1 string comment 'Column p1', p2 string comment 'Column p2'); > insert overwrite table alter_partition_change_col1 partition (p1, p2) > select c1, c2, 'abc', '123' from alter_partition_change_col0 > union all > select c1, c2, cast(null as string), '123' from alter_partition_change_col0; > select * from alter_partition_change_col1 where > p1='__HIVE_DEFAULT_PARTITION__' or lower(p1)='a'; > {code} > The "select" statement does not produce the rows containing > "__HIVE_DEFAULT_PARTITION__". > We need another condition containing a udf so the condition is not recognized > by PartFilterExprUtil.makeExpressionTree in ObjectStore. Looks like > HIVE-11208 breaks it. -- This message was sent by Atlassian JIRA (v6.3.15#6346)