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

Xurenhe edited comment on CALCITE-4844 at 10/18/21, 1:10 PM:
-------------------------------------------------------------

Is row with list of SqlIdentifiers legal?

I try to look up the calcite's tests, I found that operator of `ROW` only work 
in sub-query and list of literal; I didn't find that working in the identifiers 
of column.


was (Author: wojustme):
Is row with list of SqlIdentifiers legal?

I try found the test in calcite, I found that operator of `ROW` only work in 
sub-query and list of literal; I didn't find that working in the identifiers of 
column.

> when the value of sub-query threshold smaller than IN list size the In list 
> include columns return wrong result.
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-4844
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4844
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.27.0
>            Reporter: duan xiong
>            Assignee: duan xiong
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> According CALCITE-1155[Support columns for IN list]. We support 
> {code:java}
>  'x in (a, b, c)' {code}
> by expands to
> {code:java}
> 'x = a or x = b or x = c'{code}
> In Calcite. Only the list size smaller than the value of the sub-query 
> threshold can convert.  We should ignore the the value of the sub-query 
> threshold to convert this.
>  
> This issue can reproduce by add a unit test in SqlToRelConverterTest:
> {code:java}
> @Test void testInListIncludeColumns() {
>   final String sql = "SELECT empno\n"
>       + "FROM emp AS e\n"
>       + "WHERE 130 in (empno, deptno)";
>   sql(sql).withConfig(b -> b.withInSubQueryThreshold(3))
>       .convertsTo(
>           "\n" +
>               "LogicalProject(EMPNO=[$0])\n" +
>               "  LogicalFilter(condition=[OR(=(130, $0), =(130, $7))])\n" +
>               "    LogicalTableScan(table=[[CATALOG, SALES, EMP]])\n");
>   sql(sql).withConfig(b -> b.withInSubQueryThreshold(1))
>       .throws_("java.lang.NullPointerException: scope");
> }{code}



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

Reply via email to