From 021ad7015d2e3f7c1b5251f99117acdcb2d70a3d Mon Sep 17 00:00:00 2001 From: Shehab <11789402+shehabgamin@users.noreply.github.com> Date: Thu, 19 Dec 2024 21:40:53 -0800 Subject: [PATCH 1/9] DataFusion 44.0.0 Pre-Release Testing --- Cargo.lock | 253 +++++++++++++++++++++++------------------------------ Cargo.toml | 42 ++++----- 2 files changed, 132 insertions(+), 163 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dba3f761..9b910996 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -174,14 +174,14 @@ checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] name = "apache-avro" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceb7c683b2f8f40970b70e39ff8be514c95b96fcb9c4af87e1ed2cb2e10801a0" +checksum = "1aef82843a0ec9f8b19567445ad2421ceeb1d711514384bdd3d49fe37102ee13" dependencies = [ + "bigdecimal", "bzip2", "crc32fast", "digest", - "lazy_static", "libflate", "log", "num-bigint", @@ -189,15 +189,16 @@ dependencies = [ "rand", "regex-lite", "serde", + "serde_bytes", "serde_json", "snap", - "strum 0.25.0", - "strum_macros 0.25.3", + "strum", + "strum_macros", "thiserror 1.0.69", "typed-builder", "uuid", "xz2", - "zstd 0.12.4", + "zstd", ] [[package]] @@ -470,8 +471,8 @@ dependencies = [ "pin-project-lite", "tokio", "xz2", - "zstd 0.13.2", - "zstd-safe 7.2.1", + "zstd", + "zstd-safe", ] [[package]] @@ -938,6 +939,20 @@ dependencies = [ "vsimd", ] +[[package]] +name = "bigdecimal" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f31f3af01c5c65a07985c804d3366560e6fa7883d640a122819b14ec327482c" +dependencies = [ + "autocfg", + "libm", + "num-bigint", + "num-integer", + "num-traits", + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -1198,7 +1213,7 @@ version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.90", @@ -1223,8 +1238,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24f165e7b643266ea80cb858aed492ad9280e3e05ce24d4a99d7d7b889b6a4d9" dependencies = [ "crossterm", - "strum 0.26.3", - "strum_macros 0.26.4", + "strum", + "strum_macros", "unicode-width", ] @@ -1430,9 +1445,8 @@ dependencies = [ [[package]] name = "datafusion" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ - "ahash", "apache-avro", "arrow", "arrow-array", @@ -1452,6 +1466,7 @@ dependencies = [ "datafusion-functions", "datafusion-functions-aggregate", "datafusion-functions-nested", + "datafusion-functions-table", "datafusion-functions-window", "datafusion-optimizer", "datafusion-physical-expr", @@ -1462,19 +1477,14 @@ dependencies = [ "flate2", "futures", "glob", - "half", - "hashbrown 0.14.5", - "indexmap 2.7.0", "itertools 0.13.0", "log", "num-traits", - "num_cpus", "object_store", "parking_lot", "parquet", - "paste", - "pin-project-lite", "rand", + "regex", "sqlparser 0.52.0", "tempfile", "tokio", @@ -1482,13 +1492,13 @@ dependencies = [ "url", "uuid", "xz2", - "zstd 0.13.2", + "zstd", ] [[package]] name = "datafusion-catalog" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow-schema", "async-trait", @@ -1502,7 +1512,7 @@ dependencies = [ [[package]] name = "datafusion-common" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "ahash", "apache-avro", @@ -1510,12 +1520,10 @@ dependencies = [ "arrow-array", "arrow-buffer", "arrow-schema", - "chrono", "half", "hashbrown 0.14.5", "indexmap 2.7.0", "libc", - "num_cpus", "object_store", "parquet", "paste", @@ -1529,24 +1537,27 @@ dependencies = [ [[package]] name = "datafusion-common-runtime" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "log", "tokio", ] +[[package]] +name = "datafusion-doc" +version = "43.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" + [[package]] name = "datafusion-execution" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow", - "chrono", "dashmap", "datafusion-common", "datafusion-expr", "futures", - "hashbrown 0.14.5", "log", "object_store", "parking_lot", @@ -1558,14 +1569,12 @@ dependencies = [ [[package]] name = "datafusion-expr" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ - "ahash", "arrow", - "arrow-array", - "arrow-buffer", "chrono", "datafusion-common", + "datafusion-doc", "datafusion-expr-common", "datafusion-functions-aggregate-common", "datafusion-functions-window-common", @@ -1575,25 +1584,22 @@ dependencies = [ "recursive", "serde_json", "sqlparser 0.52.0", - "strum 0.26.3", - "strum_macros 0.26.4", ] [[package]] name = "datafusion-expr-common" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow", "datafusion-common", "itertools 0.13.0", - "paste", ] [[package]] name = "datafusion-functions" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow", "arrow-buffer", @@ -1602,8 +1608,11 @@ dependencies = [ "blake3", "chrono", "datafusion-common", + "datafusion-doc", "datafusion-execution", "datafusion-expr", + "datafusion-expr-common", + "datafusion-macros", "hashbrown 0.14.5", "hex", "itertools 0.13.0", @@ -1619,19 +1628,20 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "ahash", "arrow", "arrow-schema", "datafusion-common", + "datafusion-doc", "datafusion-execution", "datafusion-expr", "datafusion-functions-aggregate-common", + "datafusion-macros", "datafusion-physical-expr", "datafusion-physical-expr-common", "half", - "indexmap 2.7.0", "log", "paste", ] @@ -1639,14 +1649,13 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate-common" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "ahash", "arrow", "datafusion-common", "datafusion-expr-common", "datafusion-physical-expr-common", - "rand", ] [[package]] @@ -1664,7 +1673,7 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow", "arrow-array", @@ -1680,17 +1689,33 @@ dependencies = [ "itertools 0.13.0", "log", "paste", - "rand", +] + +[[package]] +name = "datafusion-functions-table" +version = "43.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +dependencies = [ + "arrow", + "async-trait", + "datafusion-catalog", + "datafusion-common", + "datafusion-expr", + "datafusion-physical-plan", + "parking_lot", + "paste", ] [[package]] name = "datafusion-functions-window" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "datafusion-common", + "datafusion-doc", "datafusion-expr", "datafusion-functions-window-common", + "datafusion-macros", "datafusion-physical-expr", "datafusion-physical-expr-common", "log", @@ -1700,28 +1725,34 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", ] +[[package]] +name = "datafusion-macros" +version = "43.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +dependencies = [ + "quote", + "syn 2.0.90", +] + [[package]] name = "datafusion-optimizer" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow", - "async-trait", "chrono", "datafusion-common", "datafusion-expr", "datafusion-physical-expr", - "hashbrown 0.14.5", "indexmap 2.7.0", "itertools 0.13.0", "log", - "paste", "recursive", "regex", "regex-syntax", @@ -1730,16 +1761,13 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "ahash", "arrow", "arrow-array", "arrow-buffer", - "arrow-ord", "arrow-schema", - "arrow-string", - "chrono", "datafusion-common", "datafusion-expr", "datafusion-expr-common", @@ -1757,7 +1785,7 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "ahash", "arrow", @@ -1765,29 +1793,28 @@ dependencies = [ "datafusion-expr-common", "hashbrown 0.14.5", "itertools 0.13.0", - "rand", ] [[package]] name = "datafusion-physical-optimizer" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow", - "arrow-schema", "datafusion-common", "datafusion-execution", "datafusion-expr-common", "datafusion-physical-expr", "datafusion-physical-plan", "itertools 0.13.0", + "log", "recursive", ] [[package]] name = "datafusion-physical-plan" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "ahash", "arrow", @@ -1801,7 +1828,6 @@ dependencies = [ "datafusion-common-runtime", "datafusion-execution", "datafusion-expr", - "datafusion-functions-aggregate-common", "datafusion-functions-window-common", "datafusion-physical-expr", "datafusion-physical-expr-common", @@ -1811,17 +1837,15 @@ dependencies = [ "indexmap 2.7.0", "itertools 0.13.0", "log", - "once_cell", "parking_lot", "pin-project-lite", - "rand", "tokio", ] [[package]] name = "datafusion-proto" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow", "chrono", @@ -1836,23 +1860,22 @@ dependencies = [ [[package]] name = "datafusion-proto-common" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow", - "chrono", "datafusion-common", - "object_store", "prost 0.13.4", ] [[package]] name = "datafusion-sql" version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=6d8313e#6d8313ebc865f9bff007bfc04652f58b016cbc1b" +source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" dependencies = [ "arrow", "arrow-array", "arrow-schema", + "bigdecimal", "datafusion-common", "datafusion-expr", "indexmap 2.7.0", @@ -1860,7 +1883,6 @@ dependencies = [ "recursive", "regex", "sqlparser 0.52.0", - "strum 0.26.3", ] [[package]] @@ -2391,24 +2413,12 @@ dependencies = [ "http 1.2.0", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex" version = "0.4.3" @@ -3375,6 +3385,7 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", + "serde", ] [[package]] @@ -3433,16 +3444,6 @@ dependencies = [ "libm", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "num_enum" version = "0.7.3" @@ -3655,7 +3656,7 @@ dependencies = [ "thrift", "tokio", "twox-hash 1.6.3", - "zstd 0.13.2", + "zstd", "zstd-sys", ] @@ -3690,7 +3691,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6eea3058763d6e656105d1403cb04e0a41b7bbac6362d413e7c33be0c32279c9" dependencies = [ - "heck 0.5.0", + "heck", "itertools 0.13.0", "prost 0.13.4", "prost-types 0.13.4", @@ -4017,7 +4018,7 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" dependencies = [ - "heck 0.5.0", + "heck", "itertools 0.13.0", "log", "multimap", @@ -4141,7 +4142,7 @@ version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36c011a03ba1e50152b4b394b479826cad97e7a21eb52df179cd91ac411cbfbe" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "pyo3-build-config", "quote", @@ -4938,6 +4939,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.216" @@ -5068,7 +5078,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.90", @@ -5168,33 +5178,11 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "strum" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" - [[package]] name = "strum" version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] - -[[package]] -name = "strum_macros" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.90", -] [[package]] name = "strum_macros" @@ -5202,7 +5190,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "rustversion", @@ -5536,7 +5524,7 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "zstd 0.13.2", + "zstd", ] [[package]] @@ -5732,18 +5720,18 @@ dependencies = [ [[package]] name = "typed-builder" -version = "0.16.2" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34085c17941e36627a879208083e25d357243812c30e7d7387c3b954f30ade16" +checksum = "a06fbd5b8de54c5f7c91f6fe4cebb949be2125d7758e630bb58b1d831dbce600" dependencies = [ "typed-builder-macro", ] [[package]] name = "typed-builder-macro" -version = "0.16.2" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e" +checksum = "f9534daa9fd3ed0bd911d462a37f172228077e7abf18c18a5f67199d959205f8" dependencies = [ "proc-macro2", "quote", @@ -6391,32 +6379,13 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "zstd" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" -dependencies = [ - "zstd-safe 6.0.6", -] - [[package]] name = "zstd" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" dependencies = [ - "zstd-safe 7.2.1", -] - -[[package]] -name = "zstd-safe" -version = "6.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" -dependencies = [ - "libc", - "zstd-sys", + "zstd-safe", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 0ca9cf8f..ddef0092 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -104,27 +104,27 @@ sqlparser = { git = "https://github.com/lakehq/sqlparser-rs.git", rev = "69514bb [patch.crates-io] # Override dependencies to use our forked versions. # You can use `path = "..."` to temporarily point to your local copy of the crates to speed up local development. -datafusion = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-catalog = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-common-runtime = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-execution = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-functions = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-functions-aggregate = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-functions-aggregate-common = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-functions-window = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-functions-window-common = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-optimizer = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-physical-expr = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-physical-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-physical-optimizer = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-physical-plan = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-proto = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-proto-common = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } -datafusion-sql = { git = "https://github.com/apache/datafusion.git", rev = "6d8313e" } +datafusion = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-catalog = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-common-runtime = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-execution = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-functions = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-functions-aggregate = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-functions-aggregate-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-functions-window = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-functions-window-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-optimizer = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-physical-expr = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-physical-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-physical-optimizer = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-physical-plan = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-proto = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-proto-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-sql = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } [profile.release] # https://doc.rust-lang.org/cargo/reference/profiles.html#release From dabd30e5e4df4bafb07ccc55ad2af7a68e14d0d2 Mon Sep 17 00:00:00 2001 From: Shehab <11789402+shehabgamin@users.noreply.github.com> Date: Thu, 19 Dec 2024 22:07:00 -0800 Subject: [PATCH 2/9] [spark tests] --- Cargo.lock | 104 +- Cargo.toml | 17 +- crates/sail-plan/Cargo.toml | 1 + crates/sail-plan/src/catalog/function.rs | 2 +- .../src/extension/function/kurtosis.rs | 6 +- .../src/extension/function/skewness.rs | 6 +- .../src/extension/function/spark_array.rs | 8 +- crates/sail-plan/src/function/mod.rs | 2 +- crates/sail-plan/src/function/table/mod.rs | 2 +- crates/sail-plan/src/function/table/range.rs | 3 +- crates/sail-plan/src/resolver/plan.rs | 2 +- .../sail-python-udf/src/udf/pyspark_udtf.rs | 3 +- .../sail-spark-connect/src/session_manager.rs | 8 +- .../tests/gold_data/plan/plan_hint.json | 1170 ----------------- 14 files changed, 87 insertions(+), 1247 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9b910996..c143aeb4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -551,9 +551,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-config" -version = "1.5.10" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b49afaa341e8dd8577e1a2200468f98956d6eda50bcf4a53246cc00174ba924" +checksum = "a5d1c2c88936a73c699225d0bc00684a534166b0cebc2659c3cdf08de8edc64c" dependencies = [ "aws-credential-types", "aws-runtime", @@ -562,7 +562,7 @@ dependencies = [ "aws-sdk-sts", "aws-smithy-async", "aws-smithy-http", - "aws-smithy-json 0.60.7", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -593,9 +593,9 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.4.4" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5ac934720fbb46206292d2c75b57e67acfc56fe7dfd34fb9a02334af08409ea" +checksum = "300a12520b4e6d08b73f77680f12c16e8ae43250d55100e0b2be46d78da16a48" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -618,15 +618,15 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.50.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ca43a4ef210894f93096039ef1d6fa4ad3edfabb3be92b80908b9f2e4b4eab" +checksum = "74995133da38f109a0eb8e8c886f9e80c713b6e9f2e6e5a6a1ba4450ce2ffc46" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", - "aws-smithy-json 0.61.1", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -640,15 +640,15 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.51.0" +version = "1.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abaf490c2e48eed0bb8e2da2fb08405647bd7f253996e0f93b981958ea0f73b0" +checksum = "e7062a779685cbf3b2401eb36151e2c6589fd5f3569b8a6bc2d199e5aaa1d059" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", - "aws-smithy-json 0.61.1", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", "aws-smithy-types", @@ -662,15 +662,15 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.51.0" +version = "1.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68fde0d69c8bfdc1060ea7da21df3e39f6014da316783336deff0a9ec28f4bf" +checksum = "299dae7b1dc0ee50434453fa5a229dc4b22bd3ee50409ff16becf1f7346e0193" dependencies = [ "aws-credential-types", "aws-runtime", "aws-smithy-async", "aws-smithy-http", - "aws-smithy-json 0.61.1", + "aws-smithy-json", "aws-smithy-query", "aws-smithy-runtime", "aws-smithy-runtime-api", @@ -737,15 +737,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "aws-smithy-json" -version = "0.60.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4683df9469ef09468dad3473d129960119a0d3593617542b7d52086c8486f2d6" -dependencies = [ - "aws-smithy-types", -] - [[package]] name = "aws-smithy-json" version = "0.61.1" @@ -1118,9 +1109,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.4" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157bbaa6b165880c27a4293a474c91cdcf265cc68cc829bf10be0964a391caf" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ "jobserver", "libc", @@ -2588,7 +2579,7 @@ dependencies = [ "headers", "http 1.2.0", "hyper 1.5.2", - "hyper-rustls 0.27.3", + "hyper-rustls 0.27.4", "hyper-util", "pin-project-lite", "rustls-native-certs 0.7.3", @@ -2615,9 +2606,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "f6884a48c6826ec44f524c7456b163cebe9e55a18d7b5e307cb4f100371cc767" dependencies = [ "futures-util", "http 1.2.0", @@ -3009,7 +3000,7 @@ dependencies = [ "http-body-util", "hyper 1.5.2", "hyper-http-proxy", - "hyper-rustls 0.27.3", + "hyper-rustls 0.27.4", "hyper-timeout", "hyper-util", "jsonpath-rust", @@ -3148,9 +3139,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.168" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libflate" @@ -3308,9 +3299,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" dependencies = [ "adler2", ] @@ -3758,7 +3749,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.7", + "thiserror 2.0.8", "ucd-trie", ] @@ -4178,7 +4169,7 @@ dependencies = [ "rustc-hash", "rustls 0.23.20", "socket2", - "thiserror 2.0.7", + "thiserror 2.0.8", "tokio", "tracing", ] @@ -4197,7 +4188,7 @@ dependencies = [ "rustls 0.23.20", "rustls-pki-types", "slab", - "thiserror 2.0.7", + "thiserror 2.0.8", "tinyvec", "tracing", "web-time", @@ -4205,9 +4196,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52cd4b1eff68bf27940dd39811292c49e007f4d0b4c357358dc9b0197be6b527" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" dependencies = [ "cfg_aliases", "libc", @@ -4351,7 +4342,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.5.2", - "hyper-rustls 0.27.3", + "hyper-rustls 0.27.4", "hyper-util", "ipnet", "js-sys", @@ -4512,7 +4503,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.0.1", + "security-framework 3.1.0", ] [[package]] @@ -4608,7 +4599,7 @@ dependencies = [ "serde", "serde_json", "sqlparser 0.53.0", - "thiserror 2.0.7", + "thiserror 2.0.8", ] [[package]] @@ -4631,7 +4622,7 @@ dependencies = [ "sail-plan", "sail-python-udf", "sail-server", - "thiserror 2.0.7", + "thiserror 2.0.8", "tokio", "tonic", "tonic-build", @@ -4655,6 +4646,7 @@ dependencies = [ "datafusion", "datafusion-common", "datafusion-expr", + "datafusion-expr-common", "datafusion-functions-json", "datafusion-functions-nested", "either", @@ -4676,7 +4668,7 @@ dependencies = [ "serde", "serde_arrow", "serde_json", - "thiserror 2.0.7", + "thiserror 2.0.8", "tokio", "tokio-stream", "tonic", @@ -4712,7 +4704,7 @@ dependencies = [ "num-bigint", "pyo3", "sail-common", - "thiserror 2.0.7", + "thiserror 2.0.8", "tokio", "tokio-stream", ] @@ -4772,7 +4764,7 @@ dependencies = [ "serde_json", "sqlparser 0.53.0", "syn 2.0.90", - "thiserror 2.0.7", + "thiserror 2.0.8", "tokio", "tonic", "tonic-build", @@ -4793,7 +4785,7 @@ dependencies = [ "serde", "serde_json", "sqlparser 0.53.0", - "thiserror 2.0.7", + "thiserror 2.0.8", ] [[package]] @@ -4808,7 +4800,7 @@ dependencies = [ "opentelemetry-otlp", "opentelemetry_sdk", "sail-common", - "thiserror 2.0.7", + "thiserror 2.0.8", "tonic", "tower 0.5.2", ] @@ -4871,9 +4863,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.0.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +checksum = "81d3f8c9bfcc3cbb6b0179eb57042d75b1582bdc65c3cb95f3fa999509c03cbc" dependencies = [ "bitflags 2.6.0", "core-foundation 0.10.0", @@ -4884,9 +4876,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" dependencies = [ "core-foundation-sys", "libc", @@ -5281,11 +5273,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93605438cbd668185516ab499d589afb7ee1859ea3d5fc8f6b0755e1c7443767" +checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" dependencies = [ - "thiserror-impl 2.0.7", + "thiserror-impl 2.0.8", ] [[package]] @@ -5301,9 +5293,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d8749b4531af2117677a5fcd12b1348a3fe2b81e36e61ffeac5c4aa3273e36" +checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index ddef0092..183fb846 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -82,15 +82,16 @@ md-5 = "0.10.6" # The versions of the following dependencies are managed manually. ###### -datafusion = { version = "43.0.0", features = ["serde", "pyarrow", "avro"] } -datafusion-common = { version = "43.0.0", features = ["object_store", "pyarrow", "avro"] } -datafusion-expr = "43.0.0" -datafusion-proto = "43.0.0" -datafusion-functions-nested = "43.0.0" +datafusion = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9", features = ["serde", "pyarrow", "avro"] } +datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9", features = ["object_store", "pyarrow", "avro"] } +datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-proto = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-functions-json = "0.43.0" # auto-initialize: Changes [`Python::with_gil`] to automatically initialize the Python interpreter if needed. pyo3 = { version = "0.22.0", features = ["auto-initialize", "serde"] } -arrow-flight = { version = "53.1.0" } +arrow-flight = { version = "53.3.0" } # The `object_store` version must match the one used in DataFusion. object_store = { version = "0.11.0", features = ["aws", "gcp", "azure", "http"] } # We use a patched latest version of sqlparser. The version may be different from the one used in DataFusion. @@ -108,15 +109,19 @@ datafusion = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" datafusion-catalog = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-common-runtime = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-doc = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-execution = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +# datafusion-ffi = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } # Not used in the crate graph datafusion-functions = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-functions-aggregate = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-functions-aggregate-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-functions-table = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-functions-window = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-functions-window-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion-macros = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-optimizer = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-physical-expr = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } datafusion-physical-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } diff --git a/crates/sail-plan/Cargo.toml b/crates/sail-plan/Cargo.toml index b32da89c..04fdbc2d 100644 --- a/crates/sail-plan/Cargo.toml +++ b/crates/sail-plan/Cargo.toml @@ -10,6 +10,7 @@ sail-python-udf = { path = "../sail-python-udf" } datafusion = { workspace = true } datafusion-common = { workspace = true } datafusion-expr = { workspace = true } +datafusion-expr-common = { workspace = true } datafusion-functions-nested = { workspace = true } datafusion-functions-json = { workspace = true } thiserror = { workspace = true } diff --git a/crates/sail-plan/src/catalog/function.rs b/crates/sail-plan/src/catalog/function.rs index c691c878..596fbef5 100644 --- a/crates/sail-plan/src/catalog/function.rs +++ b/crates/sail-plan/src/catalog/function.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use datafusion::datasource::function::TableFunctionImpl; +use datafusion::catalog::TableFunctionImpl; use datafusion_common::{DFSchema, DFSchemaRef, Result, TableReference}; use datafusion_expr::{DdlStatement, DropFunction, LogicalPlan, ScalarUDF}; use serde::{Deserialize, Serialize}; diff --git a/crates/sail-plan/src/extension/function/kurtosis.rs b/crates/sail-plan/src/extension/function/kurtosis.rs index d1b517d4..ea67b573 100644 --- a/crates/sail-plan/src/extension/function/kurtosis.rs +++ b/crates/sail-plan/src/extension/function/kurtosis.rs @@ -12,6 +12,7 @@ use datafusion::logical_expr::function::{AccumulatorArgs, StateFieldsArgs}; use datafusion::logical_expr::{Accumulator, AggregateUDFImpl, Signature, Volatility}; use datafusion::scalar::ScalarValue; use datafusion_common::types::logical_float64; +use datafusion_expr_common::signature::TypeSignatureClass; pub struct KurtosisFunction { signature: Signature, @@ -34,7 +35,10 @@ impl Default for KurtosisFunction { impl KurtosisFunction { pub fn new() -> Self { Self { - signature: Signature::coercible(vec![logical_float64()], Volatility::Immutable), + signature: Signature::coercible( + vec![TypeSignatureClass::Native(logical_float64())], + Volatility::Immutable, + ), } } } diff --git a/crates/sail-plan/src/extension/function/skewness.rs b/crates/sail-plan/src/extension/function/skewness.rs index d74a36d2..b40bc233 100644 --- a/crates/sail-plan/src/extension/function/skewness.rs +++ b/crates/sail-plan/src/extension/function/skewness.rs @@ -10,6 +10,7 @@ use datafusion::common::ScalarValue; use datafusion::logical_expr::function::{AccumulatorArgs, StateFieldsArgs}; use datafusion::logical_expr::{Accumulator, AggregateUDFImpl, Signature, Volatility}; use datafusion_common::types::logical_float64; +use datafusion_expr_common::signature::TypeSignatureClass; pub struct SkewnessFunc { name: String, @@ -34,7 +35,10 @@ impl SkewnessFunc { pub fn new() -> Self { Self { name: "skewness".to_string(), - signature: Signature::coercible(vec![logical_float64()], Volatility::Immutable), + signature: Signature::coercible( + vec![TypeSignatureClass::Native(logical_float64())], + Volatility::Immutable, + ), } } } diff --git a/crates/sail-plan/src/extension/function/spark_array.rs b/crates/sail-plan/src/extension/function/spark_array.rs index 089e0133..f6043b3a 100644 --- a/crates/sail-plan/src/extension/function/spark_array.rs +++ b/crates/sail-plan/src/extension/function/spark_array.rs @@ -8,7 +8,7 @@ use datafusion::arrow::array::{ }; use datafusion::arrow::buffer::OffsetBuffer; use datafusion::arrow::datatypes::{DataType, Field}; -use datafusion_common::utils::array_into_list_array_nullable; +use datafusion_common::utils::SingleRowListArrayBuilder; use datafusion_common::{internal_err, plan_err, ExprSchema, Result}; use datafusion_expr::type_coercion::binary::comparison_coercion; use datafusion_expr::{ColumnarValue, Expr, ScalarUDFImpl, Signature, TypeSignature, Volatility}; @@ -136,7 +136,11 @@ pub fn make_array_inner(arrays: &[ArrayRef]) -> Result { let length = arrays.iter().map(|a| a.len()).sum(); // By default Int32 let array = new_null_array(&DataType::Int32, length); - Ok(Arc::new(array_into_list_array_nullable(array))) + Ok(Arc::new( + SingleRowListArrayBuilder::new(array) + .with_nullable(true) + .build_list_array(), + )) } DataType::LargeList(..) => array_array::(arrays, data_type), _ => array_array::(arrays, data_type), diff --git a/crates/sail-plan/src/function/mod.rs b/crates/sail-plan/src/function/mod.rs index 87466711..a1161948 100644 --- a/crates/sail-plan/src/function/mod.rs +++ b/crates/sail-plan/src/function/mod.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use std::sync::Arc; -use datafusion::datasource::function::TableFunction; +use datafusion::catalog::TableFunction; use lazy_static::lazy_static; use crate::error::{PlanError, PlanResult}; diff --git a/crates/sail-plan/src/function/table/mod.rs b/crates/sail-plan/src/function/table/mod.rs index a12b845e..29882c9b 100644 --- a/crates/sail-plan/src/function/table/mod.rs +++ b/crates/sail-plan/src/function/table/mod.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use datafusion::datasource::function::TableFunction; +use datafusion::catalog::TableFunction; use crate::function::table::range::RangeTableFunction; diff --git a/crates/sail-plan/src/function/table/range.rs b/crates/sail-plan/src/function/table/range.rs index dc602622..7c2ecfa4 100644 --- a/crates/sail-plan/src/function/table/range.rs +++ b/crates/sail-plan/src/function/table/range.rs @@ -4,8 +4,7 @@ use std::fmt::Debug; use std::sync::Arc; use datafusion::arrow::datatypes::SchemaRef; -use datafusion::catalog::{Session, TableProvider}; -use datafusion::datasource::function::TableFunctionImpl; +use datafusion::catalog::{Session, TableFunctionImpl, TableProvider}; use datafusion::physical_plan::ExecutionPlan; use datafusion_common::{exec_err, Result}; use datafusion_expr::{logical_plan, Expr, LogicalPlan, TableType, UserDefinedLogicalNodeCore}; diff --git a/crates/sail-plan/src/resolver/plan.rs b/crates/sail-plan/src/resolver/plan.rs index cf41bc6f..8287a128 100644 --- a/crates/sail-plan/src/resolver/plan.rs +++ b/crates/sail-plan/src/resolver/plan.rs @@ -3,6 +3,7 @@ use std::sync::Arc; use async_recursion::async_recursion; use datafusion::arrow::datatypes as adt; +use datafusion::catalog::TableFunction; use datafusion::dataframe::DataFrame; use datafusion::datasource::file_format::arrow::{ArrowFormat, ArrowFormatFactory}; use datafusion::datasource::file_format::avro::{AvroFormat, AvroFormatFactory}; @@ -10,7 +11,6 @@ use datafusion::datasource::file_format::csv::{CsvFormat, CsvFormatFactory}; use datafusion::datasource::file_format::json::{JsonFormat, JsonFormatFactory}; use datafusion::datasource::file_format::parquet::{ParquetFormat, ParquetFormatFactory}; use datafusion::datasource::file_format::{format_as_file_type, FileFormat, FileFormatFactory}; -use datafusion::datasource::function::TableFunction; use datafusion::datasource::listing::{ListingOptions, ListingTable, ListingTableConfig}; use datafusion::datasource::{provider_as_source, MemTable, TableProvider}; use datafusion::functions::core::expr_ext::FieldAccessor; diff --git a/crates/sail-python-udf/src/udf/pyspark_udtf.rs b/crates/sail-python-udf/src/udf/pyspark_udtf.rs index 2942367d..1d2bd7aa 100644 --- a/crates/sail-python-udf/src/udf/pyspark_udtf.rs +++ b/crates/sail-python-udf/src/udf/pyspark_udtf.rs @@ -7,8 +7,7 @@ use datafusion::arrow::datatypes as adt; use datafusion::arrow::datatypes::{DataType, SchemaRef}; use datafusion::arrow::pyarrow::*; use datafusion::arrow::record_batch::RecordBatch; -use datafusion::catalog::Session; -use datafusion::datasource::function::TableFunctionImpl; +use datafusion::catalog::{Session, TableFunctionImpl}; use datafusion::datasource::TableProvider; use datafusion::error::Result; use datafusion::physical_plan::memory::MemoryExec; diff --git a/crates/sail-spark-connect/src/session_manager.rs b/crates/sail-spark-connect/src/session_manager.rs index 1bca5bce..531568fd 100644 --- a/crates/sail-spark-connect/src/session_manager.rs +++ b/crates/sail-spark-connect/src/session_manager.rs @@ -5,7 +5,7 @@ use std::ops::DerefMut; use std::sync::{Arc, Mutex}; use std::time::Duration; -use datafusion::execution::runtime_env::{RuntimeConfig, RuntimeEnv}; +use datafusion::execution::runtime_env::RuntimeEnvBuilder; use datafusion::execution::SessionStateBuilder; use datafusion::prelude::{SessionConfig, SessionContext}; use log::info; @@ -116,8 +116,10 @@ impl SessionManager { .set_bool("datafusion.catalog.has_header", false); let runtime = { let registry = DynamicObjectStoreRegistry::new(); - let config = RuntimeConfig::default().with_object_store_registry(Arc::new(registry)); - Arc::new(RuntimeEnv::try_new(config)?) + let config = RuntimeEnvBuilder::default() + .with_object_store_registry(Arc::new(registry)) + .build()?; + Arc::new(config) }; let state = SessionStateBuilder::new() .with_config(session_config) diff --git a/crates/sail-spark-connect/tests/gold_data/plan/plan_hint.json b/crates/sail-spark-connect/tests/gold_data/plan/plan_hint.json index 3ca3fb55..e69de29b 100644 --- a/crates/sail-spark-connect/tests/gold_data/plan/plan_hint.json +++ b/crates/sail-spark-connect/tests/gold_data/plan/plan_hint.json @@ -1,1170 +0,0 @@ -{ - "tests": [ - { - "input": "\nSELECT\n/*+ REPARTITION(100, c), BROADCASTJOIN(u), COALESCE(50), REPARTITION(300, c) */\n* FROM t\n ", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ BROADCAST(tab) */ * FROM testcat.db.tab", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "testcat", - "db", - "tab" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ BROADCASTJOIN(u) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ BROADCASTJOIN(u), REPARTITION(100) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ COALESCE(10) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ COALESCE(30 + 50) */ * FROM t", - "exception": "\n[PARSE_SYNTAX_ERROR] Syntax error at or near '+'.(line 1, pos 23)\n\n== SQL ==\nSELECT /*+ COALESCE(30 + 50) */ * FROM t\n-----------------------^^^\n", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ HINT */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ HINT() */ * FROM t", - "exception": "\n[PARSE_SYNTAX_ERROR] Syntax error at or near ')'.(line 1, pos 16)\n\n== SQL ==\nSELECT /*+ HINT() */ * FROM t\n----------------^^^\n", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ HINT1('a', (b, c), (1, 2)) */ * from t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ HINT1(a, 1) */ /*+ hint2(b, 2) */ * from t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ HINT1(a, 1) hint2(b, 2) */ * from t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ HINT1(a, 1), hint2(b, 2) */ /*+ hint3(c, 3) */ * from t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ HINT1(a, 1),hint2(b, 2) */ * from t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ HINT1(a, 5, 'a', b) */ * from t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ HINT1(a, array(1, 2, 3)) */ * from t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ INDEX(a b c) */ * from default.t", - "exception": "\n[PARSE_SYNTAX_ERROR] Syntax error at or near 'b'.(line 1, pos 19)\n\n== SQL ==\nSELECT /*+ INDEX(a b c) */ * from default.t\n-------------------^^^\n", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "default", - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ INDEX(t, emp_job_ix) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ MAPJOIN(`default.t`) */ * from `default.t`", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "default.t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ MAPJOIN(t) */ a from t where true group by a order by a", - "output": { - "success": { - "query": { - "sort": { - "input": { - "aggregate": { - "input": { - "filter": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "condition": { - "literal": { - "boolean": true - } - } - }, - "planId": null, - "sourceInfo": null - }, - "grouping": [ - { - "unresolvedAttribute": { - "name": [ - "a" - ], - "planId": null - } - } - ], - "aggregate": [ - { - "unresolvedAttribute": { - "name": [ - "a" - ], - "planId": null - } - } - ], - "having": null, - "withGroupingExpressions": false - }, - "planId": null, - "sourceInfo": null - }, - "order": [ - { - "child": { - "unresolvedAttribute": { - "name": [ - "a" - ], - "planId": null - } - }, - "direction": "unspecified", - "nullOrdering": "unspecified" - } - ], - "isGlobal": true - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ MAPJOIN(u) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ REPARTITION(100) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ REPARTITION(100, c) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ REPARTITION(100, c), BROADCASTJOIN(u), COALESCE(50) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ REPARTITION(100, c), COALESCE(50) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ REPARTITION(c) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ REPARTITION_BY_RANGE(100, c) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ REPARTITION_BY_RANGE(c) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - }, - { - "input": "SELECT /*+ STREAMTABLE(a,b,c) */ * FROM t", - "output": { - "success": { - "query": { - "project": { - "input": { - "read": { - "namedTable": { - "name": [ - "t" - ], - "options": [] - }, - "isStreaming": false - }, - "planId": null, - "sourceInfo": null - }, - "expressions": [ - { - "unresolvedStar": { - "target": null, - "wildcardOptions": { - "ilikePattern": null, - "excludeColumns": null, - "exceptColumns": null, - "replaceColumns": null, - "renameColumns": null - } - } - } - ] - }, - "planId": null, - "sourceInfo": null - } - } - } - } - ] -} From 1603dd218d568e8fd11606a46f0992391cbe32e5 Mon Sep 17 00:00:00 2001 From: Shehab <11789402+shehabgamin@users.noreply.github.com> Date: Thu, 19 Dec 2024 22:31:11 -0800 Subject: [PATCH 3/9] add back --- .../tests/gold_data/plan/plan_hint.json | 1170 +++++++++++++++++ 1 file changed, 1170 insertions(+) diff --git a/crates/sail-spark-connect/tests/gold_data/plan/plan_hint.json b/crates/sail-spark-connect/tests/gold_data/plan/plan_hint.json index e69de29b..3ca3fb55 100644 --- a/crates/sail-spark-connect/tests/gold_data/plan/plan_hint.json +++ b/crates/sail-spark-connect/tests/gold_data/plan/plan_hint.json @@ -0,0 +1,1170 @@ +{ + "tests": [ + { + "input": "\nSELECT\n/*+ REPARTITION(100, c), BROADCASTJOIN(u), COALESCE(50), REPARTITION(300, c) */\n* FROM t\n ", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ BROADCAST(tab) */ * FROM testcat.db.tab", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "testcat", + "db", + "tab" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ BROADCASTJOIN(u) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ BROADCASTJOIN(u), REPARTITION(100) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ COALESCE(10) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ COALESCE(30 + 50) */ * FROM t", + "exception": "\n[PARSE_SYNTAX_ERROR] Syntax error at or near '+'.(line 1, pos 23)\n\n== SQL ==\nSELECT /*+ COALESCE(30 + 50) */ * FROM t\n-----------------------^^^\n", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ HINT */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ HINT() */ * FROM t", + "exception": "\n[PARSE_SYNTAX_ERROR] Syntax error at or near ')'.(line 1, pos 16)\n\n== SQL ==\nSELECT /*+ HINT() */ * FROM t\n----------------^^^\n", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ HINT1('a', (b, c), (1, 2)) */ * from t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ HINT1(a, 1) */ /*+ hint2(b, 2) */ * from t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ HINT1(a, 1) hint2(b, 2) */ * from t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ HINT1(a, 1), hint2(b, 2) */ /*+ hint3(c, 3) */ * from t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ HINT1(a, 1),hint2(b, 2) */ * from t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ HINT1(a, 5, 'a', b) */ * from t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ HINT1(a, array(1, 2, 3)) */ * from t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ INDEX(a b c) */ * from default.t", + "exception": "\n[PARSE_SYNTAX_ERROR] Syntax error at or near 'b'.(line 1, pos 19)\n\n== SQL ==\nSELECT /*+ INDEX(a b c) */ * from default.t\n-------------------^^^\n", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "default", + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ INDEX(t, emp_job_ix) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ MAPJOIN(`default.t`) */ * from `default.t`", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "default.t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ MAPJOIN(t) */ a from t where true group by a order by a", + "output": { + "success": { + "query": { + "sort": { + "input": { + "aggregate": { + "input": { + "filter": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "condition": { + "literal": { + "boolean": true + } + } + }, + "planId": null, + "sourceInfo": null + }, + "grouping": [ + { + "unresolvedAttribute": { + "name": [ + "a" + ], + "planId": null + } + } + ], + "aggregate": [ + { + "unresolvedAttribute": { + "name": [ + "a" + ], + "planId": null + } + } + ], + "having": null, + "withGroupingExpressions": false + }, + "planId": null, + "sourceInfo": null + }, + "order": [ + { + "child": { + "unresolvedAttribute": { + "name": [ + "a" + ], + "planId": null + } + }, + "direction": "unspecified", + "nullOrdering": "unspecified" + } + ], + "isGlobal": true + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ MAPJOIN(u) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ REPARTITION(100) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ REPARTITION(100, c) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ REPARTITION(100, c), BROADCASTJOIN(u), COALESCE(50) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ REPARTITION(100, c), COALESCE(50) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ REPARTITION(c) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ REPARTITION_BY_RANGE(100, c) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ REPARTITION_BY_RANGE(c) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + }, + { + "input": "SELECT /*+ STREAMTABLE(a,b,c) */ * FROM t", + "output": { + "success": { + "query": { + "project": { + "input": { + "read": { + "namedTable": { + "name": [ + "t" + ], + "options": [] + }, + "isStreaming": false + }, + "planId": null, + "sourceInfo": null + }, + "expressions": [ + { + "unresolvedStar": { + "target": null, + "wildcardOptions": { + "ilikePattern": null, + "excludeColumns": null, + "exceptColumns": null, + "replaceColumns": null, + "renameColumns": null + } + } + } + ] + }, + "planId": null, + "sourceInfo": null + } + } + } + } + ] +} From d1ec4e23eae41f22b1300a74f817e43cfbc64e1f Mon Sep 17 00:00:00 2001 From: Shehab <11789402+shehabgamin@users.noreply.github.com> Date: Thu, 19 Dec 2024 22:37:06 -0800 Subject: [PATCH 4/9] [spark tests] --- crates/sail-spark-connect/src/proto/expression.rs | 2 +- .../tests/gold_data/function/agg.json | 12 ++++++------ .../tests/gold_data/function/collection.json | 6 +++--- .../tests/gold_data/function/datetime.json | 4 ++-- .../tests/gold_data/function/math.json | 4 ++-- .../tests/gold_data/function/string.json | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/crates/sail-spark-connect/src/proto/expression.rs b/crates/sail-spark-connect/src/proto/expression.rs index adf72086..49d583fa 100644 --- a/crates/sail-spark-connect/src/proto/expression.rs +++ b/crates/sail-spark-connect/src/proto/expression.rs @@ -448,7 +448,7 @@ mod tests { fn test_sql_to_expression() -> Result<(), Box> { // Run the test in a separate thread with a large stack size // so that it can handle deeply nested expressions. - let builder = thread::Builder::new().stack_size(128 * 1024 * 1024); + let builder = thread::Builder::new().stack_size(160 * 1024 * 1024); let handle = builder.spawn(|| { test_gold_set( "tests/gold_data/expression/*.json", diff --git a/crates/sail-spark-connect/tests/gold_data/function/agg.json b/crates/sail-spark-connect/tests/gold_data/function/agg.json index 0545e1be..4bf8ce58 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/agg.json +++ b/crates/sail-spark-connect/tests/gold_data/function/agg.json @@ -195,7 +195,7 @@ } }, "output": { - "failure": "error in DataFusion: Error during planning: Error during planning: Coercion from [Interval(YearMonth), Decimal128(1, 1), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Interval(YearMonth), Decimal128(1, 1), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" + "failure": "error in DataFusion: Error during planning: Error during planning: Failed to coerce arguments to satisfy a call to approx_percentile_cont function: coercion from [Interval(YearMonth), Decimal128(1, 1), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Interval(YearMonth), Decimal128(1, 1), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" } }, { @@ -221,7 +221,7 @@ } }, "output": { - "failure": "error in DataFusion: Error during planning: Error during planning: Coercion from [Int32, List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Int32, List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" + "failure": "error in DataFusion: Error during planning: Error during planning: Failed to coerce arguments to satisfy a call to approx_percentile_cont function: coercion from [Int32, List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Int32, List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" } }, { @@ -247,7 +247,7 @@ } }, "output": { - "failure": "error in DataFusion: Error during planning: Error during planning: Coercion from [Interval(DayTime), List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Interval(DayTime), List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" + "failure": "error in DataFusion: Error during planning: Error during planning: Failed to coerce arguments to satisfy a call to approx_percentile_cont function: coercion from [Interval(DayTime), List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Interval(DayTime), List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" } }, { @@ -1689,7 +1689,7 @@ } }, "output": { - "failure": "error in DataFusion: Error during planning: Error during planning: Coercion from [Interval(YearMonth), Decimal128(1, 1), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Interval(YearMonth), Decimal128(1, 1), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" + "failure": "error in DataFusion: Error during planning: Error during planning: Failed to coerce arguments to satisfy a call to approx_percentile_cont function: coercion from [Interval(YearMonth), Decimal128(1, 1), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Interval(YearMonth), Decimal128(1, 1), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" } }, { @@ -1715,7 +1715,7 @@ } }, "output": { - "failure": "error in DataFusion: Error during planning: Error during planning: Coercion from [Int32, List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Int32, List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" + "failure": "error in DataFusion: Error during planning: Error during planning: Failed to coerce arguments to satisfy a call to approx_percentile_cont function: coercion from [Int32, List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Int32, List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" } }, { @@ -1741,7 +1741,7 @@ } }, "output": { - "failure": "error in DataFusion: Error during planning: Error during planning: Coercion from [Interval(DayTime), List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Interval(DayTime), List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" + "failure": "error in DataFusion: Error during planning: Error during planning: Failed to coerce arguments to satisfy a call to approx_percentile_cont function: coercion from [Interval(DayTime), List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32] to the signature OneOf([Exact([Int8, Float64]), Exact([Int8, Float64, Int8]), Exact([Int8, Float64, Int16]), Exact([Int8, Float64, Int32]), Exact([Int8, Float64, Int64]), Exact([Int8, Float64, UInt8]), Exact([Int8, Float64, UInt16]), Exact([Int8, Float64, UInt32]), Exact([Int8, Float64, UInt64]), Exact([Int16, Float64]), Exact([Int16, Float64, Int8]), Exact([Int16, Float64, Int16]), Exact([Int16, Float64, Int32]), Exact([Int16, Float64, Int64]), Exact([Int16, Float64, UInt8]), Exact([Int16, Float64, UInt16]), Exact([Int16, Float64, UInt32]), Exact([Int16, Float64, UInt64]), Exact([Int32, Float64]), Exact([Int32, Float64, Int8]), Exact([Int32, Float64, Int16]), Exact([Int32, Float64, Int32]), Exact([Int32, Float64, Int64]), Exact([Int32, Float64, UInt8]), Exact([Int32, Float64, UInt16]), Exact([Int32, Float64, UInt32]), Exact([Int32, Float64, UInt64]), Exact([Int64, Float64]), Exact([Int64, Float64, Int8]), Exact([Int64, Float64, Int16]), Exact([Int64, Float64, Int32]), Exact([Int64, Float64, Int64]), Exact([Int64, Float64, UInt8]), Exact([Int64, Float64, UInt16]), Exact([Int64, Float64, UInt32]), Exact([Int64, Float64, UInt64]), Exact([UInt8, Float64]), Exact([UInt8, Float64, Int8]), Exact([UInt8, Float64, Int16]), Exact([UInt8, Float64, Int32]), Exact([UInt8, Float64, Int64]), Exact([UInt8, Float64, UInt8]), Exact([UInt8, Float64, UInt16]), Exact([UInt8, Float64, UInt32]), Exact([UInt8, Float64, UInt64]), Exact([UInt16, Float64]), Exact([UInt16, Float64, Int8]), Exact([UInt16, Float64, Int16]), Exact([UInt16, Float64, Int32]), Exact([UInt16, Float64, Int64]), Exact([UInt16, Float64, UInt8]), Exact([UInt16, Float64, UInt16]), Exact([UInt16, Float64, UInt32]), Exact([UInt16, Float64, UInt64]), Exact([UInt32, Float64]), Exact([UInt32, Float64, Int8]), Exact([UInt32, Float64, Int16]), Exact([UInt32, Float64, Int32]), Exact([UInt32, Float64, Int64]), Exact([UInt32, Float64, UInt8]), Exact([UInt32, Float64, UInt16]), Exact([UInt32, Float64, UInt32]), Exact([UInt32, Float64, UInt64]), Exact([UInt64, Float64]), Exact([UInt64, Float64, Int8]), Exact([UInt64, Float64, Int16]), Exact([UInt64, Float64, Int32]), Exact([UInt64, Float64, Int64]), Exact([UInt64, Float64, UInt8]), Exact([UInt64, Float64, UInt16]), Exact([UInt64, Float64, UInt32]), Exact([UInt64, Float64, UInt64]), Exact([Float32, Float64]), Exact([Float32, Float64, Int8]), Exact([Float32, Float64, Int16]), Exact([Float32, Float64, Int32]), Exact([Float32, Float64, Int64]), Exact([Float32, Float64, UInt8]), Exact([Float32, Float64, UInt16]), Exact([Float32, Float64, UInt32]), Exact([Float32, Float64, UInt64]), Exact([Float64, Float64]), Exact([Float64, Float64, Int8]), Exact([Float64, Float64, Int16]), Exact([Float64, Float64, Int32]), Exact([Float64, Float64, Int64]), Exact([Float64, Float64, UInt8]), Exact([Float64, Float64, UInt16]), Exact([Float64, Float64, UInt32]), Exact([Float64, Float64, UInt64])]) failed. No function matches the given name and argument types 'approx_percentile_cont(Interval(DayTime), List(Field { name: \"item\", data_type: Decimal128(1, 1), nullable: true, dict_id: 0, dict_is_ordered: false, metadata: {} }), Int32)'. You might need to add explicit type casts.\n\tCandidate functions:\n\tapprox_percentile_cont(Int8, Float64)\n\tapprox_percentile_cont(Int8, Float64, Int8)\n\tapprox_percentile_cont(Int8, Float64, Int16)\n\tapprox_percentile_cont(Int8, Float64, Int32)\n\tapprox_percentile_cont(Int8, Float64, Int64)\n\tapprox_percentile_cont(Int8, Float64, UInt8)\n\tapprox_percentile_cont(Int8, Float64, UInt16)\n\tapprox_percentile_cont(Int8, Float64, UInt32)\n\tapprox_percentile_cont(Int8, Float64, UInt64)\n\tapprox_percentile_cont(Int16, Float64)\n\tapprox_percentile_cont(Int16, Float64, Int8)\n\tapprox_percentile_cont(Int16, Float64, Int16)\n\tapprox_percentile_cont(Int16, Float64, Int32)\n\tapprox_percentile_cont(Int16, Float64, Int64)\n\tapprox_percentile_cont(Int16, Float64, UInt8)\n\tapprox_percentile_cont(Int16, Float64, UInt16)\n\tapprox_percentile_cont(Int16, Float64, UInt32)\n\tapprox_percentile_cont(Int16, Float64, UInt64)\n\tapprox_percentile_cont(Int32, Float64)\n\tapprox_percentile_cont(Int32, Float64, Int8)\n\tapprox_percentile_cont(Int32, Float64, Int16)\n\tapprox_percentile_cont(Int32, Float64, Int32)\n\tapprox_percentile_cont(Int32, Float64, Int64)\n\tapprox_percentile_cont(Int32, Float64, UInt8)\n\tapprox_percentile_cont(Int32, Float64, UInt16)\n\tapprox_percentile_cont(Int32, Float64, UInt32)\n\tapprox_percentile_cont(Int32, Float64, UInt64)\n\tapprox_percentile_cont(Int64, Float64)\n\tapprox_percentile_cont(Int64, Float64, Int8)\n\tapprox_percentile_cont(Int64, Float64, Int16)\n\tapprox_percentile_cont(Int64, Float64, Int32)\n\tapprox_percentile_cont(Int64, Float64, Int64)\n\tapprox_percentile_cont(Int64, Float64, UInt8)\n\tapprox_percentile_cont(Int64, Float64, UInt16)\n\tapprox_percentile_cont(Int64, Float64, UInt32)\n\tapprox_percentile_cont(Int64, Float64, UInt64)\n\tapprox_percentile_cont(UInt8, Float64)\n\tapprox_percentile_cont(UInt8, Float64, Int8)\n\tapprox_percentile_cont(UInt8, Float64, Int16)\n\tapprox_percentile_cont(UInt8, Float64, Int32)\n\tapprox_percentile_cont(UInt8, Float64, Int64)\n\tapprox_percentile_cont(UInt8, Float64, UInt8)\n\tapprox_percentile_cont(UInt8, Float64, UInt16)\n\tapprox_percentile_cont(UInt8, Float64, UInt32)\n\tapprox_percentile_cont(UInt8, Float64, UInt64)\n\tapprox_percentile_cont(UInt16, Float64)\n\tapprox_percentile_cont(UInt16, Float64, Int8)\n\tapprox_percentile_cont(UInt16, Float64, Int16)\n\tapprox_percentile_cont(UInt16, Float64, Int32)\n\tapprox_percentile_cont(UInt16, Float64, Int64)\n\tapprox_percentile_cont(UInt16, Float64, UInt8)\n\tapprox_percentile_cont(UInt16, Float64, UInt16)\n\tapprox_percentile_cont(UInt16, Float64, UInt32)\n\tapprox_percentile_cont(UInt16, Float64, UInt64)\n\tapprox_percentile_cont(UInt32, Float64)\n\tapprox_percentile_cont(UInt32, Float64, Int8)\n\tapprox_percentile_cont(UInt32, Float64, Int16)\n\tapprox_percentile_cont(UInt32, Float64, Int32)\n\tapprox_percentile_cont(UInt32, Float64, Int64)\n\tapprox_percentile_cont(UInt32, Float64, UInt8)\n\tapprox_percentile_cont(UInt32, Float64, UInt16)\n\tapprox_percentile_cont(UInt32, Float64, UInt32)\n\tapprox_percentile_cont(UInt32, Float64, UInt64)\n\tapprox_percentile_cont(UInt64, Float64)\n\tapprox_percentile_cont(UInt64, Float64, Int8)\n\tapprox_percentile_cont(UInt64, Float64, Int16)\n\tapprox_percentile_cont(UInt64, Float64, Int32)\n\tapprox_percentile_cont(UInt64, Float64, Int64)\n\tapprox_percentile_cont(UInt64, Float64, UInt8)\n\tapprox_percentile_cont(UInt64, Float64, UInt16)\n\tapprox_percentile_cont(UInt64, Float64, UInt32)\n\tapprox_percentile_cont(UInt64, Float64, UInt64)\n\tapprox_percentile_cont(Float32, Float64)\n\tapprox_percentile_cont(Float32, Float64, Int8)\n\tapprox_percentile_cont(Float32, Float64, Int16)\n\tapprox_percentile_cont(Float32, Float64, Int32)\n\tapprox_percentile_cont(Float32, Float64, Int64)\n\tapprox_percentile_cont(Float32, Float64, UInt8)\n\tapprox_percentile_cont(Float32, Float64, UInt16)\n\tapprox_percentile_cont(Float32, Float64, UInt32)\n\tapprox_percentile_cont(Float32, Float64, UInt64)\n\tapprox_percentile_cont(Float64, Float64)\n\tapprox_percentile_cont(Float64, Float64, Int8)\n\tapprox_percentile_cont(Float64, Float64, Int16)\n\tapprox_percentile_cont(Float64, Float64, Int32)\n\tapprox_percentile_cont(Float64, Float64, Int64)\n\tapprox_percentile_cont(Float64, Float64, UInt8)\n\tapprox_percentile_cont(Float64, Float64, UInt16)\n\tapprox_percentile_cont(Float64, Float64, UInt32)\n\tapprox_percentile_cont(Float64, Float64, UInt64)" } }, { diff --git a/crates/sail-spark-connect/tests/gold_data/function/collection.json b/crates/sail-spark-connect/tests/gold_data/function/collection.json index b3509631..982ea94b 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/collection.json +++ b/crates/sail-spark-connect/tests/gold_data/function/collection.json @@ -85,7 +85,7 @@ } }, "output": { - "success": "ok" + "failure": "error in DataFusion: This feature is not implemented: Function concat does not implement invoke but called" } }, { @@ -111,7 +111,7 @@ } }, "output": { - "success": "ok" + "failure": "error in DataFusion: This feature is not implemented: Function array_concat does not implement invoke but called" } }, { @@ -133,7 +133,7 @@ } }, "output": { - "success": "ok" + "failure": "error in DataFusion: This feature is not implemented: Function reverse does not implement invoke but called" } }, { diff --git a/crates/sail-spark-connect/tests/gold_data/function/datetime.json b/crates/sail-spark-connect/tests/gold_data/function/datetime.json index 7610569e..94a3d615 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/datetime.json +++ b/crates/sail-spark-connect/tests/gold_data/function/datetime.json @@ -2746,7 +2746,7 @@ } }, "output": { - "success": "ok" + "failure": "error in DataFusion: This feature is not implemented: Function to_timestamp_seconds does not implement invoke but called" } }, { @@ -2812,7 +2812,7 @@ } }, "output": { - "success": "ok" + "failure": "error in DataFusion: This feature is not implemented: Function to_timestamp_nanos does not implement invoke but called" } }, { diff --git a/crates/sail-spark-connect/tests/gold_data/function/math.json b/crates/sail-spark-connect/tests/gold_data/function/math.json index 8b799e76..42ab8d9e 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/math.json +++ b/crates/sail-spark-connect/tests/gold_data/function/math.json @@ -1867,7 +1867,7 @@ } }, "output": { - "failure": "error in DataFusion: Error during planning: Error during planning: Coercion from [Interval(YearMonth)] to the signature Uniform(1, [Float64, Float32]) failed. No function matches the given name and argument types 'signum(Interval(YearMonth))'. You might need to add explicit type casts.\n\tCandidate functions:\n\tsignum(Float64/Float32)" + "failure": "error in DataFusion: Error during planning: Error during planning: Failed to coerce arguments to satisfy a call to signum function: coercion from [Interval(YearMonth)] to the signature Uniform(1, [Float64, Float32]) failed. No function matches the given name and argument types 'signum(Interval(YearMonth))'. You might need to add explicit type casts.\n\tCandidate functions:\n\tsignum(Float64/Float32)" } }, { @@ -1911,7 +1911,7 @@ } }, "output": { - "failure": "error in DataFusion: Error during planning: Error during planning: Coercion from [Interval(YearMonth)] to the signature Uniform(1, [Float64, Float32]) failed. No function matches the given name and argument types 'signum(Interval(YearMonth))'. You might need to add explicit type casts.\n\tCandidate functions:\n\tsignum(Float64/Float32)" + "failure": "error in DataFusion: Error during planning: Error during planning: Failed to coerce arguments to satisfy a call to signum function: coercion from [Interval(YearMonth)] to the signature Uniform(1, [Float64, Float32]) failed. No function matches the given name and argument types 'signum(Interval(YearMonth))'. You might need to add explicit type casts.\n\tCandidate functions:\n\tsignum(Float64/Float32)" } }, { diff --git a/crates/sail-spark-connect/tests/gold_data/function/string.json b/crates/sail-spark-connect/tests/gold_data/function/string.json index faf41c88..81638258 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/string.json +++ b/crates/sail-spark-connect/tests/gold_data/function/string.json @@ -437,7 +437,7 @@ } }, "output": { - "success": "ok" + "failure": "error in DataFusion: This feature is not implemented: Function concat does not implement invoke but called" } }, { From 1c5d50697b8f56048f092dfa19da8ba3ded38b76 Mon Sep 17 00:00:00 2001 From: Shehab <11789402+shehabgamin@users.noreply.github.com> Date: Thu, 19 Dec 2024 22:57:04 -0800 Subject: [PATCH 5/9] use invoke batch --- .../sail-plan/src/extension/function/spark_aes.rs | 14 ++++++-------- .../src/extension/function/spark_concat.rs | 8 +++----- .../src/extension/function/spark_reverse.rs | 5 ++--- .../src/extension/function/spark_unix_timestamp.rs | 5 ++--- .../src/extension/function/spark_weekofyear.rs | 5 ++--- 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/crates/sail-plan/src/extension/function/spark_aes.rs b/crates/sail-plan/src/extension/function/spark_aes.rs index c9adf667..00a97234 100644 --- a/crates/sail-plan/src/extension/function/spark_aes.rs +++ b/crates/sail-plan/src/extension/function/spark_aes.rs @@ -130,7 +130,7 @@ impl ScalarUDFImpl for SparkAESEncrypt { Ok(DataType::Binary) } - fn invoke(&self, args: &[ColumnarValue]) -> Result { + fn invoke_batch(&self, args: &[ColumnarValue], _number_rows: usize) -> Result { if args.len() < 2 || args.len() > 6 { return exec_err!( "Spark `aes_encrypt` function requires 2 to 6 arguments, got {}", @@ -579,7 +579,7 @@ impl ScalarUDFImpl for SparkAESDecrypt { Ok(DataType::Binary) } - fn invoke(&self, args: &[ColumnarValue]) -> Result { + fn invoke_batch(&self, args: &[ColumnarValue], _number_rows: usize) -> Result { if args.len() < 2 || args.len() > 5 { return exec_err!( "Spark `aes_decrypt` function requires 2 to 5 arguments, got {}", @@ -958,9 +958,8 @@ impl ScalarUDFImpl for SparkTryAESEncrypt { Ok(DataType::Binary) } - fn invoke(&self, args: &[ColumnarValue]) -> Result { - #[allow(deprecated)] // TODO use invoke_batch - let result = SparkAESEncrypt::new().invoke(args); + fn invoke_batch(&self, args: &[ColumnarValue], number_rows: usize) -> Result { + let result = SparkAESEncrypt::new().invoke_batch(args, number_rows); match result { Ok(result) => Ok(result), Err(_) => Ok(ColumnarValue::Scalar(ScalarValue::Binary(None))), @@ -1004,9 +1003,8 @@ impl ScalarUDFImpl for SparkTryAESDecrypt { Ok(DataType::Binary) } - fn invoke(&self, args: &[ColumnarValue]) -> Result { - #[allow(deprecated)] // TODO use invoke_batch - let result = SparkAESDecrypt::new().invoke(args); + fn invoke_batch(&self, args: &[ColumnarValue], number_rows: usize) -> Result { + let result = SparkAESDecrypt::new().invoke_batch(args, number_rows); match result { Ok(result) => Ok(result), Err(_) => Ok(ColumnarValue::Scalar(ScalarValue::Binary(None))), diff --git a/crates/sail-plan/src/extension/function/spark_concat.rs b/crates/sail-plan/src/extension/function/spark_concat.rs index a0f74320..d49a6ce0 100644 --- a/crates/sail-plan/src/extension/function/spark_concat.rs +++ b/crates/sail-plan/src/extension/function/spark_concat.rs @@ -94,16 +94,14 @@ impl ScalarUDFImpl for SparkConcat { } } - fn invoke(&self, args: &[ColumnarValue]) -> Result { + fn invoke_batch(&self, args: &[ColumnarValue], number_rows: usize) -> Result { if args .iter() .any(|arg| matches!(arg.data_type(), DataType::List(_))) { - #[allow(deprecated)] // TODO use invoke_batch - ArrayConcat::new().invoke(args) + ArrayConcat::new().invoke_batch(args, number_rows) } else { - #[allow(deprecated)] // TODO use invoke_batch - ConcatFunc::new().invoke(args) + ConcatFunc::new().invoke_batch(args, number_rows) } } } diff --git a/crates/sail-plan/src/extension/function/spark_reverse.rs b/crates/sail-plan/src/extension/function/spark_reverse.rs index 9b1c284f..250cc309 100644 --- a/crates/sail-plan/src/extension/function/spark_reverse.rs +++ b/crates/sail-plan/src/extension/function/spark_reverse.rs @@ -44,14 +44,13 @@ impl ScalarUDFImpl for SparkReverse { Ok(arg_types[0].clone()) } - fn invoke(&self, args: &[ColumnarValue]) -> Result { + fn invoke_batch(&self, args: &[ColumnarValue], number_rows: usize) -> Result { if args.len() != 1 { return exec_err!("array_reverse needs one argument"); } match &args[0].data_type() { DataType::Utf8 | DataType::LargeUtf8 | DataType::Utf8View => { - #[allow(deprecated)] // TODO use invoke_batch - ReverseFunc::new().invoke(args) + ReverseFunc::new().invoke_batch(args, number_rows) } _ => make_scalar_function(array_reverse_inner)(args), } diff --git a/crates/sail-plan/src/extension/function/spark_unix_timestamp.rs b/crates/sail-plan/src/extension/function/spark_unix_timestamp.rs index da135525..91ae6f12 100644 --- a/crates/sail-plan/src/extension/function/spark_unix_timestamp.rs +++ b/crates/sail-plan/src/extension/function/spark_unix_timestamp.rs @@ -44,7 +44,7 @@ impl ScalarUDFImpl for SparkUnixTimestamp { Ok(DataType::Int64) } - fn invoke(&self, args: &[ColumnarValue]) -> Result { + fn invoke_batch(&self, args: &[ColumnarValue], number_rows: usize) -> Result { if args.is_empty() { return exec_err!("spark_unix_timestamp function requires 1 or more arguments"); } @@ -66,10 +66,9 @@ impl ScalarUDFImpl for SparkUnixTimestamp { None, )? .cast_to(&DataType::Int64, None), - #[allow(deprecated)] // TODO use invoke_batch DataType::Utf8View | DataType::LargeUtf8 | DataType::Utf8 => { ToTimestampSecondsFunc::new() - .invoke(args)? + .invoke_batch(args, number_rows)? .cast_to( &DataType::Timestamp(TimeUnit::Second, Some(self.timezone.clone())), None, diff --git a/crates/sail-plan/src/extension/function/spark_weekofyear.rs b/crates/sail-plan/src/extension/function/spark_weekofyear.rs index 99ee1e52..b1034bd7 100644 --- a/crates/sail-plan/src/extension/function/spark_weekofyear.rs +++ b/crates/sail-plan/src/extension/function/spark_weekofyear.rs @@ -52,7 +52,7 @@ impl ScalarUDFImpl for SparkWeekOfYear { Ok(DataType::UInt32) } - fn invoke(&self, args: &[ColumnarValue]) -> Result { + fn invoke_batch(&self, args: &[ColumnarValue], number_rows: usize) -> Result { if args.is_empty() { return exec_err!("Spark `weekofyear` function requires 1 argument, got 0"); } @@ -70,10 +70,9 @@ impl ScalarUDFImpl for SparkWeekOfYear { None, )? .cast_to(&DataType::Int64, None), - #[allow(deprecated)] // TODO use invoke_batch DataType::Utf8View | DataType::LargeUtf8 | DataType::Utf8 => { ToTimestampNanosFunc::new() - .invoke(args)? + .invoke_batch(args, number_rows)? .cast_to( &DataType::Timestamp(TimeUnit::Nanosecond, Some(self.timezone.clone())), None, From 6968e44a33e9a28c959a2ce92d9b37025b5b1e97 Mon Sep 17 00:00:00 2001 From: Shehab <11789402+shehabgamin@users.noreply.github.com> Date: Thu, 19 Dec 2024 22:58:03 -0800 Subject: [PATCH 6/9] [spark tests] --- .../tests/gold_data/function/collection.json | 6 +++--- .../tests/gold_data/function/datetime.json | 4 ++-- .../sail-spark-connect/tests/gold_data/function/string.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/sail-spark-connect/tests/gold_data/function/collection.json b/crates/sail-spark-connect/tests/gold_data/function/collection.json index 982ea94b..b3509631 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/collection.json +++ b/crates/sail-spark-connect/tests/gold_data/function/collection.json @@ -85,7 +85,7 @@ } }, "output": { - "failure": "error in DataFusion: This feature is not implemented: Function concat does not implement invoke but called" + "success": "ok" } }, { @@ -111,7 +111,7 @@ } }, "output": { - "failure": "error in DataFusion: This feature is not implemented: Function array_concat does not implement invoke but called" + "success": "ok" } }, { @@ -133,7 +133,7 @@ } }, "output": { - "failure": "error in DataFusion: This feature is not implemented: Function reverse does not implement invoke but called" + "success": "ok" } }, { diff --git a/crates/sail-spark-connect/tests/gold_data/function/datetime.json b/crates/sail-spark-connect/tests/gold_data/function/datetime.json index 94a3d615..7610569e 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/datetime.json +++ b/crates/sail-spark-connect/tests/gold_data/function/datetime.json @@ -2746,7 +2746,7 @@ } }, "output": { - "failure": "error in DataFusion: This feature is not implemented: Function to_timestamp_seconds does not implement invoke but called" + "success": "ok" } }, { @@ -2812,7 +2812,7 @@ } }, "output": { - "failure": "error in DataFusion: This feature is not implemented: Function to_timestamp_nanos does not implement invoke but called" + "success": "ok" } }, { diff --git a/crates/sail-spark-connect/tests/gold_data/function/string.json b/crates/sail-spark-connect/tests/gold_data/function/string.json index 81638258..faf41c88 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/string.json +++ b/crates/sail-spark-connect/tests/gold_data/function/string.json @@ -437,7 +437,7 @@ } }, "output": { - "failure": "error in DataFusion: This feature is not implemented: Function concat does not implement invoke but called" + "success": "ok" } }, { From 444b420fef1e77c24633a8ad827a0567ae09126d Mon Sep 17 00:00:00 2001 From: Shehab <11789402+shehabgamin@users.noreply.github.com> Date: Thu, 26 Dec 2024 21:08:18 -0800 Subject: [PATCH 7/9] [spark tests] --- Cargo.lock | 389 +++++++----------- Cargo.toml | 64 +-- crates/sail-execution/Cargo.toml | 2 +- crates/sail-execution/src/codec.rs | 4 +- .../sail-execution/src/plan/shuffle_read.rs | 10 +- .../sail-execution/src/plan/shuffle_write.rs | 9 +- crates/sail-plan/Cargo.toml | 2 +- .../src/extension/physical/map_partitions.rs | 3 +- .../sail-plan/src/extension/physical/range.rs | 6 +- .../src/extension/physical/schema_pivot.rs | 3 +- .../src/extension/physical/show_string.rs | 6 +- crates/sail-plan/src/function/scalar/json.rs | 84 ++-- crates/sail-plan/src/resolver/expression.rs | 4 +- .../tests/gold_data/function/json.json | 8 +- crates/sail-sql/src/utils.rs | 15 +- 15 files changed, 272 insertions(+), 337 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cc3e252d..c933a8d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -179,7 +179,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aef82843a0ec9f8b19567445ad2421ceeb1d711514384bdd3d49fe37102ee13" dependencies = [ "bigdecimal", - "bzip2", + "bzip2 0.4.4", "crc32fast", "digest", "libflate", @@ -463,10 +463,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" dependencies = [ "brotli", - "bzip2", + "bzip2 0.4.4", "flate2", "futures-core", - "futures-io", "memchr", "pin-project-lite", "tokio", @@ -483,7 +482,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -505,7 +504,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -516,7 +515,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -708,9 +707,9 @@ dependencies = [ [[package]] name = "aws-smithy-async" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aa8ff1492fd9fb99ae28e8467af0dbbb7c31512b16fabf1a0f10d7bb6ef78bb" +checksum = "427cb637d15d63d6f9aae26358e1c9a9c09d5aa490d64b09354c8217cfef0f28" dependencies = [ "futures-util", "pin-project-lite", @@ -758,9 +757,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.7.5" +version = "1.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431a10d0e07e09091284ef04453dae4069283aa108d209974d67e77ae1caa658" +checksum = "a05dd41a70fc74051758ee75b5c4db2c0ca070ed9229c3df50e9475cda1cb985" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -802,9 +801,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.2.10" +version = "1.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecbf4d5dfb169812e2b240a4350f15ad3c6b03a54074e5712818801615f2dc5" +checksum = "38ddc9bd6c28aeb303477170ddd183760a956a03e083b3902a990238a7e3792d" dependencies = [ "base64-simd", "bytes", @@ -956,18 +955,6 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - [[package]] name = "blake2" version = "0.10.6" @@ -1052,7 +1039,7 @@ checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -1087,6 +1074,16 @@ dependencies = [ "libc", ] +[[package]] +name = "bzip2" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bafdbf26611df8c14810e268ddceda071c297570a5fb360ceddf617fe417ef58" +dependencies = [ + "bzip2-sys", + "libc", +] + [[package]] name = "bzip2-sys" version = "0.1.11+1.0.8" @@ -1109,9 +1106,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.5" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" +checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" dependencies = [ "jobserver", "libc", @@ -1207,7 +1204,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -1435,8 +1432,8 @@ dependencies = [ [[package]] name = "datafusion" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "apache-avro", "arrow", @@ -1446,7 +1443,7 @@ dependencies = [ "async-compression", "async-trait", "bytes", - "bzip2", + "bzip2 0.5.0", "chrono", "dashmap", "datafusion-catalog", @@ -1476,7 +1473,7 @@ dependencies = [ "parquet", "rand", "regex", - "sqlparser 0.52.0", + "sqlparser 0.53.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile", "tokio", "tokio-util", @@ -1488,8 +1485,8 @@ dependencies = [ [[package]] name = "datafusion-catalog" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow-schema", "async-trait", @@ -1502,8 +1499,8 @@ dependencies = [ [[package]] name = "datafusion-common" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "ahash", "apache-avro", @@ -1515,20 +1512,21 @@ dependencies = [ "hashbrown 0.14.5", "indexmap 2.7.0", "libc", + "log", "object_store", "parquet", "paste", "pyo3", "recursive", - "sqlparser 0.52.0", + "sqlparser 0.53.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio", "web-time", ] [[package]] name = "datafusion-common-runtime" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "log", "tokio", @@ -1536,13 +1534,13 @@ dependencies = [ [[package]] name = "datafusion-doc" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" [[package]] name = "datafusion-execution" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "dashmap", @@ -1559,8 +1557,8 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "chrono", @@ -1574,13 +1572,13 @@ dependencies = [ "paste", "recursive", "serde_json", - "sqlparser 0.52.0", + "sqlparser 0.53.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "datafusion-expr-common" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "datafusion-common", @@ -1589,8 +1587,8 @@ dependencies = [ [[package]] name = "datafusion-functions" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "arrow-buffer", @@ -1618,8 +1616,8 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "ahash", "arrow", @@ -1639,8 +1637,8 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate-common" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "ahash", "arrow", @@ -1649,22 +1647,10 @@ dependencies = [ "datafusion-physical-expr-common", ] -[[package]] -name = "datafusion-functions-json" -version = "0.43.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744cf7ae121977c453586f3f098239e50da6b0cfcf2de3ccb9338a4896f97dc0" -dependencies = [ - "datafusion", - "jiter", - "log", - "paste", -] - [[package]] name = "datafusion-functions-nested" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "arrow-array", @@ -1684,8 +1670,8 @@ dependencies = [ [[package]] name = "datafusion-functions-table" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "async-trait", @@ -1699,8 +1685,8 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "datafusion-common", "datafusion-doc", @@ -1715,8 +1701,8 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -1724,17 +1710,17 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] name = "datafusion-optimizer" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "chrono", @@ -1751,8 +1737,8 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "ahash", "arrow", @@ -1775,8 +1761,8 @@ dependencies = [ [[package]] name = "datafusion-physical-expr-common" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "ahash", "arrow", @@ -1788,8 +1774,8 @@ dependencies = [ [[package]] name = "datafusion-physical-optimizer" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "datafusion-common", @@ -1804,8 +1790,8 @@ dependencies = [ [[package]] name = "datafusion-physical-plan" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "ahash", "arrow", @@ -1835,8 +1821,8 @@ dependencies = [ [[package]] name = "datafusion-proto" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "chrono", @@ -1850,8 +1836,8 @@ dependencies = [ [[package]] name = "datafusion-proto-common" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "datafusion-common", @@ -1860,8 +1846,8 @@ dependencies = [ [[package]] name = "datafusion-sql" -version = "43.0.0" -source = "git+https://github.com/apache/datafusion.git?rev=5d563d9#5d563d900b0a5ffbd89b691ccb4977ad5ff7737d" +version = "44.0.0" +source = "git+https://github.com/apache/datafusion.git?rev=073a3b1#073a3b110852f97ccb7085ce4bfd19473b8a3f4f" dependencies = [ "arrow", "arrow-array", @@ -1873,7 +1859,7 @@ dependencies = [ "log", "recursive", "regex", - "sqlparser 0.52.0", + "sqlparser 0.53.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1913,7 +1899,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -1997,7 +1983,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2074,12 +2060,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - [[package]] name = "futures" version = "0.3.31" @@ -2136,7 +2116,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2178,7 +2158,7 @@ dependencies = [ "g2poly", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2793,7 +2773,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2911,20 +2891,6 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" -[[package]] -name = "jiter" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e23549143ef50eddffd46ba8cd0229b0a4500aef7518cf2eb0f41c9a09d22b" -dependencies = [ - "ahash", - "bitvec", - "lexical-parse-float 0.8.5", - "num-bigint", - "num-traits", - "smallvec", -] - [[package]] name = "jobserver" version = "0.1.32" @@ -3049,42 +3015,21 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b765c31809609075565a70b4b71402281283aeda7ecaf4818ac14a7b2ade8958" dependencies = [ - "lexical-parse-float 1.0.5", - "lexical-parse-integer 1.0.5", - "lexical-util 1.0.6", + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", "lexical-write-float", "lexical-write-integer", ] -[[package]] -name = "lexical-parse-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer 0.8.6", - "lexical-util 0.8.5", - "static_assertions", -] - [[package]] name = "lexical-parse-float" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de6f9cb01fb0b08060209a057c048fcbab8717b4c1ecd2eac66ebfe39a65b0f2" dependencies = [ - "lexical-parse-integer 1.0.5", - "lexical-util 1.0.6", - "static_assertions", -] - -[[package]] -name = "lexical-parse-integer" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util 0.8.5", + "lexical-parse-integer", + "lexical-util", "static_assertions", ] @@ -3094,16 +3039,7 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72207aae22fc0a121ba7b6d479e42cbfea549af1479c3f3a4f12c70dd66df12e" dependencies = [ - "lexical-util 1.0.6", - "static_assertions", -] - -[[package]] -name = "lexical-util" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ + "lexical-util", "static_assertions", ] @@ -3122,7 +3058,7 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5afc668a27f460fb45a81a757b6bf2f43c2d7e30cb5a2dcd3abf294c78d62bd" dependencies = [ - "lexical-util 1.0.6", + "lexical-util", "lexical-write-integer", "static_assertions", ] @@ -3133,7 +3069,7 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629ddff1a914a836fb245616a7888b62903aae58fa771e1d83943035efa0f978" dependencies = [ - "lexical-util 1.0.6", + "lexical-util", "static_assertions", ] @@ -3345,7 +3281,7 @@ checksum = "a7ce64b975ed4f123575d11afd9491f2e37bbd5813fbfbc0f09ae1fbddea74e0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -3453,7 +3389,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -3467,15 +3403,16 @@ dependencies = [ [[package]] name = "object_store" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eb4c22c6154a1e759d7099f9ffad7cc5ef8245f9efbab4a41b92623079c82f3" +checksum = "3cfccb68961a56facde1163f9319e0d15743352344e7808a11795fb99698dcaf" dependencies = [ "async-trait", "base64 0.22.1", "bytes", "chrono", "futures", + "httparse", "humantime", "hyper 1.5.2", "itertools 0.13.0", @@ -3723,7 +3660,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -3773,7 +3710,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -3837,7 +3774,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -3866,7 +3803,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -3927,7 +3864,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -3958,7 +3895,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -3978,7 +3915,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", "version_check", "yansi", ] @@ -4019,7 +3956,7 @@ dependencies = [ "prost 0.13.4", "prost-types 0.13.4", "regex", - "syn 2.0.91", + "syn 2.0.92", "tempfile", ] @@ -4033,7 +3970,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -4046,7 +3983,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -4124,7 +4061,7 @@ dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -4137,7 +4074,7 @@ dependencies = [ "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -4148,9 +4085,9 @@ checksum = "5a651516ddc9168ebd67b24afd085a718be02f8858fe406591b013d101ce2f40" [[package]] name = "quick-xml" -version = "0.36.2" +version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +checksum = "f22f29bdff3987b4d8632ef95fd6424ec7e4e0a57e2f4fc63e489e75357f6a03" dependencies = [ "memchr", "serde", @@ -4210,19 +4147,13 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - [[package]] name = "rand" version = "0.8.5" @@ -4280,7 +4211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" dependencies = [ "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -4329,9 +4260,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.9" +version = "0.12.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +checksum = "3d3536321cfc54baa8cf3e273d5e1f63f889067829c4b410fcdbac8ca7b80994" dependencies = [ "base64 0.22.1", "bytes", @@ -4363,6 +4294,7 @@ dependencies = [ "tokio", "tokio-rustls 0.26.1", "tokio-util", + "tower 0.5.2", "tower-service", "url", "wasm-bindgen", @@ -4556,9 +4488,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" @@ -4599,7 +4531,7 @@ dependencies = [ "ryu", "serde", "serde_json", - "sqlparser 0.53.0", + "sqlparser 0.53.0 (git+https://github.com/lakehq/sqlparser-rs.git?rev=69514bb)", "thiserror 2.0.9", ] @@ -4609,7 +4541,6 @@ version = "0.2.0" dependencies = [ "arrow-flight", "datafusion", - "datafusion-functions-json", "datafusion-proto", "futures", "k8s-openapi", @@ -4648,7 +4579,6 @@ dependencies = [ "datafusion-common", "datafusion-expr", "datafusion-expr-common", - "datafusion-functions-json", "datafusion-functions-nested", "either", "futures", @@ -4763,8 +4693,8 @@ dependencies = [ "serde", "serde_arrow", "serde_json", - "sqlparser 0.53.0", - "syn 2.0.91", + "sqlparser 0.53.0 (git+https://github.com/lakehq/sqlparser-rs.git?rev=69514bb)", + "syn 2.0.92", "thiserror 2.0.9", "tokio", "tonic", @@ -4785,7 +4715,7 @@ dependencies = [ "sail-common", "serde", "serde_json", - "sqlparser 0.53.0", + "sqlparser 0.53.0 (git+https://github.com/lakehq/sqlparser-rs.git?rev=69514bb)", "thiserror 2.0.9", ] @@ -4949,7 +4879,7 @@ checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5074,7 +5004,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5101,12 +5031,12 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "sqlparser" -version = "0.52.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a875d8cd437cc8a97e9aeaeea352ec9a19aea99c23e9effb17757291de80b08" +checksum = "05a528114c392209b3264855ad491fcce534b94a38771b0a0b97a79379275ce8" dependencies = [ "log", - "sqlparser_derive 0.2.2", + "sqlparser_derive 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -5116,18 +5046,18 @@ source = "git+https://github.com/lakehq/sqlparser-rs.git?rev=69514bb#69514bb09c2 dependencies = [ "log", "serde", - "sqlparser_derive 0.3.0", + "sqlparser_derive 0.3.0 (git+https://github.com/lakehq/sqlparser-rs.git?rev=69514bb)", ] [[package]] name = "sqlparser_derive" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b2e185515564f15375f593fb966b5718bc624ba77fe49fa4616ad619690554" +checksum = "da5fc6819faabb412da764b99d3b713bb55083c11e7e0c00144d386cd6a1939c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5137,7 +5067,7 @@ source = "git+https://github.com/lakehq/sqlparser-rs.git?rev=69514bb#69514bb09c2 dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5187,7 +5117,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5209,9 +5139,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.91" +version = "2.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" +checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126" dependencies = [ "proc-macro2", "quote", @@ -5235,15 +5165,9 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - [[package]] name = "target-lexicon" version = "0.12.16" @@ -5289,7 +5213,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5300,7 +5224,7 @@ checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5404,7 +5328,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5531,7 +5455,7 @@ dependencies = [ "prost-build", "prost-types 0.13.4", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5674,7 +5598,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5728,7 +5652,7 @@ checksum = "f9534daa9fd3ed0bd911d462a37f172228077e7abf18c18a5f67199d959205f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -5754,9 +5678,9 @@ dependencies = [ [[package]] name = "unicase" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" @@ -5919,7 +5843,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", "wasm-bindgen-shared", ] @@ -5954,7 +5878,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6248,15 +6172,6 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - [[package]] name = "xmlparser" version = "0.13.6" @@ -6298,7 +6213,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", "synstructure", ] @@ -6320,7 +6235,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -6340,7 +6255,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", "synstructure", ] @@ -6369,7 +6284,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e60213e0..8e66f6ec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -82,13 +82,13 @@ md-5 = "0.10.6" # The versions of the following dependencies are managed manually. ###### -datafusion = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9", features = ["serde", "pyarrow", "avro"] } -datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9", features = ["object_store", "pyarrow", "avro"] } -datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-proto = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-functions-json = "0.43.0" +datafusion = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1", features = ["serde", "pyarrow", "avro"] } +datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1", features = ["object_store", "pyarrow", "avro"] } +datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-proto = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +#datafusion-functions-json = "0.43.0" # auto-initialize: Changes [`Python::with_gil`] to automatically initialize the Python interpreter if needed. pyo3 = { version = "0.22.0", features = ["auto-initialize", "serde"] } arrow-flight = { version = "53.3.0" } @@ -105,31 +105,31 @@ sqlparser = { git = "https://github.com/lakehq/sqlparser-rs.git", rev = "69514bb [patch.crates-io] # Override dependencies to use our forked versions. # You can use `path = "..."` to temporarily point to your local copy of the crates to speed up local development. -datafusion = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-catalog = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-common-runtime = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-doc = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-execution = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -# datafusion-ffi = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } # Not used in the crate graph -datafusion-functions = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-functions-aggregate = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-functions-aggregate-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-functions-table = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-functions-window = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-functions-window-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-macros = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-optimizer = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-physical-expr = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-physical-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-physical-optimizer = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-physical-plan = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-proto = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-proto-common = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } -datafusion-sql = { git = "https://github.com/apache/datafusion.git", rev = "5d563d9" } +datafusion = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-catalog = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-common = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-common-runtime = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-doc = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-execution = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-expr = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +#datafusion-ffi = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-functions = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-functions-aggregate = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-functions-aggregate-common = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-functions-nested = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-functions-table = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-functions-window = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-functions-window-common = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-macros = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-optimizer = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-physical-expr = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-physical-expr-common = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-physical-optimizer = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-physical-plan = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-proto = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-proto-common = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } +datafusion-sql = { git = "https://github.com/apache/datafusion.git", rev = "073a3b1" } [profile.release] # https://doc.rust-lang.org/cargo/reference/profiles.html#release diff --git a/crates/sail-execution/Cargo.toml b/crates/sail-execution/Cargo.toml index 585fbea2..ea68743c 100644 --- a/crates/sail-execution/Cargo.toml +++ b/crates/sail-execution/Cargo.toml @@ -17,7 +17,7 @@ prost = { workspace = true } prost-types = { workspace = true } datafusion = { workspace = true } datafusion-proto = { workspace = true } -datafusion-functions-json = { workspace = true } +#datafusion-functions-json = { workspace = true } arrow-flight = { workspace = true } log = { workspace = true } futures = { workspace = true } diff --git a/crates/sail-execution/src/codec.rs b/crates/sail-execution/src/codec.rs index a2179035..6097921e 100644 --- a/crates/sail-execution/src/codec.rs +++ b/crates/sail-execution/src/codec.rs @@ -674,8 +674,8 @@ impl PhysicalExtensionCodec for RemoteExecutionCodec { } "spark_xxhash64" | "xxhash64" => Ok(Arc::new(ScalarUDF::from(SparkXxhash64::new()))), "overlay" => Ok(Arc::new(ScalarUDF::from(OverlayFunc::new()))), - "json_length" | "json_len" => Ok(datafusion_functions_json::udfs::json_length_udf()), - "json_as_text" => Ok(datafusion_functions_json::udfs::json_as_text_udf()), + // "json_length" | "json_len" => Ok(datafusion_functions_json::udfs::json_length_udf()), + // "json_as_text" => Ok(datafusion_functions_json::udfs::json_as_text_udf()), "spark_base64" | "base64" => Ok(Arc::new(ScalarUDF::from(SparkBase64::new()))), "spark_unbase64" | "unbase64" => Ok(Arc::new(ScalarUDF::from(SparkUnbase64::new()))), "spark_aes_encrypt" | "aes_encrypt" => { diff --git a/crates/sail-execution/src/plan/shuffle_read.rs b/crates/sail-execution/src/plan/shuffle_read.rs index 127c4024..f80a4255 100644 --- a/crates/sail-execution/src/plan/shuffle_read.rs +++ b/crates/sail-execution/src/plan/shuffle_read.rs @@ -7,10 +7,9 @@ use datafusion::common::{exec_datafusion_err, internal_err, Result}; use datafusion::execution::{SendableRecordBatchStream, TaskContext}; use datafusion::physical_expr::expressions::UnKnownColumn; use datafusion::physical_expr::{EquivalenceProperties, Partitioning}; +use datafusion::physical_plan::execution_plan::{Boundedness, EmissionType}; use datafusion::physical_plan::stream::RecordBatchStreamAdapter; -use datafusion::physical_plan::{ - DisplayAs, DisplayFormatType, ExecutionMode, ExecutionPlan, PlanProperties, -}; +use datafusion::physical_plan::{DisplayAs, DisplayFormatType, ExecutionPlan, PlanProperties}; use futures::future::try_join_all; use futures::TryStreamExt; use log::warn; @@ -47,7 +46,10 @@ impl ShuffleReadExec { let properties = PlanProperties::new( EquivalenceProperties::new(schema.clone()), partitioning, - ExecutionMode::Unbounded, + EmissionType::Both, // [CHECK HERE] DON'T MERGE IN UNTIL VALIDATING!! + Boundedness::Unbounded { + requires_infinite_memory: true, // [CHECK HERE] DON'T MERGE IN UNTIL VALIDATING!! + }, ); Self { stage, diff --git a/crates/sail-execution/src/plan/shuffle_write.rs b/crates/sail-execution/src/plan/shuffle_write.rs index 39039f38..7f0c866a 100644 --- a/crates/sail-execution/src/plan/shuffle_write.rs +++ b/crates/sail-execution/src/plan/shuffle_write.rs @@ -8,11 +8,11 @@ use datafusion::common::{exec_datafusion_err, exec_err, plan_err, Result}; use datafusion::execution::{SendableRecordBatchStream, TaskContext}; use datafusion::physical_expr::expressions::UnKnownColumn; use datafusion::physical_expr::{EquivalenceProperties, Partitioning}; +use datafusion::physical_plan::execution_plan::Boundedness; use datafusion::physical_plan::repartition::BatchPartitioner; use datafusion::physical_plan::stream::RecordBatchStreamAdapter; use datafusion::physical_plan::{ - DisplayAs, DisplayFormatType, ExecutionMode, ExecutionPlan, ExecutionPlanProperties, - PlanProperties, + DisplayAs, DisplayFormatType, ExecutionPlan, ExecutionPlanProperties, PlanProperties, }; use futures::future::try_join_all; use futures::StreamExt; @@ -66,7 +66,10 @@ impl ShuffleWriteExec { // These output streams are written to locations managed by the worker, // while the return value of `.execute()` is always an empty stream. input_partitioning, - ExecutionMode::Unbounded, + plan.pipeline_behavior(), // [CHECK HERE] DON'T MERGE IN UNTIL VALIDATING!! + Boundedness::Unbounded { + requires_infinite_memory: true, // [CHECK HERE] DON'T MERGE IN UNTIL VALIDATING!! + }, ); let locations = vec![vec![]; input_partition_count]; Self { diff --git a/crates/sail-plan/Cargo.toml b/crates/sail-plan/Cargo.toml index 04fdbc2d..b343e7e7 100644 --- a/crates/sail-plan/Cargo.toml +++ b/crates/sail-plan/Cargo.toml @@ -12,7 +12,7 @@ datafusion-common = { workspace = true } datafusion-expr = { workspace = true } datafusion-expr-common = { workspace = true } datafusion-functions-nested = { workspace = true } -datafusion-functions-json = { workspace = true } +#datafusion-functions-json = { workspace = true } thiserror = { workspace = true } tonic = { workspace = true } tokio-stream = { workspace = true } diff --git a/crates/sail-plan/src/extension/physical/map_partitions.rs b/crates/sail-plan/src/extension/physical/map_partitions.rs index 20a47c09..1bb856a9 100644 --- a/crates/sail-plan/src/extension/physical/map_partitions.rs +++ b/crates/sail-plan/src/extension/physical/map_partitions.rs @@ -29,7 +29,8 @@ impl MapPartitionsExec { let properties = PlanProperties::new( EquivalenceProperties::new(schema.clone()), input.output_partitioning().clone(), - input.execution_mode(), + input.pipeline_behavior(), // [CHECK HERE] DON'T MERGE IN UNTIL VALIDATING!! + input.boundedness(), ); Self { input, diff --git a/crates/sail-plan/src/extension/physical/range.rs b/crates/sail-plan/src/extension/physical/range.rs index a465c370..39aae135 100644 --- a/crates/sail-plan/src/extension/physical/range.rs +++ b/crates/sail-plan/src/extension/physical/range.rs @@ -6,8 +6,9 @@ use datafusion::arrow::datatypes::SchemaRef; use datafusion::arrow::record_batch::RecordBatch; use datafusion::execution::{SendableRecordBatchStream, TaskContext}; use datafusion::physical_expr::{EquivalenceProperties, Partitioning}; +use datafusion::physical_plan::execution_plan::{Boundedness, EmissionType}; use datafusion::physical_plan::stream::RecordBatchStreamAdapter; -use datafusion::physical_plan::{DisplayAs, ExecutionMode, ExecutionPlan, PlanProperties}; +use datafusion::physical_plan::{DisplayAs, ExecutionPlan, PlanProperties}; use datafusion_common::{exec_err, internal_err, Result}; use crate::extension::logical::Range; @@ -27,7 +28,8 @@ impl RangeExec { let properties = PlanProperties::new( EquivalenceProperties::new(schema.clone()), Partitioning::RoundRobinBatch(num_partitions), - ExecutionMode::Bounded, + EmissionType::Both, // [CHECK HERE] DON'T MERGE IN UNTIL VALIDATING!! + Boundedness::Bounded, ); Self { range, diff --git a/crates/sail-plan/src/extension/physical/schema_pivot.rs b/crates/sail-plan/src/extension/physical/schema_pivot.rs index 9d79312b..e9f666e4 100644 --- a/crates/sail-plan/src/extension/physical/schema_pivot.rs +++ b/crates/sail-plan/src/extension/physical/schema_pivot.rs @@ -34,7 +34,8 @@ impl SchemaPivotExec { let properties = PlanProperties::new( EquivalenceProperties::new(schema.clone()), partitioning, - input.execution_mode(), + input.pipeline_behavior(), // [CHECK HERE] DON'T MERGE IN UNTIL VALIDATING!! + input.boundedness(), ); Self { input, diff --git a/crates/sail-plan/src/extension/physical/show_string.rs b/crates/sail-plan/src/extension/physical/show_string.rs index f6490755..76f1198f 100644 --- a/crates/sail-plan/src/extension/physical/show_string.rs +++ b/crates/sail-plan/src/extension/physical/show_string.rs @@ -8,8 +8,9 @@ use datafusion::arrow::compute::concat_batches; use datafusion::arrow::datatypes::SchemaRef; use datafusion::execution::{RecordBatchStream, SendableRecordBatchStream, TaskContext}; use datafusion::physical_expr::{Distribution, EquivalenceProperties, Partitioning}; +use datafusion::physical_plan::execution_plan::Boundedness; use datafusion::physical_plan::{ - DisplayAs, ExecutionMode, ExecutionPlan, ExecutionPlanProperties, PlanProperties, + DisplayAs, ExecutionPlan, ExecutionPlanProperties, PlanProperties, }; use datafusion_common::{exec_err, internal_datafusion_err, DataFusionError, Result}; use futures::{Stream, StreamExt}; @@ -39,7 +40,8 @@ impl ShowStringExec { let properties = PlanProperties::new( EquivalenceProperties::new(schema.clone()), Partitioning::RoundRobinBatch(1), - ExecutionMode::Bounded, + input.pipeline_behavior(), // [CHECK HERE] DON'T MERGE IN UNTIL VALIDATING!! + Boundedness::Bounded, ); Self { input, diff --git a/crates/sail-plan/src/function/scalar/json.rs b/crates/sail-plan/src/function/scalar/json.rs index a7f431d7..038494ce 100644 --- a/crates/sail-plan/src/function/scalar/json.rs +++ b/crates/sail-plan/src/function/scalar/json.rs @@ -1,52 +1,54 @@ -use datafusion_common::ScalarValue; -use datafusion_expr::{expr, lit}; -use datafusion_functions_json::udfs; +// use datafusion_common::ScalarValue; +// use datafusion_expr::{expr, lit}; +// use datafusion_functions_json::udfs; -use crate::error::PlanResult; -use crate::function::common::{Function, FunctionContext}; -use crate::utils::ItemTaker; +// use crate::error::PlanResult; +use crate::function::common::Function; +// use crate::utils::ItemTaker; -fn get_json_object( - args: Vec, - _function_context: &FunctionContext, -) -> PlanResult { - // > 1 path means nested access e.g. json_as_text(json, p1, p2) => json.p1.p2 - let (expr, paths) = args.at_least_one()?; - let paths: Vec = paths - .into_iter() - .map(|path| match &path { - expr::Expr::Literal(ScalarValue::Utf8(Some(value))) => { - if value.starts_with("$") { - let nth = if value.starts_with("$.") { 2 } else { 1 }; - let index = value - .char_indices() - .nth(nth) - .map(|(idx, _)| idx) - .unwrap_or(value.len()); - lit(ScalarValue::Utf8(Some(value[index..].to_string()))) - } else { - path - } - } - _ => path, - }) - .collect(); - let mut args = Vec::with_capacity(1 + paths.len()); - args.push(expr); - args.extend(paths); - Ok(expr::Expr::ScalarFunction(expr::ScalarFunction { - func: udfs::json_as_text_udf(), - args, - })) -} +// fn get_json_object( +// args: Vec, +// _function_context: &FunctionContext, +// ) -> PlanResult { +// // > 1 path means nested access e.g. json_as_text(json, p1, p2) => json.p1.p2 +// let (expr, paths) = args.at_least_one()?; +// let paths: Vec = paths +// .into_iter() +// .map(|path| match &path { +// expr::Expr::Literal(ScalarValue::Utf8(Some(value))) => { +// if value.starts_with("$") { +// let nth = if value.starts_with("$.") { 2 } else { 1 }; +// let index = value +// .char_indices() +// .nth(nth) +// .map(|(idx, _)| idx) +// .unwrap_or(value.len()); +// lit(ScalarValue::Utf8(Some(value[index..].to_string()))) +// } else { +// path +// } +// } +// _ => path, +// }) +// .collect(); +// let mut args = Vec::with_capacity(1 + paths.len()); +// args.push(expr); +// args.extend(paths); +// Ok(expr::Expr::ScalarFunction(expr::ScalarFunction { +// func: udfs::json_as_text_udf(), +// args, +// })) +// } pub(super) fn list_built_in_json_functions() -> Vec<(&'static str, Function)> { use crate::function::common::FunctionBuilder as F; vec![ ("from_json", F::unknown("from_json")), - ("get_json_object", F::custom(get_json_object)), - ("json_array_length", F::scalar_udf(udfs::json_length_udf)), + // ("get_json_object", F::custom(get_json_object)), + // ("json_array_length", F::scalar_udf(udfs::json_length_udf)), + ("get_json_object", F::unknown("get_json_object")), + ("json_array_length", F::unknown("json_array_length")), ("json_object_keys", F::unknown("json_object_keys")), ("json_tuple", F::unknown("json_tuple")), ("schema_of_json", F::unknown("schema_of_json")), diff --git a/crates/sail-plan/src/resolver/expression.rs b/crates/sail-plan/src/resolver/expression.rs index 0cb47e18..d61c94d5 100644 --- a/crates/sail-plan/src/resolver/expression.rs +++ b/crates/sail-plan/src/resolver/expression.rs @@ -968,12 +968,12 @@ impl PlanResolver<'_> { let target: Vec = target.into(); expr::Expr::Wildcard { qualifier: Some(target.join(".").into()), - options: wildcard_options, + options: Box::new(wildcard_options), } } else { expr::Expr::Wildcard { qualifier: None, - options: wildcard_options, + options: Box::new(wildcard_options), } }; Ok(NamedExpr::new(vec!["*".to_string()], expr)) diff --git a/crates/sail-spark-connect/tests/gold_data/function/json.json b/crates/sail-spark-connect/tests/gold_data/function/json.json index 5749f76c..4a3d2449 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/json.json +++ b/crates/sail-spark-connect/tests/gold_data/function/json.json @@ -147,7 +147,7 @@ } }, "output": { - "success": "ok" + "failure": "not implemented: function: get_json_object" } }, { @@ -169,7 +169,7 @@ } }, "output": { - "success": "ok" + "failure": "not implemented: function: json_array_length" } }, { @@ -191,7 +191,7 @@ } }, "output": { - "success": "ok" + "failure": "not implemented: function: json_array_length" } }, { @@ -213,7 +213,7 @@ } }, "output": { - "success": "ok" + "failure": "not implemented: function: json_array_length" } }, { diff --git a/crates/sail-sql/src/utils.rs b/crates/sail-sql/src/utils.rs index 29e955f7..a389b0fd 100644 --- a/crates/sail-sql/src/utils.rs +++ b/crates/sail-sql/src/utils.rs @@ -1,4 +1,4 @@ -use datafusion::sql::sqlparser::ast as df_ast; +use datafusion::sql::sqlparser::{ast as df_ast, tokenizer as df_tokenizer}; use sail_common::spec; use sqlparser::ast; @@ -104,9 +104,16 @@ pub fn to_datafusion_ast_object_name(object_name: &ast::ObjectName) -> df_ast::O object_name .0 .iter() - .map(|ident| df_ast::Ident { - value: ident.value.clone(), - quote_style: ident.quote_style, + .map(|ident| { + let start = + df_tokenizer::Location::new(ident.span.start.line, ident.span.start.column); + let end = df_tokenizer::Location::new(ident.span.end.line, ident.span.end.column); + let span = df_tokenizer::Span::new(start, end); + df_ast::Ident { + value: ident.value.clone(), + quote_style: ident.quote_style, + span, + } }) .collect(), ) From e6f15b7344d353c2628b0cff2f73e76f2d5039d8 Mon Sep 17 00:00:00 2001 From: Shehab <11789402+shehabgamin@users.noreply.github.com> Date: Wed, 8 Jan 2025 21:22:51 -0800 Subject: [PATCH 8/9] [spark tests] --- crates/sail-plan/src/resolver/literal.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/sail-plan/src/resolver/literal.rs b/crates/sail-plan/src/resolver/literal.rs index 6f5856ad..57d2c863 100644 --- a/crates/sail-plan/src/resolver/literal.rs +++ b/crates/sail-plan/src/resolver/literal.rs @@ -10,7 +10,7 @@ use datafusion::arrow::array::{ use datafusion::arrow::buffer::OffsetBuffer; use datafusion::arrow::datatypes as adt; use datafusion_common::scalar::ScalarStructBuilder; -use datafusion_common::utils::{array_into_fixed_size_list_array, array_into_large_list_array}; +use datafusion_common::utils::SingleRowListArrayBuilder; use datafusion_common::ScalarValue; use sail_common::spec::{self, Literal}; @@ -259,7 +259,8 @@ impl PlanResolver<'_> { })? }; Ok(ScalarValue::FixedSizeList(Arc::new( - array_into_fixed_size_list_array(scalars, length as usize), + SingleRowListArrayBuilder::new(scalars) + .build_fixed_size_list_array(length as usize), ))) } else { let data_type = adt::DataType::FixedSizeList( @@ -288,7 +289,7 @@ impl PlanResolver<'_> { })? }; Ok(ScalarValue::LargeList(Arc::new( - array_into_large_list_array(scalars), + SingleRowListArrayBuilder::new(scalars).build_large_list_array(), ))) } else { let data_type = adt::DataType::LargeList( From a0afff936f0bdc35d9550c58beb4b572b66baa55 Mon Sep 17 00:00:00 2001 From: Shehab <11789402+shehabgamin@users.noreply.github.com> Date: Wed, 8 Jan 2025 21:33:42 -0800 Subject: [PATCH 9/9] [spark tests] --- crates/sail-plan/src/function/scalar/json.rs | 2 -- .../sail-spark-connect/tests/gold_data/function/json.json | 8 ++++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/crates/sail-plan/src/function/scalar/json.rs b/crates/sail-plan/src/function/scalar/json.rs index 91ebea90..a7f431d7 100644 --- a/crates/sail-plan/src/function/scalar/json.rs +++ b/crates/sail-plan/src/function/scalar/json.rs @@ -47,8 +47,6 @@ pub(super) fn list_built_in_json_functions() -> Vec<(&'static str, Function)> { ("from_json", F::unknown("from_json")), ("get_json_object", F::custom(get_json_object)), ("json_array_length", F::scalar_udf(udfs::json_length_udf)), - ("get_json_object", F::unknown("get_json_object")), - ("json_array_length", F::unknown("json_array_length")), ("json_object_keys", F::unknown("json_object_keys")), ("json_tuple", F::unknown("json_tuple")), ("schema_of_json", F::unknown("schema_of_json")), diff --git a/crates/sail-spark-connect/tests/gold_data/function/json.json b/crates/sail-spark-connect/tests/gold_data/function/json.json index 4a3d2449..5749f76c 100644 --- a/crates/sail-spark-connect/tests/gold_data/function/json.json +++ b/crates/sail-spark-connect/tests/gold_data/function/json.json @@ -147,7 +147,7 @@ } }, "output": { - "failure": "not implemented: function: get_json_object" + "success": "ok" } }, { @@ -169,7 +169,7 @@ } }, "output": { - "failure": "not implemented: function: json_array_length" + "success": "ok" } }, { @@ -191,7 +191,7 @@ } }, "output": { - "failure": "not implemented: function: json_array_length" + "success": "ok" } }, { @@ -213,7 +213,7 @@ } }, "output": { - "failure": "not implemented: function: json_array_length" + "success": "ok" } }, {