From 2c20528c6926f16b5c78f0fcac652a2416326631 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Tue, 20 Jul 2021 04:53:46 -0400 Subject: [PATCH] chore: use upstream versions of some workarounds (#2057) * chore: use upstream versions of some workarounds * docs: update docstring Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- internal_types/src/schema.rs | 2 +- internal_types/src/schema/sort.rs | 19 +------------------ query/src/frontend/reorg.rs | 3 ++- query/src/provider/deduplicate/algo.rs | 11 +---------- 4 files changed, 5 insertions(+), 30 deletions(-) diff --git a/internal_types/src/schema.rs b/internal_types/src/schema.rs index 4427540576..9ac26a8731 100644 --- a/internal_types/src/schema.rs +++ b/internal_types/src/schema.rs @@ -786,12 +786,12 @@ macro_rules! assert_column_eq { #[cfg(test)] mod test { + use arrow::compute::SortOptions; use InfluxColumnType::*; use InfluxFieldType::*; use super::{builder::SchemaBuilder, *}; use crate::schema::merge::SchemaMerger; - use crate::schema::sort::SortOptions; fn make_field( name: &str, diff --git a/internal_types/src/schema/sort.rs b/internal_types/src/schema/sort.rs index a56fd0a495..0612b11dbc 100644 --- a/internal_types/src/schema/sort.rs +++ b/internal_types/src/schema/sort.rs @@ -1,5 +1,6 @@ use std::{fmt::Display, str::FromStr}; +use arrow::compute::SortOptions; use indexmap::{map::Iter, IndexMap}; use itertools::Itertools; use snafu::Snafu; @@ -23,24 +24,6 @@ pub enum Error { pub type Result = std::result::Result; -/// Temporary - -#[derive(Debug, Clone, Copy, Eq, PartialEq)] -pub struct SortOptions { - /// Whether to sort in descending order - pub descending: bool, - /// Whether to sort nulls first - pub nulls_first: bool, -} - -impl Default for SortOptions { - fn default() -> Self { - Self { - descending: false, - nulls_first: true, - } - } -} - #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub struct ColumnSort { /// Position of this column in the sort key diff --git a/query/src/frontend/reorg.rs b/query/src/frontend/reorg.rs index a1c2df8599..43e1c824e7 100644 --- a/query/src/frontend/reorg.rs +++ b/query/src/frontend/reorg.rs @@ -268,8 +268,9 @@ struct ScanPlan { #[cfg(test)] mod test { + use arrow::compute::SortOptions; use arrow_util::assert_batches_eq; - use internal_types::schema::{merge::SchemaMerger, sort::SortOptions}; + use internal_types::schema::merge::SchemaMerger; use crate::{ exec::{Executor, ExecutorType}, diff --git a/query/src/provider/deduplicate/algo.rs b/query/src/provider/deduplicate/algo.rs index 6cc7ecb77e..df14aebfa9 100644 --- a/query/src/provider/deduplicate/algo.rs +++ b/query/src/provider/deduplicate/algo.rs @@ -339,21 +339,12 @@ impl RecordBatchDeduplicator { } /// Create a new record batch from offset --> len - /// - /// for adding this upstream fn slice_record_batch( batch: &RecordBatch, offset: usize, len: usize, ) -> ArrowResult { - let schema = batch.schema(); - let new_columns: Vec<_> = batch - .columns() - .iter() - .map(|old_column| old_column.slice(offset, len)) - .collect(); - - let batch = RecordBatch::try_new(schema, new_columns)?; + let batch = batch.slice(offset, len); // At time of writing, `concat_batches` concatenates the // contents of dictionaries as well; Do a post pass to remove the