ZheHu created CALCITE-6798:
------------------------------

             Summary: Null direction emulation in MySQL and Hive is incorrect 
when null direction is not specified
                 Key: CALCITE-6798
                 URL: https://issues.apache.org/jira/browse/CALCITE-6798
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.38.0
            Reporter: ZheHu
            Assignee: ZheHu


The following test passes in RelToSqlConvertTest.
{code:java}
@Test void testMySqlSelectQueryWithAscWithoutNullsDirection() {
    final String query = "select \"product_id\" from \"product\"\n"
        + "order by \"product_id\" asc";
    final String expected = "SELECT `product_id`\n"
        + "FROM `foodmart`.`product`\n"
        + "ORDER BY `product_id` IS NULL, `product_id`";
    sql(query).dialect(MysqlSqlDialect.DEFAULT).ok(expected);
  }
{code}
According to 
[mysql-doc|https://dev.mysql.com/doc/refman/8.0/en/working-with-null.html], 
NULL values are presented first if you do ORDER BY ... ASC and last if you do 
ORDER BY ... DESC, and [default 
|https://dev.mysql.com/doc/refman/8.0/en/sorting-rows.html]sort order is 
ascending. Hence, the query after dialect convert will result in NULL values 
presented last if you do ORDER BY ... ASC and first if you do ORDER BY ... DESC.

HiveSqlDialect has the same problem.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to