use pgrx::pg_sys::panic::ErrorReport;
use pgrx::prelude::*;
#[pg_extern]
fn pg_tviews_suspend_triggers() {
crate::suspend::suspend();
}
#[pg_extern]
fn pg_tviews_resume_triggers() -> Result<(), ErrorReport> {
crate::revision::check();
crate::suspend::resume()?;
if !crate::suspend::is_suspended() {
crate::suspend::catch_up()?;
}
Ok(())
}
#[pg_extern]
fn pg_tviews_is_suspended() -> bool {
crate::suspend::is_suspended()
}
#[pg_extern]
fn pg_tviews_suspended_entities() -> Vec<String> {
crate::suspend::get_changed_entities()
}
#[pg_extern]
fn pg_tviews_flush_and_report(
max_entities: default!(i32, 500),
include_data: default!(bool, true),
reset: default!(bool, true),
types: default!(Option<Vec<String>>, "NULL"),
) -> Result<pgrx::JsonB, ErrorReport> {
crate::revision::check();
Ok(pgrx::JsonB(crate::report::flush_and_report(
max_entities,
include_data,
reset,
types,
)?))
}
#[pg_extern]
fn pg_tviews_queue_stats() -> pgrx::JsonB {
pgrx::JsonB(crate::health::queue_stats())
}
#[pg_extern]
fn pg_tviews_debug_queue() -> pgrx::JsonB {
pgrx::JsonB(crate::health::debug_queue())
}