lwerror("Missing libprotobuf-c");
PG_RETURN_NULL();
#else
- MemoryContext aggcontext, oldcxt = NULL;
+ MemoryContext aggcontext;
struct geobuf_agg_context *ctx;
if (!AggCheckCallContext(fcinfo, &aggcontext))
- aggcontext = CurrentMemoryContext;
+ lwerror("pgis_asmvt_transfn: called in non-aggregate context");
+ MemoryContextSwitchTo(aggcontext);
if (PG_ARGISNULL(0)) {
ctx = palloc(sizeof(*ctx));
ctx->geom_name = text_to_cstring(PG_GETARG_TEXT_P(1));
geobuf_agg_init_context(ctx);
} else {
- oldcxt = MemoryContextSwitchTo(aggcontext);
ctx = (struct geobuf_agg_context *) PG_GETARG_POINTER(0);
}
ctx->row = PG_GETARG_HEAPTUPLEHEADER(2);
geobuf_agg_transfn(ctx);
-
- if (oldcxt)
- MemoryContextSwitchTo(oldcxt);
-
PG_RETURN_POINTER(ctx);
#endif
}
lwerror("Missing libprotobuf-c");
PG_RETURN_NULL();
#else
- MemoryContext aggcontext, oldcxt = NULL;
+ MemoryContext aggcontext;
struct mvt_agg_context *ctx;
if (!AggCheckCallContext(fcinfo, &aggcontext))
- aggcontext = CurrentMemoryContext;
+ lwerror("pgis_asmvt_transfn: called in non-aggregate context");
+ MemoryContextSwitchTo(aggcontext);
if (PG_ARGISNULL(0)) {
ctx = palloc(sizeof(*ctx));
PG_FREE_IF_COPY(geom_name, 3);
mvt_agg_init_context(ctx);
} else {
- oldcxt = MemoryContextSwitchTo(aggcontext);
ctx = (struct mvt_agg_context *) PG_GETARG_POINTER(0);
}
ctx->row = PG_GETARG_HEAPTUPLEHEADER(4);
mvt_agg_transfn(ctx);
-
PG_FREE_IF_COPY(ctx->row, 4);
- if (oldcxt)
- MemoryContextSwitchTo(oldcxt);
-
PG_RETURN_POINTER(ctx);
#endif
}