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

Alessandro Solimando commented on HIVE-25905:
---------------------------------------------

I have only one doubt left before resolving the ticket as "Not a Bug".

In 
[HiveParser.g#L866|https://github.com/apache/hive/blob/b92763e8e193076815f4ed6ba299c873d770aec1/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g#L866]
 we have the following code:

 
{code:java}
protected boolean nullsLast() {
     if(hiveConf == null){
      return false;
     }
     return HiveConf.getBoolVar(hiveConf, 
HiveConf.ConfVars.HIVE_DEFAULT_NULLS_LAST);
   } {code}
 

so when no hive config is available, we return "false", while I think we should 
return the property default, something like:
{code:java}
protected boolean nullsLast() {
     if(hiveConf == null){
      return HiveConf.ConfVars.HIVE_DEFAULT_NULLS_LAST.defaultBoolVal;
     }
     return HiveConf.getBoolVar(hiveConf, 
HiveConf.ConfVars.HIVE_DEFAULT_NULLS_LAST);
   } {code}
 WDYT?

> ORDER BY colName DESC does not honour 'hive.default.nulls.last' property in 
> absence of NULLS_LAST/FIRST
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-25905
>                 URL: https://issues.apache.org/jira/browse/HIVE-25905
>             Project: Hive
>          Issue Type: Bug
>          Components: Parser
>    Affects Versions: 4.0.0
>            Reporter: Alessandro Solimando
>            Assignee: Alessandro Solimando
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Consider the following table and data:
> {noformat}
> create table test1
> (
>   a string,
>   b timestamp,
>   c timestamp
> );
> INSERT INTO TABLE test1 VALUES
> ('John Doe', '1990-05-10 00:00:00.0', '2022-01-10 00:00:00.0'),
> ('John Doe', '1990-05-10 00:00:00.0', '2021-12-10 00:00:00.0'),
> ('John Doe', '1990-05-10 00:00:00.0', '2021-11-10 00:00:00.0'),
> ('John Doe', '1990-05-10 00:00:00.0', '2021-10-10 00:00:00.0'),
> ('John Doe', '1990-05-10 00:00:00.0', '2021-09-10 00:00:00.0'),
> ('John Doe', '1987-05-10 00:00:00.0', '2022-01-10 00:00:00.0'),
> ('John Doe', '1987-05-10 00:00:00.0', '2021-12-10 00:00:00.0'),
> ('John Doe', '1987-05-10 00:00:00.0', '2021-11-10 00:00:00.0'),
> ('John Doe', '1987-05-10 00:00:00.0', '2021-10-10 00:00:00.0'),
> ('John Doe', '1987-05-10 00:00:00.0', null);{noformat}
> Consider also the following query:
> {noformat}
> SELECT a, b, c, row_number() OVER (PARTITION BY a, b ORDER BY b DESC, c DESC) 
> FROM test1; 
> {noformat}
> The output is:
> {noformat}
> John Doe      10/05/1990 00:00        10/01/2022 00:00        1
> John Doe      10/05/1990 00:00        10/12/2021 00:00        2
> John Doe      10/05/1990 00:00        10/11/2021 00:00        3
> John Doe      10/05/1990 00:00        10/10/2021 00:00        4
> John Doe      10/05/1990 00:00        10/09/2021 00:00        5
> John Doe      10/05/1987 00:00        NULL                    1
> John Doe      10/05/1987 00:00        10/01/2022 00:00        2
> John Doe      10/05/1987 00:00        10/12/2021 00:00        3
> John Doe      10/05/1987 00:00        10/11/2021 00:00        4
> John Doe      10/05/1987 00:00        10/10/2021 00:00        5{noformat}
> While the expected output should be:
> {noformat}
> John Doe      10/05/1990 00:00        10/01/2022 00:00        1
> John Doe      10/05/1990 00:00        10/12/2021 00:00        2
> John Doe      10/05/1990 00:00        10/11/2021 00:00        3
> John Doe      10/05/1990 00:00        10/10/2021 00:00        4
> John Doe      10/05/1990 00:00        10/09/2021 00:00        5
> John Doe      10/05/1987 00:00        10/01/2022 00:00        1
> John Doe      10/05/1987 00:00        10/12/2021 00:00        2
> John Doe      10/05/1987 00:00        10/11/2021 00:00        3
> John Doe      10/05/1987 00:00        10/10/2021 00:00        4
> John Doe      10/05/1987 00:00        NULL                    5{noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to