JingsongLi opened a new pull request, #1304: URL: https://github.com/apache/paimon-rust/pull/1304
### Purpose Closes #1303. Common aggregate spellings, JSON output expressions, custom LIKE escapes and several SQL dialect entry points currently fail during SQLContext planning or execution. This change executes those patterns through existing DataFusion/Paimon primitives while preserving NULL, ordering, name-resolution and schema-evolution contracts. ### Brief change log - Add count_if, any, any_value, first, approx_count_distinct, max_by, min_by, arg_max, collect_list and LISTAGG ordered-set compatibility. Preserve filters, output names and registered-session-function precedence, and keep original REST definitions portable. - Add typed to_json/json_object output and exact-Variant string CAST/TRY_CAST rewriting, including dictionary value NULLs, nested values, decimals and corrupted Variant handling. - Add one-character LIKE/ILIKE escapes, assert_true, 64-bit conv, date_diff overloads and explicit-zone convert_tz. - Route scalar MODIFY COLUMN through existing SchemaChange validation, protecting field IDs, unmentioned attributes and temporary-table shadowing. Add extended Paimon descriptions with native/temporary/external-object fallbacks and redacted credential-like properties. ### Tests - Added ten integration regression groups and one REST function/view unit regression. Reproduced the five main failure categories before implementation. - Cover empty/all-NULL groups, OR filters, constant sort keys, duplicates/order, window counts, local UDF overrides, persistent definition round trips, dictionary value NULLs, malformed Variant CAST/TRY_CAST, decimal/binary JSON, Unicode LIKE, numeric/timezone/DST boundaries, actual type widening and schema-update failure atomicity. - Passed final-head full validation: `TZ=UTC RUST_MIN_STACK=16777216 CARGO_BUILD_JOBS=3 cargo test --locked -p paimon-datafusion --all-targets -- --test-threads=4` with Rust 1.95.0. - Passed Rust 1.98 Clippy for the crate and all targets with `--no-deps -- -D warnings`, formatting and diff checks. - Completed three independent review rounds for SQL semantics, type/resource boundaries and DDL/test quality; fixed actionable findings and revalidated the final head. ### API and Format Adds SQL names and syntax. New bare compatibility names follow built-in precedence; explicitly registered session functions and qualified catalog calls retain their precedence. Extended Paimon DESCRIBE returns comment/metadata rows, while native and temporary objects retain their existing description behavior. No storage-format, dependency or Rust public API changes. The documented initial scope uses native fixed-precision HLL, two-argument selection aggregates and scalar MODIFY types. Unsupported precision requests, selection window/DISTINCT modifiers, LISTAGG overflow clauses and nested MODIFY targets fail explicitly. Existing nullability-change policy remains in force. ### Documentation Updated `docs/src/sql.md` with syntax, supported inputs, NULL/error behavior, timezone/encoding rules, precedence and compatibility limits. -- 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]
