This is an automated email from the ASF dual-hosted git repository. kszucs pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push: new d6fa8a8 ARROW-4895: [Rust] [DataFusion] Move error.rs to root of crate d6fa8a8 is described below commit d6fa8a8fc8eddee84c752f411edaf875350d4a3b Author: Andy Grove <andygrov...@gmail.com> AuthorDate: Mon Mar 18 12:27:13 2019 +0100 ARROW-4895: [Rust] [DataFusion] Move error.rs to root of crate The `error.rs` file was under the `execution` module even though this is the error type used across the crate, so I moved it to the top level. Author: Andy Grove <andygrov...@gmail.com> Closes #3950 from andygrove/ARROW-4895 and squashes the following commits: f1d5bc02 <Andy Grove> formatting cf30d126 <Andy Grove> Move error.rs to root of crate --- rust/datafusion/src/datasource/csv.rs | 2 +- rust/datafusion/src/datasource/datasource.rs | 2 +- rust/datafusion/src/datasource/memory.rs | 2 +- rust/datafusion/src/datasource/parquet.rs | 2 +- rust/datafusion/src/{execution => }/error.rs | 17 +++++++++++++---- rust/datafusion/src/execution/aggregate.rs | 2 +- rust/datafusion/src/execution/context.rs | 2 +- rust/datafusion/src/execution/expression.rs | 6 +++--- rust/datafusion/src/execution/filter.rs | 6 +++--- rust/datafusion/src/execution/limit.rs | 4 ++-- rust/datafusion/src/execution/mod.rs | 1 - rust/datafusion/src/execution/projection.rs | 2 +- rust/datafusion/src/execution/relation.rs | 2 +- rust/datafusion/src/lib.rs | 1 + rust/datafusion/src/sql/planner.rs | 2 +- 15 files changed, 31 insertions(+), 22 deletions(-) diff --git a/rust/datafusion/src/datasource/csv.rs b/rust/datafusion/src/datasource/csv.rs index a010526..79b3cd2 100644 --- a/rust/datafusion/src/datasource/csv.rs +++ b/rust/datafusion/src/datasource/csv.rs @@ -26,7 +26,7 @@ use arrow::datatypes::{Field, Schema}; use arrow::record_batch::RecordBatch; use crate::datasource::{RecordBatchIterator, ScanResult, Table}; -use crate::execution::error::Result; +use crate::error::Result; /// Represents a CSV file with a provided schema pub struct CsvFile { diff --git a/rust/datafusion/src/datasource/datasource.rs b/rust/datafusion/src/datasource/datasource.rs index 7e48f19..7db351e 100644 --- a/rust/datafusion/src/datasource/datasource.rs +++ b/rust/datafusion/src/datasource/datasource.rs @@ -22,7 +22,7 @@ use std::sync::{Arc, Mutex}; use arrow::datatypes::Schema; use arrow::record_batch::RecordBatch; -use crate::execution::error::Result; +use crate::error::Result; pub type ScanResult = Arc<Mutex<RecordBatchIterator>>; diff --git a/rust/datafusion/src/datasource/memory.rs b/rust/datafusion/src/datasource/memory.rs index e5955e5..e12bec5 100644 --- a/rust/datafusion/src/datasource/memory.rs +++ b/rust/datafusion/src/datasource/memory.rs @@ -25,7 +25,7 @@ use arrow::datatypes::{Field, Schema}; use arrow::record_batch::RecordBatch; use crate::datasource::{RecordBatchIterator, ScanResult, Table}; -use crate::execution::error::{ExecutionError, Result}; +use crate::error::{ExecutionError, Result}; /// In-memory table pub struct MemTable { diff --git a/rust/datafusion/src/datasource/parquet.rs b/rust/datafusion/src/datasource/parquet.rs index 3fb4a3c..d017810 100644 --- a/rust/datafusion/src/datasource/parquet.rs +++ b/rust/datafusion/src/datasource/parquet.rs @@ -32,7 +32,7 @@ use parquet::file::reader::*; use parquet::reader::schema::parquet_to_arrow_schema; use crate::datasource::{RecordBatchIterator, ScanResult, Table}; -use crate::execution::error::{ExecutionError, Result}; +use crate::error::{ExecutionError, Result}; pub struct ParquetTable { filename: String, diff --git a/rust/datafusion/src/execution/error.rs b/rust/datafusion/src/error.rs similarity index 86% rename from rust/datafusion/src/execution/error.rs rename to rust/datafusion/src/error.rs index b734e6b..26d48b1 100644 --- a/rust/datafusion/src/execution/error.rs +++ b/rust/datafusion/src/error.rs @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -//! Error types +//! DataFusion error types use std::io::Error; use std::result; @@ -27,17 +27,26 @@ use sqlparser::sqlparser::ParserError; pub type Result<T> = result::Result<T, ExecutionError>; -/// DataFusion execution error +/// DataFusion error #[derive(Debug)] pub enum ExecutionError { + /// Wraps an error from the Arrow crate + ArrowError(ArrowError), + /// Wraps an error from the Parquet crate + ParquetError(ParquetError), + /// I/O error IoError(Error), + /// SQL parser error ParserError(ParserError), + /// General error General(String), + /// Invalid column error InvalidColumn(String), + /// Missing functionality NotImplemented(String), + /// Internal error InternalError(String), - ArrowError(ArrowError), - ParquetError(ParquetError), + /// Query engine execution error ExecutionError(String), } diff --git a/rust/datafusion/src/execution/aggregate.rs b/rust/datafusion/src/execution/aggregate.rs index d982e39..aec187f 100644 --- a/rust/datafusion/src/execution/aggregate.rs +++ b/rust/datafusion/src/execution/aggregate.rs @@ -29,7 +29,7 @@ use arrow::compute; use arrow::datatypes::{DataType, Schema}; use arrow::record_batch::RecordBatch; -use crate::execution::error::{ExecutionError, Result}; +use crate::error::{ExecutionError, Result}; use crate::execution::expression::{AggregateType, RuntimeExpr}; use crate::execution::relation::Relation; use crate::logicalplan::ScalarValue; diff --git a/rust/datafusion/src/execution/context.rs b/rust/datafusion/src/execution/context.rs index 5f40786..4413ff9 100644 --- a/rust/datafusion/src/execution/context.rs +++ b/rust/datafusion/src/execution/context.rs @@ -27,8 +27,8 @@ use arrow::datatypes::*; use crate::datasource::csv::CsvFile; use crate::datasource::datasource::Table; +use crate::error::{ExecutionError, Result}; use crate::execution::aggregate::AggregateRelation; -use crate::execution::error::{ExecutionError, Result}; use crate::execution::expression::*; use crate::execution::filter::FilterRelation; use crate::execution::limit::LimitRelation; diff --git a/rust/datafusion/src/execution/expression.rs b/rust/datafusion/src/execution/expression.rs index 5b01af5..6f10d88 100644 --- a/rust/datafusion/src/execution/expression.rs +++ b/rust/datafusion/src/execution/expression.rs @@ -25,9 +25,9 @@ use arrow::compute; use arrow::datatypes::{DataType, Schema}; use arrow::record_batch::RecordBatch; -use super::super::logicalplan::{Expr, Operator, ScalarValue}; -use super::context::ExecutionContext; -use super::error::{ExecutionError, Result}; +use crate::error::{ExecutionError, Result}; +use crate::execution::context::ExecutionContext; +use crate::logicalplan::{Expr, Operator, ScalarValue}; /// Compiled Expression (basically just a closure to evaluate the expression at runtime) pub type CompiledExpr = Rc<Fn(&RecordBatch) -> Result<ArrayRef>>; diff --git a/rust/datafusion/src/execution/filter.rs b/rust/datafusion/src/execution/filter.rs index 5100f26..395a894 100644 --- a/rust/datafusion/src/execution/filter.rs +++ b/rust/datafusion/src/execution/filter.rs @@ -26,9 +26,9 @@ use arrow::compute::array_ops::filter; use arrow::datatypes::Schema; use arrow::record_batch::RecordBatch; -use super::error::{ExecutionError, Result}; -use super::expression::RuntimeExpr; -use super::relation::Relation; +use crate::error::{ExecutionError, Result}; +use crate::execution::expression::RuntimeExpr; +use crate::execution::relation::Relation; /// Implementation of a filter relation pub(super) struct FilterRelation { diff --git a/rust/datafusion/src/execution/limit.rs b/rust/datafusion/src/execution/limit.rs index 80d70fe..b861139 100644 --- a/rust/datafusion/src/execution/limit.rs +++ b/rust/datafusion/src/execution/limit.rs @@ -26,8 +26,8 @@ use arrow::compute::array_ops::limit; use arrow::datatypes::Schema; use arrow::record_batch::RecordBatch; -use super::error::{ExecutionError, Result}; -use super::relation::Relation; +use crate::error::{ExecutionError, Result}; +use crate::execution::relation::Relation; /// Implementation of a LIMIT relation pub(super) struct LimitRelation { diff --git a/rust/datafusion/src/execution/mod.rs b/rust/datafusion/src/execution/mod.rs index 0ece1e9..475c5b7 100644 --- a/rust/datafusion/src/execution/mod.rs +++ b/rust/datafusion/src/execution/mod.rs @@ -19,7 +19,6 @@ pub mod aggregate; pub mod context; -pub mod error; pub mod expression; pub mod filter; pub mod limit; diff --git a/rust/datafusion/src/execution/projection.rs b/rust/datafusion/src/execution/projection.rs index 5c95c65..2309897 100644 --- a/rust/datafusion/src/execution/projection.rs +++ b/rust/datafusion/src/execution/projection.rs @@ -28,7 +28,7 @@ use arrow::array::ArrayRef; use arrow::datatypes::{Field, Schema}; use arrow::record_batch::RecordBatch; -use crate::execution::error::Result; +use crate::error::Result; use crate::execution::expression::RuntimeExpr; use crate::execution::relation::Relation; diff --git a/rust/datafusion/src/execution/relation.rs b/rust/datafusion/src/execution/relation.rs index ec6276c..98a0b4a 100644 --- a/rust/datafusion/src/execution/relation.rs +++ b/rust/datafusion/src/execution/relation.rs @@ -25,7 +25,7 @@ use arrow::datatypes::Schema; use arrow::record_batch::RecordBatch; use crate::datasource::RecordBatchIterator; -use crate::execution::error::Result; +use crate::error::Result; /// trait for all relations (a relation is essentially just an iterator over batches /// of data, with a known schema) diff --git a/rust/datafusion/src/lib.rs b/rust/datafusion/src/lib.rs index 63f4ab7..0cce228 100644 --- a/rust/datafusion/src/lib.rs +++ b/rust/datafusion/src/lib.rs @@ -25,6 +25,7 @@ extern crate serde_json; extern crate sqlparser; pub mod datasource; +pub mod error; pub mod execution; pub mod logicalplan; pub mod optimizer; diff --git a/rust/datafusion/src/sql/planner.rs b/rust/datafusion/src/sql/planner.rs index 934ba2b..45e2f8e 100644 --- a/rust/datafusion/src/sql/planner.rs +++ b/rust/datafusion/src/sql/planner.rs @@ -20,7 +20,7 @@ use std::string::String; use std::sync::Arc; -use crate::execution::error::*; +use crate::error::*; use crate::logicalplan::*; use arrow::datatypes::*;