[ 
https://issues.apache.org/jira/browse/HIVE-17041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16617717#comment-16617717
 ] 

Jesus Camacho Rodriguez commented on HIVE-17041:
------------------------------------------------

[~vgarg], I have seen that both {{RelMdColumnUniqueness}} and 
{{RelMdUniqueKeys}} have a boolean on whether nulls should be ignored or not. 
RelBuilder is calling those methods with {{ignoreNulls}} set to false. Hence, I 
think those classes could be changed to check for the nullability of the 
columns if ignoreNulls is false, rather than changing {{isKey}}, since the 
latest comprises both PRIMARY and UNIQUE keys.

> Aggregate elimination with UNIQUE and NOT NULL column
> -----------------------------------------------------
>
>                 Key: HIVE-17041
>                 URL: https://issues.apache.org/jira/browse/HIVE-17041
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Logical Optimizer
>    Affects Versions: 3.0.0
>            Reporter: Jesus Camacho Rodriguez
>            Assignee: Vineet Garg
>            Priority: Major
>         Attachments: HIVE-17041.1.patch
>
>
> If columns are part of a GROUP BY expression and they are UNIQUE and do not 
> accept NULL values, i.e. PK or UK+NOTNULL, the _Aggregate_ operator can be 
> transformed into a Project operator, as each row will end up in a different 
> group.
> For instance, given that _pk_ is the PRIMARY KEY for the table, the GROUP BY 
> could be removed from grouping columns for following query:
> {code:sql}
> SELECT pk, value1
> FROM table_1
> GROUP BY value1, pk, value2;
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to