Audit notes for expressions in this category that have been audited. Absence of an entry means the expression has not been audited yet, not that it is unsupported. See the user guide Spark Expression Support for current support status.
ElementAt(left, right, defaultValueOutOfBound, failOnError) extends GetMapValueUtil; the parser routes element_at(<array>, ...) to one overload and element_at(<map>, ...) to another. Comet routes MapType input through the same native map_extract path used by GetMapValue.nullIntolerant: Boolean field; semantics unchanged.MapContainsKey(left, right) extends RuntimeReplaceable with InheritAnalysisRules; the analyzer rewrites to ArrayContains(MapKeys(left), right). Comet routes via CometMapContainsKey which emits the equivalent array_has(map_keys(map), key).MapEntries(child) returns an array of structs <key, value>. Wired to native map_entries.MapFromArrays(left, right) extends BinaryExpression with NullIntolerant; Spark uses ArrayBasedMapBuilder to detect duplicate keys (subject to spark.sql.mapKeyDedupPolicy) and rejects null keys with RuntimeException("Cannot use null as map key"). Comet CometMapFromArrays wraps the inputs in CaseWhen(IsNotNull(left) AND IsNotNull(right), map(left, right), null) so NULL-array inputs return NULL rather than triggering the previously reported native crash (#3327).NullIntolerant trait replaced by nullIntolerant: Boolean.MapFromEntries(child) extends UnaryExpression with NullIntolerant; expects an array of structs and produces a map. Wired as CometScalarFunction("map_from_entries").BinaryType are marked Incompatible and fall back unless spark.comet.expression.MapFromEntries.allowIncompatible=true.MapKeys(child) returns the map's keys as an array. Wired to native map_keys.MapValues(child) returns the map's values as an array. Wired to native map_values.StringToMap(text, pairDelim, keyValueDelim) extends TernaryExpression; splits text on pairDelim, then each pair on keyValueDelim (default "," and ":"). Uses ArrayBasedMapBuilder for duplicate-key handling. Wired as CometScalarFunction("str_to_map").inputTypes widened to StringTypeNonCSAICollation; uses CollationAwareUTF8String.splitSQL with a collationId. Runtime unchanged for UTF8_BINARY.legacySplitTruncate flag (driven by spark.sql.legacy.truncateForEmptyRegexSplit) to both splitSQL calls. The Comet native impl always behaves as if the flag were false, so CometStrToMap reads the config by string key and reports Incompatible when it is enabled; the CodegenDispatchFallback trait then routes the expression through the JVM codegen dispatcher rather than falling the whole projection back to Spark. Non-UTF8_BINARY collations on the input or the delimiters are handled the same way.