bump version and update changelog
diff --git a/Cargo.toml b/Cargo.toml
index a0efd15..e73581b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -35,7 +35,7 @@
 ]
 
 [workspace.package]
-version = "24.0.0"
+version = "25.0.0"
 edition = "2021"
 readme = "README.md"
 authors = ["Apache Arrow <dev@arrow.apache.org>"]
diff --git a/benchmarks/Cargo.toml b/benchmarks/Cargo.toml
index 7a55f99..09fe033 100644
--- a/benchmarks/Cargo.toml
+++ b/benchmarks/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "datafusion-benchmarks"
 description = "DataFusion Benchmarks"
-version = "24.0.0"
+version = "25.0.0"
 edition = "2021"
 authors = ["Apache Arrow <dev@arrow.apache.org>"]
 homepage = "https://github.com/apache/arrow-datafusion"
@@ -34,7 +34,7 @@
 
 [dependencies]
 arrow = { workspace = true }
-datafusion = { path = "../datafusion/core", version = "24.0.0" }
+datafusion = { path = "../datafusion/core", version = "25.0.0" }
 env_logger = "0.10"
 futures = "0.3"
 mimalloc = { version = "0.1", optional = true, default-features = false }
@@ -48,4 +48,4 @@
 tokio = { version = "^1.0", features = ["macros", "rt", "rt-multi-thread", "parking_lot"] }
 
 [dev-dependencies]
-datafusion-proto = { path = "../datafusion/proto", version = "24.0.0" }
+datafusion-proto = { path = "../datafusion/proto", version = "25.0.0" }
diff --git a/datafusion-cli/Cargo.lock b/datafusion-cli/Cargo.lock
index 05415de..a6c647e 100644
--- a/datafusion-cli/Cargo.lock
+++ b/datafusion-cli/Cargo.lock
@@ -302,7 +302,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.16",
 ]
 
 [[package]]
@@ -507,7 +507,7 @@
  "http",
  "http-body",
  "hyper",
- "hyper-rustls",
+ "hyper-rustls 0.23.2",
  "lazy_static",
  "pin-project-lite",
  "tokio",
@@ -685,9 +685,9 @@
 
 [[package]]
 name = "bumpalo"
-version = "3.12.1"
+version = "3.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8"
+checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b"
 
 [[package]]
 name = "byteorder"
@@ -833,16 +833,6 @@
 ]
 
 [[package]]
-name = "codespan-reporting"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-dependencies = [
- "termcolor",
- "unicode-width",
-]
-
-[[package]]
 name = "comfy-table"
 version = "6.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -953,50 +943,6 @@
 ]
 
 [[package]]
-name = "cxx"
-version = "1.0.94"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93"
-dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
-]
-
-[[package]]
-name = "cxx-build"
-version = "1.0.94"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b"
-dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
- "proc-macro2",
- "quote",
- "scratch",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "cxxbridge-flags"
-version = "1.0.94"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb"
-
-[[package]]
-name = "cxxbridge-macro"
-version = "1.0.94"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.15",
-]
-
-[[package]]
 name = "dashmap"
 version = "5.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1011,7 +957,7 @@
 
 [[package]]
 name = "datafusion"
-version = "24.0.0"
+version = "25.0.0"
 dependencies = [
  "ahash",
  "arrow",
@@ -1059,7 +1005,7 @@
 
 [[package]]
 name = "datafusion-cli"
-version = "24.0.0"
+version = "25.0.0"
 dependencies = [
  "arrow",
  "async-trait",
@@ -1077,7 +1023,7 @@
 
 [[package]]
 name = "datafusion-common"
-version = "24.0.0"
+version = "25.0.0"
 dependencies = [
  "arrow",
  "arrow-array",
@@ -1090,7 +1036,7 @@
 
 [[package]]
 name = "datafusion-execution"
-version = "24.0.0"
+version = "25.0.0"
 dependencies = [
  "dashmap",
  "datafusion-common",
@@ -1106,7 +1052,7 @@
 
 [[package]]
 name = "datafusion-expr"
-version = "24.0.0"
+version = "25.0.0"
 dependencies = [
  "ahash",
  "arrow",
@@ -1116,7 +1062,7 @@
 
 [[package]]
 name = "datafusion-optimizer"
-version = "24.0.0"
+version = "25.0.0"
 dependencies = [
  "arrow",
  "async-trait",
@@ -1132,7 +1078,7 @@
 
 [[package]]
 name = "datafusion-physical-expr"
-version = "24.0.0"
+version = "25.0.0"
 dependencies = [
  "ahash",
  "arrow",
@@ -1163,7 +1109,7 @@
 
 [[package]]
 name = "datafusion-row"
-version = "24.0.0"
+version = "25.0.0"
 dependencies = [
  "arrow",
  "datafusion-common",
@@ -1173,7 +1119,7 @@
 
 [[package]]
 name = "datafusion-sql"
-version = "24.0.0"
+version = "25.0.0"
 dependencies = [
  "arrow",
  "arrow-schema",
@@ -1423,7 +1369,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.16",
 ]
 
 [[package]]
@@ -1485,9 +1431,9 @@
 
 [[package]]
 name = "h2"
-version = "0.3.18"
+version = "0.3.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21"
+checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782"
 dependencies = [
  "bytes",
  "fnv",
@@ -1645,10 +1591,23 @@
  "http",
  "hyper",
  "log",
- "rustls",
+ "rustls 0.20.8",
  "rustls-native-certs",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.23.4",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7"
+dependencies = [
+ "http",
+ "hyper",
+ "rustls 0.21.1",
+ "tokio",
+ "tokio-rustls 0.24.0",
 ]
 
 [[package]]
@@ -1667,12 +1626,11 @@
 
 [[package]]
 name = "iana-time-zone-haiku"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
 dependencies = [
- "cxx",
- "cxx-build",
+ "cc",
 ]
 
 [[package]]
@@ -1753,9 +1711,9 @@
 
 [[package]]
 name = "js-sys"
-version = "0.3.61"
+version = "0.3.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1832,15 +1790,15 @@
 
 [[package]]
 name = "libc"
-version = "0.2.142"
+version = "0.2.144"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317"
+checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
 
 [[package]]
 name = "libm"
-version = "0.2.6"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
+checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
 
 [[package]]
 name = "libmimalloc-sys"
@@ -1853,15 +1811,6 @@
 ]
 
 [[package]]
-name = "link-cplusplus"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
-dependencies = [
- "cc",
-]
-
-[[package]]
 name = "linux-raw-sys"
 version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2268,22 +2217,22 @@
 
 [[package]]
 name = "pin-project"
-version = "1.0.12"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
+checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.0.12"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
+checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.16",
 ]
 
 [[package]]
@@ -2342,9 +2291,9 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.56"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8"
 dependencies = [
  "unicode-ident",
 ]
@@ -2361,9 +2310,9 @@
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
 dependencies = [
  "proc-macro2",
 ]
@@ -2456,9 +2405,9 @@
 
 [[package]]
 name = "reqwest"
-version = "0.11.17"
+version = "0.11.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91"
+checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
 dependencies = [
  "base64",
  "bytes",
@@ -2469,7 +2418,7 @@
  "http",
  "http-body",
  "hyper",
- "hyper-rustls",
+ "hyper-rustls 0.24.0",
  "ipnet",
  "js-sys",
  "log",
@@ -2477,13 +2426,13 @@
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls",
+ "rustls 0.21.1",
  "rustls-pemfile",
  "serde",
  "serde_json",
  "serde_urlencoded",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.0",
  "tokio-util",
  "tower-service",
  "url",
@@ -2546,6 +2495,18 @@
 ]
 
 [[package]]
+name = "rustls"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c911ba11bc8433e811ce56fde130ccf32f5127cab0e0194e9c68c5a5b671791e"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2567,6 +2528,16 @@
 ]
 
 [[package]]
+name = "rustls-webpki"
+version = "0.100.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
 name = "rustversion"
 version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2626,12 +2597,6 @@
 checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
-name = "scratch"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1"
-
-[[package]]
 name = "sct"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2643,9 +2608,9 @@
 
 [[package]]
 name = "security-framework"
-version = "2.8.2"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
+checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
 dependencies = [
  "bitflags",
  "core-foundation",
@@ -2656,9 +2621,9 @@
 
 [[package]]
 name = "security-framework-sys"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
+checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -2678,22 +2643,22 @@
 
 [[package]]
 name = "serde"
-version = "1.0.162"
+version = "1.0.163"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71b2f6e1ab5c2b98c05f0f35b236b22e8df7ead6ffbf51d7808da7f8817e7ab6"
+checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.162"
+version = "1.0.163"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6"
+checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.16",
 ]
 
 [[package]]
@@ -2872,9 +2837,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.15"
+version = "2.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
+checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2926,7 +2891,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.16",
 ]
 
 [[package]]
@@ -2992,9 +2957,9 @@
 
 [[package]]
 name = "tokio"
-version = "1.28.0"
+version = "1.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f"
+checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105"
 dependencies = [
  "autocfg",
  "bytes",
@@ -3016,7 +2981,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.16",
 ]
 
 [[package]]
@@ -3025,12 +2990,22 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
 dependencies = [
- "rustls",
+ "rustls 0.20.8",
  "tokio",
  "webpki",
 ]
 
 [[package]]
+name = "tokio-rustls"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5"
+dependencies = [
+ "rustls 0.21.1",
+ "tokio",
+]
+
+[[package]]
 name = "tokio-stream"
 version = "0.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3104,14 +3079,14 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.16",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.30"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
 dependencies = [
  "once_cell",
 ]
@@ -3202,9 +3177,9 @@
 
 [[package]]
 name = "uuid"
-version = "1.3.2"
+version = "1.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2"
+checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2"
 dependencies = [
  "getrandom",
 ]
@@ -3249,9 +3224,9 @@
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.84"
+version = "0.2.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3259,24 +3234,24 @@
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.84"
+version = "0.2.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.16",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.34"
+version = "0.4.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3286,9 +3261,9 @@
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.84"
+version = "0.2.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3296,22 +3271,22 @@
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.84"
+version = "0.2.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.16",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.84"
+version = "0.2.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93"
 
 [[package]]
 name = "wasm-streams"
@@ -3328,9 +3303,9 @@
 
 [[package]]
 name = "web-sys"
-version = "0.3.61"
+version = "0.3.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
diff --git a/datafusion-cli/Cargo.toml b/datafusion-cli/Cargo.toml
index a73c7df..5045cb2 100644
--- a/datafusion-cli/Cargo.toml
+++ b/datafusion-cli/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "datafusion-cli"
 description = "Command Line Client for DataFusion query engine."
-version = "24.0.0"
+version = "25.0.0"
 authors = ["Apache Arrow <dev@arrow.apache.org>"]
 edition = "2021"
 keywords = ["arrow", "datafusion", "query", "sql"]
@@ -32,7 +32,7 @@
 arrow = "39.0.0"
 async-trait = "0.1.41"
 clap = { version = "3", features = ["derive", "cargo"] }
-datafusion = { path = "../datafusion/core", version = "24.0.0" }
+datafusion = { path = "../datafusion/core", version = "25.0.0" }
 dirs = "4.0.0"
 env_logger = "0.9"
 mimalloc = { version = "0.1", default-features = false }
diff --git a/datafusion/CHANGELOG.md b/datafusion/CHANGELOG.md
index da5e164..ca7b3c6 100644
--- a/datafusion/CHANGELOG.md
+++ b/datafusion/CHANGELOG.md
@@ -19,6 +19,7 @@
 
 # Changelog
 
+- [25.0.0](../dev/changelog/25.0.0.md)
 - [24.0.0](../dev/changelog/24.0.0.md)
 - [23.0.0](../dev/changelog/23.0.0.md)
 - [22.0.0](../dev/changelog/22.0.0.md)
diff --git a/datafusion/core/Cargo.toml b/datafusion/core/Cargo.toml
index cc91b36..9747808 100644
--- a/datafusion/core/Cargo.toml
+++ b/datafusion/core/Cargo.toml
@@ -61,13 +61,13 @@
 bzip2 = { version = "0.4.3", optional = true }
 chrono = { version = "0.4.23", default-features = false }
 dashmap = "5.4.0"
-datafusion-common = { path = "../common", version = "24.0.0", features = ["parquet", "object_store"] }
-datafusion-execution = { path = "../execution", version = "24.0.0" }
-datafusion-expr = { path = "../expr", version = "24.0.0" }
-datafusion-optimizer = { path = "../optimizer", version = "24.0.0", default-features = false }
-datafusion-physical-expr = { path = "../physical-expr", version = "24.0.0", default-features = false }
-datafusion-row = { path = "../row", version = "24.0.0" }
-datafusion-sql = { path = "../sql", version = "24.0.0" }
+datafusion-common = { path = "../common", version = "25.0.0", features = ["parquet", "object_store"] }
+datafusion-execution = { path = "../execution", version = "25.0.0" }
+datafusion-expr = { path = "../expr", version = "25.0.0" }
+datafusion-optimizer = { path = "../optimizer", version = "25.0.0", default-features = false }
+datafusion-physical-expr = { path = "../physical-expr", version = "25.0.0", default-features = false }
+datafusion-row = { path = "../row", version = "25.0.0" }
+datafusion-sql = { path = "../sql", version = "25.0.0" }
 flate2 = { version = "1.0.24", optional = true }
 futures = "0.3"
 glob = "0.3.0"
diff --git a/datafusion/execution/Cargo.toml b/datafusion/execution/Cargo.toml
index 21d453d..55a7c29 100644
--- a/datafusion/execution/Cargo.toml
+++ b/datafusion/execution/Cargo.toml
@@ -34,8 +34,8 @@
 
 [dependencies]
 dashmap = "5.4.0"
-datafusion-common = { path = "../common", version = "24.0.0" }
-datafusion-expr = { path = "../expr", version = "24.0.0" }
+datafusion-common = { path = "../common", version = "25.0.0" }
+datafusion-expr = { path = "../expr", version = "25.0.0" }
 hashbrown = { version = "0.13", features = ["raw"] }
 log = "^0.4"
 object_store = "0.5.4"
diff --git a/datafusion/expr/Cargo.toml b/datafusion/expr/Cargo.toml
index 7ad8205..17b318e 100644
--- a/datafusion/expr/Cargo.toml
+++ b/datafusion/expr/Cargo.toml
@@ -37,7 +37,7 @@
 [dependencies]
 ahash = { version = "0.8", default-features = false, features = ["runtime-rng"] }
 arrow = { workspace = true }
-datafusion-common = { path = "../common", version = "24.0.0" }
+datafusion-common = { path = "../common", version = "25.0.0" }
 sqlparser = "0.33"
 
 [dev-dependencies]
diff --git a/datafusion/optimizer/Cargo.toml b/datafusion/optimizer/Cargo.toml
index b9c20a3..8efbbb2 100644
--- a/datafusion/optimizer/Cargo.toml
+++ b/datafusion/optimizer/Cargo.toml
@@ -43,9 +43,9 @@
 arrow = { workspace = true }
 async-trait = "0.1.41"
 chrono = { version = "0.4.23", default-features = false }
-datafusion-common = { path = "../common", version = "24.0.0" }
-datafusion-expr = { path = "../expr", version = "24.0.0" }
-datafusion-physical-expr = { path = "../physical-expr", version = "24.0.0", default-features = false }
+datafusion-common = { path = "../common", version = "25.0.0" }
+datafusion-expr = { path = "../expr", version = "25.0.0" }
+datafusion-physical-expr = { path = "../physical-expr", version = "25.0.0", default-features = false }
 hashbrown = { version = "0.13", features = ["raw"] }
 itertools = "0.10"
 log = "^0.4"
@@ -53,5 +53,5 @@
 
 [dev-dependencies]
 ctor = "0.2.0"
-datafusion-sql = { path = "../sql", version = "24.0.0" }
+datafusion-sql = { path = "../sql", version = "25.0.0" }
 env_logger = "0.10.0"
diff --git a/datafusion/physical-expr/Cargo.toml b/datafusion/physical-expr/Cargo.toml
index 854058d..88ff4d9 100644
--- a/datafusion/physical-expr/Cargo.toml
+++ b/datafusion/physical-expr/Cargo.toml
@@ -50,9 +50,9 @@
 blake2 = { version = "^0.10.2", optional = true }
 blake3 = { version = "1.0", optional = true }
 chrono = { version = "0.4.23", default-features = false }
-datafusion-common = { path = "../common", version = "24.0.0" }
-datafusion-expr = { path = "../expr", version = "24.0.0" }
-datafusion-row = { path = "../row", version = "24.0.0" }
+datafusion-common = { path = "../common", version = "25.0.0" }
+datafusion-expr = { path = "../expr", version = "25.0.0" }
+datafusion-row = { path = "../row", version = "25.0.0" }
 half = { version = "2.1", default-features = false }
 hashbrown = { version = "0.13", features = ["raw"] }
 indexmap = "1.9.2"
diff --git a/datafusion/proto/Cargo.toml b/datafusion/proto/Cargo.toml
index a7be23e..3d60888 100644
--- a/datafusion/proto/Cargo.toml
+++ b/datafusion/proto/Cargo.toml
@@ -42,9 +42,9 @@
 [dependencies]
 arrow = { workspace = true }
 chrono = { version = "0.4", default-features = false }
-datafusion = { path = "../core", version = "24.0.0" }
-datafusion-common = { path = "../common", version = "24.0.0" }
-datafusion-expr = { path = "../expr", version = "24.0.0" }
+datafusion = { path = "../core", version = "25.0.0" }
+datafusion-common = { path = "../common", version = "25.0.0" }
+datafusion-expr = { path = "../expr", version = "25.0.0" }
 object_store = { version = "0.5.4" }
 pbjson = { version = "0.5", optional = true }
 prost = "0.11.0"
diff --git a/datafusion/row/Cargo.toml b/datafusion/row/Cargo.toml
index 445f574..800547f 100644
--- a/datafusion/row/Cargo.toml
+++ b/datafusion/row/Cargo.toml
@@ -34,6 +34,6 @@
 
 [dependencies]
 arrow = { workspace = true }
-datafusion-common = { path = "../common", version = "24.0.0" }
+datafusion-common = { path = "../common", version = "25.0.0" }
 paste = "^1.0"
 rand = "0.8"
diff --git a/datafusion/sql/Cargo.toml b/datafusion/sql/Cargo.toml
index 6b37b15..6a0a5a7 100644
--- a/datafusion/sql/Cargo.toml
+++ b/datafusion/sql/Cargo.toml
@@ -39,8 +39,8 @@
 [dependencies]
 arrow = { workspace = true }
 arrow-schema = { workspace = true }
-datafusion-common = { path = "../common", version = "24.0.0" }
-datafusion-expr = { path = "../expr", version = "24.0.0" }
+datafusion-common = { path = "../common", version = "25.0.0" }
+datafusion-expr = { path = "../expr", version = "25.0.0" }
 log = "^0.4"
 sqlparser = "0.33"
 
diff --git a/datafusion/substrait/Cargo.toml b/datafusion/substrait/Cargo.toml
index 91c3b0f..6f283ee 100644
--- a/datafusion/substrait/Cargo.toml
+++ b/datafusion/substrait/Cargo.toml
@@ -30,7 +30,7 @@
 [dependencies]
 async-recursion = "1.0"
 chrono = { version = "0.4.23", default-features = false }
-datafusion = { version = "24.0.0", path = "../core" }
+datafusion = { version = "25.0.0", path = "../core" }
 itertools = "0.10.5"
 object_store = "0.5.4"
 prost = "0.11"
diff --git a/dev/changelog/25.0.0.md b/dev/changelog/25.0.0.md
new file mode 100644
index 0000000..199e65e
--- /dev/null
+++ b/dev/changelog/25.0.0.md
@@ -0,0 +1,117 @@
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+## [25.0.0](https://github.com/apache/arrow-datafusion/tree/25.0.0) (2023-05-19)
+
+[Full Changelog](https://github.com/apache/arrow-datafusion/compare/24.0.0...25.0.0)
+
+**Breaking changes:**
+
+- refactor: Expr::ScalarFunction to use a struct [#6281](https://github.com/apache/arrow-datafusion/pull/6281) (jackwener)
+- Remove SizedRecordBatchStream [#6309](https://github.com/apache/arrow-datafusion/pull/6309) (tustvold)
+- Add support for ordering sensitive aggregation [#6332](https://github.com/apache/arrow-datafusion/pull/6332) (mustafasrepo)
+- Cleanup ExternalSorter metrics (#5885) [#6364](https://github.com/apache/arrow-datafusion/pull/6364) (tustvold)
+
+**Implemented enhancements:**
+
+- feat: LCM, GCD and Factorial [#6149](https://github.com/apache/arrow-datafusion/pull/6149) (izveigor)
+- feat: negation of `Intervals` [#6312](https://github.com/apache/arrow-datafusion/pull/6312) (izveigor)
+- feat: support bitwise and boolean aggregate functions [#6276](https://github.com/apache/arrow-datafusion/pull/6276) (izveigor)
+- feat: min/max agg for bool [#6226](https://github.com/apache/arrow-datafusion/pull/6226) (crepererum)
+- feat: add pattern for simplifying exprs like `str ~ '^foo$'` [#6369](https://github.com/apache/arrow-datafusion/pull/6369) (wolffcm)
+
+**Fixed bugs:**
+
+- fix: `projection_push_down` don't consider VarProvider in columns. [#6254](https://github.com/apache/arrow-datafusion/pull/6254) (jackwener)
+
+**Documentation updates:**
+
+- Bump snmalloc version in the example usage doc [#6344](https://github.com/apache/arrow-datafusion/pull/6344) (qrilka)
+
+**Merged pull requests:**
+
+- doc: add more sql example in ddl.md [#6266](https://github.com/apache/arrow-datafusion/pull/6266) (jackwener)
+- Port tests in functions.rs to sqllogictest [#6256](https://github.com/apache/arrow-datafusion/pull/6256) (parkma99)
+- Prepare 24.0.0 release [#6262](https://github.com/apache/arrow-datafusion/pull/6262) (andygrove)
+- fix: `projection_push_down` don't consider VarProvider in columns. [#6254](https://github.com/apache/arrow-datafusion/pull/6254) (jackwener)
+- Minor: rename NestedLoopsJoin memory reservation for clarity [#6228](https://github.com/apache/arrow-datafusion/pull/6228) (alamb)
+- refactor: Expr::ScalarFunction to use a struct [#6281](https://github.com/apache/arrow-datafusion/pull/6281) (jackwener)
+- Minor: document syntax of CREATE EXTERNAL TABLE [#6247](https://github.com/apache/arrow-datafusion/pull/6247) (alamb)
+- feat: LCM, GCD and Factorial [#6149](https://github.com/apache/arrow-datafusion/pull/6149) (izveigor)
+- Port tests in unicode.rs to sqllogictest [#6259](https://github.com/apache/arrow-datafusion/pull/6259) (parkma99)
+- minor: remove prefix in type_coercion [#6283](https://github.com/apache/arrow-datafusion/pull/6283) (jackwener)
+- Enable parser to parse create external clauses in arbitrary order [#6257](https://github.com/apache/arrow-datafusion/pull/6257) (aprimadi)
+- minor: Remove dead code for casting dictionaries [#6286](https://github.com/apache/arrow-datafusion/pull/6286) (alamb)
+- refactor: Expr::ScalarUDF to use a struct [#6284](https://github.com/apache/arrow-datafusion/pull/6284) (jackwener)
+- refactor: Expr::AggregateUDF to use a struct [#6294](https://github.com/apache/arrow-datafusion/pull/6294) (my-vegetable-has-exploded)
+- refactor: Expr::Exists to use a struct. [#6292](https://github.com/apache/arrow-datafusion/pull/6292) (QuenKar)
+- refactor: Expr::InList to use a struct [#6293](https://github.com/apache/arrow-datafusion/pull/6293) (jackwener)
+- Fix `CREATE EXTERNAL TABLE` doesn't work with non-standard file ext [#6274](https://github.com/apache/arrow-datafusion/pull/6274) (aprimadi)
+- Support `interval '1 month' + date/timestamp`: Handle binary op interval in logical AST builder [#6270](https://github.com/apache/arrow-datafusion/pull/6270) (aprimadi)
+- chore(deps): update substrait requirement from 0.8.0 to 0.9.0 [#6296](https://github.com/apache/arrow-datafusion/pull/6296) (dependabot[bot])
+- Refactor: Expr::InSubquery to use a struct [#6295](https://github.com/apache/arrow-datafusion/pull/6295) (gitccl)
+- Add more documentation to SortPreservingMergeStream [#6260](https://github.com/apache/arrow-datafusion/pull/6260) (aprimadi)
+- refactor: Expr::PlaceHolder to use a struct [#6304](https://github.com/apache/arrow-datafusion/pull/6304) (jackwener)
+- Fix inconsistent array type for binary numerical operators result between array and scalar [#6269](https://github.com/apache/arrow-datafusion/pull/6269) (viirya)
+- Remove SizedRecordBatchStream [#6309](https://github.com/apache/arrow-datafusion/pull/6309) (tustvold)
+- Improve error message for CREATE EXTERNAL TABLE [#6291](https://github.com/apache/arrow-datafusion/pull/6291) (parkma99)
+- Remove the PhysicalSortExpr restriction on union get meet [#6273](https://github.com/apache/arrow-datafusion/pull/6273) (berkaysynnada)
+- Disable `skip_failed_rules` optimizer config by default [#6265](https://github.com/apache/arrow-datafusion/pull/6265) (jackwener)
+- Update Arrow 39 [#6252](https://github.com/apache/arrow-datafusion/pull/6252) (tustvold)
+- Port tests in `json.rs` to sqllogictest [#6314](https://github.com/apache/arrow-datafusion/pull/6314) (gitccl)
+- corrected order of cd command to git checkout [#6318](https://github.com/apache/arrow-datafusion/pull/6318) (sunny-jain-maersk)
+- Port remainder of `window.rs` to sqllogictest [#6234](https://github.com/apache/arrow-datafusion/pull/6234) (alamb)
+- feat: negation of `Intervals` [#6312](https://github.com/apache/arrow-datafusion/pull/6312) (izveigor)
+- [parquet] Avoid read parquet index when there is no filter pushdown. [#6317](https://github.com/apache/arrow-datafusion/pull/6317) (Ted-Jiang)
+- Parallel merge sort (#6162) [#6308](https://github.com/apache/arrow-datafusion/pull/6308) (tustvold)
+- Port some tests in joins.rs to sqllogictest [#6306](https://github.com/apache/arrow-datafusion/pull/6306) (parkma99)
+- Fix case evaluation with NULL [#6334](https://github.com/apache/arrow-datafusion/pull/6334) (byteink)
+- Support null values in Avro string columns [#6307](https://github.com/apache/arrow-datafusion/pull/6307) (nenorbot)
+- Add bdt to the list of known users [#6341](https://github.com/apache/arrow-datafusion/pull/6341) (qrilka)
+- Port tests in errors.rs to context.rs [#6340](https://github.com/apache/arrow-datafusion/pull/6340) (masanobbb)
+- Enable parquet page level skipping (page index pruning) by default [#5099](https://github.com/apache/arrow-datafusion/pull/5099) (alamb)
+- Bump snmalloc version in the example usage doc [#6344](https://github.com/apache/arrow-datafusion/pull/6344) (qrilka)
+- Port tests in explain.rs to sqllogictests [#6343](https://github.com/apache/arrow-datafusion/pull/6343) (my-vegetable-has-exploded)
+- Improve parallelism of repartition operator with multiple cores [#6310](https://github.com/apache/arrow-datafusion/pull/6310) (alamb)
+- Ordering satisfy consider ordering equivalence of different lengths [#6330](https://github.com/apache/arrow-datafusion/pull/6330) (berkaysynnada)
+- Minor: Update documentation for `datafusion.execution.parquet.enable_page_index` [#6342](https://github.com/apache/arrow-datafusion/pull/6342) (alamb)
+- refine decimal multiply, avoid cast to wider type [#6331](https://github.com/apache/arrow-datafusion/pull/6331) (mingmwang)
+- Combine the two rules: DecorrelateWhereExists and DecorrelateWhereIn [#6271](https://github.com/apache/arrow-datafusion/pull/6271) (mingmwang)
+- feat: support bitwise and boolean aggregate functions [#6276](https://github.com/apache/arrow-datafusion/pull/6276) (izveigor)
+- Fix explain plan formatting in sqllogictest [#6329](https://github.com/apache/arrow-datafusion/pull/6329) (alamb)
+- Fix expected output [#6353](https://github.com/apache/arrow-datafusion/pull/6353) (alamb)
+- Simplify IsNotNull and IsNull expression [#6345](https://github.com/apache/arrow-datafusion/pull/6345) (byteink)
+- Add support for ordering sensitive aggregation [#6332](https://github.com/apache/arrow-datafusion/pull/6332) (mustafasrepo)
+- chore(deps): update substrait requirement from 0.9.0 to 0.10.0 [#6351](https://github.com/apache/arrow-datafusion/pull/6351) (dependabot[bot])
+- Minor: Update the testing section of contributor guide [#6357](https://github.com/apache/arrow-datafusion/pull/6357) (alamb)
+- Add support for reading Arrow files [#6337](https://github.com/apache/arrow-datafusion/pull/6337) (jonmmease)
+- Support CREATE TABLE via SQL for infinite streams [#6352](https://github.com/apache/arrow-datafusion/pull/6352) (aprimadi)
+- feat: min/max agg for bool [#6226](https://github.com/apache/arrow-datafusion/pull/6226) (crepererum)
+- Fix variable shadowing in test code [#6361](https://github.com/apache/arrow-datafusion/pull/6361) (lokax)
+- Cleanup ExternalSorter metrics (#5885) [#6364](https://github.com/apache/arrow-datafusion/pull/6364) (tustvold)
+- Fix nullability calculation for boolean expressions [#6365](https://github.com/apache/arrow-datafusion/pull/6365) (byteink)
+- Faster ListingTable partition listing (#6182) [#6183](https://github.com/apache/arrow-datafusion/pull/6183) (tustvold)
+- feat: add pattern for simplifying exprs like `str ~ '^foo$'` [#6369](https://github.com/apache/arrow-datafusion/pull/6369) (wolffcm)
+- Minor: remove left over println [#6375](https://github.com/apache/arrow-datafusion/pull/6375) (alamb)
+- Limit the number of partition files to be displayed for FileGroupsDisplay [#6359](https://github.com/apache/arrow-datafusion/pull/6359) (yahoNanJing)
+- Switch to non-recursive on heap virtual stack when building logical plan from SQL expression [#6360](https://github.com/apache/arrow-datafusion/pull/6360) (aprimadi)
+- Fix UNION ALL aliasing [#6373](https://github.com/apache/arrow-datafusion/pull/6373) (comphead)
+- [sqllogictest] port tests in avro.rs to sqllogictest [#6362](https://github.com/apache/arrow-datafusion/pull/6362) (e1ijah1)
+- Concurrent Parquet Schema Inference [#6366](https://github.com/apache/arrow-datafusion/pull/6366) (tustvold)
+- Add` COPY .. TO ..` syntax support [#6355](https://github.com/apache/arrow-datafusion/pull/6355) (alamb)