diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 49ba7a27a..fd4a93069 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,4 +1,5 @@ name: Ensure parseable builds on all release targets + on: pull_request: paths-ignore: @@ -6,6 +7,7 @@ on: - helm/** - assets/** - "**.md" + jobs: # Default build without Kafka build-default: @@ -15,25 +17,45 @@ jobs: fail-fast: false matrix: include: - # Linux builds + # Linux builds - x86_64 native, aarch64 cross-compile - os: ubuntu-latest target: x86_64-unknown-linux-gnu + use_cross: false - os: ubuntu-latest target: aarch64-unknown-linux-gnu - # macOS builds + use_cross: true + + # macOS builds - both native on macos-latest (M1) - os: macos-latest target: x86_64-apple-darwin + use_cross: false - os: macos-latest target: aarch64-apple-darwin + use_cross: false + # Windows build - os: windows-latest target: x86_64-pc-windows-msvc + use_cross: false + steps: - uses: actions/checkout@v4 + - name: Setup Rust toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@nightly with: targets: ${{ matrix.target }} + + - name: Install GCC 11 on Linux + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y gcc-11 g++-11 + + - name: Install cross + if: matrix.use_cross + run: cargo install cross --git https://github.com/cross-rs/cross + - name: Cache dependencies uses: actions/cache@v4 with: @@ -42,12 +64,20 @@ jobs: ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ matrix.target }}-default-${{ hashFiles('**/Cargo.lock') }} - - name: Build - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ runner.os == 'Linux' }} - command: build - args: --target ${{ matrix.target }} --release + + - name: Build with cross + if: matrix.use_cross + env: + CROSS_NO_WARNINGS: "0" + run: cross build --target ${{ matrix.target }} --release + + - name: Build native + if: ${{ !matrix.use_cross }} + env: + CC: ${{ runner.os == 'Linux' && 'gcc-11' || '' }} + CXX: ${{ runner.os == 'Linux' && 'g++-11' || '' }} + run: cargo build --target ${{ matrix.target }} --release + # Kafka build for supported platforms build-kafka: name: Build Kafka ${{matrix.target}} @@ -56,19 +86,40 @@ jobs: fail-fast: false matrix: include: - # Linux builds + # Linux x86_64 - native build - os: ubuntu-latest target: x86_64-unknown-linux-gnu + use_cross: false + + # Linux aarch64 - cross-compile + - os: ubuntu-latest + target: aarch64-unknown-linux-gnu + use_cross: true + + # macOS aarch64 - native on M1 - os: macos-latest target: aarch64-apple-darwin + use_cross: false + steps: - uses: actions/checkout@v4 - # Linux-specific dependencies - - name: Install Linux dependencies - if: runner.os == 'Linux' + + - name: Set up Docker Buildx + if: matrix.use_cross + uses: docker/setup-buildx-action@v3 + + - name: Set up QEMU for cross-arch builds + if: matrix.use_cross + uses: docker/setup-qemu-action@v3 + + # Linux-specific dependencies for native x86_64 build + - name: Install Linux dependencies (x86_64) + if: runner.os == 'Linux' && matrix.target == 'x86_64-unknown-linux-gnu' run: | sudo apt-get update sudo apt-get install -y \ + gcc-11 \ + g++-11 \ build-essential \ pkg-config \ cmake \ @@ -78,19 +129,8 @@ jobs: liblz4-dev \ libssl-dev \ libsasl2-dev \ - python3 \ - gcc-aarch64-linux-gnu \ - g++-aarch64-linux-gnu - # Install cross-compilation specific packages - if [ "${{ matrix.target }}" = "aarch64-unknown-linux-gnu" ]; then - sudo apt-get install -y \ - gcc-aarch64-linux-gnu \ - g++-aarch64-linux-gnu \ - libc6-dev-arm64-cross \ - libsasl2-dev:arm64 \ - libssl-dev:arm64 \ - pkg-config-aarch64-linux-gnu - fi + python3 + # macOS-specific dependencies - name: Install macOS dependencies if: runner.os == 'macOS' @@ -103,10 +143,16 @@ jobs: openssl@3.0 \ cyrus-sasl \ python3 + - name: Setup Rust toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@nightly with: targets: ${{ matrix.target }} + + - name: Install cross for aarch64 + if: matrix.use_cross + run: cargo install cross --git https://github.com/cross-rs/cross + - name: Cache dependencies uses: actions/cache@v4 with: @@ -115,8 +161,9 @@ jobs: ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ matrix.target }}-kafka-${{ hashFiles('**/Cargo.lock') }} + - name: Find and fix librdkafka CMakeLists.txt for Linux - if: runner.os == 'Linux' + if: runner.os == 'Linux' && !matrix.use_cross run: | cargo fetch # Find the rdkafka-sys package directory @@ -136,6 +183,7 @@ jobs: echo "Could not find librdkafka CMakeLists.txt file!" exit 1 fi + - name: Find and fix librdkafka CMakeLists.txt for macOS if: runner.os == 'macOS' run: | @@ -157,18 +205,35 @@ jobs: echo "Could not find librdkafka CMakeLists.txt file!" exit 1 fi - - name: Build with Kafka - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ runner.os == 'Linux' }} - command: build - args: --target ${{ matrix.target }} --features kafka --release + + - name: Build with Kafka (cross) - FIXED + if: matrix.use_cross env: - LIBRDKAFKA_SSL_VENDORED: 1 + LIBRDKAFKA_SSL_VENDORED: "1" PKG_CONFIG_ALLOW_CROSS: "1" - PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig - SASL2_DIR: /usr/lib/aarch64-linux-gnu - OPENSSL_DIR: /usr/lib/aarch64-linux-gnu - OPENSSL_ROOT_DIR: /usr/lib/aarch64-linux-gnu - OPENSSL_STATIC: "1" - SASL2_STATIC: "0" \ No newline at end of file + CROSS_NO_WARNINGS: "0" + RUST_BACKTRACE: "1" + + # Standard Debian multiarch paths for aarch64 + ZLIB_INCLUDE_DIR: "/usr/include" + ZLIB_LIBRARY: "/usr/lib/aarch64-linux-gnu/libz.so" + + OPENSSL_ROOT_DIR: "/usr" + OPENSSL_INCLUDE_DIR: "/usr/include" + OPENSSL_CRYPTO_LIBRARY: "/usr/lib/aarch64-linux-gnu/libcrypto.so" + OPENSSL_SSL_LIBRARY: "/usr/lib/aarch64-linux-gnu/libssl.so" + + PKG_CONFIG_PATH: "/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig" + run: | + echo "=== HOST ENV DEBUG ===" + env | grep -E 'ZLIB_|OPENSSL_|PKG_CONFIG|LIBRDKAFKA' + echo "=== NOW RUNNING CROSS BUILD (pre-build will show zlib paths) ===" + cross build --target ${{ matrix.target }} --features kafka --release --verbose + + - name: Build with Kafka (native) + if: ${{ !matrix.use_cross }} + env: + CC: ${{ runner.os == 'Linux' && 'gcc-11' || '' }} + CXX: ${{ runner.os == 'Linux' && 'g++-11' || '' }} + LIBRDKAFKA_SSL_VENDORED: "1" + run: cargo build --target ${{ matrix.target }} --features kafka --release diff --git a/Cargo.lock b/Cargo.lock index 3a739178a..c2371698d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -81,7 +81,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -121,7 +121,7 @@ dependencies = [ "futures-core", "futures-util", "mio", - "socket2", + "socket2 0.5.8", "tokio", "tracing", ] @@ -204,7 +204,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "smallvec", - "socket2", + "socket2 0.5.8", "time", "url", ] @@ -218,7 +218,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -289,7 +289,7 @@ dependencies = [ "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -322,12 +322,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -431,9 +425,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "arrow" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc208515aa0151028e464cc94a692156e945ce5126abd3537bb7fd6ba2143ed1" +checksum = "cb372a7cbcac02a35d3fb7b3fc1f969ec078e871f9bb899bf00a2e1809bec8a3" dependencies = [ "arrow-arith", "arrow-array", @@ -452,23 +446,23 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e07e726e2b3f7816a85c6a45b6ec118eeeabf0b2a8c208122ad949437181f49a" +checksum = "0f377dcd19e440174596d83deb49cd724886d91060c07fec4f67014ef9d54049" dependencies = [ "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", "chrono", - "num", + "num-traits", ] [[package]] name = "arrow-array" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2262eba4f16c78496adfd559a29fe4b24df6088efc9985a873d58e92be022d5" +checksum = "a23eaff85a44e9fa914660fb0d0bb00b79c4a3d888b5334adb3ea4330c84f002" dependencies = [ "ahash", "arrow-buffer", @@ -477,30 +471,34 @@ dependencies = [ "chrono", "chrono-tz", "half", - "hashbrown 0.15.2", - "num", + "hashbrown 0.16.0", + "num-complex", + "num-integer", + "num-traits", ] [[package]] name = "arrow-buffer" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e899dade2c3b7f5642eb8366cfd898958bcca099cde6dfea543c7e8d3ad88d4" +checksum = "a2819d893750cb3380ab31ebdc8c68874dd4429f90fd09180f3c93538bd21626" dependencies = [ "bytes", "half", - "num", + "num-bigint", + "num-traits", ] [[package]] name = "arrow-cast" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4103d88c5b441525ed4ac23153be7458494c2b0c9a11115848fdb9b81f6f886a" +checksum = "e3d131abb183f80c450d4591dc784f8d7750c50c6e2bc3fcaad148afc8361271" dependencies = [ "arrow-array", "arrow-buffer", "arrow-data", + "arrow-ord", "arrow-schema", "arrow-select", "atoi", @@ -509,15 +507,15 @@ dependencies = [ "comfy-table", "half", "lexical-core", - "num", + "num-traits", "ryu", ] [[package]] name = "arrow-csv" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d3cb0914486a3cae19a5cad2598e44e225d53157926d0ada03c20521191a65" +checksum = "2275877a0e5e7e7c76954669366c2aa1a829e340ab1f612e647507860906fb6b" dependencies = [ "arrow-array", "arrow-cast", @@ -525,27 +523,27 @@ dependencies = [ "chrono", "csv", "csv-core", - "lazy_static", "regex", ] [[package]] name = "arrow-data" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a329fb064477c9ec5f0870d2f5130966f91055c7c5bce2b3a084f116bc28c3b" +checksum = "05738f3d42cb922b9096f7786f606fcb8669260c2640df8490533bb2fa38c9d3" dependencies = [ "arrow-buffer", "arrow-schema", "half", - "num", + "num-integer", + "num-traits", ] [[package]] name = "arrow-flight" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7408f2bf3b978eddda272c7699f439760ebc4ac70feca25fefa82c5b8ce808d" +checksum = "8b5f57c3d39d1b1b7c1376a772ea86a131e7da310aed54ebea9363124bb885e3" dependencies = [ "arrow-array", "arrow-buffer", @@ -555,21 +553,23 @@ dependencies = [ "base64 0.22.1", "bytes", "futures", - "prost", + "prost 0.14.1", "prost-types", - "tonic 0.12.3", + "tonic 0.14.2", + "tonic-prost", ] [[package]] name = "arrow-ipc" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddecdeab02491b1ce88885986e25002a3da34dd349f682c7cfe67bab7cc17b86" +checksum = "3d09446e8076c4b3f235603d9ea7c5494e73d441b01cd61fb33d7254c11964b3" dependencies = [ "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", + "arrow-select", "flatbuffers", "lz4_flex", "zstd", @@ -577,9 +577,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b9340013413eb84868682ace00a1098c81a5ebc96d279f7ebf9a4cac3c0fd" +checksum = "371ffd66fa77f71d7628c63f209c9ca5341081051aa32f9c8020feb0def787c0" dependencies = [ "arrow-array", "arrow-buffer", @@ -588,18 +588,22 @@ dependencies = [ "arrow-schema", "chrono", "half", - "indexmap 2.7.1", + "indexmap", + "itoa", "lexical-core", - "num", - "serde", + "memchr", + "num-traits", + "ryu", + "serde_core", "serde_json", + "simdutf8", ] [[package]] name = "arrow-ord" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f841bfcc1997ef6ac48ee0305c4dfceb1f7c786fe31e67c1186edf775e1f1160" +checksum = "cbc94fc7adec5d1ba9e8cd1b1e8d6f72423b33fe978bf1f46d970fafab787521" dependencies = [ "arrow-array", "arrow-buffer", @@ -610,9 +614,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eeb55b0a0a83851aa01f2ca5ee5648f607e8506ba6802577afdda9d75cdedcd" +checksum = "169676f317157dc079cc5def6354d16db63d8861d61046d2f3883268ced6f99f" dependencies = [ "arrow-array", "arrow-buffer", @@ -623,32 +627,34 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85934a9d0261e0fa5d4e2a5295107d743b543a6e0484a835d4b8db2da15306f9" +checksum = "d27609cd7dd45f006abae27995c2729ef6f4b9361cde1ddd019dc31a5aa017e0" dependencies = [ "serde", + "serde_core", + "serde_json", ] [[package]] name = "arrow-select" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2932aece2d0c869dd2125feb9bd1709ef5c445daa3838ac4112dcfa0fda52c" +checksum = "ae980d021879ea119dd6e2a13912d81e64abed372d53163e804dfe84639d8010" dependencies = [ "ahash", "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", - "num", + "num-traits", ] [[package]] name = "arrow-string" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "912e38bd6a7a7714c1d9b61df80315685553b7455e8a6045c27531d8ecd5b458" +checksum = "cf35e8ef49dcf0c5f6d175edee6b8af7b45611805333129c541a8b89a0fc0534" dependencies = [ "arrow-array", "arrow-buffer", @@ -656,19 +662,19 @@ dependencies = [ "arrow-schema", "arrow-select", "memchr", - "num", + "num-traits", "regex", "regex-syntax", ] [[package]] name = "async-compression" -version = "0.4.18" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" +checksum = "06575e6a9673580f52661c92107baabffbf41e2141373441cbcdc47cb733003c" dependencies = [ "brotli 7.0.0", - "bzip2 0.4.4", + "bzip2 0.5.0", "flate2", "futures-core", "memchr", @@ -679,37 +685,15 @@ dependencies = [ "zstd-safe", ] -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - [[package]] name = "async-trait" -version = "0.1.85" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -733,13 +717,35 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "aws-lc-rs" +version = "1.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879b6c89592deb404ba4dc0ae6b58ffd1795c78991cbb5b8bc441c48a070440d" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "107a4e9d9cab9963e04e84bb8dee0e25f2a987f9a8bad5ed054abd439caa8f8c" +dependencies = [ + "bindgen", + "cc", + "cmake", + "dunce", + "fs_extra", +] + [[package]] name = "axum" -version = "0.7.9" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" dependencies = [ - "async-trait", "axum-core", "bytes", "futures-util", @@ -752,29 +758,26 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rustversion", - "serde", + "serde_core", "sync_wrapper 1.0.2", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", ] [[package]] name = "axum-core" -version = "0.4.5" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" dependencies = [ - "async-trait", "bytes", - "futures-util", + "futures-core", "http 1.2.0", "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", - "rustversion", "sync_wrapper 1.0.2", "tower-layer", "tower-service", @@ -815,9 +818,9 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bigdecimal" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f31f3af01c5c65a07985c804d3366560e6fa7883d640a122819b14ec327482c" +checksum = "560f42649de9fa436b73517378a147ec21f6c997a546581df4b4b31677828934" dependencies = [ "autocfg", "libm", @@ -826,6 +829,26 @@ dependencies = [ "num-traits", ] +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.8.0", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.108", +] + [[package]] name = "biscuit" version = "0.7.0" @@ -865,9 +888,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.5" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" +checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" dependencies = [ "arrayref", "arrayvec", @@ -893,7 +916,7 @@ checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", - "brotli-decompressor", + "brotli-decompressor 4.0.2", ] [[package]] @@ -904,7 +927,18 @@ checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", - "brotli-decompressor", + "brotli-decompressor 4.0.2", +] + +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor 5.0.0", ] [[package]] @@ -917,6 +951,16 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "bumpalo" version = "3.17.0" @@ -931,9 +975,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.9.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bytestring" @@ -946,9 +990,9 @@ dependencies = [ [[package]] name = "bzip2" -version = "0.4.4" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +checksum = "bafdbf26611df8c14810e268ddceda071c297570a5fb360ceddf617fe417ef58" dependencies = [ "bzip2-sys", "libc", @@ -956,12 +1000,11 @@ dependencies = [ [[package]] name = "bzip2" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bafdbf26611df8c14810e268ddceda071c297570a5fb360ceddf617fe417ef58" +checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" dependencies = [ - "bzip2-sys", - "libc", + "libbz2-rs-sys", ] [[package]] @@ -1019,15 +1062,25 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.10" +version = "1.2.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" +checksum = "739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", ] +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -1052,17 +1105,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.39" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -1095,6 +1147,17 @@ dependencies = [ "phf_codegen", ] +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "clap" version = "4.5.27" @@ -1125,7 +1188,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -1145,9 +1208,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.53" +version = "0.1.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24a03c8b52922d68a1589ad61032f2c1aa5a8158d2aa0d93c6e9534944bbad6" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" dependencies = [ "cc", ] @@ -1160,9 +1223,9 @@ checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "comfy-table" -version = "7.1.3" +version = "7.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f165e7b643266ea80cb858aed492ad9280e3e05ce24d4a99d7d7b889b6a4d9" +checksum = "e0d05af1e006a2407bedef5af410552494ce5be9090444dbbcb57258c1af3d56" dependencies = [ "strum", "strum_macros", @@ -1383,7 +1446,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -1394,7 +1457,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -1419,24 +1482,28 @@ checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" [[package]] name = "datafusion" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae420e7a5b0b7f1c39364cc76cbcd0f5fdc416b2514ae3847c2676bbd60702a" +checksum = "8ba7cb113e9c0bedf9e9765926031e132fa05a1b09ba6e93a6d1a4d7044457b8" dependencies = [ "arrow", - "arrow-array", - "arrow-ipc", "arrow-schema", - "async-compression", "async-trait", "bytes", - "bzip2 0.5.0", + "bzip2 0.6.1", "chrono", "datafusion-catalog", + "datafusion-catalog-listing", "datafusion-common", "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-datasource-arrow", + "datafusion-datasource-csv", + "datafusion-datasource-json", + "datafusion-datasource-parquet", "datafusion-execution", "datafusion-expr", + "datafusion-expr-common", "datafusion-functions", "datafusion-functions-aggregate", "datafusion-functions-nested", @@ -1444,24 +1511,25 @@ dependencies = [ "datafusion-functions-window", "datafusion-optimizer", "datafusion-physical-expr", + "datafusion-physical-expr-adapter", "datafusion-physical-expr-common", "datafusion-physical-optimizer", "datafusion-physical-plan", + "datafusion-session", "datafusion-sql", "flate2", "futures", - "glob", "itertools 0.14.0", "log", "object_store", "parking_lot", "parquet", - "rand 0.8.5", + "rand 0.9.1", "regex", + "rstest 0.26.1", "sqlparser", "tempfile", "tokio", - "tokio-util", "url", "uuid", "xz2", @@ -1470,41 +1538,66 @@ dependencies = [ [[package]] name = "datafusion-catalog" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f27987bc22b810939e8dfecc55571e9d50355d6ea8ec1c47af8383a76a6d0e1" +checksum = "66a3a799f914a59b1ea343906a0486f17061f39509af74e874a866428951130d" dependencies = [ "arrow", "async-trait", "dashmap", "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", "datafusion-execution", "datafusion-expr", + "datafusion-physical-expr", "datafusion-physical-plan", - "datafusion-sql", + "datafusion-session", "futures", "itertools 0.14.0", "log", + "object_store", "parking_lot", - "sqlparser", + "tokio", +] + +[[package]] +name = "datafusion-catalog-listing" +version = "51.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db1b113c80d7a0febcd901476a57aef378e717c54517a163ed51417d87621b0" +dependencies = [ + "arrow", + "async-trait", + "datafusion-catalog", + "datafusion-common", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-adapter", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "futures", + "itertools 0.14.0", + "log", + "object_store", + "tokio", ] [[package]] name = "datafusion-common" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3f6d5b8c9408cc692f7c194b8aa0c0f9b253e065a8d960ad9cdc2a13e697602" +checksum = "7c10f7659e96127d25e8366be7c8be4109595d6a2c3eac70421f380a7006a1b0" dependencies = [ "ahash", "arrow", - "arrow-array", - "arrow-buffer", "arrow-ipc", - "arrow-schema", - "base64 0.22.1", + "chrono", "half", "hashbrown 0.14.5", - "indexmap 2.7.1", + "indexmap", "libc", "log", "object_store", @@ -1518,27 +1611,163 @@ dependencies = [ [[package]] name = "datafusion-common-runtime" -version = "45.0.0" +version = "51.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b92065bbc6532c6651e2f7dd30b55cba0c7a14f860c7e1d15f165c41a1868d95" +dependencies = [ + "futures", + "log", + "tokio", +] + +[[package]] +name = "datafusion-datasource" +version = "51.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde13794244bc7581cd82f6fff217068ed79cdc344cafe4ab2c3a1c3510b38d6" +dependencies = [ + "arrow", + "async-compression", + "async-trait", + "bytes", + "bzip2 0.6.1", + "chrono", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "datafusion-physical-expr-adapter", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-session", + "flate2", + "futures", + "glob", + "itertools 0.14.0", + "log", + "object_store", + "rand 0.9.1", + "tokio", + "tokio-util", + "url", + "xz2", + "zstd", +] + +[[package]] +name = "datafusion-datasource-arrow" +version = "51.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804fa9b4ecf3157982021770617200ef7c1b2979d57bec9044748314775a9aea" +dependencies = [ + "arrow", + "arrow-ipc", + "async-trait", + "bytes", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-session", + "futures", + "itertools 0.14.0", + "object_store", + "tokio", +] + +[[package]] +name = "datafusion-datasource-csv" +version = "51.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a1641a40b259bab38131c5e6f48fac0717bedb7dc93690e604142a849e0568" +dependencies = [ + "arrow", + "async-trait", + "bytes", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-session", + "futures", + "object_store", + "regex", + "tokio", +] + +[[package]] +name = "datafusion-datasource-json" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4603c8e8a4baf77660ab7074cc66fc15cc8a18f2ce9dfadb755fc6ee294e48" +checksum = "adeacdb00c1d37271176f8fb6a1d8ce096baba16ea7a4b2671840c5c9c64fe85" dependencies = [ + "arrow", + "async-trait", + "bytes", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-session", + "futures", + "object_store", + "tokio", +] + +[[package]] +name = "datafusion-datasource-parquet" +version = "51.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d0b60ffd66f28bfb026565d62b0a6cbc416da09814766a3797bba7d85a3cd9" +dependencies = [ + "arrow", + "async-trait", + "bytes", + "datafusion-common", + "datafusion-common-runtime", + "datafusion-datasource", + "datafusion-execution", + "datafusion-expr", + "datafusion-functions-aggregate-common", + "datafusion-physical-expr", + "datafusion-physical-expr-adapter", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "datafusion-pruning", + "datafusion-session", + "futures", + "itertools 0.14.0", "log", + "object_store", + "parking_lot", + "parquet", "tokio", ] [[package]] name = "datafusion-doc" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bf4bc68623a5cf231eed601ed6eb41f46a37c4d15d11a0bff24cbc8396cd66" +checksum = "2b99e13947667b36ad713549237362afb054b2d8f8cc447751e23ec61202db07" [[package]] name = "datafusion-execution" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b491c012cdf8e051053426013429a76f74ee3c2db68496c79c323ca1084d27" +checksum = "63695643190679037bc946ad46a263b62016931547bf119859c511f7ff2f5178" dependencies = [ "arrow", + "async-trait", "dashmap", "datafusion-common", "datafusion-expr", @@ -1546,18 +1775,19 @@ dependencies = [ "log", "object_store", "parking_lot", - "rand 0.8.5", + "rand 0.9.1", "tempfile", "url", ] [[package]] name = "datafusion-expr" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a181408d4fc5dc22f9252781a8f39f2d0e5d1b33ec9bde242844980a2689c1" +checksum = "f9a4787cbf5feb1ab351f789063398f67654a6df75c4d37d7f637dc96f951a91" dependencies = [ "arrow", + "async-trait", "chrono", "datafusion-common", "datafusion-doc", @@ -1565,7 +1795,8 @@ dependencies = [ "datafusion-functions-aggregate-common", "datafusion-functions-window-common", "datafusion-physical-expr-common", - "indexmap 2.7.1", + "indexmap", + "itertools 0.14.0", "paste", "recursive", "serde_json", @@ -1574,21 +1805,22 @@ dependencies = [ [[package]] name = "datafusion-expr-common" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1129b48e8534d8c03c6543bcdccef0b55c8ac0c1272a15a56c67068b6eb1885" +checksum = "5ce2fb1b8c15c9ac45b0863c30b268c69dc9ee7a1ee13ecf5d067738338173dc" dependencies = [ "arrow", "datafusion-common", + "indexmap", "itertools 0.14.0", "paste", ] [[package]] name = "datafusion-functions" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6125874e4856dfb09b59886784fcb74cde5cfc5930b3a80a1a728ef7a010df6b" +checksum = "794a9db7f7b96b3346fc007ff25e994f09b8f0511b4cf7dff651fadfe3ebb28f" dependencies = [ "arrow", "arrow-buffer", @@ -1602,12 +1834,12 @@ dependencies = [ "datafusion-expr", "datafusion-expr-common", "datafusion-macros", - "hashbrown 0.14.5", "hex", "itertools 0.14.0", "log", "md-5", - "rand 0.8.5", + "num-traits", + "rand 0.9.1", "regex", "sha2", "unicode-segmentation", @@ -1616,14 +1848,12 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3add7b1d3888e05e7c95f2b281af900ca69ebdcb21069ba679b33bde8b3b9d6" +checksum = "1c25210520a9dcf9c2b2cbbce31ebd4131ef5af7fc60ee92b266dc7d159cb305" dependencies = [ "ahash", "arrow", - "arrow-buffer", - "arrow-schema", "datafusion-common", "datafusion-doc", "datafusion-execution", @@ -1639,9 +1869,9 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate-common" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e18baa4cfc3d2f144f74148ed68a1f92337f5072b6dde204a0dbbdf3324989c" +checksum = "62f4a66f3b87300bb70f4124b55434d2ae3fe80455f3574701d0348da040b55d" dependencies = [ "ahash", "arrow", @@ -1652,21 +1882,20 @@ dependencies = [ [[package]] name = "datafusion-functions-nested" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec5ee8cecb0dc370291279673097ddabec03a011f73f30d7f1096457127e03e" +checksum = "ae5c06eed03918dc7fe7a9f082a284050f0e9ecf95d72f57712d1496da03b8c4" dependencies = [ "arrow", - "arrow-array", - "arrow-buffer", "arrow-ord", - "arrow-schema", "datafusion-common", "datafusion-doc", "datafusion-execution", "datafusion-expr", + "datafusion-expr-common", "datafusion-functions", "datafusion-functions-aggregate", + "datafusion-functions-aggregate-common", "datafusion-macros", "datafusion-physical-expr-common", "itertools 0.14.0", @@ -1676,9 +1905,9 @@ dependencies = [ [[package]] name = "datafusion-functions-table" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c403ddd473bbb0952ba880008428b3c7febf0ed3ce1eec35a205db20efb2a36" +checksum = "db4fed1d71738fbe22e2712d71396db04c25de4111f1ec252b8f4c6d3b25d7f5" dependencies = [ "arrow", "async-trait", @@ -1692,10 +1921,11 @@ dependencies = [ [[package]] name = "datafusion-functions-window" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab18c2fb835614d06a75f24a9e09136d3a8c12a92d97c95a6af316a1787a9c5" +checksum = "1d92206aa5ae21892f1552b4d61758a862a70956e6fd7a95cb85db1de74bc6d1" dependencies = [ + "arrow", "datafusion-common", "datafusion-doc", "datafusion-expr", @@ -1709,9 +1939,9 @@ dependencies = [ [[package]] name = "datafusion-functions-window-common" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77b73bc15e7d1967121fdc7a55d819bfb9d6c03766a6c322247dce9094a53a4" +checksum = "53ae9bcc39800820d53a22d758b3b8726ff84a5a3e24cecef04ef4e5fdf1c7cc" dependencies = [ "datafusion-common", "datafusion-physical-expr-common", @@ -1719,27 +1949,28 @@ dependencies = [ [[package]] name = "datafusion-macros" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09369b8d962291e808977cf94d495fd8b5b38647232d7ef562c27ac0f495b0af" +checksum = "1063ad4c9e094b3f798acee16d9a47bd7372d9699be2de21b05c3bd3f34ab848" dependencies = [ - "datafusion-expr", + "datafusion-doc", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] name = "datafusion-optimizer" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2403a7e4a84637f3de7d8d4d7a9ccc0cc4be92d89b0161ba3ee5be82f0531c54" +checksum = "9f35f9ec5d08b87fd1893a30c2929f2559c2f9806ca072d8fefca5009dc0f06a" dependencies = [ "arrow", "chrono", "datafusion-common", "datafusion-expr", + "datafusion-expr-common", "datafusion-physical-expr", - "indexmap 2.7.1", + "indexmap", "itertools 0.14.0", "log", "recursive", @@ -1749,15 +1980,12 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ff72ac702b62dbf2650c4e1d715ebd3e4aab14e3885e72e8549e250307347c" +checksum = "c30cc8012e9eedcb48bbe112c6eff4ae5ed19cf3003cb0f505662e88b7014c5d" dependencies = [ "ahash", "arrow", - "arrow-array", - "arrow-buffer", - "arrow-schema", "datafusion-common", "datafusion-expr", "datafusion-expr-common", @@ -1765,22 +1993,36 @@ dependencies = [ "datafusion-physical-expr-common", "half", "hashbrown 0.14.5", - "indexmap 2.7.1", + "indexmap", "itertools 0.14.0", - "log", + "parking_lot", "paste", "petgraph", ] +[[package]] +name = "datafusion-physical-expr-adapter" +version = "51.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9ff2dbd476221b1f67337699eff432781c4e6e1713d2aefdaa517dfbf79768" +dependencies = [ + "arrow", + "datafusion-common", + "datafusion-expr", + "datafusion-functions", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "itertools 0.14.0", +] + [[package]] name = "datafusion-physical-expr-common" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60982b7d684e25579ee29754b4333057ed62e2cc925383c5f0bd8cab7962f435" +checksum = "90da43e1ec550b172f34c87ec68161986ced70fd05c8d2a2add66eef9c276f03" dependencies = [ "ahash", "arrow", - "arrow-buffer", "datafusion-common", "datafusion-expr-common", "hashbrown 0.14.5", @@ -1789,12 +2031,11 @@ dependencies = [ [[package]] name = "datafusion-physical-optimizer" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac5e85c189d5238a5cf181a624e450c4cd4c66ac77ca551d6f3ff9080bac90bb" +checksum = "ce9804f799acd7daef3be7aaffe77c0033768ed8fdbf5fb82fc4c5f2e6bc14e6" dependencies = [ "arrow", - "arrow-schema", "datafusion-common", "datafusion-execution", "datafusion-expr", @@ -1802,23 +2043,19 @@ dependencies = [ "datafusion-physical-expr", "datafusion-physical-expr-common", "datafusion-physical-plan", - "futures", + "datafusion-pruning", "itertools 0.14.0", - "log", "recursive", - "url", ] [[package]] name = "datafusion-physical-plan" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c36bf163956d7e2542657c78b3383fdc78f791317ef358a359feffcdb968106f" +checksum = "0acf0ad6b6924c6b1aa7d213b181e012e2d3ec0a64ff5b10ee6282ab0f8532ac" dependencies = [ "ahash", "arrow", - "arrow-array", - "arrow-buffer", "arrow-ord", "arrow-schema", "async-trait", @@ -1827,13 +2064,14 @@ dependencies = [ "datafusion-common-runtime", "datafusion-execution", "datafusion-expr", + "datafusion-functions-aggregate-common", "datafusion-functions-window-common", "datafusion-physical-expr", "datafusion-physical-expr-common", "futures", "half", "hashbrown 0.14.5", - "indexmap 2.7.1", + "indexmap", "itertools 0.14.0", "log", "parking_lot", @@ -1841,19 +2079,49 @@ dependencies = [ "tokio", ] +[[package]] +name = "datafusion-pruning" +version = "51.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac2c2498a1f134a9e11a9f5ed202a2a7d7e9774bd9249295593053ea3be999db" +dependencies = [ + "arrow", + "datafusion-common", + "datafusion-datasource", + "datafusion-expr-common", + "datafusion-physical-expr", + "datafusion-physical-expr-common", + "datafusion-physical-plan", + "itertools 0.14.0", + "log", +] + +[[package]] +name = "datafusion-session" +version = "51.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f96eebd17555386f459037c65ab73aae8df09f464524c709d6a3134ad4f4776" +dependencies = [ + "async-trait", + "datafusion-common", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-plan", + "parking_lot", +] + [[package]] name = "datafusion-sql" -version = "45.0.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13caa4daede211ecec53c78b13c503b592794d125f9a3cc3afe992edf9e7f43" +checksum = "3fc195fe60634b2c6ccfd131b487de46dc30eccae8a3c35a13f136e7f440414f" dependencies = [ "arrow", - "arrow-array", - "arrow-schema", "bigdecimal", + "chrono", "datafusion-common", "datafusion-expr", - "indexmap 2.7.1", + "indexmap", "log", "recursive", "regex", @@ -1877,7 +2145,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -1898,7 +2166,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -1908,7 +2176,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -1921,7 +2189,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -1942,7 +2210,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", "unicode-xid", ] @@ -1965,7 +2233,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -1980,6 +2248,12 @@ dependencies = [ "shared_child", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "either" version = "1.13.0" @@ -2035,6 +2309,12 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "find-msvc-tools" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" + [[package]] name = "fixedbitset" version = "0.5.7" @@ -2043,21 +2323,22 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flatbuffers" -version = "24.12.23" +version = "25.9.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1baf0dbf96932ec9a3038d57900329c015b0bfb7b63d904f3bc27e2b02a096" +checksum = "09b6620799e7340ebd9968d2e0708eb82cf1971e9a16821e2091b6d6e475eed5" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.8.0", "rustc_version", ] [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", + "libz-rs-sys", "miniz_oxide", ] @@ -2067,11 +2348,17 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -2153,7 +2440,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -2251,7 +2538,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.7.1", + "indexmap", "slab", "tokio", "tokio-util", @@ -2270,7 +2557,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.2.0", - "indexmap 2.7.1", + "indexmap", "slab", "tokio", "tokio-util", @@ -2279,21 +2566,16 @@ dependencies = [ [[package]] name = "half" -version = "2.4.1" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", "num-traits", + "zerocopy 0.8.27", ] -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "hashbrown" version = "0.14.5" @@ -2309,6 +2591,15 @@ name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "heck" @@ -2455,7 +2746,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.5.8", "tokio", "tower-service", "tracing", @@ -2542,7 +2833,7 @@ dependencies = [ "http-body 1.0.1", "hyper 1.6.0", "pin-project-lite", - "socket2", + "socket2 0.5.8", "tokio", "tower-service", "tracing", @@ -2686,7 +2977,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -2707,9 +2998,9 @@ dependencies = [ [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -2734,22 +3025,12 @@ checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "indexmap" -version = "1.9.3" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.16.0", ] [[package]] @@ -2907,11 +3188,27 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "libbz2-rs-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" + [[package]] name = "libc" -version = "0.2.169" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" + +[[package]] +name = "libloading" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +dependencies = [ + "cfg-if", + "windows-link", +] [[package]] name = "libm" @@ -2919,6 +3216,15 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" +[[package]] +name = "libz-rs-sys" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" +dependencies = [ + "zlib-rs", +] + [[package]] name = "libz-sys" version = "1.1.21" @@ -2990,9 +3296,9 @@ checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "lz4_flex" -version = "0.11.3" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" +checksum = "ab6473172471198271ff72e9379150e9dfd70d8e533e0752a27e515b48dd375e" dependencies = [ "twox-hash", ] @@ -3028,9 +3334,9 @@ dependencies = [ [[package]] name = "matchit" -version = "0.7.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "md-5" @@ -3064,13 +3370,20 @@ dependencies = [ "unicase", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" -version = "0.8.3" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -3085,6 +3398,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "ntapi" version = "0.4.1" @@ -3103,20 +3426,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.4.6" @@ -3137,39 +3446,17 @@ dependencies = [ ] [[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] -name = "num-rational" -version = "0.4.2" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "num-bigint", - "num-integer", "num-traits", ] @@ -3211,7 +3498,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -3234,34 +3521,40 @@ dependencies = [ [[package]] name = "object_store" -version = "0.11.2" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cfccb68961a56facde1163f9319e0d15743352344e7808a11795fb99698dcaf" +checksum = "4c1be0c6c22ec0817cdc77d3842f721a17fd30ab6965001415b5402a74e6b740" dependencies = [ "async-trait", "base64 0.22.1", "bytes", "chrono", + "form_urlencoded", "futures", + "http 1.2.0", + "http-body-util", "httparse", "humantime", "hyper 1.6.0", - "itertools 0.13.0", + "itertools 0.14.0", "md-5", "parking_lot", "percent-encoding", "quick-xml", - "rand 0.8.5", + "rand 0.9.1", "reqwest 0.12.12", "ring", "rustls-pemfile 2.2.0", "serde", "serde_json", - "snafu", + "serde_urlencoded", + "thiserror 2.0.11", "tokio", "tracing", "url", "walkdir", + "wasm-bindgen-futures", + "web-time", ] [[package]] @@ -3341,7 +3634,7 @@ dependencies = [ "hex", "opentelemetry", "opentelemetry_sdk", - "prost", + "prost 0.13.4", "serde", "tonic 0.13.1", ] @@ -3412,9 +3705,9 @@ dependencies = [ [[package]] name = "parquet" -version = "54.2.1" +version = "57.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88838dca3b84d41444a0341b19f347e8098a3898b0f21536654b8b799e11abd" +checksum = "be3e4f6d320dd92bfa7d612e265d7d08bba0a240bab86af3425e1d255a511d89" dependencies = [ "ahash", "arrow-array", @@ -3425,16 +3718,17 @@ dependencies = [ "arrow-schema", "arrow-select", "base64 0.22.1", - "brotli 7.0.0", + "brotli 8.0.2", "bytes", "chrono", "flate2", "futures", "half", - "hashbrown 0.15.2", + "hashbrown 0.16.0", "lz4_flex", - "num", "num-bigint", + "num-integer", + "num-traits", "object_store", "paste", "seq-macro", @@ -3444,7 +3738,6 @@ dependencies = [ "tokio", "twox-hash", "zstd", - "zstd-sys", ] [[package]] @@ -3511,14 +3804,14 @@ dependencies = [ "path-clean", "prometheus", "prometheus-parse", - "prost", + "prost 0.13.4", "rand 0.8.5", "rayon", "rdkafka", "regex", "relative-path", "reqwest 0.11.27", - "rstest", + "rstest 0.23.0", "rustls 0.22.4", "rustls-pemfile 2.2.0", "sasl2-sys", @@ -3536,9 +3829,10 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "tonic 0.12.3", + "tonic 0.14.2", + "tonic-prost", "tonic-web", - "tower-http 0.6.2", + "tower-http", "tracing", "tracing-subscriber", "ulid", @@ -3590,18 +3884,20 @@ checksum = "498a099351efa4becc6a19c72aa9270598e8fd274ca47052e37455241c88b696" [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "petgraph" -version = "0.7.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", - "indexmap 2.7.1", + "hashbrown 0.15.2", + "indexmap", + "serde", ] [[package]] @@ -3659,7 +3955,7 @@ checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -3692,7 +3988,17 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", +] + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.108", ] [[package]] @@ -3796,7 +4102,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.13.4", +] + +[[package]] +name = "prost" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +dependencies = [ + "bytes", + "prost-derive 0.14.1", ] [[package]] @@ -3809,16 +4125,29 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", +] + +[[package]] +name = "prost-derive" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] name = "prost-types" -version = "0.13.4" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" +checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" dependencies = [ - "prost", + "prost 0.14.1", ] [[package]] @@ -3854,9 +4183,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.37.2" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003" +checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" dependencies = [ "memchr", "serde", @@ -3874,7 +4203,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls 0.23.22", - "socket2", + "socket2 0.5.8", "thiserror 2.0.11", "tokio", "tracing", @@ -3909,16 +4238,16 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2", + "socket2 0.5.8", "tracing", "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] @@ -4062,7 +4391,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" dependencies = [ "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -4076,9 +4405,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -4088,9 +4417,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -4105,9 +4434,9 @@ checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "relative-path" @@ -4156,6 +4485,7 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", "webpki-roots 0.25.4", "winreg", @@ -4197,7 +4527,7 @@ dependencies = [ "tokio", "tokio-rustls 0.26.1", "tokio-util", - "tower 0.5.2", + "tower", "tower-service", "url", "wasm-bindgen", @@ -4230,10 +4560,21 @@ checksum = "0a2c585be59b6b5dd66a9d2084aa1d8bd52fbdb806eafdeffb52791147862035" dependencies = [ "futures", "futures-timer", - "rstest_macros", + "rstest_macros 0.23.0", "rustc_version", ] +[[package]] +name = "rstest" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49" +dependencies = [ + "futures-timer", + "futures-util", + "rstest_macros 0.26.1", +] + [[package]] name = "rstest_macros" version = "0.23.0" @@ -4248,7 +4589,25 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.96", + "syn 2.0.108", + "unicode-ident", +] + +[[package]] +name = "rstest_macros" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0" +dependencies = [ + "cfg-if", + "glob", + "proc-macro-crate", + "proc-macro2", + "quote", + "regex", + "relative-path", + "rustc_version", + "syn 2.0.108", "unicode-ident", ] @@ -4331,6 +4690,7 @@ version = "0.23.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" dependencies = [ + "aws-lc-rs", "log", "once_cell", "ring", @@ -4395,6 +4755,7 @@ version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -4498,22 +4859,32 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -4522,7 +4893,7 @@ version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" dependencies = [ - "indexmap 2.7.1", + "indexmap", "itoa", "memchr", "ryu", @@ -4537,7 +4908,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -4580,9 +4951,9 @@ checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -4677,27 +5048,6 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -[[package]] -name = "snafu" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" -dependencies = [ - "snafu-derive", -] - -[[package]] -name = "snafu-derive" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.96", -] - [[package]] name = "snap" version = "1.1.1" @@ -4714,13 +5064,24 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + [[package]] name = "sqlparser" -version = "0.53.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a528114c392209b3264855ad491fcce534b94a38771b0a0b97a79379275ce8" +checksum = "4591acadbcf52f0af60eafbb2c003232b2b4cd8de5f0e9437cb8b1b59046cc0f" dependencies = [ "log", + "recursive", "sqlparser_derive", ] @@ -4732,7 +5093,7 @@ checksum = "da5fc6819faabb412da764b99d3b713bb55083c11e7e0c00144d386cd6a1939c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -4793,7 +5154,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -4814,9 +5175,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.96" +version = "2.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" +checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" dependencies = [ "proc-macro2", "quote", @@ -4846,7 +5207,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -4929,7 +5290,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -4940,7 +5301,7 @@ checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -5033,31 +5394,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.43.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "492a604e2fd7f814268a378409e6c92b5525d747d10db9a229723f55a417958c" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.6.1", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -5104,9 +5464,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -5142,7 +5502,7 @@ version = "0.22.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" dependencies = [ - "indexmap 2.7.1", + "indexmap", "serde", "serde_spanned", "toml_datetime", @@ -5151,17 +5511,13 @@ dependencies = [ [[package]] name = "tonic" -version = "0.12.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" dependencies = [ - "async-stream", "async-trait", - "axum", "base64 0.22.1", "bytes", - "flate2", - "h2 0.4.7", "http 1.2.0", "http-body 1.0.1", "http-body-util", @@ -5170,28 +5526,27 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost", - "rustls-pemfile 2.2.0", - "socket2", + "prost 0.13.4", "tokio", - "tokio-rustls 0.26.1", "tokio-stream", - "tower 0.4.13", + "tower", "tower-layer", "tower-service", "tracing", - "zstd", ] [[package]] name = "tonic" -version = "0.13.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" dependencies = [ "async-trait", + "axum", "base64 0.22.1", "bytes", + "flate2", + "h2 0.4.7", "http 1.2.0", "http-body 1.0.1", "http-body-util", @@ -5200,50 +5555,43 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost", + "rustls-native-certs", + "socket2 0.6.1", + "sync_wrapper 1.0.2", "tokio", + "tokio-rustls 0.26.1", "tokio-stream", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", "tracing", + "zstd", ] [[package]] -name = "tonic-web" -version = "0.12.3" +name = "tonic-prost" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5299dd20801ad736dccb4a5ea0da7376e59cd98f213bf1c3d478cf53f4834b58" +checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" dependencies = [ - "base64 0.22.1", "bytes", - "http 1.2.0", - "http-body 1.0.1", - "http-body-util", - "pin-project", - "tokio-stream", - "tonic 0.12.3", - "tower-http 0.5.2", - "tower-layer", - "tower-service", - "tracing", + "prost 0.14.1", + "tonic 0.14.2", ] [[package]] -name = "tower" -version = "0.4.13" +name = "tonic-web" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +checksum = "75214f6b6bd28c19aa752ac09fdf0eea546095670906c21fe3940e180a4c43f2" dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", + "base64 0.22.1", + "bytes", + "http 1.2.0", + "http-body 1.0.1", "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", + "tokio-stream", + "tonic 0.14.2", "tower-layer", "tower-service", "tracing", @@ -5257,7 +5605,7 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "indexmap 2.7.1", + "indexmap", "pin-project-lite", "slab", "sync_wrapper 1.0.2", @@ -5268,22 +5616,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tower-http" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" -dependencies = [ - "bitflags 2.8.0", - "bytes", - "http 1.2.0", - "http-body 1.0.1", - "http-body-util", - "pin-project-lite", - "tower-layer", - "tower-service", -] - [[package]] name = "tower-http" version = "0.6.2" @@ -5330,7 +5662,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -5381,13 +5713,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "twox-hash" -version = "1.6.3" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" -dependencies = [ - "cfg-if", - "static_assertions", -] +checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" [[package]] name = "typenum" @@ -5486,12 +5814,12 @@ dependencies = [ [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", - "idna 1.0.3", + "idna 1.1.0", "percent-encoding", "serde", ] @@ -5516,11 +5844,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.12.1" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.1", + "js-sys", + "wasm-bindgen", ] [[package]] @@ -5550,7 +5880,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -5681,7 +6011,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", "wasm-bindgen-shared", ] @@ -5716,7 +6046,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5858,7 +6188,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -5869,9 +6199,15 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-registry" version = "0.2.0" @@ -5938,6 +6274,24 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -5962,13 +6316,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -5981,6 +6352,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -5993,6 +6370,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -6005,12 +6388,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -6023,6 +6418,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -6035,6 +6436,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -6047,6 +6454,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -6059,6 +6472,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winnow" version = "0.7.0" @@ -6134,7 +6553,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", "synstructure", ] @@ -6145,7 +6564,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +dependencies = [ + "zerocopy-derive 0.8.27", ] [[package]] @@ -6156,7 +6584,18 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] @@ -6176,7 +6615,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", "synstructure", ] @@ -6205,7 +6644,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.108", ] [[package]] @@ -6219,12 +6658,18 @@ dependencies = [ "crossbeam-utils", "displaydoc", "flate2", - "indexmap 2.7.1", + "indexmap", "memchr", "thiserror 2.0.11", "zopfli", ] +[[package]] +name = "zlib-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2" + [[package]] name = "zopfli" version = "0.8.1" diff --git a/Cargo.toml b/Cargo.toml index 65f2bc72d..27b459bc4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,21 +9,21 @@ build = "build.rs" [dependencies] # Arrow and DataFusion ecosystem -arrow = "54.0.0" -arrow-array = "54.0.0" -arrow-flight = { version = "54.0.0", features = ["tls"] } -arrow-ipc = { version = "54.0.0", features = ["zstd"] } -arrow-json = "54.0.0" -arrow-schema = { version = "54.0.0", features = ["serde"] } -arrow-select = "54.0.0" -datafusion = "45.0.0" -object_store = { version = "0.11.2", features = [ +arrow = "57.1.0" +arrow-array = "57.1.0" +arrow-flight = { version = "57.1.0", features = ["tls-aws-lc","tls-native-roots"] } +arrow-ipc = { version = "57.1.0", features = ["zstd"] } +arrow-json = "57.1.0" +arrow-schema = { version = "57.1.0", features = ["serde"] } +arrow-select = "57.1.0" +datafusion = "51.0.0" +object_store = { version = "0.12.4", features = [ "cloud", "aws", "azure", "gcp", ] } -parquet = "54.0.0" +parquet = "57.1.0" # Web server and HTTP-related actix-cors = "0.7.0" @@ -33,8 +33,9 @@ actix-web-prometheus = { version = "0.1" } actix-web-static-files = "4.0" http = "0.2.7" http-auth-basic = "0.3.3" -tonic = { version = "0.12.3", features = ["tls", "transport", "gzip", "zstd", "prost"] } -tonic-web = "0.12.3" +tonic = { version = "0.14.1", features = ["tls-aws-lc", "tls-native-roots", "transport", "gzip", "zstd"] } +tonic-prost = "0.14.1" +tonic-web = "0.14.1" tower-http = { version = "0.6.1", features = ["cors"] } url = "2.4.0" @@ -126,12 +127,13 @@ itertools = "0.14" once_cell = "1.20" rayon = "1.8" rand = "0.8.5" -regex = "1.7.3" +regex = "1.12.2" reqwest = { version = "0.11.27", default-features = false, features = [ "rustls-tls", "json", "gzip", "brotli", + "stream" ] } # cannot update cause rustls is not latest `see rustls` semver = "1.0" static-files = "0.2" @@ -156,7 +158,7 @@ anyhow = "1.0" [dev-dependencies] rstest = "0.23.0" -arrow = "54.0.0" +arrow = "57.1.0" temp-dir = "0.1.14" [package.metadata.parseable_ui] diff --git a/Cross.toml b/Cross.toml index a43cc519f..21f457d3b 100644 --- a/Cross.toml +++ b/Cross.toml @@ -1,5 +1,50 @@ [target.aarch64-unknown-linux-gnu] image = "ghcr.io/cross-rs/aarch64-unknown-linux-gnu@sha256:1e2a0291f92a4372cbc22d8994e735473045383f1ce7fa44a16c234ba00187f4" +pre-build = [ + # Add multiarch support + "dpkg --add-architecture arm64", + "apt-get update", + + # Install base dev packages FIRST (creates pkgconfig dir structure) + "apt-get install -y pkg-config:arm64 libc6-dev:arm64", + + # Install zlib and other deps + "apt-get install -y zlib1g-dev:arm64 libssl-dev:arm64 libsasl2-dev:arm64 libzstd-dev:arm64 liblz4-dev:arm64", + + # Verify pkg-config finds zlib + "pkg-config --cflags --libs --exists zlib || (echo 'ZLIB PC FAILED'; exit 1)", + + # Fix library paths (ensure symlinks) + "ln -sf /usr/lib/aarch64-linux-gnu/libz.so.1 /usr/lib/aarch64-linux-gnu/libz.so", + "ln -sf /usr/lib/aarch64-linux-gnu/libssl.so.1.1 /usr/lib/aarch64-linux-gnu/libssl.so", + "ln -sf /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1 /usr/lib/aarch64-linux-gnu/libcrypto.so", + + # Debug verification + "echo '=== ZLIB DEBUG ==='", + "dpkg -l '*zlib*' | grep '^ii'", + "find /usr -name 'zlib.pc' 2>/dev/null || echo 'NO zlib.pc'", + "pkg-config --cflags --libs zlib", + "ls -la /usr/lib/aarch64-linux-gnu/libz*", + "echo '=== PATHS ==='", + "ls -la /usr/lib/aarch64-linux-gnu/pkgconfig/ 2>/dev/null || echo 'NO PKGCONFIG DIR'", +] -[target.x86_64-unknown-linux-gnu] -image = "ghcr.io/cross-rs/x86_64-unknown-linux-gnu@sha256:bf05360bb9d6d4947eed60532ac7a0d7e8fae8f214e9abb801d5941c8fe4918d" +[target.aarch64-unknown-linux-gnu.env] +# Force pkg-config to cross paths +PKG_CONFIG_PATH = "/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig" +PKG_CONFIG_ALLOW_CROSS = "1" +LIBRDKAFKA_SSL_VENDORED = "1" + +# Explicit zlib paths for cmake +ZLIB_INCLUDE_DIR = "/usr/include" +ZLIB_LIBRARY = "/usr/lib/aarch64-linux-gnu/libz.so" + +# Explicit openssl paths +OPENSSL_ROOT_DIR = "/usr" +OPENSSL_INCLUDE_DIR = "/usr/include" +OPENSSL_CRYPTO_LIBRARY = "/usr/lib/aarch64-linux-gnu/libcrypto.so" +OPENSSL_SSL_LIBRARY = "/usr/lib/aarch64-linux-gnu/libssl.so" + +# Debug +RUST_BACKTRACE = "1" +CROSS_NO_WARNINGS = "0" diff --git a/src/catalog/column.rs b/src/catalog/column.rs index d5db2950d..2a4cfae81 100644 --- a/src/catalog/column.rs +++ b/src/catalog/column.rs @@ -156,8 +156,8 @@ impl TryFrom<&Statistics> for TypedStatistics { max: *stats.max_opt().expect("Int64 stats max not set"), }), Statistics::Int96(stats) => TypedStatistics::Int(Int64Type { - min: stats.min_opt().expect("Int96 stats min not set").to_i64(), - max: stats.max_opt().expect("Int96 stats max not set").to_i64(), + min: int96_to_i64_nanos(stats.min_opt().expect("Int96 stats min not set")), + max: int96_to_i64_nanos(stats.max_opt().expect("Int96 stats max not set")), }), Statistics::Float(stats) => TypedStatistics::Float(Float64Type { min: *stats.min_opt().expect("Float32 stats min not set") as f64, @@ -196,3 +196,21 @@ impl TryFrom<&Statistics> for TypedStatistics { Ok(res) } } + +// Int96 is a deprecated timestamp format used by legacy Impala files +// Convert to i64 nanoseconds since Unix epoch for statistics +fn int96_to_i64_nanos(int96: &parquet::data_type::Int96) -> i64 { + const JULIAN_DAY_OF_EPOCH: i64 = 2_440_588; // Julian day for 1970-01-01 + const SECONDS_PER_DAY: i64 = 86_400; + const NANOS_PER_SECOND: i64 = 1_000_000_000; + + // Extract nanoseconds from first 8 bytes (little-endian) + let nanos_of_day = int96.data()[0] as i64 | ((int96.data()[1] as i64) << 32); + + // Extract Julian day from last 4 bytes + let julian_day = int96.data()[2] as i64; + + // Convert to nanoseconds since Unix epoch + let days_since_epoch = julian_day - JULIAN_DAY_OF_EPOCH; + days_since_epoch * SECONDS_PER_DAY * NANOS_PER_SECOND + nanos_of_day +} diff --git a/src/catalog/manifest.rs b/src/catalog/manifest.rs index 38cd83376..066639187 100644 --- a/src/catalog/manifest.rs +++ b/src/catalog/manifest.rs @@ -19,7 +19,10 @@ use std::collections::HashMap; use itertools::Itertools; -use parquet::{file::reader::FileReader, format::SortingColumn}; +use parquet::file::{ + metadata::{RowGroupMetaData, SortingColumn}, + reader::FileReader, +}; use crate::metastore::metastore_traits::MetastoreObject; @@ -170,9 +173,7 @@ fn sort_order( sort_orders } -fn column_statistics( - row_groups: &[parquet::file::metadata::RowGroupMetaData], -) -> HashMap { +fn column_statistics(row_groups: &[RowGroupMetaData]) -> HashMap { let mut columns: HashMap = HashMap::new(); for row_group in row_groups { for col in row_group.columns() { diff --git a/src/parseable/staging/reader.rs b/src/parseable/staging/reader.rs index 90dc0004e..011e12546 100644 --- a/src/parseable/staging/reader.rs +++ b/src/parseable/staging/reader.rs @@ -342,7 +342,8 @@ mod tests { types::Int64Type, }; use arrow_ipc::writer::{ - DictionaryTracker, IpcDataGenerator, IpcWriteOptions, StreamWriter, write_message, + CompressionContext, DictionaryTracker, IpcDataGenerator, IpcWriteOptions, StreamWriter, + write_message, }; use arrow_schema::{DataType, Field, Schema}; use chrono::Utc; @@ -433,6 +434,7 @@ mod tests { let options = IpcWriteOptions::default(); let mut dictionary_tracker = DictionaryTracker::new(error_on_replacement); let data_gen = IpcDataGenerator {}; + let mut compression_context = CompressionContext::default(); let mut buf = Vec::new(); let rb1 = rb(1); @@ -446,7 +448,12 @@ mod tests { for i in (1..=3).cycle().skip(1).take(10000) { let (_, encoded_message) = data_gen - .encoded_batch(&rb(i), &mut dictionary_tracker, &options) + .encode( + &rb(i), + &mut dictionary_tracker, + &options, + &mut compression_context, + ) .unwrap(); write_message(&mut buf, encoded_message, &options).unwrap(); } diff --git a/src/parseable/streams.rs b/src/parseable/streams.rs index 1dab2542a..3e892f10b 100644 --- a/src/parseable/streams.rs +++ b/src/parseable/streams.rs @@ -35,10 +35,9 @@ use parquet::{ arrow::ArrowWriter, basic::Encoding, file::{ - FOOTER_SIZE, properties::WriterProperties, reader::FileReader, + FOOTER_SIZE, metadata::SortingColumn, properties::WriterProperties, reader::FileReader, serialized_reader::SerializedFileReader, }, - format::SortingColumn, schema::types::ColumnPath, }; use relative_path::RelativePathBuf; diff --git a/src/query/mod.rs b/src/query/mod.rs index 8b05f81c2..767bf54c1 100644 --- a/src/query/mod.rs +++ b/src/query/mod.rs @@ -24,9 +24,8 @@ use actix_web::Either; use chrono::NaiveDateTime; use chrono::{DateTime, Duration, Utc}; use datafusion::arrow::record_batch::RecordBatch; -use datafusion::catalog::resolve_table_references; use datafusion::common::tree_node::Transformed; -use datafusion::execution::disk_manager::DiskManagerConfig; +use datafusion::execution::disk_manager::DiskManager; use datafusion::execution::{SendableRecordBatchStream, SessionState, SessionStateBuilder}; use datafusion::logical_expr::expr::Alias; use datafusion::logical_expr::{ @@ -34,6 +33,7 @@ use datafusion::logical_expr::{ }; use datafusion::prelude::*; use datafusion::sql::parser::DFParser; +use datafusion::sql::resolve::resolve_table_references; use datafusion::sql::sqlparser::dialect::PostgreSqlDialect; use itertools::Itertools; use once_cell::sync::Lazy; @@ -120,7 +120,7 @@ impl Query { fn create_session_state(storage: Arc) -> SessionState { let runtime_config = storage .get_datafusion_runtime() - .with_disk_manager(DiskManagerConfig::NewOs); + .with_disk_manager_builder(DiskManager::builder()); let (pool_size, fraction) = match PARSEABLE.options.query_memory_pool_size { Some(size) => (size, 1.), None => { @@ -231,6 +231,7 @@ impl Query { self.time_range.end.naive_utc(), ); LogicalPlan::Explain(Explain { + explain_format: plan.explain_format, verbose: plan.verbose, stringified_plans: vec![ transformed diff --git a/src/query/stream_schema_provider.rs b/src/query/stream_schema_provider.rs index 6c151fb44..e8c6dd71c 100644 --- a/src/query/stream_schema_provider.rs +++ b/src/query/stream_schema_provider.rs @@ -32,10 +32,10 @@ use datafusion::{ MemTable, TableProvider, file_format::{FileFormat, parquet::ParquetFormat}, listing::PartitionedFile, - physical_plan::FileScanConfig, + physical_plan::{FileGroup, FileScanConfigBuilder, ParquetSource}, }, error::{DataFusionError, Result as DataFusionResult}, - execution::{context::SessionState, object_store::ObjectStoreUrl}, + execution::object_store::ObjectStoreUrl, logical_expr::{ BinaryExpr, Operator, TableProviderFilterPushDown, TableType, utils::conjunction, }, @@ -142,26 +142,51 @@ impl StandardTableProvider { nulls_first: true, }, }; + let file_format = ParquetFormat::default().with_enable_pruning(true); + // create file groups from vec file partitions + let file_groups = partitions + .into_iter() + .map(FileGroup::new) + .collect_vec(); + + // parquet file source, default table parquet options + let file_source = if let Some(phyiscal_expr) = filters { + ParquetSource::default().with_predicate(phyiscal_expr) + } else { + ParquetSource::default() + }; + + let mut conf_builder = + FileScanConfigBuilder::new(object_store_url, self.schema.clone(), file_source.into()) + .with_statistics(statistics) + .with_batch_size(Some(20000)) + .with_constraints(Constraints::default()) + .with_file_groups(file_groups) + .with_output_ordering(vec![LexOrdering::new([sort_expr]).unwrap()]); + + // Set projection if provided + if let Some(proj_indices) = projection { + conf_builder = conf_builder.with_projection_indices(Some(proj_indices.clone())); + } + + // Set limit if provided + if let Some(lim) = limit { + conf_builder = conf_builder.with_limit(Some(lim)); + } + + let conf = conf_builder.build(); + // create the execution plan let plan = file_format .create_physical_plan( - state.as_any().downcast_ref::().unwrap(), // Remove this when ParquetFormat catches up - FileScanConfig { - object_store_url, - file_schema: self.schema.clone(), - file_groups: partitions, - statistics, - projection: projection.cloned(), - limit, - output_ordering: vec![LexOrdering::from_iter([sort_expr])], - table_partition_cols: Vec::new(), - constraints: Constraints::empty(), - }, - filters.as_ref(), + state, + // .as_any().downcast_ref::().unwrap(), // Remove this when ParquetFormat catches up + conf, ) .await?; + execution_plans.push(plan); Ok(()) @@ -314,7 +339,7 @@ impl StandardTableProvider { } else if execution_plans.len() == 1 { execution_plans.pop().unwrap() } else { - Arc::new(UnionExec::new(execution_plans)) + UnionExec::try_new(execution_plans)? }; Ok(exec) } @@ -697,10 +722,10 @@ impl PartialTimeFilter { Expr::BinaryExpr(BinaryExpr::new( Box::new(left), op, - Box::new(Expr::Literal(ScalarValue::TimestampMillisecond( - Some(right), + Box::new(Expr::Literal( + ScalarValue::TimestampMillisecond(Some(right), None), None, - ))), + )), )) } } @@ -842,7 +867,7 @@ fn extract_timestamp_bound( binexpr: &BinaryExpr, time_partition: &Option, ) -> Option<(Operator, NaiveDateTime)> { - let Expr::Literal(value) = binexpr.right.as_ref() else { + let Expr::Literal(value, None) = binexpr.right.as_ref() else { return None; }; @@ -914,7 +939,7 @@ pub trait ManifestExt: ManifestFile { let Expr::BinaryExpr(expr) = expr else { return None; }; - let Expr::Literal(value) = &*expr.right else { + let Expr::Literal(value, None) = &*expr.right else { return None; }; /* `BinaryExp` doesn't implement `Copy` */ @@ -1101,10 +1126,10 @@ mod tests { let binexpr = BinaryExpr { left: Box::new(Expr::Column("timestamp_column".into())), op: Operator::Eq, - right: Box::new(Expr::Literal(ScalarValue::TimestampMillisecond( - Some(1672531200000), + right: Box::new(Expr::Literal( + ScalarValue::TimestampMillisecond(Some(1672531200000), None), None, - ))), + )), }; let time_partition = Some("timestamp_column".to_string()); @@ -1123,10 +1148,10 @@ mod tests { let binexpr = BinaryExpr { left: Box::new(Expr::Column("timestamp_column".into())), op: Operator::Gt, - right: Box::new(Expr::Literal(ScalarValue::TimestampNanosecond( - Some(1672531200000000000), + right: Box::new(Expr::Literal( + ScalarValue::TimestampNanosecond(Some(1672531200000000000), None), None, - ))), + )), }; let time_partition = Some("timestamp_column".to_string()); @@ -1146,7 +1171,10 @@ mod tests { let binexpr = BinaryExpr { left: Box::new(Expr::Column("timestamp_column".into())), op: Operator::Lt, - right: Box::new(Expr::Literal(ScalarValue::Utf8(Some(timestamp.to_owned())))), + right: Box::new(Expr::Literal( + ScalarValue::Utf8(Some(timestamp.to_owned())), + None, + )), }; let time_partition = Some("timestamp_column".to_string()); @@ -1166,7 +1194,10 @@ mod tests { let binexpr = BinaryExpr { left: Box::new(Expr::Column("other_column".into())), op: Operator::Eq, - right: Box::new(Expr::Literal(ScalarValue::Utf8(Some(timestamp.to_owned())))), + right: Box::new(Expr::Literal( + ScalarValue::Utf8(Some(timestamp.to_owned())), + None, + )), }; let time_partition = Some("timestamp_column".to_string()); @@ -1180,7 +1211,7 @@ mod tests { let binexpr = BinaryExpr { left: Box::new(Expr::Column("timestamp_column".into())), op: Operator::Eq, - right: Box::new(Expr::Literal(ScalarValue::Int32(Some(42)))), + right: Box::new(Expr::Literal(ScalarValue::Int32(Some(42)), None)), }; let time_partition = Some("timestamp_column".to_string()); @@ -1208,10 +1239,10 @@ mod tests { let binexpr = BinaryExpr { left: Box::new(Expr::Column("timestamp_column".into())), op: Operator::Eq, - right: Box::new(Expr::Literal(ScalarValue::TimestampMillisecond( - Some(1672531200000), + right: Box::new(Expr::Literal( + ScalarValue::TimestampMillisecond(Some(1672531200000), None), None, - ))), + )), }; let time_partition = None; @@ -1226,10 +1257,10 @@ mod tests { let binexpr = BinaryExpr { left: Box::new(Expr::Column("timestamp_column".into())), op: Operator::Eq, - right: Box::new(Expr::Literal(ScalarValue::TimestampNanosecond( - Some(1672531200000000000), + right: Box::new(Expr::Literal( + ScalarValue::TimestampNanosecond(Some(1672531200000000000), None), None, - ))), + )), }; let result = extract_timestamp_bound(&binexpr, &time_partition); diff --git a/src/storage/localfs.rs b/src/storage/localfs.rs index 612d5e7b2..ecb8b02e0 100644 --- a/src/storage/localfs.rs +++ b/src/storage/localfs.rs @@ -143,7 +143,7 @@ impl ObjectStorage for LocalFS { .modified() .map_err(ObjectStorageError::IoError)? .into(), - size: metadata.len() as usize, + size: metadata.len(), e_tag: None, version: None, }; diff --git a/src/storage/metrics_layer.rs b/src/storage/metrics_layer.rs index 945ee6ba8..87a082095 100644 --- a/src/storage/metrics_layer.rs +++ b/src/storage/metrics_layer.rs @@ -26,8 +26,9 @@ use async_trait::async_trait; use bytes::Bytes; use futures_util::{Stream, StreamExt, stream::BoxStream}; use object_store::{ - GetOptions, GetResult, ListResult, MultipartUpload, ObjectMeta, ObjectStore, PutMultipartOpts, - PutOptions, PutPayload, PutResult, Result as ObjectStoreResult, path::Path, + GetOptions, GetResult, ListResult, MultipartUpload, ObjectMeta, ObjectStore, + PutMultipartOptions, PutOptions, PutPayload, PutResult, Result as ObjectStoreResult, + path::Path, }; use crate::metrics::STORAGE_REQUEST_RESPONSE_TIME; @@ -145,7 +146,7 @@ impl ObjectStore for MetricLayer { async fn put_multipart_opts( &self, location: &Path, - opts: PutMultipartOpts, + opts: PutMultipartOptions, ) -> ObjectStoreResult> { let time = time::Instant::now(); let result = self.inner.put_multipart_opts(location, opts).await; @@ -212,7 +213,7 @@ impl ObjectStore for MetricLayer { result } - async fn get_range(&self, location: &Path, range: Range) -> ObjectStoreResult { + async fn get_range(&self, location: &Path, range: Range) -> ObjectStoreResult { let time = time::Instant::now(); let result = self.inner.get_range(location, range).await; let elapsed = time.elapsed().as_secs_f64(); @@ -231,7 +232,7 @@ impl ObjectStore for MetricLayer { async fn get_ranges( &self, location: &Path, - ranges: &[Range], + ranges: &[Range], ) -> ObjectStoreResult> { let time = time::Instant::now(); let result = self.inner.get_ranges(location, ranges).await; @@ -287,7 +288,7 @@ impl ObjectStore for MetricLayer { self.inner.delete_stream(locations) } - fn list(&self, prefix: Option<&Path>) -> BoxStream<'_, ObjectStoreResult> { + fn list(&self, prefix: Option<&Path>) -> BoxStream<'static, ObjectStoreResult> { let time = time::Instant::now(); let inner = self.inner.list(prefix); let res = StreamMetricWrapper { @@ -302,7 +303,7 @@ impl ObjectStore for MetricLayer { &self, prefix: Option<&Path>, offset: &Path, - ) -> BoxStream<'_, ObjectStoreResult> { + ) -> BoxStream<'static, ObjectStoreResult> { let time = time::Instant::now(); let inner = self.inner.list_with_offset(prefix, offset); let res = StreamMetricWrapper { diff --git a/src/storage/object_storage.rs b/src/storage/object_storage.rs index 907a7ce46..e17d29874 100644 --- a/src/storage/object_storage.rs +++ b/src/storage/object_storage.rs @@ -223,7 +223,7 @@ async fn validate_uploaded_parquet_file( .await { Ok(metadata) => { - if metadata.size as u64 != expected_size { + if metadata.size != expected_size { warn!( "Uploaded file size mismatch for stream {}: expected {}, got {}", stream_name, expected_size, metadata.size diff --git a/src/utils/arrow/flight.rs b/src/utils/arrow/flight.rs index fd10fb349..0e43b4e06 100644 --- a/src/utils/arrow/flight.rs +++ b/src/utils/arrow/flight.rs @@ -28,6 +28,7 @@ use arrow_flight::encode::FlightDataEncoderBuilder; use arrow_flight::{FlightData, Ticket}; use arrow_ipc::writer::IpcWriteOptions; use arrow_select::concat::concat_batches; +use datafusion::common::Spans; use datafusion::logical_expr::BinaryExpr; use datafusion::prelude::Expr; use datafusion::scalar::ScalarValue; @@ -119,6 +120,7 @@ pub fn send_to_ingester(start: i64, end: i64) -> bool { let expr_left = Expr::Column(datafusion::common::Column { relation: None, name: "p_timestamp".to_owned(), + spans: Spans::new(), }); let ex1 = BinaryExpr::new( @@ -138,7 +140,7 @@ pub fn send_to_ingester(start: i64, end: i64) -> bool { } fn lit_timestamp_milli(time: i64) -> Expr { - Expr::Literal(ScalarValue::TimestampMillisecond(Some(time), None)) + Expr::Literal(ScalarValue::TimestampMillisecond(Some(time), None), None) } pub fn into_flight_data(records: Vec) -> Result, Box> {