Revanth14 commented on code in PR #2356:
URL: https://github.com/apache/iceberg-go/pull/2356#discussion_r4415610651
##########
table/substrait/substrait.go:
##########
@@ -405,12 +405,23 @@ func (t *toSubstraitExpr) makeSetFunc(id extensions.ID,
term iceberg.BoundTerm,
t.bldr.Literal(expr.NewNestedLiteral(val, false)))
}
+// VisitIn is NULL for a NULL term, as SQL IN and Equal are. Arrow's is_in is
+// false for it, so it is or-ed with (is_null(x) AND NULL), which is false for
+// any other value. NotIn negates the result, so it never matches NULL either.
func (t *toSubstraitExpr) VisitIn(term iceberg.BoundTerm, lits
iceberg.Set[iceberg.Literal]) expr.Builder {
Review Comment:
Filed apache/iceberg#18701 for Java's `Evaluator`, which matches NULL for
both `notEq` and `notIn` (its literal comparators order null first, so Java was
never split by arity). It's linked in the `VisitIn` comment and in the release
note.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]