You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@sedona.apache.org by "Kontinuation (via GitHub)" <gi...@apache.org> on 2026/06/04 16:17:44 UTC
Re: [PR] fix(c/sedona-gdal): replace gpkg temporary datasets with flatgeobuf in sedona-gdal tests [sedona-db]
Kontinuation commented on code in PR #911:
URL: https://github.com/apache/sedona-db/pull/911#discussion_r3357414197
##########
c/sedona-gdal/src/raster/polygonize.rs:
##########
@@ -151,65 +153,111 @@ mod tests {
let mut data = Buffer::new((3, 3), vec![1u8, 0, 0, 0, 1, 0, 0, 0, 1]);
band.write((0, 0), (3, 3), &mut data).unwrap();
- let gpkg_path = "/vsimem/test_polygonize_connectivity.gpkg";
- let gpkg_driver = DriverManager::get_driver_by_name(api, "GPKG").unwrap();
- let vector_ds = gpkg_driver.create_vector_only(gpkg_path).unwrap();
-
- // 4-connected output
- let mut layer_4 = vector_ds
- .create_layer(LayerOptions {
- name: "four",
- srs: None,
- ty: OGRwkbGeometryType::wkbPolygon,
- options: None,
- })
- .unwrap();
- let field_defn = FieldDefn::new(api, "val", OGRFieldType::OFTInteger).unwrap();
- layer_4.create_field(&field_defn).unwrap();
-
- polygonize(api, &band, None, &layer_4, 0, &PolygonizeOptions::default()).unwrap();
-
- let ones_4 = layer_4
- .features()
- .filter_map(|f| f.field_as_integer(0))
- .filter(|v| *v == 1)
- .count();
- assert_eq!(ones_4, 3);
+ with_memfile(
+ api,
+ "/vsimem/test_polygonize_connectivity_four.fgb",
+ |layer_4_path| {
+ {
+ let vector_ds_4 =
+ flatgeobuf_driver.create_vector_only(layer_4_path).unwrap();
+
+ // 4-connected output
+ let layer_4 = vector_ds_4
+ .create_layer(LayerOptions {
+ name: "four",
+ srs: None,
+ ty: OGRwkbGeometryType::wkbPolygon,
+ options: None,
+ })
+ .unwrap();
+ let field_defn =
+ FieldDefn::new(api, "val", OGRFieldType::OFTInteger).unwrap();
+ layer_4.create_field(&field_defn).unwrap();
+
+ polygonize(api, &band, None, &layer_4, 0, &PolygonizeOptions::default())
+ .unwrap();
+ }
+
+ let reopened_4 = crate::dataset::Dataset::open_ex(
+ api,
+ layer_4_path,
+ crate::gdal_dyn_bindgen::GDAL_OF_VECTOR
+ | crate::gdal_dyn_bindgen::GDAL_OF_READONLY,
+ None,
+ None,
+ None,
+ )
+ .unwrap();
Review Comment:
The values written to FlatGeoBuf layers can only be read after closing the dataset. That's why we have so much ceremony closing the dataset and reopen it again to read the written values.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@sedona.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org