From 748835cdcbee99476f954eac317f8c7cbf3ef36d Mon Sep 17 00:00:00 2001 From: xxchan Date: Thu, 19 Sep 2024 20:37:11 +0800 Subject: [PATCH] revert upgrade --- Cargo.lock | 293 +++++++++--------- Cargo.toml | 18 +- src/common/Cargo.toml | 20 +- src/common/src/array/arrow/arrow_48.rs | 23 ++ src/common/src/array/arrow/arrow_50.rs | 23 ++ src/common/src/array/arrow/arrow_52.rs | 5 +- src/common/src/array/arrow/arrow_deltalake.rs | 12 +- src/common/src/array/arrow/arrow_iceberg.rs | 8 +- src/common/src/array/arrow/arrow_udf.rs | 7 +- src/common/src/array/arrow/mod.rs | 17 +- src/expr/core/src/aggregate/user_defined.rs | 2 +- src/expr/core/src/expr/expr_udf.rs | 2 +- .../core/src/table_function/user_defined.rs | 2 +- 13 files changed, 230 insertions(+), 202 deletions(-) create mode 100644 src/common/src/array/arrow/arrow_48.rs create mode 100644 src/common/src/array/arrow/arrow_50.rs diff --git a/Cargo.lock b/Cargo.lock index b434a322edf67..9aa3a6d97fd05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -609,23 +609,22 @@ dependencies = [ [[package]] name = "arrow-flight" -version = "52.0.0" +version = "50.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdd624aafd1f34710a1d6ed44ea0e9b06f7b75adc4277c53bac4a2d23229030b" +checksum = "1d7f215461ad6346f2e4cc853e377d4e076d533e1ed78d327debe83023e3601f" dependencies = [ - "arrow-array 52.0.0", - "arrow-buffer 52.0.0", - "arrow-cast 52.0.0", - "arrow-ipc 52.0.0", - "arrow-schema 52.0.0", - "base64 0.22.0", + "arrow-array 50.0.0", + "arrow-buffer 50.0.0", + "arrow-cast 50.0.0", + "arrow-ipc 50.0.0", + "arrow-schema 50.0.0", + "base64 0.21.7", "bytes", "futures", "paste", "prost 0.12.6", - "prost-types 0.12.6", "tokio", - "tonic 0.11.0", + "tonic 0.10.2", ] [[package]] @@ -894,26 +893,26 @@ dependencies = [ [[package]] name = "arrow-udf-flight" -version = "0.3.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fbd8c05d6c16cccfc762bc865ff40fdb73cad6776a7ec14b65973f83e19074" +checksum = "4adb3a066bd22fb520bc3d040d9d59ee54f320c21faeb6df815ea20445c80c54" dependencies = [ - "arrow-array 52.0.0", + "arrow-array 50.0.0", "arrow-flight", - "arrow-schema 52.0.0", - "arrow-select 52.0.0", + "arrow-schema 50.0.0", + "arrow-select 50.0.0", "futures-util", "thiserror", "tokio", - "tonic 0.11.0", + "tonic 0.10.2", "tracing", ] [[package]] name = "arrow-udf-js" -version = "0.4.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e09de178aed1119c14dab54def3bd9d383dfdb84f1af467bb0fbf0b64a88b04" +checksum = "ca8643b9768c9ce56a0e1a6813e846af5e6363ca8c19dddb9a5e182a669b8a19" dependencies = [ "anyhow", "arrow-array 52.0.0", @@ -925,24 +924,25 @@ dependencies = [ [[package]] name = "arrow-udf-python" -version = "0.3.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd364e0016acc32928c7e00a768f5fa6339ae8a243052fd3d354639d57b08aa" +checksum = "b10552a68263aa4b80139636cc5c31e4f5cab4e4e6f39e5ac8123c9b32c9cb72" dependencies = [ "anyhow", "arrow-array 52.0.0", "arrow-buffer 52.0.0", "arrow-ipc 52.0.0", "arrow-schema 52.0.0", + "lazy_static", "pyo3", "pyo3-build-config", ] [[package]] name = "arrow-udf-wasm" -version = "0.3.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e322a311a82351c980de6ac3e4a74fcd483d3591096411242208632e1b7acab" +checksum = "eb829e25925161d93617d4b053bae03fe51e708f2cce088d85df856011d4f369" dependencies = [ "anyhow", "arrow-array 52.0.0", @@ -951,7 +951,7 @@ dependencies = [ "async-trait", "base64 0.22.0", "genawaiter", - "once_cell", + "lazy_static", "tempfile", "wasi-common", "wasmtime", @@ -2828,12 +2828,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "cobs" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" - [[package]] name = "colorchoice" version = "1.0.0" @@ -3045,18 +3039,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6b33d7e757a887989eb18b35712b2a67d96171ec3149d1bfb657b29b7b367c" +checksum = "ebf72ceaf38f7d41194d0cf6748214d8ef7389167fe09aad80f87646dbfa325b" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9acf15cb22be42d07c3b57d7856329cb228b7315d385346149df2566ad5e4aa" +checksum = "9ee7fde5cd9173f00ce02c491ee9e306d64740f4b1a697946e0474f389999e13" dependencies = [ "bumpalo", "cranelift-bforest", @@ -3069,40 +3063,39 @@ dependencies = [ "hashbrown 0.14.3", "log", "regalloc2", - "rustc-hash", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e934d301392b73b3f8b0540391fb82465a0f179a3cee7c726482ac4727efcc97" +checksum = "b49bec6a517e78d4067500dc16acb558e772491a2bcb37301127448adfb8413c" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb2a2566b3d54b854dfb288b3b187f6d3d17d6f762c92898207eba302931da" +checksum = "ead4ea497b2dc2ac31fcabd6d5d0d5dc25b3964814122e343724bdf65a53c843" [[package]] name = "cranelift-control" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0100f33b704cdacd01ad66ff41f8c5030d57cbff078e2a4e49ab1822591299fa" +checksum = "f81e8028c8d711ea7592648e70221f2e54acb8665f7ecd49545f021ec14c3341" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8cfdc315e5d18997093e040a8d234bea1ac1e118a716d3e30f40d449e78207b" +checksum = "32acd0632ba65c2566e75f64af9ef094bb8d90e58a9fbd33d920977a9d85c054" dependencies = [ "serde", "serde_derive", @@ -3110,9 +3103,9 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f74b84f16af2e982b0c0c72233503d9d55cbfe3865dbe807ca28dc6642a28b5" +checksum = "a395a704934aa944ba8939cac9001174b9ae5236f48bc091f89e33bb968336f6" dependencies = [ "cranelift-codegen", "log", @@ -3122,15 +3115,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf306d3dde705fb94bd48082f01d38c4ededc74293a4c007805f610bf08bc6e" +checksum = "b325ce81c4ee7082dc894537eb342c37898e14230fe7c02ea945691db3e2dd01" [[package]] name = "cranelift-native" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea0ebdef7aff4a79bcbc8b6495f31315f16b3bf311152f472eaa8d679352581" +checksum = "ea11f5ac85996fa093075d66397922d4f56085d5d84ec13043d0cd4f159c6818" dependencies = [ "cranelift-codegen", "libc", @@ -3139,9 +3132,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.109.0" +version = "0.107.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d549108a1942065cdbac3bb96c2952afa0e1b9a3beff4b08c4308ac72257576d" +checksum = "e4f175d4e299a8edabfbd64fa93c7650836cc8ad7f4879f9bd2632575a1f12d0" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -4331,18 +4324,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "embedded-io" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" - -[[package]] -name = "embedded-io" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" - [[package]] name = "encode_unicode" version = "0.3.6" @@ -5607,7 +5588,6 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ "ahash 0.8.11", "allocator-api2", - "serde", ] [[package]] @@ -6097,7 +6077,7 @@ dependencies = [ "log", "murmur3", "once_cell", - "opendal 0.47.2", + "opendal 0.49.0", "ordered-float 3.9.1", "parquet 52.0.0", "prometheus", @@ -7849,9 +7829,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.4" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "d8dd6c0cdf9429bce006e1362bfce61fa1bfd8c898a643ed8d2b471934701d3d" dependencies = [ "crc32fast", "hashbrown 0.14.3", @@ -7928,7 +7908,6 @@ dependencies = [ "md-5", "once_cell", "percent-encoding", - "prometheus", "quick-xml 0.31.0", "reqsign 0.15.2", "reqwest 0.12.4", @@ -7960,6 +7939,7 @@ dependencies = [ "md-5", "once_cell", "percent-encoding", + "prometheus", "quick-xml 0.36.1", "reqsign 0.16.0", "reqwest 0.12.4", @@ -8769,18 +8749,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" -[[package]] -name = "postcard" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7f0a8d620d71c457dd1d47df76bb18960378da56af4527aaa10f515eee732e" -dependencies = [ - "cobs", - "embedded-io 0.4.0", - "embedded-io 0.6.1", - "serde", -] - [[package]] name = "postgres-derive" version = "0.4.5" @@ -10289,12 +10257,16 @@ dependencies = [ "anyhow", "arc-swap", "arrow-array 48.0.1", + "arrow-array 50.0.0", "arrow-array 52.0.0", "arrow-buffer 48.0.1", + "arrow-buffer 50.0.0", "arrow-buffer 52.0.0", "arrow-cast 48.0.1", + "arrow-cast 50.0.0", "arrow-cast 52.0.0", "arrow-schema 48.0.1", + "arrow-schema 50.0.0", "arrow-schema 52.0.0", "async-trait", "auto_enums", @@ -15170,9 +15142,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi-common" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b86fd41e1e26ff6af9451c6a332a5ce5f5283ca51e87d875cdd9a05305598ee3" +checksum = "a50088539152d419200c1558482c23b7033b9c5e0c751e97d4338050669ff9f1" dependencies = [ "anyhow", "bitflags 2.6.0", @@ -15268,9 +15240,9 @@ checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasm-encoder" -version = "0.209.1" +version = "0.202.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4a05336882dae732ce6bd48b7e11fe597293cb72c13da4f35d7d5f8d53b2a7" +checksum = "bfd106365a7f5f7aa3c1916a98cbb3ad477f5ff96ddb130285a91c6e7429e67a" dependencies = [ "leb128", ] @@ -15312,23 +15284,20 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.209.1" +version = "0.202.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07035cc9a9b41e62d3bb3a3815a66ab87c993c06fe1cf6b2a3f2a18499d937db" +checksum = "d6998515d3cf3f8b980ef7c11b29a9b1017d4cf86b99ae93b546992df9931413" dependencies = [ - "ahash 0.8.11", "bitflags 2.6.0", - "hashbrown 0.14.3", "indexmap 2.2.6", "semver 1.0.18", - "serde", ] [[package]] name = "wasmprinter" -version = "0.209.1" +version = "0.202.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceca8ae6eaa8c7c87b33c25c53bdf299f8c2a764aee1179402ff7652ef3a6859" +checksum = "ab1cc9508685eef9502e787f4d4123745f5651a1e29aec047645d3cac1e2da7a" dependencies = [ "anyhow", "wasmparser", @@ -15336,45 +15305,35 @@ dependencies = [ [[package]] name = "wasmtime" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786d8b5e7a4d54917c5ebe555b9667337e5f93383f49bddaaeec2eba68093b45" +checksum = "4af5cb32045daee8476711eb12b8b71275c2dd1fc7a58cc2a11b33ce9205f6a2" dependencies = [ "addr2line", "anyhow", "async-trait", + "bincode 1.3.3", "bumpalo", - "cc", "cfg-if", "encoding_rs", "fxprof-processed-profile", "gimli", - "hashbrown 0.14.3", "indexmap 2.2.6", "ittapi", "libc", - "libm", "log", - "mach2", - "memfd", - "memoffset", - "object 0.36.4", + "object 0.33.0", "once_cell", "paste", - "postcard", - "psm", "rayon", "rustix 0.38.31", "semver 1.0.18", "serde", "serde_derive", "serde_json", - "smallvec", - "sptr", "target-lexicon", - "wasm-encoder 0.209.1", + "wasm-encoder 0.202.0", "wasmparser", - "wasmtime-asm-macros", "wasmtime-cache", "wasmtime-component-macro", "wasmtime-component-util", @@ -15383,8 +15342,8 @@ dependencies = [ "wasmtime-fiber", "wasmtime-jit-debug", "wasmtime-jit-icache-coherence", + "wasmtime-runtime", "wasmtime-slab", - "wasmtime-versioned-export-macros", "wasmtime-winch", "wat", "windows-sys 0.52.0", @@ -15392,24 +15351,24 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d697d99c341d4a9ffb72f3af7a02124d233eeb59aee010f36d88e97cca553d5e" +checksum = "7515c4d24c8b55c0feab67e3d52a42f999fda8b9cfafbd69a82ed6bcf299d26e" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916610f9ae9a6c22deb25bba2e6247ba9f00b093d30620875203b91328a1adfa" +checksum = "c3aa2de7189ea6b3270727d0027790494aec5e7101ca50da3f9549a86628cae4" dependencies = [ "anyhow", "base64 0.21.7", + "bincode 1.3.3", "directories-next", "log", - "postcard", "rustix 0.38.31", "serde", "serde_derive", @@ -15421,9 +15380,9 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b29b462b068e73b5b27fae092a27f47e5937cabf6b26be2779c978698a52feca" +checksum = "794839a710a39a12677c67ff43fec54ef00d0ca6c6f631209a7c5524522221d3" dependencies = [ "anyhow", "proc-macro2", @@ -15436,15 +15395,15 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d2912c53d9054984b380dfbd7579f9c3681b2a73b903a56bd71a1c4f175f1e" +checksum = "7839a1b9e15d17be1cb2a105f18be8e0bbf52bdec7a7cd6eb5d80d4c2cdf74f0" [[package]] name = "wasmtime-cranelift" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3975deafea000457ba84355c7c0fce0372937204f77026510b7b454f28a3a65" +checksum = "57ec2d9a4b9990bea53a5dfd689d48663dbd19a46903eaf73e2022b3d1ef20d3" dependencies = [ "anyhow", "cfg-if", @@ -15456,7 +15415,7 @@ dependencies = [ "cranelift-wasm", "gimli", "log", - "object 0.36.4", + "object 0.33.0", "target-lexicon", "thiserror", "wasmparser", @@ -15466,23 +15425,24 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f444e900e848b884d8a8a2949b6f5b92af642a3e663ff8fbe78731143a55be61" +checksum = "ad72e2e3f7ea5b50fedf66dd36ba24634e4f445c370644683b433d45d88f6126" dependencies = [ "anyhow", + "bincode 1.3.3", "cpp_demangle", "cranelift-entity", "gimli", "indexmap 2.2.6", "log", - "object 0.36.4", - "postcard", + "object 0.33.0", "rustc-demangle", "serde", "serde_derive", "target-lexicon", - "wasm-encoder 0.209.1", + "thiserror", + "wasm-encoder 0.202.0", "wasmparser", "wasmprinter", "wasmtime-component-util", @@ -15491,9 +15451,9 @@ dependencies = [ [[package]] name = "wasmtime-fiber" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ded58eb2d1bf0dcd2182d0ccd7055c4b10b50d711514f1d73f61515d0fa829d" +checksum = "4dbdf3053e7e7ced0cd4ed76579995b62169a1a43696890584eae2de2e33bf54" dependencies = [ "anyhow", "cc", @@ -15506,11 +15466,11 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bc54198c6720f098210a85efb3ba8c078d1de4d373cdb6778850a66ae088d11" +checksum = "983ca409f2cd66385ce49486c022da0128acb7910c055beb5230998b49c6084c" dependencies = [ - "object 0.36.4", + "object 0.33.0", "once_cell", "rustix 0.38.31", "wasmtime-versioned-export-macros", @@ -15518,40 +15478,69 @@ dependencies = [ [[package]] name = "wasmtime-jit-icache-coherence" -version = "22.0.0" +version = "20.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ede45379f3b4d395d8947006de8043801806099a240a26db553919b68e96ab15" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "wasmtime-runtime" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5afe2f0499542f9a4bcfa1b55bfdda803b6ade4e7c93c6b99e0f39dba44b0a91" +checksum = "65019d29d175c567b84173f2adf3b7a3af6d5592f8fe510dccae55d2569ec0d2" dependencies = [ "anyhow", + "cc", "cfg-if", + "encoding_rs", + "indexmap 2.2.6", "libc", + "log", + "mach2", + "memfd", + "memoffset", + "paste", + "psm", + "rustix 0.38.31", + "sptr", + "wasm-encoder 0.202.0", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-fiber", + "wasmtime-jit-debug", + "wasmtime-slab", + "wasmtime-versioned-export-macros", "windows-sys 0.52.0", ] [[package]] name = "wasmtime-slab" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a7de1f2bec5bbb35d532e61c85c049dc84ae671df60492f90b954ecf21169e7" +checksum = "ca6585868f5c427c3e9d2a8c0c3354e6d7d4518a0d17723ab25a0c1eebf5d5b4" [[package]] name = "wasmtime-types" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "412463e9000e14cf6856be48628d2213c20c153e29ffc22b036980c892ea6964" +checksum = "84d5381ff174faded38c7b2085fbe430dff59489c87a91403354d710075750fb" dependencies = [ "cranelift-entity", "serde", "serde_derive", - "smallvec", + "thiserror", "wasmparser", ] [[package]] name = "wasmtime-versioned-export-macros" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5a9bc4f44ceeb168e9e8e3be4e0b4beb9095b468479663a9e24c667e36826f" +checksum = "0d3b70422fdfa915c903f003b8b42554a8ae1aa0c6208429d8314ebf5721f3ac" dependencies = [ "proc-macro2", "quote", @@ -15560,14 +15549,14 @@ dependencies = [ [[package]] name = "wasmtime-winch" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed4db238a0241df2d15f79ad17b3a37a27f2ea6cb885894d81b42ae107544466" +checksum = "996360967b5196dec20ddcfce499ce4dc80cc925c088b0f2b376d29b96833a6a" dependencies = [ "anyhow", "cranelift-codegen", "gimli", - "object 0.36.4", + "object 0.33.0", "target-lexicon", "wasmparser", "wasmtime-cranelift", @@ -15577,9 +15566,9 @@ dependencies = [ [[package]] name = "wasmtime-wit-bindgen" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc077306b38288262e5ba01d4b21532a6987416cdc0aedf04bb06c22a68fdc" +checksum = "01840c0cfbbb01664c796e3f4edbd656e58f9d76db083c7e7c6bba59ea657a96" dependencies = [ "anyhow", "heck 0.4.1", @@ -15690,9 +15679,9 @@ checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "wiggle" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29830e5d01c182d24b94092c697aa7ab0ee97d22e78a2bf40ca91eae6ebca5c2" +checksum = "f93fc3510978a905f931d74784ed8685bd6453e18ad8f92809e793d48827e3cd" dependencies = [ "anyhow", "async-trait", @@ -15705,9 +15694,9 @@ dependencies = [ [[package]] name = "wiggle-generate" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "557567f2793508760cd855f7659b7a0b9dc4dbc451f53f1415d6943a15311ade" +checksum = "4ec3909e70f36066526ad3b2abb4855ab836f8a6b293449582563ac50d651083" dependencies = [ "anyhow", "heck 0.4.1", @@ -15720,9 +15709,9 @@ dependencies = [ [[package]] name = "wiggle-macro" -version = "22.0.0" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc26129a8aea20b62c961d1b9ab4a3c3b56b10042ed85d004f8678af0f21ba6e" +checksum = "b4c31124572ab16401c491c0d4fb5fe5d17dab65fcfcc56d7d8efb1c1e56a3db" dependencies = [ "proc-macro2", "quote", @@ -15763,9 +15752,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winch-codegen" -version = "0.20.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c6915884e731b2db0d8cf08cb64474cb69221a161675fd3c135f91febc3daa" +checksum = "cefeb84a0f39227cf2eb665cf348e6150ebf3372d08adff03264064ab590fdf4" dependencies = [ "anyhow", "cranelift-codegen", @@ -16073,9 +16062,9 @@ dependencies = [ [[package]] name = "wit-parser" -version = "0.209.1" +version = "0.202.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e79b9e3c0b6bb589dec46317e645851e0db2734c44e2be5e251b03ff4a51269" +checksum = "744237b488352f4f27bca05a10acb79474415951c450e52ebd0da784c1df2bcc" dependencies = [ "anyhow", "id-arena", diff --git a/Cargo.toml b/Cargo.toml index c34b414ad0a7b..01123152d56da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -140,32 +140,18 @@ prost-build = { version = "0.13" } icelake = { git = "https://github.com/risingwavelabs/icelake.git", rev = "3f4724158acee37a4785f56670a1427993a58739", features = [ "prometheus", ] } -arrow-array-iceberg = { package = "arrow-array", version = "52" } -arrow-schema-iceberg = { package = "arrow-schema", version = "52" } -arrow-buffer-iceberg = { package = "arrow-buffer", version = "52" } -arrow-cast-iceberg = { package = "arrow-cast", version = "52" } + # branch dev iceberg = { git = "https://github.com/risingwavelabs/iceberg-rust.git", rev = "84bf51c9d0d5886e4ee306ca4f383f029e1767a4" } iceberg-catalog-rest = { git = "https://github.com/risingwavelabs/iceberg-rust.git", rev = "84bf51c9d0d5886e4ee306ca4f383f029e1767a4" } iceberg-catalog-glue = { git = "https://github.com/risingwavelabs/iceberg-rust.git", rev = "84bf51c9d0d5886e4ee306ca4f383f029e1767a4" } opendal = "0.47" -arrow-array = "50" -arrow-arith = "50" -arrow-cast = "50" -arrow-schema = "50" -arrow-buffer = "50" +# used only by arrow-udf-flight arrow-flight = "50" -arrow-select = "50" -arrow-ord = "50" -arrow-row = "50" arrow-udf-js = "0.3.1" arrow-udf-wasm = { version = "0.2.2", features = ["build"] } arrow-udf-python = "0.2" arrow-udf-flight = "0.1" -arrow-array-deltalake = { package = "arrow-array", version = "48.0.1" } -arrow-buffer-deltalake = { package = "arrow-buffer", version = "48.0.1" } -arrow-cast-deltalake = { package = "arrow-cast", version = "48.0.1" } -arrow-schema-deltalake = { package = "arrow-schema", version = "48.0.1" } clap = { version = "4", features = ["cargo", "derive", "env"] } # Use a forked version which removes the dependencies on dynamo db to reduce # compile time and binary size. diff --git a/src/common/Cargo.toml b/src/common/Cargo.toml index fdc2b6369f26f..58a4b9870dfaf 100644 --- a/src/common/Cargo.toml +++ b/src/common/Cargo.toml @@ -17,14 +17,18 @@ normal = ["workspace-hack"] ahash = "0.8" anyhow = "1" arc-swap = "1" -arrow-52-array = { workspace = true } -arrow-52-buffer = { workspace = true } -arrow-52-cast = { workspace = true } -arrow-52-schema = { workspace = true } -arrow-array-deltalake = { workspace = true } -arrow-buffer-deltalake = { workspace = true } -arrow-cast-deltalake = { workspace = true } -arrow-schema-deltalake = { workspace = true } +arrow-48-array = { package = "arrow-array", version = "48" } +arrow-48-buffer = { package = "arrow-buffer", version = "48" } +arrow-48-cast = { package = "arrow-cast", version = "48" } +arrow-48-schema = { package = "arrow-schema", version = "48" } +arrow-50-array = { package = "arrow-array", version = "50" } +arrow-50-buffer = { package = "arrow-buffer", version = "50" } +arrow-50-cast = { package = "arrow-cast", version = "50" } +arrow-50-schema = { package = "arrow-schema", version = "50" } +arrow-52-array = { package = "arrow-array", version = "52" } +arrow-52-buffer = { package = "arrow-buffer", version = "52" } +arrow-52-cast = { package = "arrow-cast", version = "52" } +arrow-52-schema = { package = "arrow-schema", version = "52" } async-trait = "0.1" auto_enums = { workspace = true } auto_impl = "1" diff --git a/src/common/src/array/arrow/arrow_48.rs b/src/common/src/array/arrow/arrow_48.rs new file mode 100644 index 0000000000000..6f7333b0e70c1 --- /dev/null +++ b/src/common/src/array/arrow/arrow_48.rs @@ -0,0 +1,23 @@ +// Copyright 2024 RisingWave Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#[allow(clippy::duplicate_mod)] +#[path = "./arrow_impl.rs"] +mod arrow_impl; +type ArrowIntervalType = i128; +pub use arrow_impl::{FromArrow, ToArrow}; +pub use { + arrow_48_array as arrow_array, arrow_48_buffer as arrow_buffer, arrow_48_cast as arrow_cast, + arrow_48_schema as arrow_schema, +}; diff --git a/src/common/src/array/arrow/arrow_50.rs b/src/common/src/array/arrow/arrow_50.rs new file mode 100644 index 0000000000000..17b5328806ce6 --- /dev/null +++ b/src/common/src/array/arrow/arrow_50.rs @@ -0,0 +1,23 @@ +// Copyright 2024 RisingWave Labs +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#[allow(clippy::duplicate_mod)] +#[path = "./arrow_impl.rs"] +mod arrow_impl; +type ArrowIntervalType = i128; +pub use arrow_impl::{FromArrow, ToArrow}; +pub use { + arrow_50_array as arrow_array, arrow_50_buffer as arrow_buffer, arrow_50_cast as arrow_cast, + arrow_50_schema as arrow_schema, +}; diff --git a/src/common/src/array/arrow/arrow_52.rs b/src/common/src/array/arrow/arrow_52.rs index 6a5a4555e38cb..1590366e1281b 100644 --- a/src/common/src/array/arrow/arrow_52.rs +++ b/src/common/src/array/arrow/arrow_52.rs @@ -12,11 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. +#[allow(clippy::duplicate_mod)] #[path = "./arrow_impl.rs"] mod arrow_impl; -use arrow_buffer::IntervalMonthDayNano as ArrowIntervalType; +type ArrowIntervalType = arrow_buffer::IntervalMonthDayNano; pub use arrow_impl::{FromArrow, ToArrow}; -use { +pub use { arrow_52_array as arrow_array, arrow_52_buffer as arrow_buffer, arrow_52_cast as arrow_cast, arrow_52_schema as arrow_schema, }; diff --git a/src/common/src/array/arrow/arrow_deltalake.rs b/src/common/src/array/arrow/arrow_deltalake.rs index 5584f89206bf2..f90e9946255a1 100644 --- a/src/common/src/array/arrow/arrow_deltalake.rs +++ b/src/common/src/array/arrow/arrow_deltalake.rs @@ -22,17 +22,11 @@ use std::sync::Arc; use arrow_array::ArrayRef; use num_traits::abs; -pub use { - arrow_array_deltalake as arrow_array, arrow_buffer_deltalake as arrow_buffer, - arrow_cast_deltalake as arrow_cast, arrow_schema_deltalake as arrow_schema, -}; -type ArrowIntervalType = i128; -use self::arrow_impl::ToArrow; +pub use super::arrow_48::{ + arrow_array, arrow_buffer, arrow_cast, arrow_schema, FromArrow, ToArrow, +}; use crate::array::{Array, ArrayError, DataChunk, Decimal, DecimalArray}; -#[expect(clippy::duplicate_mod)] -#[path = "./arrow_impl.rs"] -mod arrow_impl; pub struct DeltaLakeConvert; diff --git a/src/common/src/array/arrow/arrow_iceberg.rs b/src/common/src/array/arrow/arrow_iceberg.rs index 315b23a4807d5..0fecdac99e784 100644 --- a/src/common/src/array/arrow/arrow_iceberg.rs +++ b/src/common/src/array/arrow/arrow_iceberg.rs @@ -19,12 +19,10 @@ use std::sync::Arc; use arrow_array::ArrayRef; use num_traits::abs; -pub use { - arrow_52_array as arrow_array, arrow_52_buffer as arrow_buffer, arrow_52_cast as arrow_cast, - arrow_52_schema as arrow_schema, -}; -pub use super::arrow_52::{FromArrow, ToArrow}; +pub use super::arrow_52::{ + arrow_array, arrow_buffer, arrow_cast, arrow_schema, FromArrow, ToArrow, +}; use crate::array::{Array, ArrayError, ArrayImpl, DataChunk, DataType, DecimalArray}; use crate::types::StructType; diff --git a/src/common/src/array/arrow/arrow_udf.rs b/src/common/src/array/arrow/arrow_udf.rs index e59687a05be23..0a2e85785c772 100644 --- a/src/common/src/array/arrow/arrow_udf.rs +++ b/src/common/src/array/arrow/arrow_udf.rs @@ -20,12 +20,9 @@ use std::sync::Arc; -pub use { - arrow_52_array as arrow_array, arrow_52_buffer as arrow_buffer, arrow_52_cast as arrow_cast, - arrow_52_schema as arrow_schema, +pub use super::arrow_50::{ + arrow_array, arrow_buffer, arrow_cast, arrow_schema, FromArrow, ToArrow, }; - -pub use super::arrow_52::{FromArrow, ToArrow}; use crate::array::{ArrayError, ArrayImpl, DataType, DecimalArray, JsonbArray}; /// Arrow conversion for UDF. diff --git a/src/common/src/array/arrow/mod.rs b/src/common/src/array/arrow/mod.rs index a43d306f926a3..ade14a5948d2f 100644 --- a/src/common/src/array/arrow/mod.rs +++ b/src/common/src/array/arrow/mod.rs @@ -12,31 +12,44 @@ // See the License for the specific language governing permissions and // limitations under the License. +// These mods imports arrow_impl.rs to provide FromArrow, ToArrow traits for corresponding arrow versions, +// and the default From/To implementations. +mod arrow_48; +mod arrow_50; mod arrow_52; +// These mods import mods above and may override some methods. mod arrow_deltalake; mod arrow_iceberg; mod arrow_udf; pub use arrow_deltalake::DeltaLakeConvert; pub use arrow_iceberg::{IcebergArrowConvert, IcebergCreateTableArrowConvert}; -pub use arrow_udf::{FromArrow, ToArrow, UdfArrowConvert}; +pub use arrow_udf::UdfArrowConvert; pub use reexport::*; +/// For other RisingWave crates, they can directly use arrow re-exported here, without adding +/// `arrow` dependencies in their `Cargo.toml`. And they don't need to care about the version. mod reexport { pub use super::arrow_deltalake::{ arrow_array as arrow_array_deltalake, arrow_buffer as arrow_buffer_deltalake, arrow_cast as arrow_cast_deltalake, arrow_schema as arrow_schema_deltalake, + FromArrow as DeltaLakeFromArrow, ToArrow as DeltaLakeToArrow, }; pub use super::arrow_iceberg::{ arrow_array as arrow_array_iceberg, arrow_buffer as arrow_buffer_iceberg, arrow_cast as arrow_cast_iceberg, arrow_schema as arrow_schema_iceberg, + FromArrow as IcebergFromArrow, ToArrow as IcebergToArrow, }; pub use super::arrow_udf::{ arrow_array as arrow_array_udf, arrow_buffer as arrow_buffer_udf, - arrow_cast as arrow_cast_udf, arrow_schema as arrow_schema_udf, + arrow_cast as arrow_cast_udf, arrow_schema as arrow_schema_udf, FromArrow as UdfFromArrow, + ToArrow as UdfToArrow, }; } use crate::types::Interval; +/// Arrow 52 changed the interval type from `i128` to `arrow_buffer::IntervalMonthDayNano`, so +/// we introduced this trait to customize the conversion in `arrow_impl.rs`. +/// We may delete this after all arrow versions are upgraded. trait ArrowIntervalTypeTrait { fn to_interval(self) -> Interval; fn from_interval(value: Interval) -> Self; diff --git a/src/expr/core/src/aggregate/user_defined.rs b/src/expr/core/src/aggregate/user_defined.rs index e63169da4aefb..2f4fdc5f9f9c5 100644 --- a/src/expr/core/src/aggregate/user_defined.rs +++ b/src/expr/core/src/aggregate/user_defined.rs @@ -17,7 +17,7 @@ use std::sync::Arc; use anyhow::Context; use risingwave_common::array::arrow::arrow_array_udf::ArrayRef; use risingwave_common::array::arrow::arrow_schema_udf::{Field, Fields, Schema, SchemaRef}; -use risingwave_common::array::arrow::{FromArrow, ToArrow, UdfArrowConvert}; +use risingwave_common::array::arrow::{UdfArrowConvert, UdfFromArrow, UdfToArrow}; use risingwave_common::array::Op; use risingwave_common::bitmap::Bitmap; use risingwave_pb::expr::PbUserDefinedFunctionMetadata; diff --git a/src/expr/core/src/expr/expr_udf.rs b/src/expr/core/src/expr/expr_udf.rs index 71a8cc4ce4460..6ae27dabb2458 100644 --- a/src/expr/core/src/expr/expr_udf.rs +++ b/src/expr/core/src/expr/expr_udf.rs @@ -19,7 +19,7 @@ use anyhow::Context; use await_tree::InstrumentAwait; use prometheus::{exponential_buckets, Registry}; use risingwave_common::array::arrow::arrow_schema_udf::{Fields, Schema, SchemaRef}; -use risingwave_common::array::arrow::{FromArrow, ToArrow, UdfArrowConvert}; +use risingwave_common::array::arrow::{UdfArrowConvert, UdfFromArrow, UdfToArrow}; use risingwave_common::array::{Array, ArrayRef, DataChunk}; use risingwave_common::metrics::*; use risingwave_common::monitor::GLOBAL_METRICS_REGISTRY; diff --git a/src/expr/core/src/table_function/user_defined.rs b/src/expr/core/src/table_function/user_defined.rs index 83841f355b1a9..b490e9b023af1 100644 --- a/src/expr/core/src/table_function/user_defined.rs +++ b/src/expr/core/src/table_function/user_defined.rs @@ -16,7 +16,7 @@ use std::sync::Arc; use anyhow::Context; use risingwave_common::array::arrow::arrow_schema_udf::{Fields, Schema, SchemaRef}; -use risingwave_common::array::arrow::{FromArrow, ToArrow, UdfArrowConvert}; +use risingwave_common::array::arrow::{UdfArrowConvert, UdfFromArrow, UdfToArrow}; use risingwave_common::array::I32Array; use risingwave_common::bail;