[jira] [Comment Edited] (FLINK-31091) SQL interval related queries stop working via SQL client

2023-02-20 Thread Jane Chan (Jira)


[ 
https://issues.apache.org/jira/browse/FLINK-31091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17691352#comment-17691352
 ] 

Jane Chan edited comment on FLINK-31091 at 2/21/23 3:31 AM:


Thanks, [~Sergey Nuyanzin] and [~mapohl] for reporting this.

The reason is that 
org.apache.flink.table.gateway.rest.serde.LogicalTypeJsonSerializer does not 
cope with `INTERVAL_YEAR_MONTH` and `INTERVAL_DAY_TIME`. cc [~fsk119] 


was (Author: qingyue):
Thanks, [~Sergey Nuyanzin] and [~mapohl] for reporting this.

The reason is that 
org.apache.flink.table.gateway.rest.serde.LogicalTypeJsonSerializer does not 
cope with `INTERVAL_YEAR_MONTH` and `INTERVAL_DAY_TIME`.

I'd like to fix this issue. cc [~fsk119] 

> SQL interval related queries stop working via SQL client
> 
>
> Key: FLINK-31091
> URL: https://issues.apache.org/jira/browse/FLINK-31091
> Project: Flink
>  Issue Type: Bug
>  Components: Table SQL / Client
>Affects Versions: 1.17.0
>Reporter: Sergey Nuyanzin
>Assignee: Sergey Nuyanzin
>Priority: Blocker
>  Labels: pull-request-available
>
> I put blocker since it works in 1.16.x and stopped working in 1.17 after a 
> certain commit
> Any interval related query run via SQL Client is failing with 
> {noformat}
> [ERROR] Could not execute SQL statement. Reason:
> org.apache.flink.runtime.rest.util.RestClientException: [Internal server 
> error. Could not map response to JSON.]
>   at 
> org.apache.flink.runtime.rest.RestClient.parseResponse(RestClient.java:536)
>   at 
> org.apache.flink.runtime.rest.RestClient.lambda$submitRequest$3(RestClient.java:516)
>   at 
> java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:966)
>   at 
> java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:940)
>   at 
> java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at java.lang.Thread.run(Thread.java:750)
> {noformat}
> example of query
> {code:sql}
> SELECT INTERVAL '2' DAY;
> SELECT 1, INTERVAL '2' YEAR;
> {code}
> based on tests it stopped working after this commit 
> https://issues.apache.org/jira/browse/FLINK-29945
> More traces from logs
> {noformat}
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.JsonMappingException:
>  Unable to serialize logical type 'INTERVAL MONTH NOT NULL'. Please check the 
> documentation for supported types. (through reference chain: java.util.Coll
> ections$UnmodifiableRandomAccessList[1]->org.apache.flink.table.gateway.rest.serde.ColumnInfo["logicalType"])
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:392)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:351)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:316)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:782)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.SerializerProvider.defaultSerializeField(SerializerProvider.java:1166)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.table.gateway.rest.serde.ResultInfoSerializer.serialize(ResultInfoSerializer.java:82)
>  ~[flink-sql-gateway-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> 

[jira] [Comment Edited] (FLINK-31091) SQL interval related queries stop working via SQL client

2023-02-20 Thread Matthias Pohl (Jira)


[ 
https://issues.apache.org/jira/browse/FLINK-31091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17691190#comment-17691190
 ] 

Matthias Pohl edited comment on FLINK-31091 at 2/20/23 2:00 PM:


[~fsk119] [~lic] [~qingyue] (I selected you based on a proposal from 
[~Leonard]) do you have any insights here?


was (Author: mapohl):
[~fsk119] [~lic] [~qingyue] do you have any insights here?

> SQL interval related queries stop working via SQL client
> 
>
> Key: FLINK-31091
> URL: https://issues.apache.org/jira/browse/FLINK-31091
> Project: Flink
>  Issue Type: Bug
>  Components: Table SQL / Client
>Affects Versions: 1.17.0
>Reporter: Sergey Nuyanzin
>Assignee: Sergey Nuyanzin
>Priority: Blocker
>  Labels: pull-request-available
>
> I put blocker since it works in 1.16.x and stopped working in 1.17 after a 
> certain commit
> Any interval related query run via SQL Client is failing with 
> {noformat}
> [ERROR] Could not execute SQL statement. Reason:
> org.apache.flink.runtime.rest.util.RestClientException: [Internal server 
> error. Could not map response to JSON.]
>   at 
> org.apache.flink.runtime.rest.RestClient.parseResponse(RestClient.java:536)
>   at 
> org.apache.flink.runtime.rest.RestClient.lambda$submitRequest$3(RestClient.java:516)
>   at 
> java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:966)
>   at 
> java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:940)
>   at 
> java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at java.lang.Thread.run(Thread.java:750)
> {noformat}
> example of query
> {code:sql}
> SELECT INTERVAL '2' DAY;
> SELECT 1, INTERVAL '2' YEAR;
> {code}
> based on tests it stopped working after this commit 
> https://issues.apache.org/jira/browse/FLINK-29945
> More traces from logs
> {noformat}
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.JsonMappingException:
>  Unable to serialize logical type 'INTERVAL MONTH NOT NULL'. Please check the 
> documentation for supported types. (through reference chain: java.util.Coll
> ections$UnmodifiableRandomAccessList[1]->org.apache.flink.table.gateway.rest.serde.ColumnInfo["logicalType"])
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:392)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:351)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:316)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:782)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.SerializerProvider.defaultSerializeField(SerializerProvider.java:1166)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.table.gateway.rest.serde.ResultInfoSerializer.serialize(ResultInfoSerializer.java:82)
>  ~[flink-sql-gateway-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.table.gateway.rest.serde.ResultInfoSerializer.serialize(ResultInfoSerializer.java:47)
>  ~[flink-sql-gateway-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
> at 
> org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.SerializerProvider.defaultSerializeField(SerializerProvider.java:1166)
>  ~[flink-dist-1.18-SNAPSHOT.jar:1.18-SNAPSHOT]
>