carloea2 commented on code in PR #8506:
URL: https://github.com/apache/texera/pull/8506#discussion_r4254015345


##########
common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/hashJoin/HashJoinProbeOpExec.scala:
##########
@@ -80,10 +90,10 @@ class HashJoinProbeOpExec[K](
     if (port == 0) {
       // Load build hash map
       val key = tuple.getField[K](HASH_JOIN_INTERNAL_KEY_NAME)
+      val names = tuple.getSchema.getAttributeNames.filterNot(n => n == 
HASH_JOIN_INTERNAL_KEY_NAME)
+      if (leftAttributeNames.isEmpty) leftAttributeNames = names

Review Comment:
   The column names remain empty when this worker receives no build rows. In a 
FULL_OUTER join with both schemas {k, x}, an unmatched right row then fills 
left x and leaves x#@1 null. I reproduced this with an empty build side; the 
export places the value correctly. A differently named right key also leaks 
into a same-named left payload. Please pass the declared build schema 
independently of its rows and cover empty build partitions.



##########
common/workflow-operator/src/main/scala/org/apache/texera/amber/operator/intersect/IntersectOpDesc.scala:
##########
@@ -52,4 +51,10 @@ class IntersectOpDesc extends LogicalOp {
       inputPorts = List(InputPort(PortIdentity()), InputPort(PortIdentity(1))),
       outputPorts = List(OutputPort(blocking = true))
     )
+
+  // Distinct rows in both inputs. concat + duplicated (not pd.merge) so NaN ==
+  // NaN matches the JVM HashSet's null equality.
+  override def generateStandaloneCode(): String =
+    """_both = pd.concat([in1df.drop_duplicates(), in2df.drop_duplicates()], 
ignore_index=True)

Review Comment:
   The new set exports still disagree with native equality. With one valid NaN 
row on each side, native Intersect returns zero rows but this returns one. 
Difference returns one natively and zero exported; Symmetric Difference returns 
two natively and zero exported. Opposite signed zeros show the same 
differences. Finite and null controls agree. Please align the semantics and 
test both execution paths; nullable dtypes alone do not resolve this.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to