This is an automated email from the ASF dual-hosted git repository.

Xiao-zhen-Liu pushed a commit to branch xiaozhen-caching-prototype
in repository https://gitbox.apache.org/repos/asf/texera.git

commit 2af6073aacebfa414abada4a7a0180ab419ddf6b
Author: Xiaozhen Liu <[email protected]>
AuthorDate: Mon Jan 19 14:37:29 2026 -0800

    feat(cache): fix compiling service join type 400 bug.
---
 .../texera/amber/operator/hashJoin/JoinType.java    | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git 
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/hashJoin/JoinType.java
 
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/hashJoin/JoinType.java
index 5ac03b3b87..4b1e4fa210 100644
--- 
a/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/hashJoin/JoinType.java
+++ 
b/common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/hashJoin/JoinType.java
@@ -20,6 +20,7 @@
 package org.apache.texera.amber.operator.hashJoin;
 
 import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonCreator;
 
 public enum JoinType {
     INNER("inner"),
@@ -38,4 +39,24 @@ public enum JoinType {
         return this.value;
     }
 
+    /**
+     * Parses a JSON join type string into the matching enum value.
+     * Accepts the serialized values (e.g., "full outer") case-insensitively.
+     *
+     * @param value join type string from JSON
+     * @return matching JoinType enum
+     */
+    @JsonCreator
+    public static JoinType fromString(String value) {
+        if (value == null) {
+            return null;
+        }
+        for (JoinType type : JoinType.values()) {
+            if (type.value.equalsIgnoreCase(value)) {
+                return type;
+            }
+        }
+        throw new IllegalArgumentException("Unknown join type: " + value);
+    }
+
 }

Reply via email to