diff --git a/Cargo.lock b/Cargo.lock index 0acadff88..6be0d3ec5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -435,9 +435,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "arrow" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45aef0d9cf9a039bf6cd1acc451b137aca819977b0928dece52bd92811b640ba" +checksum = "c91839b07e474b3995035fd8ac33ee54f9c9ccbbb1ea33d9909c71bffdf1259d" dependencies = [ "arrow-arith", "arrow-array", @@ -456,9 +456,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03675e42d1560790f3524800e41403b40d0da1c793fe9528929fde06d8c7649a" +checksum = "855c57c4efd26722b044dcd3e348252560e3e0333087fb9f6479dc0bf744054f" dependencies = [ "arrow-array", "arrow-buffer", @@ -471,9 +471,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd2bf348cf9f02a5975c5962c7fa6dee107a2009a7b41ac5fb1a027e12dc033f" +checksum = "bd03279cea46569acf9295f6224fbc370c5df184b4d2ecfe97ccb131d5615a7f" dependencies = [ "ahash", "arrow-buffer", @@ -482,15 +482,15 @@ dependencies = [ "chrono", "chrono-tz", "half", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "num", ] [[package]] name = "arrow-buffer" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3092e37715f168976012ce52273c3989b5793b0db5f06cbaa246be25e5f0924d" +checksum = "9e4a9b9b1d6d7117f6138e13bc4dd5daa7f94e671b70e8c9c4dc37b4f5ecfc16" dependencies = [ "bytes", "half", @@ -499,9 +499,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ce1018bb710d502f9db06af026ed3561552e493e989a79d0d0f5d9cf267a785" +checksum = "bc70e39916e60c5b7af7a8e2719e3ae589326039e1e863675a008bee5ffe90fd" dependencies = [ "arrow-array", "arrow-buffer", @@ -520,9 +520,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd178575f45624d045e4ebee714e246a05d9652e41363ee3f57ec18cca97f740" +checksum = "789b2af43c1049b03a8d088ff6b2257cdcea1756cd76b174b1f2600356771b97" dependencies = [ "arrow-array", "arrow-buffer", @@ -539,9 +539,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4ac0c4ee79150afe067dc4857154b3ee9c1cd52b5f40d59a77306d0ed18d65" +checksum = "e4e75edf21ffd53744a9b8e3ed11101f610e7ceb1a29860432824f1834a1f623" dependencies = [ "arrow-buffer", "arrow-schema", @@ -551,9 +551,9 @@ dependencies = [ [[package]] name = "arrow-flight" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b915fb36d935b969894d7909ad417c67ddeadebbbd57c3c168edf64721a37d31" +checksum = "4c09b331887a526f203f2123444792aee924632bd08b9940435070901075832e" dependencies = [ "arrow-array", "arrow-buffer", @@ -572,9 +572,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb307482348a1267f91b0912e962cd53440e5de0f7fb24c5f7b10da70b38c94a" +checksum = "d186a909dece9160bf8312f5124d797884f608ef5435a36d9d608e0b2a9bcbf8" dependencies = [ "arrow-array", "arrow-buffer", @@ -588,9 +588,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24805ba326758effdd6f2cbdd482fcfab749544f21b134701add25b33f474e6" +checksum = "b66ff2fedc1222942d0bd2fd391cb14a85baa3857be95c9373179bd616753b85" dependencies = [ "arrow-array", "arrow-buffer", @@ -608,9 +608,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "644046c479d80ae8ed02a7f1e1399072ea344ca6a7b0e293ab2d5d9ed924aa3b" +checksum = "ece7b5bc1180e6d82d1a60e1688c199829e8842e38497563c3ab6ea813e527fd" dependencies = [ "arrow-array", "arrow-buffer", @@ -623,9 +623,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a29791f8eb13b340ce35525b723f5f0df17ecb955599e11f65c2a94ab34e2efb" +checksum = "745c114c8f0e8ce211c83389270de6fbe96a9088a7b32c2a041258a443fe83ff" dependencies = [ "ahash", "arrow-array", @@ -637,18 +637,18 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85320a3a2facf2b2822b57aa9d6d9d55edb8aee0b6b5d3b8df158e503d10858" +checksum = "b95513080e728e4cec37f1ff5af4f12c9688d47795d17cda80b6ec2cf74d4678" dependencies = [ "serde", ] [[package]] name = "arrow-select" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cc7e6b582e23855fd1625ce46e51647aa440c20ea2e71b1d748e0839dd73cba" +checksum = "8e415279094ea70323c032c6e739c48ad8d80e78a09bef7117b8718ad5bf3722" dependencies = [ "ahash", "arrow-array", @@ -660,9 +660,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0775b6567c66e56ded19b87a954b6b1beffbdd784ef95a3a2b03f59570c1d230" +checksum = "11d956cae7002eb8d83a27dbd34daaea1cf5b75852f0b84deb4d93a276e92bbf" dependencies = [ "arrow-array", "arrow-buffer", @@ -682,10 +682,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07dbbf24db18d609b1462965249abdf49129ccad073ec257da372adc83259c60" dependencies = [ "brotli 4.0.0", - "bzip2", + "bzip2 0.4.4", "flate2", "futures-core", - "futures-io", "memchr", "pin-project-lite", "tokio", @@ -834,6 +833,19 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "bigdecimal" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f31f3af01c5c65a07985c804d3366560e6fa7883d640a122819b14ec327482c" +dependencies = [ + "autocfg", + "libm", + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "biscuit" version = "0.7.0" @@ -915,6 +927,17 @@ dependencies = [ "brotli-decompressor 4.0.1", ] +[[package]] +name = "brotli" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor 4.0.1", +] + [[package]] name = "brotli-decompressor" version = "3.0.0" @@ -972,6 +995,16 @@ dependencies = [ "libc", ] +[[package]] +name = "bzip2" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bafdbf26611df8c14810e268ddceda071c297570a5fb360ceddf617fe417ef58" +dependencies = [ + "bzip2-sys", + "libc", +] + [[package]] name = "bzip2-sys" version = "0.1.11+1.0.8" @@ -1078,9 +1111,9 @@ dependencies = [ [[package]] name = "chrono-tz" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb" +checksum = "cd6dd8046d00723a59a2f8c5f295c515b9bb9a331ee4f8f3d4dd49e428acd3b6" dependencies = [ "chrono", "chrono-tz-build", @@ -1089,12 +1122,11 @@ dependencies = [ [[package]] name = "chrono-tz-build" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1" +checksum = "e94fea34d77a245229e7746bd2beb786cd2a896f306ff491fb8cecb3074b10a7" dependencies = [ "parse-zoneinfo", - "phf", "phf_codegen", ] @@ -1394,11 +1426,10 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "datafusion" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee907b081e45e1d14e1f327e89ef134f91fcebad0bfc2dc229fa9f6044379682" +checksum = "014fc8c384ecacedaabb3bc8359c2a6c6e9d8f7bea65be3434eccacfc37f52d9" dependencies = [ - "ahash", "arrow", "arrow-array", "arrow-ipc", @@ -1406,7 +1437,7 @@ dependencies = [ "async-compression", "async-trait", "bytes", - "bzip2", + "bzip2 0.5.0", "chrono", "dashmap", "datafusion-catalog", @@ -1417,6 +1448,7 @@ dependencies = [ "datafusion-functions", "datafusion-functions-aggregate", "datafusion-functions-nested", + "datafusion-functions-table", "datafusion-functions-window", "datafusion-optimizer", "datafusion-physical-expr", @@ -1427,18 +1459,13 @@ dependencies = [ "flate2", "futures", "glob", - "half", - "hashbrown 0.14.5", - "indexmap 2.5.0", "itertools 0.13.0", "log", - "num_cpus", "object_store", "parking_lot", "parquet", - "paste", - "pin-project-lite", "rand", + "regex", "sqlparser", "tempfile", "tokio", @@ -1451,9 +1478,9 @@ dependencies = [ [[package]] name = "datafusion-catalog" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2b914f6e33c429af7d8696c72a47ed9225d7e2b82c747ebdfa2408ed53579f" +checksum = "ee60d33e210ef96070377ae667ece7caa0e959c8387496773d4a1a72f1a5012e" dependencies = [ "arrow-schema", "async-trait", @@ -1466,51 +1493,56 @@ dependencies = [ [[package]] name = "datafusion-common" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a84f8e76330c582a6b8ada0b2c599ca46cfe46b7585e458fc3f4092bc722a18" +checksum = "0b42b7d720fe21ed9cca2ebb635f3f13a12cfab786b41e0fba184fb2e620525b" dependencies = [ "ahash", "arrow", "arrow-array", "arrow-buffer", "arrow-schema", - "chrono", "half", "hashbrown 0.14.5", - "instant", + "indexmap 2.5.0", "libc", - "num_cpus", + "log", "object_store", "parquet", "paste", + "recursive", "sqlparser", "tokio", + "web-time", ] [[package]] name = "datafusion-common-runtime" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf08cc30d92720d557df13bd5a5696213bd5ea0f38a866d8d85055d866fba774" +checksum = "72fbf14d4079f7ce5306393084fe5057dddfdc2113577e0049310afa12e94281" dependencies = [ "log", "tokio", ] +[[package]] +name = "datafusion-doc" +version = "44.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c278dbd64860ed0bb5240fc1f4cb6aeea437153910aea69bcf7d5a8d6d0454f3" + [[package]] name = "datafusion-execution" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86bc4183d5c45b9f068a6f351678a0d1eb1225181424542bb75db18ec280b822" +checksum = "e22cb02af47e756468b3cbfee7a83e3d4f2278d452deb4b033ba933c75169486" dependencies = [ "arrow", - "chrono", "dashmap", "datafusion-common", "datafusion-expr", "futures", - "hashbrown 0.14.5", "log", "object_store", "parking_lot", @@ -1521,42 +1553,41 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "202119ce58e4d103e37ae64aab40d4e574c97bdd2bea994bf307b175fcbfa74d" +checksum = "62298eadb1d15b525df1315e61a71519ffc563d41d5c3b2a30fda2d70f77b93c" dependencies = [ - "ahash", "arrow", - "arrow-array", - "arrow-buffer", "chrono", "datafusion-common", + "datafusion-doc", "datafusion-expr-common", "datafusion-functions-aggregate-common", + "datafusion-functions-window-common", "datafusion-physical-expr-common", + "indexmap 2.5.0", "paste", + "recursive", "serde_json", "sqlparser", - "strum", - "strum_macros", ] [[package]] name = "datafusion-expr-common" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8b181ce8569216abb01ef3294aa16c0a40d7d39350c2ff01ede00f167a535f2" +checksum = "dda7f73c5fc349251cd3dcb05773c5bf55d2505a698ef9d38dfc712161ea2f55" dependencies = [ "arrow", "datafusion-common", - "paste", + "itertools 0.13.0", ] [[package]] name = "datafusion-functions" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4124b8066444e05a24472f852e94cf56546c0f4d92d00f018f207216902712" +checksum = "fd197f3b2975424d3a4898ea46651be855a46721a56727515dbd5c9e2fb597da" dependencies = [ "arrow", "arrow-buffer", @@ -1565,8 +1596,11 @@ dependencies = [ "blake3", "chrono", "datafusion-common", + "datafusion-doc", "datafusion-execution", "datafusion-expr", + "datafusion-expr-common", + "datafusion-macros", "hashbrown 0.14.5", "hex", "itertools 0.13.0", @@ -1581,44 +1615,44 @@ dependencies = [ [[package]] name = "datafusion-functions-aggregate" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94acdac235ea21810150a89751617ef2db7e32eba27f54be48a81bde2bfe119" +checksum = "aabbe48fba18f9981b134124381bee9e46f93518b8ad2f9721ee296cef5affb9" dependencies = [ "ahash", "arrow", "arrow-schema", "datafusion-common", + "datafusion-doc", "datafusion-execution", "datafusion-expr", "datafusion-functions-aggregate-common", + "datafusion-macros", "datafusion-physical-expr", "datafusion-physical-expr-common", "half", "log", "paste", - "sqlparser", ] [[package]] name = "datafusion-functions-aggregate-common" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c9ea085bbf900bf16e2ca0f56fc56236b2e4f2e1a2cccb67bcd83c5ab4ad0ef" +checksum = "d7a3fefed9c8c11268d446d924baca8cabf52fe32f73fdaa20854bac6473590c" dependencies = [ "ahash", "arrow", "datafusion-common", "datafusion-expr-common", "datafusion-physical-expr-common", - "rand", ] [[package]] name = "datafusion-functions-nested" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c882e61665ed60c5ce9b061c1e587aeb8ae5ae4bcb5e5f2465139ab25328e0f" +checksum = "6360f27464fab857bec698af39b2ae331dc07c8bf008fb4de387a19cdc6815a5" dependencies = [ "arrow", "arrow-array", @@ -1634,106 +1668,141 @@ dependencies = [ "itertools 0.13.0", "log", "paste", - "rand", +] + +[[package]] +name = "datafusion-functions-table" +version = "44.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c35c070eb705c12795dab399c3809f4dfbc290678c624d3989490ca9b8449c1" +dependencies = [ + "arrow", + "async-trait", + "datafusion-catalog", + "datafusion-common", + "datafusion-expr", + "datafusion-physical-plan", + "parking_lot", + "paste", ] [[package]] name = "datafusion-functions-window" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98a354ce96df3ca6d025093adac9fd55ca09931c9b6f2630140721a95873fde4" +checksum = "52229bca26b590b140900752226c829f15fc1a99840e1ca3ce1a9534690b82a8" dependencies = [ "datafusion-common", + "datafusion-doc", "datafusion-expr", + "datafusion-functions-window-common", + "datafusion-macros", + "datafusion-physical-expr", "datafusion-physical-expr-common", "log", + "paste", +] + +[[package]] +name = "datafusion-functions-window-common" +version = "44.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "367befc303b64a668a10ae6988a064a9289e1999e71a7f8e526b6e14d6bdd9d6" +dependencies = [ + "datafusion-common", + "datafusion-physical-expr-common", +] + +[[package]] +name = "datafusion-macros" +version = "44.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5de3c8f386ea991696553afe241a326ecbc3c98a12c562867e4be754d3a060c" +dependencies = [ + "quote", + "syn 2.0.87", ] [[package]] name = "datafusion-optimizer" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf677c74fb7b5a1899ef52709e4a70fff3ed80bdfb4bbe495909810e83d5f39" +checksum = "53b520413906f755910422b016fb73884ae6e9e1b376de4f9584b6c0e031da75" dependencies = [ "arrow", - "async-trait", "chrono", "datafusion-common", "datafusion-expr", "datafusion-physical-expr", - "hashbrown 0.14.5", "indexmap 2.5.0", "itertools 0.13.0", "log", - "paste", + "recursive", + "regex", "regex-syntax 0.8.5", ] [[package]] name = "datafusion-physical-expr" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b077999f6eb6c43d6b25bc66332a3be2f693c382840f008dd763b8540f9530" +checksum = "acd6ddc378f6ad19af95ccd6790dec8f8e1264bc4c70e99ddc1830c1a1c78ccd" dependencies = [ "ahash", "arrow", "arrow-array", "arrow-buffer", - "arrow-ord", "arrow-schema", - "arrow-string", - "base64 0.22.0", - "chrono", "datafusion-common", - "datafusion-execution", "datafusion-expr", "datafusion-expr-common", "datafusion-functions-aggregate-common", "datafusion-physical-expr-common", "half", "hashbrown 0.14.5", - "hex", "indexmap 2.5.0", "itertools 0.13.0", "log", "paste", "petgraph", - "regex", ] [[package]] name = "datafusion-physical-expr-common" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce847f885c2b13bbe29f5c8b7948797131aa470af6e16d2a94f4428b4f4f1bd" +checksum = "06e6c05458eccd74b4c77ed6a1fe63d52434240711de7f6960034794dad1caf5" dependencies = [ "ahash", "arrow", "datafusion-common", "datafusion-expr-common", "hashbrown 0.14.5", - "rand", + "itertools 0.13.0", ] [[package]] name = "datafusion-physical-optimizer" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d13238e3b9fdd62a4c18760bfef714bb990d1e1d3430e9f416aae4b3cfaa71af" +checksum = "9dc3a82190f49c37d377f31317e07ab5d7588b837adadba8ac367baad5dc2351" dependencies = [ - "arrow-schema", + "arrow", "datafusion-common", "datafusion-execution", + "datafusion-expr-common", "datafusion-physical-expr", "datafusion-physical-plan", "itertools 0.13.0", + "log", + "recursive", ] [[package]] name = "datafusion-physical-plan" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faba6f55a7eaf0241d07d12c2640de52742646b10f754485d5192bdfe2c9ceae" +checksum = "6a6608bc9844b4ddb5ed4e687d173e6c88700b1d0482f43894617d18a1fe75da" dependencies = [ "ahash", "arrow", @@ -1747,8 +1816,7 @@ dependencies = [ "datafusion-common-runtime", "datafusion-execution", "datafusion-expr", - "datafusion-functions-aggregate", - "datafusion-functions-aggregate-common", + "datafusion-functions-window-common", "datafusion-physical-expr", "datafusion-physical-expr-common", "futures", @@ -1757,28 +1825,28 @@ dependencies = [ "indexmap 2.5.0", "itertools 0.13.0", "log", - "once_cell", "parking_lot", "pin-project-lite", - "rand", "tokio", ] [[package]] name = "datafusion-sql" -version = "42.0.0" +version = "44.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad8d96a9b52e1aa24f9373696a815be828193efce7cb0bbd2140b6bb67d1819" +checksum = "6a884061c79b33d0c8e84a6f4f4be8bdc12c0f53f5af28ddf5d6d95ac0b15fdc" dependencies = [ "arrow", "arrow-array", "arrow-schema", + "bigdecimal", "datafusion-common", "datafusion-expr", + "indexmap 2.5.0", "log", + "recursive", "regex", "sqlparser", - "strum", ] [[package]] @@ -2148,6 +2216,12 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + [[package]] name = "hashlru" version = "0.11.1" @@ -2475,9 +2549,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", ] [[package]] @@ -2559,9 +2630,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "lexical-core" -version = "0.8.5" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" +checksum = "b765c31809609075565a70b4b71402281283aeda7ecaf4818ac14a7b2ade8958" dependencies = [ "lexical-parse-float", "lexical-parse-integer", @@ -2572,9 +2643,9 @@ dependencies = [ [[package]] name = "lexical-parse-float" -version = "0.8.5" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" +checksum = "de6f9cb01fb0b08060209a057c048fcbab8717b4c1ecd2eac66ebfe39a65b0f2" dependencies = [ "lexical-parse-integer", "lexical-util", @@ -2583,9 +2654,9 @@ dependencies = [ [[package]] name = "lexical-parse-integer" -version = "0.8.6" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" +checksum = "72207aae22fc0a121ba7b6d479e42cbfea549af1479c3f3a4f12c70dd66df12e" dependencies = [ "lexical-util", "static_assertions", @@ -2593,18 +2664,18 @@ dependencies = [ [[package]] name = "lexical-util" -version = "0.8.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" +checksum = "5a82e24bf537fd24c177ffbbdc6ebcc8d54732c35b50a3f28cc3f4e4c949a0b3" dependencies = [ "static_assertions", ] [[package]] name = "lexical-write-float" -version = "0.8.5" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" +checksum = "c5afc668a27f460fb45a81a757b6bf2f43c2d7e30cb5a2dcd3abf294c78d62bd" dependencies = [ "lexical-util", "lexical-write-integer", @@ -2613,9 +2684,9 @@ dependencies = [ [[package]] name = "lexical-write-integer" -version = "0.8.5" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" +checksum = "629ddff1a914a836fb245616a7888b62903aae58fa771e1d83943035efa0f978" dependencies = [ "lexical-util", "static_assertions", @@ -2983,15 +3054,16 @@ dependencies = [ [[package]] name = "object_store" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eb4c22c6154a1e759d7099f9ffad7cc5ef8245f9efbab4a41b92623079c82f3" +checksum = "3cfccb68961a56facde1163f9319e0d15743352344e7808a11795fb99698dcaf" dependencies = [ "async-trait", "base64 0.22.0", "bytes", "chrono", "futures", + "httparse", "humantime", "hyper 1.4.1", "itertools 0.13.0", @@ -3131,9 +3203,9 @@ dependencies = [ [[package]] name = "parquet" -version = "53.0.0" +version = "53.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0fbf928021131daaa57d334ca8e3904fe9ae22f73c56244fc7db9b04eedc3d8" +checksum = "2b449890367085eb65d7d3321540abc3d7babbd179ce31df0016e90719114191" dependencies = [ "ahash", "arrow-array", @@ -3144,13 +3216,13 @@ dependencies = [ "arrow-schema", "arrow-select", "base64 0.22.0", - "brotli 6.0.0", + "brotli 7.0.0", "bytes", "chrono", "flate2", "futures", "half", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "lz4_flex", "num", "num-bigint", @@ -3196,7 +3268,7 @@ dependencies = [ "base64 0.22.0", "byteorder", "bytes", - "bzip2", + "bzip2 0.5.0", "cargo_toml", "chrono", "chrono-humanize", @@ -3255,7 +3327,7 @@ dependencies = [ "tokio-stream", "tonic", "tonic-web", - "tower-http 0.6.1", + "tower-http 0.6.2", "tracing", "tracing-subscriber", "ulid", @@ -3563,6 +3635,15 @@ version = "2.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +[[package]] +name = "psm" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" +dependencies = [ + "cc", +] + [[package]] name = "quanta" version = "0.10.1" @@ -3581,9 +3662,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.36.1" +version = "0.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a05e2e8efddfa51a84ca47cec303fac86c8541b686d37cac5efc0e094417bc" +checksum = "165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003" dependencies = [ "memchr", "serde", @@ -3734,6 +3815,26 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "recursive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0786a43debb760f491b1bc0269fe5e84155353c67482b9e60d0cfb596054b43e" +dependencies = [ + "recursive-proc-macro-impl", + "stacker", +] + +[[package]] +name = "recursive-proc-macro-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" +dependencies = [ + "quote", + "syn 2.0.87", +] + [[package]] name = "redox_syscall" version = "0.4.1" @@ -4377,9 +4478,9 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "sqlparser" -version = "0.50.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e5b515a2bd5168426033e9efbfd05500114833916f1d5c268f938b4ee130ac" +checksum = "05a528114c392209b3264855ad491fcce534b94a38771b0a0b97a79379275ce8" dependencies = [ "log", "sqlparser_derive", @@ -4387,15 +4488,28 @@ dependencies = [ [[package]] name = "sqlparser_derive" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b2e185515564f15375f593fb966b5718bc624ba77fe49fa4616ad619690554" +checksum = "da5fc6819faabb412da764b99d3b713bb55083c11e7e0c00144d386cd6a1939c" dependencies = [ "proc-macro2", "quote", "syn 2.0.87", ] +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + [[package]] name = "static-files" version = "0.2.3" @@ -4424,9 +4538,6 @@ name = "strum" version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" -dependencies = [ - "strum_macros", -] [[package]] name = "strum_macros" @@ -4875,9 +4986,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437150ab6bbc8c5f0f519e3d5ed4aa883a83dd4cdd3d1b21f9482936046cb97" +checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "bitflags 2.5.0", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 879fe2572..e9d25d7ca 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,45 +3,85 @@ name = "parseable" version = "1.7.0" authors = ["Parseable Team "] edition = "2021" -rust-version = "1.77.1" +rust-version = "1.83.0" categories = ["logging", "observability", "log analytics"] build = "build.rs" [dependencies] -### apache arrow/datafusion dependencies -arrow-schema = { version = "53.0.0", features = ["serde"] } +# Arrow and DataFusion ecosystem arrow-array = { version = "53.0.0" } -arrow-json = "53.0.0" +arrow-flight = { version = "53.0.0", features = ["tls"] } arrow-ipc = { version = "53.0.0", features = ["zstd"] } +arrow-json = "53.0.0" +arrow-schema = { version = "53.0.0", features = ["serde"] } arrow-select = "53.0.0" -datafusion = "42.0.0" -object_store = { version = "0.11.1", features = ["cloud", "aws", "azure"] } +datafusion = "44.0.0" +object_store = { version = "0.11.2", features = ["cloud", "aws", "azure"] } parquet = "53.0.0" -arrow-flight = { version = "53.0.0", features = ["tls"] } -tonic = { version = "0.12.3", features = ["tls", "transport", "gzip", "zstd"] } -tonic-web = "0.12.3" -tower-http = { version = "0.6.1", features = ["cors"] } -### actix dependencies -actix-web-httpauth = "0.8" -actix-web = { version = "4.9.0", features = ["rustls-0_22"] } +# Web server and HTTP-related actix-cors = "0.7.0" +actix-web = { version = "4.9.0", features = ["rustls-0_22"] } +actix-web-httpauth = "0.8" actix-web-prometheus = { version = "0.1" } actix-web-static-files = "4.0" +http = "0.2.7" +http-auth-basic = "0.3.3" mime = "0.3.17" +tonic = { version = "0.12.3", features = ["tls", "transport", "gzip", "zstd"] } +tonic-web = "0.12.3" +tower-http = { version = "0.6.1", features = ["cors"] } +url = "2.4.0" -### other dependencies -anyhow = { version = "1.0", features = ["backtrace"] } +# Authentication and Security argon2 = "0.5.0" -async-trait = "0.1.82" base64 = "0.22.0" -lazy_static = "1.4" -bytes = "1.4" -byteorder = "1.4.3" -bzip2 = { version = "*", features = ["static"] } cookie = "0.18.1" +hex = "0.4" +openid = { version = "0.15.0", default-features = false, features = ["rustls"] } +rustls = "0.22.4" +rustls-pemfile = "2.1.2" +sha2 = "0.10.8" + +# Serialization and Data Formats +byteorder = "1.4.3" +prost = "0.13.3" +serde = { version = "1.0", features = ["rc", "derive"] } +serde_json = "1.0" +serde_repr = "0.1.17" + +# Async and Runtime +async-trait = "0.1.82" +futures = "0.3" +futures-util = "0.3.28" +tokio = { version = "1.28", default-features = false, features = [ + "sync", + "macros", + "fs", +] } +tokio-stream = { version = "0.1", features = ["fs"] } + +# Logging and Metrics +opentelemetry-proto = { git = "https://github.com/parseablehq/opentelemetry-rust", branch = "fix-metrics-u64-serialization" } +prometheus = { version = "0.13", features = ["process"] } +prometheus-parse = "0.2.5" +tracing = "0.1.41" +tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } + +# Time and Date chrono = "0.4" chrono-humanize = "0.2" +humantime = "2.1.0" +humantime-serde = "1.1" + +# File System and I/O +bzip2 = { version = "*", features = ["static"] } +fs_extra = "1.3" +path-clean = "1.0.1" +relative-path = { version = "1.7", features = ["serde"] } +xz2 = { version = "*", features = ["static"] } + +# CLI and System clap = { version = "4.1", default-features = false, features = [ "std", "color", @@ -51,73 +91,50 @@ clap = { version = "4.1", default-features = false, features = [ "cargo", "error-context", ] } -clokwerk = "0.4" crossterm = "0.28.1" -derive_more = "0.99.18" -fs_extra = "1.3" -futures = "0.3" -futures-util = "0.3.28" -hex = "0.4" hostname = "0.4.0" -http = "0.2.7" -humantime-serde = "1.1" -itertools = "0.13.0" +human-size = "0.4" num_cpus = "1.15" +sysinfo = "0.31.4" +thread-priority = "1.0.0" +uptime_lib = "0.3.0" + +# Kafka +rdkafka = { version = "0.36.2", default-features = false, features = ["tokio"] } + +# Utility Libraries +anyhow = { version = "1.0", features = ["backtrace"] } +bytes = "1.4" +clokwerk = "0.4" +derive_more = "0.99.18" +hashlru = { version = "0.11.0", features = ["serde"] } +itertools = "0.13.0" +lazy_static = "1.4" +nom = "7.1.3" once_cell = "1.17.1" -opentelemetry-proto = {git = "https://github.com/parseablehq/opentelemetry-rust", branch="fix-metrics-u64-serialization"} -prometheus = { version = "0.13", features = ["process"] } rand = "0.8.5" regex = "1.7.3" -relative-path = { version = "1.7", features = ["serde"] } reqwest = { version = "0.11.27", default-features = false, features = [ "rustls-tls", "json", "gzip", "brotli", ] } # cannot update cause rustls is not latest `see rustls` -rustls = "0.22.4" # cannot update to 0.23 actix has not caught up yet -rustls-pemfile = "2.1.2" semver = "1.0" -serde = { version = "1.0", features = ["rc", "derive"] } -serde_json = "1.0" static-files = "0.2" -sysinfo = "0.31.4" thiserror = "2.0.0" -thread-priority = "1.0.0" -tokio = { version = "1.28", default-features = false, features = [ - "sync", - "macros", - "fs", -] } -tokio-stream = { version = "0.1", features = ["fs"] } -tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } ulid = { version = "1.0", features = ["serde"] } -uptime_lib = "0.3.0" xxhash-rust = { version = "0.8", features = ["xxh3"] } -xz2 = { version = "*", features = ["static"] } -nom = "7.1.3" -humantime = "2.1.0" -human-size = "0.4" -openid = { version = "0.15.0", default-features = false, features = ["rustls"] } -url = "2.4.0" -http-auth-basic = "0.3.3" -serde_repr = "0.1.17" -hashlru = { version = "0.11.0", features = ["serde"] } -path-clean = "1.0.1" -prost = "0.13.3" -prometheus-parse = "0.2.5" -sha2 = "0.10.8" -tracing = "0.1.41" [build-dependencies] cargo_toml = "0.20.1" +prost-build = "0.13.3" sha1_smol = { version = "1.0", features = ["std"] } static-files = "0.2" ureq = "2.6" +url = "2.4.0" vergen = { version = "8.1", features = ["build", "git", "cargo", "gitcl"] } zip = { version = "2.2.0", default-features = false, features = ["deflate"] } -url = "2.4.0" -prost-build = "0.13.3" [dev-dependencies] maplit = "1.0" diff --git a/Dockerfile b/Dockerfile index cfd88348b..1b6d6f51f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ # along with this program. If not, see . # build stage -FROM rust:1.77.1-bookworm as builder +FROM rust:1.83.0-bookworm as builder LABEL org.opencontainers.image.title="Parseable" LABEL maintainer="Parseable Team " diff --git a/src/query/mod.rs b/src/query/mod.rs index 1c9aac1f9..b86573d27 100644 --- a/src/query/mod.rs +++ b/src/query/mod.rs @@ -27,7 +27,6 @@ use datafusion::arrow::record_batch::RecordBatch; use datafusion::common::tree_node::{Transformed, TreeNode, TreeNodeRecursion, TreeNodeVisitor}; use datafusion::error::DataFusionError; use datafusion::execution::disk_manager::DiskManagerConfig; -use datafusion::execution::runtime_env::RuntimeEnv; use datafusion::execution::SessionStateBuilder; use datafusion::logical_expr::{Explain, Filter, LogicalPlan, PlanType, ToStringifiedPlan}; use datafusion::prelude::*; @@ -77,7 +76,7 @@ impl Query { }; let runtime_config = runtime_config.with_memory_limit(pool_size, fraction); - let runtime = Arc::new(RuntimeEnv::new(runtime_config).unwrap()); + let runtime = Arc::new(runtime_config.build().unwrap()); let mut config = SessionConfig::default() .with_parquet_pruning(true) diff --git a/src/query/stream_schema_provider.rs b/src/query/stream_schema_provider.rs index 7b83b9099..291e39996 100644 --- a/src/query/stream_schema_provider.rs +++ b/src/query/stream_schema_provider.rs @@ -30,6 +30,7 @@ use chrono::{DateTime, NaiveDateTime, Timelike, Utc}; use datafusion::catalog::Session; use datafusion::common::stats::Precision; use datafusion::logical_expr::utils::conjunction; +use datafusion::physical_expr::LexOrdering; use datafusion::{ catalog::SchemaProvider, common::{ @@ -73,6 +74,7 @@ use super::listing_table_builder::ListingTableBuilder; use crate::catalog::Snapshot as CatalogSnapshot; // schema provider for stream based on global data +#[derive(Debug)] pub struct GlobalSchemaProvider { pub storage: Arc, } @@ -159,7 +161,7 @@ impl StandardTableProvider { statistics, projection: projection.cloned(), limit, - output_ordering: vec![vec![sort_expr]], + output_ordering: vec![LexOrdering::from_iter([sort_expr])], table_partition_cols: Vec::new(), }, filters.as_ref(), diff --git a/src/storage/azure_blob.rs b/src/storage/azure_blob.rs index 0cbd89f21..3dda54145 100644 --- a/src/storage/azure_blob.rs +++ b/src/storage/azure_blob.rs @@ -29,7 +29,7 @@ use async_trait::async_trait; use datafusion::datasource::object_store::{ DefaultObjectStoreRegistry, ObjectStoreRegistry, ObjectStoreUrl, }; -use datafusion::execution::runtime_env::RuntimeConfig; +use datafusion::execution::runtime_env::RuntimeEnvBuilder; use object_store::azure::{MicrosoftAzure, MicrosoftAzureBuilder}; use object_store::{BackoffConfig, ClientOptions, ObjectStore, PutPayload, RetryConfig}; use relative_path::{RelativePath, RelativePathBuf}; @@ -150,7 +150,7 @@ impl AzureBlobConfig { } impl ObjectStorageProvider for AzureBlobConfig { - fn get_datafusion_runtime(&self) -> RuntimeConfig { + fn get_datafusion_runtime(&self) -> RuntimeEnvBuilder { let azure = self.get_default_builder().build().unwrap(); // limit objectstore to a concurrent request limit let azure = LimitStore::new(azure, super::MAX_OBJECT_STORE_REQUESTS); @@ -161,7 +161,7 @@ impl ObjectStorageProvider for AzureBlobConfig { .unwrap(); object_store_registry.register_store(url.as_ref(), Arc::new(azure)); - RuntimeConfig::new().with_object_store_registry(Arc::new(object_store_registry)) + RuntimeEnvBuilder::new().with_object_store_registry(Arc::new(object_store_registry)) } fn construct_client(&self) -> Arc { @@ -191,6 +191,7 @@ pub fn to_object_store_path(path: &RelativePath) -> StorePath { // ObjStoreClient is generic client to enable interactions with different cloudprovider's // object store such as S3 and Azure Blob +#[derive(Debug)] pub struct BlobStore { client: LimitStore, account: String, diff --git a/src/storage/localfs.rs b/src/storage/localfs.rs index 1229425b1..64ae1f9a2 100644 --- a/src/storage/localfs.rs +++ b/src/storage/localfs.rs @@ -25,7 +25,7 @@ use std::{ use async_trait::async_trait; use bytes::Bytes; -use datafusion::{datasource::listing::ListingTableUrl, execution::runtime_env::RuntimeConfig}; +use datafusion::{datasource::listing::ListingTableUrl, execution::runtime_env::RuntimeEnvBuilder}; use fs_extra::file::CopyOptions; use futures::{stream::FuturesUnordered, TryStreamExt}; use relative_path::{RelativePath, RelativePathBuf}; @@ -64,8 +64,8 @@ pub struct FSConfig { } impl ObjectStorageProvider for FSConfig { - fn get_datafusion_runtime(&self) -> RuntimeConfig { - RuntimeConfig::new() + fn get_datafusion_runtime(&self) -> RuntimeEnvBuilder { + RuntimeEnvBuilder::new() } fn construct_client(&self) -> Arc { @@ -81,6 +81,7 @@ impl ObjectStorageProvider for FSConfig { } } +#[derive(Debug)] pub struct LocalFS { // absolute path of the data directory root: PathBuf, diff --git a/src/storage/object_storage.rs b/src/storage/object_storage.rs index 9c07f8068..7252cfaf0 100644 --- a/src/storage/object_storage.rs +++ b/src/storage/object_storage.rs @@ -46,13 +46,14 @@ use arrow_schema::Schema; use async_trait::async_trait; use bytes::Bytes; use chrono::Local; -use datafusion::{datasource::listing::ListingTableUrl, execution::runtime_env::RuntimeConfig}; +use datafusion::{datasource::listing::ListingTableUrl, execution::runtime_env::RuntimeEnvBuilder}; use once_cell::sync::OnceCell; use relative_path::RelativePath; use relative_path::RelativePathBuf; use tracing::error; use std::collections::BTreeMap; +use std::fmt::Debug; use std::num::NonZeroU32; use std::{ collections::HashMap, @@ -63,7 +64,7 @@ use std::{ }; pub trait ObjectStorageProvider: StorageMetrics + std::fmt::Debug + Send + Sync { - fn get_datafusion_runtime(&self) -> RuntimeConfig; + fn get_datafusion_runtime(&self) -> RuntimeEnvBuilder; fn construct_client(&self) -> Arc; fn get_object_store(&self) -> Arc { static STORE: OnceCell> = OnceCell::new(); @@ -75,7 +76,7 @@ pub trait ObjectStorageProvider: StorageMetrics + std::fmt::Debug + Send + Sync } #[async_trait] -pub trait ObjectStorage: Send + Sync + 'static { +pub trait ObjectStorage: Debug + Send + Sync + 'static { async fn get_object(&self, path: &RelativePath) -> Result; // TODO: make the filter function optional as we may want to get all objects async fn get_objects( diff --git a/src/storage/s3.rs b/src/storage/s3.rs index 13c394128..ccf1be172 100644 --- a/src/storage/s3.rs +++ b/src/storage/s3.rs @@ -22,7 +22,7 @@ use datafusion::datasource::listing::ListingTableUrl; use datafusion::datasource::object_store::{ DefaultObjectStoreRegistry, ObjectStoreRegistry, ObjectStoreUrl, }; -use datafusion::execution::runtime_env::RuntimeConfig; +use datafusion::execution::runtime_env::RuntimeEnvBuilder; use futures::stream::FuturesUnordered; use futures::{StreamExt, TryStreamExt}; use object_store::aws::{AmazonS3, AmazonS3Builder, AmazonS3ConfigKey, Checksum}; @@ -285,7 +285,7 @@ impl S3Config { } impl ObjectStorageProvider for S3Config { - fn get_datafusion_runtime(&self) -> RuntimeConfig { + fn get_datafusion_runtime(&self) -> RuntimeEnvBuilder { let s3 = self.get_default_builder().build().unwrap(); // limit objectstore to a concurrent request limit @@ -296,7 +296,7 @@ impl ObjectStorageProvider for S3Config { let url = ObjectStoreUrl::parse(format!("s3://{}", &self.bucket_name)).unwrap(); object_store_registry.register_store(url.as_ref(), Arc::new(s3)); - RuntimeConfig::new().with_object_store_registry(Arc::new(object_store_registry)) + RuntimeEnvBuilder::new().with_object_store_registry(Arc::new(object_store_registry)) } fn construct_client(&self) -> Arc { @@ -325,6 +325,7 @@ fn to_object_store_path(path: &RelativePath) -> StorePath { StorePath::from(path.as_str()) } +#[derive(Debug)] pub struct S3 { client: LimitStore, bucket: String, diff --git a/src/utils/arrow/reverse_reader.rs b/src/utils/arrow/reverse_reader.rs index 02afe0406..bce5cd695 100644 --- a/src/utils/arrow/reverse_reader.rs +++ b/src/utils/arrow/reverse_reader.rs @@ -281,7 +281,11 @@ mod tests { let mut buf = Vec::new(); let rb1 = rb(1); - let schema = data_gen.schema_to_bytes(&rb1.schema(), &options); + let schema = data_gen.schema_to_bytes_with_dictionary_tracker( + &rb1.schema(), + &mut dictionary_tracker, + &options, + ); write_message(&mut buf, schema, &options).unwrap(); for i in (1..=3).cycle().skip(1).take(10000) { @@ -291,7 +295,11 @@ mod tests { write_message(&mut buf, encoded_message, &options).unwrap(); } - let schema = data_gen.schema_to_bytes(&rb1.schema(), &options); + let schema = data_gen.schema_to_bytes_with_dictionary_tracker( + &rb1.schema(), + &mut dictionary_tracker, + &options, + ); write_message(&mut buf, schema, &options).unwrap(); let buf = Cursor::new(buf);