Skip to content

Commit f87e56a

Browse files
committed
dont reset arena in geos aggregates, dont swap comparison join if there are projection maps
1 parent 28db804 commit f87e56a

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/spatial/modules/geos/geos_serde.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,9 @@ GEOSGeom_t *GeosSerde::Deserialize(GEOSContextHandle_t ctx, ArenaAllocator &aren
335335
size_t buffer_size) {
336336
// GEOS always does full copies of the data,
337337
// so reset the arena after each deserialization
338-
arena.Reset();
338+
// TODO: Do this, for now we cant because some aggregates will reuse the arena for their own state
339+
// and then we cant reset it
340+
// arena.Reset();
339341

340342
// Deserialize the geometry
341343
BinaryReader reader(buffer, buffer_size);

src/spatial/operators/spatial_join_optimizer.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,12 @@ static bool TrySwapComparisonJoin(OptimizerExtensionInput &input, unique_ptr<Log
151151
return false;
152152
}
153153

154+
if (cmp_join.HasProjectionMap() || filter.HasProjectionMap()) {
155+
// We can't handle this right now.
156+
// We need to recompute the projection maps, but it's a pain.
157+
return false;
158+
}
159+
154160
// Get the table indexes that are reachable from the left and right children
155161
const auto &left_child = cmp_join.children[0];
156162
const auto &right_child = cmp_join.children[1];

0 commit comments

Comments
 (0)