hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Shelukhin (JIRA)" <>
Subject [jira] [Commented] (HIVE-16609) col='__HIVE_DEFAULT_PARTITION__' condition in select statement may produce wrong result
Date Wed, 10 May 2017 21:20:04 GMT


Sergey Shelukhin commented on HIVE-16609:

Hmm... I remember fixing something like that for drop. Frankly I think this is an ugly pattern
that should not exist. Perhaps we should fix it in old branches, and then on master/2.4 change
partition display to null when we see the magic value, so that the users would never see it;
and emit warning if the partition filter has magic value (and perhaps add type casts checks
to make it legitimately fail on any non-string partition column).
Although I have no strong preferences. If everything is made consistent to work with this
value that would make sense too. 

> col='__HIVE_DEFAULT_PARTITION__' condition in select statement may produce wrong result
> ---------------------------------------------------------------------------------------
>                 Key: HIVE-16609
>                 URL:
>             Project: Hive
>          Issue Type: Bug
>          Components: Metastore
>            Reporter: Daniel Dai
>            Assignee: Daniel Dai
>         Attachments: HIVE-16609.1.patch, HIVE-16609.2.patch
> 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

View raw message