Skip to content

Commit 8464f73

Browse files
committed
consolidating error codes
1 parent f5dcf86 commit 8464f73

File tree

7 files changed

+44
-71
lines changed

7 files changed

+44
-71
lines changed

include/questdb/ingress/line_sender.h

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,8 @@ typedef enum line_sender_error_code
7878
/** Bad configuration. */
7979
line_sender_error_config_error,
8080

81-
/** Currently, only arrays with a maximum 32 dimensions are supported. */
82-
line_sender_error_array_large_dim,
83-
84-
/** ArrayView internal error, such as failure to get the size of a valid
85-
* dimension. */
86-
line_sender_error_array_view_internal_error,
87-
88-
/** Write arrayView to sender buffer error. */
89-
line_sender_error_array_view_write_to_buffer_error,
81+
/** There was an error serializing an array. */
82+
line_sender_error_array_error,
9083

9184
/** Line sender protocol version error. */
9285
line_sender_error_protocol_version_error,

questdb-rs-ffi/src/lib.rs

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,8 @@ pub enum line_sender_error_code {
140140
/// Bad configuration.
141141
line_sender_error_config_error,
142142

143-
/// Currently, only arrays with a maximum 32 dimensions are supported.
144-
line_sender_error_array_large_dim,
145-
146-
/// ArrayView internal error, such as failure to get the size of a valid dimension.
147-
line_sender_error_array_view_internal_error,
148-
149-
/// Write arrayView to sender buffer error.
150-
line_sender_error_array_view_write_to_buffer_error,
143+
/// There was an error serializing an array.
144+
line_sender_error_array_error,
151145

152146
/// Line sender protocol version error.
153147
line_sender_error_protocol_version_error,
@@ -175,15 +169,7 @@ impl From<ErrorCode> for line_sender_error_code {
175169
line_sender_error_code::line_sender_error_server_flush_error
176170
}
177171
ErrorCode::ConfigError => line_sender_error_code::line_sender_error_config_error,
178-
ErrorCode::ArrayHasTooManyDims => {
179-
line_sender_error_code::line_sender_error_array_large_dim
180-
}
181-
ErrorCode::ArrayViewError => {
182-
line_sender_error_code::line_sender_error_array_view_internal_error
183-
}
184-
ErrorCode::ArrayWriteToBufferError => {
185-
line_sender_error_code::line_sender_error_array_view_write_to_buffer_error
186-
}
172+
ErrorCode::ArrayError => line_sender_error_code::line_sender_error_array_error,
187173
ErrorCode::ProtocolVersionError => {
188174
line_sender_error_code::line_sender_error_protocol_version_error
189175
}

questdb-rs-ffi/src/ndarr.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ where
7171
fn dim(&self, index: usize) -> Result<usize, Error> {
7272
if index >= self.dims {
7373
return Err(fmt_error!(
74-
ArrayViewError,
74+
ArrayError,
7575
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
7676
index,
7777
self.dims
@@ -151,13 +151,13 @@ where
151151
) -> Result<Self, Error> {
152152
if dims == 0 {
153153
return Err(fmt_error!(
154-
ArrayViewError,
154+
ArrayError,
155155
"Zero-dimensional arrays are not supported",
156156
));
157157
}
158158
if data_len > MAX_ARRAY_BUFFER_SIZE {
159159
return Err(fmt_error!(
160-
ArrayViewError,
160+
ArrayError,
161161
"Array buffer size too big: {}, maximum: {}",
162162
data_len,
163163
MAX_ARRAY_BUFFER_SIZE
@@ -168,12 +168,12 @@ where
168168
.iter()
169169
.try_fold(std::mem::size_of::<T>(), |acc, &dim| {
170170
acc.checked_mul(dim)
171-
.ok_or_else(|| fmt_error!(ArrayViewError, "Array buffer size too big"))
171+
.ok_or_else(|| fmt_error!(ArrayError, "Array buffer size too big"))
172172
})?;
173173

174174
if size != data_len {
175175
return Err(fmt_error!(
176-
ArrayViewError,
176+
ArrayError,
177177
"Array buffer length mismatch (actual: {}, expected: {})",
178178
data_len,
179179
size
@@ -299,7 +299,7 @@ mod tests {
299299

300300
if bytes.len() != expect_size {
301301
return Err(fmt_error!(
302-
ArrayWriteToBufferError,
302+
ArrayError,
303303
"Array write buffer length mismatch (actual: {}, expected: {})",
304304
expect_size,
305305
bytes.len()
@@ -308,7 +308,7 @@ mod tests {
308308

309309
if buf.len() < bytes.len() {
310310
return Err(fmt_error!(
311-
ArrayWriteToBufferError,
311+
ArrayError,
312312
"Buffer capacity {} < required {}",
313313
buf.len(),
314314
bytes.len()
@@ -334,7 +334,7 @@ mod tests {
334334
}
335335
if total_len != expect_size {
336336
return Err(fmt_error!(
337-
ArrayWriteToBufferError,
337+
ArrayError,
338338
"Array write buffer length mismatch (actual: {}, expected: {})",
339339
total_len,
340340
expect_size
@@ -445,7 +445,7 @@ mod tests {
445445
)
446446
};
447447
let err = result.unwrap_err();
448-
assert_eq!(err.code(), ErrorCode::ArrayViewError);
448+
assert_eq!(err.code(), ErrorCode::ArrayError);
449449
assert!(err.msg().contains("Array buffer size too big"));
450450
Ok(())
451451
}
@@ -464,7 +464,7 @@ mod tests {
464464
)
465465
};
466466
let err = result.unwrap_err();
467-
assert_eq!(err.code(), ErrorCode::ArrayViewError);
467+
assert_eq!(err.code(), ErrorCode::ArrayError);
468468
assert!(err
469469
.msg()
470470
.contains("Array buffer length mismatch (actual: 8, expected: 16)"));
@@ -481,7 +481,7 @@ mod tests {
481481
};
482482

483483
let err = result.unwrap_err();
484-
assert_eq!(err.code(), ErrorCode::ArrayViewError);
484+
assert_eq!(err.code(), ErrorCode::ArrayError);
485485
assert!(err
486486
.msg()
487487
.contains("Array buffer length mismatch (actual: 24, expected: 16)"));
@@ -502,7 +502,7 @@ mod tests {
502502
)
503503
};
504504
let err = result.unwrap_err();
505-
assert_eq!(err.code(), ErrorCode::ArrayViewError);
505+
assert_eq!(err.code(), ErrorCode::ArrayError);
506506
assert!(err
507507
.msg()
508508
.contains("Array buffer length mismatch (actual: 8, expected: 16)"));
@@ -519,7 +519,7 @@ mod tests {
519519
};
520520

521521
let err = result.unwrap_err();
522-
assert_eq!(err.code(), ErrorCode::ArrayViewError);
522+
assert_eq!(err.code(), ErrorCode::ArrayError);
523523
assert!(err
524524
.msg()
525525
.contains("Array buffer length mismatch (actual: 24, expected: 16)"));

questdb-rs/src/error.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,8 @@ pub enum ErrorCode {
7373
/// Bad configuration.
7474
ConfigError,
7575

76-
/// Array has too many dims. Currently, only arrays with a maximum [`crate::ingress::MAX_ARRAY_DIMS`] dimensions are supported.
77-
ArrayHasTooManyDims,
78-
79-
/// Array view internal error.
80-
ArrayViewError,
81-
82-
/// Array write to buffer error.
83-
ArrayWriteToBufferError,
76+
/// There was an error serializing an array.
77+
ArrayError,
8478

8579
/// Validate protocol version error.
8680
ProtocolVersionError,

questdb-rs/src/ingress/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1144,15 +1144,15 @@ impl Buffer {
11441144
let ndim = view.ndim();
11451145
if ndim == 0 {
11461146
return Err(error::fmt!(
1147-
ArrayViewError,
1147+
ArrayError,
11481148
"Zero-dimensional arrays are not supported",
11491149
));
11501150
}
11511151

11521152
// check dimension less equal than max dims
11531153
if MAX_ARRAY_DIMS < ndim {
11541154
return Err(error::fmt!(
1155-
ArrayHasTooManyDims,
1155+
ArrayError,
11561156
"Array dimension mismatch: expected at most {} dimensions, but got {}",
11571157
MAX_ARRAY_DIMS,
11581158
ndim

questdb-rs/src/ingress/ndarr.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ where
6464

6565
if bytes.len() != expect_size {
6666
return Err(error::fmt!(
67-
ArrayWriteToBufferError,
67+
ArrayError,
6868
"Array write buffer length mismatch (actual: {}, expected: {})",
6969
expect_size,
7070
bytes.len()
@@ -73,7 +73,7 @@ where
7373

7474
if buf.len() < bytes.len() {
7575
return Err(error::fmt!(
76-
ArrayWriteToBufferError,
76+
ArrayError,
7777
"Buffer capacity {} < required {}",
7878
buf.len(),
7979
bytes.len()
@@ -99,7 +99,7 @@ where
9999
}
100100
if total_len != expect_size {
101101
return Err(error::fmt!(
102-
ArrayWriteToBufferError,
102+
ArrayError,
103103
"Array write buffer length mismatch (actual: {}, expected: {})",
104104
total_len,
105105
expect_size
@@ -119,7 +119,7 @@ where
119119
let dim = array.dim(dim_index)?;
120120
if dim > MAX_ARRAY_DIM_LEN {
121121
return Err(error::fmt!(
122-
ArrayViewError,
122+
ArrayError,
123123
"dimension length out of range: dim {}, dim length {}, max length {}",
124124
dim_index,
125125
dim,
@@ -132,7 +132,7 @@ where
132132

133133
if size > MAX_ARRAY_BUFFER_SIZE {
134134
return Err(error::fmt!(
135-
ArrayViewError,
135+
ArrayError,
136136
"Array buffer size too big: {}, maximum: {}",
137137
size,
138138
MAX_ARRAY_BUFFER_SIZE
@@ -177,7 +177,7 @@ impl<T: ArrayElement> NdArrayView<T> for Vec<T> {
177177
Ok(self.len())
178178
} else {
179179
Err(error::fmt!(
180-
ArrayViewError,
180+
ArrayError,
181181
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
182182
idx,
183183
1
@@ -210,7 +210,7 @@ impl<T: ArrayElement, const N: usize> NdArrayView<T> for [T; N] {
210210
Ok(N)
211211
} else {
212212
Err(error::fmt!(
213-
ArrayViewError,
213+
ArrayError,
214214
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
215215
idx,
216216
1
@@ -244,7 +244,7 @@ impl<T: ArrayElement> NdArrayView<T> for &[T] {
244244
Ok(self.len())
245245
} else {
246246
Err(error::fmt!(
247-
ArrayViewError,
247+
ArrayError,
248248
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
249249
idx,
250250
1
@@ -278,12 +278,12 @@ impl<T: ArrayElement> NdArrayView<T> for Vec<Vec<T>> {
278278
1 => {
279279
let dim1 = self.first().map_or(0, |v| v.len());
280280
if self.as_slice().iter().any(|v2| v2.len() != dim1) {
281-
return Err(error::fmt!(ArrayViewError, "Irregular array shape"));
281+
return Err(error::fmt!(ArrayError, "Irregular array shape"));
282282
}
283283
Ok(dim1)
284284
}
285285
_ => Err(error::fmt!(
286-
ArrayViewError,
286+
ArrayError,
287287
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
288288
idx,
289289
2
@@ -316,7 +316,7 @@ impl<T: ArrayElement, const M: usize, const N: usize> NdArrayView<T> for [[T; M]
316316
0 => Ok(N),
317317
1 => Ok(M),
318318
_ => Err(error::fmt!(
319-
ArrayViewError,
319+
ArrayError,
320320
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
321321
idx,
322322
2
@@ -350,7 +350,7 @@ impl<T: ArrayElement, const M: usize> NdArrayView<T> for &[[T; M]] {
350350
0 => Ok(self.len()),
351351
1 => Ok(M),
352352
_ => Err(error::fmt!(
353-
ArrayViewError,
353+
ArrayError,
354354
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
355355
idx,
356356
2
@@ -384,7 +384,7 @@ impl<T: ArrayElement> NdArrayView<T> for Vec<Vec<Vec<T>>> {
384384
1 => {
385385
let dim1 = self.first().map_or(0, |v| v.len());
386386
if self.as_slice().iter().any(|v2| v2.len() != dim1) {
387-
return Err(error::fmt!(ArrayViewError, "Irregular array shape"));
387+
return Err(error::fmt!(ArrayError, "Irregular array shape"));
388388
}
389389
Ok(dim1)
390390
}
@@ -400,12 +400,12 @@ impl<T: ArrayElement> NdArrayView<T> for Vec<Vec<Vec<T>>> {
400400
.flat_map(|v2| v2.as_slice().iter())
401401
.any(|v3| v3.len() != dim2)
402402
{
403-
return Err(error::fmt!(ArrayViewError, "Irregular array shape"));
403+
return Err(error::fmt!(ArrayError, "Irregular array shape"));
404404
}
405405
Ok(dim2)
406406
}
407407
_ => Err(error::fmt!(
408-
ArrayViewError,
408+
ArrayError,
409409
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
410410
idx,
411411
3
@@ -441,7 +441,7 @@ impl<T: ArrayElement, const M: usize, const N: usize, const L: usize> NdArrayVie
441441
1 => Ok(N),
442442
2 => Ok(M),
443443
_ => Err(error::fmt!(
444-
ArrayViewError,
444+
ArrayError,
445445
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
446446
idx,
447447
3
@@ -475,7 +475,7 @@ impl<T: ArrayElement, const M: usize, const N: usize> NdArrayView<T> for &[[[T;
475475
1 => Ok(N),
476476
2 => Ok(M),
477477
_ => Err(error::fmt!(
478-
ArrayViewError,
478+
ArrayError,
479479
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
480480
idx,
481481
3
@@ -521,7 +521,7 @@ where
521521
Ok(self.len_of(Axis(index)))
522522
} else {
523523
Err(error::fmt!(
524-
ArrayViewError,
524+
ArrayError,
525525
"Dimension index out of bounds. Requested axis {}, but array only has {} dimension(s)",
526526
index,
527527
3

questdb-rs/src/tests/ndarr.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ fn test_build_in_2d_vec_irregular_shape() -> TestResult {
390390
buffer.table("my_test")?;
391391
let result = buffer.column_arr("arr", &irregular_vec);
392392
let err = result.unwrap_err();
393-
assert_eq!(err.code(), ErrorCode::ArrayViewError);
393+
assert_eq!(err.code(), ErrorCode::ArrayError);
394394
assert!(err.msg().contains("Irregular array shape"));
395395
Ok(())
396396
}
@@ -688,12 +688,12 @@ fn test_build_in_3d_vec_irregular_shape() -> TestResult {
688688
buffer.table("my_test")?;
689689
let result = buffer.column_arr("arr", &irregular1);
690690
let err = result.unwrap_err();
691-
assert_eq!(err.code(), ErrorCode::ArrayViewError);
691+
assert_eq!(err.code(), ErrorCode::ArrayError);
692692
assert!(err.msg().contains("Irregular array shape"));
693693

694694
let result = buffer.column_arr("arr", &irregular2);
695695
let err = result.unwrap_err();
696-
assert_eq!(err.code(), ErrorCode::ArrayViewError);
696+
assert_eq!(err.code(), ErrorCode::ArrayError);
697697
assert!(err.msg().contains("Irregular array shape"));
698698
Ok(())
699699
}
@@ -900,6 +900,6 @@ fn test_buffer_write_ndarray_max_dimensions() -> TestResult {
900900
let result = buffer.column_arr("invalid", &array_invalid.view());
901901
assert!(result.is_err());
902902
let err = result.unwrap_err();
903-
assert_eq!(err.code(), ErrorCode::ArrayHasTooManyDims);
903+
assert_eq!(err.code(), ErrorCode::ArrayError);
904904
Ok(())
905905
}

0 commit comments

Comments
 (0)