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

ASF GitHub Bot updated FLINK-34462:
-----------------------------------
    Labels: pull-request-available  (was: )

> Session window with negative parameter throws unclear exception
> ---------------------------------------------------------------
>
>                 Key: FLINK-34462
>                 URL: https://issues.apache.org/jira/browse/FLINK-34462
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table SQL / Planner
>    Affects Versions: 1.19.0
>            Reporter: Shuai Xu
>            Priority: Major
>              Labels: pull-request-available
>
> Set invalid parameter in session window get unclear error.
> {code:java}
> // add test in WindowAggregateITCase
> def testEventTimeSessionWindowWithInvalidName(): Unit = {
>   val sql =
>     """
>       |SELECT
>       |  window_start,
>       |  window_end,
>       |  COUNT(*),
>       |  SUM(`bigdec`),
>       |  MAX(`double`),
>       |  MIN(`float`),
>       |  COUNT(DISTINCT `string`),
>       |  concat_distinct_agg(`string`)
>       |FROM TABLE(
>       |   SESSION(TABLE T1, DESCRIPTOR(rowtime), INTERVAL '-5' SECOND))
>       |GROUP BY window_start, window_end
>     """.stripMargin
>   val sink = new TestingAppendSink
>   tEnv.sqlQuery(sql).toDataStream.addSink(sink)
>   env.execute()
> } 
> {code}
> {code:java}
> java.lang.AssertionError: Sql optimization: Assertion error: null at 
> org.apache.flink.table.planner.plan.optimize.program.FlinkVolcanoProgram.optimize(FlinkVolcanoProgram.scala:79)
>  at 
> org.apache.flink.table.planner.plan.optimize.program.FlinkChainedProgram.$anonfun$optimize$1(FlinkChainedProgram.scala:59)
>  at 
> scala.collection.TraversableOnce.$anonfun$foldLeft$1(TraversableOnce.scala:156)
>  at 
> scala.collection.TraversableOnce.$anonfun$foldLeft$1$adapted(TraversableOnce.scala:156)
>  at scala.collection.Iterator.foreach(Iterator.scala:937) at 
> scala.collection.Iterator.foreach$(Iterator.scala:937) at 
> scala.collection.AbstractIterator.foreach(Iterator.scala:1425) at 
> scala.collection.IterableLike.foreach(IterableLike.scala:70) at 
> scala.collection.IterableLike.foreach$(IterableLike.scala:69) at 
> scala.collection.AbstractIterable.foreach(Iterable.scala:54) at 
> scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:156) at 
> scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:154) at 
> scala.collection.AbstractTraversable.foldLeft(Traversable.scala:104) at 
> org.apache.flink.table.planner.plan.optimize.program.FlinkChainedProgram.optimize(FlinkChainedProgram.scala:55)
>  at 
> org.apache.flink.table.planner.plan.optimize.StreamCommonSubGraphBasedOptimizer.optimizeTree(StreamCommonSubGraphBasedOptimizer.scala:176)
>  at 
> org.apache.flink.table.planner.plan.optimize.StreamCommonSubGraphBasedOptimizer.doOptimize(StreamCommonSubGraphBasedOptimizer.scala:83)
>  at 
> org.apache.flink.table.planner.plan.optimize.CommonSubGraphBasedOptimizer.optimize(CommonSubGraphBasedOptimizer.scala:87)
>  at 
> org.apache.flink.table.planner.delegation.PlannerBase.optimize(PlannerBase.scala:320)
>  at 
> org.apache.flink.table.planner.delegation.PlannerBase.translate(PlannerBase.scala:178)
>  at 
> org.apache.flink.table.api.bridge.internal.AbstractStreamTableEnvironmentImpl.toStreamInternal(AbstractStreamTableEnvironmentImpl.java:224)
>  at 
> org.apache.flink.table.api.bridge.internal.AbstractStreamTableEnvironmentImpl.toStreamInternal(AbstractStreamTableEnvironmentImpl.java:219)
>  at 
> org.apache.flink.table.api.bridge.scala.internal.StreamTableEnvironmentImpl.toDataStream(StreamTableEnvironmentImpl.scala:151)
>  at 
> org.apache.flink.table.api.bridge.scala.internal.StreamTableEnvironmentImpl.toDataStream(StreamTableEnvironmentImpl.scala:128)
>  at 
> org.apache.flink.table.api.bridge.scala.TableConversions.toDataStream(TableConversions.scala:60)
>  at 
> org.apache.flink.table.planner.runtime.stream.sql.WindowAggregateITCase.testEventTimeSessionWindowWithInvalidName(WindowAggregateITCase.scala:1239)
>  at java.lang.reflect.Method.invoke(Method.java:498) at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at 
> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at 
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at 
> java.util.Iterator.forEachRemaining(Iterator.java:116) at 
> scala.collection.convert.Wrappers$IteratorWrapper.forEachRemaining(Wrappers.scala:26)
>  at 
> java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
>  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) 
> at 
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) 
> at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at 
> java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) at 
> java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:272) at 
> java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
>  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) 
> at 
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) 
> at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
>  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at 
> java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) at 
> java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) at 
> java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at 
> java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) 
> at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at 
> java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175) 
> Suppressed: org.opentest4j.AssertionFailedError: Expecting value to be true 
> but was false
> {code}
> while the tumble window throws 
> {code:java}
> java.lang.IllegalArgumentException: Tumbling Window parameters must satisfy 
> size > 0, but got size -5000ms.
>       at 
> org.apache.flink.util.Preconditions.checkArgument(Preconditions.java:138)    
> at 
> org.apache.flink.table.runtime.operators.window.tvf.slicing.SliceAssigners$TumblingSliceAssigner.<init>(SliceAssigners.java:152)
>      at 
> org.apache.flink.table.runtime.operators.window.tvf.slicing.SliceAssigners$TumblingSliceAssigner.<init>(SliceAssigners.java:136)
>      at 
> org.apache.flink.table.runtime.operators.window.tvf.slicing.SliceAssigners.tumbling(SliceAssigners.java:65)
>  {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to