You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by silence <sl...@aliyun.com.INVALID> on 2021/03/05 10:51:55 UTC

[sql]TimeStamp和异常格式的字符串进行比较时会报空指针

问题描述:
TimeStamp类型和异常格式的字符串进行比较时会在任务运行时报空指针
像这种错误虽然是用户书写错误导致的,但运行时才能发现问题,且sql太长时不好定位具体原因
是否可以在编译期进行类型的验证,尽早发现问题并给出sql的文本坐标

例:where CURRENT_TIMESTAMP=''
      where CURRENT_TIMESTAMP='19700101'

java.lang.NullPointerException: null
	at
org.apache.flink.table.data.TimestampData.compareTo(TimestampData.java:112)
	at StreamExecCalc$4.processElement(Unknown Source)
	at
org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.pushToOperator(CopyingChainingOutput.java:71)
	at
org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:46)
	at
org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:26)
	at
org.apache.flink.streaming.runtime.tasks.BroadcastingOutputCollector.collect(BroadcastingOutputCollector.java:76)
	at
org.apache.flink.streaming.runtime.tasks.BroadcastingOutputCollector.collect(BroadcastingOutputCollector.java:32)
	at
org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:52)
	at
org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:30)
	at
org.apache.flink.streaming.api.operators.StreamSourceContexts$ManualWatermarkContext.processAndCollect(StreamSourceContexts.java:305)
	at
org.apache.flink.streaming.api.operators.StreamSourceContexts$WatermarkContext.collect(StreamSourceContexts.java:394)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at
java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at
java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)



--
Sent from: http://apache-flink.147419.n8.nabble.com/