From b7e52c0d8d5e95ae33ea364824b9f97f25f6f9a6 Mon Sep 17 00:00:00 2001
From: Andrew Lamb <alamb@influxdata.com>
Date: Thu, 1 Dec 2022 06:38:42 -0500
Subject: [PATCH] Revert "chore: Update Datafusion and
 arrow/arrow-flight/parquet to `28.0.0` (#6279)" (#6294)

This reverts commit 039a45ddd1fc75c2357e85218c93982b2f0aa857.
---
 Cargo.lock                   | 115 ++++++++++++++++++-----------------
 Cargo.toml                   |  10 +--
 arrow_util/src/optimize.rs   |   2 +-
 ingester2/Cargo.toml         |   2 +-
 parquet_file/Cargo.toml      |   2 +-
 parquet_file/src/metadata.rs |   4 +-
 schema/src/lib.rs            |  23 ++++---
 trace_exporters/Cargo.toml   |   2 +-
 workspace-hack/Cargo.toml    |  10 ++-
 9 files changed, 88 insertions(+), 82 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index ac5af902d6..29be0e78d9 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -100,9 +100,9 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
 
 [[package]]
 name = "arrow"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aed9849f86164fad5cb66ce4732782b15f1bc97f8febab04e782c20cce9d4b6c"
+checksum = "b329393dcb0f1d7b11179bb4bdf1ba03e65f0c3aa09a70c7d75a889cb4e2be48"
 dependencies = [
  "ahash 0.8.2",
  "arrow-array",
@@ -126,9 +126,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-array"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b8504cf0a6797e908eecf221a865e7d339892720587f87c8b90262863015b08"
+checksum = "05cc1efb944a4309b73fd8035f283724ec767b632fc3048e2da7c87cfcd92b08"
 dependencies = [
  "ahash 0.8.2",
  "arrow-buffer",
@@ -142,9 +142,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-buffer"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6de64a27cea684b24784647d9608314bc80f7c4d55acb44a425e05fab39d916"
+checksum = "3b1e46f50d5a7adcd14465605a3f07f0f11982a0fcf6a5a3562b94ea53af4546"
 dependencies = [
  "half 2.1.0",
  "num",
@@ -152,9 +152,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-cast"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bec4a54502eefe05923c385c90a005d69474fa06ca7aa2a2b123c9f9532f6178"
+checksum = "563ceb60e814e9f89c3a1e20ce13f388af362e7ca9c1e75493e047d82cbcb773"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -168,9 +168,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-csv"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7902bbf8127eac48554fe902775303377047ad49a9fd473c2b8cb399d092080"
+checksum = "c2c61a79a865fbb7a209623513824d73ecd5b860b8dcfedb271df664e843e6ae"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -186,9 +186,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-data"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e4882efe617002449d5c6b5de9ddb632339074b36df8a96ea7147072f1faa8a"
+checksum = "e17bc1336039023ba297cccea8fe9dc6c8d03a980414e938274a3a3f21922200"
 dependencies = [
  "arrow-buffer",
  "arrow-schema",
@@ -198,9 +198,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-flight"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4164981ac7c8e7f8a194b70490f1c27e6616fe44554f6e14b97487eab9cb4100"
+checksum = "f7270b1d175c11ea4180a0e90f02f595af2e46d88686dc333bbebe606954a276"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -220,9 +220,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-ipc"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0703a6de2785828561b03a4d7793ecd333233e1b166316b4bfc7cfce55a4a7"
+checksum = "4728d966e9e79d55e27d354fe8bad38b59106143230d80723219457c34de0259"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -234,9 +234,9 @@ dependencies = [
 
 [[package]]
 name = "arrow-json"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bd23fc8c6d251f96cd63b96fece56bbb9710ce5874a627cb786e2600673595a"
+checksum = "290444e50fde2e38e7611b50886ab4329787c792b7563c5541af1236cdbc3a5f"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -252,15 +252,15 @@ dependencies = [
 
 [[package]]
 name = "arrow-schema"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f143882a80be168538a60e298546314f50f11f2a288c8d73e11108da39d26"
+checksum = "c564654550c1e197d07660391e32607fac1ce9ca6748a949c36f372bb715f451"
 
 [[package]]
 name = "arrow-select"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520406331d4ad60075359524947ebd804e479816439af82bcb17f8d280d9b38c"
+checksum = "816c229e4489b66a5512d589406fa816b774005b7365cd9b6af8f160806cceb0"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -1238,7 +1238,7 @@ dependencies = [
 [[package]]
 name = "datafusion"
 version = "14.0.0"
-source = "git+https://github.com/apache/arrow-datafusion.git?rev=fdc83e8524df30ac5d0ae097572b7c48dc686ba9#fdc83e8524df30ac5d0ae097572b7c48dc686ba9"
+source = "git+https://github.com/apache/arrow-datafusion.git?rev=dd3f72ad13df3e3ab2efde73eba546012eaf10fd#dd3f72ad13df3e3ab2efde73eba546012eaf10fd"
 dependencies = [
  "ahash 0.8.2",
  "arrow",
@@ -1283,7 +1283,7 @@ dependencies = [
 [[package]]
 name = "datafusion-common"
 version = "14.0.0"
-source = "git+https://github.com/apache/arrow-datafusion.git?rev=fdc83e8524df30ac5d0ae097572b7c48dc686ba9#fdc83e8524df30ac5d0ae097572b7c48dc686ba9"
+source = "git+https://github.com/apache/arrow-datafusion.git?rev=dd3f72ad13df3e3ab2efde73eba546012eaf10fd#dd3f72ad13df3e3ab2efde73eba546012eaf10fd"
 dependencies = [
  "arrow",
  "chrono",
@@ -1295,7 +1295,7 @@ dependencies = [
 [[package]]
 name = "datafusion-expr"
 version = "14.0.0"
-source = "git+https://github.com/apache/arrow-datafusion.git?rev=fdc83e8524df30ac5d0ae097572b7c48dc686ba9#fdc83e8524df30ac5d0ae097572b7c48dc686ba9"
+source = "git+https://github.com/apache/arrow-datafusion.git?rev=dd3f72ad13df3e3ab2efde73eba546012eaf10fd#dd3f72ad13df3e3ab2efde73eba546012eaf10fd"
 dependencies = [
  "ahash 0.8.2",
  "arrow",
@@ -1307,7 +1307,7 @@ dependencies = [
 [[package]]
 name = "datafusion-optimizer"
 version = "14.0.0"
-source = "git+https://github.com/apache/arrow-datafusion.git?rev=fdc83e8524df30ac5d0ae097572b7c48dc686ba9#fdc83e8524df30ac5d0ae097572b7c48dc686ba9"
+source = "git+https://github.com/apache/arrow-datafusion.git?rev=dd3f72ad13df3e3ab2efde73eba546012eaf10fd#dd3f72ad13df3e3ab2efde73eba546012eaf10fd"
 dependencies = [
  "arrow",
  "async-trait",
@@ -1322,7 +1322,7 @@ dependencies = [
 [[package]]
 name = "datafusion-physical-expr"
 version = "14.0.0"
-source = "git+https://github.com/apache/arrow-datafusion.git?rev=fdc83e8524df30ac5d0ae097572b7c48dc686ba9#fdc83e8524df30ac5d0ae097572b7c48dc686ba9"
+source = "git+https://github.com/apache/arrow-datafusion.git?rev=dd3f72ad13df3e3ab2efde73eba546012eaf10fd#dd3f72ad13df3e3ab2efde73eba546012eaf10fd"
 dependencies = [
  "ahash 0.8.2",
  "arrow",
@@ -1351,7 +1351,7 @@ dependencies = [
 [[package]]
 name = "datafusion-proto"
 version = "14.0.0"
-source = "git+https://github.com/apache/arrow-datafusion.git?rev=fdc83e8524df30ac5d0ae097572b7c48dc686ba9#fdc83e8524df30ac5d0ae097572b7c48dc686ba9"
+source = "git+https://github.com/apache/arrow-datafusion.git?rev=dd3f72ad13df3e3ab2efde73eba546012eaf10fd#dd3f72ad13df3e3ab2efde73eba546012eaf10fd"
 dependencies = [
  "arrow",
  "datafusion",
@@ -1365,7 +1365,7 @@ dependencies = [
 [[package]]
 name = "datafusion-row"
 version = "14.0.0"
-source = "git+https://github.com/apache/arrow-datafusion.git?rev=fdc83e8524df30ac5d0ae097572b7c48dc686ba9#fdc83e8524df30ac5d0ae097572b7c48dc686ba9"
+source = "git+https://github.com/apache/arrow-datafusion.git?rev=dd3f72ad13df3e3ab2efde73eba546012eaf10fd#dd3f72ad13df3e3ab2efde73eba546012eaf10fd"
 dependencies = [
  "arrow",
  "datafusion-common",
@@ -1376,7 +1376,7 @@ dependencies = [
 [[package]]
 name = "datafusion-sql"
 version = "14.0.0"
-source = "git+https://github.com/apache/arrow-datafusion.git?rev=fdc83e8524df30ac5d0ae097572b7c48dc686ba9#fdc83e8524df30ac5d0ae097572b7c48dc686ba9"
+source = "git+https://github.com/apache/arrow-datafusion.git?rev=dd3f72ad13df3e3ab2efde73eba546012eaf10fd#dd3f72ad13df3e3ab2efde73eba546012eaf10fd"
 dependencies = [
  "arrow",
  "datafusion-common",
@@ -3516,9 +3516,9 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
 
 [[package]]
 name = "ordered-float"
-version = "2.10.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
+checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7"
 dependencies = [
  "num-traits",
 ]
@@ -3612,9 +3612,9 @@ dependencies = [
 
 [[package]]
 name = "parquet"
-version = "28.0.0"
+version = "27.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21433e9209111bb3720b747f2f137e0d115af1af0420a7a1c26b6e88227fa353"
+checksum = "54bd654e4ff294122f6d64938f400a433aee755433e6d9cb28b1861781ea1a3b"
 dependencies = [
  "ahash 0.8.2",
  "arrow-array",
@@ -3634,13 +3634,11 @@ dependencies = [
  "lz4",
  "num",
  "num-bigint",
- "paste",
  "seq-macro",
  "snap",
  "thrift",
  "tokio",
- "twox-hash",
- "zstd",
+ "zstd 0.11.2+zstd.1.5.2",
 ]
 
 [[package]]
@@ -3670,7 +3668,7 @@ dependencies = [
  "tokio",
  "uuid",
  "workspace-hack",
- "zstd",
+ "zstd 0.12.0+zstd.1.5.2",
 ]
 
 [[package]]
@@ -4550,7 +4548,7 @@ dependencies = [
  "thiserror",
  "tokio",
  "tracing",
- "zstd",
+ "zstd 0.12.0+zstd.1.5.2",
 ]
 
 [[package]]
@@ -5426,14 +5424,14 @@ dependencies = [
 
 [[package]]
 name = "thrift"
-version = "0.17.0"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e54bc85fc7faa8bc175c4bab5b92ba8d9a3ce893d0e9f42cc455c8ab16a9e09"
+checksum = "09678c4cdbb4eed72e18b7c2af1329c69825ed16fcbac62d083fc3e2b0590ff0"
 dependencies = [
  "byteorder",
  "integer-encoding",
  "log",
- "ordered-float 2.10.0",
+ "ordered-float 1.1.1",
  "threadpool",
 ]
 
@@ -5889,16 +5887,6 @@ version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
 
-[[package]]
-name = "twox-hash"
-version = "1.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
-dependencies = [
- "cfg-if",
- "static_assertions",
-]
-
 [[package]]
 name = "typenum"
 version = "1.15.0"
@@ -6357,8 +6345,6 @@ dependencies = [
  "uuid",
  "winapi",
  "windows-sys",
- "zstd",
- "zstd-safe",
  "zstd-sys",
 ]
 
@@ -6435,13 +6421,32 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
+[[package]]
+name = "zstd"
+version = "0.11.2+zstd.1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
+dependencies = [
+ "zstd-safe 5.0.2+zstd.1.5.2",
+]
+
 [[package]]
 name = "zstd"
 version = "0.12.0+zstd.1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b8148aa921e9d53217ab9322f8553bd130f7ae33489db68b381d76137d2e6374"
 dependencies = [
- "zstd-safe",
+ "zstd-safe 6.0.2+zstd.1.5.2",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "5.0.2+zstd.1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
+dependencies = [
+ "libc",
+ "zstd-sys",
 ]
 
 [[package]]
diff --git a/Cargo.toml b/Cargo.toml
index a2ece0308e..efc4645947 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -111,12 +111,12 @@ edition = "2021"
 license = "MIT OR Apache-2.0"
 
 [workspace.dependencies]
-arrow = { version = "28.0.0" }
-arrow-flight = { version = "28.0.0" }
-datafusion = { git = "https://github.com/apache/arrow-datafusion.git", rev="fdc83e8524df30ac5d0ae097572b7c48dc686ba9", default-features = false }
-datafusion-proto = { git = "https://github.com/apache/arrow-datafusion.git", rev="fdc83e8524df30ac5d0ae097572b7c48dc686ba9" }
+arrow = { version = "27.0.0" }
+arrow-flight = { version = "27.0.0" }
+datafusion = { git = "https://github.com/apache/arrow-datafusion.git", rev="dd3f72ad13df3e3ab2efde73eba546012eaf10fd", default-features = false }
+datafusion-proto = { git = "https://github.com/apache/arrow-datafusion.git", rev="dd3f72ad13df3e3ab2efde73eba546012eaf10fd" }
 hashbrown = { version = "0.13.1" }
-parquet = { version = "28.0.0" }
+parquet = { version = "27.0.0" }
 
 # This profile optimizes for runtime performance and small binary size at the expense of longer
 # build times. It's most suitable for final release builds.
diff --git a/arrow_util/src/optimize.rs b/arrow_util/src/optimize.rs
index 2bd269fbba..715884b143 100644
--- a/arrow_util/src/optimize.rs
+++ b/arrow_util/src/optimize.rs
@@ -156,7 +156,7 @@ pub fn prepare_schema_for_flight(schema: &Schema) -> Schema {
                 value_type.as_ref().clone(),
                 field.is_nullable(),
             )
-            .with_metadata(field.metadata().clone()),
+            .with_metadata(field.metadata().cloned()),
             _ => field.clone(),
         })
         .collect();
diff --git a/ingester2/Cargo.toml b/ingester2/Cargo.toml
index 312bf3d456..2cf7af6f69 100644
--- a/ingester2/Cargo.toml
+++ b/ingester2/Cargo.toml
@@ -7,7 +7,7 @@ license.workspace = true
 
 [dependencies]
 arrow = { workspace = true, features = ["prettyprint"] }
-arrow-flight = { workspace = true }
+arrow-flight = "27.0.0"
 arrow_util = { version = "0.1.0", path = "../arrow_util" }
 async-trait = "0.1.58"
 backoff = { version = "0.1.0", path = "../backoff" }
diff --git a/parquet_file/Cargo.toml b/parquet_file/Cargo.toml
index 46f398c0df..6e29c32121 100644
--- a/parquet_file/Cargo.toml
+++ b/parquet_file/Cargo.toml
@@ -25,7 +25,7 @@ prost = "0.11"
 schema = { path = "../schema" }
 snafu = "0.7"
 thiserror = "1.0.37"
-thrift = "0.17"
+thrift = "0.16"
 tokio = { version = "1.22", features = ["macros", "parking_lot", "rt", "rt-multi-thread", "sync"] }
 uuid = { version = "1", features = ["v4"] }
 zstd = "0.12"
diff --git a/parquet_file/src/metadata.rs b/parquet_file/src/metadata.rs
index f0a6cccac0..df16990c4e 100644
--- a/parquet_file/src/metadata.rs
+++ b/parquet_file/src/metadata.rs
@@ -115,9 +115,7 @@ use schema::{
 };
 use snafu::{ensure, OptionExt, ResultExt, Snafu};
 use std::{convert::TryInto, fmt::Debug, mem, sync::Arc};
-use thrift::protocol::{
-    TCompactInputProtocol, TCompactOutputProtocol, TOutputProtocol, TSerializable,
-};
+use thrift::protocol::{TCompactInputProtocol, TCompactOutputProtocol, TOutputProtocol};
 use uuid::Uuid;
 
 /// Current version for serialized metadata.
diff --git a/schema/src/lib.rs b/schema/src/lib.rs
index 9773ebb1e8..1f92ba3bdc 100644
--- a/schema/src/lib.rs
+++ b/schema/src/lib.rs
@@ -1,7 +1,7 @@
 //! This module contains the schema definition for IOx
 use std::{
     cmp::Ordering,
-    collections::HashMap,
+    collections::{BTreeMap, HashMap},
     convert::{TryFrom, TryInto},
     fmt,
     mem::{size_of, size_of_val},
@@ -492,9 +492,12 @@ impl Schema {
                     field.name().capacity()
                         + field
                             .metadata()
-                            .iter()
-                            .map(|(k, v)| k.capacity() + v.capacity())
-                            .sum::<usize>()
+                            .map(|md| {
+                                md.iter()
+                                    .map(|(k, v)| k.capacity() + v.capacity())
+                                    .sum::<usize>()
+                            })
+                            .unwrap_or_default()
                 })
                 .sum::<usize>();
 
@@ -513,6 +516,8 @@ impl Schema {
 pub(crate) fn get_influx_type(field: &ArrowField) -> Result<InfluxColumnType, Option<String>> {
     let md = field
         .metadata()
+        .as_ref()
+        .ok_or(None)?
         .get(COLUMN_METADATA_KEY)
         .ok_or(None)?
         .as_str();
@@ -522,10 +527,10 @@ pub(crate) fn get_influx_type(field: &ArrowField) -> Result<InfluxColumnType, Op
 
 /// Sets the metadata for a field - replacing any existing metadata
 pub(crate) fn set_field_metadata(field: &mut ArrowField, column_type: InfluxColumnType) {
-    field.set_metadata(HashMap::from([(
+    field.set_metadata(Some(BTreeMap::from([(
         COLUMN_METADATA_KEY.to_string(),
         column_type.to_string(),
-    )]));
+    )])));
 }
 
 /// Field value types for InfluxDB 2.0 data model, as defined in
@@ -753,11 +758,11 @@ pub(crate) mod test_util {
         column_type: &str,
     ) -> ArrowField {
         let mut field = ArrowField::new(name, data_type, nullable);
-        field.set_metadata(
+        field.set_metadata(Some(
             vec![(COLUMN_METADATA_KEY.to_string(), column_type.to_string())]
                 .into_iter()
                 .collect(),
-        );
+        ));
         field
     }
 }
@@ -1360,6 +1365,6 @@ mod test {
             .unwrap();
 
         // this is mostly a smoke test
-        assert_eq!(schema.estimate_size(), 843);
+        assert_eq!(schema.estimate_size(), 795);
     }
 }
diff --git a/trace_exporters/Cargo.toml b/trace_exporters/Cargo.toml
index b1682a6ed9..011369d9f5 100644
--- a/trace_exporters/Cargo.toml
+++ b/trace_exporters/Cargo.toml
@@ -13,7 +13,7 @@ clap = { version = "4", features = ["derive", "env"] }
 futures = "0.3"
 observability_deps = { path = "../observability_deps" }
 snafu = "0.7"
-thrift = { version = "0.17.0" }
+thrift = { version = "0.16.0" }
 tokio = { version = "1.22", features = ["macros", "parking_lot", "rt", "sync"] }
 trace = { path = "../trace" }
 workspace-hack = { path = "../workspace-hack"}
diff --git a/workspace-hack/Cargo.toml b/workspace-hack/Cargo.toml
index 7dc9e08380..ac074241de 100644
--- a/workspace-hack/Cargo.toml
+++ b/workspace-hack/Cargo.toml
@@ -17,7 +17,7 @@ license.workspace = true
 ### BEGIN HAKARI SECTION
 [dependencies]
 ahash = { version = "0.8", default-features = false, features = ["compile-time-rng", "const-random", "getrandom", "runtime-rng"] }
-arrow = { version = "28", features = ["arrow-csv", "arrow-ipc", "arrow-json", "comfy-table", "csv", "dyn_cmp_dict", "ipc", "json", "prettyprint"] }
+arrow = { version = "27", features = ["arrow-csv", "arrow-ipc", "arrow-json", "comfy-table", "csv", "dyn_cmp_dict", "ipc", "json", "prettyprint"] }
 base64 = { version = "0.13", features = ["std"] }
 bitflags = { version = "1" }
 byteorder = { version = "1", features = ["std"] }
@@ -25,7 +25,7 @@ bytes = { version = "1", features = ["std"] }
 chrono = { version = "0.4", default-features = false, features = ["alloc", "clock", "iana-time-zone", "serde", "std", "winapi"] }
 crossbeam-utils = { version = "0.8", features = ["std"] }
 crypto-common = { version = "0.1", default-features = false, features = ["std"] }
-datafusion = { git = "https://github.com/apache/arrow-datafusion.git", rev = "fdc83e8524df30ac5d0ae097572b7c48dc686ba9", features = ["async-compression", "bzip2", "compression", "crypto_expressions", "flate2", "regex_expressions", "unicode_expressions", "xz2"] }
+datafusion = { git = "https://github.com/apache/arrow-datafusion.git", rev = "dd3f72ad13df3e3ab2efde73eba546012eaf10fd", features = ["async-compression", "bzip2", "compression", "crypto_expressions", "flate2", "regex_expressions", "unicode_expressions", "xz2"] }
 digest = { version = "0.10", features = ["alloc", "block-buffer", "core-api", "mac", "std", "subtle"] }
 either = { version = "1", features = ["use_std"] }
 fixedbitset = { version = "0.4", features = ["std"] }
@@ -52,7 +52,7 @@ num-traits = { version = "0.2", features = ["i128", "libm", "std"] }
 object_store = { version = "0.5", default-features = false, features = ["aws", "azure", "base64", "cloud", "gcp", "quick-xml", "rand", "reqwest", "ring", "rustls-pemfile", "serde", "serde_json"] }
 once_cell = { version = "1", features = ["alloc", "parking_lot", "parking_lot_core", "race", "std"] }
 parking_lot = { version = "0.12", features = ["arc_lock"] }
-parquet = { version = "28", features = ["arrow", "arrow-array", "arrow-buffer", "arrow-cast", "arrow-data", "arrow-ipc", "arrow-schema", "arrow-select", "async", "base64", "brotli", "experimental", "flate2", "futures", "lz4", "snap", "tokio", "zstd"] }
+parquet = { version = "27", features = ["arrow", "arrow-array", "arrow-buffer", "arrow-cast", "arrow-data", "arrow-ipc", "arrow-schema", "arrow-select", "async", "base64", "brotli", "experimental", "flate2", "futures", "lz4", "snap", "tokio", "zstd"] }
 predicates = { version = "2", features = ["diff", "difflib", "float-cmp", "normalize-line-endings", "regex"] }
 prost = { version = "0.11", features = ["prost-derive", "std"] }
 prost-types = { version = "0.11", features = ["std"] }
@@ -69,7 +69,7 @@ similar = { version = "2", features = ["inline", "text"] }
 smallvec = { version = "1", default-features = false, features = ["union"] }
 sqlx = { version = "0.6", features = ["_rt-tokio", "json", "macros", "migrate", "postgres", "runtime-tokio-rustls", "sqlx-macros", "tls", "uuid"] }
 sqlx-core = { version = "0.6", default-features = false, features = ["_rt-tokio", "_tls-rustls", "any", "base64", "crc", "dirs", "hkdf", "hmac", "json", "md-5", "migrate", "postgres", "rand", "runtime-tokio-rustls", "rustls", "rustls-pemfile", "serde", "serde_json", "sha1", "sha2", "tokio-stream", "uuid", "webpki-roots", "whoami"] }
-thrift = { version = "0.17", features = ["log", "server", "threadpool"] }
+thrift = { version = "0.16", features = ["log", "server", "threadpool"] }
 tokio = { version = "1", features = ["bytes", "fs", "io-std", "io-util", "libc", "macros", "memchr", "mio", "net", "num_cpus", "parking_lot", "rt", "rt-multi-thread", "signal", "signal-hook-registry", "socket2", "sync", "time", "tokio-macros", "tracing"] }
 tokio-stream = { version = "0.1", features = ["fs", "net", "time"] }
 tokio-util = { version = "0.7", features = ["codec", "compat", "futures-io", "io", "tracing"] }
@@ -82,8 +82,6 @@ tracing-log = { version = "0.1", features = ["log-tracer", "std", "trace-logger"
 tracing-subscriber = { version = "0.3", features = ["alloc", "ansi", "env-filter", "fmt", "json", "matchers", "nu-ansi-term", "once_cell", "parking_lot", "regex", "registry", "serde", "serde_json", "sharded-slab", "smallvec", "std", "thread_local", "tracing", "tracing-log", "tracing-serde"] }
 url = { version = "2" }
 uuid = { version = "1", features = ["getrandom", "rng", "std", "v4"] }
-zstd = { version = "0.12", features = ["arrays", "legacy", "zdict_builder"] }
-zstd-safe = { version = "6", default-features = false, features = ["arrays", "legacy", "std", "zdict_builder"] }
 zstd-sys = { version = "2", default-features = false, features = ["legacy", "std", "zdict_builder"] }
 
 [build-dependencies]