From 905e5c5a1452f2fbe67090acab9f9f98f71acb4b Mon Sep 17 00:00:00 2001 From: "Paul J. Davis" Date: Fri, 4 Oct 2024 10:59:51 -0500 Subject: [PATCH] Cleanup error handling --- .../examples/multi_range_subarray_arrow.rs | 27 ++++---------- .../examples/query_condition_dense_arrow.rs | 27 ++++---------- .../examples/query_condition_sparse_arrow.rs | 7 +--- tiledb/api/examples/quickstart_dense_arrow.rs | 36 ++++++------------- .../quickstart_sparse_string_arrow.rs | 35 ++++-------------- 5 files changed, 31 insertions(+), 101 deletions(-) diff --git a/tiledb/api/examples/multi_range_subarray_arrow.rs b/tiledb/api/examples/multi_range_subarray_arrow.rs index 1019a5d1..5d8c6a05 100644 --- a/tiledb/api/examples/multi_range_subarray_arrow.rs +++ b/tiledb/api/examples/multi_range_subarray_arrow.rs @@ -9,8 +9,7 @@ use tiledb::array::{ SchemaData, TileOrder, }; use tiledb::context::Context; -use tiledb::error::Error as TileDBError; -use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryStatus, QueryType}; +use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType}; use tiledb::Result as TileDBResult; use tiledb::{Datatype, Factory}; @@ -68,20 +67,12 @@ fn main() -> TileDBResult<()> { .add_range("rows", &[4, 4]) .add_range("cols", &[1, 4]) .end_subarray() - .build() - .map_err(|e| TileDBError::Other(format!("{e}")))?; + .build()?; - let status = query - .submit() - .map_err(|e| TileDBError::Other(format!("{e}")))?; + let status = query.submit()?; + assert!(status.is_complete()); - if !matches!(status, QueryStatus::Completed) { - return Err(TileDBError::Other("Make this better.".to_string())); - } - - let buffers = query - .buffers() - .map_err(|e| TileDBError::Other(format!("{e}")))?; + let buffers = query.buffers()?; let rows = buffers.get::("rows").unwrap(); let cols = buffers.get::("cols").unwrap(); @@ -142,13 +133,9 @@ fn write_array(ctx: &Context) -> TileDBResult<()> { .start_fields() .field_with_buffer("a", data) .end_fields() - .build() - .map_err(|e| TileDBError::Other(format!("{e}")))?; + .build()?; - let (_, _) = query - .submit() - .and_then(|_| query.finalize()) - .map_err(|e| TileDBError::Other(format!("{e}")))?; + let (_, _) = query.submit().and_then(|_| query.finalize())?; Ok(()) } diff --git a/tiledb/api/examples/query_condition_dense_arrow.rs b/tiledb/api/examples/query_condition_dense_arrow.rs index 5cef4450..aa91960a 100644 --- a/tiledb/api/examples/query_condition_dense_arrow.rs +++ b/tiledb/api/examples/query_condition_dense_arrow.rs @@ -8,7 +8,6 @@ use tiledb::array::{ Array, ArrayType, AttributeBuilder, DimensionBuilder, DomainBuilder, SchemaBuilder, }; -use tiledb::error::Error as TileDBError; use tiledb::query::conditions::QueryConditionExpr as QC; use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType}; use tiledb::{Context, Datatype, Result as TileDBResult}; @@ -86,22 +85,12 @@ fn read_array(ctx: &Context, qc: Option) -> TileDBResult<()> { query }; - let mut query = query - .build() - .map_err(|e| TileDBError::Other(format!("{e}")))?; + let mut query = query.build()?; - let status = query - .submit() - .map_err(|e| TileDBError::Other(format!("{e}")))?; - - if !status.is_complete() { - return Err(TileDBError::Other("Query incomplete.".to_string())); - } - - let buffers = query.buffers().map_err(|e| { - TileDBError::Other(format!("Error getting buffers: {e}")) - })?; + let status = query.submit()?; + assert!(status.is_complete()); + let buffers = query.buffers()?; let index = buffers.get::("index").unwrap(); let a = buffers.get::("a").unwrap(); let b = buffers.get::("b").unwrap(); @@ -230,13 +219,9 @@ fn write_array(ctx: &Context) -> TileDBResult<()> { .start_subarray() .add_range("index", &[0i32, NUM_ELEMS - 1]) .end_subarray() - .build() - .map_err(|e| TileDBError::Other(format!("{e}")))?; + .build()?; - query - .submit() - .and_then(|_| query.finalize()) - .map_err(|e| TileDBError::Other(format!("{e}")))?; + query.submit().and_then(|_| query.finalize())?; Ok(()) } diff --git a/tiledb/api/examples/query_condition_sparse_arrow.rs b/tiledb/api/examples/query_condition_sparse_arrow.rs index 3fae9b6d..6e6e4969 100644 --- a/tiledb/api/examples/query_condition_sparse_arrow.rs +++ b/tiledb/api/examples/query_condition_sparse_arrow.rs @@ -8,7 +8,6 @@ use tiledb::array::{ Array, ArrayType, AttributeBuilder, CellOrder, DimensionBuilder, DomainBuilder, SchemaBuilder, }; -use tiledb::error::Error as TileDBError; use tiledb::query::conditions::QueryConditionExpr as QC; use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType}; use tiledb::{Context, Datatype, Result as TileDBResult}; @@ -88,13 +87,9 @@ fn read_array(ctx: &Context, qc: Option) -> TileDBResult<()> { let mut query = query.build()?; let status = query.submit()?; - - if !status.is_complete() { - return Err(TileDBError::Other("Query did not complete.".to_string())); - } + assert!(status.is_complete()); let buffers = query.buffers()?; - let index = buffers.get::("index").unwrap(); let a = buffers.get::("a").unwrap(); let b = buffers.get::("b").unwrap(); diff --git a/tiledb/api/examples/quickstart_dense_arrow.rs b/tiledb/api/examples/quickstart_dense_arrow.rs index de9f0961..e58f582c 100644 --- a/tiledb/api/examples/quickstart_dense_arrow.rs +++ b/tiledb/api/examples/quickstart_dense_arrow.rs @@ -9,8 +9,7 @@ use tiledb::array::{ DomainBuilder, Mode as ArrayMode, SchemaBuilder, }; use tiledb::context::Context; -use tiledb::error::Error as TileDBError; -use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryStatus, QueryType}; +use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType}; use tiledb::Datatype; use tiledb::Result as TileDBResult; @@ -95,18 +94,11 @@ fn write_array() -> TileDBResult<()> { .start_fields() .field_with_buffer(QUICKSTART_ATTRIBUTE_NAME, data) .end_fields() - .build() - // TODO: Make this not suck - .map_err(|e| TileDBError::Other(format!("{}", e)))?; - - let status = query - .submit() - .map_err(|e| TileDBError::Other(format!("{}", e)))?; - if matches!(status, QueryStatus::Completed) { - return Ok(()); - } else { - return Err(TileDBError::Other("Something better here.".to_string())); - } + .build()?; + + query.submit().and_then(|_| query.finalize())?; + + Ok(()) } /// Query back a slice of our array and print the results to stdout. @@ -133,20 +125,12 @@ fn read_array() -> TileDBResult<()> { .add_range("rows", &[1i32, 2]) .add_range("columns", &[2i32, 4]) .end_subarray() - .build() - .map_err(|e| TileDBError::Other(format!("{}", e)))?; - - let status = query - .submit() - .map_err(|e| TileDBError::Other(format!("{}", e)))?; + .build()?; - if !matches!(status, QueryStatus::Completed) { - return Err(TileDBError::Other("Make this better.".to_string())); - } + let status = query.submit()?; + assert!(status.is_complete()); - let buffers = query - .buffers() - .map_err(|e| TileDBError::Other(format!("{}", e)))?; + let buffers = query.buffers()?; let rows = buffers.get::("rows").unwrap(); let cols = buffers.get::("columns").unwrap(); let attrs = buffers diff --git a/tiledb/api/examples/quickstart_sparse_string_arrow.rs b/tiledb/api/examples/quickstart_sparse_string_arrow.rs index 7ca552bf..3ff1d389 100644 --- a/tiledb/api/examples/quickstart_sparse_string_arrow.rs +++ b/tiledb/api/examples/quickstart_sparse_string_arrow.rs @@ -10,8 +10,7 @@ use tiledb::array::{ SchemaData, TileOrder, }; use tiledb::context::Context; -use tiledb::error::Error as TileDBError; -use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryStatus, QueryType}; +use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType}; use tiledb::Result as TileDBResult; use tiledb::{Datatype, Factory}; @@ -44,21 +43,12 @@ fn main() -> TileDBResult<()> { .add_range("rows", &["a", "c"]) .add_range("cols", &[2, 4]) .end_subarray() - .build() - .map_err(|e| TileDBError::Other(format!("{}", e)))?; + .build()?; - let status = query - .submit() - .map_err(|e| TileDBError::Other(format!("{}", e)))?; - - if !matches!(status, QueryStatus::Completed) { - return Err(TileDBError::Other("Make this better.".to_string())); - } - - let buffers = query - .buffers() - .map_err(|e| TileDBError::Other(format!("{}", e)))?; + let status = query.submit()?; + assert!(status.is_complete()); + let buffers = query.buffers()?; let rows = buffers.get::("rows").unwrap(); let cols = buffers.get::("cols").unwrap(); let attr = buffers.get::("a").unwrap(); @@ -120,20 +110,9 @@ fn write_array(ctx: &Context) -> TileDBResult<()> { .field_with_buffer("cols", col_data) .field_with_buffer("a", a_data) .end_fields() - .build() - .map_err(|e| TileDBError::Other(format!("{}", e)))?; - - let status = query - .submit() - .map_err(|e| TileDBError::Other(format!("{}", e)))?; - - if !matches!(status, QueryStatus::Completed) { - return Err(TileDBError::Other("Make this better.".to_string())); - } + .build()?; - let (_, _) = query - .finalize() - .map_err(|e| TileDBError::Other(format!("{e}")))?; + query.submit().and_then(|_| query.finalize())?; Ok(()) }