Skip to content

Commit 905e5c5

Browse files
committed
Cleanup error handling
1 parent 906d507 commit 905e5c5

File tree

5 files changed

+31
-101
lines changed

5 files changed

+31
-101
lines changed

tiledb/api/examples/multi_range_subarray_arrow.rs

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ use tiledb::array::{
99
SchemaData, TileOrder,
1010
};
1111
use tiledb::context::Context;
12-
use tiledb::error::Error as TileDBError;
13-
use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryStatus, QueryType};
12+
use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType};
1413
use tiledb::Result as TileDBResult;
1514
use tiledb::{Datatype, Factory};
1615

@@ -68,20 +67,12 @@ fn main() -> TileDBResult<()> {
6867
.add_range("rows", &[4, 4])
6968
.add_range("cols", &[1, 4])
7069
.end_subarray()
71-
.build()
72-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
70+
.build()?;
7371

74-
let status = query
75-
.submit()
76-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
72+
let status = query.submit()?;
73+
assert!(status.is_complete());
7774

78-
if !matches!(status, QueryStatus::Completed) {
79-
return Err(TileDBError::Other("Make this better.".to_string()));
80-
}
81-
82-
let buffers = query
83-
.buffers()
84-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
75+
let buffers = query.buffers()?;
8576

8677
let rows = buffers.get::<aa::Int32Array>("rows").unwrap();
8778
let cols = buffers.get::<aa::Int32Array>("cols").unwrap();
@@ -142,13 +133,9 @@ fn write_array(ctx: &Context) -> TileDBResult<()> {
142133
.start_fields()
143134
.field_with_buffer("a", data)
144135
.end_fields()
145-
.build()
146-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
136+
.build()?;
147137

148-
let (_, _) = query
149-
.submit()
150-
.and_then(|_| query.finalize())
151-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
138+
let (_, _) = query.submit().and_then(|_| query.finalize())?;
152139

153140
Ok(())
154141
}

tiledb/api/examples/query_condition_dense_arrow.rs

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ use tiledb::array::{
88
Array, ArrayType, AttributeBuilder, DimensionBuilder, DomainBuilder,
99
SchemaBuilder,
1010
};
11-
use tiledb::error::Error as TileDBError;
1211
use tiledb::query::conditions::QueryConditionExpr as QC;
1312
use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType};
1413
use tiledb::{Context, Datatype, Result as TileDBResult};
@@ -86,22 +85,12 @@ fn read_array(ctx: &Context, qc: Option<QC>) -> TileDBResult<()> {
8685
query
8786
};
8887

89-
let mut query = query
90-
.build()
91-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
88+
let mut query = query.build()?;
9289

93-
let status = query
94-
.submit()
95-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
96-
97-
if !status.is_complete() {
98-
return Err(TileDBError::Other("Query incomplete.".to_string()));
99-
}
100-
101-
let buffers = query.buffers().map_err(|e| {
102-
TileDBError::Other(format!("Error getting buffers: {e}"))
103-
})?;
90+
let status = query.submit()?;
91+
assert!(status.is_complete());
10492

93+
let buffers = query.buffers()?;
10594
let index = buffers.get::<aa::Int32Array>("index").unwrap();
10695
let a = buffers.get::<aa::Int32Array>("a").unwrap();
10796
let b = buffers.get::<aa::LargeStringArray>("b").unwrap();
@@ -230,13 +219,9 @@ fn write_array(ctx: &Context) -> TileDBResult<()> {
230219
.start_subarray()
231220
.add_range("index", &[0i32, NUM_ELEMS - 1])
232221
.end_subarray()
233-
.build()
234-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
222+
.build()?;
235223

236-
query
237-
.submit()
238-
.and_then(|_| query.finalize())
239-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
224+
query.submit().and_then(|_| query.finalize())?;
240225

241226
Ok(())
242227
}

tiledb/api/examples/query_condition_sparse_arrow.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ use tiledb::array::{
88
Array, ArrayType, AttributeBuilder, CellOrder, DimensionBuilder,
99
DomainBuilder, SchemaBuilder,
1010
};
11-
use tiledb::error::Error as TileDBError;
1211
use tiledb::query::conditions::QueryConditionExpr as QC;
1312
use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType};
1413
use tiledb::{Context, Datatype, Result as TileDBResult};
@@ -88,13 +87,9 @@ fn read_array(ctx: &Context, qc: Option<QC>) -> TileDBResult<()> {
8887

8988
let mut query = query.build()?;
9089
let status = query.submit()?;
91-
92-
if !status.is_complete() {
93-
return Err(TileDBError::Other("Query did not complete.".to_string()));
94-
}
90+
assert!(status.is_complete());
9591

9692
let buffers = query.buffers()?;
97-
9893
let index = buffers.get::<aa::Int32Array>("index").unwrap();
9994
let a = buffers.get::<aa::Int32Array>("a").unwrap();
10095
let b = buffers.get::<aa::LargeStringArray>("b").unwrap();

tiledb/api/examples/quickstart_dense_arrow.rs

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ use tiledb::array::{
99
DomainBuilder, Mode as ArrayMode, SchemaBuilder,
1010
};
1111
use tiledb::context::Context;
12-
use tiledb::error::Error as TileDBError;
13-
use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryStatus, QueryType};
12+
use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType};
1413
use tiledb::Datatype;
1514
use tiledb::Result as TileDBResult;
1615

@@ -95,18 +94,11 @@ fn write_array() -> TileDBResult<()> {
9594
.start_fields()
9695
.field_with_buffer(QUICKSTART_ATTRIBUTE_NAME, data)
9796
.end_fields()
98-
.build()
99-
// TODO: Make this not suck
100-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
101-
102-
let status = query
103-
.submit()
104-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
105-
if matches!(status, QueryStatus::Completed) {
106-
return Ok(());
107-
} else {
108-
return Err(TileDBError::Other("Something better here.".to_string()));
109-
}
97+
.build()?;
98+
99+
query.submit().and_then(|_| query.finalize())?;
100+
101+
Ok(())
110102
}
111103

112104
/// Query back a slice of our array and print the results to stdout.
@@ -133,20 +125,12 @@ fn read_array() -> TileDBResult<()> {
133125
.add_range("rows", &[1i32, 2])
134126
.add_range("columns", &[2i32, 4])
135127
.end_subarray()
136-
.build()
137-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
138-
139-
let status = query
140-
.submit()
141-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
128+
.build()?;
142129

143-
if !matches!(status, QueryStatus::Completed) {
144-
return Err(TileDBError::Other("Make this better.".to_string()));
145-
}
130+
let status = query.submit()?;
131+
assert!(status.is_complete());
146132

147-
let buffers = query
148-
.buffers()
149-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
133+
let buffers = query.buffers()?;
150134
let rows = buffers.get::<Int32Array>("rows").unwrap();
151135
let cols = buffers.get::<Int32Array>("columns").unwrap();
152136
let attrs = buffers

tiledb/api/examples/quickstart_sparse_string_arrow.rs

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ use tiledb::array::{
1010
SchemaData, TileOrder,
1111
};
1212
use tiledb::context::Context;
13-
use tiledb::error::Error as TileDBError;
14-
use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryStatus, QueryType};
13+
use tiledb::query_arrow::{QueryBuilder, QueryLayout, QueryType};
1514
use tiledb::Result as TileDBResult;
1615
use tiledb::{Datatype, Factory};
1716

@@ -44,21 +43,12 @@ fn main() -> TileDBResult<()> {
4443
.add_range("rows", &["a", "c"])
4544
.add_range("cols", &[2, 4])
4645
.end_subarray()
47-
.build()
48-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
46+
.build()?;
4947

50-
let status = query
51-
.submit()
52-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
53-
54-
if !matches!(status, QueryStatus::Completed) {
55-
return Err(TileDBError::Other("Make this better.".to_string()));
56-
}
57-
58-
let buffers = query
59-
.buffers()
60-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
48+
let status = query.submit()?;
49+
assert!(status.is_complete());
6150

51+
let buffers = query.buffers()?;
6252
let rows = buffers.get::<aa::LargeStringArray>("rows").unwrap();
6353
let cols = buffers.get::<aa::Int32Array>("cols").unwrap();
6454
let attr = buffers.get::<aa::Int32Array>("a").unwrap();
@@ -120,20 +110,9 @@ fn write_array(ctx: &Context) -> TileDBResult<()> {
120110
.field_with_buffer("cols", col_data)
121111
.field_with_buffer("a", a_data)
122112
.end_fields()
123-
.build()
124-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
125-
126-
let status = query
127-
.submit()
128-
.map_err(|e| TileDBError::Other(format!("{}", e)))?;
129-
130-
if !matches!(status, QueryStatus::Completed) {
131-
return Err(TileDBError::Other("Make this better.".to_string()));
132-
}
113+
.build()?;
133114

134-
let (_, _) = query
135-
.finalize()
136-
.map_err(|e| TileDBError::Other(format!("{e}")))?;
115+
query.submit().and_then(|_| query.finalize())?;
137116

138117
Ok(())
139118
}

0 commit comments

Comments
 (0)