Skip to content

Commit 7b113c6

Browse files
authored
Allocate GUC strings in TopMemoryContext (#165)
1 parent dcf6fc0 commit 7b113c6

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/lib.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::sync::LazyLock;
33

44
use parquet_copy_hook::hook::{init_parquet_copy_hook, ENABLE_PARQUET_COPY_HOOK};
55
use parquet_copy_hook::pg_compat::MarkGUCPrefixReserved;
6+
use pgrx::memcxt::PgMemoryContexts;
67
use pgrx::pg_sys::AsPgCStr;
78
use pgrx::{prelude::*, GucContext, GucFlags, GucRegistry};
89
use tokio::runtime::Runtime;
@@ -42,14 +43,16 @@ pub extern "C-unwind" fn _PG_init() {
4243
}
4344

4445
unsafe {
45-
GucRegistry::define_bool_guc(
46-
CStr::from_ptr("pg_parquet.enable_copy_hooks".as_pg_cstr()),
47-
CStr::from_ptr("Enable parquet copy hooks".as_pg_cstr()),
48-
CStr::from_ptr("Enable parquet copy hooks".as_pg_cstr()),
49-
&ENABLE_PARQUET_COPY_HOOK,
50-
GucContext::Userset,
51-
GucFlags::default(),
52-
)
46+
PgMemoryContexts::TopMemoryContext.switch_to(|_| {
47+
GucRegistry::define_bool_guc(
48+
CStr::from_ptr("pg_parquet.enable_copy_hooks".as_pg_cstr()),
49+
CStr::from_ptr("Enable parquet copy hooks".as_pg_cstr()),
50+
CStr::from_ptr("Enable parquet copy hooks".as_pg_cstr()),
51+
&ENABLE_PARQUET_COPY_HOOK,
52+
GucContext::Userset,
53+
GucFlags::default(),
54+
)
55+
});
5356
};
5457

5558
MarkGUCPrefixReserved("pg_parquet");

0 commit comments

Comments
 (0)