[jira] [Updated] (CALCITE-1513) Correlated NOT IN query throws AssertionError

2019-02-22 Thread Julian Hyde (JIRA)


 [ 
https://issues.apache.org/jira/browse/CALCITE-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde updated CALCITE-1513:
-
Fix Version/s: 1.19.0

> Correlated NOT IN query throws AssertionError
> -
>
> Key: CALCITE-1513
> URL: https://issues.apache.org/jira/browse/CALCITE-1513
> Project: Calcite
>  Issue Type: Bug
>Reporter: Julian Hyde
>Assignee: Vineet Garg
>Priority: Major
>  Labels: pull-request-available, sub-query
> Fix For: 1.19.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> A correlated NOT IN query throws AssertionError during decorrelation. Here is 
> a patch that reproduces the case:
> {noformat}
> diff --git a/core/src/test/resources/sql/subquery.iq 
> b/core/src/test/resources/sql/subquery.iq
> index ad71655..975aae1 100644
> --- a/core/src/test/resources/sql/subquery.iq
> +++ b/core/src/test/resources/sql/subquery.iq
> @@ -370,6 +370,22 @@ where e.job not in (
>  !plan
>  !}
>  
> +# Correlated condition in NOT IN.
> +# Tested on Oracle.
> +select count(*) as c
> +from "scott".emp as e
> +where sal + 100 not in (
> +  select comm
> +  from "scott".emp
> +  where job = e.job);
> + EMPNO ENAME  JOB  MGR HIREDATE SAL   COMM   
>   DEPTNO
> +-- -- - -- - -- -- 
> --
> +  7499 ALLEN  SALESMAN7698 20-FEB-81   1600300   
>   30
> +  7521 WARD   SALESMAN7698 22-FEB-81   1250500   
>   30
> +  7654 MARTIN SALESMAN7698 28-SEP-81   1250   1400   
>   30
> +  7844 TURNER SALESMAN7698 08-SEP-81   1500  0   
>   30
> +!ok
> +
>  # [CALCITE-864] Correlation variable has incorrect row type if it is 
> populated
>  # by right side of a Join
>  select *
> {noformat}
> And here is the stack:
> {noformat}
> java.lang.AssertionError: Internal error: While invoking method 'public 
> org.apache.calcite.sql2rel.RelDecorrelator$Frame 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate)'
>   at org.apache.calcite.util.Util.newInternal(Util.java:792)
>   at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:534)
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.getInvoke(RelDecorrelator.java:601)
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelate(RelDecorrelator.java:242)
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateQuery(RelDecorrelator.java:211)
>   at 
> org.apache.calcite.tools.Programs$DecorrelateProgram.run(Programs.java:370)
>   at 
> org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:351)
>   at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:155)
>   at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:286)
>   at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:195)
>   at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:748)
>   at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:610)
>   at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:580)
> Caused by: java.lang.reflect.InvocationTargetException
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:531)
>   ... 29 more
> Caused by: java.lang.AssertionError
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(RelDecorrelator.java:454)
>   ... 34 more{noformat}



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


[jira] [Updated] (CALCITE-1513) Correlated NOT IN query throws AssertionError

2019-02-22 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/CALCITE-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated CALCITE-1513:

Labels: pull-request-available sub-query  (was: sub-query)

> Correlated NOT IN query throws AssertionError
> -
>
> Key: CALCITE-1513
> URL: https://issues.apache.org/jira/browse/CALCITE-1513
> Project: Calcite
>  Issue Type: Bug
>Reporter: Julian Hyde
>Assignee: Vineet Garg
>Priority: Major
>  Labels: pull-request-available, sub-query
>
> A correlated NOT IN query throws AssertionError during decorrelation. Here is 
> a patch that reproduces the case:
> {noformat}
> diff --git a/core/src/test/resources/sql/subquery.iq 
> b/core/src/test/resources/sql/subquery.iq
> index ad71655..975aae1 100644
> --- a/core/src/test/resources/sql/subquery.iq
> +++ b/core/src/test/resources/sql/subquery.iq
> @@ -370,6 +370,22 @@ where e.job not in (
>  !plan
>  !}
>  
> +# Correlated condition in NOT IN.
> +# Tested on Oracle.
> +select count(*) as c
> +from "scott".emp as e
> +where sal + 100 not in (
> +  select comm
> +  from "scott".emp
> +  where job = e.job);
> + EMPNO ENAME  JOB  MGR HIREDATE SAL   COMM   
>   DEPTNO
> +-- -- - -- - -- -- 
> --
> +  7499 ALLEN  SALESMAN7698 20-FEB-81   1600300   
>   30
> +  7521 WARD   SALESMAN7698 22-FEB-81   1250500   
>   30
> +  7654 MARTIN SALESMAN7698 28-SEP-81   1250   1400   
>   30
> +  7844 TURNER SALESMAN7698 08-SEP-81   1500  0   
>   30
> +!ok
> +
>  # [CALCITE-864] Correlation variable has incorrect row type if it is 
> populated
>  # by right side of a Join
>  select *
> {noformat}
> And here is the stack:
> {noformat}
> java.lang.AssertionError: Internal error: While invoking method 'public 
> org.apache.calcite.sql2rel.RelDecorrelator$Frame 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate)'
>   at org.apache.calcite.util.Util.newInternal(Util.java:792)
>   at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:534)
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.getInvoke(RelDecorrelator.java:601)
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelate(RelDecorrelator.java:242)
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateQuery(RelDecorrelator.java:211)
>   at 
> org.apache.calcite.tools.Programs$DecorrelateProgram.run(Programs.java:370)
>   at 
> org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:351)
>   at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:155)
>   at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:286)
>   at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:195)
>   at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:748)
>   at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:610)
>   at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:580)
> Caused by: java.lang.reflect.InvocationTargetException
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:531)
>   ... 29 more
> Caused by: java.lang.AssertionError
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(RelDecorrelator.java:454)
>   ... 34 more{noformat}



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


[jira] [Updated] (CALCITE-1513) Correlated NOT IN query throws AssertionError

2016-12-01 Thread Julian Hyde (JIRA)

 [ 
https://issues.apache.org/jira/browse/CALCITE-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde updated CALCITE-1513:
-
Labels: sub-query  (was: )

> Correlated NOT IN query throws AssertionError
> -
>
> Key: CALCITE-1513
> URL: https://issues.apache.org/jira/browse/CALCITE-1513
> Project: Calcite
>  Issue Type: Bug
>Reporter: Julian Hyde
>Assignee: Julian Hyde
>  Labels: sub-query
>
> A correlated NOT IN query throws AssertionError during decorrelation. Here is 
> a patch that reproduces the case:
> {noformat}
> diff --git a/core/src/test/resources/sql/subquery.iq 
> b/core/src/test/resources/sql/subquery.iq
> index ad71655..975aae1 100644
> --- a/core/src/test/resources/sql/subquery.iq
> +++ b/core/src/test/resources/sql/subquery.iq
> @@ -370,6 +370,22 @@ where e.job not in (
>  !plan
>  !}
>  
> +# Correlated condition in NOT IN.
> +# Tested on Oracle.
> +select count(*) as c
> +from "scott".emp as e
> +where sal + 100 not in (
> +  select comm
> +  from "scott".emp
> +  where job = e.job);
> + EMPNO ENAME  JOB  MGR HIREDATE SAL   COMM   
>   DEPTNO
> +-- -- - -- - -- -- 
> --
> +  7499 ALLEN  SALESMAN7698 20-FEB-81   1600300   
>   30
> +  7521 WARD   SALESMAN7698 22-FEB-81   1250500   
>   30
> +  7654 MARTIN SALESMAN7698 28-SEP-81   1250   1400   
>   30
> +  7844 TURNER SALESMAN7698 08-SEP-81   1500  0   
>   30
> +!ok
> +
>  # [CALCITE-864] Correlation variable has incorrect row type if it is 
> populated
>  # by right side of a Join
>  select *
> {noformat}
> And here is the stack:
> {noformat}
> java.lang.AssertionError: Internal error: While invoking method 'public 
> org.apache.calcite.sql2rel.RelDecorrelator$Frame 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate)'
>   at org.apache.calcite.util.Util.newInternal(Util.java:792)
>   at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:534)
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.getInvoke(RelDecorrelator.java:601)
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelate(RelDecorrelator.java:242)
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateQuery(RelDecorrelator.java:211)
>   at 
> org.apache.calcite.tools.Programs$DecorrelateProgram.run(Programs.java:370)
>   at 
> org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:351)
>   at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:155)
>   at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:286)
>   at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:195)
>   at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:748)
>   at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:610)
>   at 
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:580)
> Caused by: java.lang.reflect.InvocationTargetException
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:531)
>   ... 29 more
> Caused by: java.lang.AssertionError
>   at 
> org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(RelDecorrelator.java:454)
>   ... 34 more{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CALCITE-1513) Correlated NOT IN query throws AssertionError

2016-11-30 Thread Julian Hyde (JIRA)

 [ 
https://issues.apache.org/jira/browse/CALCITE-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde updated CALCITE-1513:
-
Description: 
A correlated NOT IN query throws AssertionError during decorrelation. Here is a 
patch that reproduces the case:

{noformat}
diff --git a/core/src/test/resources/sql/subquery.iq 
b/core/src/test/resources/sql/subquery.iq
index ad71655..975aae1 100644
--- a/core/src/test/resources/sql/subquery.iq
+++ b/core/src/test/resources/sql/subquery.iq
@@ -370,6 +370,22 @@ where e.job not in (
 !plan
 !}
 
+# Correlated condition in NOT IN.
+# Tested on Oracle.
+select count(*) as c
+from "scott".emp as e
+where sal + 100 not in (
+  select comm
+  from "scott".emp
+  where job = e.job);
+ EMPNO ENAME  JOB  MGR HIREDATE SAL   COMM 
DEPTNO
+-- -- - -- - -- -- 
--
+  7499 ALLEN  SALESMAN7698 20-FEB-81   1600300 
30
+  7521 WARD   SALESMAN7698 22-FEB-81   1250500 
30
+  7654 MARTIN SALESMAN7698 28-SEP-81   1250   1400 
30
+  7844 TURNER SALESMAN7698 08-SEP-81   1500  0 
30
+!ok
+
 # [CALCITE-864] Correlation variable has incorrect row type if it is populated
 # by right side of a Join
 select *
{noformat}

And here is the stack:

{noformat}
java.lang.AssertionError: Internal error: While invoking method 'public 
org.apache.calcite.sql2rel.RelDecorrelator$Frame 
org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate)'
at org.apache.calcite.util.Util.newInternal(Util.java:792)
at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:534)
at 
org.apache.calcite.sql2rel.RelDecorrelator.getInvoke(RelDecorrelator.java:601)
at 
org.apache.calcite.sql2rel.RelDecorrelator.decorrelate(RelDecorrelator.java:242)
at 
org.apache.calcite.sql2rel.RelDecorrelator.decorrelateQuery(RelDecorrelator.java:211)
at 
org.apache.calcite.tools.Programs$DecorrelateProgram.run(Programs.java:370)
at 
org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:351)
at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:155)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:286)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:195)
at 
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:748)
at 
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:610)
at 
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:580)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:531)
... 29 more
Caused by: java.lang.AssertionError
at 
org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(RelDecorrelator.java:454)
... 34 more{noformat}

  was:
A correlated NOT IN query throws AssertionError during decorrelation. Here is a 
patch that reproduces the case:

{noformat}
diff --git a/core/src/test/resources/sql/subquery.iq 
b/core/src/test/resources/sql/subquery.iq
index ad71655..975aae1 100644
--- a/core/src/test/resources/sql/subquery.iq
+++ b/core/src/test/resources/sql/subquery.iq
@@ -370,6 +370,22 @@ where e.job not in (
 !plan
 !}
 
+# Correlated condition in NOT IN.
+# Tested on Oracle.
+select count(*) as c
+from "scott".emp as e
+where sal + 100 not in (
+  select comm
+  from "scott".emp
+  where job = e.job);
+ EMPNO ENAME  JOB  MGR HIREDATE SAL   COMM 
DEPTNO
+-- -- - -- - -- -- 
--
+  7499 ALLEN  SALESMAN7698 20-FEB-81   1600300 
30
+  7521 WARD   SALESMAN7698 22-FEB-81   1250500 
30
+  7654 MARTIN SALESMAN7698 28-SEP-81   1250   1400 
30
+  7844 TURNER SALESMAN7698 08-SEP-81   1500  0 
30
+!ok
+
 # [CALCITE-864] Correlation variable has incorrect row type if it is populated
 # by right side of a Join
 select *
{noformat}

And here is the stack:

{noformat}
java.lang.AssertionError: Internal error: While invoking method 'public 
org.apache.calcite.sql2rel.RelDecorrelator$Frame 
org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate)'