From fd8837887858c626f2cd70ec9d82339d6ce66410 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Thu, 21 Sep 2023 11:13:57 -0500 Subject: [PATCH 1/3] Update arrow dependencies --- .pre-commit-config.yaml | 2 +- Cargo.lock | 961 +++++++++++++++++++--------------------- Cargo.toml | 1 + core/Cargo.toml | 8 +- core/src/encoders.rs | 100 +++-- core/src/lib.rs | 23 +- json/Cargo.toml | 4 +- json/src/lib.rs | 9 +- py/Cargo.toml | 5 +- py/src/encoders.rs | 88 ++-- py/src/lib.rs | 2 +- 11 files changed, 594 insertions(+), 609 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bf433ea..45c77d5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: pass_filenames: false - id: cargo-clippy name: cargo-clippy - entry: cargo clippy -- -D warnings + entry: cargo clippy --fix --allow-dirty --allow-staged --all -- -D warnings language: system types: [rust] pass_filenames: false diff --git a/Cargo.lock b/Cargo.lock index cd0d43d..afd8718 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,6 +17,7 @@ name = "_pgpq" version = "0.7.3" dependencies = [ "arrow", + "arrow-schema", "bytes", "pgpq", "pyo3", @@ -43,9 +44,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" dependencies = [ "memchr", ] @@ -65,6 +66,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[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" @@ -80,17 +87,23 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" +[[package]] +name = "anstyle" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" + [[package]] name = "anyhow" -version = "1.0.70" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arrow" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3724c874f1517cf898cd1c3ad18ab5071edf893c48e73139ab1e16cf0f2affe" +checksum = "04a8801ebb147ad240b2d978d3ab9f73c9ccd4557ba6a03e7800496770ed10e0" dependencies = [ "ahash", "arrow-arith", @@ -111,50 +124,51 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e958823b8383ca14d0a2e973de478dd7674cd9f72837f8c41c132a0fda6a4e5e" +checksum = "895263144bd4a69751cbe6a34a53f26626e19770b313a9fa792c415cd0e78f11" dependencies = [ "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", "chrono", - "half 2.2.1", + "half 2.3.1", "num", ] [[package]] name = "arrow-array" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db670eab50e76654065b5aed930f4367101fcddcb2223802007d1e0b4d5a2579" +checksum = "226fdc6c3a4ae154a74c24091d36a90b514f0ed7112f5b8322c1d8f354d8e20d" dependencies = [ "ahash", "arrow-buffer", "arrow-data", "arrow-schema", "chrono", - "half 2.2.1", - "hashbrown 0.13.2", + "half 2.3.1", + "hashbrown", "num", ] [[package]] name = "arrow-buffer" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f0e01c931882448c0407bd32311a624b9f099739e94e786af68adc97016b5f2" +checksum = "fc4843af4dd679c2f35b69c572874da8fde33be53eb549a5fb128e7a4b763510" dependencies = [ - "half 2.2.1", + "bytes", + "half 2.3.1", "num", ] [[package]] name = "arrow-cast" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf35d78836c93f80d9362f3ccb47ff5e2c5ecfc270ff42cdf1ef80334961d44" +checksum = "35e8b9990733a9b635f656efda3c9b8308c7a19695c9ec2c7046dd154f9b144b" dependencies = [ "arrow-array", "arrow-buffer", @@ -162,15 +176,16 @@ dependencies = [ "arrow-schema", "arrow-select", "chrono", + "half 2.3.1", "lexical-core", "num", ] [[package]] name = "arrow-csv" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6aa7c2531d89d01fed8c469a9b1bf97132a0bdf70b4724fe4bbb4537a50880" +checksum = "646fbb4e11dd0afb8083e883f53117713b8caadb4413b3c9e63e3f535da3683c" dependencies = [ "arrow-array", "arrow-buffer", @@ -187,21 +202,21 @@ dependencies = [ [[package]] name = "arrow-data" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea50db4d1e1e4c2da2bfdea7b6d2722eef64267d5ab680d815f7ae42428057f5" +checksum = "da900f31ff01a0a84da0572209be72b2b6f980f3ea58803635de47913191c188" dependencies = [ "arrow-buffer", "arrow-schema", - "half 2.2.1", + "half 2.3.1", "num", ] [[package]] name = "arrow-ipc" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4042fe6585155d1ec28a8e4937ec901a3ca7a19a22b9f6cd3f551b935cd84f5" +checksum = "2707a8d7ee2d345d045283ece3ae43416175873483e5d96319c929da542a0b1f" dependencies = [ "arrow-array", "arrow-buffer", @@ -213,9 +228,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c907c4ab4f26970a3719dc06e78e8054a01d0c96da3664d23b941e201b33d2b" +checksum = "5d1b91a63c356d14eedc778b76d66a88f35ac8498426bb0799a769a49a74a8b4" dependencies = [ "arrow-array", "arrow-buffer", @@ -223,56 +238,58 @@ dependencies = [ "arrow-data", "arrow-schema", "chrono", - "half 2.2.1", + "half 2.3.1", "indexmap", "lexical-core", "num", + "serde", "serde_json", ] [[package]] name = "arrow-ord" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e131b447242a32129efc7932f58ed8931b42f35d8701c1a08f9f524da13b1d3c" +checksum = "584325c91293abbca7aaaabf8da9fe303245d641f5f4a18a6058dc68009c7ebf" dependencies = [ "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", "arrow-select", + "half 2.3.1", "num", ] [[package]] name = "arrow-row" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b591ef70d76f4ac28dd7666093295fece0e5f9298f49af51ea49c001e1635bb6" +checksum = "0e32afc1329f7b372463b21c6ca502b07cf237e1ed420d87706c1770bb0ebd38" dependencies = [ "ahash", "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", - "half 2.2.1", - "hashbrown 0.13.2", + "half 2.3.1", + "hashbrown", ] [[package]] name = "arrow-schema" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb327717d87eb94be5eff3b0cb8987f54059d343ee5235abf7f143c85f54cfc8" +checksum = "b104f5daa730f00fde22adc03a12aa5a2ae9ccbbf99cbd53d284119ddc90e03d" dependencies = [ - "bitflags", + "bitflags 2.4.0", ] [[package]] name = "arrow-select" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79d3c389d1cea86793934f31594f914c8547d82e91e3411d4833ad0aac3266a7" +checksum = "73b3ca55356d1eae07cf48808d8c462cea674393ae6ad1e0b120f40b422eb2b4" dependencies = [ "arrow-array", "arrow-buffer", @@ -283,30 +300,20 @@ dependencies = [ [[package]] name = "arrow-string" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ee67790496dd310ddbf5096870324431e89aa76453e010020ac29b1184d356" +checksum = "af1433ce02590cae68da0a18ed3a3ed868ffac2c6f24c533ddd2067f7ee04b4a" dependencies = [ "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", "arrow-select", + "num", "regex", "regex-syntax", ] -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -315,27 +322,27 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "base64" -version = "0.13.1" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] -name = "base64" -version = "0.21.0" +name = "bitflags" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "1.3.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] @@ -363,9 +370,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byteorder" @@ -375,9 +382,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cast" @@ -387,11 +394,12 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -402,21 +410,21 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ + "android-tzdata", "iana-time-zone", - "num-integer", "num-traits", - "winapi", + "windows-targets", ] [[package]] name = "ciborium" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f" +checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" dependencies = [ "ciborium-io", "ciborium-ll", @@ -425,15 +433,15 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369" +checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" [[package]] name = "ciborium-ll" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b" +checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" dependencies = [ "ciborium-io", "half 1.8.2", @@ -441,34 +449,28 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.23" +version = "4.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +checksum = "b1d7b8d5ec32af0fadc644bf1fd509a688c2103b185644bb1e29d164e0703136" dependencies = [ - "bitflags", - "clap_lex", - "indexmap", - "textwrap", + "clap_builder", ] [[package]] -name = "clap_lex" -version = "0.2.4" +name = "clap_builder" +version = "4.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +checksum = "5179bb514e4d7c2051749d8fcefa2ed6d06a9f4e6d69faf3805f5d80b8cf8d56" dependencies = [ - "os_str_bytes", + "anstyle", + "clap_lex", ] [[package]] -name = "codespan-reporting" -version = "0.11.1" +name = "clap_lex" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" [[package]] name = "const-random" @@ -494,15 +496,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] @@ -518,19 +520,19 @@ dependencies = [ [[package]] name = "criterion" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" dependencies = [ "anes", - "atty", "cast", "ciborium", "clap", "criterion-plot", + "is-terminal", "itertools", - "lazy_static", "num-traits", + "once_cell", "oorandom", "plotters", "rayon", @@ -552,21 +554,11 @@ dependencies = [ "itertools", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -575,22 +567,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.7.1", + "memoffset", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] @@ -613,9 +605,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af91f40b7355f82b0a891f50e70399475945bb0b0da4f1700ce60761c9d3e359" +checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086" dependencies = [ "csv-core", "itoa", @@ -633,76 +625,59 @@ dependencies = [ ] [[package]] -name = "cxx" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.90" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn 1.0.107", + "block-buffer", + "crypto-common", + "subtle", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.90" +name = "either" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] -name = "cxxbridge-macro" -version = "1.0.90" +name = "enum_dispatch" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263" +checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e" dependencies = [ + "once_cell", "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.37", ] [[package]] -name = "digest" -version = "0.10.6" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "either" -version = "1.8.1" +name = "errno" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys", +] [[package]] -name = "enum_dispatch" -version = "0.3.11" +name = "errno-dragonfly" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f36e95862220b211a6e2aa5eca09b4fa391b13cd52ceb8035a24bf65a79de2" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "syn 1.0.107", + "cc", + "libc", ] [[package]] @@ -711,21 +686,27 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +[[package]] +name = "finl_unicode" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" + [[package]] name = "flatbuffers" -version = "23.1.21" +version = "23.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f5399c2c9c50ae9418e522842ad362f61ee48b346ac106807bd355a8a7c619" +checksum = "4dac53e22462d78c16d64a1cd22371b54cc3fe94aa15e7886a2fa6e5d1ab8640" dependencies = [ - "bitflags", + "bitflags 1.3.2", "rustc_version", ] [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -733,18 +714,18 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] [[package]] name = "futures" -version = "0.3.26" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -757,9 +738,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.26" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -767,15 +748,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.26" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-executor" -version = "0.3.26" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -784,32 +765,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.26" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-macro" -version = "0.3.26" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.37", ] [[package]] name = "futures-sink" -version = "0.3.26" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.26" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-timer" @@ -819,9 +800,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.26" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures-channel", "futures-core", @@ -837,9 +818,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -847,15 +828,21 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "libc", "wasi", ] +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + [[package]] name = "half" version = "1.8.2" @@ -864,43 +851,26 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" [[package]] name = "half" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" dependencies = [ + "cfg-if", "crunchy", "num-traits", ] [[package]] name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.13.2" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" [[package]] name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.2.6" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hmac" @@ -913,33 +883,32 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.53" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "winapi", + "windows", ] [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -947,12 +916,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" dependencies = [ - "autocfg", - "hashbrown 0.12.3", + "equivalent", + "hashbrown", ] [[package]] @@ -967,6 +936,17 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi", + "rustix", + "windows-sys", +] + [[package]] name = "itertools" version = "0.10.5" @@ -978,24 +958,24 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -1072,30 +1052,27 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.139" +version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" [[package]] name = "libm" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] -name = "link-cplusplus" -version = "1.0.8" +name = "linux-raw-sys" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] +checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -1103,12 +1080,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lz4" @@ -1141,42 +1115,33 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memoffset" -version = "0.7.1" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "memoffset" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] name = "miniz_oxide" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] [[package]] name = "num" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" dependencies = [ "num-bigint", "num-complex", @@ -1188,9 +1153,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -1199,9 +1164,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -1241,29 +1206,19 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" dependencies = [ "autocfg", "libm", ] -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi 0.2.6", - "libc", -] - [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "oorandom" @@ -1280,12 +1235,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "os_str_bytes" -version = "6.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" - [[package]] name = "parking_lot" version = "0.12.1" @@ -1298,22 +1247,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-sys", + "windows-targets", ] [[package]] name = "parquet" -version = "33.0.0" +version = "46.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1b076829801167d889795cd1957989055543430fa1469cb1f6e32b789bfc764" +checksum = "1ad2cba786ae07da4d73371a88b9e0f9d3ffac1a9badc83922e0e15814f5c5fa" dependencies = [ "ahash", "arrow-array", @@ -1323,12 +1272,12 @@ dependencies = [ "arrow-ipc", "arrow-schema", "arrow-select", - "base64 0.21.0", + "base64", "brotli", "bytes", "chrono", "flate2", - "hashbrown 0.13.2", + "hashbrown", "lz4", "num", "num-bigint", @@ -1342,15 +1291,15 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pgpq" @@ -1373,9 +1322,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -1385,15 +1334,15 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "plotters" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ "num-traits", "plotters-backend", @@ -1404,26 +1353,26 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" [[package]] name = "plotters-svg" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" dependencies = [ "plotters-backend", ] [[package]] name = "postgres-protocol" -version = "0.6.4" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878c6cbf956e03af9aa8204b407b9cbf47c072164800aa918c516cd4b056c50c" +checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" dependencies = [ - "base64 0.13.1", + "base64", "byteorder", "bytes", "fallible-iterator", @@ -1437,9 +1386,9 @@ dependencies = [ [[package]] name = "postgres-types" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73d946ec7d256b04dfadc4e6a3292324e6f417124750fc5c0950f981b703a0f1" +checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" dependencies = [ "bytes", "chrono", @@ -1461,23 +1410,23 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.52" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224" +checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" dependencies = [ "unicode-ident", ] [[package]] name = "pyo3" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06a3d8e8a46ab2738109347433cb7b96dffda2e4a218b03ef27090238886b147" +checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38" dependencies = [ "cfg-if", "indoc", "libc", - "memoffset 0.8.0", + "memoffset", "parking_lot", "pyo3-build-config", "pyo3-ffi", @@ -1487,9 +1436,9 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75439f995d07ddfad42b192dfcf3bc66a7ecfd8b4a1f5f6f046aa5c2c5d7677d" +checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5" dependencies = [ "once_cell", "target-lexicon", @@ -1497,9 +1446,9 @@ dependencies = [ [[package]] name = "pyo3-ffi" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "839526a5c07a17ff44823679b68add4a58004de00512a95b6c1c98a6dcac0ee5" +checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9" dependencies = [ "libc", "pyo3-build-config", @@ -1507,32 +1456,32 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd44cf207476c6a9760c4653559be4f206efafb924d3e4cbf2721475fc0d6cc5" +checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] name = "pyo3-macros-backend" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1f43d8e30460f36350d18631ccf85ded64c059829208fe680904c65bcd0a4c" +checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] name = "quote" -version = "1.0.26" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -1569,9 +1518,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -1579,30 +1528,40 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.2" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] name = "redox_syscall" -version = "0.2.16" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "regex" -version = "1.7.1" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" dependencies = [ "aho-corasick", "memchr", @@ -1611,9 +1570,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + +[[package]] +name = "relative-path" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca" [[package]] name = "ring" @@ -1632,9 +1597,9 @@ dependencies = [ [[package]] name = "rstest" -version = "0.16.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07f2d176c472198ec1e6551dc7da28f1c089652f66a7b722676c2238ebc0edf" +checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199" dependencies = [ "futures", "futures-timer", @@ -1644,15 +1609,18 @@ dependencies = [ [[package]] name = "rstest_macros" -version = "0.16.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7229b505ae0706e64f37ffc54a9c163e11022a6636d58fe1f3f52018257ff9f7" +checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" dependencies = [ "cfg-if", + "glob", "proc-macro2", "quote", + "regex", + "relative-path", "rustc_version", - "syn 1.0.107", + "syn 2.0.37", "unicode-ident", ] @@ -1665,23 +1633,56 @@ dependencies = [ "semver", ] +[[package]] +name = "rustix" +version = "0.38.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f" +dependencies = [ + "bitflags 2.4.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + [[package]] name = "rustls" -version = "0.20.8" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", "ring", + "rustls-webpki 0.101.5", "sct", - "webpki", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed" +dependencies = [ + "ring", + "untrusted", ] [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" @@ -1694,15 +1695,9 @@ dependencies = [ [[package]] name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sct" @@ -1716,41 +1711,41 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" [[package]] name = "seq-macro" -version = "0.3.2" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1685deded9b272198423bdbdb907d8519def2f26cf3699040e54e8c4fbd5c5ce" +checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] name = "serde" -version = "1.0.158" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.158" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn 2.0.37", ] [[package]] name = "serde_json" -version = "1.0.94" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -1759,9 +1754,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if", "cpufeatures", @@ -1770,18 +1765,18 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "snap" @@ -1803,25 +1798,26 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stringprep" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" +checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6" dependencies = [ + "finl_unicode", "unicode-bidi", "unicode-normalization", ] [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -1830,9 +1826,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.10" +version = "2.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aad1363ed6d37b84299588d62d3a7d95b5a5c2d9aad5c85609fda12afaa1f40" +checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" dependencies = [ "proc-macro2", "quote", @@ -1841,43 +1837,28 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.6" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" - -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "textwrap" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn 2.0.37", ] [[package]] @@ -1937,21 +1918,21 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-bidi" -version = "0.3.10" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -1962,12 +1943,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - [[package]] name = "unindent" version = "0.1.11" @@ -1982,25 +1957,25 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "ureq" -version = "2.6.2" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338b31dd1314f68f3aabf3ed57ab922df95ffcd902476ca7ba3c4ce7b908c46d" +checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9" dependencies = [ - "base64 0.13.1", + "base64", "flate2", "log", "once_cell", "rustls", + "rustls-webpki 0.100.3", "url", - "webpki", "webpki-roots", ] [[package]] name = "url" -version = "2.3.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", @@ -2015,12 +1990,11 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", - "winapi", "winapi-util", ] @@ -2032,9 +2006,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2042,24 +2016,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.37", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2067,50 +2041,40 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.37", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "web-sys" -version = "0.3.61" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki-roots" -version = "0.22.6" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki 0.100.3", ] [[package]] @@ -2131,9 +2095,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -2144,20 +2108,29 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets", +] + [[package]] name = "windows-sys" -version = "0.45.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -2170,60 +2143,60 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "zstd" -version = "0.12.3+zstd.1.5.2" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "6.0.4+zstd.1.5.4" +version = "6.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7afb4b54b8910cf5447638cb54bf4e8a65cbedd783af98b98c62ffe91f185543" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" dependencies = [ "libc", "zstd-sys", @@ -2231,9 +2204,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.7+zstd.1.5.4" +version = "2.0.8+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" dependencies = [ "cc", "libc", diff --git a/Cargo.toml b/Cargo.toml index dd74103..994cced 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,6 @@ [workspace] members = ["core", "py", "json"] +resolver = "2" [profile.bench.package.pgpq] debug = true diff --git a/core/Cargo.toml b/core/Cargo.toml index f279db5..cb0edc5 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -13,21 +13,21 @@ authors = ["Adrian Garcia Badaracco "] [dependencies] bytes = "^1.4.0" -arrow-schema = "^33.0.0" +arrow-schema = ">=46.0.0" enum_dispatch = "0.3.11" anyhow = "1.0.70" thiserror = "1.0.40" [dependencies.arrow-array] -version = "^33.0.0" +version = ">=46.0.0" default-features = false [dev-dependencies] rstest = ">=0.16.0" -parquet = ">=33.0.0" +parquet = ">=46.0.0" criterion = ">=0.4.0" arrow = { version = ">=32.0.0", features = ["ipc"]} -arrow-ipc = ">=33.0.0" +arrow-ipc = ">=46.0.0" postgres-types = {version = ">=0.2.4", features = ["with-chrono-0_4"]} ureq = "2.6.2" diff --git a/core/src/encoders.rs b/core/src/encoders.rs index 3135ffc..02b1909 100644 --- a/core/src/encoders.rs +++ b/core/src/encoders.rs @@ -535,13 +535,13 @@ type LargeListEncoder<'a> = GenericListEncoder<'a, i64>; pub trait BuildEncoder: std::fmt::Debug + PartialEq { fn try_new<'a, 'b: 'a>(&'b self, arr: &'a dyn Array) -> Result, ErrorKind>; fn schema(&self) -> Column; - fn field(&self) -> Field; + fn field(&self) -> Arc; } macro_rules! impl_encoder_builder_stateless { ($struct_name:ident, $enum_name:expr, $encoder_name:ident, $pg_data_type:expr, $check_data_type:expr) => { impl $struct_name { - pub fn new(field: Field) -> Result { + pub fn new(field: Arc) -> Result { if !$check_data_type(field.data_type()) { return Err(ErrorKind::FieldTypeNotSupported { encoder: stringify!($struct_name).to_string(), @@ -564,7 +564,7 @@ macro_rules! impl_encoder_builder_stateless { nullable: self.field.is_nullable(), } } - fn field(&self) -> Field { + fn field(&self) -> Arc { self.field.clone() } } @@ -574,7 +574,7 @@ macro_rules! impl_encoder_builder_stateless { macro_rules! impl_encoder_builder_stateless_with_field { ($struct_name:ident, $enum_name:expr, $encoder_name:ident, $pg_data_type:expr, $check_data_type:expr) => { impl $struct_name { - pub fn new(field: Field) -> Result { + pub fn new(field: Arc) -> Result { if !$check_data_type(field.data_type()) { return Err(ErrorKind::FieldTypeNotSupported { encoder: stringify!($struct_name).to_string(), @@ -600,7 +600,7 @@ macro_rules! impl_encoder_builder_stateless_with_field { nullable: self.field.is_nullable(), } } - fn field(&self) -> Field { + fn field(&self) -> Arc { self.field.clone() } } @@ -610,7 +610,7 @@ macro_rules! impl_encoder_builder_stateless_with_field { macro_rules! impl_encoder_builder_stateless_with_variable_output { ($struct_name:ident, $enum_name:expr, $encoder_name:ident, $pg_data_type:expr, $allowed_pg_data_types:expr, $check_data_type:expr) => { impl $struct_name { - pub fn new(field: Field) -> Result { + pub fn new(field: Arc) -> Result { if !$check_data_type(field.data_type()) { return Err(ErrorKind::FieldTypeNotSupported { encoder: stringify!($struct_name).to_string(), @@ -623,7 +623,10 @@ macro_rules! impl_encoder_builder_stateless_with_variable_output { output: $pg_data_type, }) } - pub fn new_with_output(field: Field, output: PostgresType) -> Result { + pub fn new_with_output( + field: Arc, + output: PostgresType, + ) -> Result { if !$allowed_pg_data_types.contains(&output) { return Err(ErrorKind::unsupported_encoding( &field.name(), @@ -646,7 +649,7 @@ macro_rules! impl_encoder_builder_stateless_with_variable_output { nullable: self.field.is_nullable(), } } - fn field(&self) -> Field { + fn field(&self) -> Arc { self.field.clone() } } @@ -655,7 +658,7 @@ macro_rules! impl_encoder_builder_stateless_with_variable_output { #[derive(Debug, Clone, PartialEq)] pub struct BooleanEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( BooleanEncoderBuilder, @@ -667,7 +670,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct UInt8EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( UInt8EncoderBuilder, @@ -679,7 +682,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct UInt16EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( UInt16EncoderBuilder, @@ -691,7 +694,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct UInt32EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( UInt32EncoderBuilder, @@ -703,7 +706,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct Int8EncoderBuilder { - field: Field, + field: Arc, output: PostgresType, } impl_encoder_builder_stateless_with_variable_output!( @@ -711,13 +714,13 @@ impl_encoder_builder_stateless_with_variable_output!( Encoder::Int8, Int8Encoder, PostgresType::Int2, - vec![PostgresType::Char, PostgresType::Int2], + [PostgresType::Char, PostgresType::Int2], |dt: &DataType| matches!(dt, DataType::Int8) ); #[derive(Debug, Clone, PartialEq)] pub struct Int16EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Int16EncoderBuilder, @@ -729,7 +732,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct Int32EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Int32EncoderBuilder, @@ -741,7 +744,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct Int64EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Int64EncoderBuilder, @@ -753,7 +756,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct Float16EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Float16EncoderBuilder, @@ -765,7 +768,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct Float32EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Float32EncoderBuilder, @@ -777,7 +780,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct Float64EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Float64EncoderBuilder, @@ -789,7 +792,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct TimestampMicrosecondEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless_with_field!( TimestampMicrosecondEncoderBuilder, @@ -801,7 +804,7 @@ impl_encoder_builder_stateless_with_field!( #[derive(Debug, Clone, PartialEq)] pub struct TimestampMillisecondEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless_with_field!( TimestampMillisecondEncoderBuilder, @@ -813,7 +816,7 @@ impl_encoder_builder_stateless_with_field!( #[derive(Debug, Clone, PartialEq)] pub struct TimestampSecondEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless_with_field!( TimestampSecondEncoderBuilder, @@ -825,7 +828,7 @@ impl_encoder_builder_stateless_with_field!( #[derive(Debug, Clone, PartialEq)] pub struct Date32EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Date32EncoderBuilder, @@ -837,7 +840,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct Date64EncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless_with_field!( Date64EncoderBuilder, @@ -849,7 +852,7 @@ impl_encoder_builder_stateless_with_field!( #[derive(Debug, Clone, PartialEq)] pub struct Time32MillisecondEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Time32MillisecondEncoderBuilder, @@ -861,7 +864,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct Time32SecondEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Time32SecondEncoderBuilder, @@ -873,7 +876,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct Time64MicrosecondEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( Time64MicrosecondEncoderBuilder, @@ -885,7 +888,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct DurationMicrosecondEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless!( DurationMicrosecondEncoderBuilder, @@ -897,7 +900,7 @@ impl_encoder_builder_stateless!( #[derive(Debug, Clone, PartialEq)] pub struct DurationMillisecondEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless_with_field!( DurationMillisecondEncoderBuilder, @@ -909,7 +912,7 @@ impl_encoder_builder_stateless_with_field!( #[derive(Debug, Clone, PartialEq)] pub struct DurationSecondEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless_with_field!( DurationSecondEncoderBuilder, @@ -951,7 +954,7 @@ impl StringOutputType { macro_rules! impl_encoder_builder_with_variable_output { ($struct_name:ident, $enum_name:expr, $encoder_name:ident, $check_data_type:expr) => { impl $struct_name { - pub fn new(field: Field) -> Result { + pub fn new(field: Arc) -> Result { if !$check_data_type(field.data_type()) { return Err(ErrorKind::FieldTypeNotSupported { encoder: stringify!($struct_name).to_string(), @@ -964,7 +967,10 @@ macro_rules! impl_encoder_builder_with_variable_output { output: StringOutputType::Text, }) } - pub fn new_with_output(field: Field, output: PostgresType) -> Result { + pub fn new_with_output( + field: Arc, + output: PostgresType, + ) -> Result { let output = StringOutputType::from_postgres_type(output, &field)?; Ok(Self { field, output }) } @@ -985,7 +991,7 @@ macro_rules! impl_encoder_builder_with_variable_output { nullable: self.field.is_nullable(), } } - fn field(&self) -> Field { + fn field(&self) -> Arc { self.field.clone() } } @@ -994,7 +1000,7 @@ macro_rules! impl_encoder_builder_with_variable_output { #[derive(Debug, Clone, PartialEq)] pub struct StringEncoderBuilder { - field: Field, + field: Arc, output: StringOutputType, } impl_encoder_builder_with_variable_output!( @@ -1006,7 +1012,7 @@ impl_encoder_builder_with_variable_output!( #[derive(Debug, Clone, PartialEq)] pub struct LargeStringEncoderBuilder { - field: Field, + field: Arc, output: StringOutputType, } @@ -1019,7 +1025,7 @@ impl_encoder_builder_with_variable_output!( #[derive(Debug, Clone, PartialEq)] pub struct BinaryEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless_with_field!( BinaryEncoderBuilder, @@ -1031,7 +1037,7 @@ impl_encoder_builder_stateless_with_field!( #[derive(Debug, Clone, PartialEq)] pub struct LargeBinaryEncoderBuilder { - field: Field, + field: Arc, } impl_encoder_builder_stateless_with_field!( LargeBinaryEncoderBuilder, @@ -1044,10 +1050,10 @@ impl_encoder_builder_stateless_with_field!( macro_rules! impl_list_encoder_builder { ($struct_name:ident, $enum_name:expr, $encoder_name:ident) => { impl $struct_name { - pub fn new(field: Field) -> Result { + pub fn new(field: Arc) -> Result { match &field.data_type() { DataType::List(inner) => { - let inner_encoder_builder = EncoderBuilder::try_new((**inner).clone())?; + let inner_encoder_builder = EncoderBuilder::try_new(inner.clone())?; Ok(Self { field, inner_encoder_builder: Arc::new(inner_encoder_builder), @@ -1061,7 +1067,7 @@ macro_rules! impl_list_encoder_builder { } } pub fn new_with_inner( - field: Field, + field: Arc, inner_encoder_builder: EncoderBuilder, ) -> Result { Ok(Self { @@ -1089,7 +1095,7 @@ macro_rules! impl_list_encoder_builder { nullable: self.field.is_nullable(), } } - fn field(&self) -> Field { + fn field(&self) -> Arc { self.field.clone() } } @@ -1104,7 +1110,7 @@ macro_rules! impl_list_encoder_builder { #[derive(Debug, Clone, PartialEq)] pub struct ListEncoderBuilder { - field: Field, + field: Arc, inner_encoder_builder: Arc, } @@ -1112,7 +1118,7 @@ impl_list_encoder_builder!(ListEncoderBuilder, Encoder::List, ListEncoder); #[derive(Debug, Clone, PartialEq)] pub struct LargeListEncoderBuilder { - field: Field, + field: Arc, inner_encoder_builder: Arc, } impl_list_encoder_builder!( @@ -1155,7 +1161,7 @@ pub enum EncoderBuilder { } impl EncoderBuilder { - pub fn try_new(field: Field) -> Result { + pub fn try_new(field: Arc) -> Result { let data_type = field.data_type(); let res = match data_type { DataType::Boolean => Self::Boolean(BooleanEncoderBuilder { field }), @@ -1250,7 +1256,7 @@ impl EncoderBuilder { "nested lists are not supported", )); } - let inner = Self::try_new(*inner.clone())?; + let inner = Self::try_new(inner.clone())?; Self::List(ListEncoderBuilder { field, inner_encoder_builder: Arc::new(inner), @@ -1267,7 +1273,7 @@ impl EncoderBuilder { "nested lists are not supported", )); } - let inner = Self::try_new(*inner.clone())?; + let inner = Self::try_new(inner.clone())?; Self::LargeList(LargeListEncoderBuilder { field, inner_encoder_builder: Arc::new(inner), diff --git a/core/src/lib.rs b/core/src/lib.rs index a7a8fb3..c30e5fd 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use arrow_array::RecordBatch; -use arrow_schema::Field as ArrowField; +use arrow_schema::Fields; use arrow_schema::Schema; use bytes::{BufMut, BytesMut}; use error::ErrorKind; @@ -24,13 +24,13 @@ enum EncoderState { #[derive(Debug)] pub struct ArrowToPostgresBinaryEncoder { - fields: Vec, + fields: Fields, state: EncoderState, encoder_builders: Vec, } pub fn build_encoders( - fields: &[arrow_schema::Field], + fields: &arrow_schema::Fields, ) -> Vec<(String, Result)> { fields .iter() @@ -41,16 +41,15 @@ pub fn build_encoders( impl ArrowToPostgresBinaryEncoder { /// Creates a new writer which will write rows of the provided types to the provided sink. pub fn try_new(schema: &Schema) -> Result { - let fields = schema.fields.to_vec(); + let fields = schema.fields(); - let maybe_encoder_builders: Result, ErrorKind> = - build_encoders(schema.fields()) - .into_iter() - .map(|(_, maybe_encoder)| maybe_encoder) - .collect(); + let maybe_encoder_builders: Result, ErrorKind> = build_encoders(fields) + .into_iter() + .map(|(_, maybe_encoder)| maybe_encoder) + .collect(); Ok(ArrowToPostgresBinaryEncoder { - fields: fields.to_vec(), + fields: fields.clone(), state: EncoderState::Created, encoder_builders: maybe_encoder_builders?, }) @@ -81,7 +80,7 @@ impl ArrowToPostgresBinaryEncoder { }); } Ok(ArrowToPostgresBinaryEncoder { - fields: schema.fields.to_vec(), + fields: schema.fields.clone(), state: EncoderState::Created, encoder_builders: maybe_encoder_builders?, }) @@ -197,7 +196,7 @@ mod tests { field_name.to_string(), EncoderBuilder::String( StringEncoderBuilder::new_with_output( - batch.schema().field_with_name("json").unwrap().clone(), + Arc::new(batch.schema().field_with_name("json").unwrap().clone()), pg_schema::PostgresType::Jsonb, ) .unwrap(), diff --git a/json/Cargo.toml b/json/Cargo.toml index 3b1291e..9f9ea1a 100644 --- a/json/Cargo.toml +++ b/json/Cargo.toml @@ -10,12 +10,12 @@ name = "_arrow_json" crate-type = ["cdylib"] [dependencies] -arrow = {version = "^33.0.0", features = ["pyarrow", "json"] } +arrow = {version = ">=46.0.0", features = ["pyarrow", "json"] } serde = "1.0.158" serde_json = "1.0.94" [dependencies.pyo3] -version = "^0.18.0" +version = "^0.19.0" features = ["extension-module", "abi3-py37"] [package.metadata.maturin] diff --git a/json/src/lib.rs b/json/src/lib.rs index 77b6ce7..85b6f5a 100644 --- a/json/src/lib.rs +++ b/json/src/lib.rs @@ -1,10 +1,11 @@ +use arrow::array::Array; use arrow::array::StringBuilder; use pyo3::prelude::*; use pyo3::Python; -use arrow::array::{make_array, Array, ArrayData, LargeStringBuilder}; +use arrow::array::{make_array, ArrayData, LargeStringBuilder}; use arrow::json::writer::array_to_json_array; -use arrow::pyarrow::PyArrowConvert; +use arrow::pyarrow::{FromPyArrow, ToPyArrow}; use serde_json::{to_string, Value}; #[pyfunction] @@ -22,7 +23,7 @@ fn array_to_utf8_json_array(py: Python, array: &PyAny, large: bool) -> PyResult< } } let json_arr = builder.finish(); - json_arr.data().to_pyarrow(py) + json_arr.into_data().to_pyarrow(py) } else { let mut builder = StringBuilder::new(); for value in json.into_iter() { @@ -32,7 +33,7 @@ fn array_to_utf8_json_array(py: Python, array: &PyAny, large: bool) -> PyResult< } } let json_arr = builder.finish(); - json_arr.data().to_pyarrow(py) + json_arr.into_data().to_pyarrow(py) } } diff --git a/py/Cargo.toml b/py/Cargo.toml index 5504618..4e608ae 100644 --- a/py/Cargo.toml +++ b/py/Cargo.toml @@ -10,12 +10,13 @@ name = "pgpq" crate-type = ["cdylib"] [dependencies] -arrow = {version = "^33.0.0", features = ["pyarrow"] } +arrow = {version = "46.0.0", features = ["pyarrow"] } +arrow-schema = "46.0.0" bytes = "^1.4.0" pgpq = { path = "../core" } [dependencies.pyo3] -version = "^0.18.0" +version = "^0.19.0" features = ["extension-module", "abi3-py37"] [package.metadata.maturin] diff --git a/py/src/encoders.rs b/py/src/encoders.rs index b5fb11c..62a04ce 100644 --- a/py/src/encoders.rs +++ b/py/src/encoders.rs @@ -1,5 +1,7 @@ -use arrow::datatypes::Field; -use arrow::pyarrow::PyArrowConvert; +use std::sync::Arc; + +use arrow::pyarrow::{FromPyArrow, ToPyArrow}; +use arrow_schema::Field; use pyo3::class::basic::CompareOp; use pyo3::exceptions::PyRuntimeError; use pyo3::types::PyType; @@ -15,8 +17,8 @@ macro_rules! impl_passthrough_encoder_builder { impl $py_class { #[new] fn new(py: Python, py_field: &PyAny) -> PyResult { - let field: Field = PyArrowConvert::from_pyarrow(py_field)?; - let inner = match pgpq::encoders::EncoderBuilder::try_new(field) { + let field: Field = FromPyArrow::from_pyarrow(py_field)?; + let inner = match pgpq::encoders::EncoderBuilder::try_new(Arc::new(field)) { Ok(inner) => inner, Err(e) => { return Err(PyValueError::new_err(format!( @@ -69,8 +71,8 @@ macro_rules! impl_passthrough_encoder_builder_variable_output { impl $py_class { #[new] fn new(py: Python, py_field: &PyAny) -> PyResult { - let field: Field = PyArrowConvert::from_pyarrow(py_field)?; - let inner = match <$pgpq_encoder_builder>::new(field) { + let field: Field = FromPyArrow::from_pyarrow(py_field)?; + let inner = match <$pgpq_encoder_builder>::new(Arc::new(field)) { Ok(inner) => inner, Err(e) => { return Err(PyValueError::new_err(format!( @@ -94,9 +96,10 @@ macro_rules! impl_passthrough_encoder_builder_variable_output { py_field: &PyAny, py_output: PostgresType, ) -> PyResult { - let field: Field = PyArrowConvert::from_pyarrow(py_field)?; + let field: Field = FromPyArrow::from_pyarrow(py_field)?; let output = pgpq::pg_schema::PostgresType::from(py_output.clone()); - let inner = match <$pgpq_encoder_builder>::new_with_output(field, output) { + let inner = match <$pgpq_encoder_builder>::new_with_output(Arc::new(field), output) + { Ok(inner) => inner, Err(e) => { return Err(PyValueError::new_err(format!( @@ -374,8 +377,8 @@ macro_rules! impl_list { impl $struct { #[new] fn new(py: Python, py_field: &PyAny) -> PyResult { - let field: Field = PyArrowConvert::from_pyarrow(py_field)?; - let inner = match pgpq::encoders::EncoderBuilder::try_new(field) { + let field: Field = FromPyArrow::from_pyarrow(py_field)?; + let inner = match pgpq::encoders::EncoderBuilder::try_new(Arc::new(field)) { Ok(inner) => inner, Err(e) => { return Err(PyValueError::new_err(format!( @@ -397,13 +400,14 @@ macro_rules! impl_list { py_field: &PyAny, py_inner_encoder_builder: EncoderBuilder, ) -> PyResult { - let field: Field = PyArrowConvert::from_pyarrow(py_field)?; + let field: Field = FromPyArrow::from_pyarrow(py_field)?; let inner_encoder_builder: pgpq::encoders::EncoderBuilder = py_inner_encoder_builder.into(); Ok(Self { field: py_field.to_object(py), inner: $encoder_builder_enum_variant( - $encoder_builder_new_with_inner(field, inner_encoder_builder).unwrap(), + $encoder_builder_new_with_inner(Arc::new(field), inner_encoder_builder) + .unwrap(), ), }) } @@ -539,8 +543,8 @@ impl crate::utils::PythonRepr for EncoderBuilder { impl EncoderBuilder { pub fn try_new(py: Python, py_field: &PyAny) -> PyResult { - let field: Field = PyArrowConvert::from_pyarrow(py_field)?; - let inner = match pgpq::encoders::EncoderBuilder::try_new(field) { + let field: Field = FromPyArrow::from_pyarrow(py_field)?; + let inner = match pgpq::encoders::EncoderBuilder::try_new(Arc::new(field)) { Ok(inner) => inner, Err(_e) => { return Err(PyRuntimeError::new_err(format!( @@ -729,28 +733,28 @@ impl From for EncoderBuilder { pgpq::encoders::EncoderBuilder::Boolean(inner) => { let field = inner.field(); EncoderBuilder::Boolean(BooleanEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::UInt8(inner) => { let field = inner.field(); EncoderBuilder::UInt8(UInt8EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::UInt16(inner) => { let field = inner.field(); EncoderBuilder::UInt16(UInt16EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::UInt32(inner) => { let field = inner.field(); EncoderBuilder::UInt32(UInt32EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } @@ -758,7 +762,7 @@ impl From for EncoderBuilder { let field = inner.field(); let output: crate::pg_schema::PostgresType = inner.schema().data_type.into(); EncoderBuilder::Int8(Int8EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, output, }) @@ -766,119 +770,119 @@ impl From for EncoderBuilder { pgpq::encoders::EncoderBuilder::Int16(inner) => { let field = inner.field(); EncoderBuilder::Int16(Int16EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Int32(inner) => { let field = inner.field(); EncoderBuilder::Int32(Int32EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Int64(inner) => { let field = inner.field(); EncoderBuilder::Int64(Int64EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Float16(inner) => { let field = inner.field(); EncoderBuilder::Float16(Float16EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Float32(inner) => { let field = inner.field(); EncoderBuilder::Float32(Float32EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Float64(inner) => { let field = inner.field(); EncoderBuilder::Float64(Float64EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::TimestampMicrosecond(inner) => { let field = inner.field(); EncoderBuilder::TimestampMicrosecond(TimestampMicrosecondEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::TimestampMillisecond(inner) => { let field = inner.field(); EncoderBuilder::TimestampMillisecond(TimestampMillisecondEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::TimestampSecond(inner) => { let field = inner.field(); EncoderBuilder::TimestampSecond(TimestampSecondEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Date32(inner) => { let field = inner.field(); EncoderBuilder::Date32(Date32EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Date64(inner) => { let field = inner.field(); EncoderBuilder::Date64(Date64EncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Time32Millisecond(inner) => { let field = inner.field(); EncoderBuilder::Time32Millisecond(Time32MillisecondEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Time32Second(inner) => { let field = inner.field(); EncoderBuilder::Time32Second(Time32SecondEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::Time64Microsecond(inner) => { let field = inner.field(); EncoderBuilder::Time64Microsecond(Time64MicrosecondEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::DurationMicrosecond(inner) => { let field = inner.field(); EncoderBuilder::DurationMicrosecond(DurationMicrosecondEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::DurationMillisecond(inner) => { let field = inner.field(); EncoderBuilder::DurationMillisecond(DurationMillisecondEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::DurationSecond(inner) => { let field = inner.field(); EncoderBuilder::DurationSecond(DurationSecondEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } @@ -886,7 +890,7 @@ impl From for EncoderBuilder { let field = inner.field(); let output: crate::pg_schema::PostgresType = inner.schema().data_type.into(); EncoderBuilder::String(StringEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, output, }) @@ -895,7 +899,7 @@ impl From for EncoderBuilder { let field = inner.field(); let output: crate::pg_schema::PostgresType = inner.schema().data_type.into(); EncoderBuilder::LargeString(LargeStringEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, output, }) @@ -903,28 +907,28 @@ impl From for EncoderBuilder { pgpq::encoders::EncoderBuilder::Binary(inner) => { let field = inner.field(); EncoderBuilder::Binary(BinaryEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::LargeBinary(inner) => { let field = inner.field(); EncoderBuilder::LargeBinary(LargeBinaryEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::List(inner) => { let field = inner.field(); EncoderBuilder::List(ListEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } pgpq::encoders::EncoderBuilder::LargeList(inner) => { let field = inner.field(); EncoderBuilder::LargeList(LargeListEncoderBuilder { - field: PyArrowConvert::to_pyarrow(&field, py).unwrap(), + field: field.to_pyarrow(py).unwrap(), inner: value, }) } diff --git a/py/src/lib.rs b/py/src/lib.rs index ab68425..b336c66 100644 --- a/py/src/lib.rs +++ b/py/src/lib.rs @@ -6,7 +6,7 @@ use pyo3::types::{PyBytes, PyDict}; use pyo3::Python; use arrow::datatypes::Schema as ArrowSchema; -use arrow::pyarrow::PyArrowConvert; +use arrow::pyarrow::FromPyArrow; use arrow::record_batch::RecordBatch; use bytes::BytesMut; From 65d47e7886c250aff587b68c874cceff234788af Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Thu, 21 Sep 2023 12:11:14 -0500 Subject: [PATCH 2/3] bump versions, fix ci --- .github/workflows/rust.yaml | 2 +- Cargo.lock | 6 +++--- core/Cargo.toml | 2 +- json/Cargo.toml | 2 +- py/Cargo.toml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/rust.yaml b/.github/workflows/rust.yaml index b562451..2e4ac4d 100644 --- a/.github/workflows/rust.yaml +++ b/.github/workflows/rust.yaml @@ -47,7 +47,7 @@ jobs: - uses: actions-rs/cargo@v1 with: command: clippy - args: -- -D warnings + args: --all -- -D warnings test: name: Test Suite diff --git a/Cargo.lock b/Cargo.lock index afd8718..2869429 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,7 +4,7 @@ version = 3 [[package]] name = "_arrow_json" -version = "0.7.3" +version = "0.8.0" dependencies = [ "arrow", "pyo3", @@ -14,7 +14,7 @@ dependencies = [ [[package]] name = "_pgpq" -version = "0.7.3" +version = "0.8.0" dependencies = [ "arrow", "arrow-schema", @@ -1303,7 +1303,7 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pgpq" -version = "0.7.3" +version = "0.8.0" dependencies = [ "anyhow", "arrow", diff --git a/core/Cargo.toml b/core/Cargo.toml index cb0edc5..be6c11f 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pgpq" -version = "0.7.3" +version = "0.8.0" edition = "2021" description = "Encode Apache Arrow `RecordBatch`es to Postgres' native binary format" license = "MIT" diff --git a/json/Cargo.toml b/json/Cargo.toml index 9f9ea1a..ed244b5 100644 --- a/json/Cargo.toml +++ b/json/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "_arrow_json" -version = "0.7.3" +version = "0.8.0" edition = "2021" readme = "README.md" license = "MIT" diff --git a/py/Cargo.toml b/py/Cargo.toml index 4e608ae..eb02300 100644 --- a/py/Cargo.toml +++ b/py/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "_pgpq" -version = "0.7.3" +version = "0.8.0" edition = "2021" readme = "README.md" license = "MIT" From a23510f7688d5d73fcc76e64350551db85538c36 Mon Sep 17 00:00:00 2001 From: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com> Date: Thu, 21 Sep 2023 12:39:17 -0500 Subject: [PATCH 3/3] ignore lints --- core/src/encoders.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/encoders.rs b/core/src/encoders.rs index 02b1909..b6709d8 100644 --- a/core/src/encoders.rs +++ b/core/src/encoders.rs @@ -1,3 +1,5 @@ +#![allow(clippy::redundant_closure_call)] + use arrow_array::{self, Array, ArrowNativeTypeOp, OffsetSizeTrait}; use arrow_schema::{DataType, Field, TimeUnit}; use bytes::{BufMut, BytesMut};