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]

Reply via email to