[jira] [Created] (CALCITE-5129) Exception thrown writing to a closed stream with SPNEGO authentication at DEBUG

2022-05-03 Thread Josh Elser (Jira)
Josh Elser created CALCITE-5129:
---

 Summary: Exception thrown writing to a closed stream with SPNEGO 
authentication at DEBUG
 Key: CALCITE-5129
 URL: https://issues.apache.org/jira/browse/CALCITE-5129
 Project: Calcite
  Issue Type: Bug
Reporter: Josh Elser
Assignee: Josh Elser


{noformat}
2022-05-03 18:27:57,651 WARN org.eclipse.jetty.server.HttpChannelState: 
unhandled due to prior sendError
org.eclipse.jetty.io.EofException: Closed
        at 
org.eclipse.jetty.server.HttpOutput.checkWritable(HttpOutput.java:762)
        at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:792)
        at java.io.OutputStream.write(OutputStream.java:75)
        at 
org.apache.calcite.avatica.server.AbstractAvaticaHandler.isUserPermitted(AbstractAvaticaHandler.java:71)
        at 
org.apache.calcite.avatica.server.AvaticaProtobufHandler.handle(AvaticaProtobufHandler.java:103)
        at 
org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at 
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
        at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
        at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at 
org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:540)
        at 
org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:395)
        at 
org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
        at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:383)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:882)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1036)
 {noformat}
Trying to test CALCITE-4152 behind Apache Knox, I noticed the following in the 
server-side logs.

It appears that we end up spitting out an exception when another layer of code 
has already called {{sendError()}} which prevents any further writes to the 
OutputStream (destined back to the client). I think this is cosmetic, but I'm 
not 100% certain at this point.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (CALCITE-5125) Extend "||" operator to work with arrays

2022-05-03 Thread Dmitry Sysolyatin (Jira)


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

Dmitry Sysolyatin commented on CALCITE-5125:


Can someone review PR?

> Extend "||" operator to work with arrays
> 
>
> Key: CALCITE-5125
> URL: https://issues.apache.org/jira/browse/CALCITE-5125
> Project: Calcite
>  Issue Type: Improvement
>  Components: core
>Reporter: Dmitry Sysolyatin
>Assignee: Dmitry Sysolyatin
>Priority: Major
>  Labels: pull-request-available
>
> "||" operator can be used only for string concatenation but it would be good 
> to use it also for array concatenation as PostgreSQL



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Comment Edited] (CALCITE-4999) ARRAY function should return an array of scalars if subquery returns 1 column

2022-05-03 Thread Dmitry Sysolyatin (Jira)


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

Dmitry Sysolyatin edited comment on CALCITE-4999 at 5/3/22 1:33 PM:


[~julianhyde] 
Ok, I will think about it. But changing constructors is not so bad idea for me. 
Assume that someone implements Collect interface and updates calcite version 
then his/her implementation will fail in runtime in case of subquery. Runtime 
error is more dangerous than compile error


was (Author: dmsysolyatin):
[~julianhyde] 
Ok, I will think about it. But changing constructors is not so bad idea for me. 
Assume that someone implements Collect class and updates calcite version then 
his/her implementation will fail in runtime in case of subquery. Runtime error 
is more dangerous than compile error

> ARRAY function should return an array of scalars if subquery returns 1 column
> -
>
> Key: CALCITE-4999
> URL: https://issues.apache.org/jira/browse/CALCITE-4999
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Reporter: Dmitry Sysolyatin
>Assignee: Dmitry Sysolyatin
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> At the moment `array` function returns [RecordType ARRAY] if subquery is 
> passed like an argument.
> {code:java}
> SELECT array(select 'toast.' || x from unnest(ARRAY['1','2']) x){code}
> But Sql standard says:
> {code:java}
> 6.38 
> Function
> Specify construction of an array.
> Format
>  ::=
> 
> | 
> [...]
>  ::=
> ARRAY 
> Syntax Rules
> [...]
> 3) If  is specified, then
> a) The  QE simply contained in the  shall 
> be of degree 1 (one). Let ET be the declared type of the column in the result 
> of .
> b) The declared type of the  is array with 
> element type ET and maximum cardinality equal to the implementation-defined 
> maximum cardinality IMDC for such array types.
> {code}
> Proposed solution is to return an array of scalars (e.g. INTEGER ARRAY) when 
> the query returns 1 column, and continue to return an array of ROW when the 
> query has 2 or more columns. And do the same for MULTISET.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (CALCITE-4999) ARRAY function should return an array of scalars if subquery returns 1 column

2022-05-03 Thread Dmitry Sysolyatin (Jira)


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

Dmitry Sysolyatin commented on CALCITE-4999:


[~julianhyde] 
Ok, I will think about it. But changing constructors is not so bad idea for me. 
Assume that someone implements Collect class and updates calcite version then 
his/her implementation will fail in runtime in case of subquery. Runtime error 
is more dangerous than compile error

> ARRAY function should return an array of scalars if subquery returns 1 column
> -
>
> Key: CALCITE-4999
> URL: https://issues.apache.org/jira/browse/CALCITE-4999
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Reporter: Dmitry Sysolyatin
>Assignee: Dmitry Sysolyatin
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> At the moment `array` function returns [RecordType ARRAY] if subquery is 
> passed like an argument.
> {code:java}
> SELECT array(select 'toast.' || x from unnest(ARRAY['1','2']) x){code}
> But Sql standard says:
> {code:java}
> 6.38 
> Function
> Specify construction of an array.
> Format
>  ::=
> 
> | 
> [...]
>  ::=
> ARRAY 
> Syntax Rules
> [...]
> 3) If  is specified, then
> a) The  QE simply contained in the  shall 
> be of degree 1 (one). Let ET be the declared type of the column in the result 
> of .
> b) The declared type of the  is array with 
> element type ET and maximum cardinality equal to the implementation-defined 
> maximum cardinality IMDC for such array types.
> {code}
> Proposed solution is to return an array of scalars (e.g. INTEGER ARRAY) when 
> the query returns 1 column, and continue to return an array of ROW when the 
> query has 2 or more columns. And do the same for MULTISET.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Created] (CALCITE-5128) SQL parser doesn't seem to understand UPDATE statements with fqns

2022-05-03 Thread Mike Hearn (Jira)
Mike Hearn created CALCITE-5128:
---

 Summary: SQL parser doesn't seem to understand UPDATE statements 
with fqns
 Key: CALCITE-5128
 URL: https://issues.apache.org/jira/browse/CALCITE-5128
 Project: Calcite
  Issue Type: Bug
  Components: core
Affects Versions: 1.30.0
Reporter: Mike Hearn


The following SQL fails to parse:

{{UPDATE pz.Moon t SET t.name = ? WHERE t.obj_id = ? AND t.image IS NULL AND 
t.mass = ? AND t.name LIKE ? ESCAPE '#' AND t.parent_id = ?}}

This sort of query is generated by DataGrip to update cells. The error is:

{{Caused by: org.apache.calcite.sql.parser.impl.ParseException: Encountered "." 
at line 1, column 23.}}
{{Was expecting:}}
{{    "=" ...}}
{{    }}
{{    at 
org.apache.calcite.sql.parser.impl.SqlParserImpl.generateParseException(SqlParserImpl.java:37112)}}
{{    at 
org.apache.calcite.sql.parser.impl.SqlParserImpl.jj_consume_token(SqlParserImpl.java:36926)}}
{{    at 
org.apache.calcite.sql.parser.impl.SqlParserImpl.SqlUpdate(SqlParserImpl.java:7285)}}
{{    at 
org.apache.calcite.sql.parser.impl.SqlParserImpl.SqlStmt(SqlParserImpl.java:3806)}}
{{    at 
org.apache.calcite.sql.parser.impl.SqlParserImpl.SqlStmtEof(SqlParserImpl.java:3828)}}
{{    at 
org.apache.calcite.sql.parser.impl.SqlParserImpl.parseSqlStmtEof(SqlParserImpl.java:201)}}
{{    at 
org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:158)}}
{{    ... 35 more}}

 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Comment Edited] (CALCITE-3557) ClassCastException for using nested multiset or array inside multiset

2022-05-03 Thread Jiajun Xie (Jira)


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

Jiajun Xie edited comment on CALCITE-3557 at 5/3/22 9:12 AM:
-

Here is a new pr in avatica: 
[https://github.com/apache/calcite-avatica/pull/179].  Welcome to comment. 

And add UT in CALCITE: https://github.com/apache/calcite/pull/2790


was (Author: jiajunbernoulli):
Here is a new pr in avatica: 
https://github.com/apache/calcite-avatica/pull/179.  Welcome to comment.

> ClassCastException for using nested multiset or array inside multiset
> -
>
> Key: CALCITE-3557
> URL: https://issues.apache.org/jira/browse/CALCITE-3557
> Project: Calcite
>  Issue Type: Bug
>Reporter: Wang Yanlin
>Assignee: Jiajun Xie
>Priority: Major
>  Labels: pull-request-available
> Attachments: image-2021-12-25-18-06-21-066.png, 
> image-2022-01-23-17-16-54-076.png, screenshot-1.png
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> {code:java}
> // JdbcTest
> @Test public void testNestedMultiset() {
> CalciteAssert.that()
> .query("select multiset[ARRAY[1, 2], ARRAY[3, 4]]")
> .returns("EXPR$0=[[1, 2], [3, 4]]\n");
> CalciteAssert.that()
> .query("select multiset[multiset[1, 2], multiset[3, 4]]")
> .returns("EXPR$0=[[1, 2], [3, 4]]\n");
>   }
> {code}
> Got
> {code:java}
> java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 
> java.lang.Integer
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$IntAccessor.getInt(AbstractCursor.java:541)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.convertValue(AbstractCursor.java:1318)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getObject(AbstractCursor.java:1299)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getArray(AbstractCursor.java:1352)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.convertValue(AbstractCursor.java:1326)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getObject(AbstractCursor.java:1299)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getArray(AbstractCursor.java:1352)
>   at org.apache.calcite.avatica.AvaticaSite.get(AvaticaSite.java:305)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.getObject(AvaticaResultSet.java:393)
>   at 
> org.apache.calcite.test.CalciteAssert$ResultSetFormatter.rowToString(CalciteAssert.java:1978)
>   at 
> org.apache.calcite.test.CalciteAssert$ResultSetFormatter.resultSet(CalciteAssert.java:1966)
>   at 
> org.apache.calcite.test.CalciteAssert.lambda$checkResult$2(CalciteAssert.java:303)
>   at 
> org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:544)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$returns$1(CalciteAssert.java:1514)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1446)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1512)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1495)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1458)
>   at 
> org.apache.calcite.test.JdbcTest.testNestedMultiset(JdbcTest.java:2057)
>   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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java

[jira] [Updated] (CALCITE-3557) ClassCastException for using nested multiset or array inside multiset

2022-05-03 Thread ASF GitHub Bot (Jira)


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

ASF GitHub Bot updated CALCITE-3557:

Labels: pull-request-available  (was: )

> ClassCastException for using nested multiset or array inside multiset
> -
>
> Key: CALCITE-3557
> URL: https://issues.apache.org/jira/browse/CALCITE-3557
> Project: Calcite
>  Issue Type: Bug
>Reporter: Wang Yanlin
>Assignee: Jiajun Xie
>Priority: Major
>  Labels: pull-request-available
> Attachments: image-2021-12-25-18-06-21-066.png, 
> image-2022-01-23-17-16-54-076.png, screenshot-1.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> {code:java}
> // JdbcTest
> @Test public void testNestedMultiset() {
> CalciteAssert.that()
> .query("select multiset[ARRAY[1, 2], ARRAY[3, 4]]")
> .returns("EXPR$0=[[1, 2], [3, 4]]\n");
> CalciteAssert.that()
> .query("select multiset[multiset[1, 2], multiset[3, 4]]")
> .returns("EXPR$0=[[1, 2], [3, 4]]\n");
>   }
> {code}
> Got
> {code:java}
> java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 
> java.lang.Integer
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$IntAccessor.getInt(AbstractCursor.java:541)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.convertValue(AbstractCursor.java:1318)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getObject(AbstractCursor.java:1299)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getArray(AbstractCursor.java:1352)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.convertValue(AbstractCursor.java:1326)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getObject(AbstractCursor.java:1299)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getArray(AbstractCursor.java:1352)
>   at org.apache.calcite.avatica.AvaticaSite.get(AvaticaSite.java:305)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.getObject(AvaticaResultSet.java:393)
>   at 
> org.apache.calcite.test.CalciteAssert$ResultSetFormatter.rowToString(CalciteAssert.java:1978)
>   at 
> org.apache.calcite.test.CalciteAssert$ResultSetFormatter.resultSet(CalciteAssert.java:1966)
>   at 
> org.apache.calcite.test.CalciteAssert.lambda$checkResult$2(CalciteAssert.java:303)
>   at 
> org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:544)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$returns$1(CalciteAssert.java:1514)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1446)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1512)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1495)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1458)
>   at 
> org.apache.calcite.test.JdbcTest.testNestedMultiset(JdbcTest.java:2057)
>   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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
>   at 
> com.

[jira] [Commented] (CALCITE-3557) ClassCastException for using nested multiset or array inside multiset

2022-05-03 Thread Jiajun Xie (Jira)


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

Jiajun Xie commented on CALCITE-3557:
-

Here is a new pr in avatica: 
https://github.com/apache/calcite-avatica/pull/179.  Welcome to comment.

> ClassCastException for using nested multiset or array inside multiset
> -
>
> Key: CALCITE-3557
> URL: https://issues.apache.org/jira/browse/CALCITE-3557
> Project: Calcite
>  Issue Type: Bug
>Reporter: Wang Yanlin
>Assignee: Jiajun Xie
>Priority: Major
> Attachments: image-2021-12-25-18-06-21-066.png, 
> image-2022-01-23-17-16-54-076.png, screenshot-1.png
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> {code:java}
> // JdbcTest
> @Test public void testNestedMultiset() {
> CalciteAssert.that()
> .query("select multiset[ARRAY[1, 2], ARRAY[3, 4]]")
> .returns("EXPR$0=[[1, 2], [3, 4]]\n");
> CalciteAssert.that()
> .query("select multiset[multiset[1, 2], multiset[3, 4]]")
> .returns("EXPR$0=[[1, 2], [3, 4]]\n");
>   }
> {code}
> Got
> {code:java}
> java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 
> java.lang.Integer
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$IntAccessor.getInt(AbstractCursor.java:541)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.convertValue(AbstractCursor.java:1318)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getObject(AbstractCursor.java:1299)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getArray(AbstractCursor.java:1352)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.convertValue(AbstractCursor.java:1326)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getObject(AbstractCursor.java:1299)
>   at 
> org.apache.calcite.avatica.util.AbstractCursor$ArrayAccessor.getArray(AbstractCursor.java:1352)
>   at org.apache.calcite.avatica.AvaticaSite.get(AvaticaSite.java:305)
>   at 
> org.apache.calcite.avatica.AvaticaResultSet.getObject(AvaticaResultSet.java:393)
>   at 
> org.apache.calcite.test.CalciteAssert$ResultSetFormatter.rowToString(CalciteAssert.java:1978)
>   at 
> org.apache.calcite.test.CalciteAssert$ResultSetFormatter.resultSet(CalciteAssert.java:1966)
>   at 
> org.apache.calcite.test.CalciteAssert.lambda$checkResult$2(CalciteAssert.java:303)
>   at 
> org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:544)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$returns$1(CalciteAssert.java:1514)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1446)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1512)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1495)
>   at 
> org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1458)
>   at 
> org.apache.calcite.test.JdbcTest.testNestedMultiset(JdbcTest.java:2057)
>   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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>   at 
> com.intellij.rt.junit.IdeaTestRunner$Repeater

[jira] [Updated] (CALCITE-5127) Error when executing query with subquery in select list that uses outer column of array type

2022-05-03 Thread Dmitry Sysolyatin (Jira)


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

Dmitry Sysolyatin updated CALCITE-5127:
---
Component/s: core

> Error when executing query with subquery in select list that uses outer 
> column of array type
> 
>
> Key: CALCITE-5127
> URL: https://issues.apache.org/jira/browse/CALCITE-5127
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Reporter: Dmitry Sysolyatin
>Priority: Major
>
> The following queries fail:
> {code}
> SELECT ARRAY(SELECT s.x) FROM (SELECT ARRAY[1,2,3] as x) s;
> SELECT ARRAY(SELECT * FROM UNNEST(s.x) y) FROM (SELECT ARRAY[1,2,3] as x) s;
> SELECT (SELECT CARDINALITY(s.x) LIMIT 1) FROM (SELECT ARRAY[1,2,3] as x) s;   
>  
> {code}
> With exception:
> {code}
> Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to 
> java.util.List
> {code}
> You can find test cases for this task in 
> https://github.com/apache/calcite/commit/27e68ded2c3bea7d7af73dd1dc156e46fb3591a8



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Updated] (CALCITE-5127) Error when executing query with subquery in select list that uses outer column of array type

2022-05-03 Thread Dmitry Sysolyatin (Jira)


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

Dmitry Sysolyatin updated CALCITE-5127:
---
Description: 
The following queries fail:
{code}
SELECT ARRAY(SELECT s.x) FROM (SELECT ARRAY[1,2,3] as x) s;
SELECT ARRAY(SELECT * FROM UNNEST(s.x) y) FROM (SELECT ARRAY[1,2,3] as x) s;
SELECT (SELECT CARDINALITY(s.x) LIMIT 1) FROM (SELECT ARRAY[1,2,3] as x) s;
{code}

With exception:

{code}
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to 
java.util.List
{code}

You can find test cases for this task in 
https://github.com/apache/calcite/commit/27e68ded2c3bea7d7af73dd1dc156e46fb3591a8

  was:
The following queries fail:
{code}
CalciteAssert.that()
.query("SELECT ARRAY(SELECT s.x)\n" +
"FROM (SELECT ARRAY[1,2,3] as x) s")
.returnsCount(1);

CalciteAssert.that()
.query("SELECT ARRAY(SELECT * FROM UNNEST(s.x) y)\n" +
"FROM (SELECT ARRAY[1,2,3] as x) s")
.returnsCount(1);

CalciteAssert.that()
.query("SELECT (SELECT CARDINALITY(s.x) LIMIT 1)\n" +
"FROM (SELECT ARRAY[1,2,3] as x) s")
.returnsUnordered("EXPR$0=3");
{code}

With exception:
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to 
java.util.List

You can find test cases for this task in 
https://github.com/apache/calcite/commit/27e68ded2c3bea7d7af73dd1dc156e46fb3591a8


> Error when executing query with subquery in select list that uses outer 
> column of array type
> 
>
> Key: CALCITE-5127
> URL: https://issues.apache.org/jira/browse/CALCITE-5127
> Project: Calcite
>  Issue Type: Bug
>Reporter: Dmitry Sysolyatin
>Priority: Major
>
> The following queries fail:
> {code}
> SELECT ARRAY(SELECT s.x) FROM (SELECT ARRAY[1,2,3] as x) s;
> SELECT ARRAY(SELECT * FROM UNNEST(s.x) y) FROM (SELECT ARRAY[1,2,3] as x) s;
> SELECT (SELECT CARDINALITY(s.x) LIMIT 1) FROM (SELECT ARRAY[1,2,3] as x) s;   
>  
> {code}
> With exception:
> {code}
> Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to 
> java.util.List
> {code}
> You can find test cases for this task in 
> https://github.com/apache/calcite/commit/27e68ded2c3bea7d7af73dd1dc156e46fb3591a8



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Created] (CALCITE-5127) Error when executing query with subquery in select list that uses outer column of array type

2022-05-03 Thread Dmitry Sysolyatin (Jira)
Dmitry Sysolyatin created CALCITE-5127:
--

 Summary: Error when executing query with subquery in select list 
that uses outer column of array type
 Key: CALCITE-5127
 URL: https://issues.apache.org/jira/browse/CALCITE-5127
 Project: Calcite
  Issue Type: Bug
Reporter: Dmitry Sysolyatin


The following queries fail:
{code}
CalciteAssert.that()
.query("SELECT ARRAY(SELECT s.x)\n" +
"FROM (SELECT ARRAY[1,2,3] as x) s")
.returnsCount(1);

CalciteAssert.that()
.query("SELECT ARRAY(SELECT * FROM UNNEST(s.x) y)\n" +
"FROM (SELECT ARRAY[1,2,3] as x) s")
.returnsCount(1);

CalciteAssert.that()
.query("SELECT (SELECT CARDINALITY(s.x) LIMIT 1)\n" +
"FROM (SELECT ARRAY[1,2,3] as x) s")
.returnsUnordered("EXPR$0=3");
{code}

With exception:
Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to 
java.util.List

You can find test cases for this task in 
https://github.com/apache/calcite/commit/27e68ded2c3bea7d7af73dd1dc156e46fb3591a8



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Closed] (CALCITE-3658) TableModify of Update contains correlated variable by mistake.

2022-05-03 Thread Ruben Q L (Jira)


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

Ruben Q L closed CALCITE-3658.
--

> TableModify of Update contains correlated variable by mistake.
> --
>
> Key: CALCITE-3658
> URL: https://issues.apache.org/jira/browse/CALCITE-3658
> Project: Calcite
>  Issue Type: Improvement
>Reporter: Jin Xing
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.22.0
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> UPDATE clause like below
> {code:java}
> update emp set empno = empno + 1
> {code}
> will be converted to 
> {code:java}
> LogicalTableModify(table=[[CATALOG, SALES, EMP]], operation=[UPDATE], 
> updateColumnList=[[EMPNO]], sourceExpressionList=[[+($cor0.EMPNO, 1)]], 
> flattened=[true])
>   LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], 
> SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8], EXPR$0=[+($0, 1)])
> LogicalTableScan(table=[[CATALOG, SALES, EMP]])
> {code}
> However the correlated variables $cor0.EMPNO should not exist in 
> *sourceExpressionList*.
> It also brings trouble when convert TableModify back to Sql string.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (CALCITE-3658) TableModify of Update contains correlated variable by mistake.

2022-05-03 Thread Jiajun Xie (Jira)


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

Jiajun Xie commented on CALCITE-3658:
-

OK, in order to avoid the problem of JIRA workflow, I closed the ticket. Let's 
discuss new solutions in CALCITE-5122.

> TableModify of Update contains correlated variable by mistake.
> --
>
> Key: CALCITE-3658
> URL: https://issues.apache.org/jira/browse/CALCITE-3658
> Project: Calcite
>  Issue Type: Improvement
>Reporter: Jin Xing
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.22.0
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> UPDATE clause like below
> {code:java}
> update emp set empno = empno + 1
> {code}
> will be converted to 
> {code:java}
> LogicalTableModify(table=[[CATALOG, SALES, EMP]], operation=[UPDATE], 
> updateColumnList=[[EMPNO]], sourceExpressionList=[[+($cor0.EMPNO, 1)]], 
> flattened=[true])
>   LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], 
> SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8], EXPR$0=[+($0, 1)])
> LogicalTableScan(table=[[CATALOG, SALES, EMP]])
> {code}
> However the correlated variables $cor0.EMPNO should not exist in 
> *sourceExpressionList*.
> It also brings trouble when convert TableModify back to Sql string.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Resolved] (CALCITE-3658) TableModify of Update contains correlated variable by mistake.

2022-05-03 Thread Jiajun Xie (Jira)


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

Jiajun Xie resolved CALCITE-3658.
-
Resolution: Fixed

> TableModify of Update contains correlated variable by mistake.
> --
>
> Key: CALCITE-3658
> URL: https://issues.apache.org/jira/browse/CALCITE-3658
> Project: Calcite
>  Issue Type: Improvement
>Reporter: Jin Xing
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.22.0
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> UPDATE clause like below
> {code:java}
> update emp set empno = empno + 1
> {code}
> will be converted to 
> {code:java}
> LogicalTableModify(table=[[CATALOG, SALES, EMP]], operation=[UPDATE], 
> updateColumnList=[[EMPNO]], sourceExpressionList=[[+($cor0.EMPNO, 1)]], 
> flattened=[true])
>   LogicalProject(EMPNO=[$0], ENAME=[$1], JOB=[$2], MGR=[$3], HIREDATE=[$4], 
> SAL=[$5], COMM=[$6], DEPTNO=[$7], SLACKER=[$8], EXPR$0=[+($0, 1)])
> LogicalTableScan(table=[[CATALOG, SALES, EMP]])
> {code}
> However the correlated variables $cor0.EMPNO should not exist in 
> *sourceExpressionList*.
> It also brings trouble when convert TableModify back to Sql string.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)