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(

Reply via email to