Reflect #assignsToOneWindow in WindowingStrategy
Project: http://git-wip-us.apache.org/repos/asf/beam/repo Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/8ae2a790 Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/8ae2a790 Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/8ae2a790 Branch: refs/heads/DSL_SQL Commit: 8ae2a790978267ea48e9c3601ba6551d1141a11e Parents: 83f31e9 Author: Thomas Groh <[email protected]> Authored: Tue Jun 27 15:03:11 2017 -0700 Committer: Tyler Akidau <[email protected]> Committed: Wed Jul 12 20:01:02 2017 -0700 ---------------------------------------------------------------------- .../runners/core/construction/WindowingStrategyTranslation.java | 1 + .../core/construction/WindowingStrategyTranslationTest.java | 3 +++ sdks/common/runner-api/src/main/proto/beam_runner_api.proto | 5 +++++ 3 files changed, 9 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/beam/blob/8ae2a790/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslation.java ---------------------------------------------------------------------- diff --git a/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslation.java b/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslation.java index 88ebc01..1456a3f 100644 --- a/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslation.java +++ b/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslation.java @@ -307,6 +307,7 @@ public class WindowingStrategyTranslation implements Serializable { .setAllowedLateness(windowingStrategy.getAllowedLateness().getMillis()) .setTrigger(TriggerTranslation.toProto(windowingStrategy.getTrigger())) .setWindowFn(windowFnSpec) + .setAssignsToOneWindow(windowingStrategy.getWindowFn().assignsToOneWindow()) .setWindowCoderId( components.registerCoder(windowingStrategy.getWindowFn().windowCoder())); http://git-wip-us.apache.org/repos/asf/beam/blob/8ae2a790/runners/core-construction-java/src/test/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslationTest.java ---------------------------------------------------------------------- diff --git a/runners/core-construction-java/src/test/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslationTest.java b/runners/core-construction-java/src/test/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslationTest.java index e406545..7a57fd7 100644 --- a/runners/core-construction-java/src/test/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslationTest.java +++ b/runners/core-construction-java/src/test/java/org/apache/beam/runners/core/construction/WindowingStrategyTranslationTest.java @@ -116,5 +116,8 @@ public class WindowingStrategyTranslationTest { protoComponents.getCodersOrThrow( components.registerCoder(windowingStrategy.getWindowFn().windowCoder())); + assertThat( + proto.getAssignsToOneWindow(), + equalTo(windowingStrategy.getWindowFn().assignsToOneWindow())); } } http://git-wip-us.apache.org/repos/asf/beam/blob/8ae2a790/sdks/common/runner-api/src/main/proto/beam_runner_api.proto ---------------------------------------------------------------------- diff --git a/sdks/common/runner-api/src/main/proto/beam_runner_api.proto b/sdks/common/runner-api/src/main/proto/beam_runner_api.proto index 1f74afb..711da2a 100644 --- a/sdks/common/runner-api/src/main/proto/beam_runner_api.proto +++ b/sdks/common/runner-api/src/main/proto/beam_runner_api.proto @@ -439,6 +439,11 @@ message WindowingStrategy { // (Required) Indicate whether empty on-time panes should be omitted. OnTimeBehavior OnTimeBehavior = 9; + + // (Required) Whether or not the window fn assigns inputs to exactly one window + // + // This knowledge is required for some optimizations + bool assigns_to_one_window = 10; } // Whether or not a PCollection's WindowFn is non-merging, merging, or
