twalthr commented on code in PR #26076:
URL: https://github.com/apache/flink/pull/26076#discussion_r1944571585
##########
flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/physical/stream/StreamPhysicalProcessTableFunction.java:
##########
@@ -163,40 +167,31 @@ protected RelDataType deriveRowType() {
return rowType;
}
- public List<StaticArgument> getProvidedInputArgs() {
- final RexCall call = (RexCall) scan.getCall();
- final List<RexNode> operands = call.getOperands();
- final BridgingSqlFunction.WithTableFunction function =
- (BridgingSqlFunction.WithTableFunction) call.getOperator();
- final List<StaticArgument> declaredArgs =
- function.getTypeInference()
- .getStaticArguments()
- .orElseThrow(IllegalStateException::new);
- // This logic filters out optional tables for which an input is
missing. It returns tables
- // in the same order as provided inputs of this RelNode.
- return Ord.zip(declaredArgs).stream()
- .filter(arg -> arg.e.is(StaticArgumentTrait.TABLE))
- .filter(arg -> operands.get(arg.i) instanceof RexTableArgCall)
- .map(arg -> arg.e)
- .collect(Collectors.toList());
- }
-
/**
- * An important part of {@link ProcessTableFunction} is the mandatory
unique identifier. Even if
- * the PTF has no state entries, state or timers might be added later. So
a PTF should serve as
- * an identifiable black box for the optimizer. UIDs ensure that.
+ * An important part of {@link ProcessTableFunction} is the mandatory
unique identifier for PTFs
Review Comment:
Yes, this is similar to non-keyed datastream operators. We can't check
everything during validation because state and time is available after
specialization. Esp. for built-in functions. Specialization happens in
StreamExec node. But since this is introducing stateless PTFs. Let's postpone
this discussion to stateful ones.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]