Skip to content

Commit ccd4632

Browse files
committed
Fix some tests
1 parent 547110d commit ccd4632

File tree

3 files changed

+22
-27
lines changed

3 files changed

+22
-27
lines changed

crates/iceberg/src/expr/visitors/manifest_evaluator.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ impl BoundPredicateVisitor for ManifestFilterVisitor<'_> {
258258
lower_bound_bytes,
259259
*reference.field().field_type.clone(),
260260
);
261-
if datum > &lower_bound {
261+
if &lower_bound > datum {
262262
return ROWS_CANNOT_MATCH;
263263
}
264264
}
@@ -268,7 +268,7 @@ impl BoundPredicateVisitor for ManifestFilterVisitor<'_> {
268268
upper_bound_bytes,
269269
*reference.field().field_type.clone(),
270270
);
271-
if datum < &upper_bound {
271+
if &upper_bound < datum {
272272
return ROWS_CANNOT_MATCH;
273273
}
274274
}
@@ -381,21 +381,21 @@ impl BoundPredicateVisitor for ManifestFilterVisitor<'_> {
381381
}
382382

383383
if let Some(lower_bound) = &field.lower_bound {
384-
let d = ManifestFilterVisitor::bytes_to_datum(
384+
let lower_bound = ManifestFilterVisitor::bytes_to_datum(
385385
lower_bound,
386386
*reference.field().clone().field_type,
387387
);
388-
if literals.iter().all(|datum| &d < datum) {
388+
if literals.iter().all(|datum| &lower_bound > datum) {
389389
return ROWS_CANNOT_MATCH;
390390
}
391391
}
392392

393393
if let Some(upper_bound) = &field.upper_bound {
394-
let d = ManifestFilterVisitor::bytes_to_datum(
394+
let upper_bound = ManifestFilterVisitor::bytes_to_datum(
395395
upper_bound,
396396
*reference.field().clone().field_type,
397397
);
398-
if literals.iter().all(|datum| &d < datum) {
398+
if literals.iter().all(|datum| &upper_bound < datum) {
399399
return ROWS_CANNOT_MATCH;
400400
}
401401
}

crates/iceberg/src/inspect/manifests.rs

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,7 @@ use futures::{StreamExt, stream};
2929
use crate::Result;
3030
use crate::arrow::schema_to_arrow_schema;
3131
use crate::scan::ArrowRecordBatchStream;
32-
use crate::spec::{
33-
Datum, FieldSummary, ListType, NestedField, PartitionSpecRef, PrimitiveType, Schema,
34-
StructType, Type,
35-
};
32+
use crate::spec::{Datum, FieldSummary, ListType, NestedField, PrimitiveType, StructType, Type};
3633
use crate::table::Table;
3734

3835
/// Manifests table.
@@ -184,14 +181,19 @@ impl<'a> ManifestsTable<'a> {
184181
.append_value(manifest.existing_files_count.unwrap_or(0) as i32);
185182
deleted_delete_files_count
186183
.append_value(manifest.deleted_files_count.unwrap_or(0) as i32);
184+
185+
let spec = self
186+
.table
187+
.metadata()
188+
.partition_spec_by_id(manifest.partition_spec_id)
189+
.unwrap();
190+
let spec_struct = spec
191+
.partition_type(self.table.metadata().current_schema())
192+
.unwrap();
187193
self.append_partition_summaries(
188194
&mut partition_summaries,
189195
&manifest.partitions.clone().unwrap_or_else(Vec::new),
190-
&self.schema(),
191-
&self
192-
.table
193-
.metadata()
194-
.partition_spec_by_id(manifest.partition_spec_id),
196+
spec_struct,
195197
);
196198
}
197199
}
@@ -241,11 +243,10 @@ impl<'a> ManifestsTable<'a> {
241243
&self,
242244
builder: &mut GenericListBuilder<i32, StructBuilder>,
243245
partitions: &[FieldSummary],
244-
schema: &Schema,
245-
spec: &Option<&PartitionSpecRef>,
246+
partition_struct: StructType,
246247
) {
247248
let partition_summaries_builder = builder.values();
248-
for (summary, field) in partitions.iter().zip(spec.unwrap().fields()) {
249+
for (summary, field) in partitions.iter().zip(partition_struct.fields()) {
249250
partition_summaries_builder
250251
.field_builder::<BooleanBuilder>(0)
251252
.unwrap()
@@ -255,25 +256,19 @@ impl<'a> ManifestsTable<'a> {
255256
.unwrap()
256257
.append_option(summary.contains_nan);
257258

258-
let field_type = schema
259-
.field_by_id(field.source_id)
260-
.unwrap()
261-
.field_type
262-
.as_primitive_type()
263-
.unwrap();
264259
partition_summaries_builder
265260
.field_builder::<StringBuilder>(2)
266261
.unwrap()
267262
.append_option(summary.lower_bound.as_ref().map(|v| {
268-
Datum::try_from_bytes(v, field_type.clone())
263+
Datum::try_from_bytes(v, field.field_type.as_primitive_type().unwrap().clone())
269264
.unwrap()
270265
.to_string()
271266
}));
272267
partition_summaries_builder
273268
.field_builder::<StringBuilder>(3)
274269
.unwrap()
275270
.append_option(summary.upper_bound.as_ref().map(|v| {
276-
Datum::try_from_bytes(v, field_type.clone())
271+
Datum::try_from_bytes(v, field.field_type.as_primitive_type().unwrap().clone())
277272
.unwrap()
278273
.to_string()
279274
}));

crates/iceberg/src/spec/manifest_list.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1144,7 +1144,7 @@ mod test {
11441144
added_rows_count: Some(3),
11451145
existing_rows_count: Some(0),
11461146
deleted_rows_count: Some(0),
1147-
partitions: Some(vec![]),
1147+
partitions: None,
11481148
key_metadata: vec![],
11491149
}]
11501150
}.try_into().unwrap();

0 commit comments

Comments
 (0)