This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/master by this push:
     new 2801c8c01 Update to arrow `30.0.1` (#4818)
2801c8c01 is described below

commit 2801c8c01c09febe14a414fb303ad69808bff920
Author: Raphael Taylor-Davies <[email protected]>
AuthorDate: Sun Jan 15 15:40:37 2023 +0000

    Update to arrow `30.0.1` (#4818)
    
    * Update to arrow 30
    
    * Update flight
    
    * CSV Error
    
    * Format
    
    * Update arrow 30
    
    * Tweaks
---
 benchmarks/Cargo.toml                              |   4 +-
 datafusion-cli/Cargo.lock                          | 201 ++++++-----
 datafusion-cli/Cargo.toml                          |   2 +-
 datafusion-examples/Cargo.toml                     |   4 +-
 datafusion-examples/examples/flight_client.rs      |   2 +-
 datafusion-examples/examples/flight_server.rs      |  40 +--
 datafusion/common/Cargo.toml                       |   4 +-
 datafusion/core/Cargo.toml                         |   6 +-
 .../core/src/physical_plan/file_format/csv.rs      |  23 +-
 datafusion/expr/Cargo.toml                         |   2 +-
 datafusion/jit/Cargo.toml                          |   2 +-
 datafusion/optimizer/Cargo.toml                    |   2 +-
 datafusion/physical-expr/Cargo.toml                |   6 +-
 datafusion/physical-expr/src/expressions/nullif.rs |   2 +-
 datafusion/proto/Cargo.toml                        |   4 +-
 datafusion/proto/src/generated/prost.rs            | 397 +++++++++++++++++++++
 datafusion/row/Cargo.toml                          |   2 +-
 datafusion/sql/Cargo.toml                          |   2 +-
 parquet-test-utils/Cargo.toml                      |   2 +-
 test-utils/Cargo.toml                              |   2 +-
 20 files changed, 552 insertions(+), 157 deletions(-)

diff --git a/benchmarks/Cargo.toml b/benchmarks/Cargo.toml
index 33fd436eb..d821abc0c 100644
--- a/benchmarks/Cargo.toml
+++ b/benchmarks/Cargo.toml
@@ -33,14 +33,14 @@ simd = ["datafusion/simd"]
 snmalloc = ["snmalloc-rs"]
 
 [dependencies]
-arrow = "29.0.0"
+arrow = "30.0.1"
 datafusion = { path = "../datafusion/core", version = "16.0.0", features = 
["scheduler"] }
 env_logger = "0.10"
 futures = "0.3"
 mimalloc = { version = "0.1", optional = true, default-features = false }
 num_cpus = "1.13.0"
 object_store = "0.5.0"
-parquet = "29.0.0"
+parquet = "30.0.1"
 parquet-test-utils = { path = "../parquet-test-utils/", version = "0.1.0" }
 rand = "0.8.4"
 serde = { version = "1.0.136", features = ["derive"] }
diff --git a/datafusion-cli/Cargo.lock b/datafusion-cli/Cargo.lock
index e4bc1b20d..e6f0b5303 100644
--- a/datafusion-cli/Cargo.lock
+++ b/datafusion-cli/Cargo.lock
@@ -68,11 +68,12 @@ checksum = 
"8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
 
 [[package]]
 name = "arrow"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2fe17dc0113da7e2eaeaedbd304d347aa8ea64916d225b79a5c3f3b6b5d8da4c"
+checksum = "1948f504d736dc6f71ea33773c5c7475998c44925be5321e9d18087a626845f5"
 dependencies = [
  "ahash",
+ "arrow-arith",
  "arrow-array",
  "arrow-buffer",
  "arrow-cast",
@@ -81,23 +82,33 @@ dependencies = [
  "arrow-ipc",
  "arrow-json",
  "arrow-ord",
+ "arrow-row",
  "arrow-schema",
  "arrow-select",
  "arrow-string",
- "chrono",
  "comfy-table",
+]
+
+[[package]]
+name = "arrow-arith"
+version = "30.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "5984187a7913813ffd5bb034fdc6810bdbe0ae4cff2292f0eb92797342dc02c8"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
  "half",
- "hashbrown 0.13.1",
- "multiversion",
  "num",
- "regex",
 ]
 
 [[package]]
 name = "arrow-array"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b9452131e027aec3276e43449162af084db611c42ef875e54d231e6580bc6254"
+checksum = "bf71dc342bb42343d331b58c0bcad095dc045e367493d47b7f4c4509e2adfee5"
 dependencies = [
  "ahash",
  "arrow-buffer",
@@ -105,15 +116,15 @@ dependencies = [
  "arrow-schema",
  "chrono",
  "half",
- "hashbrown 0.13.1",
+ "hashbrown 0.13.2",
  "num",
 ]
 
 [[package]]
 name = "arrow-buffer"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4a301001e8ed7da638a12fa579ac5f3f154c44c0655f2ca6ed0f8586b418a779"
+checksum = "a7b328d9f3e124cca761ec85a6d3fcea9bf8de1b8531c7a3b6abd367472024df"
 dependencies = [
  "half",
  "num",
@@ -121,9 +132,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-cast"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "048c91d067f2eb8cc327f086773e5b0f0d7714780807fc4db09366584e23bac8"
+checksum = "03976edbf66ac00a582af10a51743f0a9611777adfd68c71799d783344c3bdd2"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -137,9 +148,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-csv"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ed914cd0006a3bb9cac8136b3098ac7796ad26b82362f00d4f2e7c1a54684b86"
+checksum = "c1b610dc9e3b43bcebeacede47381252ea41363fbcc3c3eb641ff24fc94e567e"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -148,6 +159,7 @@ dependencies = [
  "arrow-schema",
  "chrono",
  "csv",
+ "csv-core",
  "lazy_static",
  "lexical-core",
  "regex",
@@ -155,9 +167,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-data"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e59619d9d102e4e6b22087b2bd60c07df76fcb68683620841718f6bc8e8f02cb"
+checksum = "174df8602dedcdb9149538809c11bd3c0888af30b915f763c66a3d724391c8b9"
 dependencies = [
  "arrow-buffer",
  "arrow-schema",
@@ -167,9 +179,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-ipc"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "fb7ad6d2fa06a1cebdaa213c59fc953b9230e560d8374aba133b572b864ec55e"
+checksum = "2a316907980e70fbf87b006c52993a22d93e4a9bca4ec2ac42cfedb2fdc204ac"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -181,9 +193,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-json"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1e22efab3ad70336057660c5e5f2b72e2417e3444c27cb42dc477d678ddd6979"
+checksum = "2cc1a1b2e98be0d8d20f932f76a8d976b779d502c8f6b828becc835d6879e903"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -199,9 +211,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-ord"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e23b623332804a65ad11e7732c351896dcb132c19f8e25d99fdb13b00aae5206"
+checksum = "7db83c14ddddf81c1d10ce303670f70b7687c8f52de7425b09ae905e4357fda5"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -211,17 +223,32 @@ dependencies = [
  "num",
 ]
 
+[[package]]
+name = "arrow-row"
+version = "30.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "db41abdf586f1dba8c2973711d5c69ffb9d63688ffa46354b8c85bf9347a921c"
+dependencies = [
+ "ahash",
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "half",
+ "hashbrown 0.13.2",
+]
+
 [[package]]
 name = "arrow-schema"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "69ef17c144f1253b9864f5a3e8f4c6f1e436bdd52394855d5942f132f776b64e"
+checksum = "a99dcc494fe6224e5ece572c5935d5109120a71df06bd8e04c4e23ac14dd8fac"
 
 [[package]]
 name = "arrow-select"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e2accaf218ff107e3df0ee8f1e09b092249a1cc741c4377858a1470fd27d7096"
+checksum = "4e3a2cde3ea85b28f64704045d7d54e0fcc4b17efffced574d2dd3320218298f"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -232,9 +259,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-string"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "a4a0954f9e1f45b04815ddacbde72899bf3c03a08fa6c0375f42178c4a01a510"
+checksum = "04cf8d0003ebe0aecc716e0ac8c858c570872a7485c7c6284975f31469703a0d"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -295,6 +322,18 @@ version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
+[[package]]
+name = "base64"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5"
+
+[[package]]
+name = "base64"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+
 [[package]]
 name = "bitflags"
 version = "1.3.2"
@@ -474,9 +513,9 @@ dependencies = [
 
 [[package]]
 name = "clipboard-win"
-version = "4.4.2"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219"
+checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
 dependencies = [
  "error-code",
  "str-buf",
@@ -596,9 +635,9 @@ dependencies = [
 
 [[package]]
 name = "cxx"
-version = "1.0.85"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd"
+checksum = "51d1075c37807dcf850c379432f0df05ba52cc30f279c5cfc43cc221ce7f8579"
 dependencies = [
  "cc",
  "cxxbridge-flags",
@@ -608,9 +647,9 @@ dependencies = [
 
 [[package]]
 name = "cxx-build"
-version = "1.0.85"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0"
+checksum = "5044281f61b27bc598f2f6647d480aed48d2bf52d6eb0b627d84c0361b17aa70"
 dependencies = [
  "cc",
  "codespan-reporting",
@@ -623,15 +662,15 @@ dependencies = [
 
 [[package]]
 name = "cxxbridge-flags"
-version = "1.0.85"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59"
+checksum = "61b50bc93ba22c27b0d31128d2d130a0a6b3d267ae27ef7e4fae2167dfe8781c"
 
 [[package]]
 name = "cxxbridge-macro"
-version = "1.0.85"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6"
+checksum = "39e61fda7e62115119469c7b3591fd913ecca96fb766cfd3f2e2502ab7bc87a5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -672,7 +711,7 @@ dependencies = [
  "flate2",
  "futures",
  "glob",
- "hashbrown 0.13.1",
+ "hashbrown 0.13.2",
  "indexmap",
  "itertools",
  "lazy_static",
@@ -747,7 +786,7 @@ dependencies = [
  "datafusion-common",
  "datafusion-expr",
  "datafusion-physical-expr",
- "hashbrown 0.13.1",
+ "hashbrown 0.13.2",
  "log",
  "regex-syntax",
 ]
@@ -767,7 +806,7 @@ dependencies = [
  "datafusion-expr",
  "datafusion-row",
  "half",
- "hashbrown 0.13.1",
+ "hashbrown 0.13.2",
  "indexmap",
  "itertools",
  "lazy_static",
@@ -1086,10 +1125,8 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
 dependencies = [
  "cfg-if",
- "js-sys",
  "libc",
  "wasi",
- "wasm-bindgen",
 ]
 
 [[package]]
@@ -1119,9 +1156,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.2.0"
+version = "2.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "6c467d36af040b7b2681f5fddd27427f6da8d3d072f575a265e181d2f8e8d157"
+checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0"
 dependencies = [
  "crunchy",
  "num-traits",
@@ -1135,9 +1172,9 @@ checksum = 
"8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038"
+checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
 dependencies = [
  "ahash",
 ]
@@ -1314,9 +1351,9 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.7.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e"
+checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
 
 [[package]]
 name = "itertools"
@@ -1565,26 +1602,6 @@ dependencies = [
  "windows-sys",
 ]
 
-[[package]]
-name = "multiversion"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "025c962a3dd3cc5e0e520aa9c612201d127dcdf28616974961a649dca64f5373"
-dependencies = [
- "multiversion-macros",
-]
-
-[[package]]
-name = "multiversion-macros"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "a8a3e2bde382ebf960c1f3e79689fa5941625fe9bf694a1cb64af3e85faff3af"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
 [[package]]
 name = "nibble_vec"
 version = "0.1.0"
@@ -1694,16 +1711,15 @@ dependencies = [
 
 [[package]]
 name = "object_store"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0014545954c5023b5fb8260415e54467cde434db6c824c9028a4b329f1b28e48"
+checksum = "b4201837dc4c27a8670f0363b1255cd3845a4f0c521211cced1ed14c1d0cc6d2"
 dependencies = [
  "async-trait",
- "base64",
+ "base64 0.20.0",
  "bytes",
  "chrono",
  "futures",
- "getrandom",
  "itertools",
  "parking_lot",
  "percent-encoding",
@@ -1754,9 +1770,9 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba"
+checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1767,9 +1783,9 @@ dependencies = [
 
 [[package]]
 name = "parquet"
-version = "29.0.0"
+version = "30.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "d906343fd18ace6b998d5074697743e8e9358efa8c3c796a1381b98cba813338"
+checksum = "4bba2a7630d2946f9e2020225062ad5619d70320e06dae6ae1074febf4c4e932"
 dependencies = [
  "ahash",
  "arrow-array",
@@ -1779,13 +1795,13 @@ dependencies = [
  "arrow-ipc",
  "arrow-schema",
  "arrow-select",
- "base64",
+ "base64 0.20.0",
  "brotli",
  "bytes",
  "chrono",
  "flate2",
  "futures",
- "hashbrown 0.13.1",
+ "hashbrown 0.13.2",
  "lz4",
  "num",
  "num-bigint",
@@ -1875,9 +1891,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.26.0"
+version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd"
+checksum = "ffc053f057dd768a56f62cd7e434c42c831d296968997e9ac1f76ea7c2d14c41"
 dependencies = [
  "memchr",
  "serde",
@@ -1954,9 +1970,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.7.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1990,7 +2006,7 @@ version = "0.11.13"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c"
 dependencies = [
- "base64",
+ "base64 0.13.1",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -2067,11 +2083,11 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55"
+checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
 dependencies = [
- "base64",
+ "base64 0.21.0",
 ]
 
 [[package]]
@@ -2845,9 +2861,9 @@ dependencies = [
 
 [[package]]
 name = "zstd"
-version = "0.12.1+zstd.1.5.2"
+version = "0.12.2+zstd.1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5c947d2adc84ff9a59f2e3c03b81aa4128acf28d6ad7d56273f7e8af14e47bea"
+checksum = "e9262a83dc741c0b0ffec209881b45dbc232c21b02a2b9cb1adb93266e41303d"
 dependencies = [
  "zstd-safe",
 ]
@@ -2864,10 +2880,11 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.4+zstd.1.5.2"
+version = "2.0.5+zstd.1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0"
+checksum = "edc50ffce891ad571e9f9afe5039c4837bede781ac4bb13052ed7ae695518596"
 dependencies = [
  "cc",
  "libc",
+ "pkg-config",
 ]
diff --git a/datafusion-cli/Cargo.toml b/datafusion-cli/Cargo.toml
index 7ad2041e6..1149ef684 100644
--- a/datafusion-cli/Cargo.toml
+++ b/datafusion-cli/Cargo.toml
@@ -29,7 +29,7 @@ rust-version = "1.62"
 readme = "README.md"
 
 [dependencies]
-arrow = "29.0.0"
+arrow = "30.0.1"
 async-trait = "0.1.41"
 clap = { version = "3", features = ["derive", "cargo"] }
 datafusion = { path = "../datafusion/core", version = "16.0.0" }
diff --git a/datafusion-examples/Cargo.toml b/datafusion-examples/Cargo.toml
index 53b1826a9..eab923996 100644
--- a/datafusion-examples/Cargo.toml
+++ b/datafusion-examples/Cargo.toml
@@ -34,8 +34,8 @@ path = "examples/avro_sql.rs"
 required-features = ["datafusion/avro"]
 
 [dev-dependencies]
-arrow = "29.0.0"
-arrow-flight = "29.0.0"
+arrow = "30.0.1"
+arrow-flight = "30.0.1"
 async-trait = "0.1.41"
 datafusion = { path = "../datafusion/core" }
 datafusion-common = { path = "../datafusion/common" }
diff --git a/datafusion-examples/examples/flight_client.rs 
b/datafusion-examples/examples/flight_client.rs
index 7a43af9a4..fe87740d9 100644
--- a/datafusion-examples/examples/flight_client.rs
+++ b/datafusion-examples/examples/flight_client.rs
@@ -40,7 +40,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
     // Call get_schema to get the schema of a Parquet file
     let request = tonic::Request::new(FlightDescriptor {
         r#type: flight_descriptor::DescriptorType::Path as i32,
-        cmd: vec![],
+        cmd: Default::default(),
         path: vec![format!("{testdata}/alltypes_plain.parquet")],
     });
 
diff --git a/datafusion-examples/examples/flight_server.rs 
b/datafusion-examples/examples/flight_server.rs
index 9b6dc39e4..cb7b7c28d 100644
--- a/datafusion-examples/examples/flight_server.rs
+++ b/datafusion-examples/examples/flight_server.rs
@@ -15,6 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
+use arrow::ipc::writer::{DictionaryTracker, IpcDataGenerator};
 use std::sync::Arc;
 
 use arrow_flight::SchemaAsIpc;
@@ -105,30 +106,23 @@ impl FlightService for FlightServiceImpl {
 
                 // add an initial FlightData message that sends schema
                 let options = 
datafusion::arrow::ipc::writer::IpcWriteOptions::default();
-                let schema_flight_data = SchemaAsIpc::new(&schema, 
&options).into();
-
-                let mut flights: Vec<Result<FlightData, Status>> =
-                    vec![Ok(schema_flight_data)];
-
-                let mut batches: Vec<Result<FlightData, Status>> = results
-                    .iter()
-                    .flat_map(|batch| {
-                        let (flight_dictionaries, flight_batch) =
-                            arrow_flight::utils::flight_data_from_arrow_batch(
-                                batch, &options,
-                            );
-                        flight_dictionaries
-                            .into_iter()
-                            .chain(std::iter::once(flight_batch))
-                            .map(Ok)
-                    })
-                    .collect();
-
-                // append batch vector to schema vector, so that the first 
message sent is the schema
-                flights.append(&mut batches);
-
-                let output = futures::stream::iter(flights);
+                let schema_flight_data = SchemaAsIpc::new(&schema, &options);
 
+                let mut flights = vec![FlightData::from(schema_flight_data)];
+
+                let encoder = IpcDataGenerator::default();
+                let mut tracker = DictionaryTracker::new(false);
+
+                for batch in &results {
+                    let (flight_dictionaries, flight_batch) = encoder
+                        .encoded_batch(batch, &mut tracker, &options)
+                        .map_err(|e: ArrowError| 
Status::internal(e.to_string()))?;
+
+                    
flights.extend(flight_dictionaries.into_iter().map(Into::into));
+                    flights.push(flight_batch.into());
+                }
+
+                let output = 
futures::stream::iter(flights.into_iter().map(Ok));
                 Ok(Response::new(Box::pin(output) as Self::DoGetStream))
             }
             Err(e) => Err(Status::invalid_argument(format!("Invalid ticket: 
{e:?}"))),
diff --git a/datafusion/common/Cargo.toml b/datafusion/common/Cargo.toml
index 7445812a1..bb5b8899e 100644
--- a/datafusion/common/Cargo.toml
+++ b/datafusion/common/Cargo.toml
@@ -40,11 +40,11 @@ pyarrow = ["pyo3", "arrow/pyarrow"]
 
 [dependencies]
 apache-avro = { version = "0.14", default-features = false, features = 
["snappy"], optional = true }
-arrow = { version = "29.0.0", default-features = false }
+arrow = { version = "30.0.1", default-features = false }
 chrono = { version = "0.4", default-features = false }
 cranelift-module = { version = "0.89.0", optional = true }
 num_cpus = "1.13.0"
 object_store = { version = "0.5.0", default-features = false, optional = true }
-parquet = { version = "29.0.0", default-features = false, optional = true }
+parquet = { version = "30.0.1", default-features = false, optional = true }
 pyo3 = { version = "0.17.1", optional = true }
 sqlparser = "0.30"
diff --git a/datafusion/core/Cargo.toml b/datafusion/core/Cargo.toml
index a1c9c463e..f7e17fd8a 100644
--- a/datafusion/core/Cargo.toml
+++ b/datafusion/core/Cargo.toml
@@ -57,7 +57,7 @@ unicode_expressions = 
["datafusion-physical-expr/regex_expressions", "datafusion
 [dependencies]
 ahash = { version = "0.8", default-features = false, features = 
["runtime-rng"] }
 apache-avro = { version = "0.14", optional = true }
-arrow = { version = "29.0.0", features = ["prettyprint"] }
+arrow = { version = "30.0.1", features = ["prettyprint"] }
 async-compression = { version = "0.3.14", features = ["bzip2", "gzip", "xz", 
"futures-io", "tokio"], optional = true }
 async-trait = "0.1.41"
 bytes = "1.1"
@@ -83,7 +83,7 @@ num-traits = { version = "0.2", optional = true }
 num_cpus = "1.13.0"
 object_store = "0.5.0"
 parking_lot = "0.12"
-parquet = { version = "29.0.0", features = ["arrow", "async"] }
+parquet = { version = "30.0.1", features = ["arrow", "async"] }
 paste = "^1.0"
 percent-encoding = "2.2.0"
 pin-project-lite = "^0.2.7"
@@ -102,7 +102,7 @@ xz2 = { version = "0.1", optional = true }
 
 
 [dev-dependencies]
-arrow = { version = "29.0.0", features = ["prettyprint", "dyn_cmp_dict"] }
+arrow = { version = "30.0.1", features = ["prettyprint", "dyn_cmp_dict"] }
 async-trait = "0.1.53"
 criterion = "0.4"
 csv = "1.1.6"
diff --git a/datafusion/core/src/physical_plan/file_format/csv.rs 
b/datafusion/core/src/physical_plan/file_format/csv.rs
index 26ac8cfcd..09d7bf82f 100644
--- a/datafusion/core/src/physical_plan/file_format/csv.rs
+++ b/datafusion/core/src/physical_plan/file_format/csv.rs
@@ -444,24 +444,11 @@ mod tests {
         assert_eq!(14, csv.schema().fields().len());
 
         let mut it = csv.execute(0, task_ctx)?;
-        let batch = it.next().await.unwrap()?;
-        assert_eq!(14, batch.num_columns());
-        assert_eq!(5, batch.num_rows());
-
-        let expected = vec![
-            
"+----+----+-----+--------+------------+----------------------+-----+-------+------------+----------------------+-------------+---------------------+--------------------------------+-------------+",
-            "| c1 | c2 | c3  | c4     | c5         | c6                   | c7 
 | c8    | c9         | c10                  | c11         | c12                
 | c13                            | missing_col |",
-            
"+----+----+-----+--------+------------+----------------------+-----+-------+------------+----------------------+-------------+---------------------+--------------------------------+-------------+",
-            "| c  | 2  | 1   | 18109  | 2033001162 | -6513304855495910254 | 25 
 | 43062 | 1491205016 | 5863949479783605708  | 0.110830784 | 0.9294097332465232 
 | 6WfVFBVGJSQb7FhA7E0lBwdvjfZnSW |             |",
-            "| d  | 5  | -40 | 22614  | 706441268  | -7542719935673075327 | 
155 | 14337 | 3373581039 | 11720144131976083864 | 0.69632107  | 
0.3114712539863804  | C2GT5KVyOPZpgKVl110TyZO0NcJ434 |             |",
-            "| b  | 1  | 29  | -18218 | 994303988  | 5983957848665088916  | 
204 | 9489  | 3275293996 | 14857091259186476033 | 0.53840446  | 
0.17909035118828576 | AyYVExXK6AR2qUTxNZ7qRHQOVGMLcz |             |",
-            "| a  | 1  | -85 | -15154 | 1171968280 | 1919439543497968449  | 77 
 | 52286 | 774637006  | 12101411955859039553 | 0.12285209  | 0.6864391962767343 
 | 0keZ5G8BffGwgF2RwQD59TFzMStxCB |             |",
-            "| b  | 5  | -82 | 22080  | 1824882165 | 7373730676428214987  | 
208 | 34331 | 3342719438 | 3330177516592499461  | 0.82634634  | 
0.40975383525297016 | Ig1QcuKsjHXkproePdERo2w0mYzIqd |             |",
-            
"+----+----+-----+--------+------------+----------------------+-----+-------+------------+----------------------+-------------+---------------------+--------------------------------+-------------+",
-        ];
-
-        crate::assert_batches_eq!(expected, &[batch]);
-
+        let err = it.next().await.unwrap().unwrap_err().to_string();
+        assert_eq!(
+            err,
+            "Csv error: incorrect number of fields, expected 14 got 13"
+        );
         Ok(())
     }
 
diff --git a/datafusion/expr/Cargo.toml b/datafusion/expr/Cargo.toml
index 34adfda49..5065856d5 100644
--- a/datafusion/expr/Cargo.toml
+++ b/datafusion/expr/Cargo.toml
@@ -36,7 +36,7 @@ path = "src/lib.rs"
 
 [dependencies]
 ahash = { version = "0.8", default-features = false, features = 
["runtime-rng"] }
-arrow = { version = "29.0.0", default-features = false }
+arrow = { version = "30.0.1", default-features = false }
 datafusion-common = { path = "../common", version = "16.0.0" }
 log = "^0.4"
 sqlparser = "0.30"
diff --git a/datafusion/jit/Cargo.toml b/datafusion/jit/Cargo.toml
index 816cbf8f1..1d071159a 100644
--- a/datafusion/jit/Cargo.toml
+++ b/datafusion/jit/Cargo.toml
@@ -36,7 +36,7 @@ path = "src/lib.rs"
 jit = []
 
 [dependencies]
-arrow = { version = "29.0.0", default-features = false }
+arrow = { version = "30.0.1", default-features = false }
 cranelift = "0.89.0"
 cranelift-jit = "0.89.0"
 cranelift-module = "0.89.0"
diff --git a/datafusion/optimizer/Cargo.toml b/datafusion/optimizer/Cargo.toml
index ee8f3a5f2..984cd10c5 100644
--- a/datafusion/optimizer/Cargo.toml
+++ b/datafusion/optimizer/Cargo.toml
@@ -37,7 +37,7 @@ default = ["unicode_expressions"]
 unicode_expressions = []
 
 [dependencies]
-arrow = { version = "29.0.0", features = ["prettyprint"] }
+arrow = { version = "30.0.1", features = ["prettyprint"] }
 async-trait = "0.1.41"
 chrono = { version = "0.4.23", default-features = false }
 datafusion-common = { path = "../common", version = "16.0.0" }
diff --git a/datafusion/physical-expr/Cargo.toml 
b/datafusion/physical-expr/Cargo.toml
index 3fb632ebd..4819fd630 100644
--- a/datafusion/physical-expr/Cargo.toml
+++ b/datafusion/physical-expr/Cargo.toml
@@ -40,9 +40,9 @@ unicode_expressions = ["unicode-segmentation"]
 
 [dependencies]
 ahash = { version = "0.8", default-features = false, features = 
["runtime-rng"] }
-arrow = { version = "29.0.0", features = ["prettyprint", "dyn_cmp_dict"] }
-arrow-buffer = "29.0.0"
-arrow-schema = "29.0.0"
+arrow = { version = "30.0.1", features = ["prettyprint", "dyn_cmp_dict"] }
+arrow-buffer = "30.0.1"
+arrow-schema = "30.0.1"
 blake2 = { version = "^0.10.2", optional = true }
 blake3 = { version = "1.0", optional = true }
 chrono = { version = "0.4.23", default-features = false }
diff --git a/datafusion/physical-expr/src/expressions/nullif.rs 
b/datafusion/physical-expr/src/expressions/nullif.rs
index 73b5a80b6..a2a61d16a 100644
--- a/datafusion/physical-expr/src/expressions/nullif.rs
+++ b/datafusion/physical-expr/src/expressions/nullif.rs
@@ -17,7 +17,7 @@
 
 use arrow::array::Array;
 use arrow::compute::eq_dyn;
-use arrow::compute::nullif::nullif;
+use arrow::compute::kernels::nullif::nullif;
 use datafusion_common::{cast::as_boolean_array, DataFusionError, Result, 
ScalarValue};
 use datafusion_expr::ColumnarValue;
 
diff --git a/datafusion/proto/Cargo.toml b/datafusion/proto/Cargo.toml
index 245aa9e77..9548f17eb 100644
--- a/datafusion/proto/Cargo.toml
+++ b/datafusion/proto/Cargo.toml
@@ -40,7 +40,7 @@ default = []
 json = ["pbjson", "serde", "serde_json"]
 
 [dependencies]
-arrow = "29.0.0"
+arrow = "30.0.1"
 chrono = { version = "0.4", default-features = false }
 datafusion = { path = "../core", version = "16.0.0" }
 datafusion-common = { path = "../common", version = "16.0.0" }
@@ -60,4 +60,4 @@ tokio = "1.18"
 [build-dependencies]
 # Pin these dependencies so that the generated output is deterministic
 pbjson-build = { version = "=0.5.1" }
-prost-build = { version = "=0.11.3" }
+prost-build = { version = "=0.11.5" }
diff --git a/datafusion/proto/src/generated/prost.rs 
b/datafusion/proto/src/generated/prost.rs
index a20b15fcc..21816f5a9 100644
--- a/datafusion/proto/src/generated/prost.rs
+++ b/datafusion/proto/src/generated/prost.rs
@@ -1,8 +1,10 @@
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ColumnRelation {
     #[prost(string, tag = "1")]
     pub relation: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Column {
     #[prost(string, tag = "1")]
@@ -10,6 +12,7 @@ pub struct Column {
     #[prost(message, optional, tag = "2")]
     pub relation: ::core::option::Option<ColumnRelation>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct DfField {
     #[prost(message, optional, tag = "1")]
@@ -17,6 +20,7 @@ pub struct DfField {
     #[prost(message, optional, tag = "2")]
     pub qualifier: ::core::option::Option<ColumnRelation>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct DfSchema {
     #[prost(message, repeated, tag = "1")]
@@ -29,6 +33,7 @@ pub struct DfSchema {
 }
 /// logical plan
 /// LogicalPlan is a nested type
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct LogicalPlanNode {
     #[prost(
@@ -39,6 +44,7 @@ pub struct LogicalPlanNode {
 }
 /// Nested message and enum types in `LogicalPlanNode`.
 pub mod logical_plan_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum LogicalPlanType {
         #[prost(message, tag = "1")]
@@ -93,6 +99,7 @@ pub mod logical_plan_node {
         Prepare(::prost::alloc::boxed::Box<super::PrepareNode>),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct LogicalExtensionNode {
     #[prost(bytes = "vec", tag = "1")]
@@ -100,11 +107,13 @@ pub struct LogicalExtensionNode {
     #[prost(message, repeated, tag = "2")]
     pub inputs: ::prost::alloc::vec::Vec<LogicalPlanNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ProjectionColumns {
     #[prost(string, repeated, tag = "1")]
     pub columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CsvFormat {
     #[prost(bool, tag = "1")]
@@ -112,10 +121,13 @@ pub struct CsvFormat {
     #[prost(string, tag = "2")]
     pub delimiter: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ParquetFormat {}
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct AvroFormat {}
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ListingTableScanNode {
     #[prost(string, tag = "1")]
@@ -145,6 +157,7 @@ pub struct ListingTableScanNode {
 }
 /// Nested message and enum types in `ListingTableScanNode`.
 pub mod listing_table_scan_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum FileFormatType {
         #[prost(message, tag = "10")]
@@ -155,6 +168,7 @@ pub mod listing_table_scan_node {
         Avro(super::AvroFormat),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ViewTableScanNode {
     #[prost(string, tag = "1")]
@@ -169,6 +183,7 @@ pub struct ViewTableScanNode {
     pub definition: ::prost::alloc::string::String,
 }
 /// Logical Plan to Scan a CustomTableProvider registered at runtime
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CustomTableScanNode {
     #[prost(string, tag = "1")]
@@ -182,6 +197,7 @@ pub struct CustomTableScanNode {
     #[prost(bytes = "vec", tag = "5")]
     pub custom_table_data: ::prost::alloc::vec::Vec<u8>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ProjectionNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -193,12 +209,14 @@ pub struct ProjectionNode {
 }
 /// Nested message and enum types in `ProjectionNode`.
 pub mod projection_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum OptionalAlias {
         #[prost(string, tag = "3")]
         Alias(::prost::alloc::string::String),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct SelectionNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -206,6 +224,7 @@ pub struct SelectionNode {
     #[prost(message, optional, tag = "2")]
     pub expr: ::core::option::Option<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct SortNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -216,6 +235,7 @@ pub struct SortNode {
     #[prost(int64, tag = "3")]
     pub fetch: i64,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct RepartitionNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -225,6 +245,7 @@ pub struct RepartitionNode {
 }
 /// Nested message and enum types in `RepartitionNode`.
 pub mod repartition_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum PartitionMethod {
         #[prost(uint64, tag = "2")]
@@ -233,6 +254,7 @@ pub mod repartition_node {
         Hash(super::HashRepartition),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct HashRepartition {
     #[prost(message, repeated, tag = "1")]
@@ -240,11 +262,13 @@ pub struct HashRepartition {
     #[prost(uint64, tag = "2")]
     pub partition_count: u64,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct EmptyRelationNode {
     #[prost(bool, tag = "1")]
     pub produce_one_row: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CreateExternalTableNode {
     #[prost(message, optional, tag = "12")]
@@ -273,6 +297,7 @@ pub struct CreateExternalTableNode {
         ::prost::alloc::string::String,
     >,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PrepareNode {
     #[prost(string, tag = "1")]
@@ -282,6 +307,7 @@ pub struct PrepareNode {
     #[prost(message, optional, boxed, tag = "3")]
     pub input: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalPlanNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CreateCatalogSchemaNode {
     #[prost(string, tag = "1")]
@@ -291,6 +317,7 @@ pub struct CreateCatalogSchemaNode {
     #[prost(message, optional, tag = "3")]
     pub schema: ::core::option::Option<DfSchema>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CreateCatalogNode {
     #[prost(string, tag = "1")]
@@ -300,6 +327,7 @@ pub struct CreateCatalogNode {
     #[prost(message, optional, tag = "3")]
     pub schema: ::core::option::Option<DfSchema>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CreateViewNode {
     #[prost(message, optional, tag = "5")]
@@ -313,6 +341,7 @@ pub struct CreateViewNode {
 }
 /// a node containing data for defining values list. unlike in SQL where it's 
two dimensional, here
 /// the list is flattened, and with the field n_cols it can be parsed and 
partitioned into rows
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ValuesNode {
     #[prost(uint64, tag = "1")]
@@ -320,6 +349,7 @@ pub struct ValuesNode {
     #[prost(message, repeated, tag = "2")]
     pub values_list: ::prost::alloc::vec::Vec<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct AnalyzeNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -327,6 +357,7 @@ pub struct AnalyzeNode {
     #[prost(bool, tag = "2")]
     pub verbose: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ExplainNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -334,6 +365,7 @@ pub struct ExplainNode {
     #[prost(bool, tag = "2")]
     pub verbose: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct AggregateNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -343,6 +375,7 @@ pub struct AggregateNode {
     #[prost(message, repeated, tag = "3")]
     pub aggr_expr: ::prost::alloc::vec::Vec<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct WindowNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -350,6 +383,7 @@ pub struct WindowNode {
     #[prost(message, repeated, tag = "2")]
     pub window_expr: ::prost::alloc::vec::Vec<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct JoinNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -369,16 +403,19 @@ pub struct JoinNode {
     #[prost(message, optional, tag = "8")]
     pub filter: ::core::option::Option<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct DistinctNode {
     #[prost(message, optional, boxed, tag = "1")]
     pub input: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalPlanNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct UnionNode {
     #[prost(message, repeated, tag = "1")]
     pub inputs: ::prost::alloc::vec::Vec<LogicalPlanNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CrossJoinNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -386,6 +423,7 @@ pub struct CrossJoinNode {
     #[prost(message, optional, boxed, tag = "2")]
     pub right: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalPlanNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct LimitNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -397,11 +435,13 @@ pub struct LimitNode {
     #[prost(int64, tag = "3")]
     pub fetch: i64,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct SelectionExecNode {
     #[prost(message, optional, tag = "1")]
     pub expr: ::core::option::Option<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct SubqueryAliasNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -410,6 +450,7 @@ pub struct SubqueryAliasNode {
     pub alias: ::prost::alloc::string::String,
 }
 /// logical expressions
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct LogicalExprNode {
     #[prost(
@@ -420,6 +461,7 @@ pub struct LogicalExprNode {
 }
 /// Nested message and enum types in `LogicalExprNode`.
 pub mod logical_expr_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum ExprType {
         /// column references
@@ -500,6 +542,7 @@ pub mod logical_expr_node {
         Placeholder(super::PlaceholderNode),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PlaceholderNode {
     #[prost(string, tag = "1")]
@@ -507,26 +550,31 @@ pub struct PlaceholderNode {
     #[prost(message, optional, tag = "2")]
     pub data_type: ::core::option::Option<ArrowType>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct LogicalExprList {
     #[prost(message, repeated, tag = "1")]
     pub expr: ::prost::alloc::vec::Vec<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct GroupingSetNode {
     #[prost(message, repeated, tag = "1")]
     pub expr: ::prost::alloc::vec::Vec<LogicalExprList>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CubeNode {
     #[prost(message, repeated, tag = "1")]
     pub expr: ::prost::alloc::vec::Vec<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct RollupNode {
     #[prost(message, repeated, tag = "1")]
     pub expr: ::prost::alloc::vec::Vec<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct GetIndexedField {
     #[prost(message, optional, boxed, tag = "1")]
@@ -534,51 +582,61 @@ pub struct GetIndexedField {
     #[prost(message, optional, tag = "2")]
     pub key: ::core::option::Option<ScalarValue>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct IsNull {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct IsNotNull {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct IsTrue {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct IsFalse {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct IsUnknown {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct IsNotTrue {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct IsNotFalse {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct IsNotUnknown {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Not {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct AliasNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -586,6 +644,7 @@ pub struct AliasNode {
     #[prost(string, tag = "2")]
     pub alias: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct BinaryExprNode {
     /// Represents the operands from the left inner most expression
@@ -596,11 +655,13 @@ pub struct BinaryExprNode {
     #[prost(string, tag = "3")]
     pub op: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct NegativeNode {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct InListNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -610,6 +671,7 @@ pub struct InListNode {
     #[prost(bool, tag = "3")]
     pub negated: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScalarFunctionNode {
     #[prost(enumeration = "ScalarFunction", tag = "1")]
@@ -617,6 +679,7 @@ pub struct ScalarFunctionNode {
     #[prost(message, repeated, tag = "2")]
     pub args: ::prost::alloc::vec::Vec<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct AggregateExprNode {
     #[prost(enumeration = "AggregateFunction", tag = "1")]
@@ -628,6 +691,7 @@ pub struct AggregateExprNode {
     #[prost(message, optional, boxed, tag = "4")]
     pub filter: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct AggregateUdfExprNode {
     #[prost(string, tag = "1")]
@@ -637,6 +701,7 @@ pub struct AggregateUdfExprNode {
     #[prost(message, optional, boxed, tag = "3")]
     pub filter: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScalarUdfExprNode {
     #[prost(string, tag = "1")]
@@ -644,6 +709,7 @@ pub struct ScalarUdfExprNode {
     #[prost(message, repeated, tag = "2")]
     pub args: ::prost::alloc::vec::Vec<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct WindowExprNode {
     #[prost(message, optional, boxed, tag = "4")]
@@ -660,6 +726,7 @@ pub struct WindowExprNode {
 }
 /// Nested message and enum types in `WindowExprNode`.
 pub mod window_expr_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum WindowFunction {
         #[prost(enumeration = "super::AggregateFunction", tag = "1")]
@@ -669,6 +736,7 @@ pub mod window_expr_node {
         BuiltInFunction(i32),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct BetweenNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -680,6 +748,7 @@ pub struct BetweenNode {
     #[prost(message, optional, boxed, tag = "4")]
     pub high: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct LikeNode {
     #[prost(bool, tag = "1")]
@@ -691,6 +760,7 @@ pub struct LikeNode {
     #[prost(string, tag = "4")]
     pub escape_char: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ILikeNode {
     #[prost(bool, tag = "1")]
@@ -702,6 +772,7 @@ pub struct ILikeNode {
     #[prost(string, tag = "4")]
     pub escape_char: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct SimilarToNode {
     #[prost(bool, tag = "1")]
@@ -713,6 +784,7 @@ pub struct SimilarToNode {
     #[prost(string, tag = "4")]
     pub escape_char: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CaseNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -722,6 +794,7 @@ pub struct CaseNode {
     #[prost(message, optional, boxed, tag = "3")]
     pub else_expr: 
::core::option::Option<::prost::alloc::boxed::Box<LogicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct WhenThen {
     #[prost(message, optional, tag = "1")]
@@ -729,6 +802,7 @@ pub struct WhenThen {
     #[prost(message, optional, tag = "2")]
     pub then_expr: ::core::option::Option<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CastNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -736,6 +810,7 @@ pub struct CastNode {
     #[prost(message, optional, tag = "2")]
     pub arrow_type: ::core::option::Option<ArrowType>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct TryCastNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -743,6 +818,7 @@ pub struct TryCastNode {
     #[prost(message, optional, tag = "2")]
     pub arrow_type: ::core::option::Option<ArrowType>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct SortExprNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -752,6 +828,7 @@ pub struct SortExprNode {
     #[prost(bool, tag = "3")]
     pub nulls_first: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct WindowFrame {
     #[prost(enumeration = "WindowFrameUnits", tag = "1")]
@@ -767,12 +844,14 @@ pub struct WindowFrame {
 pub mod window_frame {
     /// "optional" keyword is stable in protoc 3.15 but prost is still on 3.14 
(see <https://github.com/tokio-rs/prost/issues/430> and 
<https://github.com/tokio-rs/prost/pull/455>)
     /// this syntax is ugly but is binary compatible with the "optional" 
keyword (see 
<https://stackoverflow.com/questions/42622015/how-to-define-an-optional-field-in-protobuf-3>)
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum EndBound {
         #[prost(message, tag = "3")]
         Bound(super::WindowFrameBound),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct WindowFrameBound {
     #[prost(enumeration = "WindowFrameBoundType", tag = "1")]
@@ -780,11 +859,13 @@ pub struct WindowFrameBound {
     #[prost(message, optional, tag = "2")]
     pub bound_value: ::core::option::Option<ScalarValue>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Schema {
     #[prost(message, repeated, tag = "1")]
     pub columns: ::prost::alloc::vec::Vec<Field>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Field {
     /// name of the field
@@ -798,11 +879,13 @@ pub struct Field {
     #[prost(message, repeated, tag = "4")]
     pub children: ::prost::alloc::vec::Vec<Field>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct FixedSizeBinary {
     #[prost(int32, tag = "1")]
     pub length: i32,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Timestamp {
     #[prost(enumeration = "TimeUnit", tag = "1")]
@@ -810,6 +893,7 @@ pub struct Timestamp {
     #[prost(string, tag = "2")]
     pub timezone: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Decimal {
     #[prost(uint32, tag = "3")]
@@ -817,11 +901,13 @@ pub struct Decimal {
     #[prost(int32, tag = "4")]
     pub scale: i32,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct List {
     #[prost(message, optional, boxed, tag = "1")]
     pub field_type: ::core::option::Option<::prost::alloc::boxed::Box<Field>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct FixedSizeList {
     #[prost(message, optional, boxed, tag = "1")]
@@ -829,6 +915,7 @@ pub struct FixedSizeList {
     #[prost(int32, tag = "2")]
     pub list_size: i32,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Dictionary {
     #[prost(message, optional, boxed, tag = "1")]
@@ -836,11 +923,13 @@ pub struct Dictionary {
     #[prost(message, optional, boxed, tag = "2")]
     pub value: ::core::option::Option<::prost::alloc::boxed::Box<ArrowType>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Struct {
     #[prost(message, repeated, tag = "1")]
     pub sub_field_types: ::prost::alloc::vec::Vec<Field>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Union {
     #[prost(message, repeated, tag = "1")]
@@ -850,6 +939,7 @@ pub struct Union {
     #[prost(int32, repeated, tag = "3")]
     pub type_ids: ::prost::alloc::vec::Vec<i32>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScalarListValue {
     /// encode null explicitly to distinguish a list with a null value
@@ -861,6 +951,7 @@ pub struct ScalarListValue {
     #[prost(message, repeated, tag = "2")]
     pub values: ::prost::alloc::vec::Vec<ScalarValue>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScalarTime32Value {
     #[prost(oneof = "scalar_time32_value::Value", tags = "1, 2")]
@@ -868,6 +959,7 @@ pub struct ScalarTime32Value {
 }
 /// Nested message and enum types in `ScalarTime32Value`.
 pub mod scalar_time32_value {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum Value {
         #[prost(int32, tag = "1")]
@@ -876,6 +968,7 @@ pub mod scalar_time32_value {
         Time32MillisecondValue(i32),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScalarTime64Value {
     #[prost(oneof = "scalar_time64_value::Value", tags = "1, 2")]
@@ -883,6 +976,7 @@ pub struct ScalarTime64Value {
 }
 /// Nested message and enum types in `ScalarTime64Value`.
 pub mod scalar_time64_value {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum Value {
         #[prost(int64, tag = "1")]
@@ -891,6 +985,7 @@ pub mod scalar_time64_value {
         Time64NanosecondValue(i64),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScalarTimestampValue {
     #[prost(string, tag = "5")]
@@ -900,6 +995,7 @@ pub struct ScalarTimestampValue {
 }
 /// Nested message and enum types in `ScalarTimestampValue`.
 pub mod scalar_timestamp_value {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum Value {
         #[prost(int64, tag = "1")]
@@ -912,6 +1008,7 @@ pub mod scalar_timestamp_value {
         TimeMillisecondValue(i64),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScalarDictionaryValue {
     #[prost(message, optional, tag = "1")]
@@ -919,6 +1016,7 @@ pub struct ScalarDictionaryValue {
     #[prost(message, optional, boxed, tag = "2")]
     pub value: ::core::option::Option<::prost::alloc::boxed::Box<ScalarValue>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct IntervalMonthDayNanoValue {
     #[prost(int32, tag = "1")]
@@ -928,6 +1026,7 @@ pub struct IntervalMonthDayNanoValue {
     #[prost(int64, tag = "3")]
     pub nanos: i64,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct StructValue {
     /// Note that a null struct value must have one or more fields, so we
@@ -938,6 +1037,7 @@ pub struct StructValue {
     #[prost(message, repeated, tag = "3")]
     pub fields: ::prost::alloc::vec::Vec<Field>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScalarFixedSizeBinary {
     #[prost(bytes = "vec", tag = "1")]
@@ -945,6 +1045,7 @@ pub struct ScalarFixedSizeBinary {
     #[prost(int32, tag = "2")]
     pub length: i32,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScalarValue {
     #[prost(
@@ -955,6 +1056,7 @@ pub struct ScalarValue {
 }
 /// Nested message and enum types in `ScalarValue`.
 pub mod scalar_value {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum Value {
         /// was PrimitiveScalarType null_value = 19;
@@ -1021,6 +1123,7 @@ pub mod scalar_value {
         FixedSizeBinaryValue(super::ScalarFixedSizeBinary),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Decimal128 {
     #[prost(bytes = "vec", tag = "1")]
@@ -1031,6 +1134,7 @@ pub struct Decimal128 {
     pub s: i64,
 }
 /// Serialized data type
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ArrowType {
     #[prost(
@@ -1041,6 +1145,7 @@ pub struct ArrowType {
 }
 /// Nested message and enum types in `ArrowType`.
 pub mod arrow_type {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum ArrowTypeEnum {
         /// arrow::Type::NA
@@ -1123,18 +1228,22 @@ pub mod arrow_type {
 ///         i32 Two = 2;
 ///    }
 /// }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct EmptyMessage {}
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct OptimizedLogicalPlanType {
     #[prost(string, tag = "1")]
     pub optimizer_name: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct OptimizedPhysicalPlanType {
     #[prost(string, tag = "1")]
     pub optimizer_name: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PlanType {
     #[prost(oneof = "plan_type::PlanTypeEnum", tags = "1, 2, 3, 4, 5, 6")]
@@ -1142,6 +1251,7 @@ pub struct PlanType {
 }
 /// Nested message and enum types in `PlanType`.
 pub mod plan_type {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum PlanTypeEnum {
         #[prost(message, tag = "1")]
@@ -1158,6 +1268,7 @@ pub mod plan_type {
         FinalPhysicalPlan(super::EmptyMessage),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct StringifiedPlan {
     #[prost(message, optional, tag = "1")]
@@ -1165,11 +1276,13 @@ pub struct StringifiedPlan {
     #[prost(string, tag = "2")]
     pub plan: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct BareTableReference {
     #[prost(string, tag = "1")]
     pub table: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PartialTableReference {
     #[prost(string, tag = "1")]
@@ -1177,6 +1290,7 @@ pub struct PartialTableReference {
     #[prost(string, tag = "2")]
     pub table: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct FullTableReference {
     #[prost(string, tag = "1")]
@@ -1186,6 +1300,7 @@ pub struct FullTableReference {
     #[prost(string, tag = "3")]
     pub table: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct OwnedTableReference {
     #[prost(oneof = "owned_table_reference::TableReferenceEnum", tags = "1, 2, 
3")]
@@ -1195,6 +1310,7 @@ pub struct OwnedTableReference {
 }
 /// Nested message and enum types in `OwnedTableReference`.
 pub mod owned_table_reference {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum TableReferenceEnum {
         #[prost(message, tag = "1")]
@@ -1206,6 +1322,7 @@ pub mod owned_table_reference {
     }
 }
 /// PhysicalPlanNode is a nested type
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalPlanNode {
     #[prost(
@@ -1216,6 +1333,7 @@ pub struct PhysicalPlanNode {
 }
 /// Nested message and enum types in `PhysicalPlanNode`.
 pub mod physical_plan_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum PhysicalPlanType {
         #[prost(message, tag = "1")]
@@ -1262,6 +1380,7 @@ pub mod physical_plan_node {
         ),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalExtensionNode {
     #[prost(bytes = "vec", tag = "1")]
@@ -1270,6 +1389,7 @@ pub struct PhysicalExtensionNode {
     pub inputs: ::prost::alloc::vec::Vec<PhysicalPlanNode>,
 }
 /// physical expressions
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalExprNode {
     #[prost(
@@ -1280,6 +1400,7 @@ pub struct PhysicalExprNode {
 }
 /// Nested message and enum types in `PhysicalExprNode`.
 pub mod physical_expr_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum ExprType {
         /// column references
@@ -1327,6 +1448,7 @@ pub mod physical_expr_node {
         LikeExpr(::prost::alloc::boxed::Box<super::PhysicalLikeExprNode>),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalScalarUdfNode {
     #[prost(string, tag = "1")]
@@ -1336,6 +1458,7 @@ pub struct PhysicalScalarUdfNode {
     #[prost(message, optional, tag = "4")]
     pub return_type: ::core::option::Option<ArrowType>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalAggregateExprNode {
     #[prost(enumeration = "AggregateFunction", tag = "1")]
@@ -1345,6 +1468,7 @@ pub struct PhysicalAggregateExprNode {
     #[prost(bool, tag = "3")]
     pub distinct: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalWindowExprNode {
     #[prost(message, optional, boxed, tag = "4")]
@@ -1356,6 +1480,7 @@ pub struct PhysicalWindowExprNode {
 }
 /// Nested message and enum types in `PhysicalWindowExprNode`.
 pub mod physical_window_expr_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum WindowFunction {
         #[prost(enumeration = "super::AggregateFunction", tag = "1")]
@@ -1365,21 +1490,25 @@ pub mod physical_window_expr_node {
         BuiltInFunction(i32),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalIsNull {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<PhysicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalIsNotNull {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<PhysicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalNot {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<PhysicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalAliasNode {
     #[prost(message, optional, tag = "1")]
@@ -1387,6 +1516,7 @@ pub struct PhysicalAliasNode {
     #[prost(string, tag = "2")]
     pub alias: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalBinaryExprNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1396,6 +1526,7 @@ pub struct PhysicalBinaryExprNode {
     #[prost(string, tag = "3")]
     pub op: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalDateTimeIntervalExprNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1405,6 +1536,7 @@ pub struct PhysicalDateTimeIntervalExprNode {
     #[prost(string, tag = "3")]
     pub op: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalLikeExprNode {
     #[prost(bool, tag = "1")]
@@ -1416,6 +1548,7 @@ pub struct PhysicalLikeExprNode {
     #[prost(message, optional, boxed, tag = "4")]
     pub pattern: 
::core::option::Option<::prost::alloc::boxed::Box<PhysicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalSortExprNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1425,6 +1558,7 @@ pub struct PhysicalSortExprNode {
     #[prost(bool, tag = "3")]
     pub nulls_first: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalWhenThen {
     #[prost(message, optional, tag = "1")]
@@ -1432,6 +1566,7 @@ pub struct PhysicalWhenThen {
     #[prost(message, optional, tag = "2")]
     pub then_expr: ::core::option::Option<PhysicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalInListNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1441,6 +1576,7 @@ pub struct PhysicalInListNode {
     #[prost(bool, tag = "3")]
     pub negated: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalCaseNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1450,6 +1586,7 @@ pub struct PhysicalCaseNode {
     #[prost(message, optional, boxed, tag = "3")]
     pub else_expr: 
::core::option::Option<::prost::alloc::boxed::Box<PhysicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalScalarFunctionNode {
     #[prost(string, tag = "1")]
@@ -1461,6 +1598,7 @@ pub struct PhysicalScalarFunctionNode {
     #[prost(message, optional, tag = "4")]
     pub return_type: ::core::option::Option<ArrowType>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalTryCastNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1468,6 +1606,7 @@ pub struct PhysicalTryCastNode {
     #[prost(message, optional, tag = "2")]
     pub arrow_type: ::core::option::Option<ArrowType>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalCastNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1475,11 +1614,13 @@ pub struct PhysicalCastNode {
     #[prost(message, optional, tag = "2")]
     pub arrow_type: ::core::option::Option<ArrowType>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalNegativeNode {
     #[prost(message, optional, boxed, tag = "1")]
     pub expr: 
::core::option::Option<::prost::alloc::boxed::Box<PhysicalExprNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct FilterExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1487,17 +1628,20 @@ pub struct FilterExecNode {
     #[prost(message, optional, tag = "2")]
     pub expr: ::core::option::Option<PhysicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct FileGroup {
     #[prost(message, repeated, tag = "1")]
     pub files: ::prost::alloc::vec::Vec<PartitionedFile>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ScanLimit {
     /// wrap into a message to make it optional
     #[prost(uint32, tag = "1")]
     pub limit: u32,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct FileScanExecConf {
     #[prost(message, repeated, tag = "1")]
@@ -1517,6 +1661,7 @@ pub struct FileScanExecConf {
     #[prost(message, repeated, tag = "9")]
     pub output_ordering: ::prost::alloc::vec::Vec<PhysicalSortExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ParquetScanExecNode {
     #[prost(message, optional, tag = "1")]
@@ -1524,6 +1669,7 @@ pub struct ParquetScanExecNode {
     #[prost(message, optional, tag = "2")]
     pub pruning_predicate: ::core::option::Option<LogicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CsvScanExecNode {
     #[prost(message, optional, tag = "1")]
@@ -1533,11 +1679,13 @@ pub struct CsvScanExecNode {
     #[prost(string, tag = "3")]
     pub delimiter: ::prost::alloc::string::String,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct AvroScanExecNode {
     #[prost(message, optional, tag = "1")]
     pub base_conf: ::core::option::Option<FileScanExecConf>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct HashJoinExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1555,11 +1703,13 @@ pub struct HashJoinExecNode {
     #[prost(message, optional, tag = "8")]
     pub filter: ::core::option::Option<JoinFilter>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct UnionExecNode {
     #[prost(message, repeated, tag = "1")]
     pub inputs: ::prost::alloc::vec::Vec<PhysicalPlanNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ExplainExecNode {
     #[prost(message, optional, tag = "1")]
@@ -1569,6 +1719,7 @@ pub struct ExplainExecNode {
     #[prost(bool, tag = "3")]
     pub verbose: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CrossJoinExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1576,6 +1727,7 @@ pub struct CrossJoinExecNode {
     #[prost(message, optional, boxed, tag = "2")]
     pub right: 
::core::option::Option<::prost::alloc::boxed::Box<PhysicalPlanNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalColumn {
     #[prost(string, tag = "1")]
@@ -1583,6 +1735,7 @@ pub struct PhysicalColumn {
     #[prost(uint32, tag = "2")]
     pub index: u32,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct JoinOn {
     #[prost(message, optional, tag = "1")]
@@ -1590,6 +1743,7 @@ pub struct JoinOn {
     #[prost(message, optional, tag = "2")]
     pub right: ::core::option::Option<PhysicalColumn>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct EmptyExecNode {
     #[prost(bool, tag = "1")]
@@ -1597,6 +1751,7 @@ pub struct EmptyExecNode {
     #[prost(message, optional, tag = "2")]
     pub schema: ::core::option::Option<Schema>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ProjectionExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1606,6 +1761,7 @@ pub struct ProjectionExecNode {
     #[prost(string, repeated, tag = "3")]
     pub expr_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct WindowAggExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1617,6 +1773,7 @@ pub struct WindowAggExecNode {
     #[prost(message, optional, tag = "4")]
     pub input_schema: ::core::option::Option<Schema>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct AggregateExecNode {
     #[prost(message, repeated, tag = "1")]
@@ -1639,6 +1796,7 @@ pub struct AggregateExecNode {
     #[prost(bool, repeated, tag = "9")]
     pub groups: ::prost::alloc::vec::Vec<bool>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct GlobalLimitExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1650,6 +1808,7 @@ pub struct GlobalLimitExecNode {
     #[prost(int64, tag = "3")]
     pub fetch: i64,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct LocalLimitExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1657,6 +1816,7 @@ pub struct LocalLimitExecNode {
     #[prost(uint32, tag = "2")]
     pub fetch: u32,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct SortExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1667,6 +1827,7 @@ pub struct SortExecNode {
     #[prost(int64, tag = "3")]
     pub fetch: i64,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct SortPreservingMergeExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1674,6 +1835,7 @@ pub struct SortPreservingMergeExecNode {
     #[prost(message, repeated, tag = "2")]
     pub expr: ::prost::alloc::vec::Vec<PhysicalExprNode>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CoalesceBatchesExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1681,11 +1843,13 @@ pub struct CoalesceBatchesExecNode {
     #[prost(uint32, tag = "2")]
     pub target_batch_size: u32,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct CoalescePartitionsExecNode {
     #[prost(message, optional, boxed, tag = "1")]
     pub input: 
::core::option::Option<::prost::alloc::boxed::Box<PhysicalPlanNode>>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PhysicalHashRepartition {
     #[prost(message, repeated, tag = "1")]
@@ -1693,6 +1857,7 @@ pub struct PhysicalHashRepartition {
     #[prost(uint64, tag = "2")]
     pub partition_count: u64,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct RepartitionExecNode {
     #[prost(message, optional, boxed, tag = "1")]
@@ -1702,6 +1867,7 @@ pub struct RepartitionExecNode {
 }
 /// Nested message and enum types in `RepartitionExecNode`.
 pub mod repartition_exec_node {
+    #[allow(clippy::derive_partial_eq_without_eq)]
     #[derive(Clone, PartialEq, ::prost::Oneof)]
     pub enum PartitionMethod {
         #[prost(uint64, tag = "2")]
@@ -1712,6 +1878,7 @@ pub mod repartition_exec_node {
         Unknown(u64),
     }
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct JoinFilter {
     #[prost(message, optional, tag = "1")]
@@ -1721,6 +1888,7 @@ pub struct JoinFilter {
     #[prost(message, optional, tag = "3")]
     pub schema: ::core::option::Option<Schema>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ColumnIndex {
     #[prost(uint32, tag = "1")]
@@ -1728,6 +1896,7 @@ pub struct ColumnIndex {
     #[prost(enumeration = "JoinSide", tag = "2")]
     pub side: i32,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PartitionedFile {
     #[prost(string, tag = "1")]
@@ -1741,6 +1910,7 @@ pub struct PartitionedFile {
     #[prost(message, optional, tag = "5")]
     pub range: ::core::option::Option<FileRange>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct FileRange {
     #[prost(int64, tag = "1")]
@@ -1748,6 +1918,7 @@ pub struct FileRange {
     #[prost(int64, tag = "2")]
     pub end: i64,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct PartitionStats {
     #[prost(int64, tag = "1")]
@@ -1759,6 +1930,7 @@ pub struct PartitionStats {
     #[prost(message, repeated, tag = "4")]
     pub column_stats: ::prost::alloc::vec::Vec<ColumnStats>,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct Statistics {
     #[prost(int64, tag = "1")]
@@ -1770,6 +1942,7 @@ pub struct Statistics {
     #[prost(bool, tag = "4")]
     pub is_exact: bool,
 }
+#[allow(clippy::derive_partial_eq_without_eq)]
 #[derive(Clone, PartialEq, ::prost::Message)]
 pub struct ColumnStats {
     #[prost(message, optional, tag = "1")]
@@ -1810,6 +1983,20 @@ impl JoinType {
             JoinType::Rightanti => "RIGHTANTI",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "INNER" => Some(Self::Inner),
+            "LEFT" => Some(Self::Left),
+            "RIGHT" => Some(Self::Right),
+            "FULL" => Some(Self::Full),
+            "LEFTSEMI" => Some(Self::Leftsemi),
+            "LEFTANTI" => Some(Self::Leftanti),
+            "RIGHTSEMI" => Some(Self::Rightsemi),
+            "RIGHTANTI" => Some(Self::Rightanti),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -1828,6 +2015,14 @@ impl JoinConstraint {
             JoinConstraint::Using => "USING",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "ON" => Some(Self::On),
+            "USING" => Some(Self::Using),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -1988,6 +2183,85 @@ impl ScalarFunction {
             ScalarFunction::Uuid => "Uuid",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "Abs" => Some(Self::Abs),
+            "Acos" => Some(Self::Acos),
+            "Asin" => Some(Self::Asin),
+            "Atan" => Some(Self::Atan),
+            "Ascii" => Some(Self::Ascii),
+            "Ceil" => Some(Self::Ceil),
+            "Cos" => Some(Self::Cos),
+            "Digest" => Some(Self::Digest),
+            "Exp" => Some(Self::Exp),
+            "Floor" => Some(Self::Floor),
+            "Ln" => Some(Self::Ln),
+            "Log" => Some(Self::Log),
+            "Log10" => Some(Self::Log10),
+            "Log2" => Some(Self::Log2),
+            "Round" => Some(Self::Round),
+            "Signum" => Some(Self::Signum),
+            "Sin" => Some(Self::Sin),
+            "Sqrt" => Some(Self::Sqrt),
+            "Tan" => Some(Self::Tan),
+            "Trunc" => Some(Self::Trunc),
+            "Array" => Some(Self::Array),
+            "RegexpMatch" => Some(Self::RegexpMatch),
+            "BitLength" => Some(Self::BitLength),
+            "Btrim" => Some(Self::Btrim),
+            "CharacterLength" => Some(Self::CharacterLength),
+            "Chr" => Some(Self::Chr),
+            "Concat" => Some(Self::Concat),
+            "ConcatWithSeparator" => Some(Self::ConcatWithSeparator),
+            "DatePart" => Some(Self::DatePart),
+            "DateTrunc" => Some(Self::DateTrunc),
+            "InitCap" => Some(Self::InitCap),
+            "Left" => Some(Self::Left),
+            "Lpad" => Some(Self::Lpad),
+            "Lower" => Some(Self::Lower),
+            "Ltrim" => Some(Self::Ltrim),
+            "MD5" => Some(Self::Md5),
+            "NullIf" => Some(Self::NullIf),
+            "OctetLength" => Some(Self::OctetLength),
+            "Random" => Some(Self::Random),
+            "RegexpReplace" => Some(Self::RegexpReplace),
+            "Repeat" => Some(Self::Repeat),
+            "Replace" => Some(Self::Replace),
+            "Reverse" => Some(Self::Reverse),
+            "Right" => Some(Self::Right),
+            "Rpad" => Some(Self::Rpad),
+            "Rtrim" => Some(Self::Rtrim),
+            "SHA224" => Some(Self::Sha224),
+            "SHA256" => Some(Self::Sha256),
+            "SHA384" => Some(Self::Sha384),
+            "SHA512" => Some(Self::Sha512),
+            "SplitPart" => Some(Self::SplitPart),
+            "StartsWith" => Some(Self::StartsWith),
+            "Strpos" => Some(Self::Strpos),
+            "Substr" => Some(Self::Substr),
+            "ToHex" => Some(Self::ToHex),
+            "ToTimestamp" => Some(Self::ToTimestamp),
+            "ToTimestampMillis" => Some(Self::ToTimestampMillis),
+            "ToTimestampMicros" => Some(Self::ToTimestampMicros),
+            "ToTimestampSeconds" => Some(Self::ToTimestampSeconds),
+            "Now" => Some(Self::Now),
+            "Translate" => Some(Self::Translate),
+            "Trim" => Some(Self::Trim),
+            "Upper" => Some(Self::Upper),
+            "Coalesce" => Some(Self::Coalesce),
+            "Power" => Some(Self::Power),
+            "StructFun" => Some(Self::StructFun),
+            "FromUnixtime" => Some(Self::FromUnixtime),
+            "Atan2" => Some(Self::Atan2),
+            "DateBin" => Some(Self::DateBin),
+            "ArrowTypeof" => Some(Self::ArrowTypeof),
+            "CurrentDate" => Some(Self::CurrentDate),
+            "CurrentTime" => Some(Self::CurrentTime),
+            "Uuid" => Some(Self::Uuid),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2042,6 +2316,33 @@ impl AggregateFunction {
             AggregateFunction::Median => "MEDIAN",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "MIN" => Some(Self::Min),
+            "MAX" => Some(Self::Max),
+            "SUM" => Some(Self::Sum),
+            "AVG" => Some(Self::Avg),
+            "COUNT" => Some(Self::Count),
+            "APPROX_DISTINCT" => Some(Self::ApproxDistinct),
+            "ARRAY_AGG" => Some(Self::ArrayAgg),
+            "VARIANCE" => Some(Self::Variance),
+            "VARIANCE_POP" => Some(Self::VariancePop),
+            "COVARIANCE" => Some(Self::Covariance),
+            "COVARIANCE_POP" => Some(Self::CovariancePop),
+            "STDDEV" => Some(Self::Stddev),
+            "STDDEV_POP" => Some(Self::StddevPop),
+            "CORRELATION" => Some(Self::Correlation),
+            "APPROX_PERCENTILE_CONT" => Some(Self::ApproxPercentileCont),
+            "APPROX_MEDIAN" => Some(Self::ApproxMedian),
+            "APPROX_PERCENTILE_CONT_WITH_WEIGHT" => {
+                Some(Self::ApproxPercentileContWithWeight)
+            }
+            "GROUPING" => Some(Self::Grouping),
+            "MEDIAN" => Some(Self::Median),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2078,6 +2379,23 @@ impl BuiltInWindowFunction {
             BuiltInWindowFunction::NthValue => "NTH_VALUE",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "ROW_NUMBER" => Some(Self::RowNumber),
+            "RANK" => Some(Self::Rank),
+            "DENSE_RANK" => Some(Self::DenseRank),
+            "PERCENT_RANK" => Some(Self::PercentRank),
+            "CUME_DIST" => Some(Self::CumeDist),
+            "NTILE" => Some(Self::Ntile),
+            "LAG" => Some(Self::Lag),
+            "LEAD" => Some(Self::Lead),
+            "FIRST_VALUE" => Some(Self::FirstValue),
+            "LAST_VALUE" => Some(Self::LastValue),
+            "NTH_VALUE" => Some(Self::NthValue),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2098,6 +2416,15 @@ impl WindowFrameUnits {
             WindowFrameUnits::Groups => "GROUPS",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "ROWS" => Some(Self::Rows),
+            "RANGE" => Some(Self::Range),
+            "GROUPS" => Some(Self::Groups),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2118,6 +2445,15 @@ impl WindowFrameBoundType {
             WindowFrameBoundType::Following => "FOLLOWING",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "CURRENT_ROW" => Some(Self::CurrentRow),
+            "PRECEDING" => Some(Self::Preceding),
+            "FOLLOWING" => Some(Self::Following),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2136,6 +2472,14 @@ impl DateUnit {
             DateUnit::DateMillisecond => "DateMillisecond",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "Day" => Some(Self::Day),
+            "DateMillisecond" => Some(Self::DateMillisecond),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2158,6 +2502,16 @@ impl TimeUnit {
             TimeUnit::Nanosecond => "Nanosecond",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "Second" => Some(Self::Second),
+            "Millisecond" => Some(Self::Millisecond),
+            "Microsecond" => Some(Self::Microsecond),
+            "Nanosecond" => Some(Self::Nanosecond),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2178,6 +2532,15 @@ impl IntervalUnit {
             IntervalUnit::MonthDayNano => "MonthDayNano",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "YearMonth" => Some(Self::YearMonth),
+            "DayTime" => Some(Self::DayTime),
+            "MonthDayNano" => Some(Self::MonthDayNano),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2196,6 +2559,14 @@ impl UnionMode {
             UnionMode::Dense => "dense",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "sparse" => Some(Self::Sparse),
+            "dense" => Some(Self::Dense),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2216,6 +2587,15 @@ impl PartitionMode {
             PartitionMode::Auto => "AUTO",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "COLLECT_LEFT" => Some(Self::CollectLeft),
+            "PARTITIONED" => Some(Self::Partitioned),
+            "AUTO" => Some(Self::Auto),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2236,6 +2616,15 @@ impl AggregateMode {
             AggregateMode::FinalPartitioned => "FINAL_PARTITIONED",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "PARTIAL" => Some(Self::Partial),
+            "FINAL" => Some(Self::Final),
+            "FINAL_PARTITIONED" => Some(Self::FinalPartitioned),
+            _ => None,
+        }
+    }
 }
 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, 
::prost::Enumeration)]
 #[repr(i32)]
@@ -2254,4 +2643,12 @@ impl JoinSide {
             JoinSide::RightSide => "RIGHT_SIDE",
         }
     }
+    /// Creates an enum from field names used in the ProtoBuf definition.
+    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
+        match value {
+            "LEFT_SIDE" => Some(Self::LeftSide),
+            "RIGHT_SIDE" => Some(Self::RightSide),
+            _ => None,
+        }
+    }
 }
diff --git a/datafusion/row/Cargo.toml b/datafusion/row/Cargo.toml
index 2ae8cb3c4..23d3f528f 100644
--- a/datafusion/row/Cargo.toml
+++ b/datafusion/row/Cargo.toml
@@ -37,7 +37,7 @@ path = "src/lib.rs"
 jit = ["datafusion-jit"]
 
 [dependencies]
-arrow = "29.0.0"
+arrow = "30.0.1"
 datafusion-common = { path = "../common", version = "16.0.0" }
 datafusion-jit = { path = "../jit", version = "16.0.0", optional = true }
 paste = "^1.0"
diff --git a/datafusion/sql/Cargo.toml b/datafusion/sql/Cargo.toml
index 4dfd9b97c..025139ad9 100644
--- a/datafusion/sql/Cargo.toml
+++ b/datafusion/sql/Cargo.toml
@@ -37,7 +37,7 @@ default = ["unicode_expressions"]
 unicode_expressions = []
 
 [dependencies]
-arrow-schema = "29.0.0"
+arrow-schema = "30.0.1"
 datafusion-common = { path = "../common", version = "16.0.0" }
 datafusion-expr = { path = "../expr", version = "16.0.0" }
 log = "^0.4"
diff --git a/parquet-test-utils/Cargo.toml b/parquet-test-utils/Cargo.toml
index fc2d96461..858c350da 100644
--- a/parquet-test-utils/Cargo.toml
+++ b/parquet-test-utils/Cargo.toml
@@ -25,4 +25,4 @@ edition = "2021"
 [dependencies]
 datafusion = { path = "../datafusion/core" }
 object_store = "0.5.0"
-parquet = "29.0.0"
+parquet = "30.0.1"
diff --git a/test-utils/Cargo.toml b/test-utils/Cargo.toml
index bde0314ba..54b93540a 100644
--- a/test-utils/Cargo.toml
+++ b/test-utils/Cargo.toml
@@ -23,7 +23,7 @@ edition = "2021"
 # See more keys and their definitions at 
https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-arrow = { version = "29.0.0", features = ["prettyprint"] }
+arrow = { version = "30.0.1", features = ["prettyprint"] }
 datafusion-common = { path = "../datafusion/common" }
 env_logger = "0.10.0"
 rand = "0.8"


Reply via email to