feat: propagate origin and trigger to cdc and changes

This commit is contained in:
2026-06-05 18:48:46 -04:00
parent 4cc5245336
commit 8c430d42e3
5 changed files with 88 additions and 2 deletions

View File

@ -150,4 +150,46 @@ impl DatabaseExecutor for SpiExecutor {
})
})
}
fn auth_origin(&self) -> Result<Option<Value>, String> {
self.transact(|| {
Spi::connect(|client| {
let mut tup_table = client
.select(
"SELECT NULLIF(current_setting('auth.origin', true), '')::jsonb",
None,
&[],
)
.map_err(|e| format!("SPI Select Error: {}", e))?;
if let Some(row) = tup_table.next() {
if let Ok(Some(jsonb)) = row.get::<pgrx::JsonB>(1) {
return Ok(Some(jsonb.0));
}
}
Ok(None)
})
})
}
fn punc_trigger(&self) -> Result<Option<String>, String> {
self.transact(|| {
Spi::connect(|client| {
let mut tup_table = client
.select(
"SELECT NULLIF(current_setting('punc.name', true), '')",
None,
&[],
)
.map_err(|e| format!("SPI Select Error: {}", e))?;
if let Some(row) = tup_table.next() {
if let Ok(val_opt) = row.get::<String>(1) {
return Ok(val_opt);
}
}
Ok(None)
})
})
}
}