diff --git a/Cargo.toml b/Cargo.toml index 2db0379b0657..d69bec7ae8bc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,4 +56,14 @@ lto = false opt-level = 3 overflow-checks = false panic = 'unwind' -rpath = false \ No newline at end of file +rpath = false + + +[patch.crates-io] +arrow = { git = "https://github.com/alamb/arrow-rs.git", rev="661caf3" } +arrow-array = { git = "https://github.com/alamb/arrow-rs.git", rev="661caf3" } +arrow-buffer = { git = "https://github.com/alamb/arrow-rs.git", rev="661caf3" } +arrow-flight = { git = "https://github.com/alamb/arrow-rs.git", rev="661caf3" } +arrow-schema = { git = "https://github.com/alamb/arrow-rs.git", rev="661caf3" } +arrow-cast = { git = "https://github.com/alamb/arrow-rs.git", rev="661caf3" } +parquet = { git = "https://github.com/alamb/arrow-rs.git", rev="661caf3" } diff --git a/datafusion/core/src/physical_plan/aggregates/row_hash.rs b/datafusion/core/src/physical_plan/aggregates/row_hash.rs index c57f43632407..08e21053b92d 100644 --- a/datafusion/core/src/physical_plan/aggregates/row_hash.rs +++ b/datafusion/core/src/physical_plan/aggregates/row_hash.rs @@ -423,7 +423,10 @@ impl GroupedHashAggregateStream { // verify that a group that we are inserting with hash is // actually the same key value as the group in // existing_idx (aka group_values @ row) - group_rows.row(row) == self.group_values.row(*group_idx) + unsafe { + group_rows.row_unchecked(row) + == self.group_values.row_unchecked(*group_idx) + } }); let group_idx = match entry { @@ -433,7 +436,9 @@ impl GroupedHashAggregateStream { None => { // Add new entry to aggr_state and save newly created index let group_idx = self.group_values.num_rows(); - self.group_values.push(group_rows.row(row)); + unsafe { + self.group_values.push(group_rows.row_unchecked(row)); + } // for hasher function, use precomputed hash value self.map.insert_accounted(