You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Jin Xing (Jira)" <ji...@apache.org> on 2020/01/06 13:47:00 UTC

[jira] [Commented] (CALCITE-3155) AssertionError in RelToSqlConverter when visiting empty Values node

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

Jin Xing commented on CALCITE-3155:
-----------------------------------

Hi [~danny0405] and [~MusbahELFIL]
PR-1286 add a test cases like below

{code:java}
  @Test
  public void testUnionAllWithNoOperands() {
    String query = "select A.\"department_id\" "
        + "from \"foodmart\".\"employee\" A "
        + " where A.\"department_id\" = ( select min( A.\"department_id\") from \"foodmart\".\"department\" B where 1=2 )";
    final String expected = "SELECT \"employee\".\"department_id\"\n"
        + "FROM \"foodmart\".\"employee\"\n"
        + "INNER JOIN (SELECT \"t1\".\"department_id\" AS \"department_id0\","
        + " MIN(\"t1\".\"department_id\")\n"
        + "FROM (SELECT *\nFROM (VALUES  (NULL, NULL))"
        + " AS \"t\" (\"department_id\", \"department_description\")"
        + "\nWHERE 1 = 0) AS \"t\","
        + "\n(SELECT \"department_id\"\nFROM \"foodmart\".\"employee\""
        + "\nGROUP BY \"department_id\") AS \"t1\""
        + "\nGROUP BY \"t1\".\"department_id\") AS \"t3\" "
        + "ON \"employee\".\"department_id\" = \"t3\".\"department_id0\""
        + " AND \"employee\".\"department_id\" = MIN(\"t1\".\"department_id\")";
    sql(query).ok(expected);
  }
{code}

Seems the *expected*  sql is not executable with join condition *employee.department_id= MIN(t1department_id)*
If I run below sql:
{code:java}
select * from test t1 join test t2 on t1.b=min(t2.b);
{code}
Postgre will complain 
{code:java}
ERROR:  aggregate functions are not allowed in JOIN conditions
{code}
Mysql will complain

{code:java}
Invalid use of group function
{code}





> AssertionError in RelToSqlConverter when visiting empty Values node
> -------------------------------------------------------------------
>
>                 Key: CALCITE-3155
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3155
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Musbah EL FIL
>            Assignee: Danny Chen
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.21.0
>
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> Given the query:
> *select A."department_id"  from "foodmart"."employee" A  where A."department_id" = ( select min( A."department_id") from "foodmart"."department" B where 1=2 )*
> The conversion from SqlNode to RelNode is correct, however when going from RelNode to SqlNode, an exception was being thrown.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)