This is an automated email from the ASF dual-hosted git repository.
xuang7 pushed a commit to branch release/v1.2
in repository https://gitbox.apache.org/repos/asf/texera.git
The following commit(s) were added to refs/heads/release/v1.2 by this push:
new 1b173d5d94 fix(workflow-operator, v1.2): fall back to day semantics
for an unset interval type; extend aggregate and interval-join tests (#7007)
1b173d5d94 is described below
commit 1b173d5d942a2f2a34b44a972a23af55734691d6
Author: Yicong Huang <[email protected]>
AuthorDate: Wed Jul 29 14:18:32 2026 -0400
fix(workflow-operator, v1.2): fall back to day semantics for an unset
interval type; extend aggregate and interval-join tests (#7007)
### What changes were proposed in this PR?
Backport of #6907 to `release/v1.2`, cherry-picked from
03a0e3a3b12424b99fa829d56fdb0a7512c6f173.
**Source fix only.** The test changes from #6907 were omitted: the
touched test spec(s) do not exist on `release/v1.2` (or depend on
main-only test infrastructure), so backporting them cleanly is not
possible. Only the source fix is carried over, per maintainer guidance.
### Any related issues, documentation, discussions?
Backport of #6907. Originally linked #6901.
### How was this PR tested?
Release-branch CI runs on this PR. The source change cherry-picked
cleanly; test changes were intentionally dropped (see above).
### Was this PR authored or co-authored using generative AI tooling?
Yes — backport prepared with Claude Code (mechanical cherry-pick +
conflict resolution; the change itself is #6907 by its original author).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Meng Wang <[email protected]>
---
.../texera/amber/operator/intervalJoin/IntervalJoinOpExec.scala | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/intervalJoin/IntervalJoinOpExec.scala
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/intervalJoin/IntervalJoinOpExec.scala
index 4a4c987540..4dd6832d4d 100644
---
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/intervalJoin/IntervalJoinOpExec.scala
+++
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/intervalJoin/IntervalJoinOpExec.scala
@@ -210,7 +210,11 @@ class IntervalJoinOpExec(descString: String) extends
OperatorExecutor {
Timestamp.valueOf(leftBoundValue.toLocalDateTime.plusMinutes(desc.constant))
case Some(TimeIntervalType.SECOND) =>
Timestamp.valueOf(leftBoundValue.toLocalDateTime.plusSeconds(desc.constant))
- case None =>
+ case _ =>
+ // Unset interval type falls back to day semantics. This has to be
a
+ // catch-all rather than `case None`: an absent JSON field
+ // deserializes to Some(null), not None, so matching only on None
+ // threw a MatchError instead of taking the fallback.
Timestamp.valueOf(leftBoundValue.toLocalDateTime.plusDays(desc.constant))
}
result = processNumValue(