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.
Incompatible (requires explicit schema).BinaryExpression with ExpectsInputTypes with CodegenFallback; inputTypes = Seq(StringType, StringType) -> StringType. Eval is inline and uses Jackson with RawStyle output. Foldable paths are parsed once. Returns NULL for invalid JSON, missing paths, or JsonProcessingException.GetJsonObjectEvaluator helper (no behaviour change). The trait set now mixes in DefaultStringProducingExpression, and inputTypes is widened to StringTypeWithCollation(supportsTrimCollation = true) for both arguments.serde_json) rejects both, so those inputs require spark.comet.expression.GetJsonObject.allowIncompatible=true and may still produce different results. Non-default Spark 4.0 string collations are not propagated (#2190).LengthOfJsonArray: UnaryExpression with ExpectsInputTypes with CodegenFallback; inputTypes = Seq(StringType) -> IntegerType. Returns NULL for NULL input, invalid JSON, or non-array JSON; otherwise the number of top-level array elements.serde_json) requires strict JSON, so single-quoted JSON, unescaped control characters, and trailing content require spark.comet.expression.LengthOfJsonArray.allowIncompatible=true and may still produce different results.escape_string returns Cow (zero-alloc borrow when nothing needs escaping) and bulk-copies unescaped byte runs instead of pushing char-by-char per value. 2x faster. Benchmark: benches/to_json.rs.