Description
Currently when parsing HOP/TUMBLE/SESSION expressions we create a repeating trigger for the defined windows, see:
BeamAggregationRule.java
private Trigger createTriggerWithDelay(GregorianCalendar delayTime) { return Repeatedly.forever(AfterWatermark.pastEndOfWindow().withLateFirings(AfterProcessingTime .pastFirstElementInPane().plusDelayOf(Duration.millis(delayTime.getTimeInMillis())))); }
This will not work correctly with joins, as joins with multiple trigger firings are currently broken: https://issues.apache.org/jira/browse/BEAM-3190 .
Even if joins with multiple firings worked correctly, SQL parsing stage is still probably an incorrect place to infer them.
Better alternatives:
- inherit the user-defined triggers for the input pcollection without modification;
- triggering at sinks ( https://s.apache.org/beam-sink-triggers ) might define a way to backpropagate triggers with correct semantics;