From f260928f12f833069beadc8c3dc2871ddcc2329e Mon Sep 17 00:00:00 2001 From: "Eric B. Ridge" Date: Tue, 13 Jun 2023 15:55:41 -0400 Subject: [PATCH 01/20] Get `cargo-pgrx` capable of downloading/installing v16beta1. `build.rs` is now probably capable of understanding `pg16` too, but that's untested at the moment. --- cargo-pgrx/src/command/init.rs | 39 +++------ cargo-pgrx/src/command/version.rs | 39 +++++---- pgrx-pg-config/src/lib.rs | 137 ++++++++++++++++++++++++------ pgrx-pg-sys/build.rs | 18 ++-- 4 files changed, 154 insertions(+), 79 deletions(-) diff --git a/cargo-pgrx/src/command/init.rs b/cargo-pgrx/src/command/init.rs index 7b1295760..ef764d250 100644 --- a/cargo-pgrx/src/command/init.rs +++ b/cargo-pgrx/src/command/init.rs @@ -14,7 +14,6 @@ use eyre::{eyre, WrapErr}; use owo_colors::OwoColorize; use pgrx_pg_config::{ get_c_locale_flags, prefix_path, PgConfig, PgConfigSelector, Pgrx, PgrxHomeError, - SUPPORTED_MAJOR_VERSIONS, }; use rayon::prelude::*; @@ -93,7 +92,7 @@ impl CommandExecute for Init { if versions.is_empty() { // no arguments specified, so we'll just install our defaults - init_pgrx(&pgrx_default(SUPPORTED_MAJOR_VERSIONS)?, &self) + init_pgrx(&pgrx_default()?, &self) } else { // user specified arguments, so we'll only install those versions of Postgres let mut default_pgrx = None; @@ -102,7 +101,7 @@ impl CommandExecute for Init { for (pgver, pg_config_path) in versions { let config = if pg_config_path == "download" { if default_pgrx.is_none() { - default_pgrx = Some(pgrx_default(SUPPORTED_MAJOR_VERSIONS)?); + default_pgrx = Some(pgrx_default()?); } default_pgrx .as_ref() @@ -174,8 +173,7 @@ pub(crate) fn init_pgrx(pgrx: &Pgrx, init: &Init) -> eyre::Result<()> { output_configs.sort_by(|a, b| { a.major_version() - .ok() - .expect("could not determine major version") + .unwrap_or_else(|e| panic!("{e}: could not determine major version for: `{:?}`", a)) .cmp(&b.major_version().ok().expect("could not determine major version")) }); for pg_config in output_configs.iter() { @@ -205,10 +203,9 @@ fn download_postgres( use crate::command::build_agent_for_url; println!( - "{} Postgres v{}.{} from {}", + "{} Postgres v{} from {}", " Downloading".bold().green(), - pg_config.major_version()?, - pg_config.minor_version()?, + pg_config.version()?, pg_config.url().expect("no url"), ); let url = pg_config.url().expect("no url for pg_config").as_str(); @@ -234,7 +231,7 @@ fn download_postgres( fn untar(bytes: &[u8], pgrxdir: &PathBuf, pg_config: &PgConfig) -> eyre::Result { let mut pgdir = pgrxdir.clone(); - pgdir.push(format!("{}.{}", pg_config.major_version()?, pg_config.minor_version()?)); + pgdir.push(format!("{}", pg_config.version()?)); if pgdir.exists() { // delete everything at this path if it already exists println!("{} {}", " Removing".bold().green(), pgdir.display()); @@ -243,10 +240,9 @@ fn untar(bytes: &[u8], pgrxdir: &PathBuf, pg_config: &PgConfig) -> eyre::Result< std::fs::create_dir_all(&pgdir)?; println!( - "{} Postgres v{}.{} to {}", + "{} Postgres v{} to {}", " Untarring".bold().green(), - pg_config.major_version()?, - pg_config.minor_version()?, + pg_config.version()?, pgdir.display() ); let mut child = std::process::Command::new("tar") @@ -274,12 +270,7 @@ fn untar(bytes: &[u8], pgrxdir: &PathBuf, pg_config: &PgConfig) -> eyre::Result< } fn configure_postgres(pg_config: &PgConfig, pgdir: &PathBuf, init: &Init) -> eyre::Result<()> { - println!( - "{} Postgres v{}.{}", - " Configuring".bold().green(), - pg_config.major_version()?, - pg_config.minor_version()? - ); + println!("{} Postgres v{}", " Configuring".bold().green(), pg_config.version()?); let mut configure_path = pgdir.clone(); configure_path.push("configure"); let mut command = std::process::Command::new(configure_path); @@ -325,12 +316,7 @@ fn configure_postgres(pg_config: &PgConfig, pgdir: &PathBuf, init: &Init) -> eyr fn make_postgres(pg_config: &PgConfig, pgdir: &PathBuf) -> eyre::Result<()> { let num_cpus = 1.max(num_cpus::get() / 3); - println!( - "{} Postgres v{}.{}", - " Compiling".bold().green(), - pg_config.major_version()?, - pg_config.minor_version()? - ); + println!("{} Postgres v{}", " Compiling".bold().green(), pg_config.version()?); let mut command = std::process::Command::new("make"); command @@ -366,10 +352,9 @@ fn make_postgres(pg_config: &PgConfig, pgdir: &PathBuf) -> eyre::Result<()> { fn make_install_postgres(version: &PgConfig, pgdir: &PathBuf) -> eyre::Result { println!( - "{} Postgres v{}.{} to {}", + "{} Postgres v{} to {}", " Installing".bold().green(), - version.major_version()?, - version.minor_version()?, + version.version()?, get_pg_installdir(pgdir).display() ); let mut command = std::process::Command::new("make"); diff --git a/cargo-pgrx/src/command/version.rs b/cargo-pgrx/src/command/version.rs index 25407d4ab..a4dca1fa7 100644 --- a/cargo-pgrx/src/command/version.rs +++ b/cargo-pgrx/src/command/version.rs @@ -1,8 +1,9 @@ -use pgrx_pg_config::{PgConfig, Pgrx}; +use pgrx_pg_config::{PgConfig, Pgrx, SUPPORTED_VERSIONS}; -pub(crate) fn pgrx_default(supported_major_versions: &[u16]) -> eyre::Result { +pub(crate) fn pgrx_default() -> eyre::Result { let mut pgrx = Pgrx::default(); - rss::PostgreSQLVersionRss::new(supported_major_versions)? + + rss::PostgreSQLVersionRss::new(&SUPPORTED_VERSIONS())? .into_iter() .for_each(|version| pgrx.push(PgConfig::from(version))); @@ -12,8 +13,9 @@ pub(crate) fn pgrx_default(supported_major_versions: &[u16]) -> eyre::Result eyre::Result> { + pub(super) fn new(supported_verions: &[PgVersion]) -> eyre::Result> { static VERSIONS_RSS_URL: &str = "https://www.postgresql.org/versions.rss"; let http_client = build_agent_for_url(VERSIONS_RSS_URL)?; @@ -35,7 +37,10 @@ mod rss { Err(e) => return Err(e.into()), }; - let mut versions = Vec::new(); + let mut versions: BTreeMap = BTreeMap::from_iter( + supported_verions.iter().map(|pgver| (pgver.major, pgver.clone())), + ); + for item in rss.channel.item { let title = item.title.trim(); let mut parts = title.split('.'); @@ -47,27 +52,25 @@ mod rss { let major = major.unwrap().parse::().unwrap_or_default(); let minor = minor.unwrap().parse::().unwrap_or_default(); - if supported_major_versions.contains(&major) { - versions.push( - PgVersion::new( - major, - minor, - Url::parse( + if let Some(known_pgver) = versions.get_mut(&major) { + if matches!(known_pgver.minor, PgMinorVersion::Latest) { + // fill in the latest minor version number and its url + known_pgver.minor = PgMinorVersion::Release(minor); + known_pgver.url = Some(Url::parse( &format!("https://ftp.postgresql.org/pub/source/v{major}.{minor}/postgresql-{major}.{minor}.tar.bz2", major = major, minor = minor) - ).expect("invalid url") - ), - ) + )?); + } } } println!( "{} Postgres {}", - " Discovered".white().bold(), - versions.iter().map(|ver| format!("v{ver}")).collect::>().join(", ") + " Discovered".white().bold(), + versions.iter().map(|ver| format!("v{}", ver.1)).collect::>().join(", ") ); - Ok(versions) + Ok(versions.into_values().collect()) } } diff --git a/pgrx-pg-config/src/lib.rs b/pgrx-pg-config/src/lib.rs index 739718c3d..2daf3e870 100644 --- a/pgrx-pg-config/src/lib.rs +++ b/pgrx-pg-config/src/lib.rs @@ -55,22 +55,56 @@ pub fn get_c_locale_flags() -> &'static [&'static str] { mod path_methods; pub use path_methods::{get_target_dir, prefix_path}; +#[derive(Copy, Clone, Debug)] +pub enum PgMinorVersion { + Latest, + Release(u16), + Beta(u16), + Rc(u16), +} + +impl Display for PgMinorVersion { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + match self { + PgMinorVersion::Latest => write!(f, ".LATEST"), + PgMinorVersion::Release(v) => write!(f, ".{}", v), + PgMinorVersion::Beta(v) => write!(f, "beta{}", v), + PgMinorVersion::Rc(v) => write!(f, "rc{}", v), + } + } +} + +impl PgMinorVersion { + fn version(&self) -> Option { + match self { + PgMinorVersion::Latest => None, + PgMinorVersion::Release(v) | PgMinorVersion::Beta(v) | PgMinorVersion::Rc(v) => { + Some(*v) + } + } + } +} + #[derive(Clone, Debug)] pub struct PgVersion { - major: u16, - minor: u16, - url: Url, + pub major: u16, + pub minor: PgMinorVersion, + pub url: Option, } impl PgVersion { - pub fn new(major: u16, minor: u16, url: Url) -> PgVersion { + pub const fn new(major: u16, minor: PgMinorVersion, url: Option) -> PgVersion { PgVersion { major, minor, url } } + + pub fn minor(&self) -> Option { + self.minor.version() + } } impl Display for PgVersion { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - write!(f, "{}.{}", self.major, self.minor) + write!(f, "{}{}", self.major, self.minor) } } @@ -85,13 +119,7 @@ pub struct PgConfig { impl Display for PgConfig { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - let major = self.major_version().expect("could not determine major version"); - let minor = self.minor_version().expect("could not determine minor version"); - let path = match self.pg_config.as_ref() { - Some(path) => path.display().to_string(), - None => self.version.as_ref().unwrap().url.to_string(), - }; - write!(f, "{}.{}={}", major, minor, path) + write!(f, "{}", self.version().expect("failed to create version string")) } } @@ -193,16 +221,32 @@ impl PgConfig { self.path().unwrap().parent().unwrap().to_path_buf() } - fn parse_version_str(version_str: &str) -> eyre::Result<(u16, u16)> { + fn parse_version_str(version_str: &str) -> eyre::Result<(u16, PgMinorVersion)> { let version_parts = version_str.split_whitespace().collect::>(); - let version = version_parts + let mut version = version_parts .get(1) .ok_or_else(|| eyre!("invalid version string: {}", version_str))? .split('.') .collect::>(); - if version.len() < 2 { - return Err(eyre!("invalid version string: {}", version_str)); + + let mut beta = false; + let mut rc = false; + + if version.len() == 1 { + // it's hopefully a "beta" or "rc" release + let first = &version[0]; + + if first.contains("beta") { + beta = true; + version = first.split("beta").collect(); + } else if first.contains("rc") { + rc = true; + version = first.split("beta").collect(); + } else { + return Err(eyre!("invalid version string: {}", version_str)); + } } + let major = u16::from_str(version[0]) .map_err(|e| eyre!("invalid major version number `{}`: {:?}", version[0], e))?; let mut minor = version[1]; @@ -216,10 +260,17 @@ impl PgConfig { minor = &minor[0..end_index]; let minor = u16::from_str(minor) .map_err(|e| eyre!("invalid minor version number `{}`: {:?}", minor, e))?; + let minor = if beta { + PgMinorVersion::Beta(minor) + } else if rc { + PgMinorVersion::Rc(minor) + } else { + PgMinorVersion::Release(minor) + }; return Ok((major, minor)); } - fn get_version(&self) -> eyre::Result<(u16, u16)> { + fn get_version(&self) -> eyre::Result<(u16, PgMinorVersion)> { let version_string = self.run("--version")?; Self::parse_version_str(&version_string) } @@ -231,7 +282,7 @@ impl PgConfig { } } - pub fn minor_version(&self) -> eyre::Result { + fn minor_version(&self) -> eyre::Result { match &self.version { Some(version) => Ok(version.minor), None => Ok(self.get_version()?.1), @@ -239,15 +290,20 @@ impl PgConfig { } pub fn version(&self) -> eyre::Result { - let major = self.major_version()?; - let minor = self.minor_version()?; - let version = format!("{}.{}", major, minor); - Ok(version) + match self.version.as_ref() { + Some(pgver) => Ok(pgver.to_string()), + None => { + let major = self.major_version()?; + let minor = self.minor_version()?; + let version = format!("{}{}", major, minor); + Ok(version) + } + } } pub fn url(&self) -> Option<&Url> { match &self.version { - Some(version) => Some(&version.url), + Some(version) => version.url.as_ref(), None => None, } } @@ -541,8 +597,8 @@ impl Pgrx { /// Returns true if the specified `label` represents a Postgres version number feature flag, /// such as `pg14` or `pg15` pub fn is_feature_flag(&self, label: &str) -> bool { - for v in SUPPORTED_MAJOR_VERSIONS { - if label == &format!("pg{}", v) { + for pgver in SUPPORTED_VERSIONS() { + if label == &format!("pg{}", pgver.major) { return true; } } @@ -588,7 +644,36 @@ impl Pgrx { } } -pub const SUPPORTED_MAJOR_VERSIONS: &[u16] = &[11, 12, 13, 14, 15]; +#[allow(non_snake_case)] +pub fn SUPPORTED_VERSIONS() -> Vec { + vec![ + PgVersion::new(11, PgMinorVersion::Latest, None), + PgVersion::new(12, PgMinorVersion::Latest, None), + PgVersion::new(13, PgMinorVersion::Latest, None), + PgVersion::new(14, PgMinorVersion::Latest, None), + PgVersion::new(15, PgMinorVersion::Latest, None), + PgVersion::new( + 16, + PgMinorVersion::Beta(1), + Some( + Url::parse( + "https://ftp.postgresql.org/pub/source/v16beta1/postgresql-16beta1.tar.bz2", + ) + .expect("invalid url for v16beta1"), + ), + ), + ] +} + +pub fn is_supported_major_version(v: u16) -> bool { + for pgver in SUPPORTED_VERSIONS() { + if v == pgver.major { + return true; + } + } + + false +} pub fn createdb( pg_config: &PgConfig, diff --git a/pgrx-pg-sys/build.rs b/pgrx-pg-sys/build.rs index 80bd4fd36..761d6b661 100644 --- a/pgrx-pg-sys/build.rs +++ b/pgrx-pg-sys/build.rs @@ -10,7 +10,9 @@ Use of this source code is governed by the MIT license that can be found in the use bindgen::callbacks::{DeriveTrait, ImplementsTrait, MacroParsingBehavior}; use eyre::{eyre, WrapErr}; use once_cell::sync::Lazy; -use pgrx_pg_config::{prefix_path, PgConfig, PgConfigSelector, Pgrx, SUPPORTED_MAJOR_VERSIONS}; +use pgrx_pg_config::{ + is_supported_major_version, prefix_path, PgConfig, PgConfigSelector, Pgrx, SUPPORTED_VERSIONS, +}; use quote::{quote, ToTokens}; use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet}; use std::path::PathBuf; @@ -125,7 +127,7 @@ fn main() -> eyre::Result<()> { .map(|r| r.expect("invalid pg_config")) .map(|c| (c.major_version().expect("invalid major version"), c)) .filter_map(|t| { - if SUPPORTED_MAJOR_VERSIONS.contains(&t.0) { + if is_supported_major_version(t.0) { Some(t) } else { println!( @@ -141,21 +143,21 @@ fn main() -> eyre::Result<()> { .collect() } else { let mut found = None; - for &version in SUPPORTED_MAJOR_VERSIONS { - if env_tracked(&format!("CARGO_FEATURE_PG{}", version)).is_none() { + for pgver in SUPPORTED_VERSIONS() { + if env_tracked(&format!("CARGO_FEATURE_PG{}", pgver.major)).is_none() { continue; } if found.is_some() { return Err(eyre!("Multiple `pg$VERSION` features found, `--no-default-features` may be required.")); } - found = Some((version, format!("pg{}", version))); + found = Some((pgver, format!("pg{}", pgver.major))); } let (found_ver, found_feat) = found.ok_or_else(|| { eyre!( "Did not find `pg$VERSION` feature. `pgrx-pg-sys` requires one of {} to be set", - SUPPORTED_MAJOR_VERSIONS + SUPPORTED_VERSIONS() .iter() - .map(|x| format!("`pg{}`", x)) + .map(|pgver| format!("`pg{}`", pgver.major)) .collect::>() .join(", ") ) @@ -170,7 +172,7 @@ fn main() -> eyre::Result<()> { vec![(major_version, pg_config)] } else { let specific = Pgrx::from_config()?.get(&found_feat)?; - vec![(found_ver, specific)] + vec![(found_ver.major, specific)] } }; std::thread::scope(|scope| { From 8533092effdffb9c460f0b91eb9f930ee9acdff3 Mon Sep 17 00:00:00 2001 From: "Eric B. Ridge" Date: Tue, 13 Jun 2023 17:02:38 -0400 Subject: [PATCH 02/20] pg16 bindings generate and repo passes `cargo check --all` without errors or warnings. Tests fail for some reason. --- cargo-pgrx/src/templates/cargo_toml | 1 + nix/templates/default/Cargo.toml | 1 + pgrx-examples/aggregate/Cargo.toml | 1 + pgrx-examples/arrays/Cargo.toml | 1 + pgrx-examples/bad_ideas/Cargo.toml | 1 + pgrx-examples/bgworker/Cargo.toml | 1 + pgrx-examples/bytea/Cargo.toml | 1 + pgrx-examples/composite_type/Cargo.toml | 1 + pgrx-examples/custom_libname/Cargo.toml | 1 + pgrx-examples/custom_sql/Cargo.toml | 1 + pgrx-examples/custom_types/Cargo.toml | 1 + pgrx-examples/datetime/Cargo.toml | 1 + pgrx-examples/errors/Cargo.toml | 1 + pgrx-examples/nostd/Cargo.toml | 1 + pgrx-examples/numeric/Cargo.toml | 1 + pgrx-examples/operators/Cargo.toml | 1 + pgrx-examples/pgtrybuilder/Cargo.toml | 1 + pgrx-examples/range/Cargo.toml | 1 + pgrx-examples/schemas/Cargo.toml | 1 + pgrx-examples/shmem/Cargo.toml | 1 + pgrx-examples/spi/Cargo.toml | 1 + pgrx-examples/spi/src/lib.rs | 2 + pgrx-examples/spi_srf/Cargo.toml | 1 + pgrx-examples/srf/Cargo.toml | 1 + pgrx-examples/strings/Cargo.toml | 1 + pgrx-examples/triggers/Cargo.toml | 1 + .../versioned_custom_libname_so/Cargo.toml | 1 + pgrx-examples/versioned_so/Cargo.toml | 1 + pgrx-pg-config/src/lib.rs | 10 +- pgrx-pg-sys/Cargo.toml | 1 + pgrx-pg-sys/build.rs | 7 +- pgrx-pg-sys/include/pg16.h | 135 + pgrx-pg-sys/src/lib.rs | 63 +- pgrx-pg-sys/src/pg11.rs | 10 +- pgrx-pg-sys/src/pg12.rs | 10 +- pgrx-pg-sys/src/pg13.rs | 10 +- pgrx-pg-sys/src/pg14.rs | 10 +- pgrx-pg-sys/src/pg15.rs | 10 +- pgrx-pg-sys/src/pg16.rs | 69396 ++++++++++++++++ pgrx-pg-sys/src/pg16_oids.rs | 426 + pgrx-pg-sys/src/submodules/elog.rs | 16 +- pgrx-pg-sys/src/submodules/mod.rs | 8 +- pgrx-pg-sys/src/submodules/panic.rs | 2 +- .../src/submodules/sql_translatable.rs | 8 +- pgrx-tests/Cargo.toml | 1 + pgrx/Cargo.toml | 1 + pgrx/src/bgworkers.rs | 12 +- pgrx/src/datum/datetime_support/mod.rs | 39 +- pgrx/src/datum/numeric_support/ops.rs | 2 +- pgrx/src/datum/range.rs | 18 +- pgrx/src/enum_helper.rs | 8 +- pgrx/src/fcinfo.rs | 16 +- pgrx/src/guc.rs | 2 +- pgrx/src/hooks.rs | 14 +- pgrx/src/lib.rs | 6 +- pgrx/src/list.rs | 6 +- pgrx/src/namespace.rs | 8 +- pgrx/src/shmem.rs | 4 +- pgrx/src/stringinfo.rs | 2 +- pgrx/src/tupdesc.rs | 24 +- pgrx/src/xid.rs | 8 +- 61 files changed, 70255 insertions(+), 67 deletions(-) create mode 100644 pgrx-pg-sys/include/pg16.h create mode 100644 pgrx-pg-sys/src/pg16.rs create mode 100644 pgrx-pg-sys/src/pg16_oids.rs diff --git a/cargo-pgrx/src/templates/cargo_toml b/cargo-pgrx/src/templates/cargo_toml index bb04ee34e..e67c38a5b 100644 --- a/cargo-pgrx/src/templates/cargo_toml +++ b/cargo-pgrx/src/templates/cargo_toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/nix/templates/default/Cargo.toml b/nix/templates/default/Cargo.toml index 38a0e02e1..71a156111 100644 --- a/nix/templates/default/Cargo.toml +++ b/nix/templates/default/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/aggregate/Cargo.toml b/pgrx-examples/aggregate/Cargo.toml index 479634887..30f4fcd1c 100644 --- a/pgrx-examples/aggregate/Cargo.toml +++ b/pgrx-examples/aggregate/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] bob = [] diff --git a/pgrx-examples/arrays/Cargo.toml b/pgrx-examples/arrays/Cargo.toml index a43d01a6a..3e6b3a373 100644 --- a/pgrx-examples/arrays/Cargo.toml +++ b/pgrx-examples/arrays/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/bad_ideas/Cargo.toml b/pgrx-examples/bad_ideas/Cargo.toml index 16c7977ff..f41f94fbe 100644 --- a/pgrx-examples/bad_ideas/Cargo.toml +++ b/pgrx-examples/bad_ideas/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/bgworker/Cargo.toml b/pgrx-examples/bgworker/Cargo.toml index ecc1883a1..68048116e 100644 --- a/pgrx-examples/bgworker/Cargo.toml +++ b/pgrx-examples/bgworker/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/bytea/Cargo.toml b/pgrx-examples/bytea/Cargo.toml index 02343b49e..43accab04 100644 --- a/pgrx-examples/bytea/Cargo.toml +++ b/pgrx-examples/bytea/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/composite_type/Cargo.toml b/pgrx-examples/composite_type/Cargo.toml index 8f9da2d07..663273c66 100644 --- a/pgrx-examples/composite_type/Cargo.toml +++ b/pgrx-examples/composite_type/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/custom_libname/Cargo.toml b/pgrx-examples/custom_libname/Cargo.toml index 95b3f5af6..2b3fff51f 100644 --- a/pgrx-examples/custom_libname/Cargo.toml +++ b/pgrx-examples/custom_libname/Cargo.toml @@ -14,6 +14,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/custom_sql/Cargo.toml b/pgrx-examples/custom_sql/Cargo.toml index 2f20fcb70..b48d33dc0 100644 --- a/pgrx-examples/custom_sql/Cargo.toml +++ b/pgrx-examples/custom_sql/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/custom_types/Cargo.toml b/pgrx-examples/custom_types/Cargo.toml index 6d6893d4f..ff001b318 100644 --- a/pgrx-examples/custom_types/Cargo.toml +++ b/pgrx-examples/custom_types/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] no-schema-generation = [ "pgrx/no-schema-generation", "pgrx-tests/no-schema-generation" ] diff --git a/pgrx-examples/datetime/Cargo.toml b/pgrx-examples/datetime/Cargo.toml index 198054499..3da1012bb 100644 --- a/pgrx-examples/datetime/Cargo.toml +++ b/pgrx-examples/datetime/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/errors/Cargo.toml b/pgrx-examples/errors/Cargo.toml index ff6b080cf..5783dc2ca 100644 --- a/pgrx-examples/errors/Cargo.toml +++ b/pgrx-examples/errors/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/nostd/Cargo.toml b/pgrx-examples/nostd/Cargo.toml index c82e067b0..e4edb2735 100644 --- a/pgrx-examples/nostd/Cargo.toml +++ b/pgrx-examples/nostd/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/numeric/Cargo.toml b/pgrx-examples/numeric/Cargo.toml index 6182438f0..aecbbf618 100644 --- a/pgrx-examples/numeric/Cargo.toml +++ b/pgrx-examples/numeric/Cargo.toml @@ -14,6 +14,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/operators/Cargo.toml b/pgrx-examples/operators/Cargo.toml index 6770a318f..e0b601b9d 100644 --- a/pgrx-examples/operators/Cargo.toml +++ b/pgrx-examples/operators/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/pgtrybuilder/Cargo.toml b/pgrx-examples/pgtrybuilder/Cargo.toml index d11657cb9..4a32964e0 100644 --- a/pgrx-examples/pgtrybuilder/Cargo.toml +++ b/pgrx-examples/pgtrybuilder/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/range/Cargo.toml b/pgrx-examples/range/Cargo.toml index fc94b930b..98c09ffdc 100644 --- a/pgrx-examples/range/Cargo.toml +++ b/pgrx-examples/range/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/schemas/Cargo.toml b/pgrx-examples/schemas/Cargo.toml index 681db06a8..30bcd6255 100644 --- a/pgrx-examples/schemas/Cargo.toml +++ b/pgrx-examples/schemas/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/shmem/Cargo.toml b/pgrx-examples/shmem/Cargo.toml index 7a1a95ca9..062f0d2e4 100644 --- a/pgrx-examples/shmem/Cargo.toml +++ b/pgrx-examples/shmem/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/spi/Cargo.toml b/pgrx-examples/spi/Cargo.toml index 1efaccab3..a4f9bd019 100644 --- a/pgrx-examples/spi/Cargo.toml +++ b/pgrx-examples/spi/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/spi/src/lib.rs b/pgrx-examples/spi/src/lib.rs index e86f672ec..01d85a3f8 100644 --- a/pgrx-examples/spi/src/lib.rs +++ b/pgrx-examples/spi/src/lib.rs @@ -49,6 +49,8 @@ fn spi_return_query() -> Result< let query = "SELECT oid, relname::text || '-pg14' FROM pg_class"; #[cfg(feature = "pg15")] let query = "SELECT oid, relname::text || '-pg15' FROM pg_class"; + #[cfg(feature = "pg16")] + let query = "SELECT oid, relname::text || '-pg16' FROM pg_class"; Spi::connect(|client| { Ok(client.select(query, None, None)?.map(|row| (row["oid"].value(), row[2].value()))) diff --git a/pgrx-examples/spi_srf/Cargo.toml b/pgrx-examples/spi_srf/Cargo.toml index 3c3670e57..2ddcfde95 100644 --- a/pgrx-examples/spi_srf/Cargo.toml +++ b/pgrx-examples/spi_srf/Cargo.toml @@ -14,6 +14,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/srf/Cargo.toml b/pgrx-examples/srf/Cargo.toml index eb9b409bd..8617ec4b0 100644 --- a/pgrx-examples/srf/Cargo.toml +++ b/pgrx-examples/srf/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/strings/Cargo.toml b/pgrx-examples/strings/Cargo.toml index 100928161..0544dc4fd 100644 --- a/pgrx-examples/strings/Cargo.toml +++ b/pgrx-examples/strings/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/triggers/Cargo.toml b/pgrx-examples/triggers/Cargo.toml index 08f6b8d3b..9094c1f57 100644 --- a/pgrx-examples/triggers/Cargo.toml +++ b/pgrx-examples/triggers/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/versioned_custom_libname_so/Cargo.toml b/pgrx-examples/versioned_custom_libname_so/Cargo.toml index 405ad7996..f90bda419 100644 --- a/pgrx-examples/versioned_custom_libname_so/Cargo.toml +++ b/pgrx-examples/versioned_custom_libname_so/Cargo.toml @@ -14,6 +14,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-examples/versioned_so/Cargo.toml b/pgrx-examples/versioned_so/Cargo.toml index af2b11e60..d539bd55b 100644 --- a/pgrx-examples/versioned_so/Cargo.toml +++ b/pgrx-examples/versioned_so/Cargo.toml @@ -13,6 +13,7 @@ pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] +pg16 = ["pgrx/pg16", "pgrx-tests/pg16" ] pg_test = [] [dependencies] diff --git a/pgrx-pg-config/src/lib.rs b/pgrx-pg-config/src/lib.rs index 2daf3e870..45605f0fc 100644 --- a/pgrx-pg-config/src/lib.rs +++ b/pgrx-pg-config/src/lib.rs @@ -55,7 +55,7 @@ pub fn get_c_locale_flags() -> &'static [&'static str] { mod path_methods; pub use path_methods::{get_target_dir, prefix_path}; -#[derive(Copy, Clone, Debug)] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum PgMinorVersion { Latest, Release(u16), @@ -781,7 +781,7 @@ fn parse_version() { let (major, minor) = PgConfig::parse_version_str(s).expect("Unable to parse version string"); assert_eq!(major, major_expected, "Major version should match"); - assert_eq!(minor, minor_expected, "Minor version should match"); + assert_eq!(minor.version(), Some(minor_expected), "Minor version should match"); } // Check some invalid version strings @@ -810,7 +810,11 @@ fn from_empty_env() -> eyre::Result<()> { let pg_config = PgConfig::from_env().unwrap(); assert_eq!(pg_config.major_version()?, 15, "Major version should match"); - assert_eq!(pg_config.minor_version()?, 1, "Minor version should match"); + assert_eq!( + pg_config.minor_version()?, + PgMinorVersion::Release(1), + "Minor version should match" + ); assert_eq!( pg_config.includedir_server()?, PathBuf::from("/path/to/server/headers"), diff --git a/pgrx-pg-sys/Cargo.toml b/pgrx-pg-sys/Cargo.toml index 84d193d47..387f646d0 100644 --- a/pgrx-pg-sys/Cargo.toml +++ b/pgrx-pg-sys/Cargo.toml @@ -17,6 +17,7 @@ pg12 = [ ] pg13 = [ ] pg14 = [ ] pg15 = [ ] +pg16 = [ ] cshim = [ ] [package.metadata.docs.rs] diff --git a/pgrx-pg-sys/build.rs b/pgrx-pg-sys/build.rs index 761d6b661..bd53569d9 100644 --- a/pgrx-pg-sys/build.rs +++ b/pgrx-pg-sys/build.rs @@ -150,7 +150,8 @@ fn main() -> eyre::Result<()> { if found.is_some() { return Err(eyre!("Multiple `pg$VERSION` features found, `--no-default-features` may be required.")); } - found = Some((pgver, format!("pg{}", pgver.major))); + let major = pgver.major; + found = Some((pgver, format!("pg{}", major))); } let (found_ver, found_feat) = found.ok_or_else(|| { eyre!( @@ -166,7 +167,7 @@ fn main() -> eyre::Result<()> { if let Ok(pg_config) = PgConfig::from_env() { let major_version = pg_config.major_version()?; - if major_version != found_ver { + if major_version != found_ver.major { panic!("Feature flag `pg{found_ver}` does not match version from the environment-described PgConfig (`{major_version}`)") } vec![(major_version, pg_config)] @@ -270,7 +271,7 @@ fn generate_bindings( &bindings_file, quote! { use crate as pg_sys; - #[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] use crate::NullableDatum; use crate::{Datum, Oid, PgNode}; }, diff --git a/pgrx-pg-sys/include/pg16.h b/pgrx-pg-sys/include/pg16.h new file mode 100644 index 000000000..8c7123e13 --- /dev/null +++ b/pgrx-pg-sys/include/pg16.h @@ -0,0 +1,135 @@ +/* +Portions Copyright 2019-2021 ZomboDB, LLC. +Portions Copyright 2021-2022 Technology Concepts & Design, Inc. + +All rights reserved. + +Use of this source code is governed by the MIT license that can be found in the LICENSE file. +*/ +#include "postgres.h" +#include "pg_config.h" +#include "funcapi.h" +#include "miscadmin.h" +#include "pgstat.h" + +#include "access/amapi.h" +#include "access/genam.h" +#include "access/generic_xlog.h" +#include "access/gin.h" +#include "access/gist.h" +#include "access/heapam.h" +#include "access/htup.h" +#include "access/htup_details.h" +#include "access/relation.h" +#include "access/reloptions.h" +#include "access/relscan.h" +#include "access/skey.h" +#include "access/sysattr.h" +#include "access/table.h" +#include "access/xact.h" +#include "catalog/dependency.h" +#include "catalog/index.h" +#include "catalog/indexing.h" +#include "catalog/namespace.h" +#include "catalog/objectaccess.h" +#include "catalog/objectaddress.h" +#include "catalog/pg_authid.h" +#include "catalog/pg_class.h" +#include "catalog/pg_database.h" +#include "catalog/pg_enum.h" +#include "catalog/pg_extension.h" +#include "catalog/pg_operator.h" +#include "catalog/pg_proc.h" +#include "catalog/pg_namespace.h" +#include "catalog/pg_tablespace.h" +#include "catalog/pg_trigger.h" +#include "catalog/pg_type.h" +#include "commands/comment.h" +#include "commands/dbcommands.h" +#include "commands/defrem.h" +#include "commands/event_trigger.h" +#include "commands/explain.h" +#include "commands/proclang.h" +#include "commands/tablespace.h" +#include "commands/tablecmds.h" +#include "commands/trigger.h" +#include "commands/user.h" +#include "commands/vacuum.h" +#include "common/config_info.h" +#include "executor/executor.h" +#include "executor/spi.h" +#include "executor/tuptable.h" +#include "foreign/fdwapi.h" +#include "foreign/foreign.h" +#include "mb/pg_wchar.h" +#include "nodes/execnodes.h" +#include "nodes/extensible.h" +#include "nodes/makefuncs.h" +#include "nodes/nodeFuncs.h" +#include "nodes/nodes.h" +#include "nodes/print.h" +#include "nodes/replnodes.h" +#include "nodes/supportnodes.h" +#include "nodes/tidbitmap.h" +#include "nodes/value.h" +#include "optimizer/appendinfo.h" +#include "optimizer/clauses.h" +#include "optimizer/cost.h" +#include "optimizer/optimizer.h" +#include "optimizer/pathnode.h" +#include "optimizer/paths.h" +#include "optimizer/plancat.h" +#include "optimizer/planmain.h" +#include "optimizer/planner.h" +#include "optimizer/restrictinfo.h" +#include "optimizer/tlist.h" +#include "parser/analyze.h" +#include "parser/parse_func.h" +#include "parser/parse_oper.h" +#include "parser/parse_type.h" +#include "parser/parse_coerce.h" +#include "parser/parser.h" +#include "parser/parsetree.h" +#include "parser/scansup.h" +#include "plpgsql.h" +#include "postmaster/bgworker.h" +#include "replication/logical.h" +#include "replication/output_plugin.h" +#include "rewrite/rewriteHandler.h" +#include "rewrite/rowsecurity.h" +#include "storage/block.h" +#include "storage/bufmgr.h" +#include "storage/buffile.h" +#include "storage/bufpage.h" +#include "storage/ipc.h" +#include "storage/itemptr.h" +#include "storage/lmgr.h" +#include "storage/lwlock.h" +#include "storage/procarray.h" +#include "storage/spin.h" +#include "tcop/tcopprot.h" +#include "tcop/utility.h" +#include "tsearch/ts_public.h" +#include "tsearch/ts_utils.h" +#include "utils/builtins.h" +#include "utils/date.h" +#include "utils/datetime.h" +#include "utils/elog.h" +#include "utils/float.h" +#include "utils/fmgrprotos.h" +#include "utils/geo_decls.h" +#include "utils/guc.h" +#include "utils/json.h" +#include "utils/jsonb.h" +#include "utils/lsyscache.h" +#include "utils/memutils.h" +#include "utils/numeric.h" +#include "utils/palloc.h" +#include "utils/rel.h" +#include "utils/relcache.h" +#include "utils/sampling.h" +#include "utils/selfuncs.h" +#include "utils/snapmgr.h" +#include "utils/syscache.h" +#include "utils/typcache.h" +#include "utils/rangetypes.h" diff --git a/pgrx-pg-sys/src/lib.rs b/pgrx-pg-sys/src/lib.rs index affbcf02f..54b3c1714 100644 --- a/pgrx-pg-sys/src/lib.rs +++ b/pgrx-pg-sys/src/lib.rs @@ -22,9 +22,11 @@ Use of this source code is governed by the MIT license that can be found in the #[cfg( any( // no features at all will cause problems - not(any(feature = "pg11", feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15")), + not(any(feature = "pg11", feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16")), ))] -std::compile_error!("exactly one one feature must be provided (pg11, pg12, pg13, pg14, pg15)"); +std::compile_error!( + "exactly one one feature must be provided (pg11, pg12, pg13, pg14, pg15, pg16)" +); pub mod submodules; @@ -75,6 +77,13 @@ mod pg15 { #[cfg(all(feature = "pg15", docsrs))] mod pg15; +#[cfg(all(feature = "pg16", not(docsrs)))] +mod pg16 { + include!(concat!(env!("OUT_DIR"), "/pg16.rs")); +} +#[cfg(all(feature = "pg16", docsrs))] +mod pg16; + // export each module publicly #[cfg(feature = "pg11")] pub use pg11::*; @@ -86,6 +95,8 @@ pub use pg13::*; pub use pg14::*; #[cfg(feature = "pg15")] pub use pg15::*; +#[cfg(feature = "pg16")] +pub use pg16::*; // feature gate each pg-specific oid module #[cfg(all(feature = "pg11", not(docsrs)))] @@ -123,6 +134,13 @@ mod pg15_oids { #[cfg(all(feature = "pg15", docsrs))] mod pg15_oids; +#[cfg(all(feature = "pg16", not(docsrs)))] +mod pg16_oids { + include!(concat!(env!("OUT_DIR"), "/pg16_oids.rs")); +} +#[cfg(all(feature = "pg6", docsrs))] +mod pg16_oids; + // export that module publicly #[cfg(feature = "pg11")] pub use pg11_oids::*; @@ -134,6 +152,8 @@ pub use pg13_oids::*; pub use pg14_oids::*; #[cfg(feature = "pg15")] pub use pg15_oids::*; +#[cfg(feature = "pg16")] +pub use pg16_oids::*; // expose things we want available for all versions pub use all_versions::*; @@ -156,6 +176,9 @@ pub use internal::pg14::*; #[cfg(feature = "pg15")] pub use internal::pg15::*; +#[cfg(feature = "pg16")] +pub use internal::pg16::*; + /// A trait applied to all Postgres `pg_sys::Node` types and subtypes pub trait PgNode: seal::Sealed { /// Format this node @@ -760,6 +783,42 @@ mod internal { ); } } + + #[cfg(feature = "pg16")] + pub(crate) mod pg16 { + pub use crate::pg16::AllocSetContextCreateInternal as AllocSetContextCreateExtended; + + pub const QTW_EXAMINE_RTES: u32 = crate::pg16::QTW_EXAMINE_RTES_BEFORE; + + /// # Safety + /// + /// This function wraps Postgres' internal `IndexBuildHeapScan` method, and therefore, is + /// inherently unsafe + pub unsafe fn IndexBuildHeapScan( + heap_relation: crate::Relation, + index_relation: crate::Relation, + index_info: *mut crate::IndexInfo, + build_callback: crate::IndexBuildCallback, + build_callback_state: *mut T, + ) { + let heap_relation_ref = heap_relation.as_ref().unwrap(); + let table_am = heap_relation_ref.rd_tableam.as_ref().unwrap(); + + table_am.index_build_range_scan.unwrap()( + heap_relation, + index_relation, + index_info, + true, + false, + true, + 0, + crate::InvalidBlockNumber, + build_callback, + build_callback_state as *mut std::os::raw::c_void, + std::ptr::null_mut(), + ); + } + } } // Hack to fix linker errors that we get under amazonlinux2 on some PG versions diff --git a/pgrx-pg-sys/src/pg11.rs b/pgrx-pg-sys/src/pg11.rs index 29002fd2a..cf036aeb8 100644 --- a/pgrx-pg-sys/src/pg11.rs +++ b/pgrx-pg-sys/src/pg11.rs @@ -1,5 +1,11 @@ use crate as pg_sys; -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] use crate::NullableDatum; use crate::{Datum, Oid, PgNode}; #[repr(C)] @@ -313,7 +319,7 @@ pub const PG_KRB_SRVNAM: &[u8; 9usize] = b"postgres\0"; pub const PG_MAJORVERSION: &[u8; 3usize] = b"11\0"; pub const PG_VERSION: &[u8; 6usize] = b"11.20\0"; pub const PG_VERSION_NUM: u32 = 110020; -pub const PG_VERSION_STR : & [u8 ; 103usize] = b"PostgreSQL 11.20 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit\0" ; +pub const PG_VERSION_STR : & [u8 ; 105usize] = b"PostgreSQL 11.20 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, 64-bit\0" ; pub const RELSEG_SIZE: u32 = 131072; pub const SIZEOF_BOOL: u32 = 1; pub const SIZEOF_LONG: u32 = 8; diff --git a/pgrx-pg-sys/src/pg12.rs b/pgrx-pg-sys/src/pg12.rs index 14170a895..6ce20379a 100644 --- a/pgrx-pg-sys/src/pg12.rs +++ b/pgrx-pg-sys/src/pg12.rs @@ -1,5 +1,11 @@ use crate as pg_sys; -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] use crate::NullableDatum; use crate::{Datum, Oid, PgNode}; #[repr(C)] @@ -321,7 +327,7 @@ pub const PG_KRB_SRVNAM: &[u8; 9usize] = b"postgres\0"; pub const PG_MAJORVERSION: &[u8; 3usize] = b"12\0"; pub const PG_VERSION: &[u8; 6usize] = b"12.15\0"; pub const PG_VERSION_NUM: u32 = 120015; -pub const PG_VERSION_STR : & [u8 ; 103usize] = b"PostgreSQL 12.15 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit\0" ; +pub const PG_VERSION_STR : & [u8 ; 105usize] = b"PostgreSQL 12.15 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, 64-bit\0" ; pub const RELSEG_SIZE: u32 = 131072; pub const SIZEOF_BOOL: u32 = 1; pub const SIZEOF_LONG: u32 = 8; diff --git a/pgrx-pg-sys/src/pg13.rs b/pgrx-pg-sys/src/pg13.rs index 75de45a2f..2a8dd5b12 100644 --- a/pgrx-pg-sys/src/pg13.rs +++ b/pgrx-pg-sys/src/pg13.rs @@ -1,5 +1,11 @@ use crate as pg_sys; -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] use crate::NullableDatum; use crate::{Datum, Oid, PgNode}; #[repr(C)] @@ -316,7 +322,7 @@ pub const PG_MINORVERSION_NUM: u32 = 11; pub const PG_USE_STDBOOL: u32 = 1; pub const PG_VERSION: &[u8; 6usize] = b"13.11\0"; pub const PG_VERSION_NUM: u32 = 130011; -pub const PG_VERSION_STR : & [u8 ; 103usize] = b"PostgreSQL 13.11 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit\0" ; +pub const PG_VERSION_STR : & [u8 ; 105usize] = b"PostgreSQL 13.11 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, 64-bit\0" ; pub const RELSEG_SIZE: u32 = 131072; pub const SIZEOF_BOOL: u32 = 1; pub const SIZEOF_LONG: u32 = 8; diff --git a/pgrx-pg-sys/src/pg14.rs b/pgrx-pg-sys/src/pg14.rs index c758770c9..49ae9850b 100644 --- a/pgrx-pg-sys/src/pg14.rs +++ b/pgrx-pg-sys/src/pg14.rs @@ -1,5 +1,11 @@ use crate as pg_sys; -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] use crate::NullableDatum; use crate::{Datum, Oid, PgNode}; #[repr(C)] @@ -324,7 +330,7 @@ pub const PG_MINORVERSION_NUM: u32 = 8; pub const PG_USE_STDBOOL: u32 = 1; pub const PG_VERSION: &[u8; 5usize] = b"14.8\0"; pub const PG_VERSION_NUM: u32 = 140008; -pub const PG_VERSION_STR : & [u8 ; 102usize] = b"PostgreSQL 14.8 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit\0" ; +pub const PG_VERSION_STR : & [u8 ; 104usize] = b"PostgreSQL 14.8 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, 64-bit\0" ; pub const RELSEG_SIZE: u32 = 131072; pub const SIZEOF_BOOL: u32 = 1; pub const SIZEOF_LONG: u32 = 8; diff --git a/pgrx-pg-sys/src/pg15.rs b/pgrx-pg-sys/src/pg15.rs index 117d015cd..43ee91eec 100644 --- a/pgrx-pg-sys/src/pg15.rs +++ b/pgrx-pg-sys/src/pg15.rs @@ -1,5 +1,11 @@ use crate as pg_sys; -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] use crate::NullableDatum; use crate::{Datum, Oid, PgNode}; #[repr(C)] @@ -327,7 +333,7 @@ pub const PG_MINORVERSION_NUM: u32 = 3; pub const PG_USE_STDBOOL: u32 = 1; pub const PG_VERSION: &[u8; 5usize] = b"15.3\0"; pub const PG_VERSION_NUM: u32 = 150003; -pub const PG_VERSION_STR : & [u8 ; 102usize] = b"PostgreSQL 15.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit\0" ; +pub const PG_VERSION_STR : & [u8 ; 104usize] = b"PostgreSQL 15.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, 64-bit\0" ; pub const RELSEG_SIZE: u32 = 131072; pub const SIZEOF_BOOL: u32 = 1; pub const SIZEOF_LONG: u32 = 8; diff --git a/pgrx-pg-sys/src/pg16.rs b/pgrx-pg-sys/src/pg16.rs new file mode 100644 index 000000000..0719ea73c --- /dev/null +++ b/pgrx-pg-sys/src/pg16.rs @@ -0,0 +1,69396 @@ +use crate as pg_sys; +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] +use crate::NullableDatum; +use crate::{Datum, Oid, PgNode}; +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { + storage: Storage, +} +impl __BindgenBitfieldUnit { + #[inline] + pub const fn new(storage: Storage) -> Self { + Self { storage } + } +} +impl __BindgenBitfieldUnit +where + Storage: AsRef<[u8]> + AsMut<[u8]>, +{ + #[inline] + pub fn get_bit(&self, index: usize) -> bool { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = self.storage.as_ref()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; + let mask = 1 << bit_index; + byte & mask == mask + } + #[inline] + pub fn set_bit(&mut self, index: usize, val: bool) { + debug_assert!(index / 8 < self.storage.as_ref().len()); + let byte_index = index / 8; + let byte = &mut self.storage.as_mut()[byte_index]; + let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; + let mask = 1 << bit_index; + if val { + *byte |= mask; + } else { + *byte &= !mask; + } + } + #[inline] + pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + let mut val = 0; + for i in 0..(bit_width as usize) { + if self.get_bit(i + bit_offset) { + let index = + if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; + val |= 1 << index; + } + } + val + } + #[inline] + pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { + debug_assert!(bit_width <= 64); + debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); + debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); + for i in 0..(bit_width as usize) { + let mask = 1 << i; + let val_bit_is_set = val & mask == mask; + let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; + self.set_bit(index + bit_offset, val_bit_is_set); + } + } +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { + #[inline] + pub const fn new() -> Self { + __IncompleteArrayField(::std::marker::PhantomData, []) + } + #[inline] + pub fn as_ptr(&self) -> *const T { + self as *const _ as *const T + } + #[inline] + pub fn as_mut_ptr(&mut self) -> *mut T { + self as *mut _ as *mut T + } + #[inline] + pub unsafe fn as_slice(&self, len: usize) -> &[T] { + ::std::slice::from_raw_parts(self.as_ptr(), len) + } + #[inline] + pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { + ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) + } +} +impl ::std::fmt::Debug for __IncompleteArrayField { + fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + fmt.write_str("__IncompleteArrayField") + } +} +#[repr(C)] +pub struct __BindgenUnionField(::std::marker::PhantomData); +impl __BindgenUnionField { + #[inline] + pub const fn new() -> Self { + __BindgenUnionField(::std::marker::PhantomData) + } + #[inline] + pub unsafe fn as_ref(&self) -> &T { + ::std::mem::transmute(self) + } + #[inline] + pub unsafe fn as_mut(&mut self) -> &mut T { + ::std::mem::transmute(self) + } +} +impl ::std::default::Default for __BindgenUnionField { + #[inline] + fn default() -> Self { + Self::new() + } +} +impl ::std::clone::Clone for __BindgenUnionField { + #[inline] + fn clone(&self) -> Self { + Self::new() + } +} +impl ::std::marker::Copy for __BindgenUnionField {} +impl ::std::fmt::Debug for __BindgenUnionField { + fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + fmt.write_str("__BindgenUnionField") + } +} +impl ::std::hash::Hash for __BindgenUnionField { + fn hash(&self, _state: &mut H) {} +} +impl ::std::cmp::PartialEq for __BindgenUnionField { + fn eq(&self, _other: &__BindgenUnionField) -> bool { + true + } +} +impl ::std::cmp::Eq for __BindgenUnionField {} +pub const PG_DIAG_SEVERITY: u8 = 83u8; +pub const PG_DIAG_SEVERITY_NONLOCALIZED: u8 = 86u8; +pub const PG_DIAG_SQLSTATE: u8 = 67u8; +pub const PG_DIAG_MESSAGE_PRIMARY: u8 = 77u8; +pub const PG_DIAG_MESSAGE_DETAIL: u8 = 68u8; +pub const PG_DIAG_MESSAGE_HINT: u8 = 72u8; +pub const PG_DIAG_STATEMENT_POSITION: u8 = 80u8; +pub const PG_DIAG_INTERNAL_POSITION: u8 = 112u8; +pub const PG_DIAG_INTERNAL_QUERY: u8 = 113u8; +pub const PG_DIAG_CONTEXT: u8 = 87u8; +pub const PG_DIAG_SCHEMA_NAME: u8 = 115u8; +pub const PG_DIAG_TABLE_NAME: u8 = 116u8; +pub const PG_DIAG_COLUMN_NAME: u8 = 99u8; +pub const PG_DIAG_DATATYPE_NAME: u8 = 100u8; +pub const PG_DIAG_CONSTRAINT_NAME: u8 = 110u8; +pub const PG_DIAG_SOURCE_FILE: u8 = 70u8; +pub const PG_DIAG_SOURCE_LINE: u8 = 76u8; +pub const PG_DIAG_SOURCE_FUNCTION: u8 = 82u8; +pub const ALIGNOF_DOUBLE: u32 = 8; +pub const ALIGNOF_INT: u32 = 4; +pub const ALIGNOF_LONG: u32 = 8; +pub const ALIGNOF_PG_INT128_TYPE: u32 = 16; +pub const ALIGNOF_SHORT: u32 = 2; +pub const BLCKSZ: u32 = 8192; +pub const CONFIGURE_ARGS : & [u8 ; 111usize] = b" '--prefix=/home/zombodb/.pgrx/16beta1/pgrx-install' '--with-pgport=28816' '--enable-debug' '--enable-cassert'\0" ; +pub const DEF_PGPORT: u32 = 28816; +pub const DEF_PGPORT_STR: &[u8; 6usize] = b"28816\0"; +pub const DLSUFFIX: &[u8; 4usize] = b".so\0"; +pub const ENABLE_THREAD_SAFETY: u32 = 1; +pub const HAVE_APPEND_HISTORY: u32 = 1; +pub const HAVE_ATOMICS: u32 = 1; +pub const HAVE_BACKTRACE_SYMBOLS: u32 = 1; +pub const HAVE_COMPUTED_GOTO: u32 = 1; +pub const HAVE_DECL_FDATASYNC: u32 = 1; +pub const HAVE_DECL_F_FULLFSYNC: u32 = 0; +pub const HAVE_DECL_POSIX_FADVISE: u32 = 1; +pub const HAVE_DECL_PREADV: u32 = 1; +pub const HAVE_DECL_PWRITEV: u32 = 1; +pub const HAVE_DECL_STRLCAT: u32 = 0; +pub const HAVE_DECL_STRLCPY: u32 = 0; +pub const HAVE_DECL_STRNLEN: u32 = 1; +pub const HAVE_EXECINFO_H: u32 = 1; +pub const HAVE_EXPLICIT_BZERO: u32 = 1; +pub const HAVE_FSEEKO: u32 = 1; +pub const HAVE_GCC__ATOMIC_INT32_CAS: u32 = 1; +pub const HAVE_GCC__ATOMIC_INT64_CAS: u32 = 1; +pub const HAVE_GCC__SYNC_CHAR_TAS: u32 = 1; +pub const HAVE_GCC__SYNC_INT32_CAS: u32 = 1; +pub const HAVE_GCC__SYNC_INT32_TAS: u32 = 1; +pub const HAVE_GCC__SYNC_INT64_CAS: u32 = 1; +pub const HAVE_GETIFADDRS: u32 = 1; +pub const HAVE_GETOPT: u32 = 1; +pub const HAVE_GETOPT_H: u32 = 1; +pub const HAVE_GETOPT_LONG: u32 = 1; +pub const HAVE_HISTORY_TRUNCATE_FILE: u32 = 1; +pub const HAVE_IFADDRS_H: u32 = 1; +pub const HAVE_INET_ATON: u32 = 1; +pub const HAVE_INET_PTON: u32 = 1; +pub const HAVE_INTTYPES_H: u32 = 1; +pub const HAVE_INT_OPTERR: u32 = 1; +pub const HAVE_INT_TIMEZONE: u32 = 1; +pub const HAVE_LANGINFO_H: u32 = 1; +pub const HAVE_LIBM: u32 = 1; +pub const HAVE_LIBREADLINE: u32 = 1; +pub const HAVE_LIBZ: u32 = 1; +pub const HAVE_LOCALE_T: u32 = 1; +pub const HAVE_LONG_INT_64: u32 = 1; +pub const HAVE_MEMORY_H: u32 = 1; +pub const HAVE_MKDTEMP: u32 = 1; +pub const HAVE_POSIX_FADVISE: u32 = 1; +pub const HAVE_POSIX_FALLOCATE: u32 = 1; +pub const HAVE_PPOLL: u32 = 1; +pub const HAVE_PTHREAD: u32 = 1; +pub const HAVE_PTHREAD_BARRIER_WAIT: u32 = 1; +pub const HAVE_PTHREAD_PRIO_INHERIT: u32 = 1; +pub const HAVE_READLINE_HISTORY_H: u32 = 1; +pub const HAVE_READLINE_READLINE_H: u32 = 1; +pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; +pub const HAVE_RL_COMPLETION_SUPPRESS_QUOTE: u32 = 1; +pub const HAVE_RL_FILENAME_COMPLETION_FUNCTION: u32 = 1; +pub const HAVE_RL_FILENAME_QUOTE_CHARACTERS: u32 = 1; +pub const HAVE_RL_FILENAME_QUOTING_FUNCTION: u32 = 1; +pub const HAVE_RL_RESET_SCREEN_SIZE: u32 = 1; +pub const HAVE_RL_VARIABLE_BIND: u32 = 1; +pub const HAVE_SOCKLEN_T: u32 = 1; +pub const HAVE_SPINLOCKS: u32 = 1; +pub const HAVE_STDBOOL_H: u32 = 1; +pub const HAVE_STDINT_H: u32 = 1; +pub const HAVE_STDLIB_H: u32 = 1; +pub const HAVE_STRCHRNUL: u32 = 1; +pub const HAVE_STRERROR_R: u32 = 1; +pub const HAVE_STRINGS_H: u32 = 1; +pub const HAVE_STRING_H: u32 = 1; +pub const HAVE_STRNLEN: u32 = 1; +pub const HAVE_STRSIGNAL: u32 = 1; +pub const HAVE_STRUCT_OPTION: u32 = 1; +pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; +pub const HAVE_SYNCFS: u32 = 1; +pub const HAVE_SYNC_FILE_RANGE: u32 = 1; +pub const HAVE_SYSLOG: u32 = 1; +pub const HAVE_SYS_EPOLL_H: u32 = 1; +pub const HAVE_SYS_PERSONALITY_H: u32 = 1; +pub const HAVE_SYS_PRCTL_H: u32 = 1; +pub const HAVE_SYS_SIGNALFD_H: u32 = 1; +pub const HAVE_SYS_STAT_H: u32 = 1; +pub const HAVE_SYS_TYPES_H: u32 = 1; +pub const HAVE_TERMIOS_H: u32 = 1; +pub const HAVE_TYPEOF: u32 = 1; +pub const HAVE_UNISTD_H: u32 = 1; +pub const HAVE_USELOCALE: u32 = 1; +pub const HAVE_VISIBILITY_ATTRIBUTE: u32 = 1; +pub const HAVE_X86_64_POPCNTQ: u32 = 1; +pub const HAVE__BOOL: u32 = 1; +pub const HAVE__BUILTIN_BSWAP16: u32 = 1; +pub const HAVE__BUILTIN_BSWAP32: u32 = 1; +pub const HAVE__BUILTIN_BSWAP64: u32 = 1; +pub const HAVE__BUILTIN_CLZ: u32 = 1; +pub const HAVE__BUILTIN_CONSTANT_P: u32 = 1; +pub const HAVE__BUILTIN_CTZ: u32 = 1; +pub const HAVE__BUILTIN_FRAME_ADDRESS: u32 = 1; +pub const HAVE__BUILTIN_OP_OVERFLOW: u32 = 1; +pub const HAVE__BUILTIN_POPCOUNT: u32 = 1; +pub const HAVE__BUILTIN_TYPES_COMPATIBLE_P: u32 = 1; +pub const HAVE__BUILTIN_UNREACHABLE: u32 = 1; +pub const HAVE__GET_CPUID: u32 = 1; +pub const HAVE__STATIC_ASSERT: u32 = 1; +pub const INT64_MODIFIER: &[u8; 2usize] = b"l\0"; +pub const MAXIMUM_ALIGNOF: u32 = 8; +pub const MEMSET_LOOP_LIMIT: u32 = 1024; +pub const PACKAGE_BUGREPORT: &[u8; 32usize] = b"pgsql-bugs@lists.postgresql.org\0"; +pub const PACKAGE_NAME: &[u8; 11usize] = b"PostgreSQL\0"; +pub const PACKAGE_STRING: &[u8; 19usize] = b"PostgreSQL 16beta1\0"; +pub const PACKAGE_TARNAME: &[u8; 11usize] = b"postgresql\0"; +pub const PACKAGE_URL: &[u8; 28usize] = b"https://www.postgresql.org/\0"; +pub const PACKAGE_VERSION: &[u8; 8usize] = b"16beta1\0"; +pub const PG_KRB_SRVNAM: &[u8; 9usize] = b"postgres\0"; +pub const PG_MAJORVERSION: &[u8; 3usize] = b"16\0"; +pub const PG_MAJORVERSION_NUM: u32 = 16; +pub const PG_MINORVERSION_NUM: u32 = 0; +pub const PG_USE_STDBOOL: u32 = 1; +pub const PG_VERSION: &[u8; 8usize] = b"16beta1\0"; +pub const PG_VERSION_NUM: u32 = 160000; +pub const PG_VERSION_STR : & [u8 ; 107usize] = b"PostgreSQL 16beta1 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, 64-bit\0" ; +pub const RELSEG_SIZE: u32 = 131072; +pub const SIZEOF_BOOL: u32 = 1; +pub const SIZEOF_LONG: u32 = 8; +pub const SIZEOF_OFF_T: u32 = 8; +pub const SIZEOF_SIZE_T: u32 = 8; +pub const SIZEOF_VOID_P: u32 = 8; +pub const STDC_HEADERS: u32 = 1; +pub const USE_ASSERT_CHECKING: u32 = 1; +pub const USE_ICU: u32 = 1; +pub const USE_SSE42_CRC32C_WITH_RUNTIME_CHECK: u32 = 1; +pub const USE_SYSV_SHARED_MEMORY: u32 = 1; +pub const USE_UNNAMED_POSIX_SEMAPHORES: u32 = 1; +pub const XLOG_BLCKSZ: u32 = 8192; +pub const DEFAULT_XLOG_SEG_SIZE: u32 = 16777216; +pub const NAMEDATALEN: u32 = 64; +pub const FUNC_MAX_ARGS: u32 = 100; +pub const FMGR_ABI_EXTRA: &[u8; 11usize] = b"PostgreSQL\0"; +pub const INDEX_MAX_KEYS: u32 = 32; +pub const PARTITION_MAX_KEYS: u32 = 32; +pub const USE_FLOAT8_BYVAL: u32 = 1; +pub const NUM_SPINLOCK_SEMAPHORES: u32 = 128; +pub const NUM_ATOMICS_SEMAPHORES: u32 = 64; +pub const MAXPGPATH: u32 = 1024; +pub const BITS_PER_BYTE: u32 = 8; +pub const ALIGNOF_BUFFER: u32 = 32; +pub const DEFAULT_BACKEND_FLUSH_AFTER: u32 = 0; +pub const DEFAULT_BGWRITER_FLUSH_AFTER: u32 = 64; +pub const DEFAULT_CHECKPOINT_FLUSH_AFTER: u32 = 32; +pub const WRITEBACK_MAX_PENDING_FLUSHES: u32 = 256; +pub const DEFAULT_PGSOCKET_DIR: &[u8; 5usize] = b"/tmp\0"; +pub const DEFAULT_EVENT_SOURCE: &[u8; 11usize] = b"PostgreSQL\0"; +pub const PG_CACHE_LINE_SIZE: u32 = 128; +pub const PG_IO_ALIGN_SIZE: u32 = 4096; +pub const TRACE_SORT: u32 = 1; +pub const _STDIO_H: u32 = 1; +pub const _FEATURES_H: u32 = 1; +pub const _DEFAULT_SOURCE: u32 = 1; +pub const __GLIBC_USE_ISOC2X: u32 = 0; +pub const __USE_ISOC11: u32 = 1; +pub const __USE_ISOC99: u32 = 1; +pub const __USE_ISOC95: u32 = 1; +pub const __USE_POSIX_IMPLICITLY: u32 = 1; +pub const _POSIX_SOURCE: u32 = 1; +pub const _POSIX_C_SOURCE: u32 = 200809; +pub const __USE_POSIX: u32 = 1; +pub const __USE_POSIX2: u32 = 1; +pub const __USE_POSIX199309: u32 = 1; +pub const __USE_POSIX199506: u32 = 1; +pub const __USE_XOPEN2K: u32 = 1; +pub const __USE_XOPEN2K8: u32 = 1; +pub const _ATFILE_SOURCE: u32 = 1; +pub const __WORDSIZE: u32 = 64; +pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; +pub const __SYSCALL_WORDSIZE: u32 = 64; +pub const __TIMESIZE: u32 = 64; +pub const __USE_MISC: u32 = 1; +pub const __USE_ATFILE: u32 = 1; +pub const __USE_FORTIFY_LEVEL: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; +pub const _STDC_PREDEF_H: u32 = 1; +pub const __STDC_IEC_559__: u32 = 1; +pub const __STDC_IEC_60559_BFP__: u32 = 201404; +pub const __STDC_IEC_559_COMPLEX__: u32 = 1; +pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; +pub const __STDC_ISO_10646__: u32 = 201706; +pub const __GNU_LIBRARY__: u32 = 6; +pub const __GLIBC__: u32 = 2; +pub const __GLIBC_MINOR__: u32 = 35; +pub const _SYS_CDEFS_H: u32 = 1; +pub const __glibc_c99_flexarr_available: u32 = 1; +pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; +pub const __HAVE_GENERIC_SELECTION: u32 = 1; +pub const __GLIBC_USE_LIB_EXT2: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; +pub const __GNUC_VA_LIST: u32 = 1; +pub const _BITS_TYPES_H: u32 = 1; +pub const _BITS_TYPESIZES_H: u32 = 1; +pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; +pub const __INO_T_MATCHES_INO64_T: u32 = 1; +pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; +pub const __STATFS_MATCHES_STATFS64: u32 = 1; +pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; +pub const __FD_SETSIZE: u32 = 1024; +pub const _BITS_TIME64_H: u32 = 1; +pub const _____fpos_t_defined: u32 = 1; +pub const ____mbstate_t_defined: u32 = 1; +pub const _____fpos64_t_defined: u32 = 1; +pub const ____FILE_defined: u32 = 1; +pub const __FILE_defined: u32 = 1; +pub const __struct_FILE_defined: u32 = 1; +pub const _IO_EOF_SEEN: u32 = 16; +pub const _IO_ERR_SEEN: u32 = 32; +pub const _IO_USER_LOCK: u32 = 32768; +pub const _IOFBF: u32 = 0; +pub const _IOLBF: u32 = 1; +pub const _IONBF: u32 = 2; +pub const BUFSIZ: u32 = 8192; +pub const EOF: i32 = -1; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const P_tmpdir: &[u8; 5usize] = b"/tmp\0"; +pub const _BITS_STDIO_LIM_H: u32 = 1; +pub const L_tmpnam: u32 = 20; +pub const TMP_MAX: u32 = 238328; +pub const FILENAME_MAX: u32 = 4096; +pub const L_ctermid: u32 = 9; +pub const FOPEN_MAX: u32 = 16; +pub const __HAVE_FLOAT128: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; +pub const __HAVE_FLOAT64X: u32 = 1; +pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; +pub const __HAVE_FLOAT16: u32 = 0; +pub const __HAVE_FLOAT32: u32 = 1; +pub const __HAVE_FLOAT64: u32 = 1; +pub const __HAVE_FLOAT32X: u32 = 1; +pub const __HAVE_FLOAT128X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; +pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; +pub const _STDLIB_H: u32 = 1; +pub const WNOHANG: u32 = 1; +pub const WUNTRACED: u32 = 2; +pub const WSTOPPED: u32 = 2; +pub const WEXITED: u32 = 4; +pub const WCONTINUED: u32 = 8; +pub const WNOWAIT: u32 = 16777216; +pub const __WNOTHREAD: u32 = 536870912; +pub const __WALL: u32 = 1073741824; +pub const __WCLONE: u32 = 2147483648; +pub const __W_CONTINUED: u32 = 65535; +pub const __WCOREFLAG: u32 = 128; +pub const __ldiv_t_defined: u32 = 1; +pub const __lldiv_t_defined: u32 = 1; +pub const RAND_MAX: u32 = 2147483647; +pub const EXIT_FAILURE: u32 = 1; +pub const EXIT_SUCCESS: u32 = 0; +pub const _SYS_TYPES_H: u32 = 1; +pub const __clock_t_defined: u32 = 1; +pub const __clockid_t_defined: u32 = 1; +pub const __time_t_defined: u32 = 1; +pub const __timer_t_defined: u32 = 1; +pub const _BITS_STDINT_INTN_H: u32 = 1; +pub const __BIT_TYPES_DEFINED__: u32 = 1; +pub const _ENDIAN_H: u32 = 1; +pub const _BITS_ENDIAN_H: u32 = 1; +pub const __LITTLE_ENDIAN: u32 = 1234; +pub const __BIG_ENDIAN: u32 = 4321; +pub const __PDP_ENDIAN: u32 = 3412; +pub const _BITS_ENDIANNESS_H: u32 = 1; +pub const __BYTE_ORDER: u32 = 1234; +pub const __FLOAT_WORD_ORDER: u32 = 1234; +pub const LITTLE_ENDIAN: u32 = 1234; +pub const BIG_ENDIAN: u32 = 4321; +pub const PDP_ENDIAN: u32 = 3412; +pub const BYTE_ORDER: u32 = 1234; +pub const _BITS_BYTESWAP_H: u32 = 1; +pub const _BITS_UINTN_IDENTITY_H: u32 = 1; +pub const _SYS_SELECT_H: u32 = 1; +pub const __sigset_t_defined: u32 = 1; +pub const __timeval_defined: u32 = 1; +pub const _STRUCT_TIMESPEC: u32 = 1; +pub const FD_SETSIZE: u32 = 1024; +pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; +pub const _THREAD_SHARED_TYPES_H: u32 = 1; +pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; +pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; +pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; +pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; +pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; +pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; +pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; +pub const __have_pthread_attr_t: u32 = 1; +pub const _ALLOCA_H: u32 = 1; +pub const _STRING_H: u32 = 1; +pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; +pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; +pub const _STRINGS_H: u32 = 1; +pub const _STDINT_H: u32 = 1; +pub const _BITS_WCHAR_H: u32 = 1; +pub const _BITS_STDINT_UINTN_H: u32 = 1; +pub const INT8_MIN: i32 = -128; +pub const INT16_MIN: i32 = -32768; +pub const INT32_MIN: i32 = -2147483648; +pub const INT8_MAX: u32 = 127; +pub const INT16_MAX: u32 = 32767; +pub const INT32_MAX: u32 = 2147483647; +pub const UINT8_MAX: u32 = 255; +pub const UINT16_MAX: u32 = 65535; +pub const UINT32_MAX: u32 = 4294967295; +pub const INT_LEAST8_MIN: i32 = -128; +pub const INT_LEAST16_MIN: i32 = -32768; +pub const INT_LEAST32_MIN: i32 = -2147483648; +pub const INT_LEAST8_MAX: u32 = 127; +pub const INT_LEAST16_MAX: u32 = 32767; +pub const INT_LEAST32_MAX: u32 = 2147483647; +pub const UINT_LEAST8_MAX: u32 = 255; +pub const UINT_LEAST16_MAX: u32 = 65535; +pub const UINT_LEAST32_MAX: u32 = 4294967295; +pub const INT_FAST8_MIN: i32 = -128; +pub const INT_FAST16_MIN: i64 = -9223372036854775808; +pub const INT_FAST32_MIN: i64 = -9223372036854775808; +pub const INT_FAST8_MAX: u32 = 127; +pub const INT_FAST16_MAX: u64 = 9223372036854775807; +pub const INT_FAST32_MAX: u64 = 9223372036854775807; +pub const UINT_FAST8_MAX: u32 = 255; +pub const UINT_FAST16_MAX: i32 = -1; +pub const UINT_FAST32_MAX: i32 = -1; +pub const INTPTR_MIN: i64 = -9223372036854775808; +pub const INTPTR_MAX: u64 = 9223372036854775807; +pub const UINTPTR_MAX: i32 = -1; +pub const PTRDIFF_MIN: i64 = -9223372036854775808; +pub const PTRDIFF_MAX: u64 = 9223372036854775807; +pub const SIG_ATOMIC_MIN: i32 = -2147483648; +pub const SIG_ATOMIC_MAX: u32 = 2147483647; +pub const SIZE_MAX: i32 = -1; +pub const WINT_MIN: u32 = 0; +pub const WINT_MAX: u32 = 4294967295; +pub const _ERRNO_H: u32 = 1; +pub const _BITS_ERRNO_H: u32 = 1; +pub const EPERM: u32 = 1; +pub const ENOENT: u32 = 2; +pub const ESRCH: u32 = 3; +pub const EINTR: u32 = 4; +pub const EIO: u32 = 5; +pub const ENXIO: u32 = 6; +pub const E2BIG: u32 = 7; +pub const ENOEXEC: u32 = 8; +pub const EBADF: u32 = 9; +pub const ECHILD: u32 = 10; +pub const EAGAIN: u32 = 11; +pub const ENOMEM: u32 = 12; +pub const EACCES: u32 = 13; +pub const EFAULT: u32 = 14; +pub const ENOTBLK: u32 = 15; +pub const EBUSY: u32 = 16; +pub const EEXIST: u32 = 17; +pub const EXDEV: u32 = 18; +pub const ENODEV: u32 = 19; +pub const ENOTDIR: u32 = 20; +pub const EISDIR: u32 = 21; +pub const EINVAL: u32 = 22; +pub const ENFILE: u32 = 23; +pub const EMFILE: u32 = 24; +pub const ENOTTY: u32 = 25; +pub const ETXTBSY: u32 = 26; +pub const EFBIG: u32 = 27; +pub const ENOSPC: u32 = 28; +pub const ESPIPE: u32 = 29; +pub const EROFS: u32 = 30; +pub const EMLINK: u32 = 31; +pub const EPIPE: u32 = 32; +pub const EDOM: u32 = 33; +pub const ERANGE: u32 = 34; +pub const EDEADLK: u32 = 35; +pub const ENAMETOOLONG: u32 = 36; +pub const ENOLCK: u32 = 37; +pub const ENOSYS: u32 = 38; +pub const ENOTEMPTY: u32 = 39; +pub const ELOOP: u32 = 40; +pub const EWOULDBLOCK: u32 = 11; +pub const ENOMSG: u32 = 42; +pub const EIDRM: u32 = 43; +pub const ECHRNG: u32 = 44; +pub const EL2NSYNC: u32 = 45; +pub const EL3HLT: u32 = 46; +pub const EL3RST: u32 = 47; +pub const ELNRNG: u32 = 48; +pub const EUNATCH: u32 = 49; +pub const ENOCSI: u32 = 50; +pub const EL2HLT: u32 = 51; +pub const EBADE: u32 = 52; +pub const EBADR: u32 = 53; +pub const EXFULL: u32 = 54; +pub const ENOANO: u32 = 55; +pub const EBADRQC: u32 = 56; +pub const EBADSLT: u32 = 57; +pub const EDEADLOCK: u32 = 35; +pub const EBFONT: u32 = 59; +pub const ENOSTR: u32 = 60; +pub const ENODATA: u32 = 61; +pub const ETIME: u32 = 62; +pub const ENOSR: u32 = 63; +pub const ENONET: u32 = 64; +pub const ENOPKG: u32 = 65; +pub const EREMOTE: u32 = 66; +pub const ENOLINK: u32 = 67; +pub const EADV: u32 = 68; +pub const ESRMNT: u32 = 69; +pub const ECOMM: u32 = 70; +pub const EPROTO: u32 = 71; +pub const EMULTIHOP: u32 = 72; +pub const EDOTDOT: u32 = 73; +pub const EBADMSG: u32 = 74; +pub const EOVERFLOW: u32 = 75; +pub const ENOTUNIQ: u32 = 76; +pub const EBADFD: u32 = 77; +pub const EREMCHG: u32 = 78; +pub const ELIBACC: u32 = 79; +pub const ELIBBAD: u32 = 80; +pub const ELIBSCN: u32 = 81; +pub const ELIBMAX: u32 = 82; +pub const ELIBEXEC: u32 = 83; +pub const EILSEQ: u32 = 84; +pub const ERESTART: u32 = 85; +pub const ESTRPIPE: u32 = 86; +pub const EUSERS: u32 = 87; +pub const ENOTSOCK: u32 = 88; +pub const EDESTADDRREQ: u32 = 89; +pub const EMSGSIZE: u32 = 90; +pub const EPROTOTYPE: u32 = 91; +pub const ENOPROTOOPT: u32 = 92; +pub const EPROTONOSUPPORT: u32 = 93; +pub const ESOCKTNOSUPPORT: u32 = 94; +pub const EOPNOTSUPP: u32 = 95; +pub const EPFNOSUPPORT: u32 = 96; +pub const EAFNOSUPPORT: u32 = 97; +pub const EADDRINUSE: u32 = 98; +pub const EADDRNOTAVAIL: u32 = 99; +pub const ENETDOWN: u32 = 100; +pub const ENETUNREACH: u32 = 101; +pub const ENETRESET: u32 = 102; +pub const ECONNABORTED: u32 = 103; +pub const ECONNRESET: u32 = 104; +pub const ENOBUFS: u32 = 105; +pub const EISCONN: u32 = 106; +pub const ENOTCONN: u32 = 107; +pub const ESHUTDOWN: u32 = 108; +pub const ETOOMANYREFS: u32 = 109; +pub const ETIMEDOUT: u32 = 110; +pub const ECONNREFUSED: u32 = 111; +pub const EHOSTDOWN: u32 = 112; +pub const EHOSTUNREACH: u32 = 113; +pub const EALREADY: u32 = 114; +pub const EINPROGRESS: u32 = 115; +pub const ESTALE: u32 = 116; +pub const EUCLEAN: u32 = 117; +pub const ENOTNAM: u32 = 118; +pub const ENAVAIL: u32 = 119; +pub const EISNAM: u32 = 120; +pub const EREMOTEIO: u32 = 121; +pub const EDQUOT: u32 = 122; +pub const ENOMEDIUM: u32 = 123; +pub const EMEDIUMTYPE: u32 = 124; +pub const ECANCELED: u32 = 125; +pub const ENOKEY: u32 = 126; +pub const EKEYEXPIRED: u32 = 127; +pub const EKEYREVOKED: u32 = 128; +pub const EKEYREJECTED: u32 = 129; +pub const EOWNERDEAD: u32 = 130; +pub const ENOTRECOVERABLE: u32 = 131; +pub const ERFKILL: u32 = 132; +pub const EHWPOISON: u32 = 133; +pub const ENOTSUP: u32 = 95; +pub const _LOCALE_H: u32 = 1; +pub const _BITS_LOCALE_H: u32 = 1; +pub const __LC_CTYPE: u32 = 0; +pub const __LC_NUMERIC: u32 = 1; +pub const __LC_TIME: u32 = 2; +pub const __LC_COLLATE: u32 = 3; +pub const __LC_MONETARY: u32 = 4; +pub const __LC_MESSAGES: u32 = 5; +pub const __LC_ALL: u32 = 6; +pub const __LC_PAPER: u32 = 7; +pub const __LC_NAME: u32 = 8; +pub const __LC_ADDRESS: u32 = 9; +pub const __LC_TELEPHONE: u32 = 10; +pub const __LC_MEASUREMENT: u32 = 11; +pub const __LC_IDENTIFICATION: u32 = 12; +pub const LC_CTYPE: u32 = 0; +pub const LC_NUMERIC: u32 = 1; +pub const LC_TIME: u32 = 2; +pub const LC_COLLATE: u32 = 3; +pub const LC_MONETARY: u32 = 4; +pub const LC_MESSAGES: u32 = 5; +pub const LC_ALL: u32 = 6; +pub const LC_PAPER: u32 = 7; +pub const LC_NAME: u32 = 8; +pub const LC_ADDRESS: u32 = 9; +pub const LC_TELEPHONE: u32 = 10; +pub const LC_MEASUREMENT: u32 = 11; +pub const LC_IDENTIFICATION: u32 = 12; +pub const LC_CTYPE_MASK: u32 = 1; +pub const LC_NUMERIC_MASK: u32 = 2; +pub const LC_TIME_MASK: u32 = 4; +pub const LC_COLLATE_MASK: u32 = 8; +pub const LC_MONETARY_MASK: u32 = 16; +pub const LC_MESSAGES_MASK: u32 = 32; +pub const LC_PAPER_MASK: u32 = 128; +pub const LC_NAME_MASK: u32 = 256; +pub const LC_ADDRESS_MASK: u32 = 512; +pub const LC_TELEPHONE_MASK: u32 = 1024; +pub const LC_MEASUREMENT_MASK: u32 = 2048; +pub const LC_IDENTIFICATION_MASK: u32 = 4096; +pub const LC_ALL_MASK: u32 = 8127; +pub const HAVE_PG_ATTRIBUTE_NORETURN: u32 = 1; +pub const HAVE_PRAGMA_GCC_SYSTEM_HEADER: u32 = 1; +pub const true_: u32 = 1; +pub const false_: u32 = 0; +pub const __bool_true_false_are_defined: u32 = 1; +pub const INT64_FORMAT: &[u8; 4usize] = b"%ld\0"; +pub const UINT64_FORMAT: &[u8; 4usize] = b"%lu\0"; +pub const HAVE_INT128: u32 = 1; +pub const PG_INT8_MIN: i32 = -128; +pub const PG_INT8_MAX: u32 = 127; +pub const PG_UINT8_MAX: u32 = 255; +pub const PG_INT16_MIN: i32 = -32768; +pub const PG_INT16_MAX: u32 = 32767; +pub const PG_UINT16_MAX: u32 = 65535; +pub const PG_INT32_MIN: i32 = -2147483648; +pub const PG_INT32_MAX: u32 = 2147483647; +pub const PG_UINT32_MAX: u32 = 4294967295; +pub const FLOAT8PASSBYVAL: u32 = 1; +pub const HIGHBIT: u32 = 128; +pub const ESCAPE_STRING_SYNTAX: u8 = 69u8; +pub const STATUS_OK: u32 = 0; +pub const STATUS_ERROR: i32 = -1; +pub const STATUS_EOF: i32 = -2; +pub const PG_BINARY: u32 = 0; +pub const PG_BINARY_A: &[u8; 2usize] = b"a\0"; +pub const PG_BINARY_R: &[u8; 2usize] = b"r\0"; +pub const PG_BINARY_W: &[u8; 2usize] = b"w\0"; +pub const _CTYPE_H: u32 = 1; +pub const PGINVALID_SOCKET: i32 = -1; +pub const PG_BACKEND_VERSIONSTR: &[u8; 31usize] = b"postgres (PostgreSQL) 16beta1\n\0"; +pub const EXE: &[u8; 1usize] = b"\0"; +pub const DEVNULL: &[u8; 10usize] = b"/dev/null\0"; +pub const USE_REPL_SNPRINTF: u32 = 1; +pub const PG_STRERROR_R_BUFLEN: u32 = 256; +pub const PG_IOLBF: u32 = 1; +pub const _MATH_H: u32 = 1; +pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; +pub const __FP_LOGB0_IS_MIN: u32 = 1; +pub const __FP_LOGBNAN_IS_MIN: u32 = 1; +pub const FP_ILOGB0: i32 = -2147483648; +pub const FP_ILOGBNAN: i32 = -2147483648; +pub const __MATH_DECLARING_DOUBLE: u32 = 1; +pub const __MATH_DECLARING_FLOATN: u32 = 0; +pub const __MATH_DECLARE_LDOUBLE: u32 = 1; +pub const MATH_ERRNO: u32 = 1; +pub const MATH_ERREXCEPT: u32 = 2; +pub const math_errhandling: u32 = 3; +pub const M_E: f64 = 2.718281828459045; +pub const M_LOG2E: f64 = 1.4426950408889634; +pub const M_LOG10E: f64 = 0.4342944819032518; +pub const M_LN2: f64 = 0.6931471805599453; +pub const M_LN10: f64 = 2.302585092994046; +pub const M_PI: f64 = 3.141592653589793; +pub const M_PI_2: f64 = 1.5707963267948966; +pub const M_PI_4: f64 = 0.7853981633974483; +pub const M_1_PI: f64 = 0.3183098861837907; +pub const M_2_PI: f64 = 0.6366197723675814; +pub const M_2_SQRTPI: f64 = 1.1283791670955126; +pub const M_SQRT2: f64 = 1.4142135623730951; +pub const M_SQRT1_2: f64 = 0.7071067811865476; +pub const HAVE_GETRLIMIT: u32 = 1; +pub const HAVE_POLL: u32 = 1; +pub const HAVE_POLL_H: u32 = 1; +pub const HAVE_READLINK: u32 = 1; +pub const HAVE_SETSID: u32 = 1; +pub const HAVE_SHM_OPEN: u32 = 1; +pub const HAVE_SYMLINK: u32 = 1; +pub const _SETJMP_H: u32 = 1; +pub const _BITS_SETJMP_H: u32 = 1; +pub const __jmp_buf_tag_defined: u32 = 1; +pub const DEBUG5: u32 = 10; +pub const DEBUG4: u32 = 11; +pub const DEBUG3: u32 = 12; +pub const DEBUG2: u32 = 13; +pub const DEBUG1: u32 = 14; +pub const LOG: u32 = 15; +pub const LOG_SERVER_ONLY: u32 = 16; +pub const COMMERROR: u32 = 16; +pub const INFO: u32 = 17; +pub const NOTICE: u32 = 18; +pub const WARNING: u32 = 19; +pub const PGWARNING: u32 = 19; +pub const WARNING_CLIENT_ONLY: u32 = 20; +pub const ERROR: u32 = 21; +pub const PGERROR: u32 = 21; +pub const FATAL: u32 = 22; +pub const PANIC: u32 = 23; +pub const LOG_DESTINATION_STDERR: u32 = 1; +pub const LOG_DESTINATION_SYSLOG: u32 = 2; +pub const LOG_DESTINATION_EVENTLOG: u32 = 4; +pub const LOG_DESTINATION_CSVLOG: u32 = 8; +pub const LOG_DESTINATION_JSONLOG: u32 = 16; +pub const MCXT_ALLOC_HUGE: u32 = 1; +pub const MCXT_ALLOC_NO_OOM: u32 = 2; +pub const MCXT_ALLOC_ZERO: u32 = 4; +pub const FIELDNO_NULLABLE_DATUM_DATUM: u32 = 0; +pub const FIELDNO_NULLABLE_DATUM_ISNULL: u32 = 1; +pub const SIZEOF_DATUM: u32 = 8; +pub const InvalidAttrNumber: u32 = 0; +pub const MaxAttrNumber: u32 = 32767; +pub const AttributeRelationId: Oid = Oid(1249); +pub const AttributeRelation_Rowtype_Id: u32 = 75; +pub const AttributeRelidNameIndexId: u32 = 2658; +pub const AttributeRelidNumIndexId: u32 = 2659; +pub const Anum_pg_attribute_attrelid: u32 = 1; +pub const Anum_pg_attribute_attname: u32 = 2; +pub const Anum_pg_attribute_atttypid: u32 = 3; +pub const Anum_pg_attribute_attlen: u32 = 4; +pub const Anum_pg_attribute_attnum: u32 = 5; +pub const Anum_pg_attribute_attcacheoff: u32 = 6; +pub const Anum_pg_attribute_atttypmod: u32 = 7; +pub const Anum_pg_attribute_attndims: u32 = 8; +pub const Anum_pg_attribute_attbyval: u32 = 9; +pub const Anum_pg_attribute_attalign: u32 = 10; +pub const Anum_pg_attribute_attstorage: u32 = 11; +pub const Anum_pg_attribute_attcompression: u32 = 12; +pub const Anum_pg_attribute_attnotnull: u32 = 13; +pub const Anum_pg_attribute_atthasdef: u32 = 14; +pub const Anum_pg_attribute_atthasmissing: u32 = 15; +pub const Anum_pg_attribute_attidentity: u32 = 16; +pub const Anum_pg_attribute_attgenerated: u32 = 17; +pub const Anum_pg_attribute_attisdropped: u32 = 18; +pub const Anum_pg_attribute_attislocal: u32 = 19; +pub const Anum_pg_attribute_attinhcount: u32 = 20; +pub const Anum_pg_attribute_attstattarget: u32 = 21; +pub const Anum_pg_attribute_attcollation: u32 = 22; +pub const Anum_pg_attribute_attacl: u32 = 23; +pub const Anum_pg_attribute_attoptions: u32 = 24; +pub const Anum_pg_attribute_attfdwoptions: u32 = 25; +pub const Anum_pg_attribute_attmissingval: u32 = 26; +pub const Natts_pg_attribute: u32 = 26; +pub const ATTRIBUTE_IDENTITY_ALWAYS: u8 = 97u8; +pub const ATTRIBUTE_IDENTITY_BY_DEFAULT: u8 = 100u8; +pub const ATTRIBUTE_GENERATED_STORED: u8 = 115u8; +pub const AGGSPLITOP_COMBINE: u32 = 1; +pub const AGGSPLITOP_SKIPFINAL: u32 = 2; +pub const AGGSPLITOP_SERIALIZE: u32 = 4; +pub const AGGSPLITOP_DESERIALIZE: u32 = 8; +pub const LP_UNUSED: u32 = 0; +pub const LP_NORMAL: u32 = 1; +pub const LP_REDIRECT: u32 = 2; +pub const LP_DEAD: u32 = 3; +pub const SpecTokenOffsetNumber: u32 = 65534; +pub const MovedPartitionsOffsetNumber: u32 = 65533; +pub const FIELDNO_HEAPTUPLEDATA_DATA: u32 = 3; +pub const _FCNTL_H: u32 = 1; +pub const __O_LARGEFILE: u32 = 0; +pub const F_GETLK64: u32 = 5; +pub const F_SETLK64: u32 = 6; +pub const F_SETLKW64: u32 = 7; +pub const O_ACCMODE: u32 = 3; +pub const O_RDONLY: u32 = 0; +pub const O_WRONLY: u32 = 1; +pub const O_RDWR: u32 = 2; +pub const O_CREAT: u32 = 64; +pub const O_EXCL: u32 = 128; +pub const O_NOCTTY: u32 = 256; +pub const O_TRUNC: u32 = 512; +pub const O_APPEND: u32 = 1024; +pub const O_NONBLOCK: u32 = 2048; +pub const O_NDELAY: u32 = 2048; +pub const O_SYNC: u32 = 1052672; +pub const O_FSYNC: u32 = 1052672; +pub const O_ASYNC: u32 = 8192; +pub const __O_DIRECTORY: u32 = 65536; +pub const __O_NOFOLLOW: u32 = 131072; +pub const __O_CLOEXEC: u32 = 524288; +pub const __O_DIRECT: u32 = 16384; +pub const __O_NOATIME: u32 = 262144; +pub const __O_PATH: u32 = 2097152; +pub const __O_DSYNC: u32 = 4096; +pub const __O_TMPFILE: u32 = 4259840; +pub const F_GETLK: u32 = 5; +pub const F_SETLK: u32 = 6; +pub const F_SETLKW: u32 = 7; +pub const O_DIRECTORY: u32 = 65536; +pub const O_NOFOLLOW: u32 = 131072; +pub const O_CLOEXEC: u32 = 524288; +pub const O_DSYNC: u32 = 4096; +pub const O_RSYNC: u32 = 1052672; +pub const F_DUPFD: u32 = 0; +pub const F_GETFD: u32 = 1; +pub const F_SETFD: u32 = 2; +pub const F_GETFL: u32 = 3; +pub const F_SETFL: u32 = 4; +pub const __F_SETOWN: u32 = 8; +pub const __F_GETOWN: u32 = 9; +pub const F_SETOWN: u32 = 8; +pub const F_GETOWN: u32 = 9; +pub const __F_SETSIG: u32 = 10; +pub const __F_GETSIG: u32 = 11; +pub const __F_SETOWN_EX: u32 = 15; +pub const __F_GETOWN_EX: u32 = 16; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const FD_CLOEXEC: u32 = 1; +pub const F_RDLCK: u32 = 0; +pub const F_WRLCK: u32 = 1; +pub const F_UNLCK: u32 = 2; +pub const F_EXLCK: u32 = 4; +pub const F_SHLCK: u32 = 8; +pub const LOCK_SH: u32 = 1; +pub const LOCK_EX: u32 = 2; +pub const LOCK_NB: u32 = 4; +pub const LOCK_UN: u32 = 8; +pub const FAPPEND: u32 = 1024; +pub const FFSYNC: u32 = 1052672; +pub const FASYNC: u32 = 8192; +pub const FNONBLOCK: u32 = 2048; +pub const FNDELAY: u32 = 2048; +pub const __POSIX_FADV_DONTNEED: u32 = 4; +pub const __POSIX_FADV_NOREUSE: u32 = 5; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_EACCESS: u32 = 512; +pub const _BITS_STAT_H: u32 = 1; +pub const _BITS_STRUCT_STAT_H: u32 = 1; +pub const __S_IFMT: u32 = 61440; +pub const __S_IFDIR: u32 = 16384; +pub const __S_IFCHR: u32 = 8192; +pub const __S_IFBLK: u32 = 24576; +pub const __S_IFREG: u32 = 32768; +pub const __S_IFIFO: u32 = 4096; +pub const __S_IFLNK: u32 = 40960; +pub const __S_IFSOCK: u32 = 49152; +pub const __S_ISUID: u32 = 2048; +pub const __S_ISGID: u32 = 1024; +pub const __S_ISVTX: u32 = 512; +pub const __S_IREAD: u32 = 256; +pub const __S_IWRITE: u32 = 128; +pub const __S_IEXEC: u32 = 64; +pub const UTIME_NOW: u32 = 1073741823; +pub const UTIME_OMIT: u32 = 1073741822; +pub const S_IFMT: u32 = 61440; +pub const S_IFDIR: u32 = 16384; +pub const S_IFCHR: u32 = 8192; +pub const S_IFBLK: u32 = 24576; +pub const S_IFREG: u32 = 32768; +pub const S_IFIFO: u32 = 4096; +pub const S_IFLNK: u32 = 40960; +pub const S_IFSOCK: u32 = 49152; +pub const S_ISUID: u32 = 2048; +pub const S_ISGID: u32 = 1024; +pub const S_ISVTX: u32 = 512; +pub const S_IRUSR: u32 = 256; +pub const S_IWUSR: u32 = 128; +pub const S_IXUSR: u32 = 64; +pub const S_IRWXU: u32 = 448; +pub const S_IRGRP: u32 = 32; +pub const S_IWGRP: u32 = 16; +pub const S_IXGRP: u32 = 8; +pub const S_IRWXG: u32 = 56; +pub const S_IROTH: u32 = 4; +pub const S_IWOTH: u32 = 2; +pub const S_IXOTH: u32 = 1; +pub const S_IRWXO: u32 = 7; +pub const R_OK: u32 = 4; +pub const W_OK: u32 = 2; +pub const X_OK: u32 = 1; +pub const F_OK: u32 = 0; +pub const F_ULOCK: u32 = 0; +pub const F_LOCK: u32 = 1; +pub const F_TLOCK: u32 = 2; +pub const F_TEST: u32 = 3; +pub const InvalidXLogRecPtr: u32 = 0; +pub const FirstGenbkiObjectId: u32 = 10000; +pub const FirstUnpinnedObjectId: u32 = 12000; +pub const FirstNormalObjectId: u32 = 16384; +pub const TypeRelationId: Oid = Oid(1247); +pub const TypeRelation_Rowtype_Id: u32 = 71; +pub const TypeOidIndexId: u32 = 2703; +pub const TypeNameNspIndexId: u32 = 2704; +pub const Anum_pg_type_oid: u32 = 1; +pub const Anum_pg_type_typname: u32 = 2; +pub const Anum_pg_type_typnamespace: u32 = 3; +pub const Anum_pg_type_typowner: u32 = 4; +pub const Anum_pg_type_typlen: u32 = 5; +pub const Anum_pg_type_typbyval: u32 = 6; +pub const Anum_pg_type_typtype: u32 = 7; +pub const Anum_pg_type_typcategory: u32 = 8; +pub const Anum_pg_type_typispreferred: u32 = 9; +pub const Anum_pg_type_typisdefined: u32 = 10; +pub const Anum_pg_type_typdelim: u32 = 11; +pub const Anum_pg_type_typrelid: u32 = 12; +pub const Anum_pg_type_typsubscript: u32 = 13; +pub const Anum_pg_type_typelem: u32 = 14; +pub const Anum_pg_type_typarray: u32 = 15; +pub const Anum_pg_type_typinput: u32 = 16; +pub const Anum_pg_type_typoutput: u32 = 17; +pub const Anum_pg_type_typreceive: u32 = 18; +pub const Anum_pg_type_typsend: u32 = 19; +pub const Anum_pg_type_typmodin: u32 = 20; +pub const Anum_pg_type_typmodout: u32 = 21; +pub const Anum_pg_type_typanalyze: u32 = 22; +pub const Anum_pg_type_typalign: u32 = 23; +pub const Anum_pg_type_typstorage: u32 = 24; +pub const Anum_pg_type_typnotnull: u32 = 25; +pub const Anum_pg_type_typbasetype: u32 = 26; +pub const Anum_pg_type_typtypmod: u32 = 27; +pub const Anum_pg_type_typndims: u32 = 28; +pub const Anum_pg_type_typcollation: u32 = 29; +pub const Anum_pg_type_typdefaultbin: u32 = 30; +pub const Anum_pg_type_typdefault: u32 = 31; +pub const Anum_pg_type_typacl: u32 = 32; +pub const Natts_pg_type: u32 = 32; +pub const TYPTYPE_BASE: u8 = 98u8; +pub const TYPTYPE_COMPOSITE: u8 = 99u8; +pub const TYPTYPE_DOMAIN: u8 = 100u8; +pub const TYPTYPE_ENUM: u8 = 101u8; +pub const TYPTYPE_MULTIRANGE: u8 = 109u8; +pub const TYPTYPE_PSEUDO: u8 = 112u8; +pub const TYPTYPE_RANGE: u8 = 114u8; +pub const TYPCATEGORY_INVALID: u8 = 0u8; +pub const TYPCATEGORY_ARRAY: u8 = 65u8; +pub const TYPCATEGORY_BOOLEAN: u8 = 66u8; +pub const TYPCATEGORY_COMPOSITE: u8 = 67u8; +pub const TYPCATEGORY_DATETIME: u8 = 68u8; +pub const TYPCATEGORY_ENUM: u8 = 69u8; +pub const TYPCATEGORY_GEOMETRIC: u8 = 71u8; +pub const TYPCATEGORY_NETWORK: u8 = 73u8; +pub const TYPCATEGORY_NUMERIC: u8 = 78u8; +pub const TYPCATEGORY_PSEUDOTYPE: u8 = 80u8; +pub const TYPCATEGORY_RANGE: u8 = 82u8; +pub const TYPCATEGORY_STRING: u8 = 83u8; +pub const TYPCATEGORY_TIMESPAN: u8 = 84u8; +pub const TYPCATEGORY_USER: u8 = 85u8; +pub const TYPCATEGORY_BITSTRING: u8 = 86u8; +pub const TYPCATEGORY_UNKNOWN: u8 = 88u8; +pub const TYPCATEGORY_INTERNAL: u8 = 90u8; +pub const TYPALIGN_CHAR: u8 = 99u8; +pub const TYPALIGN_SHORT: u8 = 115u8; +pub const TYPALIGN_INT: u8 = 105u8; +pub const TYPALIGN_DOUBLE: u8 = 100u8; +pub const TYPSTORAGE_PLAIN: u8 = 112u8; +pub const TYPSTORAGE_EXTERNAL: u8 = 101u8; +pub const TYPSTORAGE_EXTENDED: u8 = 120u8; +pub const TYPSTORAGE_MAIN: u8 = 109u8; +pub const BOOLOID: Oid = Oid(16); +pub const BYTEAOID: Oid = Oid(17); +pub const CHAROID: Oid = Oid(18); +pub const NAMEOID: Oid = Oid(19); +pub const INT8OID: Oid = Oid(20); +pub const INT2OID: Oid = Oid(21); +pub const INT2VECTOROID: Oid = Oid(22); +pub const INT4OID: Oid = Oid(23); +pub const REGPROCOID: Oid = Oid(24); +pub const TEXTOID: Oid = Oid(25); +pub const OIDOID: Oid = Oid(26); +pub const TIDOID: Oid = Oid(27); +pub const XIDOID: Oid = Oid(28); +pub const CIDOID: Oid = Oid(29); +pub const OIDVECTOROID: Oid = Oid(30); +pub const JSONOID: Oid = Oid(114); +pub const XMLOID: Oid = Oid(142); +pub const PG_NODE_TREEOID: Oid = Oid(194); +pub const PG_NDISTINCTOID: Oid = Oid(3361); +pub const PG_DEPENDENCIESOID: Oid = Oid(3402); +pub const PG_MCV_LISTOID: Oid = Oid(5017); +pub const PG_DDL_COMMANDOID: Oid = Oid(32); +pub const XID8OID: Oid = Oid(5069); +pub const POINTOID: Oid = Oid(600); +pub const LSEGOID: Oid = Oid(601); +pub const PATHOID: Oid = Oid(602); +pub const BOXOID: Oid = Oid(603); +pub const POLYGONOID: Oid = Oid(604); +pub const LINEOID: Oid = Oid(628); +pub const FLOAT4OID: Oid = Oid(700); +pub const FLOAT8OID: Oid = Oid(701); +pub const UNKNOWNOID: Oid = Oid(705); +pub const CIRCLEOID: Oid = Oid(718); +pub const MONEYOID: Oid = Oid(790); +pub const MACADDROID: Oid = Oid(829); +pub const INETOID: Oid = Oid(869); +pub const CIDROID: Oid = Oid(650); +pub const MACADDR8OID: Oid = Oid(774); +pub const ACLITEMOID: Oid = Oid(1033); +pub const BPCHAROID: Oid = Oid(1042); +pub const VARCHAROID: Oid = Oid(1043); +pub const DATEOID: Oid = Oid(1082); +pub const TIMEOID: Oid = Oid(1083); +pub const TIMESTAMPOID: Oid = Oid(1114); +pub const TIMESTAMPTZOID: Oid = Oid(1184); +pub const INTERVALOID: Oid = Oid(1186); +pub const TIMETZOID: Oid = Oid(1266); +pub const BITOID: Oid = Oid(1560); +pub const VARBITOID: Oid = Oid(1562); +pub const NUMERICOID: Oid = Oid(1700); +pub const REFCURSOROID: Oid = Oid(1790); +pub const REGPROCEDUREOID: Oid = Oid(2202); +pub const REGOPEROID: Oid = Oid(2203); +pub const REGOPERATOROID: Oid = Oid(2204); +pub const REGCLASSOID: Oid = Oid(2205); +pub const REGCOLLATIONOID: Oid = Oid(4191); +pub const REGTYPEOID: Oid = Oid(2206); +pub const REGROLEOID: Oid = Oid(4096); +pub const REGNAMESPACEOID: Oid = Oid(4089); +pub const UUIDOID: Oid = Oid(2950); +pub const PG_LSNOID: Oid = Oid(3220); +pub const TSVECTOROID: Oid = Oid(3614); +pub const GTSVECTOROID: Oid = Oid(3642); +pub const TSQUERYOID: Oid = Oid(3615); +pub const REGCONFIGOID: Oid = Oid(3734); +pub const REGDICTIONARYOID: Oid = Oid(3769); +pub const JSONBOID: Oid = Oid(3802); +pub const JSONPATHOID: Oid = Oid(4072); +pub const TXID_SNAPSHOTOID: Oid = Oid(2970); +pub const PG_SNAPSHOTOID: Oid = Oid(5038); +pub const INT4RANGEOID: Oid = Oid(3904); +pub const NUMRANGEOID: Oid = Oid(3906); +pub const TSRANGEOID: Oid = Oid(3908); +pub const TSTZRANGEOID: Oid = Oid(3910); +pub const DATERANGEOID: Oid = Oid(3912); +pub const INT8RANGEOID: Oid = Oid(3926); +pub const INT4MULTIRANGEOID: Oid = Oid(4451); +pub const NUMMULTIRANGEOID: Oid = Oid(4532); +pub const TSMULTIRANGEOID: Oid = Oid(4533); +pub const TSTZMULTIRANGEOID: Oid = Oid(4534); +pub const DATEMULTIRANGEOID: Oid = Oid(4535); +pub const INT8MULTIRANGEOID: Oid = Oid(4536); +pub const RECORDOID: Oid = Oid(2249); +pub const RECORDARRAYOID: Oid = Oid(2287); +pub const CSTRINGOID: Oid = Oid(2275); +pub const ANYOID: Oid = Oid(2276); +pub const ANYARRAYOID: Oid = Oid(2277); +pub const VOIDOID: Oid = Oid(2278); +pub const TRIGGEROID: Oid = Oid(2279); +pub const EVENT_TRIGGEROID: Oid = Oid(3838); +pub const LANGUAGE_HANDLEROID: Oid = Oid(2280); +pub const INTERNALOID: Oid = Oid(2281); +pub const ANYELEMENTOID: Oid = Oid(2283); +pub const ANYNONARRAYOID: Oid = Oid(2776); +pub const ANYENUMOID: Oid = Oid(3500); +pub const FDW_HANDLEROID: Oid = Oid(3115); +pub const INDEX_AM_HANDLEROID: Oid = Oid(325); +pub const TSM_HANDLEROID: Oid = Oid(3310); +pub const TABLE_AM_HANDLEROID: Oid = Oid(269); +pub const ANYRANGEOID: Oid = Oid(3831); +pub const ANYCOMPATIBLEOID: Oid = Oid(5077); +pub const ANYCOMPATIBLEARRAYOID: Oid = Oid(5078); +pub const ANYCOMPATIBLENONARRAYOID: Oid = Oid(5079); +pub const ANYCOMPATIBLERANGEOID: Oid = Oid(5080); +pub const ANYMULTIRANGEOID: Oid = Oid(4537); +pub const ANYCOMPATIBLEMULTIRANGEOID: Oid = Oid(4538); +pub const PG_BRIN_BLOOM_SUMMARYOID: Oid = Oid(4600); +pub const PG_BRIN_MINMAX_MULTI_SUMMARYOID: Oid = Oid(4601); +pub const BOOLARRAYOID: Oid = Oid(1000); +pub const BYTEAARRAYOID: Oid = Oid(1001); +pub const CHARARRAYOID: Oid = Oid(1002); +pub const NAMEARRAYOID: Oid = Oid(1003); +pub const INT8ARRAYOID: Oid = Oid(1016); +pub const INT2ARRAYOID: Oid = Oid(1005); +pub const INT2VECTORARRAYOID: Oid = Oid(1006); +pub const INT4ARRAYOID: Oid = Oid(1007); +pub const REGPROCARRAYOID: Oid = Oid(1008); +pub const TEXTARRAYOID: Oid = Oid(1009); +pub const OIDARRAYOID: Oid = Oid(1028); +pub const TIDARRAYOID: Oid = Oid(1010); +pub const XIDARRAYOID: Oid = Oid(1011); +pub const CIDARRAYOID: Oid = Oid(1012); +pub const OIDVECTORARRAYOID: Oid = Oid(1013); +pub const PG_TYPEARRAYOID: Oid = Oid(210); +pub const PG_ATTRIBUTEARRAYOID: Oid = Oid(270); +pub const PG_PROCARRAYOID: Oid = Oid(272); +pub const PG_CLASSARRAYOID: Oid = Oid(273); +pub const JSONARRAYOID: Oid = Oid(199); +pub const XMLARRAYOID: Oid = Oid(143); +pub const XID8ARRAYOID: Oid = Oid(271); +pub const POINTARRAYOID: Oid = Oid(1017); +pub const LSEGARRAYOID: Oid = Oid(1018); +pub const PATHARRAYOID: Oid = Oid(1019); +pub const BOXARRAYOID: Oid = Oid(1020); +pub const POLYGONARRAYOID: Oid = Oid(1027); +pub const LINEARRAYOID: Oid = Oid(629); +pub const FLOAT4ARRAYOID: Oid = Oid(1021); +pub const FLOAT8ARRAYOID: Oid = Oid(1022); +pub const CIRCLEARRAYOID: Oid = Oid(719); +pub const MONEYARRAYOID: Oid = Oid(791); +pub const MACADDRARRAYOID: Oid = Oid(1040); +pub const INETARRAYOID: Oid = Oid(1041); +pub const CIDRARRAYOID: Oid = Oid(651); +pub const MACADDR8ARRAYOID: Oid = Oid(775); +pub const ACLITEMARRAYOID: Oid = Oid(1034); +pub const BPCHARARRAYOID: Oid = Oid(1014); +pub const VARCHARARRAYOID: Oid = Oid(1015); +pub const DATEARRAYOID: Oid = Oid(1182); +pub const TIMEARRAYOID: Oid = Oid(1183); +pub const TIMESTAMPARRAYOID: Oid = Oid(1115); +pub const TIMESTAMPTZARRAYOID: Oid = Oid(1185); +pub const INTERVALARRAYOID: Oid = Oid(1187); +pub const TIMETZARRAYOID: Oid = Oid(1270); +pub const BITARRAYOID: Oid = Oid(1561); +pub const VARBITARRAYOID: Oid = Oid(1563); +pub const NUMERICARRAYOID: Oid = Oid(1231); +pub const REFCURSORARRAYOID: Oid = Oid(2201); +pub const REGPROCEDUREARRAYOID: Oid = Oid(2207); +pub const REGOPERARRAYOID: Oid = Oid(2208); +pub const REGOPERATORARRAYOID: Oid = Oid(2209); +pub const REGCLASSARRAYOID: Oid = Oid(2210); +pub const REGCOLLATIONARRAYOID: Oid = Oid(4192); +pub const REGTYPEARRAYOID: Oid = Oid(2211); +pub const REGROLEARRAYOID: Oid = Oid(4097); +pub const REGNAMESPACEARRAYOID: Oid = Oid(4090); +pub const UUIDARRAYOID: Oid = Oid(2951); +pub const PG_LSNARRAYOID: Oid = Oid(3221); +pub const TSVECTORARRAYOID: Oid = Oid(3643); +pub const GTSVECTORARRAYOID: Oid = Oid(3644); +pub const TSQUERYARRAYOID: Oid = Oid(3645); +pub const REGCONFIGARRAYOID: Oid = Oid(3735); +pub const REGDICTIONARYARRAYOID: Oid = Oid(3770); +pub const JSONBARRAYOID: Oid = Oid(3807); +pub const JSONPATHARRAYOID: Oid = Oid(4073); +pub const TXID_SNAPSHOTARRAYOID: Oid = Oid(2949); +pub const PG_SNAPSHOTARRAYOID: Oid = Oid(5039); +pub const INT4RANGEARRAYOID: Oid = Oid(3905); +pub const NUMRANGEARRAYOID: Oid = Oid(3907); +pub const TSRANGEARRAYOID: Oid = Oid(3909); +pub const TSTZRANGEARRAYOID: Oid = Oid(3911); +pub const DATERANGEARRAYOID: Oid = Oid(3913); +pub const INT8RANGEARRAYOID: Oid = Oid(3927); +pub const INT4MULTIRANGEARRAYOID: Oid = Oid(6150); +pub const NUMMULTIRANGEARRAYOID: Oid = Oid(6151); +pub const TSMULTIRANGEARRAYOID: Oid = Oid(6152); +pub const TSTZMULTIRANGEARRAYOID: Oid = Oid(6153); +pub const DATEMULTIRANGEARRAYOID: Oid = Oid(6155); +pub const INT8MULTIRANGEARRAYOID: Oid = Oid(6157); +pub const CSTRINGARRAYOID: Oid = Oid(1263); +pub const PD_HAS_FREE_LINES: u32 = 1; +pub const PD_PAGE_FULL: u32 = 2; +pub const PD_ALL_VISIBLE: u32 = 4; +pub const PD_VALID_FLAG_BITS: u32 = 7; +pub const PG_PAGE_LAYOUT_VERSION: u32 = 4; +pub const PG_DATA_CHECKSUM_VERSION: u32 = 1; +pub const PAI_OVERWRITE: u32 = 1; +pub const PAI_IS_HEAP: u32 = 2; +pub const PIV_LOG_WARNING: u32 = 1; +pub const PIV_REPORT_STAT: u32 = 2; +pub const VARLENA_EXTSIZE_BITS: u32 = 30; +pub const VARLENA_EXTSIZE_MASK: u32 = 1073741823; +pub const VARATT_SHORT_MAX: u32 = 127; +pub const MaxTupleAttributeNumber: u32 = 1664; +pub const MaxHeapAttributeNumber: u32 = 1600; +pub const FIELDNO_HEAPTUPLEHEADERDATA_INFOMASK2: u32 = 2; +pub const FIELDNO_HEAPTUPLEHEADERDATA_INFOMASK: u32 = 3; +pub const FIELDNO_HEAPTUPLEHEADERDATA_HOFF: u32 = 4; +pub const FIELDNO_HEAPTUPLEHEADERDATA_BITS: u32 = 5; +pub const HEAP_HASNULL: u32 = 1; +pub const HEAP_HASVARWIDTH: u32 = 2; +pub const HEAP_HASEXTERNAL: u32 = 4; +pub const HEAP_HASOID_OLD: u32 = 8; +pub const HEAP_XMAX_KEYSHR_LOCK: u32 = 16; +pub const HEAP_COMBOCID: u32 = 32; +pub const HEAP_XMAX_EXCL_LOCK: u32 = 64; +pub const HEAP_XMAX_LOCK_ONLY: u32 = 128; +pub const HEAP_XMAX_SHR_LOCK: u32 = 80; +pub const HEAP_LOCK_MASK: u32 = 80; +pub const HEAP_XMIN_COMMITTED: u32 = 256; +pub const HEAP_XMIN_INVALID: u32 = 512; +pub const HEAP_XMIN_FROZEN: u32 = 768; +pub const HEAP_XMAX_COMMITTED: u32 = 1024; +pub const HEAP_XMAX_INVALID: u32 = 2048; +pub const HEAP_XMAX_IS_MULTI: u32 = 4096; +pub const HEAP_UPDATED: u32 = 8192; +pub const HEAP_MOVED_OFF: u32 = 16384; +pub const HEAP_MOVED_IN: u32 = 32768; +pub const HEAP_MOVED: u32 = 49152; +pub const HEAP_XACT_MASK: u32 = 65520; +pub const HEAP_XMAX_BITS: u32 = 7376; +pub const HEAP_NATTS_MASK: u32 = 2047; +pub const HEAP_KEYS_UPDATED: u32 = 8192; +pub const HEAP_HOT_UPDATED: u32 = 16384; +pub const HEAP_ONLY_TUPLE: u32 = 32768; +pub const HEAP2_XACT_MASK: u32 = 57344; +pub const HEAP_TUPLE_HAS_MATCH: u32 = 32768; +pub const MaxAttrSize: u32 = 10485760; +pub const SelfItemPointerAttributeNumber: i32 = -1; +pub const MinTransactionIdAttributeNumber: i32 = -2; +pub const MinCommandIdAttributeNumber: i32 = -3; +pub const MaxTransactionIdAttributeNumber: i32 = -4; +pub const MaxCommandIdAttributeNumber: i32 = -5; +pub const TableOidAttributeNumber: i32 = -6; +pub const FirstLowInvalidHeapAttributeNumber: i32 = -7; +pub const InvalidBuffer: u32 = 0; +pub const TTS_FLAG_EMPTY: u32 = 2; +pub const TTS_FLAG_SHOULDFREE: u32 = 4; +pub const TTS_FLAG_SLOW: u32 = 8; +pub const TTS_FLAG_FIXED: u32 = 16; +pub const FIELDNO_TUPLETABLESLOT_FLAGS: u32 = 1; +pub const FIELDNO_TUPLETABLESLOT_NVALID: u32 = 2; +pub const FIELDNO_TUPLETABLESLOT_TUPLEDESCRIPTOR: u32 = 4; +pub const FIELDNO_TUPLETABLESLOT_VALUES: u32 = 5; +pub const FIELDNO_TUPLETABLESLOT_ISNULL: u32 = 6; +pub const FIELDNO_HEAPTUPLETABLESLOT_TUPLE: u32 = 1; +pub const FIELDNO_HEAPTUPLETABLESLOT_OFF: u32 = 2; +pub const FIELDNO_MINIMALTUPLETABLESLOT_TUPLE: u32 = 1; +pub const FIELDNO_MINIMALTUPLETABLESLOT_OFF: u32 = 4; +pub const BITS_PER_BITMAPWORD: u32 = 64; +pub const _TIME_H: u32 = 1; +pub const _BITS_TIME_H: u32 = 1; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_TAI: u32 = 11; +pub const TIMER_ABSTIME: u32 = 1; +pub const __struct_tm_defined: u32 = 1; +pub const __itimerspec_defined: u32 = 1; +pub const TIME_UTC: u32 = 1; +pub const PG_INSTR_CLOCK: u32 = 1; +pub const FIELDNO_FUNCTIONCALLINFODATA_ISNULL: u32 = 4; +pub const FIELDNO_FUNCTIONCALLINFODATA_ARGS: u32 = 6; +pub const PG_MAGIC_FUNCTION_NAME_STRING: &[u8; 14usize] = b"Pg_magic_func\0"; +pub const AGG_CONTEXT_AGGREGATE: u32 = 1; +pub const AGG_CONTEXT_WINDOW: u32 = 2; +pub const PARAM_FLAG_CONST: u32 = 1; +pub const BTLessStrategyNumber: u32 = 1; +pub const BTLessEqualStrategyNumber: u32 = 2; +pub const BTEqualStrategyNumber: u32 = 3; +pub const BTGreaterEqualStrategyNumber: u32 = 4; +pub const BTGreaterStrategyNumber: u32 = 5; +pub const BTMaxStrategyNumber: u32 = 5; +pub const HTEqualStrategyNumber: u32 = 1; +pub const HTMaxStrategyNumber: u32 = 1; +pub const RTLeftStrategyNumber: u32 = 1; +pub const RTOverLeftStrategyNumber: u32 = 2; +pub const RTOverlapStrategyNumber: u32 = 3; +pub const RTOverRightStrategyNumber: u32 = 4; +pub const RTRightStrategyNumber: u32 = 5; +pub const RTSameStrategyNumber: u32 = 6; +pub const RTContainsStrategyNumber: u32 = 7; +pub const RTContainedByStrategyNumber: u32 = 8; +pub const RTOverBelowStrategyNumber: u32 = 9; +pub const RTBelowStrategyNumber: u32 = 10; +pub const RTAboveStrategyNumber: u32 = 11; +pub const RTOverAboveStrategyNumber: u32 = 12; +pub const RTOldContainsStrategyNumber: u32 = 13; +pub const RTOldContainedByStrategyNumber: u32 = 14; +pub const RTKNNSearchStrategyNumber: u32 = 15; +pub const RTContainsElemStrategyNumber: u32 = 16; +pub const RTAdjacentStrategyNumber: u32 = 17; +pub const RTEqualStrategyNumber: u32 = 18; +pub const RTNotEqualStrategyNumber: u32 = 19; +pub const RTLessStrategyNumber: u32 = 20; +pub const RTLessEqualStrategyNumber: u32 = 21; +pub const RTGreaterStrategyNumber: u32 = 22; +pub const RTGreaterEqualStrategyNumber: u32 = 23; +pub const RTSubStrategyNumber: u32 = 24; +pub const RTSubEqualStrategyNumber: u32 = 25; +pub const RTSuperStrategyNumber: u32 = 26; +pub const RTSuperEqualStrategyNumber: u32 = 27; +pub const RTPrefixStrategyNumber: u32 = 28; +pub const RTOldBelowStrategyNumber: u32 = 29; +pub const RTOldAboveStrategyNumber: u32 = 30; +pub const RTMaxStrategyNumber: u32 = 30; +pub const CATALOG_VERSION_NO: u32 = 202305211; +pub const OIDCHARS: u32 = 10; +pub const FORKNAMECHARS: u32 = 4; +pub const INNER_VAR: i32 = -1; +pub const OUTER_VAR: i32 = -2; +pub const INDEX_VAR: i32 = -3; +pub const ROWID_VAR: i32 = -4; +pub const PRS2_OLD_VARNO: u32 = 1; +pub const PRS2_NEW_VARNO: u32 = 2; +pub const ACL_INSERT: u32 = 1; +pub const ACL_SELECT: u32 = 2; +pub const ACL_UPDATE: u32 = 4; +pub const ACL_DELETE: u32 = 8; +pub const ACL_TRUNCATE: u32 = 16; +pub const ACL_REFERENCES: u32 = 32; +pub const ACL_TRIGGER: u32 = 64; +pub const ACL_EXECUTE: u32 = 128; +pub const ACL_USAGE: u32 = 256; +pub const ACL_CREATE: u32 = 512; +pub const ACL_CREATE_TEMP: u32 = 1024; +pub const ACL_CONNECT: u32 = 2048; +pub const ACL_SET: u32 = 4096; +pub const ACL_ALTER_SYSTEM: u32 = 8192; +pub const ACL_MAINTAIN: u32 = 16384; +pub const N_ACL_RIGHTS: u32 = 15; +pub const ACL_NO_RIGHTS: u32 = 0; +pub const ACL_SELECT_FOR_UPDATE: u32 = 4; +pub const FRAMEOPTION_NONDEFAULT: u32 = 1; +pub const FRAMEOPTION_RANGE: u32 = 2; +pub const FRAMEOPTION_ROWS: u32 = 4; +pub const FRAMEOPTION_GROUPS: u32 = 8; +pub const FRAMEOPTION_BETWEEN: u32 = 16; +pub const FRAMEOPTION_START_UNBOUNDED_PRECEDING: u32 = 32; +pub const FRAMEOPTION_END_UNBOUNDED_PRECEDING: u32 = 64; +pub const FRAMEOPTION_START_UNBOUNDED_FOLLOWING: u32 = 128; +pub const FRAMEOPTION_END_UNBOUNDED_FOLLOWING: u32 = 256; +pub const FRAMEOPTION_START_CURRENT_ROW: u32 = 512; +pub const FRAMEOPTION_END_CURRENT_ROW: u32 = 1024; +pub const FRAMEOPTION_START_OFFSET_PRECEDING: u32 = 2048; +pub const FRAMEOPTION_END_OFFSET_PRECEDING: u32 = 4096; +pub const FRAMEOPTION_START_OFFSET_FOLLOWING: u32 = 8192; +pub const FRAMEOPTION_END_OFFSET_FOLLOWING: u32 = 16384; +pub const FRAMEOPTION_EXCLUDE_CURRENT_ROW: u32 = 32768; +pub const FRAMEOPTION_EXCLUDE_GROUP: u32 = 65536; +pub const FRAMEOPTION_EXCLUDE_TIES: u32 = 131072; +pub const FRAMEOPTION_START_OFFSET: u32 = 10240; +pub const FRAMEOPTION_END_OFFSET: u32 = 20480; +pub const FRAMEOPTION_EXCLUSION: u32 = 229376; +pub const FRAMEOPTION_DEFAULTS: u32 = 1058; +pub const FKCONSTR_ACTION_NOACTION: u8 = 97u8; +pub const FKCONSTR_ACTION_RESTRICT: u8 = 114u8; +pub const FKCONSTR_ACTION_CASCADE: u8 = 99u8; +pub const FKCONSTR_ACTION_SETNULL: u8 = 110u8; +pub const FKCONSTR_ACTION_SETDEFAULT: u8 = 100u8; +pub const FKCONSTR_MATCH_FULL: u8 = 102u8; +pub const FKCONSTR_MATCH_PARTIAL: u8 = 112u8; +pub const FKCONSTR_MATCH_SIMPLE: u8 = 115u8; +pub const OPCLASS_ITEM_OPERATOR: u32 = 1; +pub const OPCLASS_ITEM_FUNCTION: u32 = 2; +pub const OPCLASS_ITEM_STORAGETYPE: u32 = 3; +pub const CURSOR_OPT_BINARY: u32 = 1; +pub const CURSOR_OPT_SCROLL: u32 = 2; +pub const CURSOR_OPT_NO_SCROLL: u32 = 4; +pub const CURSOR_OPT_INSENSITIVE: u32 = 8; +pub const CURSOR_OPT_ASENSITIVE: u32 = 16; +pub const CURSOR_OPT_HOLD: u32 = 32; +pub const CURSOR_OPT_FAST_PLAN: u32 = 256; +pub const CURSOR_OPT_GENERIC_PLAN: u32 = 512; +pub const CURSOR_OPT_CUSTOM_PLAN: u32 = 1024; +pub const CURSOR_OPT_PARALLEL_OK: u32 = 2048; +pub const _LIBC_LIMITS_H_: u32 = 1; +pub const MB_LEN_MAX: u32 = 16; +pub const _BITS_POSIX1_LIM_H: u32 = 1; +pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; +pub const _POSIX_AIO_MAX: u32 = 1; +pub const _POSIX_ARG_MAX: u32 = 4096; +pub const _POSIX_CHILD_MAX: u32 = 25; +pub const _POSIX_DELAYTIMER_MAX: u32 = 32; +pub const _POSIX_HOST_NAME_MAX: u32 = 255; +pub const _POSIX_LINK_MAX: u32 = 8; +pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; +pub const _POSIX_MAX_CANON: u32 = 255; +pub const _POSIX_MAX_INPUT: u32 = 255; +pub const _POSIX_MQ_OPEN_MAX: u32 = 8; +pub const _POSIX_MQ_PRIO_MAX: u32 = 32; +pub const _POSIX_NAME_MAX: u32 = 14; +pub const _POSIX_NGROUPS_MAX: u32 = 8; +pub const _POSIX_OPEN_MAX: u32 = 20; +pub const _POSIX_PATH_MAX: u32 = 256; +pub const _POSIX_PIPE_BUF: u32 = 512; +pub const _POSIX_RE_DUP_MAX: u32 = 255; +pub const _POSIX_RTSIG_MAX: u32 = 8; +pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; +pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; +pub const _POSIX_SIGQUEUE_MAX: u32 = 32; +pub const _POSIX_SSIZE_MAX: u32 = 32767; +pub const _POSIX_STREAM_MAX: u32 = 8; +pub const _POSIX_SYMLINK_MAX: u32 = 255; +pub const _POSIX_SYMLOOP_MAX: u32 = 8; +pub const _POSIX_TIMER_MAX: u32 = 32; +pub const _POSIX_TTY_NAME_MAX: u32 = 9; +pub const _POSIX_TZNAME_MAX: u32 = 6; +pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; +pub const PTHREAD_KEYS_MAX: u32 = 1024; +pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; +pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; +pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; +pub const AIO_PRIO_DELTA_MAX: u32 = 20; +pub const PTHREAD_STACK_MIN: u32 = 16384; +pub const DELAYTIMER_MAX: u32 = 2147483647; +pub const TTY_NAME_MAX: u32 = 32; +pub const LOGIN_NAME_MAX: u32 = 256; +pub const HOST_NAME_MAX: u32 = 64; +pub const MQ_PRIO_MAX: u32 = 32768; +pub const SEM_VALUE_MAX: u32 = 2147483647; +pub const _BITS_POSIX2_LIM_H: u32 = 1; +pub const _POSIX2_BC_BASE_MAX: u32 = 99; +pub const _POSIX2_BC_DIM_MAX: u32 = 2048; +pub const _POSIX2_BC_SCALE_MAX: u32 = 99; +pub const _POSIX2_BC_STRING_MAX: u32 = 1000; +pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; +pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; +pub const _POSIX2_LINE_MAX: u32 = 2048; +pub const _POSIX2_RE_DUP_MAX: u32 = 255; +pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; +pub const BC_BASE_MAX: u32 = 99; +pub const BC_DIM_MAX: u32 = 2048; +pub const BC_SCALE_MAX: u32 = 99; +pub const BC_STRING_MAX: u32 = 1000; +pub const COLL_WEIGHTS_MAX: u32 = 255; +pub const EXPR_NEST_MAX: u32 = 32; +pub const LINE_MAX: u32 = 2048; +pub const CHARCLASS_NAME_MAX: u32 = 2048; +pub const RE_DUP_MAX: u32 = 32767; +pub const DSM_IMPL_POSIX: u32 = 1; +pub const DSM_IMPL_SYSV: u32 = 2; +pub const DSM_IMPL_WINDOWS: u32 = 3; +pub const DSM_IMPL_MMAP: u32 = 4; +pub const DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE: u32 = 1; +pub const PG_DYNSHMEM_DIR: &[u8; 12usize] = b"pg_dynshmem\0"; +pub const PG_DYNSHMEM_MMAP_FILE_PREFIX: &[u8; 6usize] = b"mmap.\0"; +pub const DSM_CREATE_NULL_IF_MAXSEGMENTS: u32 = 1; +pub const SIZEOF_DSA_POINTER: u32 = 8; +pub const DSA_POINTER_FORMAT: &[u8; 7usize] = b"%016lx\0"; +pub const DSA_ALLOC_HUGE: u32 = 1; +pub const DSA_ALLOC_NO_OOM: u32 = 2; +pub const DSA_ALLOC_ZERO: u32 = 4; +pub const DEFAULT_SPINS_PER_DELAY: u32 = 100; +pub const HASH_PARTITION: u32 = 1; +pub const HASH_SEGMENT: u32 = 2; +pub const HASH_DIRSIZE: u32 = 4; +pub const HASH_ELEM: u32 = 8; +pub const HASH_STRINGS: u32 = 16; +pub const HASH_BLOBS: u32 = 32; +pub const HASH_FUNCTION: u32 = 64; +pub const HASH_COMPARE: u32 = 128; +pub const HASH_KEYCOPY: u32 = 256; +pub const HASH_ALLOC: u32 = 512; +pub const HASH_CONTEXT: u32 = 1024; +pub const HASH_SHARED_MEM: u32 = 2048; +pub const HASH_ATTACH: u32 = 4096; +pub const HASH_FIXED_SIZE: u32 = 8192; +pub const NO_MAX_DSIZE: i32 = -1; +pub const _DIRENT_H: u32 = 1; +pub const _DIRENT_MATCHES_DIRENT64: u32 = 1; +pub const MAXNAMLEN: u32 = 255; +pub const IO_DIRECT_DATA: u32 = 1; +pub const IO_DIRECT_WAL: u32 = 2; +pub const IO_DIRECT_WAL_INIT: u32 = 4; +pub const PG_O_DIRECT: u32 = 0; +pub const PG_TEMP_FILES_DIR: &[u8; 10usize] = b"pgsql_tmp\0"; +pub const PG_TEMP_FILE_PREFIX: &[u8; 10usize] = b"pgsql_tmp\0"; +pub const SHARED_TUPLESTORE_SINGLE_PASS: u32 = 1; +pub const MAX_TIMESTAMP_PRECISION: u32 = 6; +pub const MAX_INTERVAL_PRECISION: u32 = 6; +pub const TS_PREC_INV: f64 = 1000000.0; +pub const DAYS_PER_YEAR: f64 = 365.25; +pub const MONTHS_PER_YEAR: u32 = 12; +pub const DAYS_PER_MONTH: u32 = 30; +pub const HOURS_PER_DAY: u32 = 24; +pub const SECS_PER_YEAR: u32 = 31557600; +pub const SECS_PER_DAY: u32 = 86400; +pub const SECS_PER_HOUR: u32 = 3600; +pub const SECS_PER_MINUTE: u32 = 60; +pub const MINS_PER_HOUR: u32 = 60; +pub const MAX_TZDISP_HOUR: u32 = 15; +pub const TZDISP_LIMIT: u32 = 57600; +pub const JULIAN_MINYEAR: i32 = -4713; +pub const JULIAN_MINMONTH: u32 = 11; +pub const JULIAN_MINDAY: u32 = 24; +pub const JULIAN_MAXYEAR: u32 = 5874898; +pub const JULIAN_MAXMONTH: u32 = 6; +pub const JULIAN_MAXDAY: u32 = 3; +pub const UNIX_EPOCH_JDATE: u32 = 2440588; +pub const POSTGRES_EPOCH_JDATE: u32 = 2451545; +pub const DATETIME_MIN_JULIAN: u32 = 0; +pub const DATE_END_JULIAN: u32 = 2147483494; +pub const TIMESTAMP_END_JULIAN: u32 = 109203528; +pub const RELCACHE_INIT_FILENAME: &[u8; 17usize] = b"pg_internal.init\0"; +pub const INDEX_SIZE_MASK: u32 = 8191; +pub const INDEX_AM_RESERVED_BIT: u32 = 8192; +pub const INDEX_VAR_MASK: u32 = 16384; +pub const INDEX_NULL_MASK: u32 = 32768; +pub const NUM_TUPLESORTMETHODS: u32 = 4; +pub const TUPLESORT_NONE: u32 = 0; +pub const TUPLESORT_RANDOMACCESS: u32 = 1; +pub const TUPLESORT_ALLOWBOUNDED: u32 = 2; +pub const EEO_FLAG_IS_QUAL: u32 = 1; +pub const FIELDNO_EXPRSTATE_RESNULL: u32 = 2; +pub const FIELDNO_EXPRSTATE_RESVALUE: u32 = 3; +pub const FIELDNO_EXPRSTATE_RESULTSLOT: u32 = 4; +pub const FIELDNO_EXPRSTATE_PARENT: u32 = 11; +pub const FIELDNO_EXPRCONTEXT_SCANTUPLE: u32 = 1; +pub const FIELDNO_EXPRCONTEXT_INNERTUPLE: u32 = 2; +pub const FIELDNO_EXPRCONTEXT_OUTERTUPLE: u32 = 3; +pub const FIELDNO_EXPRCONTEXT_AGGVALUES: u32 = 8; +pub const FIELDNO_EXPRCONTEXT_AGGNULLS: u32 = 9; +pub const FIELDNO_EXPRCONTEXT_CASEDATUM: u32 = 10; +pub const FIELDNO_EXPRCONTEXT_CASENULL: u32 = 11; +pub const FIELDNO_EXPRCONTEXT_DOMAINDATUM: u32 = 12; +pub const FIELDNO_EXPRCONTEXT_DOMAINNULL: u32 = 13; +pub const TRY_POPCNT_FAST: u32 = 1; +pub const MERGE_INSERT: u32 = 1; +pub const MERGE_UPDATE: u32 = 2; +pub const MERGE_DELETE: u32 = 4; +pub const FIELDNO_AGGSTATE_CURAGGCONTEXT: u32 = 14; +pub const FIELDNO_AGGSTATE_CURPERTRANS: u32 = 16; +pub const FIELDNO_AGGSTATE_CURRENT_SET: u32 = 20; +pub const FIELDNO_AGGSTATE_ALL_PERGROUPS: u32 = 53; +pub const COMPLETION_TAG_BUFSIZE: u32 = 64; +pub const MaxAllocHugeSize: u32 = 0; +pub const InvalidAllocSize: i32 = -1; +pub const ALLOCSET_DEFAULT_MINSIZE: u32 = 0; +pub const ALLOCSET_DEFAULT_INITSIZE: u32 = 8192; +pub const ALLOCSET_DEFAULT_MAXSIZE: u32 = 8388608; +pub const ALLOCSET_SMALL_MINSIZE: u32 = 0; +pub const ALLOCSET_SMALL_INITSIZE: u32 = 1024; +pub const ALLOCSET_SMALL_MAXSIZE: u32 = 8192; +pub const ALLOCSET_SEPARATE_THRESHOLD: u32 = 8192; +pub const SLAB_DEFAULT_BLOCK_SIZE: u32 = 8192; +pub const SLAB_LARGE_BLOCK_SIZE: u32 = 8388608; +pub const EXEC_FLAG_EXPLAIN_ONLY: u32 = 1; +pub const EXEC_FLAG_EXPLAIN_GENERIC: u32 = 2; +pub const EXEC_FLAG_REWIND: u32 = 4; +pub const EXEC_FLAG_BACKWARD: u32 = 8; +pub const EXEC_FLAG_MARK: u32 = 16; +pub const EXEC_FLAG_SKIP_TRIGGERS: u32 = 32; +pub const EXEC_FLAG_WITH_NO_DATA: u32 = 64; +pub const MAT_SRF_USE_EXPECTED_DESC: u32 = 1; +pub const MAT_SRF_BLESS: u32 = 2; +pub const _BITS_SIGNUM_GENERIC_H: u32 = 1; +pub const SIGINT: u32 = 2; +pub const SIGILL: u32 = 4; +pub const SIGABRT: u32 = 6; +pub const SIGFPE: u32 = 8; +pub const SIGSEGV: u32 = 11; +pub const SIGTERM: u32 = 15; +pub const SIGHUP: u32 = 1; +pub const SIGQUIT: u32 = 3; +pub const SIGTRAP: u32 = 5; +pub const SIGKILL: u32 = 9; +pub const SIGPIPE: u32 = 13; +pub const SIGALRM: u32 = 14; +pub const SIGIOT: u32 = 6; +pub const _BITS_SIGNUM_ARCH_H: u32 = 1; +pub const SIGSTKFLT: u32 = 16; +pub const SIGPWR: u32 = 30; +pub const SIGBUS: u32 = 7; +pub const SIGSYS: u32 = 31; +pub const SIGURG: u32 = 23; +pub const SIGSTOP: u32 = 19; +pub const SIGTSTP: u32 = 20; +pub const SIGCONT: u32 = 18; +pub const SIGCHLD: u32 = 17; +pub const SIGTTIN: u32 = 21; +pub const SIGTTOU: u32 = 22; +pub const SIGPOLL: u32 = 29; +pub const SIGXFSZ: u32 = 25; +pub const SIGXCPU: u32 = 24; +pub const SIGVTALRM: u32 = 26; +pub const SIGPROF: u32 = 27; +pub const SIGUSR1: u32 = 10; +pub const SIGUSR2: u32 = 12; +pub const SIGWINCH: u32 = 28; +pub const SIGIO: u32 = 29; +pub const SIGCLD: u32 = 17; +pub const __SIGRTMIN: u32 = 32; +pub const __SIGRTMAX: u32 = 64; +pub const _NSIG: u32 = 65; +pub const __sig_atomic_t_defined: u32 = 1; +pub const __siginfo_t_defined: u32 = 1; +pub const __SI_MAX_SIZE: u32 = 128; +pub const _BITS_SIGINFO_ARCH_H: u32 = 1; +pub const __SI_ERRNO_THEN_CODE: u32 = 1; +pub const __SI_HAVE_SIGSYS: u32 = 1; +pub const _BITS_SIGINFO_CONSTS_H: u32 = 1; +pub const __SI_ASYNCIO_AFTER_SIGIO: u32 = 1; +pub const __sigevent_t_defined: u32 = 1; +pub const __SIGEV_MAX_SIZE: u32 = 64; +pub const _BITS_SIGEVENT_CONSTS_H: u32 = 1; +pub const NSIG: u32 = 65; +pub const _BITS_SIGACTION_H: u32 = 1; +pub const SA_NOCLDSTOP: u32 = 1; +pub const SA_NOCLDWAIT: u32 = 2; +pub const SA_SIGINFO: u32 = 4; +pub const SA_ONSTACK: u32 = 134217728; +pub const SA_RESTART: u32 = 268435456; +pub const SA_NODEFER: u32 = 1073741824; +pub const SA_RESETHAND: u32 = 2147483648; +pub const SA_INTERRUPT: u32 = 536870912; +pub const SA_NOMASK: u32 = 1073741824; +pub const SA_ONESHOT: u32 = 2147483648; +pub const SA_STACK: u32 = 134217728; +pub const SIG_BLOCK: u32 = 0; +pub const SIG_UNBLOCK: u32 = 1; +pub const SIG_SETMASK: u32 = 2; +pub const _BITS_SIGCONTEXT_H: u32 = 1; +pub const FP_XSTATE_MAGIC1: u32 = 1179670611; +pub const FP_XSTATE_MAGIC2: u32 = 1179670597; +pub const __stack_t_defined: u32 = 1; +pub const _SYS_UCONTEXT_H: u32 = 1; +pub const __NGREG: u32 = 23; +pub const NGREG: u32 = 23; +pub const _BITS_SIGSTACK_H: u32 = 1; +pub const MINSIGSTKSZ: u32 = 2048; +pub const SIGSTKSZ: u32 = 8192; +pub const _BITS_SS_FLAGS_H: u32 = 1; +pub const __sigstack_defined: u32 = 1; +pub const _BITS_SIGTHREAD_H: u32 = 1; +pub const TZ_STRLEN_MAX: u32 = 255; +pub const InvalidPid: i32 = -1; +pub const USE_POSTGRES_DATES: u32 = 0; +pub const USE_ISO_DATES: u32 = 1; +pub const USE_SQL_DATES: u32 = 2; +pub const USE_GERMAN_DATES: u32 = 3; +pub const USE_XSD_DATES: u32 = 4; +pub const DATEORDER_YMD: u32 = 0; +pub const DATEORDER_DMY: u32 = 1; +pub const DATEORDER_MDY: u32 = 2; +pub const INTSTYLE_POSTGRES: u32 = 0; +pub const INTSTYLE_POSTGRES_VERBOSE: u32 = 1; +pub const INTSTYLE_SQL_STANDARD: u32 = 2; +pub const INTSTYLE_ISO_8601: u32 = 3; +pub const MAXTZLEN: u32 = 10; +pub const MIN_BAS_VAC_RING_SIZE_KB: u32 = 128; +pub const MAX_BAS_VAC_RING_SIZE_KB: u32 = 16777216; +pub const SECURITY_LOCAL_USERID_CHANGE: u32 = 1; +pub const SECURITY_RESTRICTED_OPERATION: u32 = 2; +pub const SECURITY_NOFORCE_RLS: u32 = 4; +pub const MIN_XFN_CHARS: u32 = 16; +pub const MAX_XFN_CHARS: u32 = 40; +pub const VALID_XFN_CHARS: &[u8; 40usize] = b"0123456789ABCDEF.history.backup.partial\0"; +pub const PGSTAT_NUM_PROGRESS_PARAM: u32 = 20; +pub const _SYS_SOCKET_H: u32 = 1; +pub const __iovec_defined: u32 = 1; +pub const PF_UNSPEC: u32 = 0; +pub const PF_LOCAL: u32 = 1; +pub const PF_UNIX: u32 = 1; +pub const PF_FILE: u32 = 1; +pub const PF_INET: u32 = 2; +pub const PF_AX25: u32 = 3; +pub const PF_IPX: u32 = 4; +pub const PF_APPLETALK: u32 = 5; +pub const PF_NETROM: u32 = 6; +pub const PF_BRIDGE: u32 = 7; +pub const PF_ATMPVC: u32 = 8; +pub const PF_X25: u32 = 9; +pub const PF_INET6: u32 = 10; +pub const PF_ROSE: u32 = 11; +pub const PF_DECnet: u32 = 12; +pub const PF_NETBEUI: u32 = 13; +pub const PF_SECURITY: u32 = 14; +pub const PF_KEY: u32 = 15; +pub const PF_NETLINK: u32 = 16; +pub const PF_ROUTE: u32 = 16; +pub const PF_PACKET: u32 = 17; +pub const PF_ASH: u32 = 18; +pub const PF_ECONET: u32 = 19; +pub const PF_ATMSVC: u32 = 20; +pub const PF_RDS: u32 = 21; +pub const PF_SNA: u32 = 22; +pub const PF_IRDA: u32 = 23; +pub const PF_PPPOX: u32 = 24; +pub const PF_WANPIPE: u32 = 25; +pub const PF_LLC: u32 = 26; +pub const PF_IB: u32 = 27; +pub const PF_MPLS: u32 = 28; +pub const PF_CAN: u32 = 29; +pub const PF_TIPC: u32 = 30; +pub const PF_BLUETOOTH: u32 = 31; +pub const PF_IUCV: u32 = 32; +pub const PF_RXRPC: u32 = 33; +pub const PF_ISDN: u32 = 34; +pub const PF_PHONET: u32 = 35; +pub const PF_IEEE802154: u32 = 36; +pub const PF_CAIF: u32 = 37; +pub const PF_ALG: u32 = 38; +pub const PF_NFC: u32 = 39; +pub const PF_VSOCK: u32 = 40; +pub const PF_KCM: u32 = 41; +pub const PF_QIPCRTR: u32 = 42; +pub const PF_SMC: u32 = 43; +pub const PF_XDP: u32 = 44; +pub const PF_MCTP: u32 = 45; +pub const PF_MAX: u32 = 46; +pub const AF_UNSPEC: u32 = 0; +pub const AF_LOCAL: u32 = 1; +pub const AF_UNIX: u32 = 1; +pub const AF_FILE: u32 = 1; +pub const AF_INET: u32 = 2; +pub const AF_AX25: u32 = 3; +pub const AF_IPX: u32 = 4; +pub const AF_APPLETALK: u32 = 5; +pub const AF_NETROM: u32 = 6; +pub const AF_BRIDGE: u32 = 7; +pub const AF_ATMPVC: u32 = 8; +pub const AF_X25: u32 = 9; +pub const AF_INET6: u32 = 10; +pub const AF_ROSE: u32 = 11; +pub const AF_DECnet: u32 = 12; +pub const AF_NETBEUI: u32 = 13; +pub const AF_SECURITY: u32 = 14; +pub const AF_KEY: u32 = 15; +pub const AF_NETLINK: u32 = 16; +pub const AF_ROUTE: u32 = 16; +pub const AF_PACKET: u32 = 17; +pub const AF_ASH: u32 = 18; +pub const AF_ECONET: u32 = 19; +pub const AF_ATMSVC: u32 = 20; +pub const AF_RDS: u32 = 21; +pub const AF_SNA: u32 = 22; +pub const AF_IRDA: u32 = 23; +pub const AF_PPPOX: u32 = 24; +pub const AF_WANPIPE: u32 = 25; +pub const AF_LLC: u32 = 26; +pub const AF_IB: u32 = 27; +pub const AF_MPLS: u32 = 28; +pub const AF_CAN: u32 = 29; +pub const AF_TIPC: u32 = 30; +pub const AF_BLUETOOTH: u32 = 31; +pub const AF_IUCV: u32 = 32; +pub const AF_RXRPC: u32 = 33; +pub const AF_ISDN: u32 = 34; +pub const AF_PHONET: u32 = 35; +pub const AF_IEEE802154: u32 = 36; +pub const AF_CAIF: u32 = 37; +pub const AF_ALG: u32 = 38; +pub const AF_NFC: u32 = 39; +pub const AF_VSOCK: u32 = 40; +pub const AF_KCM: u32 = 41; +pub const AF_QIPCRTR: u32 = 42; +pub const AF_SMC: u32 = 43; +pub const AF_XDP: u32 = 44; +pub const AF_MCTP: u32 = 45; +pub const AF_MAX: u32 = 46; +pub const SOL_RAW: u32 = 255; +pub const SOL_DECNET: u32 = 261; +pub const SOL_X25: u32 = 262; +pub const SOL_PACKET: u32 = 263; +pub const SOL_ATM: u32 = 264; +pub const SOL_AAL: u32 = 265; +pub const SOL_IRDA: u32 = 266; +pub const SOL_NETBEUI: u32 = 267; +pub const SOL_LLC: u32 = 268; +pub const SOL_DCCP: u32 = 269; +pub const SOL_NETLINK: u32 = 270; +pub const SOL_TIPC: u32 = 271; +pub const SOL_RXRPC: u32 = 272; +pub const SOL_PPPOL2TP: u32 = 273; +pub const SOL_BLUETOOTH: u32 = 274; +pub const SOL_PNPIPE: u32 = 275; +pub const SOL_RDS: u32 = 276; +pub const SOL_IUCV: u32 = 277; +pub const SOL_CAIF: u32 = 278; +pub const SOL_ALG: u32 = 279; +pub const SOL_NFC: u32 = 280; +pub const SOL_KCM: u32 = 281; +pub const SOL_TLS: u32 = 282; +pub const SOL_XDP: u32 = 283; +pub const SOMAXCONN: u32 = 4096; +pub const _BITS_SOCKADDR_H: u32 = 1; +pub const _SS_SIZE: u32 = 128; +pub const __BITS_PER_LONG: u32 = 64; +pub const FIOSETOWN: u32 = 35073; +pub const SIOCSPGRP: u32 = 35074; +pub const FIOGETOWN: u32 = 35075; +pub const SIOCGPGRP: u32 = 35076; +pub const SIOCATMARK: u32 = 35077; +pub const SIOCGSTAMP_OLD: u32 = 35078; +pub const SIOCGSTAMPNS_OLD: u32 = 35079; +pub const SOL_SOCKET: u32 = 1; +pub const SO_DEBUG: u32 = 1; +pub const SO_REUSEADDR: u32 = 2; +pub const SO_TYPE: u32 = 3; +pub const SO_ERROR: u32 = 4; +pub const SO_DONTROUTE: u32 = 5; +pub const SO_BROADCAST: u32 = 6; +pub const SO_SNDBUF: u32 = 7; +pub const SO_RCVBUF: u32 = 8; +pub const SO_SNDBUFFORCE: u32 = 32; +pub const SO_RCVBUFFORCE: u32 = 33; +pub const SO_KEEPALIVE: u32 = 9; +pub const SO_OOBINLINE: u32 = 10; +pub const SO_NO_CHECK: u32 = 11; +pub const SO_PRIORITY: u32 = 12; +pub const SO_LINGER: u32 = 13; +pub const SO_BSDCOMPAT: u32 = 14; +pub const SO_REUSEPORT: u32 = 15; +pub const SO_PASSCRED: u32 = 16; +pub const SO_PEERCRED: u32 = 17; +pub const SO_RCVLOWAT: u32 = 18; +pub const SO_SNDLOWAT: u32 = 19; +pub const SO_RCVTIMEO_OLD: u32 = 20; +pub const SO_SNDTIMEO_OLD: u32 = 21; +pub const SO_SECURITY_AUTHENTICATION: u32 = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; +pub const SO_BINDTODEVICE: u32 = 25; +pub const SO_ATTACH_FILTER: u32 = 26; +pub const SO_DETACH_FILTER: u32 = 27; +pub const SO_GET_FILTER: u32 = 26; +pub const SO_PEERNAME: u32 = 28; +pub const SO_ACCEPTCONN: u32 = 30; +pub const SO_PEERSEC: u32 = 31; +pub const SO_PASSSEC: u32 = 34; +pub const SO_MARK: u32 = 36; +pub const SO_PROTOCOL: u32 = 38; +pub const SO_DOMAIN: u32 = 39; +pub const SO_RXQ_OVFL: u32 = 40; +pub const SO_WIFI_STATUS: u32 = 41; +pub const SCM_WIFI_STATUS: u32 = 41; +pub const SO_PEEK_OFF: u32 = 42; +pub const SO_NOFCS: u32 = 43; +pub const SO_LOCK_FILTER: u32 = 44; +pub const SO_SELECT_ERR_QUEUE: u32 = 45; +pub const SO_BUSY_POLL: u32 = 46; +pub const SO_MAX_PACING_RATE: u32 = 47; +pub const SO_BPF_EXTENSIONS: u32 = 48; +pub const SO_INCOMING_CPU: u32 = 49; +pub const SO_ATTACH_BPF: u32 = 50; +pub const SO_DETACH_BPF: u32 = 27; +pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; +pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; +pub const SO_CNX_ADVICE: u32 = 53; +pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; +pub const SO_MEMINFO: u32 = 55; +pub const SO_INCOMING_NAPI_ID: u32 = 56; +pub const SO_COOKIE: u32 = 57; +pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; +pub const SO_PEERGROUPS: u32 = 59; +pub const SO_ZEROCOPY: u32 = 60; +pub const SO_TXTIME: u32 = 61; +pub const SCM_TXTIME: u32 = 61; +pub const SO_BINDTOIFINDEX: u32 = 62; +pub const SO_TIMESTAMP_OLD: u32 = 29; +pub const SO_TIMESTAMPNS_OLD: u32 = 35; +pub const SO_TIMESTAMPING_OLD: u32 = 37; +pub const SO_TIMESTAMP_NEW: u32 = 63; +pub const SO_TIMESTAMPNS_NEW: u32 = 64; +pub const SO_TIMESTAMPING_NEW: u32 = 65; +pub const SO_RCVTIMEO_NEW: u32 = 66; +pub const SO_SNDTIMEO_NEW: u32 = 67; +pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; +pub const SO_PREFER_BUSY_POLL: u32 = 69; +pub const SO_BUSY_POLL_BUDGET: u32 = 70; +pub const SO_NETNS_COOKIE: u32 = 71; +pub const SO_BUF_LOCK: u32 = 72; +pub const SO_TIMESTAMP: u32 = 29; +pub const SO_TIMESTAMPNS: u32 = 35; +pub const SO_TIMESTAMPING: u32 = 37; +pub const SO_RCVTIMEO: u32 = 20; +pub const SO_SNDTIMEO: u32 = 21; +pub const SCM_TIMESTAMP: u32 = 29; +pub const SCM_TIMESTAMPNS: u32 = 35; +pub const SCM_TIMESTAMPING: u32 = 37; +pub const __osockaddr_defined: u32 = 1; +pub const _SYS_UN_H: u32 = 1; +pub const _NETDB_H: u32 = 1; +pub const _NETINET_IN_H: u32 = 1; +pub const __USE_KERNEL_IPV6_DEFS: u32 = 0; +pub const IP_OPTIONS: u32 = 4; +pub const IP_HDRINCL: u32 = 3; +pub const IP_TOS: u32 = 1; +pub const IP_TTL: u32 = 2; +pub const IP_RECVOPTS: u32 = 6; +pub const IP_RETOPTS: u32 = 7; +pub const IP_MULTICAST_IF: u32 = 32; +pub const IP_MULTICAST_TTL: u32 = 33; +pub const IP_MULTICAST_LOOP: u32 = 34; +pub const IP_ADD_MEMBERSHIP: u32 = 35; +pub const IP_DROP_MEMBERSHIP: u32 = 36; +pub const IP_UNBLOCK_SOURCE: u32 = 37; +pub const IP_BLOCK_SOURCE: u32 = 38; +pub const IP_ADD_SOURCE_MEMBERSHIP: u32 = 39; +pub const IP_DROP_SOURCE_MEMBERSHIP: u32 = 40; +pub const IP_MSFILTER: u32 = 41; +pub const MCAST_JOIN_GROUP: u32 = 42; +pub const MCAST_BLOCK_SOURCE: u32 = 43; +pub const MCAST_UNBLOCK_SOURCE: u32 = 44; +pub const MCAST_LEAVE_GROUP: u32 = 45; +pub const MCAST_JOIN_SOURCE_GROUP: u32 = 46; +pub const MCAST_LEAVE_SOURCE_GROUP: u32 = 47; +pub const MCAST_MSFILTER: u32 = 48; +pub const IP_MULTICAST_ALL: u32 = 49; +pub const IP_UNICAST_IF: u32 = 50; +pub const MCAST_EXCLUDE: u32 = 0; +pub const MCAST_INCLUDE: u32 = 1; +pub const IP_ROUTER_ALERT: u32 = 5; +pub const IP_PKTINFO: u32 = 8; +pub const IP_PKTOPTIONS: u32 = 9; +pub const IP_PMTUDISC: u32 = 10; +pub const IP_MTU_DISCOVER: u32 = 10; +pub const IP_RECVERR: u32 = 11; +pub const IP_RECVTTL: u32 = 12; +pub const IP_RECVTOS: u32 = 13; +pub const IP_MTU: u32 = 14; +pub const IP_FREEBIND: u32 = 15; +pub const IP_IPSEC_POLICY: u32 = 16; +pub const IP_XFRM_POLICY: u32 = 17; +pub const IP_PASSSEC: u32 = 18; +pub const IP_TRANSPARENT: u32 = 19; +pub const IP_ORIGDSTADDR: u32 = 20; +pub const IP_RECVORIGDSTADDR: u32 = 20; +pub const IP_MINTTL: u32 = 21; +pub const IP_NODEFRAG: u32 = 22; +pub const IP_CHECKSUM: u32 = 23; +pub const IP_BIND_ADDRESS_NO_PORT: u32 = 24; +pub const IP_RECVFRAGSIZE: u32 = 25; +pub const IP_RECVERR_RFC4884: u32 = 26; +pub const IP_PMTUDISC_DONT: u32 = 0; +pub const IP_PMTUDISC_WANT: u32 = 1; +pub const IP_PMTUDISC_DO: u32 = 2; +pub const IP_PMTUDISC_PROBE: u32 = 3; +pub const IP_PMTUDISC_INTERFACE: u32 = 4; +pub const IP_PMTUDISC_OMIT: u32 = 5; +pub const SOL_IP: u32 = 0; +pub const IP_DEFAULT_MULTICAST_TTL: u32 = 1; +pub const IP_DEFAULT_MULTICAST_LOOP: u32 = 1; +pub const IP_MAX_MEMBERSHIPS: u32 = 20; +pub const IPV6_ADDRFORM: u32 = 1; +pub const IPV6_2292PKTINFO: u32 = 2; +pub const IPV6_2292HOPOPTS: u32 = 3; +pub const IPV6_2292DSTOPTS: u32 = 4; +pub const IPV6_2292RTHDR: u32 = 5; +pub const IPV6_2292PKTOPTIONS: u32 = 6; +pub const IPV6_CHECKSUM: u32 = 7; +pub const IPV6_2292HOPLIMIT: u32 = 8; +pub const IPV6_NEXTHOP: u32 = 9; +pub const IPV6_AUTHHDR: u32 = 10; +pub const IPV6_UNICAST_HOPS: u32 = 16; +pub const IPV6_MULTICAST_IF: u32 = 17; +pub const IPV6_MULTICAST_HOPS: u32 = 18; +pub const IPV6_MULTICAST_LOOP: u32 = 19; +pub const IPV6_JOIN_GROUP: u32 = 20; +pub const IPV6_LEAVE_GROUP: u32 = 21; +pub const IPV6_ROUTER_ALERT: u32 = 22; +pub const IPV6_MTU_DISCOVER: u32 = 23; +pub const IPV6_MTU: u32 = 24; +pub const IPV6_RECVERR: u32 = 25; +pub const IPV6_V6ONLY: u32 = 26; +pub const IPV6_JOIN_ANYCAST: u32 = 27; +pub const IPV6_LEAVE_ANYCAST: u32 = 28; +pub const IPV6_MULTICAST_ALL: u32 = 29; +pub const IPV6_ROUTER_ALERT_ISOLATE: u32 = 30; +pub const IPV6_RECVERR_RFC4884: u32 = 31; +pub const IPV6_IPSEC_POLICY: u32 = 34; +pub const IPV6_XFRM_POLICY: u32 = 35; +pub const IPV6_HDRINCL: u32 = 36; +pub const IPV6_RECVPKTINFO: u32 = 49; +pub const IPV6_PKTINFO: u32 = 50; +pub const IPV6_RECVHOPLIMIT: u32 = 51; +pub const IPV6_HOPLIMIT: u32 = 52; +pub const IPV6_RECVHOPOPTS: u32 = 53; +pub const IPV6_HOPOPTS: u32 = 54; +pub const IPV6_RTHDRDSTOPTS: u32 = 55; +pub const IPV6_RECVRTHDR: u32 = 56; +pub const IPV6_RTHDR: u32 = 57; +pub const IPV6_RECVDSTOPTS: u32 = 58; +pub const IPV6_DSTOPTS: u32 = 59; +pub const IPV6_RECVPATHMTU: u32 = 60; +pub const IPV6_PATHMTU: u32 = 61; +pub const IPV6_DONTFRAG: u32 = 62; +pub const IPV6_RECVTCLASS: u32 = 66; +pub const IPV6_TCLASS: u32 = 67; +pub const IPV6_AUTOFLOWLABEL: u32 = 70; +pub const IPV6_ADDR_PREFERENCES: u32 = 72; +pub const IPV6_MINHOPCOUNT: u32 = 73; +pub const IPV6_ORIGDSTADDR: u32 = 74; +pub const IPV6_RECVORIGDSTADDR: u32 = 74; +pub const IPV6_TRANSPARENT: u32 = 75; +pub const IPV6_UNICAST_IF: u32 = 76; +pub const IPV6_RECVFRAGSIZE: u32 = 77; +pub const IPV6_FREEBIND: u32 = 78; +pub const IPV6_ADD_MEMBERSHIP: u32 = 20; +pub const IPV6_DROP_MEMBERSHIP: u32 = 21; +pub const IPV6_RXHOPOPTS: u32 = 54; +pub const IPV6_RXDSTOPTS: u32 = 59; +pub const IPV6_PMTUDISC_DONT: u32 = 0; +pub const IPV6_PMTUDISC_WANT: u32 = 1; +pub const IPV6_PMTUDISC_DO: u32 = 2; +pub const IPV6_PMTUDISC_PROBE: u32 = 3; +pub const IPV6_PMTUDISC_INTERFACE: u32 = 4; +pub const IPV6_PMTUDISC_OMIT: u32 = 5; +pub const SOL_IPV6: u32 = 41; +pub const SOL_ICMPV6: u32 = 58; +pub const IPV6_RTHDR_LOOSE: u32 = 0; +pub const IPV6_RTHDR_STRICT: u32 = 1; +pub const IPV6_RTHDR_TYPE_0: u32 = 0; +pub const IN_CLASSA_NET: u32 = 4278190080; +pub const IN_CLASSA_NSHIFT: u32 = 24; +pub const IN_CLASSA_HOST: u32 = 16777215; +pub const IN_CLASSA_MAX: u32 = 128; +pub const IN_CLASSB_NET: u32 = 4294901760; +pub const IN_CLASSB_NSHIFT: u32 = 16; +pub const IN_CLASSB_HOST: u32 = 65535; +pub const IN_CLASSB_MAX: u32 = 65536; +pub const IN_CLASSC_NET: u32 = 4294967040; +pub const IN_CLASSC_NSHIFT: u32 = 8; +pub const IN_CLASSC_HOST: u32 = 255; +pub const IN_LOOPBACKNET: u32 = 127; +pub const INET_ADDRSTRLEN: u32 = 16; +pub const INET6_ADDRSTRLEN: u32 = 46; +pub const _RPC_NETDB_H: u32 = 1; +pub const _PATH_HEQUIV: &[u8; 17usize] = b"/etc/hosts.equiv\0"; +pub const _PATH_HOSTS: &[u8; 11usize] = b"/etc/hosts\0"; +pub const _PATH_NETWORKS: &[u8; 14usize] = b"/etc/networks\0"; +pub const _PATH_NSSWITCH_CONF: &[u8; 19usize] = b"/etc/nsswitch.conf\0"; +pub const _PATH_PROTOCOLS: &[u8; 15usize] = b"/etc/protocols\0"; +pub const _PATH_SERVICES: &[u8; 14usize] = b"/etc/services\0"; +pub const HOST_NOT_FOUND: u32 = 1; +pub const TRY_AGAIN: u32 = 2; +pub const NO_RECOVERY: u32 = 3; +pub const NO_DATA: u32 = 4; +pub const NETDB_INTERNAL: i32 = -1; +pub const NETDB_SUCCESS: u32 = 0; +pub const NO_ADDRESS: u32 = 4; +pub const AI_PASSIVE: u32 = 1; +pub const AI_CANONNAME: u32 = 2; +pub const AI_NUMERICHOST: u32 = 4; +pub const AI_V4MAPPED: u32 = 8; +pub const AI_ALL: u32 = 16; +pub const AI_ADDRCONFIG: u32 = 32; +pub const AI_NUMERICSERV: u32 = 1024; +pub const EAI_BADFLAGS: i32 = -1; +pub const EAI_NONAME: i32 = -2; +pub const EAI_AGAIN: i32 = -3; +pub const EAI_FAIL: i32 = -4; +pub const EAI_FAMILY: i32 = -6; +pub const EAI_SOCKTYPE: i32 = -7; +pub const EAI_SERVICE: i32 = -8; +pub const EAI_MEMORY: i32 = -10; +pub const EAI_SYSTEM: i32 = -11; +pub const EAI_OVERFLOW: i32 = -12; +pub const NI_MAXHOST: u32 = 1025; +pub const NI_MAXSERV: u32 = 32; +pub const NI_NUMERICHOST: u32 = 1; +pub const NI_NUMERICSERV: u32 = 2; +pub const NI_NOFQDN: u32 = 4; +pub const NI_NAMEREQD: u32 = 8; +pub const NI_DGRAM: u32 = 16; +pub const MAX_STARTUP_PACKET_LENGTH: u32 = 10000; +pub const AUTH_REQ_OK: u32 = 0; +pub const AUTH_REQ_KRB4: u32 = 1; +pub const AUTH_REQ_KRB5: u32 = 2; +pub const AUTH_REQ_PASSWORD: u32 = 3; +pub const AUTH_REQ_CRYPT: u32 = 4; +pub const AUTH_REQ_MD5: u32 = 5; +pub const AUTH_REQ_GSS: u32 = 7; +pub const AUTH_REQ_GSS_CONT: u32 = 8; +pub const AUTH_REQ_SSPI: u32 = 9; +pub const AUTH_REQ_SASL: u32 = 10; +pub const AUTH_REQ_SASL_CONT: u32 = 11; +pub const AUTH_REQ_SASL_FIN: u32 = 12; +pub const AUTH_REQ_MAX: u32 = 12; +pub const InvalidBackendId: i32 = -1; +pub const PG_WAIT_LWLOCK: u32 = 16777216; +pub const PG_WAIT_LOCK: u32 = 50331648; +pub const PG_WAIT_BUFFER_PIN: u32 = 67108864; +pub const PG_WAIT_ACTIVITY: u32 = 83886080; +pub const PG_WAIT_CLIENT: u32 = 100663296; +pub const PG_WAIT_EXTENSION: u32 = 117440512; +pub const PG_WAIT_IPC: u32 = 134217728; +pub const PG_WAIT_TIMEOUT: u32 = 150994944; +pub const PG_WAIT_IO: u32 = 167772160; +pub const PGSTAT_STAT_PERMANENT_DIRECTORY: &[u8; 8usize] = b"pg_stat\0"; +pub const PGSTAT_STAT_PERMANENT_FILENAME: &[u8; 20usize] = b"pg_stat/pgstat.stat\0"; +pub const PGSTAT_STAT_PERMANENT_TMPFILE: &[u8; 19usize] = b"pg_stat/pgstat.tmp\0"; +pub const PG_STAT_TMP_DIR: &[u8; 12usize] = b"pg_stat_tmp\0"; +pub const PGSTAT_FILE_FORMAT_ID: u32 = 27638956; +pub const SK_ISNULL: u32 = 1; +pub const SK_UNARY: u32 = 2; +pub const SK_ROW_HEADER: u32 = 4; +pub const SK_ROW_MEMBER: u32 = 8; +pub const SK_ROW_END: u32 = 16; +pub const SK_SEARCHARRAY: u32 = 32; +pub const SK_SEARCHNULL: u32 = 64; +pub const SK_SEARCHNOTNULL: u32 = 128; +pub const SK_ORDER_BY: u32 = 256; +pub const NoLock: u32 = 0; +pub const AccessShareLock: u32 = 1; +pub const RowShareLock: u32 = 2; +pub const RowExclusiveLock: u32 = 3; +pub const ShareUpdateExclusiveLock: u32 = 4; +pub const ShareLock: u32 = 5; +pub const ShareRowExclusiveLock: u32 = 6; +pub const ExclusiveLock: u32 = 7; +pub const AccessExclusiveLock: u32 = 8; +pub const MaxLockMode: u32 = 8; +pub const SYNC_METHOD_FSYNC: u32 = 0; +pub const SYNC_METHOD_FDATASYNC: u32 = 1; +pub const SYNC_METHOD_OPEN: u32 = 2; +pub const SYNC_METHOD_FSYNC_WRITETHROUGH: u32 = 3; +pub const SYNC_METHOD_OPEN_DSYNC: u32 = 4; +pub const CHECKPOINT_IS_SHUTDOWN: u32 = 1; +pub const CHECKPOINT_END_OF_RECOVERY: u32 = 2; +pub const CHECKPOINT_IMMEDIATE: u32 = 4; +pub const CHECKPOINT_FORCE: u32 = 8; +pub const CHECKPOINT_FLUSH_ALL: u32 = 16; +pub const CHECKPOINT_WAIT: u32 = 32; +pub const CHECKPOINT_REQUESTED: u32 = 64; +pub const CHECKPOINT_CAUSE_XLOG: u32 = 128; +pub const CHECKPOINT_CAUSE_TIME: u32 = 256; +pub const XLOG_INCLUDE_ORIGIN: u32 = 1; +pub const XLOG_MARK_UNIMPORTANT: u32 = 2; +pub const RECOVERY_SIGNAL_FILE: &[u8; 16usize] = b"recovery.signal\0"; +pub const STANDBY_SIGNAL_FILE: &[u8; 15usize] = b"standby.signal\0"; +pub const BACKUP_LABEL_FILE: &[u8; 13usize] = b"backup_label\0"; +pub const BACKUP_LABEL_OLD: &[u8; 17usize] = b"backup_label.old\0"; +pub const TABLESPACE_MAP: &[u8; 15usize] = b"tablespace_map\0"; +pub const TABLESPACE_MAP_OLD: &[u8; 19usize] = b"tablespace_map.old\0"; +pub const PROMOTE_SIGNAL_FILE: &[u8; 8usize] = b"promote\0"; +pub const RM_MAX_ID: u32 = 255; +pub const RM_MIN_CUSTOM_ID: u32 = 128; +pub const RM_MAX_CUSTOM_ID: u32 = 255; +pub const RM_N_IDS: u32 = 256; +pub const RM_N_CUSTOM_IDS: u32 = 128; +pub const RM_EXPERIMENTAL_ID: u32 = 128; +pub const XLR_INFO_MASK: u32 = 15; +pub const XLR_RMGR_INFO_MASK: u32 = 240; +pub const XLogRecordMaxSize: u32 = 1069547520; +pub const XLR_SPECIAL_REL_UPDATE: u32 = 1; +pub const XLR_CHECK_CONSISTENCY: u32 = 2; +pub const BKPIMAGE_HAS_HOLE: u32 = 1; +pub const BKPIMAGE_APPLY: u32 = 2; +pub const BKPIMAGE_COMPRESS_PGLZ: u32 = 4; +pub const BKPIMAGE_COMPRESS_LZ4: u32 = 8; +pub const BKPIMAGE_COMPRESS_ZSTD: u32 = 16; +pub const BKPBLOCK_FORK_MASK: u32 = 15; +pub const BKPBLOCK_FLAG_MASK: u32 = 240; +pub const BKPBLOCK_HAS_IMAGE: u32 = 16; +pub const BKPBLOCK_HAS_DATA: u32 = 32; +pub const BKPBLOCK_WILL_INIT: u32 = 64; +pub const BKPBLOCK_SAME_REL: u32 = 128; +pub const XLR_MAX_BLOCK_ID: u32 = 32; +pub const XLR_BLOCK_ID_DATA_SHORT: u32 = 255; +pub const XLR_BLOCK_ID_DATA_LONG: u32 = 254; +pub const XLR_BLOCK_ID_ORIGIN: u32 = 253; +pub const XLR_BLOCK_ID_TOPLEVEL_XID: u32 = 252; +pub const XLOG_PAGE_MAGIC: u32 = 53523; +pub const XLP_FIRST_IS_CONTRECORD: u32 = 1; +pub const XLP_LONG_HEADER: u32 = 2; +pub const XLP_BKP_REMOVABLE: u32 = 4; +pub const XLP_FIRST_IS_OVERWRITE_CONTRECORD: u32 = 8; +pub const XLP_ALL_FLAGS: u32 = 15; +pub const WalSegMinSize: u32 = 1048576; +pub const WalSegMaxSize: u32 = 1073741824; +pub const DEFAULT_MIN_WAL_SEGS: u32 = 5; +pub const DEFAULT_MAX_WAL_SEGS: u32 = 64; +pub const XLOGDIR: &[u8; 7usize] = b"pg_wal\0"; +pub const XLOG_CONTROL_FILE: &[u8; 18usize] = b"global/pg_control\0"; +pub const MAXFNAMELEN: u32 = 64; +pub const XLOG_FNAME_LEN: u32 = 24; +pub const XLR_NORMAL_MAX_BLOCK_ID: u32 = 4; +pub const XLR_NORMAL_RDATAS: u32 = 20; +pub const REGBUF_FORCE_IMAGE: u32 = 1; +pub const REGBUF_NO_IMAGE: u32 = 2; +pub const REGBUF_WILL_INIT: u32 = 6; +pub const REGBUF_STANDARD: u32 = 8; +pub const REGBUF_KEEP_DATA: u32 = 16; +pub const RelationRelationId: Oid = Oid(1259); +pub const RelationRelation_Rowtype_Id: u32 = 83; +pub const ClassOidIndexId: u32 = 2662; +pub const ClassNameNspIndexId: u32 = 2663; +pub const ClassTblspcRelfilenodeIndexId: u32 = 3455; +pub const Anum_pg_class_oid: u32 = 1; +pub const Anum_pg_class_relname: u32 = 2; +pub const Anum_pg_class_relnamespace: u32 = 3; +pub const Anum_pg_class_reltype: u32 = 4; +pub const Anum_pg_class_reloftype: u32 = 5; +pub const Anum_pg_class_relowner: u32 = 6; +pub const Anum_pg_class_relam: u32 = 7; +pub const Anum_pg_class_relfilenode: u32 = 8; +pub const Anum_pg_class_reltablespace: u32 = 9; +pub const Anum_pg_class_relpages: u32 = 10; +pub const Anum_pg_class_reltuples: u32 = 11; +pub const Anum_pg_class_relallvisible: u32 = 12; +pub const Anum_pg_class_reltoastrelid: u32 = 13; +pub const Anum_pg_class_relhasindex: u32 = 14; +pub const Anum_pg_class_relisshared: u32 = 15; +pub const Anum_pg_class_relpersistence: u32 = 16; +pub const Anum_pg_class_relkind: u32 = 17; +pub const Anum_pg_class_relnatts: u32 = 18; +pub const Anum_pg_class_relchecks: u32 = 19; +pub const Anum_pg_class_relhasrules: u32 = 20; +pub const Anum_pg_class_relhastriggers: u32 = 21; +pub const Anum_pg_class_relhassubclass: u32 = 22; +pub const Anum_pg_class_relrowsecurity: u32 = 23; +pub const Anum_pg_class_relforcerowsecurity: u32 = 24; +pub const Anum_pg_class_relispopulated: u32 = 25; +pub const Anum_pg_class_relreplident: u32 = 26; +pub const Anum_pg_class_relispartition: u32 = 27; +pub const Anum_pg_class_relrewrite: u32 = 28; +pub const Anum_pg_class_relfrozenxid: u32 = 29; +pub const Anum_pg_class_relminmxid: u32 = 30; +pub const Anum_pg_class_relacl: u32 = 31; +pub const Anum_pg_class_reloptions: u32 = 32; +pub const Anum_pg_class_relpartbound: u32 = 33; +pub const Natts_pg_class: u32 = 33; +pub const RELKIND_RELATION: u8 = 114u8; +pub const RELKIND_INDEX: u8 = 105u8; +pub const RELKIND_SEQUENCE: u8 = 83u8; +pub const RELKIND_TOASTVALUE: u8 = 116u8; +pub const RELKIND_VIEW: u8 = 118u8; +pub const RELKIND_MATVIEW: u8 = 109u8; +pub const RELKIND_COMPOSITE_TYPE: u8 = 99u8; +pub const RELKIND_FOREIGN_TABLE: u8 = 102u8; +pub const RELKIND_PARTITIONED_TABLE: u8 = 112u8; +pub const RELKIND_PARTITIONED_INDEX: u8 = 73u8; +pub const RELPERSISTENCE_PERMANENT: u8 = 112u8; +pub const RELPERSISTENCE_UNLOGGED: u8 = 117u8; +pub const RELPERSISTENCE_TEMP: u8 = 116u8; +pub const REPLICA_IDENTITY_DEFAULT: u8 = 100u8; +pub const REPLICA_IDENTITY_NOTHING: u8 = 110u8; +pub const REPLICA_IDENTITY_FULL: u8 = 102u8; +pub const REPLICA_IDENTITY_INDEX: u8 = 105u8; +pub const IndexRelationId: Oid = Oid(2610); +pub const IndexIndrelidIndexId: u32 = 2678; +pub const IndexRelidIndexId: u32 = 2679; +pub const Anum_pg_index_indexrelid: u32 = 1; +pub const Anum_pg_index_indrelid: u32 = 2; +pub const Anum_pg_index_indnatts: u32 = 3; +pub const Anum_pg_index_indnkeyatts: u32 = 4; +pub const Anum_pg_index_indisunique: u32 = 5; +pub const Anum_pg_index_indnullsnotdistinct: u32 = 6; +pub const Anum_pg_index_indisprimary: u32 = 7; +pub const Anum_pg_index_indisexclusion: u32 = 8; +pub const Anum_pg_index_indimmediate: u32 = 9; +pub const Anum_pg_index_indisclustered: u32 = 10; +pub const Anum_pg_index_indisvalid: u32 = 11; +pub const Anum_pg_index_indcheckxmin: u32 = 12; +pub const Anum_pg_index_indisready: u32 = 13; +pub const Anum_pg_index_indislive: u32 = 14; +pub const Anum_pg_index_indisreplident: u32 = 15; +pub const Anum_pg_index_indkey: u32 = 16; +pub const Anum_pg_index_indcollation: u32 = 17; +pub const Anum_pg_index_indclass: u32 = 18; +pub const Anum_pg_index_indoption: u32 = 19; +pub const Anum_pg_index_indexprs: u32 = 20; +pub const Anum_pg_index_indpred: u32 = 21; +pub const Natts_pg_index: u32 = 21; +pub const INDOPTION_DESC: u32 = 1; +pub const INDOPTION_NULLS_FIRST: u32 = 2; +pub const PublicationRelationId: Oid = Oid(6104); +pub const PublicationObjectIndexId: u32 = 6110; +pub const PublicationNameIndexId: u32 = 6111; +pub const Anum_pg_publication_oid: u32 = 1; +pub const Anum_pg_publication_pubname: u32 = 2; +pub const Anum_pg_publication_pubowner: u32 = 3; +pub const Anum_pg_publication_puballtables: u32 = 4; +pub const Anum_pg_publication_pubinsert: u32 = 5; +pub const Anum_pg_publication_pubupdate: u32 = 6; +pub const Anum_pg_publication_pubdelete: u32 = 7; +pub const Anum_pg_publication_pubtruncate: u32 = 8; +pub const Anum_pg_publication_pubviaroot: u32 = 9; +pub const Natts_pg_publication: u32 = 9; +pub const HEAP_MIN_FILLFACTOR: u32 = 10; +pub const HEAP_DEFAULT_FILLFACTOR: u32 = 100; +pub const MAX_GENERIC_XLOG_PAGES: u32 = 4; +pub const GENERIC_XLOG_FULL_IMAGE: u32 = 1; +pub const GIN_COMPARE_PROC: u32 = 1; +pub const GIN_EXTRACTVALUE_PROC: u32 = 2; +pub const GIN_EXTRACTQUERY_PROC: u32 = 3; +pub const GIN_CONSISTENT_PROC: u32 = 4; +pub const GIN_COMPARE_PARTIAL_PROC: u32 = 5; +pub const GIN_TRICONSISTENT_PROC: u32 = 6; +pub const GIN_OPTIONS_PROC: u32 = 7; +pub const GINNProcs: u32 = 7; +pub const GIN_SEARCH_MODE_DEFAULT: u32 = 0; +pub const GIN_SEARCH_MODE_INCLUDE_EMPTY: u32 = 1; +pub const GIN_SEARCH_MODE_ALL: u32 = 2; +pub const GIN_SEARCH_MODE_EVERYTHING: u32 = 3; +pub const GIN_FALSE: u32 = 0; +pub const GIN_TRUE: u32 = 1; +pub const GIN_MAYBE: u32 = 2; +pub const GIST_CONSISTENT_PROC: u32 = 1; +pub const GIST_UNION_PROC: u32 = 2; +pub const GIST_COMPRESS_PROC: u32 = 3; +pub const GIST_DECOMPRESS_PROC: u32 = 4; +pub const GIST_PENALTY_PROC: u32 = 5; +pub const GIST_PICKSPLIT_PROC: u32 = 6; +pub const GIST_EQUAL_PROC: u32 = 7; +pub const GIST_DISTANCE_PROC: u32 = 8; +pub const GIST_FETCH_PROC: u32 = 9; +pub const GIST_OPTIONS_PROC: u32 = 10; +pub const GIST_SORTSUPPORT_PROC: u32 = 11; +pub const GISTNProcs: u32 = 11; +pub const F_LEAF: u32 = 1; +pub const F_DELETED: u32 = 2; +pub const F_TUPLES_DELETED: u32 = 4; +pub const F_FOLLOW_RIGHT: u32 = 8; +pub const F_HAS_GARBAGE: u32 = 16; +pub const GIST_PAGE_ID: u32 = 65409; +pub const SHAREDINVALCATALOG_ID: i32 = -1; +pub const SHAREDINVALRELCACHE_ID: i32 = -2; +pub const SHAREDINVALSMGR_ID: i32 = -3; +pub const SHAREDINVALRELMAP_ID: i32 = -4; +pub const SHAREDINVALSNAPSHOT_ID: i32 = -5; +pub const GIDSIZE: u32 = 200; +pub const XACT_READ_UNCOMMITTED: u32 = 0; +pub const XACT_READ_COMMITTED: u32 = 1; +pub const XACT_REPEATABLE_READ: u32 = 2; +pub const XACT_SERIALIZABLE: u32 = 3; +pub const XACT_FLAGS_ACCESSEDTEMPNAMESPACE: u32 = 1; +pub const XACT_FLAGS_ACQUIREDACCESSEXCLUSIVELOCK: u32 = 2; +pub const XACT_FLAGS_NEEDIMMEDIATECOMMIT: u32 = 4; +pub const XACT_FLAGS_PIPELINING: u32 = 8; +pub const XLOG_XACT_COMMIT: u32 = 0; +pub const XLOG_XACT_PREPARE: u32 = 16; +pub const XLOG_XACT_ABORT: u32 = 32; +pub const XLOG_XACT_COMMIT_PREPARED: u32 = 48; +pub const XLOG_XACT_ABORT_PREPARED: u32 = 64; +pub const XLOG_XACT_ASSIGNMENT: u32 = 80; +pub const XLOG_XACT_INVALIDATIONS: u32 = 96; +pub const XLOG_XACT_OPMASK: u32 = 112; +pub const XLOG_XACT_HAS_INFO: u32 = 128; +pub const XACT_XINFO_HAS_DBINFO: u32 = 1; +pub const XACT_XINFO_HAS_SUBXACTS: u32 = 2; +pub const XACT_XINFO_HAS_RELFILELOCATORS: u32 = 4; +pub const XACT_XINFO_HAS_INVALS: u32 = 8; +pub const XACT_XINFO_HAS_TWOPHASE: u32 = 16; +pub const XACT_XINFO_HAS_ORIGIN: u32 = 32; +pub const XACT_XINFO_HAS_AE_LOCKS: u32 = 64; +pub const XACT_XINFO_HAS_GID: u32 = 128; +pub const XACT_XINFO_HAS_DROPPED_STATS: u32 = 256; +pub const XACT_COMPLETION_APPLY_FEEDBACK: u32 = 536870912; +pub const XACT_COMPLETION_UPDATE_RELCACHE_FILE: u32 = 1073741824; +pub const XACT_COMPLETION_FORCE_SYNC_COMMIT: u32 = 2147483648; +pub const DEFAULT_TABLE_ACCESS_METHOD: &[u8; 5usize] = b"heap\0"; +pub const TABLE_INSERT_SKIP_FSM: u32 = 2; +pub const TABLE_INSERT_FROZEN: u32 = 4; +pub const TABLE_INSERT_NO_LOGICAL: u32 = 8; +pub const TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS: u32 = 1; +pub const TUPLE_LOCK_FLAG_FIND_LAST_VERSION: u32 = 2; +pub const SHMEM_INDEX_KEYSIZE: u32 = 48; +pub const SHMEM_INDEX_SIZE: u32 = 64; +pub const HEAP_INSERT_SKIP_FSM: u32 = 2; +pub const HEAP_INSERT_FROZEN: u32 = 4; +pub const HEAP_INSERT_NO_LOGICAL: u32 = 8; +pub const HEAP_INSERT_SPECULATIVE: u32 = 16; +pub const HEAP_FREEZE_CHECK_XMIN_COMMITTED: u32 = 1; +pub const HEAP_FREEZE_CHECK_XMAX_ABORTED: u32 = 2; +pub const LWLOCK_PADDED_SIZE: u32 = 128; +pub const NUM_INDIVIDUAL_LWLOCKS: u32 = 48; +pub const NUM_BUFFER_PARTITIONS: u32 = 128; +pub const LOG2_NUM_LOCK_PARTITIONS: u32 = 4; +pub const NUM_LOCK_PARTITIONS: u32 = 16; +pub const LOG2_NUM_PREDICATELOCK_PARTITIONS: u32 = 4; +pub const NUM_PREDICATELOCK_PARTITIONS: u32 = 16; +pub const BUFFER_MAPPING_LWLOCK_OFFSET: u32 = 48; +pub const LOCK_MANAGER_LWLOCK_OFFSET: u32 = 176; +pub const PREDICATELOCK_MANAGER_LWLOCK_OFFSET: u32 = 192; +pub const NUM_FIXED_LWLOCKS: u32 = 208; +pub const INTERVAL_FULL_RANGE: u32 = 32767; +pub const INTERVAL_RANGE_MASK: u32 = 32767; +pub const INTERVAL_FULL_PRECISION: u32 = 65535; +pub const INTERVAL_PRECISION_MASK: u32 = 65535; +pub const InvalidLocalTransactionId: u32 = 0; +pub const MAX_LOCKMODES: u32 = 10; +pub const DEFAULT_LOCKMETHOD: u32 = 1; +pub const USER_LOCKMETHOD: u32 = 2; +pub const PERFORM_DELETION_INTERNAL: u32 = 1; +pub const PERFORM_DELETION_CONCURRENTLY: u32 = 2; +pub const PERFORM_DELETION_QUIETLY: u32 = 4; +pub const PERFORM_DELETION_SKIP_ORIGINAL: u32 = 8; +pub const PERFORM_DELETION_SKIP_EXTENSIONS: u32 = 16; +pub const PERFORM_DELETION_CONCURRENT_LOCK: u32 = 32; +pub const DEFAULT_INDEX_TYPE: &[u8; 6usize] = b"btree\0"; +pub const REINDEXOPT_VERBOSE: u32 = 1; +pub const REINDEXOPT_REPORT_PROGRESS: u32 = 2; +pub const REINDEXOPT_MISSING_OK: u32 = 4; +pub const REINDEXOPT_CONCURRENTLY: u32 = 8; +pub const INDEX_CREATE_IS_PRIMARY: u32 = 1; +pub const INDEX_CREATE_ADD_CONSTRAINT: u32 = 2; +pub const INDEX_CREATE_SKIP_BUILD: u32 = 4; +pub const INDEX_CREATE_CONCURRENT: u32 = 8; +pub const INDEX_CREATE_IF_NOT_EXISTS: u32 = 16; +pub const INDEX_CREATE_PARTITIONED: u32 = 32; +pub const INDEX_CREATE_INVALID: u32 = 64; +pub const INDEX_CONSTR_CREATE_MARK_AS_PRIMARY: u32 = 1; +pub const INDEX_CONSTR_CREATE_DEFERRABLE: u32 = 2; +pub const INDEX_CONSTR_CREATE_INIT_DEFERRED: u32 = 4; +pub const INDEX_CONSTR_CREATE_UPDATE_INDEX: u32 = 8; +pub const INDEX_CONSTR_CREATE_REMOVE_OLD_DEPS: u32 = 16; +pub const REINDEX_REL_PROCESS_TOAST: u32 = 1; +pub const REINDEX_REL_SUPPRESS_INDEX_USE: u32 = 2; +pub const REINDEX_REL_CHECK_CONSTRAINTS: u32 = 4; +pub const REINDEX_REL_FORCE_INDEXES_UNLOGGED: u32 = 8; +pub const REINDEX_REL_FORCE_INDEXES_PERMANENT: u32 = 16; +pub const MAX_CATALOG_MULTI_INSERT_BYTES: u32 = 65535; +pub const AuthIdRelationId: Oid = Oid(1260); +pub const AuthIdRelation_Rowtype_Id: u32 = 2842; +pub const PgAuthidToastTable: u32 = 4175; +pub const PgAuthidToastIndex: u32 = 4176; +pub const AuthIdRolnameIndexId: u32 = 2676; +pub const AuthIdOidIndexId: u32 = 2677; +pub const Anum_pg_authid_oid: u32 = 1; +pub const Anum_pg_authid_rolname: u32 = 2; +pub const Anum_pg_authid_rolsuper: u32 = 3; +pub const Anum_pg_authid_rolinherit: u32 = 4; +pub const Anum_pg_authid_rolcreaterole: u32 = 5; +pub const Anum_pg_authid_rolcreatedb: u32 = 6; +pub const Anum_pg_authid_rolcanlogin: u32 = 7; +pub const Anum_pg_authid_rolreplication: u32 = 8; +pub const Anum_pg_authid_rolbypassrls: u32 = 9; +pub const Anum_pg_authid_rolconnlimit: u32 = 10; +pub const Anum_pg_authid_rolpassword: u32 = 11; +pub const Anum_pg_authid_rolvaliduntil: u32 = 12; +pub const Natts_pg_authid: u32 = 12; +pub const BOOTSTRAP_SUPERUSERID: u32 = 10; +pub const ROLE_PG_DATABASE_OWNER: u32 = 6171; +pub const ROLE_PG_READ_ALL_DATA: u32 = 6181; +pub const ROLE_PG_WRITE_ALL_DATA: u32 = 6182; +pub const ROLE_PG_MONITOR: u32 = 3373; +pub const ROLE_PG_READ_ALL_SETTINGS: u32 = 3374; +pub const ROLE_PG_READ_ALL_STATS: u32 = 3375; +pub const ROLE_PG_STAT_SCAN_TABLES: u32 = 3377; +pub const ROLE_PG_READ_SERVER_FILES: u32 = 4569; +pub const ROLE_PG_WRITE_SERVER_FILES: u32 = 4570; +pub const ROLE_PG_EXECUTE_SERVER_PROGRAM: u32 = 4571; +pub const ROLE_PG_SIGNAL_BACKEND: u32 = 4200; +pub const ROLE_PG_CHECKPOINT: u32 = 4544; +pub const ROLE_PG_MAINTAIN: u32 = 4549; +pub const ROLE_PG_USE_RESERVED_CONNECTIONS: u32 = 4550; +pub const ROLE_PG_CREATE_SUBSCRIPTION: u32 = 6304; +pub const DatabaseRelationId: Oid = Oid(1262); +pub const DatabaseRelation_Rowtype_Id: u32 = 1248; +pub const PgDatabaseToastTable: u32 = 4177; +pub const PgDatabaseToastIndex: u32 = 4178; +pub const DatabaseNameIndexId: u32 = 2671; +pub const DatabaseOidIndexId: u32 = 2672; +pub const Template0DbOid: u32 = 4; +pub const PostgresDbOid: u32 = 5; +pub const Anum_pg_database_oid: u32 = 1; +pub const Anum_pg_database_datname: u32 = 2; +pub const Anum_pg_database_datdba: u32 = 3; +pub const Anum_pg_database_encoding: u32 = 4; +pub const Anum_pg_database_datlocprovider: u32 = 5; +pub const Anum_pg_database_datistemplate: u32 = 6; +pub const Anum_pg_database_datallowconn: u32 = 7; +pub const Anum_pg_database_datconnlimit: u32 = 8; +pub const Anum_pg_database_datfrozenxid: u32 = 9; +pub const Anum_pg_database_datminmxid: u32 = 10; +pub const Anum_pg_database_dattablespace: u32 = 11; +pub const Anum_pg_database_datcollate: u32 = 12; +pub const Anum_pg_database_datctype: u32 = 13; +pub const Anum_pg_database_daticulocale: u32 = 14; +pub const Anum_pg_database_daticurules: u32 = 15; +pub const Anum_pg_database_datcollversion: u32 = 16; +pub const Anum_pg_database_datacl: u32 = 17; +pub const Natts_pg_database: u32 = 17; +pub const Template1DbOid: u32 = 1; +pub const EnumRelationId: Oid = Oid(3501); +pub const EnumOidIndexId: u32 = 3502; +pub const EnumTypIdLabelIndexId: u32 = 3503; +pub const EnumTypIdSortOrderIndexId: u32 = 3534; +pub const Anum_pg_enum_oid: u32 = 1; +pub const Anum_pg_enum_enumtypid: u32 = 2; +pub const Anum_pg_enum_enumsortorder: u32 = 3; +pub const Anum_pg_enum_enumlabel: u32 = 4; +pub const Natts_pg_enum: u32 = 4; +pub const ExtensionRelationId: Oid = Oid(3079); +pub const ExtensionOidIndexId: u32 = 3080; +pub const ExtensionNameIndexId: u32 = 3081; +pub const Anum_pg_extension_oid: u32 = 1; +pub const Anum_pg_extension_extname: u32 = 2; +pub const Anum_pg_extension_extowner: u32 = 3; +pub const Anum_pg_extension_extnamespace: u32 = 4; +pub const Anum_pg_extension_extrelocatable: u32 = 5; +pub const Anum_pg_extension_extversion: u32 = 6; +pub const Anum_pg_extension_extconfig: u32 = 7; +pub const Anum_pg_extension_extcondition: u32 = 8; +pub const Natts_pg_extension: u32 = 8; +pub const OperatorRelationId: Oid = Oid(2617); +pub const OperatorOidIndexId: u32 = 2688; +pub const OperatorNameNspIndexId: u32 = 2689; +pub const Anum_pg_operator_oid: u32 = 1; +pub const Anum_pg_operator_oprname: u32 = 2; +pub const Anum_pg_operator_oprnamespace: u32 = 3; +pub const Anum_pg_operator_oprowner: u32 = 4; +pub const Anum_pg_operator_oprkind: u32 = 5; +pub const Anum_pg_operator_oprcanmerge: u32 = 6; +pub const Anum_pg_operator_oprcanhash: u32 = 7; +pub const Anum_pg_operator_oprleft: u32 = 8; +pub const Anum_pg_operator_oprright: u32 = 9; +pub const Anum_pg_operator_oprresult: u32 = 10; +pub const Anum_pg_operator_oprcom: u32 = 11; +pub const Anum_pg_operator_oprnegate: u32 = 12; +pub const Anum_pg_operator_oprcode: u32 = 13; +pub const Anum_pg_operator_oprrest: u32 = 14; +pub const Anum_pg_operator_oprjoin: u32 = 15; +pub const Natts_pg_operator: u32 = 15; +pub const BooleanNotEqualOperator: u32 = 85; +pub const BooleanEqualOperator: u32 = 91; +pub const Int4EqualOperator: u32 = 96; +pub const Int4LessOperator: u32 = 97; +pub const TextEqualOperator: u32 = 98; +pub const TextPrefixOperator: u32 = 3877; +pub const NameEqualTextOperator: u32 = 254; +pub const NameLessTextOperator: u32 = 255; +pub const NameGreaterEqualTextOperator: u32 = 257; +pub const TIDEqualOperator: u32 = 387; +pub const TIDLessOperator: u32 = 2799; +pub const TIDGreaterOperator: u32 = 2800; +pub const TIDLessEqOperator: u32 = 2801; +pub const TIDGreaterEqOperator: u32 = 2802; +pub const Int8LessOperator: u32 = 412; +pub const OID_NAME_REGEXEQ_OP: u32 = 639; +pub const OID_TEXT_REGEXEQ_OP: u32 = 641; +pub const TextLessOperator: u32 = 664; +pub const TextGreaterEqualOperator: u32 = 667; +pub const Float8LessOperator: u32 = 672; +pub const BpcharEqualOperator: u32 = 1054; +pub const OID_BPCHAR_REGEXEQ_OP: u32 = 1055; +pub const BpcharLessOperator: u32 = 1058; +pub const BpcharGreaterEqualOperator: u32 = 1061; +pub const ARRAY_EQ_OP: u32 = 1070; +pub const ARRAY_LT_OP: u32 = 1072; +pub const ARRAY_GT_OP: u32 = 1073; +pub const OID_NAME_LIKE_OP: u32 = 1207; +pub const OID_TEXT_LIKE_OP: u32 = 1209; +pub const OID_BPCHAR_LIKE_OP: u32 = 1211; +pub const OID_NAME_ICREGEXEQ_OP: u32 = 1226; +pub const OID_TEXT_ICREGEXEQ_OP: u32 = 1228; +pub const OID_BPCHAR_ICREGEXEQ_OP: u32 = 1234; +pub const OID_INET_SUB_OP: u32 = 931; +pub const OID_INET_SUBEQ_OP: u32 = 932; +pub const OID_INET_SUP_OP: u32 = 933; +pub const OID_INET_SUPEQ_OP: u32 = 934; +pub const OID_INET_OVERLAP_OP: u32 = 3552; +pub const OID_NAME_ICLIKE_OP: u32 = 1625; +pub const OID_TEXT_ICLIKE_OP: u32 = 1627; +pub const OID_BPCHAR_ICLIKE_OP: u32 = 1629; +pub const ByteaEqualOperator: u32 = 1955; +pub const ByteaLessOperator: u32 = 1957; +pub const ByteaGreaterEqualOperator: u32 = 1960; +pub const OID_BYTEA_LIKE_OP: u32 = 2016; +pub const TextPatternLessOperator: u32 = 2314; +pub const TextPatternGreaterEqualOperator: u32 = 2317; +pub const BpcharPatternLessOperator: u32 = 2326; +pub const BpcharPatternGreaterEqualOperator: u32 = 2329; +pub const OID_ARRAY_OVERLAP_OP: u32 = 2750; +pub const OID_ARRAY_CONTAINS_OP: u32 = 2751; +pub const OID_ARRAY_CONTAINED_OP: u32 = 2752; +pub const RECORD_EQ_OP: u32 = 2988; +pub const RECORD_LT_OP: u32 = 2990; +pub const RECORD_GT_OP: u32 = 2991; +pub const OID_RANGE_LESS_OP: u32 = 3884; +pub const OID_RANGE_LESS_EQUAL_OP: u32 = 3885; +pub const OID_RANGE_GREATER_EQUAL_OP: u32 = 3886; +pub const OID_RANGE_GREATER_OP: u32 = 3887; +pub const OID_RANGE_OVERLAP_OP: u32 = 3888; +pub const OID_RANGE_CONTAINS_ELEM_OP: u32 = 3889; +pub const OID_RANGE_CONTAINS_OP: u32 = 3890; +pub const OID_RANGE_ELEM_CONTAINED_OP: u32 = 3891; +pub const OID_RANGE_CONTAINED_OP: u32 = 3892; +pub const OID_RANGE_LEFT_OP: u32 = 3893; +pub const OID_RANGE_RIGHT_OP: u32 = 3894; +pub const OID_RANGE_OVERLAPS_LEFT_OP: u32 = 3895; +pub const OID_RANGE_OVERLAPS_RIGHT_OP: u32 = 3896; +pub const OID_MULTIRANGE_LESS_OP: u32 = 2862; +pub const OID_MULTIRANGE_LESS_EQUAL_OP: u32 = 2863; +pub const OID_MULTIRANGE_GREATER_EQUAL_OP: u32 = 2864; +pub const OID_MULTIRANGE_GREATER_OP: u32 = 2865; +pub const OID_RANGE_OVERLAPS_MULTIRANGE_OP: u32 = 2866; +pub const OID_MULTIRANGE_OVERLAPS_RANGE_OP: u32 = 2867; +pub const OID_MULTIRANGE_OVERLAPS_MULTIRANGE_OP: u32 = 2868; +pub const OID_MULTIRANGE_CONTAINS_ELEM_OP: u32 = 2869; +pub const OID_MULTIRANGE_CONTAINS_RANGE_OP: u32 = 2870; +pub const OID_MULTIRANGE_CONTAINS_MULTIRANGE_OP: u32 = 2871; +pub const OID_MULTIRANGE_ELEM_CONTAINED_OP: u32 = 2872; +pub const OID_MULTIRANGE_RANGE_CONTAINED_OP: u32 = 2873; +pub const OID_MULTIRANGE_MULTIRANGE_CONTAINED_OP: u32 = 2874; +pub const OID_RANGE_CONTAINS_MULTIRANGE_OP: u32 = 4539; +pub const OID_RANGE_MULTIRANGE_CONTAINED_OP: u32 = 4540; +pub const OID_RANGE_OVERLAPS_LEFT_MULTIRANGE_OP: u32 = 2875; +pub const OID_MULTIRANGE_OVERLAPS_LEFT_RANGE_OP: u32 = 2876; +pub const OID_MULTIRANGE_OVERLAPS_LEFT_MULTIRANGE_OP: u32 = 2877; +pub const OID_RANGE_OVERLAPS_RIGHT_MULTIRANGE_OP: u32 = 3585; +pub const OID_MULTIRANGE_OVERLAPS_RIGHT_RANGE_OP: u32 = 4035; +pub const OID_MULTIRANGE_OVERLAPS_RIGHT_MULTIRANGE_OP: u32 = 4142; +pub const OID_RANGE_ADJACENT_MULTIRANGE_OP: u32 = 4179; +pub const OID_MULTIRANGE_ADJACENT_RANGE_OP: u32 = 4180; +pub const OID_MULTIRANGE_ADJACENT_MULTIRANGE_OP: u32 = 4198; +pub const OID_RANGE_LEFT_MULTIRANGE_OP: u32 = 4395; +pub const OID_MULTIRANGE_LEFT_RANGE_OP: u32 = 4396; +pub const OID_MULTIRANGE_LEFT_MULTIRANGE_OP: u32 = 4397; +pub const OID_RANGE_RIGHT_MULTIRANGE_OP: u32 = 4398; +pub const OID_MULTIRANGE_RIGHT_RANGE_OP: u32 = 4399; +pub const OID_MULTIRANGE_RIGHT_MULTIRANGE_OP: u32 = 4400; +pub const ProcedureRelationId: Oid = Oid(1255); +pub const ProcedureRelation_Rowtype_Id: u32 = 81; +pub const ProcedureOidIndexId: u32 = 2690; +pub const ProcedureNameArgsNspIndexId: u32 = 2691; +pub const Anum_pg_proc_oid: u32 = 1; +pub const Anum_pg_proc_proname: u32 = 2; +pub const Anum_pg_proc_pronamespace: u32 = 3; +pub const Anum_pg_proc_proowner: u32 = 4; +pub const Anum_pg_proc_prolang: u32 = 5; +pub const Anum_pg_proc_procost: u32 = 6; +pub const Anum_pg_proc_prorows: u32 = 7; +pub const Anum_pg_proc_provariadic: u32 = 8; +pub const Anum_pg_proc_prosupport: u32 = 9; +pub const Anum_pg_proc_prokind: u32 = 10; +pub const Anum_pg_proc_prosecdef: u32 = 11; +pub const Anum_pg_proc_proleakproof: u32 = 12; +pub const Anum_pg_proc_proisstrict: u32 = 13; +pub const Anum_pg_proc_proretset: u32 = 14; +pub const Anum_pg_proc_provolatile: u32 = 15; +pub const Anum_pg_proc_proparallel: u32 = 16; +pub const Anum_pg_proc_pronargs: u32 = 17; +pub const Anum_pg_proc_pronargdefaults: u32 = 18; +pub const Anum_pg_proc_prorettype: u32 = 19; +pub const Anum_pg_proc_proargtypes: u32 = 20; +pub const Anum_pg_proc_proallargtypes: u32 = 21; +pub const Anum_pg_proc_proargmodes: u32 = 22; +pub const Anum_pg_proc_proargnames: u32 = 23; +pub const Anum_pg_proc_proargdefaults: u32 = 24; +pub const Anum_pg_proc_protrftypes: u32 = 25; +pub const Anum_pg_proc_prosrc: u32 = 26; +pub const Anum_pg_proc_probin: u32 = 27; +pub const Anum_pg_proc_prosqlbody: u32 = 28; +pub const Anum_pg_proc_proconfig: u32 = 29; +pub const Anum_pg_proc_proacl: u32 = 30; +pub const Natts_pg_proc: u32 = 30; +pub const PROKIND_FUNCTION: u8 = 102u8; +pub const PROKIND_AGGREGATE: u8 = 97u8; +pub const PROKIND_WINDOW: u8 = 119u8; +pub const PROKIND_PROCEDURE: u8 = 112u8; +pub const PROVOLATILE_IMMUTABLE: u8 = 105u8; +pub const PROVOLATILE_STABLE: u8 = 115u8; +pub const PROVOLATILE_VOLATILE: u8 = 118u8; +pub const PROPARALLEL_SAFE: u8 = 115u8; +pub const PROPARALLEL_RESTRICTED: u8 = 114u8; +pub const PROPARALLEL_UNSAFE: u8 = 117u8; +pub const PROARGMODE_IN: u8 = 105u8; +pub const PROARGMODE_OUT: u8 = 111u8; +pub const PROARGMODE_INOUT: u8 = 98u8; +pub const PROARGMODE_VARIADIC: u8 = 118u8; +pub const PROARGMODE_TABLE: u8 = 116u8; +pub const NamespaceRelationId: Oid = Oid(2615); +pub const NamespaceNameIndexId: u32 = 2684; +pub const NamespaceOidIndexId: u32 = 2685; +pub const Anum_pg_namespace_oid: u32 = 1; +pub const Anum_pg_namespace_nspname: u32 = 2; +pub const Anum_pg_namespace_nspowner: u32 = 3; +pub const Anum_pg_namespace_nspacl: u32 = 4; +pub const Natts_pg_namespace: u32 = 4; +pub const PG_CATALOG_NAMESPACE: u32 = 11; +pub const PG_TOAST_NAMESPACE: u32 = 99; +pub const PG_PUBLIC_NAMESPACE: u32 = 2200; +pub const ACL_ID_PUBLIC: u32 = 0; +pub const ACL_MODECHG_ADD: u32 = 1; +pub const ACL_MODECHG_DEL: u32 = 2; +pub const ACL_MODECHG_EQL: u32 = 3; +pub const ACL_INSERT_CHR: u8 = 97u8; +pub const ACL_SELECT_CHR: u8 = 114u8; +pub const ACL_UPDATE_CHR: u8 = 119u8; +pub const ACL_DELETE_CHR: u8 = 100u8; +pub const ACL_TRUNCATE_CHR: u8 = 68u8; +pub const ACL_REFERENCES_CHR: u8 = 120u8; +pub const ACL_TRIGGER_CHR: u8 = 116u8; +pub const ACL_EXECUTE_CHR: u8 = 88u8; +pub const ACL_USAGE_CHR: u8 = 85u8; +pub const ACL_CREATE_CHR: u8 = 67u8; +pub const ACL_CREATE_TEMP_CHR: u8 = 84u8; +pub const ACL_CONNECT_CHR: u8 = 99u8; +pub const ACL_SET_CHR: u8 = 115u8; +pub const ACL_ALTER_SYSTEM_CHR: u8 = 65u8; +pub const ACL_MAINTAIN_CHR: u8 = 109u8; +pub const ACL_ALL_RIGHTS_STR: &[u8; 16usize] = b"arwdDxtXUCTcsAm\0"; +pub const ACL_ALL_RIGHTS_COLUMN: u32 = 39; +pub const ACL_ALL_RIGHTS_RELATION: u32 = 16511; +pub const ACL_ALL_RIGHTS_SEQUENCE: u32 = 262; +pub const ACL_ALL_RIGHTS_DATABASE: u32 = 3584; +pub const ACL_ALL_RIGHTS_FDW: u32 = 256; +pub const ACL_ALL_RIGHTS_FOREIGN_SERVER: u32 = 256; +pub const ACL_ALL_RIGHTS_FUNCTION: u32 = 128; +pub const ACL_ALL_RIGHTS_LANGUAGE: u32 = 256; +pub const ACL_ALL_RIGHTS_LARGEOBJECT: u32 = 6; +pub const ACL_ALL_RIGHTS_PARAMETER_ACL: u32 = 12288; +pub const ACL_ALL_RIGHTS_SCHEMA: u32 = 768; +pub const ACL_ALL_RIGHTS_TABLESPACE: u32 = 512; +pub const ACL_ALL_RIGHTS_TYPE: u32 = 256; +pub const TableSpaceRelationId: Oid = Oid(1213); +pub const PgTablespaceToastTable: u32 = 4185; +pub const PgTablespaceToastIndex: u32 = 4186; +pub const TablespaceOidIndexId: u32 = 2697; +pub const TablespaceNameIndexId: u32 = 2698; +pub const Anum_pg_tablespace_oid: u32 = 1; +pub const Anum_pg_tablespace_spcname: u32 = 2; +pub const Anum_pg_tablespace_spcowner: u32 = 3; +pub const Anum_pg_tablespace_spcacl: u32 = 4; +pub const Anum_pg_tablespace_spcoptions: u32 = 5; +pub const Natts_pg_tablespace: u32 = 5; +pub const DEFAULTTABLESPACE_OID: Oid = Oid(1663); +pub const GLOBALTABLESPACE_OID: Oid = Oid(1664); +pub const TriggerRelationId: Oid = Oid(2620); +pub const TriggerConstraintIndexId: u32 = 2699; +pub const TriggerRelidNameIndexId: u32 = 2701; +pub const TriggerOidIndexId: u32 = 2702; +pub const Anum_pg_trigger_oid: u32 = 1; +pub const Anum_pg_trigger_tgrelid: u32 = 2; +pub const Anum_pg_trigger_tgparentid: u32 = 3; +pub const Anum_pg_trigger_tgname: u32 = 4; +pub const Anum_pg_trigger_tgfoid: u32 = 5; +pub const Anum_pg_trigger_tgtype: u32 = 6; +pub const Anum_pg_trigger_tgenabled: u32 = 7; +pub const Anum_pg_trigger_tgisinternal: u32 = 8; +pub const Anum_pg_trigger_tgconstrrelid: u32 = 9; +pub const Anum_pg_trigger_tgconstrindid: u32 = 10; +pub const Anum_pg_trigger_tgconstraint: u32 = 11; +pub const Anum_pg_trigger_tgdeferrable: u32 = 12; +pub const Anum_pg_trigger_tginitdeferred: u32 = 13; +pub const Anum_pg_trigger_tgnargs: u32 = 14; +pub const Anum_pg_trigger_tgattr: u32 = 15; +pub const Anum_pg_trigger_tgargs: u32 = 16; +pub const Anum_pg_trigger_tgqual: u32 = 17; +pub const Anum_pg_trigger_tgoldtable: u32 = 18; +pub const Anum_pg_trigger_tgnewtable: u32 = 19; +pub const Natts_pg_trigger: u32 = 19; +pub const TRIGGER_TYPE_ROW: u32 = 1; +pub const TRIGGER_TYPE_BEFORE: u32 = 2; +pub const TRIGGER_TYPE_INSERT: u32 = 4; +pub const TRIGGER_TYPE_DELETE: u32 = 8; +pub const TRIGGER_TYPE_UPDATE: u32 = 16; +pub const TRIGGER_TYPE_TRUNCATE: u32 = 32; +pub const TRIGGER_TYPE_INSTEAD: u32 = 64; +pub const TRIGGER_TYPE_LEVEL_MASK: u32 = 1; +pub const TRIGGER_TYPE_STATEMENT: u32 = 0; +pub const TRIGGER_TYPE_TIMING_MASK: u32 = 66; +pub const TRIGGER_TYPE_AFTER: u32 = 0; +pub const TRIGGER_TYPE_EVENT_MASK: u32 = 60; +pub const EOH_HEADER_MAGIC: i32 = -1; +pub const MAXDIM: u32 = 6; +pub const EA_MAGIC: u32 = 689375833; +pub const EventTriggerRelationId: Oid = Oid(3466); +pub const EventTriggerNameIndexId: u32 = 3467; +pub const EventTriggerOidIndexId: u32 = 3468; +pub const Anum_pg_event_trigger_oid: u32 = 1; +pub const Anum_pg_event_trigger_evtname: u32 = 2; +pub const Anum_pg_event_trigger_evtevent: u32 = 3; +pub const Anum_pg_event_trigger_evtowner: u32 = 4; +pub const Anum_pg_event_trigger_evtfoid: u32 = 5; +pub const Anum_pg_event_trigger_evtenabled: u32 = 6; +pub const Anum_pg_event_trigger_evttags: u32 = 7; +pub const Natts_pg_event_trigger: u32 = 7; +pub const AT_REWRITE_ALTER_PERSISTENCE: u32 = 1; +pub const AT_REWRITE_DEFAULT_VAL: u32 = 2; +pub const AT_REWRITE_COLUMN_REWRITE: u32 = 4; +pub const AT_REWRITE_ACCESS_METHOD: u32 = 8; +pub const XLOG_TBLSPC_CREATE: u32 = 0; +pub const XLOG_TBLSPC_DROP: u32 = 16; +pub const TRIGGER_EVENT_INSERT: u32 = 0; +pub const TRIGGER_EVENT_DELETE: u32 = 1; +pub const TRIGGER_EVENT_UPDATE: u32 = 2; +pub const TRIGGER_EVENT_TRUNCATE: u32 = 3; +pub const TRIGGER_EVENT_OPMASK: u32 = 3; +pub const TRIGGER_EVENT_ROW: u32 = 4; +pub const TRIGGER_EVENT_BEFORE: u32 = 8; +pub const TRIGGER_EVENT_AFTER: u32 = 0; +pub const TRIGGER_EVENT_INSTEAD: u32 = 16; +pub const TRIGGER_EVENT_TIMINGMASK: u32 = 24; +pub const AFTER_TRIGGER_DEFERRABLE: u32 = 32; +pub const AFTER_TRIGGER_INITDEFERRED: u32 = 64; +pub const SESSION_REPLICATION_ROLE_ORIGIN: u32 = 0; +pub const SESSION_REPLICATION_ROLE_REPLICA: u32 = 1; +pub const SESSION_REPLICATION_ROLE_LOCAL: u32 = 2; +pub const TRIGGER_FIRES_ON_ORIGIN: u8 = 79u8; +pub const TRIGGER_FIRES_ALWAYS: u8 = 65u8; +pub const TRIGGER_FIRES_ON_REPLICA: u8 = 82u8; +pub const TRIGGER_DISABLED: u8 = 68u8; +pub const RI_TRIGGER_PK: u32 = 1; +pub const RI_TRIGGER_FK: u32 = 2; +pub const RI_TRIGGER_NONE: u32 = 0; +pub const PG_AUTOCONF_FILENAME: &[u8; 21usize] = b"postgresql.auto.conf\0"; +pub const GUC_QUALIFIER_SEPARATOR: u8 = 46u8; +pub const GUC_LIST_INPUT: u32 = 1; +pub const GUC_LIST_QUOTE: u32 = 2; +pub const GUC_NO_SHOW_ALL: u32 = 4; +pub const GUC_NO_RESET: u32 = 8; +pub const GUC_NO_RESET_ALL: u32 = 16; +pub const GUC_EXPLAIN: u32 = 32; +pub const GUC_REPORT: u32 = 64; +pub const GUC_NOT_IN_SAMPLE: u32 = 128; +pub const GUC_DISALLOW_IN_FILE: u32 = 256; +pub const GUC_CUSTOM_PLACEHOLDER: u32 = 512; +pub const GUC_SUPERUSER_ONLY: u32 = 1024; +pub const GUC_IS_NAME: u32 = 2048; +pub const GUC_NOT_WHILE_SEC_REST: u32 = 4096; +pub const GUC_DISALLOW_IN_AUTO_FILE: u32 = 8192; +pub const GUC_RUNTIME_COMPUTED: u32 = 16384; +pub const GUC_UNIT_KB: u32 = 16777216; +pub const GUC_UNIT_BLOCKS: u32 = 33554432; +pub const GUC_UNIT_XBLOCKS: u32 = 50331648; +pub const GUC_UNIT_MB: u32 = 67108864; +pub const GUC_UNIT_BYTE: u32 = 83886080; +pub const GUC_UNIT_MEMORY: u32 = 251658240; +pub const GUC_UNIT_MS: u32 = 268435456; +pub const GUC_UNIT_S: u32 = 536870912; +pub const GUC_UNIT_MIN: u32 = 805306368; +pub const GUC_UNIT_TIME: u32 = 1879048192; +pub const GUC_UNIT: u32 = 2130706432; +pub const BGWORKER_SHMEM_ACCESS: u32 = 1; +pub const BGWORKER_BACKEND_DATABASE_CONNECTION: u32 = 2; +pub const BGWORKER_CLASS_PARALLEL: u32 = 16; +pub const BGW_DEFAULT_RESTART_INTERVAL: u32 = 60; +pub const BGW_NEVER_RESTART: i32 = -1; +pub const BGW_MAXLEN: u32 = 96; +pub const BGW_EXTRALEN: u32 = 128; +pub const BGWORKER_BYPASS_ALLOWCONN: u32 = 1; +pub const TRANSACTION_STATUS_IN_PROGRESS: u32 = 0; +pub const TRANSACTION_STATUS_COMMITTED: u32 = 1; +pub const TRANSACTION_STATUS_ABORTED: u32 = 2; +pub const TRANSACTION_STATUS_SUB_COMMITTED: u32 = 3; +pub const CLOG_ZEROPAGE: u32 = 0; +pub const CLOG_TRUNCATE: u32 = 16; +pub const WL_LATCH_SET: u32 = 1; +pub const WL_SOCKET_READABLE: u32 = 2; +pub const WL_SOCKET_WRITEABLE: u32 = 4; +pub const WL_TIMEOUT: u32 = 8; +pub const WL_POSTMASTER_DEATH: u32 = 16; +pub const WL_EXIT_ON_PM_DEATH: u32 = 32; +pub const WL_SOCKET_CONNECTED: u32 = 4; +pub const WL_SOCKET_CLOSED: u32 = 128; +pub const WL_SOCKET_ACCEPT: u32 = 2; +pub const WL_SOCKET_MASK: u32 = 134; +pub const PGPROC_MAX_CACHED_SUBXIDS: u32 = 64; +pub const PROC_IS_AUTOVACUUM: u32 = 1; +pub const PROC_IN_VACUUM: u32 = 2; +pub const PROC_IN_SAFE_IC: u32 = 4; +pub const PROC_VACUUM_FOR_WRAPAROUND: u32 = 8; +pub const PROC_IN_LOGICAL_DECODING: u32 = 16; +pub const PROC_AFFECTS_ALL_HORIZONS: u32 = 32; +pub const PROC_VACUUM_STATE_MASK: u32 = 14; +pub const PROC_XMIN_FLAGS: u32 = 6; +pub const FP_LOCK_SLOTS_PER_BACKEND: u32 = 16; +pub const INVALID_PGPROCNO: u32 = 2147483647; +pub const DELAY_CHKPT_START: u32 = 1; +pub const DELAY_CHKPT_COMPLETE: u32 = 2; +pub const NUM_AUXILIARY_PROCS: u32 = 5; +pub const StatisticRelationId: Oid = Oid(2619); +pub const StatisticRelidAttnumInhIndexId: u32 = 2696; +pub const Anum_pg_statistic_starelid: u32 = 1; +pub const Anum_pg_statistic_staattnum: u32 = 2; +pub const Anum_pg_statistic_stainherit: u32 = 3; +pub const Anum_pg_statistic_stanullfrac: u32 = 4; +pub const Anum_pg_statistic_stawidth: u32 = 5; +pub const Anum_pg_statistic_stadistinct: u32 = 6; +pub const Anum_pg_statistic_stakind1: u32 = 7; +pub const Anum_pg_statistic_stakind2: u32 = 8; +pub const Anum_pg_statistic_stakind3: u32 = 9; +pub const Anum_pg_statistic_stakind4: u32 = 10; +pub const Anum_pg_statistic_stakind5: u32 = 11; +pub const Anum_pg_statistic_staop1: u32 = 12; +pub const Anum_pg_statistic_staop2: u32 = 13; +pub const Anum_pg_statistic_staop3: u32 = 14; +pub const Anum_pg_statistic_staop4: u32 = 15; +pub const Anum_pg_statistic_staop5: u32 = 16; +pub const Anum_pg_statistic_stacoll1: u32 = 17; +pub const Anum_pg_statistic_stacoll2: u32 = 18; +pub const Anum_pg_statistic_stacoll3: u32 = 19; +pub const Anum_pg_statistic_stacoll4: u32 = 20; +pub const Anum_pg_statistic_stacoll5: u32 = 21; +pub const Anum_pg_statistic_stanumbers1: u32 = 22; +pub const Anum_pg_statistic_stanumbers2: u32 = 23; +pub const Anum_pg_statistic_stanumbers3: u32 = 24; +pub const Anum_pg_statistic_stanumbers4: u32 = 25; +pub const Anum_pg_statistic_stanumbers5: u32 = 26; +pub const Anum_pg_statistic_stavalues1: u32 = 27; +pub const Anum_pg_statistic_stavalues2: u32 = 28; +pub const Anum_pg_statistic_stavalues3: u32 = 29; +pub const Anum_pg_statistic_stavalues4: u32 = 30; +pub const Anum_pg_statistic_stavalues5: u32 = 31; +pub const Natts_pg_statistic: u32 = 31; +pub const STATISTIC_KIND_MCV: u32 = 1; +pub const STATISTIC_KIND_HISTOGRAM: u32 = 2; +pub const STATISTIC_KIND_CORRELATION: u32 = 3; +pub const STATISTIC_KIND_MCELEM: u32 = 4; +pub const STATISTIC_KIND_DECHIST: u32 = 5; +pub const STATISTIC_KIND_RANGE_LENGTH_HISTOGRAM: u32 = 6; +pub const STATISTIC_KIND_BOUNDS_HISTOGRAM: u32 = 7; +pub const STATISTIC_NUM_SLOTS: u32 = 5; +pub const VACUUM_OPTION_NO_PARALLEL: u32 = 0; +pub const VACUUM_OPTION_PARALLEL_BULKDEL: u32 = 1; +pub const VACUUM_OPTION_PARALLEL_COND_CLEANUP: u32 = 2; +pub const VACUUM_OPTION_PARALLEL_CLEANUP: u32 = 4; +pub const VACUUM_OPTION_MAX_VALID_VALUE: u32 = 7; +pub const VACOPT_VACUUM: u32 = 1; +pub const VACOPT_ANALYZE: u32 = 2; +pub const VACOPT_VERBOSE: u32 = 4; +pub const VACOPT_FREEZE: u32 = 8; +pub const VACOPT_FULL: u32 = 16; +pub const VACOPT_SKIP_LOCKED: u32 = 32; +pub const VACOPT_PROCESS_MAIN: u32 = 64; +pub const VACOPT_PROCESS_TOAST: u32 = 128; +pub const VACOPT_DISABLE_PAGE_SKIPPING: u32 = 256; +pub const VACOPT_SKIP_DATABASE_STATS: u32 = 512; +pub const VACOPT_ONLY_DATABASE_STATS: u32 = 1024; +pub const CACHEDPLANSOURCE_MAGIC: u32 = 195726186; +pub const CACHEDPLAN_MAGIC: u32 = 953717834; +pub const CACHEDEXPR_MAGIC: u32 = 838275847; +pub const SPI_ERROR_CONNECT: i32 = -1; +pub const SPI_ERROR_COPY: i32 = -2; +pub const SPI_ERROR_OPUNKNOWN: i32 = -3; +pub const SPI_ERROR_UNCONNECTED: i32 = -4; +pub const SPI_ERROR_CURSOR: i32 = -5; +pub const SPI_ERROR_ARGUMENT: i32 = -6; +pub const SPI_ERROR_PARAM: i32 = -7; +pub const SPI_ERROR_TRANSACTION: i32 = -8; +pub const SPI_ERROR_NOATTRIBUTE: i32 = -9; +pub const SPI_ERROR_NOOUTFUNC: i32 = -10; +pub const SPI_ERROR_TYPUNKNOWN: i32 = -11; +pub const SPI_ERROR_REL_DUPLICATE: i32 = -12; +pub const SPI_ERROR_REL_NOT_FOUND: i32 = -13; +pub const SPI_OK_CONNECT: u32 = 1; +pub const SPI_OK_FINISH: u32 = 2; +pub const SPI_OK_FETCH: u32 = 3; +pub const SPI_OK_UTILITY: u32 = 4; +pub const SPI_OK_SELECT: u32 = 5; +pub const SPI_OK_SELINTO: u32 = 6; +pub const SPI_OK_INSERT: u32 = 7; +pub const SPI_OK_DELETE: u32 = 8; +pub const SPI_OK_UPDATE: u32 = 9; +pub const SPI_OK_CURSOR: u32 = 10; +pub const SPI_OK_INSERT_RETURNING: u32 = 11; +pub const SPI_OK_DELETE_RETURNING: u32 = 12; +pub const SPI_OK_UPDATE_RETURNING: u32 = 13; +pub const SPI_OK_REWRITTEN: u32 = 14; +pub const SPI_OK_REL_REGISTER: u32 = 15; +pub const SPI_OK_REL_UNREGISTER: u32 = 16; +pub const SPI_OK_TD_REGISTER: u32 = 17; +pub const SPI_OK_MERGE: u32 = 18; +pub const SPI_OPT_NONATOMIC: u32 = 1; +pub const HAVE_PLANNERINFO_TYPEDEF: u32 = 1; +pub const AMFLAG_HAS_TID_RANGE: u32 = 1; +pub const HAVE_INDEXOPTINFO_TYPEDEF: u32 = 1; +pub const HAVE_SPECIALJOININFO_TYPEDEF: u32 = 1; +pub const GROUPING_CAN_USE_SORT: u32 = 1; +pub const GROUPING_CAN_USE_HASH: u32 = 2; +pub const GROUPING_CAN_PARTIAL_AGG: u32 = 4; +pub const FSV_MISSING_OK: u32 = 1; +pub const FDW_MISSING_OK: u32 = 1; +pub const _MM_HINT_ET0: u32 = 7; +pub const _MM_HINT_ET1: u32 = 6; +pub const _MM_HINT_T0: u32 = 3; +pub const _MM_HINT_T1: u32 = 2; +pub const _MM_HINT_T2: u32 = 1; +pub const _MM_HINT_NTA: u32 = 0; +pub const _MM_EXCEPT_INVALID: u32 = 1; +pub const _MM_EXCEPT_DENORM: u32 = 2; +pub const _MM_EXCEPT_DIV_ZERO: u32 = 4; +pub const _MM_EXCEPT_OVERFLOW: u32 = 8; +pub const _MM_EXCEPT_UNDERFLOW: u32 = 16; +pub const _MM_EXCEPT_INEXACT: u32 = 32; +pub const _MM_EXCEPT_MASK: u32 = 63; +pub const _MM_MASK_INVALID: u32 = 128; +pub const _MM_MASK_DENORM: u32 = 256; +pub const _MM_MASK_DIV_ZERO: u32 = 512; +pub const _MM_MASK_OVERFLOW: u32 = 1024; +pub const _MM_MASK_UNDERFLOW: u32 = 2048; +pub const _MM_MASK_INEXACT: u32 = 4096; +pub const _MM_MASK_MASK: u32 = 8064; +pub const _MM_ROUND_NEAREST: u32 = 0; +pub const _MM_ROUND_DOWN: u32 = 8192; +pub const _MM_ROUND_UP: u32 = 16384; +pub const _MM_ROUND_TOWARD_ZERO: u32 = 24576; +pub const _MM_ROUND_MASK: u32 = 24576; +pub const _MM_FLUSH_ZERO_MASK: u32 = 32768; +pub const _MM_FLUSH_ZERO_ON: u32 = 32768; +pub const _MM_FLUSH_ZERO_OFF: u32 = 0; +pub const _MM_DENORMALS_ZERO_ON: u32 = 64; +pub const _MM_DENORMALS_ZERO_OFF: u32 = 0; +pub const _MM_DENORMALS_ZERO_MASK: u32 = 64; +pub const MAX_MULTIBYTE_CHAR_LEN: u32 = 4; +pub const SS2: u32 = 142; +pub const SS3: u32 = 143; +pub const LC_ISO8859_1: u32 = 129; +pub const LC_ISO8859_2: u32 = 130; +pub const LC_ISO8859_3: u32 = 131; +pub const LC_ISO8859_4: u32 = 132; +pub const LC_TIS620: u32 = 133; +pub const LC_ISO8859_7: u32 = 134; +pub const LC_ISO8859_6: u32 = 135; +pub const LC_ISO8859_8: u32 = 136; +pub const LC_JISX0201K: u32 = 137; +pub const LC_JISX0201R: u32 = 138; +pub const LC_KOI8_R: u32 = 139; +pub const LC_ISO8859_5: u32 = 140; +pub const LC_ISO8859_9: u32 = 141; +pub const LC_ISO8859_15: u32 = 142; +pub const LC_JISX0208_1978: u32 = 144; +pub const LC_GB2312_80: u32 = 145; +pub const LC_JISX0208: u32 = 146; +pub const LC_KS5601: u32 = 147; +pub const LC_JISX0212: u32 = 148; +pub const LC_CNS11643_1: u32 = 149; +pub const LC_CNS11643_2: u32 = 150; +pub const LC_JISX0213_1: u32 = 151; +pub const LC_BIG5_1: u32 = 152; +pub const LC_BIG5_2: u32 = 153; +pub const LCPRV1_A: u32 = 154; +pub const LCPRV1_B: u32 = 155; +pub const LCPRV2_A: u32 = 156; +pub const LCPRV2_B: u32 = 157; +pub const LC_SISHENG: u32 = 160; +pub const LC_IPA: u32 = 161; +pub const LC_VISCII_LOWER: u32 = 162; +pub const LC_VISCII_UPPER: u32 = 163; +pub const LC_ARABIC_DIGIT: u32 = 164; +pub const LC_ARABIC_1_COLUMN: u32 = 165; +pub const LC_ASCII_RIGHT_TO_LEFT: u32 = 166; +pub const LC_LAO: u32 = 167; +pub const LC_ARABIC_2_COLUMN: u32 = 168; +pub const LC_INDIAN_1_COLUMN: u32 = 240; +pub const LC_TIBETAN_1_COLUMN: u32 = 241; +pub const LC_UNICODE_SUBSET_2: u32 = 242; +pub const LC_UNICODE_SUBSET_3: u32 = 243; +pub const LC_UNICODE_SUBSET: u32 = 244; +pub const LC_ETHIOPIC: u32 = 245; +pub const LC_CNS11643_3: u32 = 246; +pub const LC_CNS11643_4: u32 = 247; +pub const LC_CNS11643_5: u32 = 248; +pub const LC_CNS11643_6: u32 = 249; +pub const LC_CNS11643_7: u32 = 250; +pub const LC_INDIAN_2_COLUMN: u32 = 251; +pub const LC_TIBETAN: u32 = 252; +pub const MAX_CONVERSION_GROWTH: u32 = 4; +pub const MAX_CONVERSION_INPUT_LENGTH: u32 = 16; +pub const MAX_UNICODE_EQUIVALENT_STRING: u32 = 16; +pub const EXTNODENAME_MAX_LEN: u32 = 64; +pub const CUSTOMPATH_SUPPORT_BACKWARD_SCAN: u32 = 1; +pub const CUSTOMPATH_SUPPORT_MARK_RESTORE: u32 = 2; +pub const CUSTOMPATH_SUPPORT_PROJECTION: u32 = 4; +pub const QTW_IGNORE_RT_SUBQUERIES: u32 = 1; +pub const QTW_IGNORE_CTE_SUBQUERIES: u32 = 2; +pub const QTW_IGNORE_RC_SUBQUERIES: u32 = 3; +pub const QTW_IGNORE_JOINALIASES: u32 = 4; +pub const QTW_IGNORE_RANGE_TABLE: u32 = 8; +pub const QTW_EXAMINE_RTES_BEFORE: u32 = 16; +pub const QTW_EXAMINE_RTES_AFTER: u32 = 32; +pub const QTW_DONT_COPY_QUERY: u32 = 64; +pub const QTW_EXAMINE_SORTGROUP: u32 = 128; +pub const DEFAULT_SEQ_PAGE_COST: f64 = 1.0; +pub const DEFAULT_RANDOM_PAGE_COST: f64 = 4.0; +pub const DEFAULT_CPU_TUPLE_COST: f64 = 0.01; +pub const DEFAULT_CPU_INDEX_TUPLE_COST: f64 = 0.005; +pub const DEFAULT_CPU_OPERATOR_COST: f64 = 0.0025; +pub const DEFAULT_PARALLEL_TUPLE_COST: f64 = 0.1; +pub const DEFAULT_PARALLEL_SETUP_COST: f64 = 1000.0; +pub const DEFAULT_RECURSIVE_WORKTABLE_FACTOR: f64 = 10.0; +pub const DEFAULT_EFFECTIVE_CACHE_SIZE: u32 = 524288; +pub const PVC_INCLUDE_AGGREGATES: u32 = 1; +pub const PVC_RECURSE_AGGREGATES: u32 = 2; +pub const PVC_INCLUDE_WINDOWFUNCS: u32 = 4; +pub const PVC_RECURSE_WINDOWFUNCS: u32 = 8; +pub const PVC_INCLUDE_PLACEHOLDERS: u32 = 16; +pub const PVC_RECURSE_PLACEHOLDERS: u32 = 32; +pub const DEFAULT_CURSOR_TUPLE_FRACTION: f64 = 0.1; +pub const ER_MAGIC: u32 = 1384727874; +pub const ER_FLAG_FVALUE_VALID: u32 = 1; +pub const ER_FLAG_FVALUE_ALLOCED: u32 = 2; +pub const ER_FLAG_DVALUES_VALID: u32 = 4; +pub const ER_FLAG_DVALUES_ALLOCED: u32 = 8; +pub const ER_FLAG_HAVE_EXTERNAL: u32 = 16; +pub const ER_FLAG_TUPDESC_ALLOCED: u32 = 32; +pub const ER_FLAG_IS_DOMAIN: u32 = 64; +pub const ER_FLAG_IS_DUMMY: u32 = 128; +pub const ER_FLAGS_NON_DATA: u32 = 224; +pub const TYPECACHE_EQ_OPR: u32 = 1; +pub const TYPECACHE_LT_OPR: u32 = 2; +pub const TYPECACHE_GT_OPR: u32 = 4; +pub const TYPECACHE_CMP_PROC: u32 = 8; +pub const TYPECACHE_HASH_PROC: u32 = 16; +pub const TYPECACHE_EQ_OPR_FINFO: u32 = 32; +pub const TYPECACHE_CMP_PROC_FINFO: u32 = 64; +pub const TYPECACHE_HASH_PROC_FINFO: u32 = 128; +pub const TYPECACHE_TUPDESC: u32 = 256; +pub const TYPECACHE_BTREE_OPFAMILY: u32 = 512; +pub const TYPECACHE_HASH_OPFAMILY: u32 = 1024; +pub const TYPECACHE_RANGE_INFO: u32 = 2048; +pub const TYPECACHE_DOMAIN_BASE_INFO: u32 = 4096; +pub const TYPECACHE_DOMAIN_CONSTR_INFO: u32 = 8192; +pub const TYPECACHE_HASH_EXTENDED_PROC: u32 = 16384; +pub const TYPECACHE_HASH_EXTENDED_PROC_FINFO: u32 = 32768; +pub const TYPECACHE_MULTIRANGE_INFO: u32 = 65536; +pub const PLPGSQL_XCHECK_NONE: u32 = 0; +pub const PLPGSQL_XCHECK_SHADOWVAR: u32 = 2; +pub const PLPGSQL_XCHECK_TOOMANYROWS: u32 = 4; +pub const PLPGSQL_XCHECK_STRICTMULTIASSIGNMENT: u32 = 8; +pub const RBTXN_HAS_CATALOG_CHANGES: u32 = 1; +pub const RBTXN_IS_SUBXACT: u32 = 2; +pub const RBTXN_IS_SERIALIZED: u32 = 4; +pub const RBTXN_IS_SERIALIZED_CLEAR: u32 = 8; +pub const RBTXN_IS_STREAMED: u32 = 16; +pub const RBTXN_HAS_PARTIAL_CHANGE: u32 = 32; +pub const RBTXN_PREPARE: u32 = 64; +pub const RBTXN_SKIPPED_PREPARE: u32 = 128; +pub const RBTXN_HAS_STREAMABLE_CHANGE: u32 = 256; +pub const LOGICALREP_PROTO_MIN_VERSION_NUM: u32 = 1; +pub const LOGICALREP_PROTO_VERSION_NUM: u32 = 1; +pub const LOGICALREP_PROTO_STREAM_VERSION_NUM: u32 = 2; +pub const LOGICALREP_PROTO_TWOPHASE_VERSION_NUM: u32 = 3; +pub const LOGICALREP_PROTO_STREAM_PARALLEL_VERSION_NUM: u32 = 4; +pub const LOGICALREP_PROTO_MAX_VERSION_NUM: u32 = 4; +pub const LOGICALREP_COLUMN_NULL: u8 = 110u8; +pub const LOGICALREP_COLUMN_UNCHANGED: u8 = 117u8; +pub const LOGICALREP_COLUMN_TEXT: u8 = 116u8; +pub const LOGICALREP_COLUMN_BINARY: u8 = 98u8; +pub const MAXCONNINFO: u32 = 1024; +pub const OLD_SNAPSHOT_PADDING_ENTRIES: u32 = 10; +pub const DEFAULT_EFFECTIVE_IO_CONCURRENCY: u32 = 1; +pub const DEFAULT_MAINTENANCE_IO_CONCURRENCY: u32 = 10; +pub const MAX_IO_CONCURRENCY: u32 = 1000; +pub const BUFFER_LOCK_UNLOCK: u32 = 0; +pub const BUFFER_LOCK_SHARE: u32 = 1; +pub const BUFFER_LOCK_EXCLUSIVE: u32 = 2; +pub const XLOG_STANDBY_LOCK: u32 = 0; +pub const XLOG_RUNNING_XACTS: u32 = 16; +pub const XLOG_INVALIDATIONS: u32 = 32; +pub const STACK_DEPTH_SLOP: u32 = 524288; +pub const COMMAND_OK_IN_READ_ONLY_TXN: u32 = 1; +pub const COMMAND_OK_IN_PARALLEL_MODE: u32 = 2; +pub const COMMAND_OK_IN_RECOVERY: u32 = 4; +pub const COMMAND_IS_STRICTLY_READ_ONLY: u32 = 7; +pub const COMMAND_IS_NOT_READ_ONLY: u32 = 0; +pub const MAXSTRLEN: u32 = 2047; +pub const MAXSTRPOS: u32 = 1048575; +pub const MAXENTRYPOS: u32 = 16384; +pub const MAXNUMPOS: u32 = 256; +pub const QI_VAL: u32 = 1; +pub const QI_OPR: u32 = 2; +pub const QI_VALSTOP: u32 = 3; +pub const OP_NOT: u32 = 1; +pub const OP_AND: u32 = 2; +pub const OP_OR: u32 = 3; +pub const OP_PHRASE: u32 = 4; +pub const OP_COUNT: u32 = 4; +pub const TSL_ADDPOS: u32 = 1; +pub const TSL_PREFIX: u32 = 2; +pub const TSL_FILTER: u32 = 4; +pub const P_TSV_OPR_IS_DELIM: u32 = 1; +pub const P_TSV_IS_TSQUERY: u32 = 2; +pub const P_TSV_IS_WEB: u32 = 4; +pub const P_TSQ_PLAIN: u32 = 1; +pub const P_TSQ_WEB: u32 = 2; +pub const TS_EXEC_EMPTY: u32 = 0; +pub const TS_EXEC_SKIP_NOT: u32 = 1; +pub const TS_EXEC_PHRASE_NO_POS: u32 = 2; +pub const TSearchStrategyNumber: u32 = 1; +pub const TSearchWithClassStrategyNumber: u32 = 2; +pub const QTN_NEEDFREE: u32 = 1; +pub const QTN_NOCHANGE: u32 = 2; +pub const QTN_WORDFREE: u32 = 4; +pub const MAXINT8LEN: u32 = 20; +pub const FORMAT_TYPE_TYPEMOD_GIVEN: u32 = 1; +pub const FORMAT_TYPE_ALLOW_INVALID: u32 = 2; +pub const FORMAT_TYPE_FORCE_QUALIFY: u32 = 4; +pub const FORMAT_TYPE_INVALID_AS_NULL: u32 = 8; +pub const MAX_TIME_PRECISION: u32 = 6; +pub const DAGO: &[u8; 4usize] = b"ago\0"; +pub const DCURRENT: &[u8; 8usize] = b"current\0"; +pub const EPOCH: &[u8; 6usize] = b"epoch\0"; +pub const INVALID: &[u8; 8usize] = b"invalid\0"; +pub const EARLY: &[u8; 10usize] = b"-infinity\0"; +pub const LATE: &[u8; 9usize] = b"infinity\0"; +pub const NOW: &[u8; 4usize] = b"now\0"; +pub const TODAY: &[u8; 6usize] = b"today\0"; +pub const TOMORROW: &[u8; 9usize] = b"tomorrow\0"; +pub const YESTERDAY: &[u8; 10usize] = b"yesterday\0"; +pub const ZULU: &[u8; 5usize] = b"zulu\0"; +pub const DMICROSEC: &[u8; 8usize] = b"usecond\0"; +pub const DMILLISEC: &[u8; 8usize] = b"msecond\0"; +pub const DSECOND: &[u8; 7usize] = b"second\0"; +pub const DMINUTE: &[u8; 7usize] = b"minute\0"; +pub const DHOUR: &[u8; 5usize] = b"hour\0"; +pub const DDAY: &[u8; 4usize] = b"day\0"; +pub const DWEEK: &[u8; 5usize] = b"week\0"; +pub const DMONTH: &[u8; 6usize] = b"month\0"; +pub const DQUARTER: &[u8; 8usize] = b"quarter\0"; +pub const DYEAR: &[u8; 5usize] = b"year\0"; +pub const DDECADE: &[u8; 7usize] = b"decade\0"; +pub const DCENTURY: &[u8; 8usize] = b"century\0"; +pub const DMILLENNIUM: &[u8; 11usize] = b"millennium\0"; +pub const DA_D: &[u8; 3usize] = b"ad\0"; +pub const DB_C: &[u8; 3usize] = b"bc\0"; +pub const DTIMEZONE: &[u8; 9usize] = b"timezone\0"; +pub const AM: u32 = 0; +pub const PM: u32 = 1; +pub const HR24: u32 = 2; +pub const AD: u32 = 0; +pub const BC: u32 = 1; +pub const RESERV: u32 = 0; +pub const MONTH: u32 = 1; +pub const YEAR: u32 = 2; +pub const DAY: u32 = 3; +pub const JULIAN: u32 = 4; +pub const TZ: u32 = 5; +pub const DTZ: u32 = 6; +pub const DYNTZ: u32 = 7; +pub const IGNORE_DTF: u32 = 8; +pub const AMPM: u32 = 9; +pub const HOUR: u32 = 10; +pub const MINUTE: u32 = 11; +pub const SECOND: u32 = 12; +pub const MILLISECOND: u32 = 13; +pub const MICROSECOND: u32 = 14; +pub const DOY: u32 = 15; +pub const DOW: u32 = 16; +pub const UNITS: u32 = 17; +pub const ADBC: u32 = 18; +pub const AGO: u32 = 19; +pub const ABS_BEFORE: u32 = 20; +pub const ABS_AFTER: u32 = 21; +pub const ISODATE: u32 = 22; +pub const ISOTIME: u32 = 23; +pub const WEEK: u32 = 24; +pub const DECADE: u32 = 25; +pub const CENTURY: u32 = 26; +pub const MILLENNIUM: u32 = 27; +pub const DTZMOD: u32 = 28; +pub const UNKNOWN_FIELD: u32 = 31; +pub const DTK_NUMBER: u32 = 0; +pub const DTK_STRING: u32 = 1; +pub const DTK_DATE: u32 = 2; +pub const DTK_TIME: u32 = 3; +pub const DTK_TZ: u32 = 4; +pub const DTK_AGO: u32 = 5; +pub const DTK_SPECIAL: u32 = 6; +pub const DTK_EARLY: u32 = 9; +pub const DTK_LATE: u32 = 10; +pub const DTK_EPOCH: u32 = 11; +pub const DTK_NOW: u32 = 12; +pub const DTK_YESTERDAY: u32 = 13; +pub const DTK_TODAY: u32 = 14; +pub const DTK_TOMORROW: u32 = 15; +pub const DTK_ZULU: u32 = 16; +pub const DTK_DELTA: u32 = 17; +pub const DTK_SECOND: u32 = 18; +pub const DTK_MINUTE: u32 = 19; +pub const DTK_HOUR: u32 = 20; +pub const DTK_DAY: u32 = 21; +pub const DTK_WEEK: u32 = 22; +pub const DTK_MONTH: u32 = 23; +pub const DTK_QUARTER: u32 = 24; +pub const DTK_YEAR: u32 = 25; +pub const DTK_DECADE: u32 = 26; +pub const DTK_CENTURY: u32 = 27; +pub const DTK_MILLENNIUM: u32 = 28; +pub const DTK_MILLISEC: u32 = 29; +pub const DTK_MICROSEC: u32 = 30; +pub const DTK_JULIAN: u32 = 31; +pub const DTK_DOW: u32 = 32; +pub const DTK_DOY: u32 = 33; +pub const DTK_TZ_HOUR: u32 = 34; +pub const DTK_TZ_MINUTE: u32 = 35; +pub const DTK_ISOYEAR: u32 = 36; +pub const DTK_ISODOW: u32 = 37; +pub const MAXDATELEN: u32 = 128; +pub const MAXDATEFIELDS: u32 = 25; +pub const TOKMAXLEN: u32 = 10; +pub const DTERR_BAD_FORMAT: i32 = -1; +pub const DTERR_FIELD_OVERFLOW: i32 = -2; +pub const DTERR_MD_FIELD_OVERFLOW: i32 = -3; +pub const DTERR_INTERVAL_OVERFLOW: i32 = -4; +pub const DTERR_TZDISP_OVERFLOW: i32 = -5; +pub const DTERR_BAD_TIMEZONE: i32 = -6; +pub const DTERR_BAD_ZONE_ABBREV: i32 = -7; +pub const TZNAME_FIXED_OFFSET: u32 = 0; +pub const TZNAME_DYNTZ: u32 = 1; +pub const TZNAME_ZONE: u32 = 2; +pub const RADIANS_PER_DEGREE: f64 = 0.017453292519943295; +pub const NUMERIC_MAX_PRECISION: u32 = 1000; +pub const NUMERIC_MIN_SCALE: i32 = -1000; +pub const NUMERIC_MAX_SCALE: u32 = 1000; +pub const NUMERIC_MAX_DISPLAY_SCALE: u32 = 1000; +pub const NUMERIC_MIN_DISPLAY_SCALE: u32 = 0; +pub const NUMERIC_MAX_RESULT_SCALE: u32 = 2000; +pub const NUMERIC_MIN_SIG_DIGITS: u32 = 16; +pub const JsonbContainsStrategyNumber: u32 = 7; +pub const JsonbExistsStrategyNumber: u32 = 9; +pub const JsonbExistsAnyStrategyNumber: u32 = 10; +pub const JsonbExistsAllStrategyNumber: u32 = 11; +pub const JsonbJsonpathExistsStrategyNumber: u32 = 15; +pub const JsonbJsonpathPredicateStrategyNumber: u32 = 16; +pub const JGINFLAG_KEY: u32 = 1; +pub const JGINFLAG_NULL: u32 = 2; +pub const JGINFLAG_BOOL: u32 = 3; +pub const JGINFLAG_NUM: u32 = 4; +pub const JGINFLAG_STR: u32 = 5; +pub const JGINFLAG_HASHED: u32 = 16; +pub const JGIN_MAXLENGTH: u32 = 125; +pub const JENTRY_OFFLENMASK: u32 = 268435455; +pub const JENTRY_TYPEMASK: u32 = 1879048192; +pub const JENTRY_HAS_OFF: u32 = 2147483648; +pub const JENTRY_ISSTRING: u32 = 0; +pub const JENTRY_ISNUMERIC: u32 = 268435456; +pub const JENTRY_ISBOOL_FALSE: u32 = 536870912; +pub const JENTRY_ISBOOL_TRUE: u32 = 805306368; +pub const JENTRY_ISNULL: u32 = 1073741824; +pub const JENTRY_ISCONTAINER: u32 = 1342177280; +pub const JB_OFFSET_STRIDE: u32 = 32; +pub const JB_CMASK: u32 = 268435455; +pub const JB_FSCALAR: u32 = 268435456; +pub const JB_FOBJECT: u32 = 536870912; +pub const JB_FARRAY: u32 = 1073741824; +pub const ATTSTATSSLOT_VALUES: u32 = 1; +pub const ATTSTATSSLOT_NUMBERS: u32 = 2; +pub const DEFAULT_EQ_SEL: f64 = 0.005; +pub const DEFAULT_INEQ_SEL: f64 = 0.3333333333333333; +pub const DEFAULT_RANGE_INEQ_SEL: f64 = 0.005; +pub const DEFAULT_MULTIRANGE_INEQ_SEL: f64 = 0.005; +pub const DEFAULT_MATCH_SEL: f64 = 0.005; +pub const DEFAULT_MATCHING_SEL: f64 = 0.01; +pub const DEFAULT_NUM_DISTINCT: u32 = 200; +pub const DEFAULT_UNK_SEL: f64 = 0.005; +pub const DEFAULT_NOT_UNK_SEL: f64 = 0.995; +pub const SELFLAG_USED_DEFAULT: u32 = 1; +pub const RANGE_EMPTY_LITERAL: &[u8; 6usize] = b"empty\0"; +pub const RANGE_EMPTY: u32 = 1; +pub const RANGE_LB_INC: u32 = 2; +pub const RANGE_UB_INC: u32 = 4; +pub const RANGE_LB_INF: u32 = 8; +pub const RANGE_UB_INF: u32 = 16; +pub const RANGE_LB_NULL: u32 = 32; +pub const RANGE_UB_NULL: u32 = 64; +pub const RANGE_CONTAIN_EMPTY: u32 = 128; +pub const RANGESTRAT_BEFORE: u32 = 1; +pub const RANGESTRAT_OVERLEFT: u32 = 2; +pub const RANGESTRAT_OVERLAPS: u32 = 3; +pub const RANGESTRAT_OVERRIGHT: u32 = 4; +pub const RANGESTRAT_AFTER: u32 = 5; +pub const RANGESTRAT_ADJACENT: u32 = 6; +pub const RANGESTRAT_CONTAINS: u32 = 7; +pub const RANGESTRAT_CONTAINED_BY: u32 = 8; +pub const RANGESTRAT_CONTAINS_ELEM: u32 = 16; +pub const RANGESTRAT_EQ: u32 = 18; +pub type pg_int64 = ::std::os::raw::c_long; +pub type va_list = __builtin_va_list; +pub type __gnuc_va_list = __builtin_va_list; +pub type __u_char = ::std::os::raw::c_uchar; +pub type __u_short = ::std::os::raw::c_ushort; +pub type __u_int = ::std::os::raw::c_uint; +pub type __u_long = ::std::os::raw::c_ulong; +pub type __int8_t = ::std::os::raw::c_schar; +pub type __uint8_t = ::std::os::raw::c_uchar; +pub type __int16_t = ::std::os::raw::c_short; +pub type __uint16_t = ::std::os::raw::c_ushort; +pub type __int32_t = ::std::os::raw::c_int; +pub type __uint32_t = ::std::os::raw::c_uint; +pub type __int64_t = ::std::os::raw::c_long; +pub type __uint64_t = ::std::os::raw::c_ulong; +pub type __int_least8_t = __int8_t; +pub type __uint_least8_t = __uint8_t; +pub type __int_least16_t = __int16_t; +pub type __uint_least16_t = __uint16_t; +pub type __int_least32_t = __int32_t; +pub type __uint_least32_t = __uint32_t; +pub type __int_least64_t = __int64_t; +pub type __uint_least64_t = __uint64_t; +pub type __quad_t = ::std::os::raw::c_long; +pub type __u_quad_t = ::std::os::raw::c_ulong; +pub type __intmax_t = ::std::os::raw::c_long; +pub type __uintmax_t = ::std::os::raw::c_ulong; +pub type __dev_t = ::std::os::raw::c_ulong; +pub type __uid_t = ::std::os::raw::c_uint; +pub type __gid_t = ::std::os::raw::c_uint; +pub type __ino_t = ::std::os::raw::c_ulong; +pub type __ino64_t = ::std::os::raw::c_ulong; +pub type __mode_t = ::std::os::raw::c_uint; +pub type __nlink_t = ::std::os::raw::c_ulong; +pub type __off_t = ::std::os::raw::c_long; +pub type __off64_t = ::std::os::raw::c_long; +pub type __pid_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct __fsid_t { + pub __val: [::std::os::raw::c_int; 2usize], +} +pub type __clock_t = ::std::os::raw::c_long; +pub type __rlim_t = ::std::os::raw::c_ulong; +pub type __rlim64_t = ::std::os::raw::c_ulong; +pub type __id_t = ::std::os::raw::c_uint; +pub type __time_t = ::std::os::raw::c_long; +pub type __useconds_t = ::std::os::raw::c_uint; +pub type __suseconds_t = ::std::os::raw::c_long; +pub type __suseconds64_t = ::std::os::raw::c_long; +pub type __daddr_t = ::std::os::raw::c_int; +pub type __key_t = ::std::os::raw::c_int; +pub type __clockid_t = ::std::os::raw::c_int; +pub type __timer_t = *mut ::std::os::raw::c_void; +pub type __blksize_t = ::std::os::raw::c_long; +pub type __blkcnt_t = ::std::os::raw::c_long; +pub type __blkcnt64_t = ::std::os::raw::c_long; +pub type __fsblkcnt_t = ::std::os::raw::c_ulong; +pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; +pub type __fsfilcnt_t = ::std::os::raw::c_ulong; +pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; +pub type __fsword_t = ::std::os::raw::c_long; +pub type __ssize_t = ::std::os::raw::c_long; +pub type __syscall_slong_t = ::std::os::raw::c_long; +pub type __syscall_ulong_t = ::std::os::raw::c_ulong; +pub type __loff_t = __off64_t; +pub type __caddr_t = *mut ::std::os::raw::c_char; +pub type __intptr_t = ::std::os::raw::c_long; +pub type __socklen_t = ::std::os::raw::c_uint; +pub type __sig_atomic_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __mbstate_t { + pub __count: ::std::os::raw::c_int, + pub __value: __mbstate_t__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __mbstate_t__bindgen_ty_1 { + pub __wch: ::std::os::raw::c_uint, + pub __wchb: [::std::os::raw::c_char; 4usize], +} +impl Default for __mbstate_t__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for __mbstate_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _G_fpos_t { + pub __pos: __off_t, + pub __state: __mbstate_t, +} +impl Default for _G_fpos_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type __fpos_t = _G_fpos_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _G_fpos64_t { + pub __pos: __off64_t, + pub __state: __mbstate_t, +} +impl Default for _G_fpos64_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type __fpos64_t = _G_fpos64_t; +pub type __FILE = _IO_FILE; +pub type FILE = _IO_FILE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_marker { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_codecvt { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_wide_data { + _unused: [u8; 0], +} +pub type _IO_lock_t = ::std::os::raw::c_void; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _IO_FILE { + pub _flags: ::std::os::raw::c_int, + pub _IO_read_ptr: *mut ::std::os::raw::c_char, + pub _IO_read_end: *mut ::std::os::raw::c_char, + pub _IO_read_base: *mut ::std::os::raw::c_char, + pub _IO_write_base: *mut ::std::os::raw::c_char, + pub _IO_write_ptr: *mut ::std::os::raw::c_char, + pub _IO_write_end: *mut ::std::os::raw::c_char, + pub _IO_buf_base: *mut ::std::os::raw::c_char, + pub _IO_buf_end: *mut ::std::os::raw::c_char, + pub _IO_save_base: *mut ::std::os::raw::c_char, + pub _IO_backup_base: *mut ::std::os::raw::c_char, + pub _IO_save_end: *mut ::std::os::raw::c_char, + pub _markers: *mut _IO_marker, + pub _chain: *mut _IO_FILE, + pub _fileno: ::std::os::raw::c_int, + pub _flags2: ::std::os::raw::c_int, + pub _old_offset: __off_t, + pub _cur_column: ::std::os::raw::c_ushort, + pub _vtable_offset: ::std::os::raw::c_schar, + pub _shortbuf: [::std::os::raw::c_char; 1usize], + pub _lock: *mut _IO_lock_t, + pub _offset: __off64_t, + pub _codecvt: *mut _IO_codecvt, + pub _wide_data: *mut _IO_wide_data, + pub _freeres_list: *mut _IO_FILE, + pub _freeres_buf: *mut ::std::os::raw::c_void, + pub __pad5: usize, + pub _mode: ::std::os::raw::c_int, + pub _unused2: [::std::os::raw::c_char; 20usize], +} +impl Default for _IO_FILE { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type off_t = __off_t; +pub type fpos_t = __fpos_t; +pub type _Float32 = f32; +pub type _Float64 = f64; +pub type _Float32x = f64; +pub type _Float64x = u128; +#[pgrx_macros::pg_guard] +extern "C" { + #[link_name = "\u{1}__isoc99_fscanf"] + pub fn fscanf1( + __stream: *mut FILE, + __format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + #[link_name = "\u{1}__isoc99_scanf"] + pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + #[link_name = "\u{1}__isoc99_sscanf"] + pub fn sscanf1( + __s: *const ::std::os::raw::c_char, + __format: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + #[link_name = "\u{1}__isoc99_vfscanf"] + pub fn vfscanf1( + __s: *mut FILE, + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + #[link_name = "\u{1}__isoc99_vscanf"] + pub fn vscanf1( + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + #[link_name = "\u{1}__isoc99_vsscanf"] + pub fn vsscanf1( + __s: *const ::std::os::raw::c_char, + __format: *const ::std::os::raw::c_char, + __arg: *mut __va_list_tag, + ) -> ::std::os::raw::c_int; +} +pub type wchar_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct div_t { + pub quot: ::std::os::raw::c_int, + pub rem: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ldiv_t { + pub quot: ::std::os::raw::c_long, + pub rem: ::std::os::raw::c_long, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct lldiv_t { + pub quot: ::std::os::raw::c_longlong, + pub rem: ::std::os::raw::c_longlong, +} +pub type u_char = __u_char; +pub type u_short = __u_short; +pub type u_int = __u_int; +pub type u_long = __u_long; +pub type quad_t = __quad_t; +pub type u_quad_t = __u_quad_t; +pub type fsid_t = __fsid_t; +pub type loff_t = __loff_t; +pub type ino_t = __ino_t; +pub type dev_t = __dev_t; +pub type gid_t = __gid_t; +pub type mode_t = __mode_t; +pub type nlink_t = __nlink_t; +pub type uid_t = __uid_t; +pub type pid_t = __pid_t; +pub type id_t = __id_t; +pub type daddr_t = __daddr_t; +pub type caddr_t = __caddr_t; +pub type key_t = __key_t; +pub type clock_t = __clock_t; +pub type clockid_t = __clockid_t; +pub type time_t = __time_t; +pub type timer_t = __timer_t; +pub type ulong = ::std::os::raw::c_ulong; +pub type ushort = ::std::os::raw::c_ushort; +pub type uint = ::std::os::raw::c_uint; +pub type u_int8_t = __uint8_t; +pub type u_int16_t = __uint16_t; +pub type u_int32_t = __uint32_t; +pub type u_int64_t = __uint64_t; +pub type register_t = ::std::os::raw::c_long; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct __sigset_t { + pub __val: [::std::os::raw::c_ulong; 16usize], +} +pub type sigset_t = __sigset_t; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct timeval { + pub tv_sec: __time_t, + pub tv_usec: __suseconds_t, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct timespec { + pub tv_sec: __time_t, + pub tv_nsec: __syscall_slong_t, +} +pub type suseconds_t = __suseconds_t; +pub type __fd_mask = ::std::os::raw::c_long; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct fd_set { + pub __fds_bits: [__fd_mask; 16usize], +} +pub type fd_mask = __fd_mask; +pub type blksize_t = __blksize_t; +pub type blkcnt_t = __blkcnt_t; +pub type fsblkcnt_t = __fsblkcnt_t; +pub type fsfilcnt_t = __fsfilcnt_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub union __atomic_wide_counter { + pub __value64: ::std::os::raw::c_ulonglong, + pub __value32: __atomic_wide_counter__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct __atomic_wide_counter__bindgen_ty_1 { + pub __low: ::std::os::raw::c_uint, + pub __high: ::std::os::raw::c_uint, +} +impl Default for __atomic_wide_counter { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_internal_list { + pub __prev: *mut __pthread_internal_list, + pub __next: *mut __pthread_internal_list, +} +impl Default for __pthread_internal_list { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type __pthread_list_t = __pthread_internal_list; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_internal_slist { + pub __next: *mut __pthread_internal_slist, +} +impl Default for __pthread_internal_slist { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type __pthread_slist_t = __pthread_internal_slist; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_mutex_s { + pub __lock: ::std::os::raw::c_int, + pub __count: ::std::os::raw::c_uint, + pub __owner: ::std::os::raw::c_int, + pub __nusers: ::std::os::raw::c_uint, + pub __kind: ::std::os::raw::c_int, + pub __spins: ::std::os::raw::c_short, + pub __elision: ::std::os::raw::c_short, + pub __list: __pthread_list_t, +} +impl Default for __pthread_mutex_s { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct __pthread_rwlock_arch_t { + pub __readers: ::std::os::raw::c_uint, + pub __writers: ::std::os::raw::c_uint, + pub __wrphase_futex: ::std::os::raw::c_uint, + pub __writers_futex: ::std::os::raw::c_uint, + pub __pad3: ::std::os::raw::c_uint, + pub __pad4: ::std::os::raw::c_uint, + pub __cur_writer: ::std::os::raw::c_int, + pub __shared: ::std::os::raw::c_int, + pub __rwelision: ::std::os::raw::c_schar, + pub __pad1: [::std::os::raw::c_uchar; 7usize], + pub __pad2: ::std::os::raw::c_ulong, + pub __flags: ::std::os::raw::c_uint, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_cond_s { + pub __wseq: __atomic_wide_counter, + pub __g1_start: __atomic_wide_counter, + pub __g_refs: [::std::os::raw::c_uint; 2usize], + pub __g_size: [::std::os::raw::c_uint; 2usize], + pub __g1_orig_size: ::std::os::raw::c_uint, + pub __wrefs: ::std::os::raw::c_uint, + pub __g_signals: [::std::os::raw::c_uint; 2usize], +} +impl Default for __pthread_cond_s { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type __tss_t = ::std::os::raw::c_uint; +pub type __thrd_t = ::std::os::raw::c_ulong; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct __once_flag { + pub __data: ::std::os::raw::c_int, +} +pub type pthread_t = ::std::os::raw::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutexattr_t { + pub __size: [::std::os::raw::c_char; 4usize], + pub __align: ::std::os::raw::c_int, +} +impl Default for pthread_mutexattr_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_condattr_t { + pub __size: [::std::os::raw::c_char; 4usize], + pub __align: ::std::os::raw::c_int, +} +impl Default for pthread_condattr_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type pthread_key_t = ::std::os::raw::c_uint; +pub type pthread_once_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_attr_t { + pub __size: [::std::os::raw::c_char; 56usize], + pub __align: ::std::os::raw::c_long, +} +impl Default for pthread_attr_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutex_t { + pub __data: __pthread_mutex_s, + pub __size: [::std::os::raw::c_char; 40usize], + pub __align: ::std::os::raw::c_long, +} +impl Default for pthread_mutex_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_cond_t { + pub __data: __pthread_cond_s, + pub __size: [::std::os::raw::c_char; 48usize], + pub __align: ::std::os::raw::c_longlong, +} +impl Default for pthread_cond_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlock_t { + pub __data: __pthread_rwlock_arch_t, + pub __size: [::std::os::raw::c_char; 56usize], + pub __align: ::std::os::raw::c_long, +} +impl Default for pthread_rwlock_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlockattr_t { + pub __size: [::std::os::raw::c_char; 8usize], + pub __align: ::std::os::raw::c_long, +} +impl Default for pthread_rwlockattr_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type pthread_spinlock_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_barrier_t { + pub __size: [::std::os::raw::c_char; 32usize], + pub __align: ::std::os::raw::c_long, +} +impl Default for pthread_barrier_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_barrierattr_t { + pub __size: [::std::os::raw::c_char; 4usize], + pub __align: ::std::os::raw::c_int, +} +impl Default for pthread_barrierattr_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct random_data { + pub fptr: *mut i32, + pub rptr: *mut i32, + pub state: *mut i32, + pub rand_type: ::std::os::raw::c_int, + pub rand_deg: ::std::os::raw::c_int, + pub rand_sep: ::std::os::raw::c_int, + pub end_ptr: *mut i32, +} +impl Default for random_data { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct drand48_data { + pub __x: [::std::os::raw::c_ushort; 3usize], + pub __old_x: [::std::os::raw::c_ushort; 3usize], + pub __c: ::std::os::raw::c_ushort, + pub __init: ::std::os::raw::c_ushort, + pub __a: ::std::os::raw::c_ulonglong, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn at_quick_exit( + __func: ::std::option::Option, + ) -> ::std::os::raw::c_int; +} +pub type __compar_fn_t = ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __memcmpeq( + __s1: *const ::std::os::raw::c_void, + __s2: *const ::std::os::raw::c_void, + __n: usize, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __locale_struct { + pub __locales: [*mut __locale_data; 13usize], + pub __ctype_b: *const ::std::os::raw::c_ushort, + pub __ctype_tolower: *const ::std::os::raw::c_int, + pub __ctype_toupper: *const ::std::os::raw::c_int, + pub __names: [*const ::std::os::raw::c_char; 13usize], +} +impl Default for __locale_struct { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type __locale_t = *mut __locale_struct; +pub type locale_t = __locale_t; +#[repr(C)] +#[repr(align(16))] +#[derive(Debug, Default, Copy, Clone)] +pub struct max_align_t { + pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, + pub __bindgen_padding_0: u64, + pub __clang_max_align_nonce2: u128, +} +pub type int_least8_t = __int_least8_t; +pub type int_least16_t = __int_least16_t; +pub type int_least32_t = __int_least32_t; +pub type int_least64_t = __int_least64_t; +pub type uint_least8_t = __uint_least8_t; +pub type uint_least16_t = __uint_least16_t; +pub type uint_least32_t = __uint_least32_t; +pub type uint_least64_t = __uint_least64_t; +pub type int_fast8_t = ::std::os::raw::c_schar; +pub type int_fast16_t = ::std::os::raw::c_long; +pub type int_fast32_t = ::std::os::raw::c_long; +pub type int_fast64_t = ::std::os::raw::c_long; +pub type uint_fast8_t = ::std::os::raw::c_uchar; +pub type uint_fast16_t = ::std::os::raw::c_ulong; +pub type uint_fast32_t = ::std::os::raw::c_ulong; +pub type uint_fast64_t = ::std::os::raw::c_ulong; +pub type intmax_t = __intmax_t; +pub type uintmax_t = __uintmax_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct lconv { + pub decimal_point: *mut ::std::os::raw::c_char, + pub thousands_sep: *mut ::std::os::raw::c_char, + pub grouping: *mut ::std::os::raw::c_char, + pub int_curr_symbol: *mut ::std::os::raw::c_char, + pub currency_symbol: *mut ::std::os::raw::c_char, + pub mon_decimal_point: *mut ::std::os::raw::c_char, + pub mon_thousands_sep: *mut ::std::os::raw::c_char, + pub mon_grouping: *mut ::std::os::raw::c_char, + pub positive_sign: *mut ::std::os::raw::c_char, + pub negative_sign: *mut ::std::os::raw::c_char, + pub int_frac_digits: ::std::os::raw::c_char, + pub frac_digits: ::std::os::raw::c_char, + pub p_cs_precedes: ::std::os::raw::c_char, + pub p_sep_by_space: ::std::os::raw::c_char, + pub n_cs_precedes: ::std::os::raw::c_char, + pub n_sep_by_space: ::std::os::raw::c_char, + pub p_sign_posn: ::std::os::raw::c_char, + pub n_sign_posn: ::std::os::raw::c_char, + pub int_p_cs_precedes: ::std::os::raw::c_char, + pub int_p_sep_by_space: ::std::os::raw::c_char, + pub int_n_cs_precedes: ::std::os::raw::c_char, + pub int_n_sep_by_space: ::std::os::raw::c_char, + pub int_p_sign_posn: ::std::os::raw::c_char, + pub int_n_sign_posn: ::std::os::raw::c_char, +} +impl Default for lconv { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type pg_funcptr_t = ::std::option::Option; +pub type Pointer = *mut ::std::os::raw::c_char; +pub type int8 = ::std::os::raw::c_schar; +pub type int16 = ::std::os::raw::c_short; +pub type int32 = ::std::os::raw::c_int; +pub type uint8 = ::std::os::raw::c_uchar; +pub type uint16 = ::std::os::raw::c_ushort; +pub type uint32 = ::std::os::raw::c_uint; +pub type bits8 = uint8; +pub type bits16 = uint16; +pub type bits32 = uint32; +pub type int64 = ::std::os::raw::c_long; +pub type uint64 = ::std::os::raw::c_ulong; +pub type int128 = i128; +pub type uint128 = u128; +pub type Size = usize; +pub type Index = ::std::os::raw::c_uint; +pub type Offset = ::std::os::raw::c_int; +pub type float4 = f32; +pub type float8 = f64; +pub type regproc = Oid; +pub type RegProcedure = regproc; +pub type TransactionId = uint32; +pub type LocalTransactionId = uint32; +pub type SubTransactionId = uint32; +pub type MultiXactId = TransactionId; +pub type MultiXactOffset = uint32; +pub type CommandId = uint32; +#[repr(C)] +#[derive(Debug, Default)] +pub struct varlena { + pub vl_len_: [::std::os::raw::c_char; 4usize], + pub vl_dat: __IncompleteArrayField<::std::os::raw::c_char>, +} +pub type bytea = varlena; +pub type text = varlena; +pub type BpChar = varlena; +pub type VarChar = varlena; +#[repr(C)] +#[derive(Debug)] +pub struct int2vector { + pub vl_len_: int32, + pub ndim: ::std::os::raw::c_int, + pub dataoffset: int32, + pub elemtype: Oid, + pub dim1: ::std::os::raw::c_int, + pub lbound1: ::std::os::raw::c_int, + pub values: __IncompleteArrayField, +} +impl Default for int2vector { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug)] +pub struct oidvector { + pub vl_len_: int32, + pub ndim: ::std::os::raw::c_int, + pub dataoffset: int32, + pub elemtype: Oid, + pub dim1: ::std::os::raw::c_int, + pub lbound1: ::std::os::raw::c_int, + pub values: __IncompleteArrayField, +} +impl Default for oidvector { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nameData { + pub data: [::std::os::raw::c_char; 64usize], +} +impl Default for nameData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type NameData = nameData; +pub type Name = *mut NameData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExceptionalCondition( + conditionName: *const ::std::os::raw::c_char, + fileName: *const ::std::os::raw::c_char, + lineNumber: ::std::os::raw::c_int, + ) -> !; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union PGAlignedBlock { + pub data: [::std::os::raw::c_char; 8192usize], + pub force_align_d: f64, + pub force_align_i64: int64, +} +impl Default for PGAlignedBlock { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[repr(align(4096))] +#[derive(Copy, Clone)] +pub union PGIOAlignedBlock { + pub data: [::std::os::raw::c_char; 8192usize], + pub force_align_d: f64, + pub force_align_i64: int64, +} +impl Default for PGIOAlignedBlock { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[repr(align(4096))] +#[derive(Copy, Clone)] +pub union PGAlignedXLogBlock { + pub data: [::std::os::raw::c_char; 8192usize], + pub force_align_d: f64, + pub force_align_i64: int64, +} +impl Default for PGAlignedXLogBlock { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const _ISupper: _bindgen_ty_1 = 256; +pub const _ISlower: _bindgen_ty_1 = 512; +pub const _ISalpha: _bindgen_ty_1 = 1024; +pub const _ISdigit: _bindgen_ty_1 = 2048; +pub const _ISxdigit: _bindgen_ty_1 = 4096; +pub const _ISspace: _bindgen_ty_1 = 8192; +pub const _ISprint: _bindgen_ty_1 = 16384; +pub const _ISgraph: _bindgen_ty_1 = 32768; +pub const _ISblank: _bindgen_ty_1 = 1; +pub const _IScntrl: _bindgen_ty_1 = 2; +pub const _ISpunct: _bindgen_ty_1 = 4; +pub const _ISalnum: _bindgen_ty_1 = 8; +pub type _bindgen_ty_1 = ::std::os::raw::c_uint; +pub type pgsocket = ::std::os::raw::c_int; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_set_noblock(sock: pgsocket) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_set_block(sock: pgsocket) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_drive_prefix(path: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn first_dir_separator( + filename: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn last_dir_separator( + filename: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn first_path_var_separator( + pathlist: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn join_path_components( + ret_path: *mut ::std::os::raw::c_char, + head: *const ::std::os::raw::c_char, + tail: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn canonicalize_path(path: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_native_path(filename: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cleanup_path(path: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_contains_parent_reference(path: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_is_relative_and_below_cwd(path: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_is_prefix_of_path( + path1: *const ::std::os::raw::c_char, + path2: *const ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_absolute_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_progname(argv0: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_share_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_etc_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_include_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_pkginclude_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_includeserver_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_lib_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_pkglib_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_locale_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_doc_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_html_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_man_path( + my_exec_path: *const ::std::os::raw::c_char, + ret_path: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_home_path(ret_path: *mut ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_parent_directory(path: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgfnames(path: *const ::std::os::raw::c_char) -> *mut *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgfnames_cleanup(filenames: *mut *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_pglocale_pgservice( + argv0: *const ::std::os::raw::c_char, + app: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn validate_exec(path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_my_exec( + argv0: *const ::std::os::raw::c_char, + retpath: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_other_exec( + argv0: *const ::std::os::raw::c_char, + target: *const ::std::os::raw::c_char, + versionstr: *const ::std::os::raw::c_char, + retpath: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pipe_read_line( + cmd: *mut ::std::os::raw::c_char, + line: *mut ::std::os::raw::c_char, + maxsize: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_usleep(microsec: ::std::os::raw::c_long); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strcasecmp( + s1: *const ::std::os::raw::c_char, + s2: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strncasecmp( + s1: *const ::std::os::raw::c_char, + s2: *const ::std::os::raw::c_char, + n: usize, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_toupper(ch: ::std::os::raw::c_uchar) -> ::std::os::raw::c_uchar; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tolower(ch: ::std::os::raw::c_uchar) -> ::std::os::raw::c_uchar; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ascii_toupper(ch: ::std::os::raw::c_uchar) -> ::std::os::raw::c_uchar; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ascii_tolower(ch: ::std::os::raw::c_uchar) -> ::std::os::raw::c_uchar; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_snprintf( + str_: *mut ::std::os::raw::c_char, + count: usize, + fmt: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_sprintf( + str_: *mut ::std::os::raw::c_char, + fmt: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_fprintf( + stream: *mut FILE, + fmt: *const ::std::os::raw::c_char, + ... + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_printf(fmt: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strfromd( + str_: *mut ::std::os::raw::c_char, + count: usize, + precision: ::std::os::raw::c_int, + value: f64, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strerror(errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strerror_r( + errnum: ::std::os::raw::c_int, + buf: *mut ::std::os::raw::c_char, + buflen: usize, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strsignal(signum: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pclose_check(stream: *mut FILE) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn rmtree(path: *const ::std::os::raw::c_char, rmtopdir: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getpeereid( + sock: ::std::os::raw::c_int, + uid: *mut uid_t, + gid: *mut gid_t, + ) -> ::std::os::raw::c_int; +} +pub type float_t = f32; +pub type double_t = f64; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __acos(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __asin(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __atan(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __atan2(__y: f64, __x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __cos(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __sin(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __tan(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __cosh(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __sinh(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __tanh(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __acosh(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __asinh(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __atanh(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __exp(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log10(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __expm1(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log1p(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __logb(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __exp2(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log2(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __pow(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __sqrt(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __hypot(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __cbrt(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ceil(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fabs(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __floor(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fmod(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __drem(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __significand(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __copysign(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __j0(arg1: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __j1(arg1: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __y0(arg1: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __y1(arg1: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __erf(arg1: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __erfc(arg1: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lgamma(arg1: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __tgamma(arg1: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __gamma(arg1: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __rint(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nextafter(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nexttoward(__x: f64, __y: u128) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __remainder(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nearbyint(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __round(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __trunc(__x: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lround(__x: f64) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fdim(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fmax(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fmin(__x: f64, __y: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __scalb(__x: f64, __n: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __acosf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __asinf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __atanf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __atan2f(__y: f32, __x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __cosf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __sinf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __tanf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __coshf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __sinhf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __tanhf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __acoshf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __asinhf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __atanhf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __expf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __logf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log10f(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __expm1f(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log1pf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __logbf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __exp2f(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log2f(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __powf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __sqrtf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __hypotf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __cbrtf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ceilf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fabsf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __floorf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fmodf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __dremf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __significandf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __copysignf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __j0f(arg1: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __j1f(arg1: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __y0f(arg1: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __y1f(arg1: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __erff(arg1: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __erfcf(arg1: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lgammaf(arg1: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __tgammaf(arg1: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __gammaf(arg1: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __rintf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nextafterf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nexttowardf(__x: f32, __y: u128) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __remainderf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nearbyintf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __roundf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __truncf(__x: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fdimf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fmaxf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fminf(__x: f32, __y: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __scalbf(__x: f32, __n: f32) -> f32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __acosl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __asinl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __atanl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __atan2l(__y: u128, __x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __cosl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __sinl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __tanl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __coshl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __sinhl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __tanhl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __acoshl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __asinhl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __atanhl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __expl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __frexpl(__x: u128, __exponent: *mut ::std::os::raw::c_int) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ldexpl(__x: u128, __exponent: ::std::os::raw::c_int) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __logl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log10l(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __modfl(__x: u128, __iptr: *mut u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __expm1l(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log1pl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __logbl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __exp2l(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __log2l(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __powl(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __sqrtl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __hypotl(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __cbrtl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ceill(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fabsl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __floorl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fmodl(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __dreml(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __significandl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __copysignl(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nanl(__tagb: *const ::std::os::raw::c_char) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __j0l(arg1: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __j1l(arg1: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __jnl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __y0l(arg1: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __y1l(arg1: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ynl(arg1: ::std::os::raw::c_int, arg2: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __erfl(arg1: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __erfcl(arg1: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lgammal(arg1: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __tgammal(arg1: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __gammal(arg1: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lgammal_r(arg1: u128, __signgamp: *mut ::std::os::raw::c_int) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __rintl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nextafterl(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nexttowardl(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __remainderl(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __scalbnl(__x: u128, __n: ::std::os::raw::c_int) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __ilogbl(__x: u128) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __scalblnl(__x: u128, __n: ::std::os::raw::c_long) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __nearbyintl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __roundl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __truncl(__x: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __remquol(__x: u128, __y: u128, __quo: *mut ::std::os::raw::c_int) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lrintl(__x: u128) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __llrintl(__x: u128) -> ::std::os::raw::c_longlong; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __lroundl(__x: u128) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __llroundl(__x: u128) -> ::std::os::raw::c_longlong; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fdiml(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fmaxl(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fminl(__x: u128, __y: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __fmal(__x: u128, __y: u128, __z: u128) -> u128; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn __scalbl(__x: u128, __n: u128) -> u128; +} +pub const FP_NAN: _bindgen_ty_2 = 0; +pub const FP_INFINITE: _bindgen_ty_2 = 1; +pub const FP_ZERO: _bindgen_ty_2 = 2; +pub const FP_SUBNORMAL: _bindgen_ty_2 = 3; +pub const FP_NORMAL: _bindgen_ty_2 = 4; +pub type _bindgen_ty_2 = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn strlcat( + dst: *mut ::std::os::raw::c_char, + src: *const ::std::os::raw::c_char, + siz: usize, + ) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn strlcpy( + dst: *mut ::std::os::raw::c_char, + src: *const ::std::os::raw::c_char, + siz: usize, + ) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_user_name( + user_id: uid_t, + buffer: *mut ::std::os::raw::c_char, + buflen: usize, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_user_home_dir( + user_id: uid_t, + buffer: *mut ::std::os::raw::c_char, + buflen: usize, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_qsort( + base: *mut ::std::os::raw::c_void, + nel: usize, + elsize: usize, + cmp: ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_qsort_strcmp( + a: *const ::std::os::raw::c_void, + b: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +pub type qsort_arg_comparator = ::std::option::Option< + unsafe extern "C" fn( + a: *const ::std::os::raw::c_void, + b: *const ::std::os::raw::c_void, + arg: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn qsort_arg( + base: *mut ::std::os::raw::c_void, + nel: usize, + elsize: usize, + cmp: qsort_arg_comparator, + arg: *mut ::std::os::raw::c_void, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn qsort_interruptible( + base: *mut ::std::os::raw::c_void, + nel: usize, + elsize: usize, + cmp: qsort_arg_comparator, + arg: *mut ::std::os::raw::c_void, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bsearch_arg( + key: *const ::std::os::raw::c_void, + base0: *const ::std::os::raw::c_void, + nmemb: usize, + size: usize, + compar: ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + arg3: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, + >, + arg: *mut ::std::os::raw::c_void, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_encoding_from_locale( + ctype: *const ::std::os::raw::c_char, + write_message: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_inet_net_ntop( + af: ::std::os::raw::c_int, + src: *const ::std::os::raw::c_void, + bits: ::std::os::raw::c_int, + dst: *mut ::std::os::raw::c_char, + size: usize, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strong_random_init(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strong_random(buf: *mut ::std::os::raw::c_void, len: usize) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_check_dir(dir: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mkdir_p( + path: *mut ::std::os::raw::c_char, + omode: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +pub type pqsigfunc = + ::std::option::Option; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pqsignal(signo: ::std::os::raw::c_int, func: pqsigfunc) -> pqsigfunc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn escape_single_quotes_ascii( + src: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn wait_result_to_str(exitstatus: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn wait_result_is_signal( + exit_status: ::std::os::raw::c_int, + signum: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn wait_result_is_any_signal( + exit_status: ::std::os::raw::c_int, + include_command_not_found: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn wait_result_to_exit_code(exit_status: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct __jmp_buf_tag { + pub __jmpbuf: __jmp_buf, + pub __mask_was_saved: ::std::os::raw::c_int, + pub __saved_mask: __sigset_t, +} +pub type jmp_buf = [__jmp_buf_tag; 1usize]; +pub type sigjmp_buf = [__jmp_buf_tag; 1usize]; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StringInfoData { + pub data: *mut ::std::os::raw::c_char, + pub len: ::std::os::raw::c_int, + pub maxlen: ::std::os::raw::c_int, + pub cursor: ::std::os::raw::c_int, +} +impl Default for StringInfoData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type StringInfo = *mut StringInfoData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeStringInfo() -> StringInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initStringInfo(str_: StringInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn resetStringInfo(str_: StringInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn appendStringInfo(str_: StringInfo, fmt: *const ::std::os::raw::c_char, ...); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn appendStringInfoString(str_: StringInfo, s: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn appendStringInfoChar(str_: StringInfo, ch: ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn appendStringInfoSpaces(str_: StringInfo, count: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn appendBinaryStringInfo( + str_: StringInfo, + data: *const ::std::os::raw::c_void, + datalen: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn appendBinaryStringInfoNT( + str_: StringInfo, + data: *const ::std::os::raw::c_void, + datalen: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enlargeStringInfo(str_: StringInfo, needed: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn message_level_is_interesting(elevel: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errstart_cold( + elevel: ::std::os::raw::c_int, + domain: *const ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errcode_for_file_access() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errcode_for_socket_access() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errmsg_internal(fmt: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errmsg_plural( + fmt_singular: *const ::std::os::raw::c_char, + fmt_plural: *const ::std::os::raw::c_char, + n: ::std::os::raw::c_ulong, + ... + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errdetail_internal(fmt: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errdetail_log(fmt: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errdetail_log_plural( + fmt_singular: *const ::std::os::raw::c_char, + fmt_plural: *const ::std::os::raw::c_char, + n: ::std::os::raw::c_ulong, + ... + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errdetail_plural( + fmt_singular: *const ::std::os::raw::c_char, + fmt_plural: *const ::std::os::raw::c_char, + n: ::std::os::raw::c_ulong, + ... + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errhint_plural( + fmt_singular: *const ::std::os::raw::c_char, + fmt_plural: *const ::std::os::raw::c_char, + n: ::std::os::raw::c_ulong, + ... + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_errcontext_domain(domain: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errhidestmt(hide_stmt: bool) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errhidecontext(hide_ctx: bool) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errbacktrace() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errposition(cursorpos: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn internalerrposition(cursorpos: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn internalerrquery(query: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn err_generic_string( + field: ::std::os::raw::c_int, + str_: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn geterrcode() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn geterrposition() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getinternalerrposition() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errsave_start(context: *mut Node, domain: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errsave_finish( + context: *mut Node, + filename: *const ::std::os::raw::c_char, + lineno: ::std::os::raw::c_int, + funcname: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pre_format_elog_string( + errnumber: ::std::os::raw::c_int, + domain: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn format_elog_string( + fmt: *const ::std::os::raw::c_char, + ... + ) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ErrorContextCallback { + pub previous: *mut ErrorContextCallback, + pub callback: ::std::option::Option, + pub arg: *mut ::std::os::raw::c_void, +} +impl Default for ErrorContextCallback { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut error_context_stack: *mut ErrorContextCallback; +} +extern "C" { + pub static mut PG_exception_stack: *mut sigjmp_buf; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ErrorData { + pub elevel: ::std::os::raw::c_int, + pub output_to_server: bool, + pub output_to_client: bool, + pub hide_stmt: bool, + pub hide_ctx: bool, + pub filename: *const ::std::os::raw::c_char, + pub lineno: ::std::os::raw::c_int, + pub funcname: *const ::std::os::raw::c_char, + pub domain: *const ::std::os::raw::c_char, + pub context_domain: *const ::std::os::raw::c_char, + pub sqlerrcode: ::std::os::raw::c_int, + pub message: *mut ::std::os::raw::c_char, + pub detail: *mut ::std::os::raw::c_char, + pub detail_log: *mut ::std::os::raw::c_char, + pub hint: *mut ::std::os::raw::c_char, + pub context: *mut ::std::os::raw::c_char, + pub backtrace: *mut ::std::os::raw::c_char, + pub message_id: *const ::std::os::raw::c_char, + pub schema_name: *mut ::std::os::raw::c_char, + pub table_name: *mut ::std::os::raw::c_char, + pub column_name: *mut ::std::os::raw::c_char, + pub datatype_name: *mut ::std::os::raw::c_char, + pub constraint_name: *mut ::std::os::raw::c_char, + pub cursorpos: ::std::os::raw::c_int, + pub internalpos: ::std::os::raw::c_int, + pub internalquery: *mut ::std::os::raw::c_char, + pub saved_errno: ::std::os::raw::c_int, + pub assoc_context: *mut MemoryContextData, +} +impl Default for ErrorData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EmitErrorReport(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CopyErrorData() -> *mut ErrorData; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeErrorData(edata: *mut ErrorData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FlushErrorState(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReThrowError(edata: *mut ErrorData) -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ThrowErrorData(edata: *mut ErrorData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetErrorContextStack() -> *mut ::std::os::raw::c_char; +} +pub type emit_log_hook_type = ::std::option::Option; +extern "C" { + pub static mut emit_log_hook: emit_log_hook_type; +} +pub const PGErrorVerbosity_PGERROR_TERSE: PGErrorVerbosity = 0; +pub const PGErrorVerbosity_PGERROR_DEFAULT: PGErrorVerbosity = 1; +pub const PGErrorVerbosity_PGERROR_VERBOSE: PGErrorVerbosity = 2; +pub type PGErrorVerbosity = ::std::os::raw::c_uint; +extern "C" { + pub static mut Log_error_verbosity: ::std::os::raw::c_int; +} +extern "C" { + pub static mut Log_line_prefix: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut Log_destination: ::std::os::raw::c_int; +} +extern "C" { + pub static mut Log_destination_string: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut syslog_sequence_numbers: bool; +} +extern "C" { + pub static mut syslog_split_messages: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn log_status_format( + buf: StringInfo, + format: *const ::std::os::raw::c_char, + edata: *mut ErrorData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DebugFileOpen(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unpack_sql_state(sql_state: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_error_recursion_trouble() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reset_formatted_start_time(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_formatted_start_time() -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_formatted_log_time() -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_backend_type_for_log() -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_log_of_query(edata: *mut ErrorData) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn error_severity(elevel: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn write_pipe_chunks( + data: *mut ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + dest: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn write_csvlog(edata: *mut ErrorData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn write_jsonlog(edata: *mut ErrorData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn write_stderr(fmt: *const ::std::os::raw::c_char, ...); +} +pub type MemoryContext = *mut MemoryContextData; +pub type MemoryContextCallbackFunction = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MemoryContextCallback { + pub func: MemoryContextCallbackFunction, + pub arg: *mut ::std::os::raw::c_void, + pub next: *mut MemoryContextCallback, +} +impl Default for MemoryContextCallback { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut CurrentMemoryContext: MemoryContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextAlloc(context: MemoryContext, size: Size) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextAllocZero( + context: MemoryContext, + size: Size, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextAllocZeroAligned( + context: MemoryContext, + size: Size, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextAllocExtended( + context: MemoryContext, + size: Size, + flags: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextAllocAligned( + context: MemoryContext, + size: Size, + alignto: Size, + flags: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn palloc(size: Size) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn palloc0(size: Size) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn palloc_extended(size: Size, flags: ::std::os::raw::c_int) + -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn palloc_aligned( + size: Size, + alignto: Size, + flags: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn repalloc( + pointer: *mut ::std::os::raw::c_void, + size: Size, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn repalloc_extended( + pointer: *mut ::std::os::raw::c_void, + size: Size, + flags: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn repalloc0( + pointer: *mut ::std::os::raw::c_void, + oldsize: Size, + size: Size, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pfree(pointer: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextAllocHuge( + context: MemoryContext, + size: Size, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn repalloc_huge( + pointer: *mut ::std::os::raw::c_void, + size: Size, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextRegisterResetCallback( + context: MemoryContext, + cb: *mut MemoryContextCallback, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextStrdup( + context: MemoryContext, + string: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pstrdup(in_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pnstrdup(in_: *const ::std::os::raw::c_char, len: Size) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pchomp(in_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn psprintf(fmt: *const ::std::os::raw::c_char, ...) -> *mut ::std::os::raw::c_char; +} +pub type AttrNumber = int16; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_attribute { + pub attrelid: Oid, + pub attname: NameData, + pub atttypid: Oid, + pub attlen: int16, + pub attnum: int16, + pub attcacheoff: int32, + pub atttypmod: int32, + pub attndims: int16, + pub attbyval: bool, + pub attalign: ::std::os::raw::c_char, + pub attstorage: ::std::os::raw::c_char, + pub attcompression: ::std::os::raw::c_char, + pub attnotnull: bool, + pub atthasdef: bool, + pub atthasmissing: bool, + pub attidentity: ::std::os::raw::c_char, + pub attgenerated: ::std::os::raw::c_char, + pub attisdropped: bool, + pub attislocal: bool, + pub attinhcount: int16, + pub attstattarget: int16, + pub attcollation: Oid, +} +impl Default for FormData_pg_attribute { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_attribute = *mut FormData_pg_attribute; +extern "C" { + pub static mut no_such_variable: ::std::os::raw::c_int; +} +pub const NodeTag_T_Invalid: NodeTag = 0; +pub const NodeTag_T_List: NodeTag = 1; +pub const NodeTag_T_Alias: NodeTag = 2; +pub const NodeTag_T_RangeVar: NodeTag = 3; +pub const NodeTag_T_TableFunc: NodeTag = 4; +pub const NodeTag_T_IntoClause: NodeTag = 5; +pub const NodeTag_T_Var: NodeTag = 6; +pub const NodeTag_T_Const: NodeTag = 7; +pub const NodeTag_T_Param: NodeTag = 8; +pub const NodeTag_T_Aggref: NodeTag = 9; +pub const NodeTag_T_GroupingFunc: NodeTag = 10; +pub const NodeTag_T_WindowFunc: NodeTag = 11; +pub const NodeTag_T_SubscriptingRef: NodeTag = 12; +pub const NodeTag_T_FuncExpr: NodeTag = 13; +pub const NodeTag_T_NamedArgExpr: NodeTag = 14; +pub const NodeTag_T_OpExpr: NodeTag = 15; +pub const NodeTag_T_DistinctExpr: NodeTag = 16; +pub const NodeTag_T_NullIfExpr: NodeTag = 17; +pub const NodeTag_T_ScalarArrayOpExpr: NodeTag = 18; +pub const NodeTag_T_BoolExpr: NodeTag = 19; +pub const NodeTag_T_SubLink: NodeTag = 20; +pub const NodeTag_T_SubPlan: NodeTag = 21; +pub const NodeTag_T_AlternativeSubPlan: NodeTag = 22; +pub const NodeTag_T_FieldSelect: NodeTag = 23; +pub const NodeTag_T_FieldStore: NodeTag = 24; +pub const NodeTag_T_RelabelType: NodeTag = 25; +pub const NodeTag_T_CoerceViaIO: NodeTag = 26; +pub const NodeTag_T_ArrayCoerceExpr: NodeTag = 27; +pub const NodeTag_T_ConvertRowtypeExpr: NodeTag = 28; +pub const NodeTag_T_CollateExpr: NodeTag = 29; +pub const NodeTag_T_CaseExpr: NodeTag = 30; +pub const NodeTag_T_CaseWhen: NodeTag = 31; +pub const NodeTag_T_CaseTestExpr: NodeTag = 32; +pub const NodeTag_T_ArrayExpr: NodeTag = 33; +pub const NodeTag_T_RowExpr: NodeTag = 34; +pub const NodeTag_T_RowCompareExpr: NodeTag = 35; +pub const NodeTag_T_CoalesceExpr: NodeTag = 36; +pub const NodeTag_T_MinMaxExpr: NodeTag = 37; +pub const NodeTag_T_SQLValueFunction: NodeTag = 38; +pub const NodeTag_T_XmlExpr: NodeTag = 39; +pub const NodeTag_T_JsonFormat: NodeTag = 40; +pub const NodeTag_T_JsonReturning: NodeTag = 41; +pub const NodeTag_T_JsonValueExpr: NodeTag = 42; +pub const NodeTag_T_JsonConstructorExpr: NodeTag = 43; +pub const NodeTag_T_JsonIsPredicate: NodeTag = 44; +pub const NodeTag_T_NullTest: NodeTag = 45; +pub const NodeTag_T_BooleanTest: NodeTag = 46; +pub const NodeTag_T_CoerceToDomain: NodeTag = 47; +pub const NodeTag_T_CoerceToDomainValue: NodeTag = 48; +pub const NodeTag_T_SetToDefault: NodeTag = 49; +pub const NodeTag_T_CurrentOfExpr: NodeTag = 50; +pub const NodeTag_T_NextValueExpr: NodeTag = 51; +pub const NodeTag_T_InferenceElem: NodeTag = 52; +pub const NodeTag_T_TargetEntry: NodeTag = 53; +pub const NodeTag_T_RangeTblRef: NodeTag = 54; +pub const NodeTag_T_JoinExpr: NodeTag = 55; +pub const NodeTag_T_FromExpr: NodeTag = 56; +pub const NodeTag_T_OnConflictExpr: NodeTag = 57; +pub const NodeTag_T_Query: NodeTag = 58; +pub const NodeTag_T_TypeName: NodeTag = 59; +pub const NodeTag_T_ColumnRef: NodeTag = 60; +pub const NodeTag_T_ParamRef: NodeTag = 61; +pub const NodeTag_T_A_Expr: NodeTag = 62; +pub const NodeTag_T_A_Const: NodeTag = 63; +pub const NodeTag_T_TypeCast: NodeTag = 64; +pub const NodeTag_T_CollateClause: NodeTag = 65; +pub const NodeTag_T_RoleSpec: NodeTag = 66; +pub const NodeTag_T_FuncCall: NodeTag = 67; +pub const NodeTag_T_A_Star: NodeTag = 68; +pub const NodeTag_T_A_Indices: NodeTag = 69; +pub const NodeTag_T_A_Indirection: NodeTag = 70; +pub const NodeTag_T_A_ArrayExpr: NodeTag = 71; +pub const NodeTag_T_ResTarget: NodeTag = 72; +pub const NodeTag_T_MultiAssignRef: NodeTag = 73; +pub const NodeTag_T_SortBy: NodeTag = 74; +pub const NodeTag_T_WindowDef: NodeTag = 75; +pub const NodeTag_T_RangeSubselect: NodeTag = 76; +pub const NodeTag_T_RangeFunction: NodeTag = 77; +pub const NodeTag_T_RangeTableFunc: NodeTag = 78; +pub const NodeTag_T_RangeTableFuncCol: NodeTag = 79; +pub const NodeTag_T_RangeTableSample: NodeTag = 80; +pub const NodeTag_T_ColumnDef: NodeTag = 81; +pub const NodeTag_T_TableLikeClause: NodeTag = 82; +pub const NodeTag_T_IndexElem: NodeTag = 83; +pub const NodeTag_T_DefElem: NodeTag = 84; +pub const NodeTag_T_LockingClause: NodeTag = 85; +pub const NodeTag_T_XmlSerialize: NodeTag = 86; +pub const NodeTag_T_PartitionElem: NodeTag = 87; +pub const NodeTag_T_PartitionSpec: NodeTag = 88; +pub const NodeTag_T_PartitionBoundSpec: NodeTag = 89; +pub const NodeTag_T_PartitionRangeDatum: NodeTag = 90; +pub const NodeTag_T_PartitionCmd: NodeTag = 91; +pub const NodeTag_T_RangeTblEntry: NodeTag = 92; +pub const NodeTag_T_RTEPermissionInfo: NodeTag = 93; +pub const NodeTag_T_RangeTblFunction: NodeTag = 94; +pub const NodeTag_T_TableSampleClause: NodeTag = 95; +pub const NodeTag_T_WithCheckOption: NodeTag = 96; +pub const NodeTag_T_SortGroupClause: NodeTag = 97; +pub const NodeTag_T_GroupingSet: NodeTag = 98; +pub const NodeTag_T_WindowClause: NodeTag = 99; +pub const NodeTag_T_RowMarkClause: NodeTag = 100; +pub const NodeTag_T_WithClause: NodeTag = 101; +pub const NodeTag_T_InferClause: NodeTag = 102; +pub const NodeTag_T_OnConflictClause: NodeTag = 103; +pub const NodeTag_T_CTESearchClause: NodeTag = 104; +pub const NodeTag_T_CTECycleClause: NodeTag = 105; +pub const NodeTag_T_CommonTableExpr: NodeTag = 106; +pub const NodeTag_T_MergeWhenClause: NodeTag = 107; +pub const NodeTag_T_MergeAction: NodeTag = 108; +pub const NodeTag_T_TriggerTransition: NodeTag = 109; +pub const NodeTag_T_JsonOutput: NodeTag = 110; +pub const NodeTag_T_JsonKeyValue: NodeTag = 111; +pub const NodeTag_T_JsonObjectConstructor: NodeTag = 112; +pub const NodeTag_T_JsonArrayConstructor: NodeTag = 113; +pub const NodeTag_T_JsonArrayQueryConstructor: NodeTag = 114; +pub const NodeTag_T_JsonAggConstructor: NodeTag = 115; +pub const NodeTag_T_JsonObjectAgg: NodeTag = 116; +pub const NodeTag_T_JsonArrayAgg: NodeTag = 117; +pub const NodeTag_T_RawStmt: NodeTag = 118; +pub const NodeTag_T_InsertStmt: NodeTag = 119; +pub const NodeTag_T_DeleteStmt: NodeTag = 120; +pub const NodeTag_T_UpdateStmt: NodeTag = 121; +pub const NodeTag_T_MergeStmt: NodeTag = 122; +pub const NodeTag_T_SelectStmt: NodeTag = 123; +pub const NodeTag_T_SetOperationStmt: NodeTag = 124; +pub const NodeTag_T_ReturnStmt: NodeTag = 125; +pub const NodeTag_T_PLAssignStmt: NodeTag = 126; +pub const NodeTag_T_CreateSchemaStmt: NodeTag = 127; +pub const NodeTag_T_AlterTableStmt: NodeTag = 128; +pub const NodeTag_T_ReplicaIdentityStmt: NodeTag = 129; +pub const NodeTag_T_AlterTableCmd: NodeTag = 130; +pub const NodeTag_T_AlterCollationStmt: NodeTag = 131; +pub const NodeTag_T_AlterDomainStmt: NodeTag = 132; +pub const NodeTag_T_GrantStmt: NodeTag = 133; +pub const NodeTag_T_ObjectWithArgs: NodeTag = 134; +pub const NodeTag_T_AccessPriv: NodeTag = 135; +pub const NodeTag_T_GrantRoleStmt: NodeTag = 136; +pub const NodeTag_T_AlterDefaultPrivilegesStmt: NodeTag = 137; +pub const NodeTag_T_CopyStmt: NodeTag = 138; +pub const NodeTag_T_VariableSetStmt: NodeTag = 139; +pub const NodeTag_T_VariableShowStmt: NodeTag = 140; +pub const NodeTag_T_CreateStmt: NodeTag = 141; +pub const NodeTag_T_Constraint: NodeTag = 142; +pub const NodeTag_T_CreateTableSpaceStmt: NodeTag = 143; +pub const NodeTag_T_DropTableSpaceStmt: NodeTag = 144; +pub const NodeTag_T_AlterTableSpaceOptionsStmt: NodeTag = 145; +pub const NodeTag_T_AlterTableMoveAllStmt: NodeTag = 146; +pub const NodeTag_T_CreateExtensionStmt: NodeTag = 147; +pub const NodeTag_T_AlterExtensionStmt: NodeTag = 148; +pub const NodeTag_T_AlterExtensionContentsStmt: NodeTag = 149; +pub const NodeTag_T_CreateFdwStmt: NodeTag = 150; +pub const NodeTag_T_AlterFdwStmt: NodeTag = 151; +pub const NodeTag_T_CreateForeignServerStmt: NodeTag = 152; +pub const NodeTag_T_AlterForeignServerStmt: NodeTag = 153; +pub const NodeTag_T_CreateForeignTableStmt: NodeTag = 154; +pub const NodeTag_T_CreateUserMappingStmt: NodeTag = 155; +pub const NodeTag_T_AlterUserMappingStmt: NodeTag = 156; +pub const NodeTag_T_DropUserMappingStmt: NodeTag = 157; +pub const NodeTag_T_ImportForeignSchemaStmt: NodeTag = 158; +pub const NodeTag_T_CreatePolicyStmt: NodeTag = 159; +pub const NodeTag_T_AlterPolicyStmt: NodeTag = 160; +pub const NodeTag_T_CreateAmStmt: NodeTag = 161; +pub const NodeTag_T_CreateTrigStmt: NodeTag = 162; +pub const NodeTag_T_CreateEventTrigStmt: NodeTag = 163; +pub const NodeTag_T_AlterEventTrigStmt: NodeTag = 164; +pub const NodeTag_T_CreatePLangStmt: NodeTag = 165; +pub const NodeTag_T_CreateRoleStmt: NodeTag = 166; +pub const NodeTag_T_AlterRoleStmt: NodeTag = 167; +pub const NodeTag_T_AlterRoleSetStmt: NodeTag = 168; +pub const NodeTag_T_DropRoleStmt: NodeTag = 169; +pub const NodeTag_T_CreateSeqStmt: NodeTag = 170; +pub const NodeTag_T_AlterSeqStmt: NodeTag = 171; +pub const NodeTag_T_DefineStmt: NodeTag = 172; +pub const NodeTag_T_CreateDomainStmt: NodeTag = 173; +pub const NodeTag_T_CreateOpClassStmt: NodeTag = 174; +pub const NodeTag_T_CreateOpClassItem: NodeTag = 175; +pub const NodeTag_T_CreateOpFamilyStmt: NodeTag = 176; +pub const NodeTag_T_AlterOpFamilyStmt: NodeTag = 177; +pub const NodeTag_T_DropStmt: NodeTag = 178; +pub const NodeTag_T_TruncateStmt: NodeTag = 179; +pub const NodeTag_T_CommentStmt: NodeTag = 180; +pub const NodeTag_T_SecLabelStmt: NodeTag = 181; +pub const NodeTag_T_DeclareCursorStmt: NodeTag = 182; +pub const NodeTag_T_ClosePortalStmt: NodeTag = 183; +pub const NodeTag_T_FetchStmt: NodeTag = 184; +pub const NodeTag_T_IndexStmt: NodeTag = 185; +pub const NodeTag_T_CreateStatsStmt: NodeTag = 186; +pub const NodeTag_T_StatsElem: NodeTag = 187; +pub const NodeTag_T_AlterStatsStmt: NodeTag = 188; +pub const NodeTag_T_CreateFunctionStmt: NodeTag = 189; +pub const NodeTag_T_FunctionParameter: NodeTag = 190; +pub const NodeTag_T_AlterFunctionStmt: NodeTag = 191; +pub const NodeTag_T_DoStmt: NodeTag = 192; +pub const NodeTag_T_InlineCodeBlock: NodeTag = 193; +pub const NodeTag_T_CallStmt: NodeTag = 194; +pub const NodeTag_T_CallContext: NodeTag = 195; +pub const NodeTag_T_RenameStmt: NodeTag = 196; +pub const NodeTag_T_AlterObjectDependsStmt: NodeTag = 197; +pub const NodeTag_T_AlterObjectSchemaStmt: NodeTag = 198; +pub const NodeTag_T_AlterOwnerStmt: NodeTag = 199; +pub const NodeTag_T_AlterOperatorStmt: NodeTag = 200; +pub const NodeTag_T_AlterTypeStmt: NodeTag = 201; +pub const NodeTag_T_RuleStmt: NodeTag = 202; +pub const NodeTag_T_NotifyStmt: NodeTag = 203; +pub const NodeTag_T_ListenStmt: NodeTag = 204; +pub const NodeTag_T_UnlistenStmt: NodeTag = 205; +pub const NodeTag_T_TransactionStmt: NodeTag = 206; +pub const NodeTag_T_CompositeTypeStmt: NodeTag = 207; +pub const NodeTag_T_CreateEnumStmt: NodeTag = 208; +pub const NodeTag_T_CreateRangeStmt: NodeTag = 209; +pub const NodeTag_T_AlterEnumStmt: NodeTag = 210; +pub const NodeTag_T_ViewStmt: NodeTag = 211; +pub const NodeTag_T_LoadStmt: NodeTag = 212; +pub const NodeTag_T_CreatedbStmt: NodeTag = 213; +pub const NodeTag_T_AlterDatabaseStmt: NodeTag = 214; +pub const NodeTag_T_AlterDatabaseRefreshCollStmt: NodeTag = 215; +pub const NodeTag_T_AlterDatabaseSetStmt: NodeTag = 216; +pub const NodeTag_T_DropdbStmt: NodeTag = 217; +pub const NodeTag_T_AlterSystemStmt: NodeTag = 218; +pub const NodeTag_T_ClusterStmt: NodeTag = 219; +pub const NodeTag_T_VacuumStmt: NodeTag = 220; +pub const NodeTag_T_VacuumRelation: NodeTag = 221; +pub const NodeTag_T_ExplainStmt: NodeTag = 222; +pub const NodeTag_T_CreateTableAsStmt: NodeTag = 223; +pub const NodeTag_T_RefreshMatViewStmt: NodeTag = 224; +pub const NodeTag_T_CheckPointStmt: NodeTag = 225; +pub const NodeTag_T_DiscardStmt: NodeTag = 226; +pub const NodeTag_T_LockStmt: NodeTag = 227; +pub const NodeTag_T_ConstraintsSetStmt: NodeTag = 228; +pub const NodeTag_T_ReindexStmt: NodeTag = 229; +pub const NodeTag_T_CreateConversionStmt: NodeTag = 230; +pub const NodeTag_T_CreateCastStmt: NodeTag = 231; +pub const NodeTag_T_CreateTransformStmt: NodeTag = 232; +pub const NodeTag_T_PrepareStmt: NodeTag = 233; +pub const NodeTag_T_ExecuteStmt: NodeTag = 234; +pub const NodeTag_T_DeallocateStmt: NodeTag = 235; +pub const NodeTag_T_DropOwnedStmt: NodeTag = 236; +pub const NodeTag_T_ReassignOwnedStmt: NodeTag = 237; +pub const NodeTag_T_AlterTSDictionaryStmt: NodeTag = 238; +pub const NodeTag_T_AlterTSConfigurationStmt: NodeTag = 239; +pub const NodeTag_T_PublicationTable: NodeTag = 240; +pub const NodeTag_T_PublicationObjSpec: NodeTag = 241; +pub const NodeTag_T_CreatePublicationStmt: NodeTag = 242; +pub const NodeTag_T_AlterPublicationStmt: NodeTag = 243; +pub const NodeTag_T_CreateSubscriptionStmt: NodeTag = 244; +pub const NodeTag_T_AlterSubscriptionStmt: NodeTag = 245; +pub const NodeTag_T_DropSubscriptionStmt: NodeTag = 246; +pub const NodeTag_T_PlannerGlobal: NodeTag = 247; +pub const NodeTag_T_PlannerInfo: NodeTag = 248; +pub const NodeTag_T_RelOptInfo: NodeTag = 249; +pub const NodeTag_T_IndexOptInfo: NodeTag = 250; +pub const NodeTag_T_ForeignKeyOptInfo: NodeTag = 251; +pub const NodeTag_T_StatisticExtInfo: NodeTag = 252; +pub const NodeTag_T_JoinDomain: NodeTag = 253; +pub const NodeTag_T_EquivalenceClass: NodeTag = 254; +pub const NodeTag_T_EquivalenceMember: NodeTag = 255; +pub const NodeTag_T_PathKey: NodeTag = 256; +pub const NodeTag_T_PathTarget: NodeTag = 257; +pub const NodeTag_T_ParamPathInfo: NodeTag = 258; +pub const NodeTag_T_Path: NodeTag = 259; +pub const NodeTag_T_IndexPath: NodeTag = 260; +pub const NodeTag_T_IndexClause: NodeTag = 261; +pub const NodeTag_T_BitmapHeapPath: NodeTag = 262; +pub const NodeTag_T_BitmapAndPath: NodeTag = 263; +pub const NodeTag_T_BitmapOrPath: NodeTag = 264; +pub const NodeTag_T_TidPath: NodeTag = 265; +pub const NodeTag_T_TidRangePath: NodeTag = 266; +pub const NodeTag_T_SubqueryScanPath: NodeTag = 267; +pub const NodeTag_T_ForeignPath: NodeTag = 268; +pub const NodeTag_T_CustomPath: NodeTag = 269; +pub const NodeTag_T_AppendPath: NodeTag = 270; +pub const NodeTag_T_MergeAppendPath: NodeTag = 271; +pub const NodeTag_T_GroupResultPath: NodeTag = 272; +pub const NodeTag_T_MaterialPath: NodeTag = 273; +pub const NodeTag_T_MemoizePath: NodeTag = 274; +pub const NodeTag_T_UniquePath: NodeTag = 275; +pub const NodeTag_T_GatherPath: NodeTag = 276; +pub const NodeTag_T_GatherMergePath: NodeTag = 277; +pub const NodeTag_T_NestPath: NodeTag = 278; +pub const NodeTag_T_MergePath: NodeTag = 279; +pub const NodeTag_T_HashPath: NodeTag = 280; +pub const NodeTag_T_ProjectionPath: NodeTag = 281; +pub const NodeTag_T_ProjectSetPath: NodeTag = 282; +pub const NodeTag_T_SortPath: NodeTag = 283; +pub const NodeTag_T_IncrementalSortPath: NodeTag = 284; +pub const NodeTag_T_GroupPath: NodeTag = 285; +pub const NodeTag_T_UpperUniquePath: NodeTag = 286; +pub const NodeTag_T_AggPath: NodeTag = 287; +pub const NodeTag_T_GroupingSetData: NodeTag = 288; +pub const NodeTag_T_RollupData: NodeTag = 289; +pub const NodeTag_T_GroupingSetsPath: NodeTag = 290; +pub const NodeTag_T_MinMaxAggPath: NodeTag = 291; +pub const NodeTag_T_WindowAggPath: NodeTag = 292; +pub const NodeTag_T_SetOpPath: NodeTag = 293; +pub const NodeTag_T_RecursiveUnionPath: NodeTag = 294; +pub const NodeTag_T_LockRowsPath: NodeTag = 295; +pub const NodeTag_T_ModifyTablePath: NodeTag = 296; +pub const NodeTag_T_LimitPath: NodeTag = 297; +pub const NodeTag_T_RestrictInfo: NodeTag = 298; +pub const NodeTag_T_PlaceHolderVar: NodeTag = 299; +pub const NodeTag_T_SpecialJoinInfo: NodeTag = 300; +pub const NodeTag_T_OuterJoinClauseInfo: NodeTag = 301; +pub const NodeTag_T_AppendRelInfo: NodeTag = 302; +pub const NodeTag_T_RowIdentityVarInfo: NodeTag = 303; +pub const NodeTag_T_PlaceHolderInfo: NodeTag = 304; +pub const NodeTag_T_MinMaxAggInfo: NodeTag = 305; +pub const NodeTag_T_PlannerParamItem: NodeTag = 306; +pub const NodeTag_T_AggInfo: NodeTag = 307; +pub const NodeTag_T_AggTransInfo: NodeTag = 308; +pub const NodeTag_T_PlannedStmt: NodeTag = 309; +pub const NodeTag_T_Result: NodeTag = 310; +pub const NodeTag_T_ProjectSet: NodeTag = 311; +pub const NodeTag_T_ModifyTable: NodeTag = 312; +pub const NodeTag_T_Append: NodeTag = 313; +pub const NodeTag_T_MergeAppend: NodeTag = 314; +pub const NodeTag_T_RecursiveUnion: NodeTag = 315; +pub const NodeTag_T_BitmapAnd: NodeTag = 316; +pub const NodeTag_T_BitmapOr: NodeTag = 317; +pub const NodeTag_T_SeqScan: NodeTag = 318; +pub const NodeTag_T_SampleScan: NodeTag = 319; +pub const NodeTag_T_IndexScan: NodeTag = 320; +pub const NodeTag_T_IndexOnlyScan: NodeTag = 321; +pub const NodeTag_T_BitmapIndexScan: NodeTag = 322; +pub const NodeTag_T_BitmapHeapScan: NodeTag = 323; +pub const NodeTag_T_TidScan: NodeTag = 324; +pub const NodeTag_T_TidRangeScan: NodeTag = 325; +pub const NodeTag_T_SubqueryScan: NodeTag = 326; +pub const NodeTag_T_FunctionScan: NodeTag = 327; +pub const NodeTag_T_ValuesScan: NodeTag = 328; +pub const NodeTag_T_TableFuncScan: NodeTag = 329; +pub const NodeTag_T_CteScan: NodeTag = 330; +pub const NodeTag_T_NamedTuplestoreScan: NodeTag = 331; +pub const NodeTag_T_WorkTableScan: NodeTag = 332; +pub const NodeTag_T_ForeignScan: NodeTag = 333; +pub const NodeTag_T_CustomScan: NodeTag = 334; +pub const NodeTag_T_NestLoop: NodeTag = 335; +pub const NodeTag_T_NestLoopParam: NodeTag = 336; +pub const NodeTag_T_MergeJoin: NodeTag = 337; +pub const NodeTag_T_HashJoin: NodeTag = 338; +pub const NodeTag_T_Material: NodeTag = 339; +pub const NodeTag_T_Memoize: NodeTag = 340; +pub const NodeTag_T_Sort: NodeTag = 341; +pub const NodeTag_T_IncrementalSort: NodeTag = 342; +pub const NodeTag_T_Group: NodeTag = 343; +pub const NodeTag_T_Agg: NodeTag = 344; +pub const NodeTag_T_WindowAgg: NodeTag = 345; +pub const NodeTag_T_Unique: NodeTag = 346; +pub const NodeTag_T_Gather: NodeTag = 347; +pub const NodeTag_T_GatherMerge: NodeTag = 348; +pub const NodeTag_T_Hash: NodeTag = 349; +pub const NodeTag_T_SetOp: NodeTag = 350; +pub const NodeTag_T_LockRows: NodeTag = 351; +pub const NodeTag_T_Limit: NodeTag = 352; +pub const NodeTag_T_PlanRowMark: NodeTag = 353; +pub const NodeTag_T_PartitionPruneInfo: NodeTag = 354; +pub const NodeTag_T_PartitionedRelPruneInfo: NodeTag = 355; +pub const NodeTag_T_PartitionPruneStepOp: NodeTag = 356; +pub const NodeTag_T_PartitionPruneStepCombine: NodeTag = 357; +pub const NodeTag_T_PlanInvalItem: NodeTag = 358; +pub const NodeTag_T_ExprState: NodeTag = 359; +pub const NodeTag_T_IndexInfo: NodeTag = 360; +pub const NodeTag_T_ExprContext: NodeTag = 361; +pub const NodeTag_T_ReturnSetInfo: NodeTag = 362; +pub const NodeTag_T_ProjectionInfo: NodeTag = 363; +pub const NodeTag_T_JunkFilter: NodeTag = 364; +pub const NodeTag_T_OnConflictSetState: NodeTag = 365; +pub const NodeTag_T_MergeActionState: NodeTag = 366; +pub const NodeTag_T_ResultRelInfo: NodeTag = 367; +pub const NodeTag_T_EState: NodeTag = 368; +pub const NodeTag_T_WindowFuncExprState: NodeTag = 369; +pub const NodeTag_T_SetExprState: NodeTag = 370; +pub const NodeTag_T_SubPlanState: NodeTag = 371; +pub const NodeTag_T_DomainConstraintState: NodeTag = 372; +pub const NodeTag_T_ResultState: NodeTag = 373; +pub const NodeTag_T_ProjectSetState: NodeTag = 374; +pub const NodeTag_T_ModifyTableState: NodeTag = 375; +pub const NodeTag_T_AppendState: NodeTag = 376; +pub const NodeTag_T_MergeAppendState: NodeTag = 377; +pub const NodeTag_T_RecursiveUnionState: NodeTag = 378; +pub const NodeTag_T_BitmapAndState: NodeTag = 379; +pub const NodeTag_T_BitmapOrState: NodeTag = 380; +pub const NodeTag_T_ScanState: NodeTag = 381; +pub const NodeTag_T_SeqScanState: NodeTag = 382; +pub const NodeTag_T_SampleScanState: NodeTag = 383; +pub const NodeTag_T_IndexScanState: NodeTag = 384; +pub const NodeTag_T_IndexOnlyScanState: NodeTag = 385; +pub const NodeTag_T_BitmapIndexScanState: NodeTag = 386; +pub const NodeTag_T_BitmapHeapScanState: NodeTag = 387; +pub const NodeTag_T_TidScanState: NodeTag = 388; +pub const NodeTag_T_TidRangeScanState: NodeTag = 389; +pub const NodeTag_T_SubqueryScanState: NodeTag = 390; +pub const NodeTag_T_FunctionScanState: NodeTag = 391; +pub const NodeTag_T_ValuesScanState: NodeTag = 392; +pub const NodeTag_T_TableFuncScanState: NodeTag = 393; +pub const NodeTag_T_CteScanState: NodeTag = 394; +pub const NodeTag_T_NamedTuplestoreScanState: NodeTag = 395; +pub const NodeTag_T_WorkTableScanState: NodeTag = 396; +pub const NodeTag_T_ForeignScanState: NodeTag = 397; +pub const NodeTag_T_CustomScanState: NodeTag = 398; +pub const NodeTag_T_JoinState: NodeTag = 399; +pub const NodeTag_T_NestLoopState: NodeTag = 400; +pub const NodeTag_T_MergeJoinState: NodeTag = 401; +pub const NodeTag_T_HashJoinState: NodeTag = 402; +pub const NodeTag_T_MaterialState: NodeTag = 403; +pub const NodeTag_T_MemoizeState: NodeTag = 404; +pub const NodeTag_T_SortState: NodeTag = 405; +pub const NodeTag_T_IncrementalSortState: NodeTag = 406; +pub const NodeTag_T_GroupState: NodeTag = 407; +pub const NodeTag_T_AggState: NodeTag = 408; +pub const NodeTag_T_WindowAggState: NodeTag = 409; +pub const NodeTag_T_UniqueState: NodeTag = 410; +pub const NodeTag_T_GatherState: NodeTag = 411; +pub const NodeTag_T_GatherMergeState: NodeTag = 412; +pub const NodeTag_T_HashState: NodeTag = 413; +pub const NodeTag_T_SetOpState: NodeTag = 414; +pub const NodeTag_T_LockRowsState: NodeTag = 415; +pub const NodeTag_T_LimitState: NodeTag = 416; +pub const NodeTag_T_IndexAmRoutine: NodeTag = 417; +pub const NodeTag_T_TableAmRoutine: NodeTag = 418; +pub const NodeTag_T_TsmRoutine: NodeTag = 419; +pub const NodeTag_T_EventTriggerData: NodeTag = 420; +pub const NodeTag_T_TriggerData: NodeTag = 421; +pub const NodeTag_T_TupleTableSlot: NodeTag = 422; +pub const NodeTag_T_FdwRoutine: NodeTag = 423; +pub const NodeTag_T_Bitmapset: NodeTag = 424; +pub const NodeTag_T_ExtensibleNode: NodeTag = 425; +pub const NodeTag_T_ErrorSaveContext: NodeTag = 426; +pub const NodeTag_T_IdentifySystemCmd: NodeTag = 427; +pub const NodeTag_T_BaseBackupCmd: NodeTag = 428; +pub const NodeTag_T_CreateReplicationSlotCmd: NodeTag = 429; +pub const NodeTag_T_DropReplicationSlotCmd: NodeTag = 430; +pub const NodeTag_T_StartReplicationCmd: NodeTag = 431; +pub const NodeTag_T_ReadReplicationSlotCmd: NodeTag = 432; +pub const NodeTag_T_TimeLineHistoryCmd: NodeTag = 433; +pub const NodeTag_T_SupportRequestSimplify: NodeTag = 434; +pub const NodeTag_T_SupportRequestSelectivity: NodeTag = 435; +pub const NodeTag_T_SupportRequestCost: NodeTag = 436; +pub const NodeTag_T_SupportRequestRows: NodeTag = 437; +pub const NodeTag_T_SupportRequestIndexCondition: NodeTag = 438; +pub const NodeTag_T_SupportRequestWFuncMonotonic: NodeTag = 439; +pub const NodeTag_T_SupportRequestOptimizeWindowClause: NodeTag = 440; +pub const NodeTag_T_Integer: NodeTag = 441; +pub const NodeTag_T_Float: NodeTag = 442; +pub const NodeTag_T_Boolean: NodeTag = 443; +pub const NodeTag_T_String: NodeTag = 444; +pub const NodeTag_T_BitString: NodeTag = 445; +pub const NodeTag_T_ForeignKeyCacheInfo: NodeTag = 446; +pub const NodeTag_T_IntList: NodeTag = 447; +pub const NodeTag_T_OidList: NodeTag = 448; +pub const NodeTag_T_XidList: NodeTag = 449; +pub const NodeTag_T_AllocSetContext: NodeTag = 450; +pub const NodeTag_T_GenerationContext: NodeTag = 451; +pub const NodeTag_T_SlabContext: NodeTag = 452; +pub const NodeTag_T_TIDBitmap: NodeTag = 453; +pub const NodeTag_T_WindowObjectData: NodeTag = 454; +pub type NodeTag = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Node { + pub type_: NodeTag, +} +impl Default for Node { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn outNode(str_: *mut StringInfoData, obj: *const ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn outToken(str_: *mut StringInfoData, s: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn outBitmapset(str_: *mut StringInfoData, bms: *const Bitmapset); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn outDatum( + str_: *mut StringInfoData, + value: usize, + typlen: ::std::os::raw::c_int, + typbyval: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nodeToString(obj: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bmsToString(bms: *const Bitmapset) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn stringToNode(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn readBitmapset() -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn readDatum(typbyval: bool) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn readBoolCols(numCols: ::std::os::raw::c_int) -> *mut bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn readIntCols(numCols: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn readOidCols(numCols: ::std::os::raw::c_int) -> *mut Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn readAttrNumberCols(numCols: ::std::os::raw::c_int) -> *mut int16; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn copyObjectImpl(from: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn equal(a: *const ::std::os::raw::c_void, b: *const ::std::os::raw::c_void) -> bool; +} +pub type Selectivity = f64; +pub type Cost = f64; +pub type Cardinality = f64; +pub const CmdType_CMD_UNKNOWN: CmdType = 0; +pub const CmdType_CMD_SELECT: CmdType = 1; +pub const CmdType_CMD_UPDATE: CmdType = 2; +pub const CmdType_CMD_INSERT: CmdType = 3; +pub const CmdType_CMD_DELETE: CmdType = 4; +pub const CmdType_CMD_MERGE: CmdType = 5; +pub const CmdType_CMD_UTILITY: CmdType = 6; +pub const CmdType_CMD_NOTHING: CmdType = 7; +pub type CmdType = ::std::os::raw::c_uint; +pub const JoinType_JOIN_INNER: JoinType = 0; +pub const JoinType_JOIN_LEFT: JoinType = 1; +pub const JoinType_JOIN_FULL: JoinType = 2; +pub const JoinType_JOIN_RIGHT: JoinType = 3; +pub const JoinType_JOIN_SEMI: JoinType = 4; +pub const JoinType_JOIN_ANTI: JoinType = 5; +pub const JoinType_JOIN_RIGHT_ANTI: JoinType = 6; +pub const JoinType_JOIN_UNIQUE_OUTER: JoinType = 7; +pub const JoinType_JOIN_UNIQUE_INNER: JoinType = 8; +pub type JoinType = ::std::os::raw::c_uint; +pub const AggStrategy_AGG_PLAIN: AggStrategy = 0; +pub const AggStrategy_AGG_SORTED: AggStrategy = 1; +pub const AggStrategy_AGG_HASHED: AggStrategy = 2; +pub const AggStrategy_AGG_MIXED: AggStrategy = 3; +pub type AggStrategy = ::std::os::raw::c_uint; +pub const AggSplit_AGGSPLIT_SIMPLE: AggSplit = 0; +pub const AggSplit_AGGSPLIT_INITIAL_SERIAL: AggSplit = 6; +pub const AggSplit_AGGSPLIT_FINAL_DESERIAL: AggSplit = 9; +pub type AggSplit = ::std::os::raw::c_uint; +pub const SetOpCmd_SETOPCMD_INTERSECT: SetOpCmd = 0; +pub const SetOpCmd_SETOPCMD_INTERSECT_ALL: SetOpCmd = 1; +pub const SetOpCmd_SETOPCMD_EXCEPT: SetOpCmd = 2; +pub const SetOpCmd_SETOPCMD_EXCEPT_ALL: SetOpCmd = 3; +pub type SetOpCmd = ::std::os::raw::c_uint; +pub const SetOpStrategy_SETOP_SORTED: SetOpStrategy = 0; +pub const SetOpStrategy_SETOP_HASHED: SetOpStrategy = 1; +pub type SetOpStrategy = ::std::os::raw::c_uint; +pub const OnConflictAction_ONCONFLICT_NONE: OnConflictAction = 0; +pub const OnConflictAction_ONCONFLICT_NOTHING: OnConflictAction = 1; +pub const OnConflictAction_ONCONFLICT_UPDATE: OnConflictAction = 2; +pub type OnConflictAction = ::std::os::raw::c_uint; +pub const LimitOption_LIMIT_OPTION_COUNT: LimitOption = 0; +pub const LimitOption_LIMIT_OPTION_WITH_TIES: LimitOption = 1; +pub const LimitOption_LIMIT_OPTION_DEFAULT: LimitOption = 2; +pub type LimitOption = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Copy, Clone)] +pub union ListCell { + pub ptr_value: *mut ::std::os::raw::c_void, + pub int_value: ::std::os::raw::c_int, + pub oid_value: Oid, + pub xid_value: TransactionId, +} +impl Default for ListCell { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +pub struct List { + pub type_: NodeTag, + pub length: ::std::os::raw::c_int, + pub max_length: ::std::os::raw::c_int, + pub elements: *mut ListCell, + pub initial_elements: __IncompleteArrayField, +} +impl Default for List { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForEachState { + pub l: *const List, + pub i: ::std::os::raw::c_int, +} +impl Default for ForEachState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForBothState { + pub l1: *const List, + pub l2: *const List, + pub i: ::std::os::raw::c_int, +} +impl Default for ForBothState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForBothCellState { + pub l1: *const List, + pub l2: *const List, + pub i1: ::std::os::raw::c_int, + pub i2: ::std::os::raw::c_int, +} +impl Default for ForBothCellState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForThreeState { + pub l1: *const List, + pub l2: *const List, + pub l3: *const List, + pub i: ::std::os::raw::c_int, +} +impl Default for ForThreeState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForFourState { + pub l1: *const List, + pub l2: *const List, + pub l3: *const List, + pub l4: *const List, + pub i: ::std::os::raw::c_int, +} +impl Default for ForFourState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForFiveState { + pub l1: *const List, + pub l2: *const List, + pub l3: *const List, + pub l4: *const List, + pub l5: *const List, + pub i: ::std::os::raw::c_int, +} +impl Default for ForFiveState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_make1_impl(t: NodeTag, datum1: ListCell) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_make2_impl(t: NodeTag, datum1: ListCell, datum2: ListCell) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_make3_impl( + t: NodeTag, + datum1: ListCell, + datum2: ListCell, + datum3: ListCell, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_make4_impl( + t: NodeTag, + datum1: ListCell, + datum2: ListCell, + datum3: ListCell, + datum4: ListCell, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_make5_impl( + t: NodeTag, + datum1: ListCell, + datum2: ListCell, + datum3: ListCell, + datum4: ListCell, + datum5: ListCell, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lappend(list: *mut List, datum: *mut ::std::os::raw::c_void) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lappend_int(list: *mut List, datum: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lappend_oid(list: *mut List, datum: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lappend_xid(list: *mut List, datum: TransactionId) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_insert_nth( + list: *mut List, + pos: ::std::os::raw::c_int, + datum: *mut ::std::os::raw::c_void, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_insert_nth_int( + list: *mut List, + pos: ::std::os::raw::c_int, + datum: ::std::os::raw::c_int, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_insert_nth_oid( + list: *mut List, + pos: ::std::os::raw::c_int, + datum: Oid, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lcons(datum: *mut ::std::os::raw::c_void, list: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lcons_int(datum: ::std::os::raw::c_int, list: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lcons_oid(datum: Oid, list: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_concat(list1: *mut List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_concat_copy(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_truncate(list: *mut List, new_size: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_member(list: *const List, datum: *const ::std::os::raw::c_void) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_member_ptr(list: *const List, datum: *const ::std::os::raw::c_void) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_member_int(list: *const List, datum: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_member_oid(list: *const List, datum: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_member_xid(list: *const List, datum: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_delete(list: *mut List, datum: *mut ::std::os::raw::c_void) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_delete_ptr(list: *mut List, datum: *mut ::std::os::raw::c_void) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_delete_int(list: *mut List, datum: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_delete_oid(list: *mut List, datum: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_delete_first(list: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_delete_last(list: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_delete_first_n(list: *mut List, n: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_delete_nth_cell(list: *mut List, n: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_delete_cell(list: *mut List, cell: *mut ListCell) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_union(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_union_ptr(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_union_int(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_union_oid(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_intersection(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_intersection_int(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_difference(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_difference_ptr(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_difference_int(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_difference_oid(list1: *const List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_append_unique(list: *mut List, datum: *mut ::std::os::raw::c_void) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_append_unique_ptr(list: *mut List, datum: *mut ::std::os::raw::c_void) + -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_append_unique_int(list: *mut List, datum: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_append_unique_oid(list: *mut List, datum: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_concat_unique(list1: *mut List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_concat_unique_ptr(list1: *mut List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_concat_unique_int(list1: *mut List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_concat_unique_oid(list1: *mut List, list2: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_deduplicate_oid(list: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_free(list: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_free_deep(list: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_copy(oldlist: *const List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_copy_head(oldlist: *const List, len: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_copy_tail(oldlist: *const List, nskip: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_copy_deep(oldlist: *const List) -> *mut List; +} +pub type list_sort_comparator = ::std::option::Option< + unsafe extern "C" fn(a: *const ListCell, b: *const ListCell) -> ::std::os::raw::c_int, +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_sort(list: *mut List, cmp: list_sort_comparator); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_int_cmp(p1: *const ListCell, p2: *const ListCell) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn list_oid_cmp(p1: *const ListCell, p2: *const ListCell) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AttrDefault { + pub adnum: AttrNumber, + pub adbin: *mut ::std::os::raw::c_char, +} +impl Default for AttrDefault { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ConstrCheck { + pub ccname: *mut ::std::os::raw::c_char, + pub ccbin: *mut ::std::os::raw::c_char, + pub ccvalid: bool, + pub ccnoinherit: bool, +} +impl Default for ConstrCheck { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TupleConstr { + pub defval: *mut AttrDefault, + pub check: *mut ConstrCheck, + pub missing: *mut AttrMissing, + pub num_defval: uint16, + pub num_check: uint16, + pub has_not_null: bool, + pub has_generated_stored: bool, +} +impl Default for TupleConstr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug)] +pub struct TupleDescData { + pub natts: ::std::os::raw::c_int, + pub tdtypeid: Oid, + pub tdtypmod: int32, + pub tdrefcount: ::std::os::raw::c_int, + pub constr: *mut TupleConstr, + pub attrs: __IncompleteArrayField, +} +impl Default for TupleDescData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type TupleDesc = *mut TupleDescData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateTemplateTupleDesc(natts: ::std::os::raw::c_int) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateTupleDesc( + natts: ::std::os::raw::c_int, + attrs: *mut Form_pg_attribute, + ) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateTupleDescCopy(tupdesc: TupleDesc) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateTupleDescCopyConstr(tupdesc: TupleDesc) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TupleDescCopy(dst: TupleDesc, src: TupleDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TupleDescCopyEntry( + dst: TupleDesc, + dstAttno: AttrNumber, + src: TupleDesc, + srcAttno: AttrNumber, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeTupleDesc(tupdesc: TupleDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IncrTupleDescRefCount(tupdesc: TupleDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecrTupleDescRefCount(tupdesc: TupleDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn equalTupleDescs(tupdesc1: TupleDesc, tupdesc2: TupleDesc) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashTupleDesc(desc: TupleDesc) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TupleDescInitEntry( + desc: TupleDesc, + attributeNumber: AttrNumber, + attributeName: *const ::std::os::raw::c_char, + oidtypeid: Oid, + typmod: int32, + attdim: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TupleDescInitBuiltinEntry( + desc: TupleDesc, + attributeNumber: AttrNumber, + attributeName: *const ::std::os::raw::c_char, + oidtypeid: Oid, + typmod: int32, + attdim: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TupleDescInitEntryCollation( + desc: TupleDesc, + attributeNumber: AttrNumber, + collationid: Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildDescForRelation(schema: *mut List) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildDescFromLists( + names: *mut List, + types: *mut List, + typmods: *mut List, + collations: *mut List, + ) -> TupleDesc; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AttrMap { + pub attnums: *mut AttrNumber, + pub maplen: ::std::os::raw::c_int, +} +impl Default for AttrMap { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_attrmap(maplen: ::std::os::raw::c_int) -> *mut AttrMap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn free_attrmap(map: *mut AttrMap); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_attrmap_by_name( + indesc: TupleDesc, + outdesc: TupleDesc, + missing_ok: bool, + ) -> *mut AttrMap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_attrmap_by_name_if_req( + indesc: TupleDesc, + outdesc: TupleDesc, + missing_ok: bool, + ) -> *mut AttrMap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_attrmap_by_position( + indesc: TupleDesc, + outdesc: TupleDesc, + msg: *const ::std::os::raw::c_char, + ) -> *mut AttrMap; +} +pub type BlockNumber = uint32; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct BlockIdData { + pub bi_hi: uint16, + pub bi_lo: uint16, +} +pub type BlockId = *mut BlockIdData; +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Default, Copy, Clone)] +pub struct ItemIdData { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl ItemIdData { + #[inline] + pub fn lp_off(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 15u8) as u32) } + } + #[inline] + pub fn set_lp_off(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 15u8, val as u64) + } + } + #[inline] + pub fn lp_flags(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 2u8) as u32) } + } + #[inline] + pub fn set_lp_flags(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(15usize, 2u8, val as u64) + } + } + #[inline] + pub fn lp_len(&self) -> ::std::os::raw::c_uint { + unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 15u8) as u32) } + } + #[inline] + pub fn set_lp_len(&mut self, val: ::std::os::raw::c_uint) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(17usize, 15u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + lp_off: ::std::os::raw::c_uint, + lp_flags: ::std::os::raw::c_uint, + lp_len: ::std::os::raw::c_uint, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 15u8, { + let lp_off: u32 = unsafe { ::std::mem::transmute(lp_off) }; + lp_off as u64 + }); + __bindgen_bitfield_unit.set(15usize, 2u8, { + let lp_flags: u32 = unsafe { ::std::mem::transmute(lp_flags) }; + lp_flags as u64 + }); + __bindgen_bitfield_unit.set(17usize, 15u8, { + let lp_len: u32 = unsafe { ::std::mem::transmute(lp_len) }; + lp_len as u64 + }); + __bindgen_bitfield_unit + } +} +pub type ItemId = *mut ItemIdData; +pub type ItemOffset = uint16; +pub type ItemLength = uint16; +pub type OffsetNumber = uint16; +#[repr(C, packed(2))] +#[derive(Debug, Default, Copy, Clone)] +pub struct ItemPointerData { + pub ip_blkid: BlockIdData, + pub ip_posid: OffsetNumber, +} +pub type ItemPointer = *mut ItemPointerData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ItemPointerEquals(pointer1: ItemPointer, pointer2: ItemPointer) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ItemPointerCompare(arg1: ItemPointer, arg2: ItemPointer) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ItemPointerInc(pointer: ItemPointer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ItemPointerDec(pointer: ItemPointer); +} +pub type HeapTupleHeader = *mut HeapTupleHeaderData; +pub type MinimalTuple = *mut MinimalTupleData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HeapTupleData { + pub t_len: uint32, + pub t_self: ItemPointerData, + pub t_tableOid: Oid, + pub t_data: HeapTupleHeader, +} +impl Default for HeapTupleData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type HeapTuple = *mut HeapTupleData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleHeaderGetCmin(tup: HeapTupleHeader) -> CommandId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleHeaderGetCmax(tup: HeapTupleHeader) -> CommandId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleHeaderAdjustCmax( + tup: HeapTupleHeader, + cmax: *mut CommandId, + iscombo: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleGetUpdateXid(tuple: HeapTupleHeader) -> TransactionId; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct flock { + pub l_type: ::std::os::raw::c_short, + pub l_whence: ::std::os::raw::c_short, + pub l_start: __off_t, + pub l_len: __off_t, + pub l_pid: __pid_t, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct stat { + pub st_dev: __dev_t, + pub st_ino: __ino_t, + pub st_nlink: __nlink_t, + pub st_mode: __mode_t, + pub st_uid: __uid_t, + pub st_gid: __gid_t, + pub __pad0: ::std::os::raw::c_int, + pub st_rdev: __dev_t, + pub st_size: __off_t, + pub st_blksize: __blksize_t, + pub st_blocks: __blkcnt_t, + pub st_atim: timespec, + pub st_mtim: timespec, + pub st_ctim: timespec, + pub __glibc_reserved: [__syscall_slong_t; 3usize], +} +pub type XLogRecPtr = uint64; +pub type XLogSegNo = uint64; +pub type TimeLineID = uint32; +pub type RepOriginId = uint16; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct FullTransactionId { + pub value: uint64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct VariableCacheData { + pub nextOid: Oid, + pub oidCount: uint32, + pub nextXid: FullTransactionId, + pub oldestXid: TransactionId, + pub xidVacLimit: TransactionId, + pub xidWarnLimit: TransactionId, + pub xidStopLimit: TransactionId, + pub xidWrapLimit: TransactionId, + pub oldestXidDB: Oid, + pub oldestCommitTsXid: TransactionId, + pub newestCommitTsXid: TransactionId, + pub latestCompletedXid: FullTransactionId, + pub xactCompletionCount: uint64, + pub oldestClogXid: TransactionId, +} +impl Default for VariableCacheData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type VariableCache = *mut VariableCacheData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionStartedDuringRecovery() -> bool; +} +extern "C" { + pub static mut ShmemVariableCache: VariableCache; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdDidCommit(transactionId: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdDidAbort(transactionId: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdCommitTree( + xid: TransactionId, + nxids: ::std::os::raw::c_int, + xids: *mut TransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdAsyncCommitTree( + xid: TransactionId, + nxids: ::std::os::raw::c_int, + xids: *mut TransactionId, + lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdAbortTree( + xid: TransactionId, + nxids: ::std::os::raw::c_int, + xids: *mut TransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdPrecedes(id1: TransactionId, id2: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdPrecedesOrEquals(id1: TransactionId, id2: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdFollows(id1: TransactionId, id2: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdFollowsOrEquals(id1: TransactionId, id2: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdLatest( + mainxid: TransactionId, + nxids: ::std::os::raw::c_int, + xids: *const TransactionId, + ) -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdGetCommitLSN(xid: TransactionId) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetNewTransactionId(isSubXact: bool) -> FullTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AdvanceNextFullTransactionIdPastXid(xid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReadNextFullTransactionId() -> FullTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetTransactionIdLimit(oldest_datfrozenxid: TransactionId, oldest_datoid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AdvanceOldestClogXid(oldest_datfrozenxid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ForceTransactionIdLimitUpdate() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetNewObjectId() -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StopGeneratingPinnedObjectIds(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AssertTransactionIdInAllowableRange(xid: TransactionId); +} +pub type Item = Pointer; +pub type Page = Pointer; +pub type LocationIndex = uint16; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PageXLogRecPtr { + pub xlogid: uint32, + pub xrecoff: uint32, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct PageHeaderData { + pub pd_lsn: PageXLogRecPtr, + pub pd_checksum: uint16, + pub pd_flags: uint16, + pub pd_lower: LocationIndex, + pub pd_upper: LocationIndex, + pub pd_special: LocationIndex, + pub pd_pagesize_version: uint16, + pub pd_prune_xid: TransactionId, + pub pd_linp: __IncompleteArrayField, +} +pub type PageHeader = *mut PageHeaderData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageInit(page: Page, pageSize: Size, specialSize: Size); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageIsVerifiedExtended( + page: Page, + blkno: BlockNumber, + flags: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageAddItemExtended( + page: Page, + item: Item, + size: Size, + offsetNumber: OffsetNumber, + flags: ::std::os::raw::c_int, + ) -> OffsetNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageGetTempPage(page: Page) -> Page; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageGetTempPageCopy(page: Page) -> Page; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageGetTempPageCopySpecial(page: Page) -> Page; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageRestoreTempPage(tempPage: Page, oldPage: Page); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageRepairFragmentation(page: Page); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageTruncateLinePointerArray(page: Page); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageGetFreeSpace(page: Page) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageGetFreeSpaceForMultipleTuples(page: Page, ntups: ::std::os::raw::c_int) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageGetExactFreeSpace(page: Page) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageGetHeapFreeSpace(page: Page) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageIndexTupleDelete(page: Page, offnum: OffsetNumber); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageIndexMultiDelete( + page: Page, + itemnos: *mut OffsetNumber, + nitems: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageIndexTupleDeleteNoCompact(page: Page, offnum: OffsetNumber); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageIndexTupleOverwrite( + page: Page, + offnum: OffsetNumber, + newtup: Item, + newsize: Size, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageSetChecksumCopy(page: Page, blkno: BlockNumber) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PageSetChecksumInplace(page: Page, blkno: BlockNumber); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct varatt_external { + pub va_rawsize: int32, + pub va_extinfo: uint32, + pub va_valueid: Oid, + pub va_toastrelid: Oid, +} +impl Default for varatt_external { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct varatt_indirect { + pub pointer: *mut varlena, +} +impl Default for varatt_indirect { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct varatt_expanded { + pub eohptr: *mut ExpandedObjectHeader, +} +impl Default for varatt_expanded { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const vartag_external_VARTAG_INDIRECT: vartag_external = 1; +pub const vartag_external_VARTAG_EXPANDED_RO: vartag_external = 2; +pub const vartag_external_VARTAG_EXPANDED_RW: vartag_external = 3; +pub const vartag_external_VARTAG_ONDISK: vartag_external = 18; +pub type vartag_external = ::std::os::raw::c_uint; +#[repr(C)] +pub struct varattrib_4b { + pub va_4byte: __BindgenUnionField, + pub va_compressed: __BindgenUnionField, + pub bindgen_union_field: [u32; 2usize], +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct varattrib_4b__bindgen_ty_1 { + pub va_header: uint32, + pub va_data: __IncompleteArrayField<::std::os::raw::c_char>, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct varattrib_4b__bindgen_ty_2 { + pub va_header: uint32, + pub va_tcinfo: uint32, + pub va_data: __IncompleteArrayField<::std::os::raw::c_char>, +} +impl Default for varattrib_4b { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct varattrib_1b { + pub va_header: uint8, + pub va_data: __IncompleteArrayField<::std::os::raw::c_char>, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct varattrib_1b_e { + pub va_header: uint8, + pub va_tag: uint8, + pub va_data: __IncompleteArrayField<::std::os::raw::c_char>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct HeapTupleFields { + pub t_xmin: TransactionId, + pub t_xmax: TransactionId, + pub t_field3: HeapTupleFields__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union HeapTupleFields__bindgen_ty_1 { + pub t_cid: CommandId, + pub t_xvac: TransactionId, +} +impl Default for HeapTupleFields__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for HeapTupleFields { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DatumTupleFields { + pub datum_len_: int32, + pub datum_typmod: int32, + pub datum_typeid: Oid, +} +impl Default for DatumTupleFields { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +pub struct HeapTupleHeaderData { + pub t_choice: HeapTupleHeaderData__bindgen_ty_1, + pub t_ctid: ItemPointerData, + pub t_infomask2: uint16, + pub t_infomask: uint16, + pub t_hoff: uint8, + pub t_bits: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union HeapTupleHeaderData__bindgen_ty_1 { + pub t_heap: HeapTupleFields, + pub t_datum: DatumTupleFields, +} +impl Default for HeapTupleHeaderData__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for HeapTupleHeaderData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct MinimalTupleData { + pub t_len: uint32, + pub mt_padding: [::std::os::raw::c_char; 6usize], + pub t_infomask2: uint16, + pub t_infomask: uint16, + pub t_hoff: uint8, + pub t_bits: __IncompleteArrayField, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_compute_data_size( + tupleDesc: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + ) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_fill_tuple( + tupleDesc: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + data: *mut ::std::os::raw::c_char, + data_size: Size, + infomask: *mut uint16, + bit: *mut bits8, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_attisnull( + tup: HeapTuple, + attnum: ::std::os::raw::c_int, + tupleDesc: TupleDesc, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nocachegetattr( + tup: HeapTuple, + attnum: ::std::os::raw::c_int, + tupleDesc: TupleDesc, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_getsysattr( + tup: HeapTuple, + attnum: ::std::os::raw::c_int, + tupleDesc: TupleDesc, + isnull: *mut bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getmissingattr( + tupleDesc: TupleDesc, + attnum: ::std::os::raw::c_int, + isnull: *mut bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_copytuple(tuple: HeapTuple) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_copytuple_with_tuple(src: HeapTuple, dest: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_copy_tuple_as_datum(tuple: HeapTuple, tupleDesc: TupleDesc) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_form_tuple( + tupleDescriptor: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_modify_tuple( + tuple: HeapTuple, + tupleDesc: TupleDesc, + replValues: *mut Datum, + replIsnull: *mut bool, + doReplace: *mut bool, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_modify_tuple_by_cols( + tuple: HeapTuple, + tupleDesc: TupleDesc, + nCols: ::std::os::raw::c_int, + replCols: *mut ::std::os::raw::c_int, + replValues: *mut Datum, + replIsnull: *mut bool, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_deform_tuple( + tuple: HeapTuple, + tupleDesc: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_freetuple(htup: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_form_minimal_tuple( + tupleDescriptor: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + ) -> MinimalTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_free_minimal_tuple(mtup: MinimalTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_copy_minimal_tuple(mtup: MinimalTuple) -> MinimalTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_tuple_from_minimal_tuple(mtup: MinimalTuple) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn minimal_tuple_from_heap_tuple(htup: HeapTuple) -> MinimalTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_expand_tuple(sourceTuple: HeapTuple, tupleDesc: TupleDesc) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn minimal_expand_tuple(sourceTuple: HeapTuple, tupleDesc: TupleDesc) -> MinimalTuple; +} +pub type Buffer = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BufferAccessStrategyData { + _unused: [u8; 0], +} +pub type BufferAccessStrategy = *mut BufferAccessStrategyData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TupleTableSlot { + pub type_: NodeTag, + pub tts_flags: uint16, + pub tts_nvalid: AttrNumber, + pub tts_ops: *const TupleTableSlotOps, + pub tts_tupleDescriptor: TupleDesc, + pub tts_values: *mut Datum, + pub tts_isnull: *mut bool, + pub tts_mcxt: MemoryContext, + pub tts_tid: ItemPointerData, + pub tts_tableOid: Oid, +} +impl Default for TupleTableSlot { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TupleTableSlotOps { + pub base_slot_size: usize, + pub init: ::std::option::Option, + pub release: ::std::option::Option, + pub clear: ::std::option::Option, + pub getsomeattrs: ::std::option::Option< + unsafe extern "C" fn(slot: *mut TupleTableSlot, natts: ::std::os::raw::c_int), + >, + pub getsysattr: ::std::option::Option< + unsafe extern "C" fn( + slot: *mut TupleTableSlot, + attnum: ::std::os::raw::c_int, + isnull: *mut bool, + ) -> Datum, + >, + pub materialize: ::std::option::Option, + pub copyslot: ::std::option::Option< + unsafe extern "C" fn(dstslot: *mut TupleTableSlot, srcslot: *mut TupleTableSlot), + >, + pub get_heap_tuple: + ::std::option::Option HeapTuple>, + pub get_minimal_tuple: + ::std::option::Option MinimalTuple>, + pub copy_heap_tuple: + ::std::option::Option HeapTuple>, + pub copy_minimal_tuple: + ::std::option::Option MinimalTuple>, +} +extern "C" { + pub static TTSOpsVirtual: TupleTableSlotOps; +} +extern "C" { + pub static TTSOpsHeapTuple: TupleTableSlotOps; +} +extern "C" { + pub static TTSOpsMinimalTuple: TupleTableSlotOps; +} +extern "C" { + pub static TTSOpsBufferHeapTuple: TupleTableSlotOps; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct VirtualTupleTableSlot { + pub base: TupleTableSlot, + pub data: *mut ::std::os::raw::c_char, +} +impl Default for VirtualTupleTableSlot { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HeapTupleTableSlot { + pub base: TupleTableSlot, + pub tuple: HeapTuple, + pub off: uint32, + pub tupdata: HeapTupleData, +} +impl Default for HeapTupleTableSlot { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BufferHeapTupleTableSlot { + pub base: HeapTupleTableSlot, + pub buffer: Buffer, +} +impl Default for BufferHeapTupleTableSlot { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MinimalTupleTableSlot { + pub base: TupleTableSlot, + pub tuple: HeapTuple, + pub mintuple: MinimalTuple, + pub minhdr: HeapTupleData, + pub off: uint32, +} +impl Default for MinimalTupleTableSlot { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MakeTupleTableSlot( + tupleDesc: TupleDesc, + tts_ops: *const TupleTableSlotOps, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecAllocTableSlot( + tupleTable: *mut *mut List, + desc: TupleDesc, + tts_ops: *const TupleTableSlotOps, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecResetTupleTable(tupleTable: *mut List, shouldFree: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MakeSingleTupleTableSlot( + tupdesc: TupleDesc, + tts_ops: *const TupleTableSlotOps, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecDropSingleTupleTableSlot(slot: *mut TupleTableSlot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecSetSlotDescriptor(slot: *mut TupleTableSlot, tupdesc: TupleDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecStoreHeapTuple( + tuple: HeapTuple, + slot: *mut TupleTableSlot, + shouldFree: bool, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecForceStoreHeapTuple(tuple: HeapTuple, slot: *mut TupleTableSlot, shouldFree: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecStoreBufferHeapTuple( + tuple: HeapTuple, + slot: *mut TupleTableSlot, + buffer: Buffer, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecStorePinnedBufferHeapTuple( + tuple: HeapTuple, + slot: *mut TupleTableSlot, + buffer: Buffer, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecStoreMinimalTuple( + mtup: MinimalTuple, + slot: *mut TupleTableSlot, + shouldFree: bool, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecForceStoreMinimalTuple( + mtup: MinimalTuple, + slot: *mut TupleTableSlot, + shouldFree: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecStoreVirtualTuple(slot: *mut TupleTableSlot) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecStoreAllNullTuple(slot: *mut TupleTableSlot) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecStoreHeapTupleDatum(data: Datum, slot: *mut TupleTableSlot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecFetchSlotHeapTuple( + slot: *mut TupleTableSlot, + materialize: bool, + shouldFree: *mut bool, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecFetchSlotMinimalTuple( + slot: *mut TupleTableSlot, + shouldFree: *mut bool, + ) -> MinimalTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecFetchSlotHeapTupleDatum(slot: *mut TupleTableSlot) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn slot_getmissingattrs( + slot: *mut TupleTableSlot, + startAttNum: ::std::os::raw::c_int, + lastAttNum: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn slot_getsomeattrs_int(slot: *mut TupleTableSlot, attnum: ::std::os::raw::c_int); +} +pub type bitmapword = uint64; +pub type signedbitmapword = int64; +#[repr(C)] +#[derive(Debug)] +pub struct Bitmapset { + pub type_: NodeTag, + pub nwords: ::std::os::raw::c_int, + pub words: __IncompleteArrayField, +} +impl Default for Bitmapset { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const BMS_Comparison_BMS_EQUAL: BMS_Comparison = 0; +pub const BMS_Comparison_BMS_SUBSET1: BMS_Comparison = 1; +pub const BMS_Comparison_BMS_SUBSET2: BMS_Comparison = 2; +pub const BMS_Comparison_BMS_DIFFERENT: BMS_Comparison = 3; +pub type BMS_Comparison = ::std::os::raw::c_uint; +pub const BMS_Membership_BMS_EMPTY_SET: BMS_Membership = 0; +pub const BMS_Membership_BMS_SINGLETON: BMS_Membership = 1; +pub const BMS_Membership_BMS_MULTIPLE: BMS_Membership = 2; +pub type BMS_Membership = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_copy(a: *const Bitmapset) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_equal(a: *const Bitmapset, b: *const Bitmapset) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_compare(a: *const Bitmapset, b: *const Bitmapset) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_make_singleton(x: ::std::os::raw::c_int) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_free(a: *mut Bitmapset); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_union(a: *const Bitmapset, b: *const Bitmapset) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_intersect(a: *const Bitmapset, b: *const Bitmapset) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_difference(a: *const Bitmapset, b: *const Bitmapset) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_is_subset(a: *const Bitmapset, b: *const Bitmapset) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_subset_compare(a: *const Bitmapset, b: *const Bitmapset) -> BMS_Comparison; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_is_member(x: ::std::os::raw::c_int, a: *const Bitmapset) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_member_index(a: *mut Bitmapset, x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_overlap(a: *const Bitmapset, b: *const Bitmapset) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_overlap_list(a: *const Bitmapset, b: *const List) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_nonempty_difference(a: *const Bitmapset, b: *const Bitmapset) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_singleton_member(a: *const Bitmapset) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_get_singleton_member( + a: *const Bitmapset, + member: *mut ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_num_members(a: *const Bitmapset) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_membership(a: *const Bitmapset) -> BMS_Membership; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_add_member(a: *mut Bitmapset, x: ::std::os::raw::c_int) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_del_member(a: *mut Bitmapset, x: ::std::os::raw::c_int) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_add_members(a: *mut Bitmapset, b: *const Bitmapset) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_add_range( + a: *mut Bitmapset, + lower: ::std::os::raw::c_int, + upper: ::std::os::raw::c_int, + ) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_int_members(a: *mut Bitmapset, b: *const Bitmapset) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_del_members(a: *mut Bitmapset, b: *const Bitmapset) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_join(a: *mut Bitmapset, b: *mut Bitmapset) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_next_member( + a: *const Bitmapset, + prevbit: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_prev_member( + a: *const Bitmapset, + prevbit: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bms_hash_value(a: *const Bitmapset) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitmap_hash(key: *const ::std::os::raw::c_void, keysize: Size) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitmap_match( + key1: *const ::std::os::raw::c_void, + key2: *const ::std::os::raw::c_void, + keysize: Size, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TupleConversionMap { + pub indesc: TupleDesc, + pub outdesc: TupleDesc, + pub attrMap: *mut AttrMap, + pub invalues: *mut Datum, + pub inisnull: *mut bool, + pub outvalues: *mut Datum, + pub outisnull: *mut bool, +} +impl Default for TupleConversionMap { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn convert_tuples_by_position( + indesc: TupleDesc, + outdesc: TupleDesc, + msg: *const ::std::os::raw::c_char, + ) -> *mut TupleConversionMap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn convert_tuples_by_name(indesc: TupleDesc, outdesc: TupleDesc) + -> *mut TupleConversionMap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn convert_tuples_by_name_attrmap( + indesc: TupleDesc, + outdesc: TupleDesc, + attrMap: *mut AttrMap, + ) -> *mut TupleConversionMap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn execute_attr_map_tuple(tuple: HeapTuple, map: *mut TupleConversionMap) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn execute_attr_map_slot( + attrMap: *mut AttrMap, + in_slot: *mut TupleTableSlot, + out_slot: *mut TupleTableSlot, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn execute_attr_map_cols(attrMap: *mut AttrMap, in_cols: *mut Bitmapset) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn free_conversion_map(map: *mut TupleConversionMap); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct instr_time { + pub ticks: int64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tm { + pub tm_sec: ::std::os::raw::c_int, + pub tm_min: ::std::os::raw::c_int, + pub tm_hour: ::std::os::raw::c_int, + pub tm_mday: ::std::os::raw::c_int, + pub tm_mon: ::std::os::raw::c_int, + pub tm_year: ::std::os::raw::c_int, + pub tm_wday: ::std::os::raw::c_int, + pub tm_yday: ::std::os::raw::c_int, + pub tm_isdst: ::std::os::raw::c_int, + pub tm_gmtoff: ::std::os::raw::c_long, + pub tm_zone: *const ::std::os::raw::c_char, +} +impl Default for tm { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct itimerspec { + pub it_interval: timespec, + pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct BufferUsage { + pub shared_blks_hit: int64, + pub shared_blks_read: int64, + pub shared_blks_dirtied: int64, + pub shared_blks_written: int64, + pub local_blks_hit: int64, + pub local_blks_read: int64, + pub local_blks_dirtied: int64, + pub local_blks_written: int64, + pub temp_blks_read: int64, + pub temp_blks_written: int64, + pub blk_read_time: instr_time, + pub blk_write_time: instr_time, + pub temp_blk_read_time: instr_time, + pub temp_blk_write_time: instr_time, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct WalUsage { + pub wal_records: int64, + pub wal_fpi: int64, + pub wal_bytes: uint64, +} +pub const InstrumentOption_INSTRUMENT_TIMER: InstrumentOption = 1; +pub const InstrumentOption_INSTRUMENT_BUFFERS: InstrumentOption = 2; +pub const InstrumentOption_INSTRUMENT_ROWS: InstrumentOption = 4; +pub const InstrumentOption_INSTRUMENT_WAL: InstrumentOption = 8; +pub const InstrumentOption_INSTRUMENT_ALL: InstrumentOption = 2147483647; +pub type InstrumentOption = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct Instrumentation { + pub need_timer: bool, + pub need_bufusage: bool, + pub need_walusage: bool, + pub async_mode: bool, + pub running: bool, + pub starttime: instr_time, + pub counter: instr_time, + pub firsttuple: f64, + pub tuplecount: f64, + pub bufusage_start: BufferUsage, + pub walusage_start: WalUsage, + pub startup: f64, + pub total: f64, + pub ntuples: f64, + pub ntuples2: f64, + pub nloops: f64, + pub nfiltered1: f64, + pub nfiltered2: f64, + pub bufusage: BufferUsage, + pub walusage: WalUsage, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct WorkerInstrumentation { + pub num_workers: ::std::os::raw::c_int, + pub instrument: __IncompleteArrayField, +} +extern "C" { + pub static mut pgBufferUsage: BufferUsage; +} +extern "C" { + pub static mut pgWalUsage: WalUsage; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrAlloc( + n: ::std::os::raw::c_int, + instrument_options: ::std::os::raw::c_int, + async_mode: bool, + ) -> *mut Instrumentation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrInit(instr: *mut Instrumentation, instrument_options: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrStartNode(instr: *mut Instrumentation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrStopNode(instr: *mut Instrumentation, nTuples: f64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrUpdateTupleCount(instr: *mut Instrumentation, nTuples: f64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrEndLoop(instr: *mut Instrumentation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrAggNode(dst: *mut Instrumentation, add: *mut Instrumentation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrStartParallelQuery(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrEndParallelQuery(bufusage: *mut BufferUsage, walusage: *mut WalUsage); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstrAccumParallelQuery(bufusage: *mut BufferUsage, walusage: *mut WalUsage); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufferUsageAccumDiff( + dst: *mut BufferUsage, + add: *const BufferUsage, + sub: *const BufferUsage, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalUsageAccumDiff(dst: *mut WalUsage, add: *const WalUsage, sub: *const WalUsage); +} +pub type fmNodePtr = *mut Node; +pub type fmAggrefPtr = *mut Aggref; +pub type fmExprContextCallbackFunction = ::std::option::Option; +pub type fmStringInfo = *mut StringInfoData; +pub type FunctionCallInfo = *mut FunctionCallInfoBaseData; +pub type PGFunction = + ::std::option::Option Datum>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FmgrInfo { + pub fn_addr: PGFunction, + pub fn_oid: Oid, + pub fn_nargs: ::std::os::raw::c_short, + pub fn_strict: bool, + pub fn_retset: bool, + pub fn_stats: ::std::os::raw::c_uchar, + pub fn_extra: *mut ::std::os::raw::c_void, + pub fn_mcxt: MemoryContext, + pub fn_expr: fmNodePtr, +} +impl Default for FmgrInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug)] +pub struct FunctionCallInfoBaseData { + pub flinfo: *mut FmgrInfo, + pub context: fmNodePtr, + pub resultinfo: fmNodePtr, + pub fncollation: Oid, + pub isnull: bool, + pub nargs: ::std::os::raw::c_short, + pub args: __IncompleteArrayField, +} +impl Default for FunctionCallInfoBaseData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fmgr_info(functionId: Oid, finfo: *mut FmgrInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fmgr_info_cxt(functionId: Oid, finfo: *mut FmgrInfo, mcxt: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fmgr_info_copy(dstinfo: *mut FmgrInfo, srcinfo: *mut FmgrInfo, destcxt: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fmgr_symbol( + functionId: Oid, + mod_: *mut *mut ::std::os::raw::c_char, + fn_: *mut *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_detoast_datum(datum: *mut varlena) -> *mut varlena; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_detoast_datum_copy(datum: *mut varlena) -> *mut varlena; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_detoast_datum_slice(datum: *mut varlena, first: int32, count: int32) -> *mut varlena; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_detoast_datum_packed(datum: *mut varlena) -> *mut varlena; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct Pg_finfo_record { + pub api_version: ::std::os::raw::c_int, +} +pub type PGFInfoFunction = ::std::option::Option *const Pg_finfo_record>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _PG_init(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _PG_fini(); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct Pg_magic_struct { + pub len: ::std::os::raw::c_int, + pub version: ::std::os::raw::c_int, + pub funcmaxargs: ::std::os::raw::c_int, + pub indexmaxkeys: ::std::os::raw::c_int, + pub namedatalen: ::std::os::raw::c_int, + pub float8byval: ::std::os::raw::c_int, + pub abi_extra: [::std::os::raw::c_char; 32usize], +} +pub type PGModuleMagicFunction = + ::std::option::Option *const Pg_magic_struct>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectFunctionCall1Coll(func: PGFunction, collation: Oid, arg1: Datum) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectFunctionCall2Coll( + func: PGFunction, + collation: Oid, + arg1: Datum, + arg2: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectFunctionCall3Coll( + func: PGFunction, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectFunctionCall4Coll( + func: PGFunction, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectFunctionCall5Coll( + func: PGFunction, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectFunctionCall6Coll( + func: PGFunction, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectFunctionCall7Coll( + func: PGFunction, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + arg7: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectFunctionCall8Coll( + func: PGFunction, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + arg7: Datum, + arg8: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectFunctionCall9Coll( + func: PGFunction, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + arg7: Datum, + arg8: Datum, + arg9: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CallerFInfoFunctionCall1( + func: PGFunction, + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CallerFInfoFunctionCall2( + func: PGFunction, + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + arg2: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall0Coll(flinfo: *mut FmgrInfo, collation: Oid) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall1Coll(flinfo: *mut FmgrInfo, collation: Oid, arg1: Datum) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall2Coll( + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + arg2: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall3Coll( + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall4Coll( + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall5Coll( + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall6Coll( + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall7Coll( + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + arg7: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall8Coll( + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + arg7: Datum, + arg8: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionCall9Coll( + flinfo: *mut FmgrInfo, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + arg7: Datum, + arg8: Datum, + arg9: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall0Coll(functionId: Oid, collation: Oid) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall1Coll(functionId: Oid, collation: Oid, arg1: Datum) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall2Coll(functionId: Oid, collation: Oid, arg1: Datum, arg2: Datum) + -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall3Coll( + functionId: Oid, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall4Coll( + functionId: Oid, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall5Coll( + functionId: Oid, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall6Coll( + functionId: Oid, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall7Coll( + functionId: Oid, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + arg7: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall8Coll( + functionId: Oid, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + arg7: Datum, + arg8: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidFunctionCall9Coll( + functionId: Oid, + collation: Oid, + arg1: Datum, + arg2: Datum, + arg3: Datum, + arg4: Datum, + arg5: Datum, + arg6: Datum, + arg7: Datum, + arg8: Datum, + arg9: Datum, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InputFunctionCall( + flinfo: *mut FmgrInfo, + str_: *mut ::std::os::raw::c_char, + typioparam: Oid, + typmod: int32, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InputFunctionCallSafe( + flinfo: *mut FmgrInfo, + str_: *mut ::std::os::raw::c_char, + typioparam: Oid, + typmod: int32, + escontext: fmNodePtr, + result: *mut Datum, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DirectInputFunctionCallSafe( + func: PGFunction, + str_: *mut ::std::os::raw::c_char, + typioparam: Oid, + typmod: int32, + escontext: fmNodePtr, + result: *mut Datum, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidInputFunctionCall( + functionId: Oid, + str_: *mut ::std::os::raw::c_char, + typioparam: Oid, + typmod: int32, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OutputFunctionCall(flinfo: *mut FmgrInfo, val: Datum) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidOutputFunctionCall(functionId: Oid, val: Datum) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReceiveFunctionCall( + flinfo: *mut FmgrInfo, + buf: fmStringInfo, + typioparam: Oid, + typmod: int32, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidReceiveFunctionCall( + functionId: Oid, + buf: fmStringInfo, + typioparam: Oid, + typmod: int32, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SendFunctionCall(flinfo: *mut FmgrInfo, val: Datum) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OidSendFunctionCall(functionId: Oid, val: Datum) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fetch_finfo_record( + filehandle: *mut ::std::os::raw::c_void, + funcname: *const ::std::os::raw::c_char, + ) -> *const Pg_finfo_record; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fmgr_internal_function(proname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_fn_expr_rettype(flinfo: *mut FmgrInfo) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_fn_expr_argtype(flinfo: *mut FmgrInfo, argnum: ::std::os::raw::c_int) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_call_expr_argtype(expr: fmNodePtr, argnum: ::std::os::raw::c_int) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_fn_expr_arg_stable(flinfo: *mut FmgrInfo, argnum: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_call_expr_arg_stable(expr: fmNodePtr, argnum: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_fn_expr_variadic(flinfo: *mut FmgrInfo) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_fn_opclass_options(flinfo: *mut FmgrInfo) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_fn_opclass_options(flinfo: *mut FmgrInfo) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_fn_opclass_options(flinfo: *mut FmgrInfo, options: *mut bytea); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckFunctionValidatorAccess(validatorOid: Oid, functionOid: Oid) -> bool; +} +extern "C" { + pub static mut Dynamic_library_path: *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn load_external_function( + filename: *const ::std::os::raw::c_char, + funcname: *const ::std::os::raw::c_char, + signalNotFound: bool, + filehandle: *mut *mut ::std::os::raw::c_void, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lookup_external_function( + filehandle: *mut ::std::os::raw::c_void, + funcname: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn load_file(filename: *const ::std::os::raw::c_char, restricted: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_rendezvous_variable( + varName: *const ::std::os::raw::c_char, + ) -> *mut *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EstimateLibraryStateSpace() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SerializeLibraryState(maxsize: Size, start_address: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreLibraryState(start_address: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AggCheckCallContext( + fcinfo: FunctionCallInfo, + aggcontext: *mut MemoryContext, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AggGetAggref(fcinfo: FunctionCallInfo) -> fmAggrefPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AggGetTempMemoryContext(fcinfo: FunctionCallInfo) -> MemoryContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AggStateIsShared(fcinfo: FunctionCallInfo) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AggRegisterCallback( + fcinfo: FunctionCallInfo, + func: fmExprContextCallbackFunction, + arg: Datum, + ); +} +pub const FmgrHookEventType_FHET_START: FmgrHookEventType = 0; +pub const FmgrHookEventType_FHET_END: FmgrHookEventType = 1; +pub const FmgrHookEventType_FHET_ABORT: FmgrHookEventType = 2; +pub type FmgrHookEventType = ::std::os::raw::c_uint; +pub type needs_fmgr_hook_type = ::std::option::Option bool>; +pub type fmgr_hook_type = ::std::option::Option< + unsafe extern "C" fn(event: FmgrHookEventType, flinfo: *mut FmgrInfo, arg: *mut Datum), +>; +extern "C" { + pub static mut needs_fmgr_hook: needs_fmgr_hook_type; +} +extern "C" { + pub static mut fmgr_hook: fmgr_hook_type; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dlist_node { + pub prev: *mut dlist_node, + pub next: *mut dlist_node, +} +impl Default for dlist_node { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dlist_head { + pub head: dlist_node, +} +impl Default for dlist_head { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dlist_iter { + pub cur: *mut dlist_node, + pub end: *mut dlist_node, +} +impl Default for dlist_iter { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dlist_mutable_iter { + pub cur: *mut dlist_node, + pub next: *mut dlist_node, + pub end: *mut dlist_node, +} +impl Default for dlist_mutable_iter { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dclist_head { + pub dlist: dlist_head, + pub count: uint32, +} +impl Default for dclist_head { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct slist_node { + pub next: *mut slist_node, +} +impl Default for slist_node { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct slist_head { + pub head: slist_node, +} +impl Default for slist_head { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct slist_iter { + pub cur: *mut slist_node, +} +impl Default for slist_iter { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct slist_mutable_iter { + pub cur: *mut slist_node, + pub next: *mut slist_node, + pub prev: *mut slist_node, +} +impl Default for slist_mutable_iter { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn slist_delete(head: *mut slist_head, node: *const slist_node); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pairingheap_node { + pub first_child: *mut pairingheap_node, + pub next_sibling: *mut pairingheap_node, + pub prev_or_parent: *mut pairingheap_node, +} +impl Default for pairingheap_node { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type pairingheap_comparator = ::std::option::Option< + unsafe extern "C" fn( + a: *const pairingheap_node, + b: *const pairingheap_node, + arg: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pairingheap { + pub ph_compare: pairingheap_comparator, + pub ph_arg: *mut ::std::os::raw::c_void, + pub ph_root: *mut pairingheap_node, +} +impl Default for pairingheap { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pairingheap_allocate( + compare: pairingheap_comparator, + arg: *mut ::std::os::raw::c_void, + ) -> *mut pairingheap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pairingheap_free(heap: *mut pairingheap); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pairingheap_add(heap: *mut pairingheap, node: *mut pairingheap_node); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pairingheap_first(heap: *mut pairingheap) -> *mut pairingheap_node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pairingheap_remove_first(heap: *mut pairingheap) -> *mut pairingheap_node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pairingheap_remove(heap: *mut pairingheap, node: *mut pairingheap_node); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParamExternData { + pub value: Datum, + pub isnull: bool, + pub pflags: uint16, + pub ptype: Oid, +} +impl Default for ParamExternData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ParamListInfo = *mut ParamListInfoData; +pub type ParamFetchHook = ::std::option::Option< + unsafe extern "C" fn( + params: ParamListInfo, + paramid: ::std::os::raw::c_int, + speculative: bool, + workspace: *mut ParamExternData, + ) -> *mut ParamExternData, +>; +pub type ParamCompileHook = ::std::option::Option< + unsafe extern "C" fn( + params: ParamListInfo, + param: *mut Param, + state: *mut ExprState, + resv: *mut Datum, + resnull: *mut bool, + ), +>; +pub type ParserSetupHook = ::std::option::Option< + unsafe extern "C" fn(pstate: *mut ParseState, arg: *mut ::std::os::raw::c_void), +>; +#[repr(C)] +#[derive(Debug)] +pub struct ParamListInfoData { + pub paramFetch: ParamFetchHook, + pub paramFetchArg: *mut ::std::os::raw::c_void, + pub paramCompile: ParamCompileHook, + pub paramCompileArg: *mut ::std::os::raw::c_void, + pub parserSetup: ParserSetupHook, + pub parserSetupArg: *mut ::std::os::raw::c_void, + pub paramValuesStr: *mut ::std::os::raw::c_char, + pub numParams: ::std::os::raw::c_int, + pub params: __IncompleteArrayField, +} +impl Default for ParamListInfoData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParamExecData { + pub execPlan: *mut ::std::os::raw::c_void, + pub value: Datum, + pub isnull: bool, +} +impl Default for ParamExecData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParamsErrorCbData { + pub portalName: *const ::std::os::raw::c_char, + pub params: ParamListInfo, +} +impl Default for ParamsErrorCbData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeParamList(numParams: ::std::os::raw::c_int) -> ParamListInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn copyParamList(from: ParamListInfo) -> ParamListInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EstimateParamListSpace(paramLI: ParamListInfo) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SerializeParamList( + paramLI: ParamListInfo, + start_address: *mut *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreParamList(start_address: *mut *mut ::std::os::raw::c_char) -> ParamListInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildParamLogString( + params: ParamListInfo, + knownTextValues: *mut *mut ::std::os::raw::c_char, + maxlen: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParamsErrorCallback(arg: *mut ::std::os::raw::c_void); +} +pub const ScanDirection_BackwardScanDirection: ScanDirection = -1; +pub const ScanDirection_NoMovementScanDirection: ScanDirection = 0; +pub const ScanDirection_ForwardScanDirection: ScanDirection = 1; +pub type ScanDirection = ::std::os::raw::c_int; +pub type StrategyNumber = uint16; +pub type RelFileNumber = Oid; +pub const ForkNumber_InvalidForkNumber: ForkNumber = -1; +pub const ForkNumber_MAIN_FORKNUM: ForkNumber = 0; +pub const ForkNumber_FSM_FORKNUM: ForkNumber = 1; +pub const ForkNumber_VISIBILITYMAP_FORKNUM: ForkNumber = 2; +pub const ForkNumber_INIT_FORKNUM: ForkNumber = 3; +pub type ForkNumber = ::std::os::raw::c_int; +extern "C" { + pub static forkNames: [*const ::std::os::raw::c_char; 0usize]; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn forkname_to_number(forkName: *const ::std::os::raw::c_char) -> ForkNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn forkname_chars( + str_: *const ::std::os::raw::c_char, + fork: *mut ForkNumber, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetDatabasePath(dbOid: Oid, spcOid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetRelationPath( + dbOid: Oid, + spcOid: Oid, + relNumber: RelFileNumber, + backendId: ::std::os::raw::c_int, + forkNumber: ForkNumber, + ) -> *mut ::std::os::raw::c_char; +} +pub const LockClauseStrength_LCS_NONE: LockClauseStrength = 0; +pub const LockClauseStrength_LCS_FORKEYSHARE: LockClauseStrength = 1; +pub const LockClauseStrength_LCS_FORSHARE: LockClauseStrength = 2; +pub const LockClauseStrength_LCS_FORNOKEYUPDATE: LockClauseStrength = 3; +pub const LockClauseStrength_LCS_FORUPDATE: LockClauseStrength = 4; +pub type LockClauseStrength = ::std::os::raw::c_uint; +pub const LockWaitPolicy_LockWaitBlock: LockWaitPolicy = 0; +pub const LockWaitPolicy_LockWaitSkip: LockWaitPolicy = 1; +pub const LockWaitPolicy_LockWaitError: LockWaitPolicy = 2; +pub type LockWaitPolicy = ::std::os::raw::c_uint; +pub const LockTupleMode_LockTupleKeyShare: LockTupleMode = 0; +pub const LockTupleMode_LockTupleShare: LockTupleMode = 1; +pub const LockTupleMode_LockTupleNoKeyExclusive: LockTupleMode = 2; +pub const LockTupleMode_LockTupleExclusive: LockTupleMode = 3; +pub type LockTupleMode = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Alias { + pub type_: NodeTag, + pub aliasname: *mut ::std::os::raw::c_char, + pub colnames: *mut List, +} +impl Default for Alias { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const OnCommitAction_ONCOMMIT_NOOP: OnCommitAction = 0; +pub const OnCommitAction_ONCOMMIT_PRESERVE_ROWS: OnCommitAction = 1; +pub const OnCommitAction_ONCOMMIT_DELETE_ROWS: OnCommitAction = 2; +pub const OnCommitAction_ONCOMMIT_DROP: OnCommitAction = 3; +pub type OnCommitAction = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeVar { + pub type_: NodeTag, + pub catalogname: *mut ::std::os::raw::c_char, + pub schemaname: *mut ::std::os::raw::c_char, + pub relname: *mut ::std::os::raw::c_char, + pub inh: bool, + pub relpersistence: ::std::os::raw::c_char, + pub alias: *mut Alias, + pub location: ::std::os::raw::c_int, +} +impl Default for RangeVar { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TableFunc { + pub type_: NodeTag, + pub ns_uris: *mut List, + pub ns_names: *mut List, + pub docexpr: *mut Node, + pub rowexpr: *mut Node, + pub colnames: *mut List, + pub coltypes: *mut List, + pub coltypmods: *mut List, + pub colcollations: *mut List, + pub colexprs: *mut List, + pub coldefexprs: *mut List, + pub notnulls: *mut Bitmapset, + pub ordinalitycol: ::std::os::raw::c_int, + pub location: ::std::os::raw::c_int, +} +impl Default for TableFunc { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IntoClause { + pub type_: NodeTag, + pub rel: *mut RangeVar, + pub colNames: *mut List, + pub accessMethod: *mut ::std::os::raw::c_char, + pub options: *mut List, + pub onCommit: OnCommitAction, + pub tableSpaceName: *mut ::std::os::raw::c_char, + pub viewQuery: *mut Node, + pub skipData: bool, +} +impl Default for IntoClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Expr { + pub type_: NodeTag, +} +impl Default for Expr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Var { + pub xpr: Expr, + pub varno: ::std::os::raw::c_int, + pub varattno: AttrNumber, + pub vartype: Oid, + pub vartypmod: int32, + pub varcollid: Oid, + pub varnullingrels: *mut Bitmapset, + pub varlevelsup: Index, + pub varnosyn: Index, + pub varattnosyn: AttrNumber, + pub location: ::std::os::raw::c_int, +} +impl Default for Var { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Const { + pub xpr: Expr, + pub consttype: Oid, + pub consttypmod: int32, + pub constcollid: Oid, + pub constlen: ::std::os::raw::c_int, + pub constvalue: Datum, + pub constisnull: bool, + pub constbyval: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for Const { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ParamKind_PARAM_EXTERN: ParamKind = 0; +pub const ParamKind_PARAM_EXEC: ParamKind = 1; +pub const ParamKind_PARAM_SUBLINK: ParamKind = 2; +pub const ParamKind_PARAM_MULTIEXPR: ParamKind = 3; +pub type ParamKind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Param { + pub xpr: Expr, + pub paramkind: ParamKind, + pub paramid: ::std::os::raw::c_int, + pub paramtype: Oid, + pub paramtypmod: int32, + pub paramcollid: Oid, + pub location: ::std::os::raw::c_int, +} +impl Default for Param { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Aggref { + pub xpr: Expr, + pub aggfnoid: Oid, + pub aggtype: Oid, + pub aggcollid: Oid, + pub inputcollid: Oid, + pub aggtranstype: Oid, + pub aggargtypes: *mut List, + pub aggdirectargs: *mut List, + pub args: *mut List, + pub aggorder: *mut List, + pub aggdistinct: *mut List, + pub aggfilter: *mut Expr, + pub aggstar: bool, + pub aggvariadic: bool, + pub aggkind: ::std::os::raw::c_char, + pub aggpresorted: bool, + pub agglevelsup: Index, + pub aggsplit: AggSplit, + pub aggno: ::std::os::raw::c_int, + pub aggtransno: ::std::os::raw::c_int, + pub location: ::std::os::raw::c_int, +} +impl Default for Aggref { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GroupingFunc { + pub xpr: Expr, + pub args: *mut List, + pub refs: *mut List, + pub cols: *mut List, + pub agglevelsup: Index, + pub location: ::std::os::raw::c_int, +} +impl Default for GroupingFunc { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowFunc { + pub xpr: Expr, + pub winfnoid: Oid, + pub wintype: Oid, + pub wincollid: Oid, + pub inputcollid: Oid, + pub args: *mut List, + pub aggfilter: *mut Expr, + pub winref: Index, + pub winstar: bool, + pub winagg: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for WindowFunc { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SubscriptingRef { + pub xpr: Expr, + pub refcontainertype: Oid, + pub refelemtype: Oid, + pub refrestype: Oid, + pub reftypmod: int32, + pub refcollid: Oid, + pub refupperindexpr: *mut List, + pub reflowerindexpr: *mut List, + pub refexpr: *mut Expr, + pub refassgnexpr: *mut Expr, +} +impl Default for SubscriptingRef { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const CoercionContext_COERCION_IMPLICIT: CoercionContext = 0; +pub const CoercionContext_COERCION_ASSIGNMENT: CoercionContext = 1; +pub const CoercionContext_COERCION_PLPGSQL: CoercionContext = 2; +pub const CoercionContext_COERCION_EXPLICIT: CoercionContext = 3; +pub type CoercionContext = ::std::os::raw::c_uint; +pub const CoercionForm_COERCE_EXPLICIT_CALL: CoercionForm = 0; +pub const CoercionForm_COERCE_EXPLICIT_CAST: CoercionForm = 1; +pub const CoercionForm_COERCE_IMPLICIT_CAST: CoercionForm = 2; +pub const CoercionForm_COERCE_SQL_SYNTAX: CoercionForm = 3; +pub type CoercionForm = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FuncExpr { + pub xpr: Expr, + pub funcid: Oid, + pub funcresulttype: Oid, + pub funcretset: bool, + pub funcvariadic: bool, + pub funcformat: CoercionForm, + pub funccollid: Oid, + pub inputcollid: Oid, + pub args: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for FuncExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NamedArgExpr { + pub xpr: Expr, + pub arg: *mut Expr, + pub name: *mut ::std::os::raw::c_char, + pub argnumber: ::std::os::raw::c_int, + pub location: ::std::os::raw::c_int, +} +impl Default for NamedArgExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct OpExpr { + pub xpr: Expr, + pub opno: Oid, + pub opfuncid: Oid, + pub opresulttype: Oid, + pub opretset: bool, + pub opcollid: Oid, + pub inputcollid: Oid, + pub args: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for OpExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type DistinctExpr = OpExpr; +pub type NullIfExpr = OpExpr; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ScalarArrayOpExpr { + pub xpr: Expr, + pub opno: Oid, + pub opfuncid: Oid, + pub hashfuncid: Oid, + pub negfuncid: Oid, + pub useOr: bool, + pub inputcollid: Oid, + pub args: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for ScalarArrayOpExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const BoolExprType_AND_EXPR: BoolExprType = 0; +pub const BoolExprType_OR_EXPR: BoolExprType = 1; +pub const BoolExprType_NOT_EXPR: BoolExprType = 2; +pub type BoolExprType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BoolExpr { + pub xpr: Expr, + pub boolop: BoolExprType, + pub args: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for BoolExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const SubLinkType_EXISTS_SUBLINK: SubLinkType = 0; +pub const SubLinkType_ALL_SUBLINK: SubLinkType = 1; +pub const SubLinkType_ANY_SUBLINK: SubLinkType = 2; +pub const SubLinkType_ROWCOMPARE_SUBLINK: SubLinkType = 3; +pub const SubLinkType_EXPR_SUBLINK: SubLinkType = 4; +pub const SubLinkType_MULTIEXPR_SUBLINK: SubLinkType = 5; +pub const SubLinkType_ARRAY_SUBLINK: SubLinkType = 6; +pub const SubLinkType_CTE_SUBLINK: SubLinkType = 7; +pub type SubLinkType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SubLink { + pub xpr: Expr, + pub subLinkType: SubLinkType, + pub subLinkId: ::std::os::raw::c_int, + pub testexpr: *mut Node, + pub operName: *mut List, + pub subselect: *mut Node, + pub location: ::std::os::raw::c_int, +} +impl Default for SubLink { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SubPlan { + pub xpr: Expr, + pub subLinkType: SubLinkType, + pub testexpr: *mut Node, + pub paramIds: *mut List, + pub plan_id: ::std::os::raw::c_int, + pub plan_name: *mut ::std::os::raw::c_char, + pub firstColType: Oid, + pub firstColTypmod: int32, + pub firstColCollation: Oid, + pub useHashTable: bool, + pub unknownEqFalse: bool, + pub parallel_safe: bool, + pub setParam: *mut List, + pub parParam: *mut List, + pub args: *mut List, + pub startup_cost: Cost, + pub per_call_cost: Cost, +} +impl Default for SubPlan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlternativeSubPlan { + pub xpr: Expr, + pub subplans: *mut List, +} +impl Default for AlternativeSubPlan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FieldSelect { + pub xpr: Expr, + pub arg: *mut Expr, + pub fieldnum: AttrNumber, + pub resulttype: Oid, + pub resulttypmod: int32, + pub resultcollid: Oid, +} +impl Default for FieldSelect { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FieldStore { + pub xpr: Expr, + pub arg: *mut Expr, + pub newvals: *mut List, + pub fieldnums: *mut List, + pub resulttype: Oid, +} +impl Default for FieldStore { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RelabelType { + pub xpr: Expr, + pub arg: *mut Expr, + pub resulttype: Oid, + pub resulttypmod: int32, + pub resultcollid: Oid, + pub relabelformat: CoercionForm, + pub location: ::std::os::raw::c_int, +} +impl Default for RelabelType { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CoerceViaIO { + pub xpr: Expr, + pub arg: *mut Expr, + pub resulttype: Oid, + pub resultcollid: Oid, + pub coerceformat: CoercionForm, + pub location: ::std::os::raw::c_int, +} +impl Default for CoerceViaIO { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ArrayCoerceExpr { + pub xpr: Expr, + pub arg: *mut Expr, + pub elemexpr: *mut Expr, + pub resulttype: Oid, + pub resulttypmod: int32, + pub resultcollid: Oid, + pub coerceformat: CoercionForm, + pub location: ::std::os::raw::c_int, +} +impl Default for ArrayCoerceExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ConvertRowtypeExpr { + pub xpr: Expr, + pub arg: *mut Expr, + pub resulttype: Oid, + pub convertformat: CoercionForm, + pub location: ::std::os::raw::c_int, +} +impl Default for ConvertRowtypeExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollateExpr { + pub xpr: Expr, + pub arg: *mut Expr, + pub collOid: Oid, + pub location: ::std::os::raw::c_int, +} +impl Default for CollateExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CaseExpr { + pub xpr: Expr, + pub casetype: Oid, + pub casecollid: Oid, + pub arg: *mut Expr, + pub args: *mut List, + pub defresult: *mut Expr, + pub location: ::std::os::raw::c_int, +} +impl Default for CaseExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CaseWhen { + pub xpr: Expr, + pub expr: *mut Expr, + pub result: *mut Expr, + pub location: ::std::os::raw::c_int, +} +impl Default for CaseWhen { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CaseTestExpr { + pub xpr: Expr, + pub typeId: Oid, + pub typeMod: int32, + pub collation: Oid, +} +impl Default for CaseTestExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ArrayExpr { + pub xpr: Expr, + pub array_typeid: Oid, + pub array_collid: Oid, + pub element_typeid: Oid, + pub elements: *mut List, + pub multidims: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for ArrayExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RowExpr { + pub xpr: Expr, + pub args: *mut List, + pub row_typeid: Oid, + pub row_format: CoercionForm, + pub colnames: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for RowExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const RowCompareType_ROWCOMPARE_LT: RowCompareType = 1; +pub const RowCompareType_ROWCOMPARE_LE: RowCompareType = 2; +pub const RowCompareType_ROWCOMPARE_EQ: RowCompareType = 3; +pub const RowCompareType_ROWCOMPARE_GE: RowCompareType = 4; +pub const RowCompareType_ROWCOMPARE_GT: RowCompareType = 5; +pub const RowCompareType_ROWCOMPARE_NE: RowCompareType = 6; +pub type RowCompareType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RowCompareExpr { + pub xpr: Expr, + pub rctype: RowCompareType, + pub opnos: *mut List, + pub opfamilies: *mut List, + pub inputcollids: *mut List, + pub largs: *mut List, + pub rargs: *mut List, +} +impl Default for RowCompareExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CoalesceExpr { + pub xpr: Expr, + pub coalescetype: Oid, + pub coalescecollid: Oid, + pub args: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for CoalesceExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const MinMaxOp_IS_GREATEST: MinMaxOp = 0; +pub const MinMaxOp_IS_LEAST: MinMaxOp = 1; +pub type MinMaxOp = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MinMaxExpr { + pub xpr: Expr, + pub minmaxtype: Oid, + pub minmaxcollid: Oid, + pub inputcollid: Oid, + pub op: MinMaxOp, + pub args: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for MinMaxExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const SQLValueFunctionOp_SVFOP_CURRENT_DATE: SQLValueFunctionOp = 0; +pub const SQLValueFunctionOp_SVFOP_CURRENT_TIME: SQLValueFunctionOp = 1; +pub const SQLValueFunctionOp_SVFOP_CURRENT_TIME_N: SQLValueFunctionOp = 2; +pub const SQLValueFunctionOp_SVFOP_CURRENT_TIMESTAMP: SQLValueFunctionOp = 3; +pub const SQLValueFunctionOp_SVFOP_CURRENT_TIMESTAMP_N: SQLValueFunctionOp = 4; +pub const SQLValueFunctionOp_SVFOP_LOCALTIME: SQLValueFunctionOp = 5; +pub const SQLValueFunctionOp_SVFOP_LOCALTIME_N: SQLValueFunctionOp = 6; +pub const SQLValueFunctionOp_SVFOP_LOCALTIMESTAMP: SQLValueFunctionOp = 7; +pub const SQLValueFunctionOp_SVFOP_LOCALTIMESTAMP_N: SQLValueFunctionOp = 8; +pub const SQLValueFunctionOp_SVFOP_CURRENT_ROLE: SQLValueFunctionOp = 9; +pub const SQLValueFunctionOp_SVFOP_CURRENT_USER: SQLValueFunctionOp = 10; +pub const SQLValueFunctionOp_SVFOP_USER: SQLValueFunctionOp = 11; +pub const SQLValueFunctionOp_SVFOP_SESSION_USER: SQLValueFunctionOp = 12; +pub const SQLValueFunctionOp_SVFOP_CURRENT_CATALOG: SQLValueFunctionOp = 13; +pub const SQLValueFunctionOp_SVFOP_CURRENT_SCHEMA: SQLValueFunctionOp = 14; +pub type SQLValueFunctionOp = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SQLValueFunction { + pub xpr: Expr, + pub op: SQLValueFunctionOp, + pub type_: Oid, + pub typmod: int32, + pub location: ::std::os::raw::c_int, +} +impl Default for SQLValueFunction { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const XmlExprOp_IS_XMLCONCAT: XmlExprOp = 0; +pub const XmlExprOp_IS_XMLELEMENT: XmlExprOp = 1; +pub const XmlExprOp_IS_XMLFOREST: XmlExprOp = 2; +pub const XmlExprOp_IS_XMLPARSE: XmlExprOp = 3; +pub const XmlExprOp_IS_XMLPI: XmlExprOp = 4; +pub const XmlExprOp_IS_XMLROOT: XmlExprOp = 5; +pub const XmlExprOp_IS_XMLSERIALIZE: XmlExprOp = 6; +pub const XmlExprOp_IS_DOCUMENT: XmlExprOp = 7; +pub type XmlExprOp = ::std::os::raw::c_uint; +pub const XmlOptionType_XMLOPTION_DOCUMENT: XmlOptionType = 0; +pub const XmlOptionType_XMLOPTION_CONTENT: XmlOptionType = 1; +pub type XmlOptionType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct XmlExpr { + pub xpr: Expr, + pub op: XmlExprOp, + pub name: *mut ::std::os::raw::c_char, + pub named_args: *mut List, + pub arg_names: *mut List, + pub args: *mut List, + pub xmloption: XmlOptionType, + pub indent: bool, + pub type_: Oid, + pub typmod: int32, + pub location: ::std::os::raw::c_int, +} +impl Default for XmlExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const JsonEncoding_JS_ENC_DEFAULT: JsonEncoding = 0; +pub const JsonEncoding_JS_ENC_UTF8: JsonEncoding = 1; +pub const JsonEncoding_JS_ENC_UTF16: JsonEncoding = 2; +pub const JsonEncoding_JS_ENC_UTF32: JsonEncoding = 3; +pub type JsonEncoding = ::std::os::raw::c_uint; +pub const JsonFormatType_JS_FORMAT_DEFAULT: JsonFormatType = 0; +pub const JsonFormatType_JS_FORMAT_JSON: JsonFormatType = 1; +pub const JsonFormatType_JS_FORMAT_JSONB: JsonFormatType = 2; +pub type JsonFormatType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonFormat { + pub type_: NodeTag, + pub format_type: JsonFormatType, + pub encoding: JsonEncoding, + pub location: ::std::os::raw::c_int, +} +impl Default for JsonFormat { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonReturning { + pub type_: NodeTag, + pub format: *mut JsonFormat, + pub typid: Oid, + pub typmod: int32, +} +impl Default for JsonReturning { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonValueExpr { + pub type_: NodeTag, + pub raw_expr: *mut Expr, + pub formatted_expr: *mut Expr, + pub format: *mut JsonFormat, +} +impl Default for JsonValueExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const JsonConstructorType_JSCTOR_JSON_OBJECT: JsonConstructorType = 1; +pub const JsonConstructorType_JSCTOR_JSON_ARRAY: JsonConstructorType = 2; +pub const JsonConstructorType_JSCTOR_JSON_OBJECTAGG: JsonConstructorType = 3; +pub const JsonConstructorType_JSCTOR_JSON_ARRAYAGG: JsonConstructorType = 4; +pub type JsonConstructorType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonConstructorExpr { + pub xpr: Expr, + pub type_: JsonConstructorType, + pub args: *mut List, + pub func: *mut Expr, + pub coercion: *mut Expr, + pub returning: *mut JsonReturning, + pub absent_on_null: bool, + pub unique: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for JsonConstructorExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const JsonValueType_JS_TYPE_ANY: JsonValueType = 0; +pub const JsonValueType_JS_TYPE_OBJECT: JsonValueType = 1; +pub const JsonValueType_JS_TYPE_ARRAY: JsonValueType = 2; +pub const JsonValueType_JS_TYPE_SCALAR: JsonValueType = 3; +pub type JsonValueType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonIsPredicate { + pub type_: NodeTag, + pub expr: *mut Node, + pub format: *mut JsonFormat, + pub item_type: JsonValueType, + pub unique_keys: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for JsonIsPredicate { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const NullTestType_IS_NULL: NullTestType = 0; +pub const NullTestType_IS_NOT_NULL: NullTestType = 1; +pub type NullTestType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NullTest { + pub xpr: Expr, + pub arg: *mut Expr, + pub nulltesttype: NullTestType, + pub argisrow: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for NullTest { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const BoolTestType_IS_TRUE: BoolTestType = 0; +pub const BoolTestType_IS_NOT_TRUE: BoolTestType = 1; +pub const BoolTestType_IS_FALSE: BoolTestType = 2; +pub const BoolTestType_IS_NOT_FALSE: BoolTestType = 3; +pub const BoolTestType_IS_UNKNOWN: BoolTestType = 4; +pub const BoolTestType_IS_NOT_UNKNOWN: BoolTestType = 5; +pub type BoolTestType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BooleanTest { + pub xpr: Expr, + pub arg: *mut Expr, + pub booltesttype: BoolTestType, + pub location: ::std::os::raw::c_int, +} +impl Default for BooleanTest { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CoerceToDomain { + pub xpr: Expr, + pub arg: *mut Expr, + pub resulttype: Oid, + pub resulttypmod: int32, + pub resultcollid: Oid, + pub coercionformat: CoercionForm, + pub location: ::std::os::raw::c_int, +} +impl Default for CoerceToDomain { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CoerceToDomainValue { + pub xpr: Expr, + pub typeId: Oid, + pub typeMod: int32, + pub collation: Oid, + pub location: ::std::os::raw::c_int, +} +impl Default for CoerceToDomainValue { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SetToDefault { + pub xpr: Expr, + pub typeId: Oid, + pub typeMod: int32, + pub collation: Oid, + pub location: ::std::os::raw::c_int, +} +impl Default for SetToDefault { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CurrentOfExpr { + pub xpr: Expr, + pub cvarno: Index, + pub cursor_name: *mut ::std::os::raw::c_char, + pub cursor_param: ::std::os::raw::c_int, +} +impl Default for CurrentOfExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NextValueExpr { + pub xpr: Expr, + pub seqid: Oid, + pub typeId: Oid, +} +impl Default for NextValueExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct InferenceElem { + pub xpr: Expr, + pub expr: *mut Node, + pub infercollid: Oid, + pub inferopclass: Oid, +} +impl Default for InferenceElem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TargetEntry { + pub xpr: Expr, + pub expr: *mut Expr, + pub resno: AttrNumber, + pub resname: *mut ::std::os::raw::c_char, + pub ressortgroupref: Index, + pub resorigtbl: Oid, + pub resorigcol: AttrNumber, + pub resjunk: bool, +} +impl Default for TargetEntry { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeTblRef { + pub type_: NodeTag, + pub rtindex: ::std::os::raw::c_int, +} +impl Default for RangeTblRef { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JoinExpr { + pub type_: NodeTag, + pub jointype: JoinType, + pub isNatural: bool, + pub larg: *mut Node, + pub rarg: *mut Node, + pub usingClause: *mut List, + pub join_using_alias: *mut Alias, + pub quals: *mut Node, + pub alias: *mut Alias, + pub rtindex: ::std::os::raw::c_int, +} +impl Default for JoinExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FromExpr { + pub type_: NodeTag, + pub fromlist: *mut List, + pub quals: *mut Node, +} +impl Default for FromExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct OnConflictExpr { + pub type_: NodeTag, + pub action: OnConflictAction, + pub arbiterElems: *mut List, + pub arbiterWhere: *mut Node, + pub constraint: Oid, + pub onConflictSet: *mut List, + pub onConflictWhere: *mut Node, + pub exclRelIndex: ::std::os::raw::c_int, + pub exclRelTlist: *mut List, +} +impl Default for OnConflictExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Integer { + pub type_: NodeTag, + pub ival: ::std::os::raw::c_int, +} +impl Default for Integer { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Float { + pub type_: NodeTag, + pub fval: *mut ::std::os::raw::c_char, +} +impl Default for Float { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Boolean { + pub type_: NodeTag, + pub boolval: bool, +} +impl Default for Boolean { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct String { + pub type_: NodeTag, + pub sval: *mut ::std::os::raw::c_char, +} +impl Default for String { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitString { + pub type_: NodeTag, + pub bsval: *mut ::std::os::raw::c_char, +} +impl Default for BitString { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeInteger(i: ::std::os::raw::c_int) -> *mut Integer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeFloat(numericStr: *mut ::std::os::raw::c_char) -> *mut Float; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeBoolean(val: bool) -> *mut Boolean; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeString(str_: *mut ::std::os::raw::c_char) -> *mut String; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeBitString(str_: *mut ::std::os::raw::c_char) -> *mut BitString; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionBoundInfoData { + _unused: [u8; 0], +} +pub type PartitionBoundInfo = *mut PartitionBoundInfoData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionKeyData { + _unused: [u8; 0], +} +pub type PartitionKey = *mut PartitionKeyData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionDescData { + _unused: [u8; 0], +} +pub type PartitionDesc = *mut PartitionDescData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionDirectoryData { + _unused: [u8; 0], +} +pub type PartitionDirectory = *mut PartitionDirectoryData; +pub const OverridingKind_OVERRIDING_NOT_SET: OverridingKind = 0; +pub const OverridingKind_OVERRIDING_USER_VALUE: OverridingKind = 1; +pub const OverridingKind_OVERRIDING_SYSTEM_VALUE: OverridingKind = 2; +pub type OverridingKind = ::std::os::raw::c_uint; +pub const QuerySource_QSRC_ORIGINAL: QuerySource = 0; +pub const QuerySource_QSRC_PARSER: QuerySource = 1; +pub const QuerySource_QSRC_INSTEAD_RULE: QuerySource = 2; +pub const QuerySource_QSRC_QUAL_INSTEAD_RULE: QuerySource = 3; +pub const QuerySource_QSRC_NON_INSTEAD_RULE: QuerySource = 4; +pub type QuerySource = ::std::os::raw::c_uint; +pub const SortByDir_SORTBY_DEFAULT: SortByDir = 0; +pub const SortByDir_SORTBY_ASC: SortByDir = 1; +pub const SortByDir_SORTBY_DESC: SortByDir = 2; +pub const SortByDir_SORTBY_USING: SortByDir = 3; +pub type SortByDir = ::std::os::raw::c_uint; +pub const SortByNulls_SORTBY_NULLS_DEFAULT: SortByNulls = 0; +pub const SortByNulls_SORTBY_NULLS_FIRST: SortByNulls = 1; +pub const SortByNulls_SORTBY_NULLS_LAST: SortByNulls = 2; +pub type SortByNulls = ::std::os::raw::c_uint; +pub const SetQuantifier_SET_QUANTIFIER_DEFAULT: SetQuantifier = 0; +pub const SetQuantifier_SET_QUANTIFIER_ALL: SetQuantifier = 1; +pub const SetQuantifier_SET_QUANTIFIER_DISTINCT: SetQuantifier = 2; +pub type SetQuantifier = ::std::os::raw::c_uint; +pub type AclMode = uint64; +#[doc = "\tQuery Tree"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Query { + pub type_: NodeTag, + pub commandType: CmdType, + pub querySource: QuerySource, + pub queryId: uint64, + pub canSetTag: bool, + pub utilityStmt: *mut Node, + pub resultRelation: ::std::os::raw::c_int, + pub hasAggs: bool, + pub hasWindowFuncs: bool, + pub hasTargetSRFs: bool, + pub hasSubLinks: bool, + pub hasDistinctOn: bool, + pub hasRecursive: bool, + pub hasModifyingCTE: bool, + pub hasForUpdate: bool, + pub hasRowSecurity: bool, + pub isReturn: bool, + pub cteList: *mut List, + pub rtable: *mut List, + pub rteperminfos: *mut List, + pub jointree: *mut FromExpr, + pub mergeActionList: *mut List, + pub mergeUseOuterJoin: bool, + pub targetList: *mut List, + pub override_: OverridingKind, + pub onConflict: *mut OnConflictExpr, + pub returningList: *mut List, + pub groupClause: *mut List, + pub groupDistinct: bool, + pub groupingSets: *mut List, + pub havingQual: *mut Node, + pub windowClause: *mut List, + pub distinctClause: *mut List, + pub sortClause: *mut List, + pub limitOffset: *mut Node, + pub limitCount: *mut Node, + pub limitOption: LimitOption, + pub rowMarks: *mut List, + pub setOperations: *mut Node, + pub constraintDeps: *mut List, + pub withCheckOptions: *mut List, + pub stmt_location: ::std::os::raw::c_int, + pub stmt_len: ::std::os::raw::c_int, +} +impl Default for Query { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[doc = "\tSupporting data structures for Parse Trees\n\n\tMost of these node types appear in raw parsetrees output by the grammar,\n\tand get transformed to something else by the analyzer. A few of them\n\tare used as-is in transformed querytrees."] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TypeName { + pub type_: NodeTag, + pub names: *mut List, + pub typeOid: Oid, + pub setof: bool, + pub pct_type: bool, + pub typmods: *mut List, + pub typemod: int32, + pub arrayBounds: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for TypeName { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ColumnRef { + pub type_: NodeTag, + pub fields: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for ColumnRef { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParamRef { + pub type_: NodeTag, + pub number: ::std::os::raw::c_int, + pub location: ::std::os::raw::c_int, +} +impl Default for ParamRef { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const A_Expr_Kind_AEXPR_OP: A_Expr_Kind = 0; +pub const A_Expr_Kind_AEXPR_OP_ANY: A_Expr_Kind = 1; +pub const A_Expr_Kind_AEXPR_OP_ALL: A_Expr_Kind = 2; +pub const A_Expr_Kind_AEXPR_DISTINCT: A_Expr_Kind = 3; +pub const A_Expr_Kind_AEXPR_NOT_DISTINCT: A_Expr_Kind = 4; +pub const A_Expr_Kind_AEXPR_NULLIF: A_Expr_Kind = 5; +pub const A_Expr_Kind_AEXPR_IN: A_Expr_Kind = 6; +pub const A_Expr_Kind_AEXPR_LIKE: A_Expr_Kind = 7; +pub const A_Expr_Kind_AEXPR_ILIKE: A_Expr_Kind = 8; +pub const A_Expr_Kind_AEXPR_SIMILAR: A_Expr_Kind = 9; +pub const A_Expr_Kind_AEXPR_BETWEEN: A_Expr_Kind = 10; +pub const A_Expr_Kind_AEXPR_NOT_BETWEEN: A_Expr_Kind = 11; +pub const A_Expr_Kind_AEXPR_BETWEEN_SYM: A_Expr_Kind = 12; +pub const A_Expr_Kind_AEXPR_NOT_BETWEEN_SYM: A_Expr_Kind = 13; +pub type A_Expr_Kind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct A_Expr { + pub type_: NodeTag, + pub kind: A_Expr_Kind, + pub name: *mut List, + pub lexpr: *mut Node, + pub rexpr: *mut Node, + pub location: ::std::os::raw::c_int, +} +impl Default for A_Expr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ValUnion { + pub node: Node, + pub ival: Integer, + pub fval: Float, + pub boolval: Boolean, + pub sval: String, + pub bsval: BitString, +} +impl Default for ValUnion { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct A_Const { + pub type_: NodeTag, + pub val: ValUnion, + pub isnull: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for A_Const { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TypeCast { + pub type_: NodeTag, + pub arg: *mut Node, + pub typeName: *mut TypeName, + pub location: ::std::os::raw::c_int, +} +impl Default for TypeCast { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollateClause { + pub type_: NodeTag, + pub arg: *mut Node, + pub collname: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for CollateClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const RoleSpecType_ROLESPEC_CSTRING: RoleSpecType = 0; +pub const RoleSpecType_ROLESPEC_CURRENT_ROLE: RoleSpecType = 1; +pub const RoleSpecType_ROLESPEC_CURRENT_USER: RoleSpecType = 2; +pub const RoleSpecType_ROLESPEC_SESSION_USER: RoleSpecType = 3; +pub const RoleSpecType_ROLESPEC_PUBLIC: RoleSpecType = 4; +pub type RoleSpecType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RoleSpec { + pub type_: NodeTag, + pub roletype: RoleSpecType, + pub rolename: *mut ::std::os::raw::c_char, + pub location: ::std::os::raw::c_int, +} +impl Default for RoleSpec { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FuncCall { + pub type_: NodeTag, + pub funcname: *mut List, + pub args: *mut List, + pub agg_order: *mut List, + pub agg_filter: *mut Node, + pub over: *mut WindowDef, + pub agg_within_group: bool, + pub agg_star: bool, + pub agg_distinct: bool, + pub func_variadic: bool, + pub funcformat: CoercionForm, + pub location: ::std::os::raw::c_int, +} +impl Default for FuncCall { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct A_Star { + pub type_: NodeTag, +} +impl Default for A_Star { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct A_Indices { + pub type_: NodeTag, + pub is_slice: bool, + pub lidx: *mut Node, + pub uidx: *mut Node, +} +impl Default for A_Indices { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct A_Indirection { + pub type_: NodeTag, + pub arg: *mut Node, + pub indirection: *mut List, +} +impl Default for A_Indirection { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct A_ArrayExpr { + pub type_: NodeTag, + pub elements: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for A_ArrayExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ResTarget { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub indirection: *mut List, + pub val: *mut Node, + pub location: ::std::os::raw::c_int, +} +impl Default for ResTarget { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MultiAssignRef { + pub type_: NodeTag, + pub source: *mut Node, + pub colno: ::std::os::raw::c_int, + pub ncolumns: ::std::os::raw::c_int, +} +impl Default for MultiAssignRef { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SortBy { + pub type_: NodeTag, + pub node: *mut Node, + pub sortby_dir: SortByDir, + pub sortby_nulls: SortByNulls, + pub useOp: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for SortBy { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowDef { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub refname: *mut ::std::os::raw::c_char, + pub partitionClause: *mut List, + pub orderClause: *mut List, + pub frameOptions: ::std::os::raw::c_int, + pub startOffset: *mut Node, + pub endOffset: *mut Node, + pub location: ::std::os::raw::c_int, +} +impl Default for WindowDef { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeSubselect { + pub type_: NodeTag, + pub lateral: bool, + pub subquery: *mut Node, + pub alias: *mut Alias, +} +impl Default for RangeSubselect { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeFunction { + pub type_: NodeTag, + pub lateral: bool, + pub ordinality: bool, + pub is_rowsfrom: bool, + pub functions: *mut List, + pub alias: *mut Alias, + pub coldeflist: *mut List, +} +impl Default for RangeFunction { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeTableFunc { + pub type_: NodeTag, + pub lateral: bool, + pub docexpr: *mut Node, + pub rowexpr: *mut Node, + pub namespaces: *mut List, + pub columns: *mut List, + pub alias: *mut Alias, + pub location: ::std::os::raw::c_int, +} +impl Default for RangeTableFunc { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeTableFuncCol { + pub type_: NodeTag, + pub colname: *mut ::std::os::raw::c_char, + pub typeName: *mut TypeName, + pub for_ordinality: bool, + pub is_not_null: bool, + pub colexpr: *mut Node, + pub coldefexpr: *mut Node, + pub location: ::std::os::raw::c_int, +} +impl Default for RangeTableFuncCol { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeTableSample { + pub type_: NodeTag, + pub relation: *mut Node, + pub method: *mut List, + pub args: *mut List, + pub repeatable: *mut Node, + pub location: ::std::os::raw::c_int, +} +impl Default for RangeTableSample { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ColumnDef { + pub type_: NodeTag, + pub colname: *mut ::std::os::raw::c_char, + pub typeName: *mut TypeName, + pub compression: *mut ::std::os::raw::c_char, + pub inhcount: ::std::os::raw::c_int, + pub is_local: bool, + pub is_not_null: bool, + pub is_from_type: bool, + pub storage: ::std::os::raw::c_char, + pub storage_name: *mut ::std::os::raw::c_char, + pub raw_default: *mut Node, + pub cooked_default: *mut Node, + pub identity: ::std::os::raw::c_char, + pub identitySequence: *mut RangeVar, + pub generated: ::std::os::raw::c_char, + pub collClause: *mut CollateClause, + pub collOid: Oid, + pub constraints: *mut List, + pub fdwoptions: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for ColumnDef { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TableLikeClause { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub options: bits32, + pub relationOid: Oid, +} +impl Default for TableLikeClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const TableLikeOption_CREATE_TABLE_LIKE_COMMENTS: TableLikeOption = 1; +pub const TableLikeOption_CREATE_TABLE_LIKE_COMPRESSION: TableLikeOption = 2; +pub const TableLikeOption_CREATE_TABLE_LIKE_CONSTRAINTS: TableLikeOption = 4; +pub const TableLikeOption_CREATE_TABLE_LIKE_DEFAULTS: TableLikeOption = 8; +pub const TableLikeOption_CREATE_TABLE_LIKE_GENERATED: TableLikeOption = 16; +pub const TableLikeOption_CREATE_TABLE_LIKE_IDENTITY: TableLikeOption = 32; +pub const TableLikeOption_CREATE_TABLE_LIKE_INDEXES: TableLikeOption = 64; +pub const TableLikeOption_CREATE_TABLE_LIKE_STATISTICS: TableLikeOption = 128; +pub const TableLikeOption_CREATE_TABLE_LIKE_STORAGE: TableLikeOption = 256; +pub const TableLikeOption_CREATE_TABLE_LIKE_ALL: TableLikeOption = 2147483647; +pub type TableLikeOption = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexElem { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub expr: *mut Node, + pub indexcolname: *mut ::std::os::raw::c_char, + pub collation: *mut List, + pub opclass: *mut List, + pub opclassopts: *mut List, + pub ordering: SortByDir, + pub nulls_ordering: SortByNulls, +} +impl Default for IndexElem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const DefElemAction_DEFELEM_UNSPEC: DefElemAction = 0; +pub const DefElemAction_DEFELEM_SET: DefElemAction = 1; +pub const DefElemAction_DEFELEM_ADD: DefElemAction = 2; +pub const DefElemAction_DEFELEM_DROP: DefElemAction = 3; +pub type DefElemAction = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DefElem { + pub type_: NodeTag, + pub defnamespace: *mut ::std::os::raw::c_char, + pub defname: *mut ::std::os::raw::c_char, + pub arg: *mut Node, + pub defaction: DefElemAction, + pub location: ::std::os::raw::c_int, +} +impl Default for DefElem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LockingClause { + pub type_: NodeTag, + pub lockedRels: *mut List, + pub strength: LockClauseStrength, + pub waitPolicy: LockWaitPolicy, +} +impl Default for LockingClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct XmlSerialize { + pub type_: NodeTag, + pub xmloption: XmlOptionType, + pub expr: *mut Node, + pub typeName: *mut TypeName, + pub indent: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for XmlSerialize { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionElem { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub expr: *mut Node, + pub collation: *mut List, + pub opclass: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for PartitionElem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const PartitionStrategy_PARTITION_STRATEGY_LIST: PartitionStrategy = 108; +pub const PartitionStrategy_PARTITION_STRATEGY_RANGE: PartitionStrategy = 114; +pub const PartitionStrategy_PARTITION_STRATEGY_HASH: PartitionStrategy = 104; +pub type PartitionStrategy = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionSpec { + pub type_: NodeTag, + pub strategy: PartitionStrategy, + pub partParams: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for PartitionSpec { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionBoundSpec { + pub type_: NodeTag, + pub strategy: ::std::os::raw::c_char, + pub is_default: bool, + pub modulus: ::std::os::raw::c_int, + pub remainder: ::std::os::raw::c_int, + pub listdatums: *mut List, + pub lowerdatums: *mut List, + pub upperdatums: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for PartitionBoundSpec { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const PartitionRangeDatumKind_PARTITION_RANGE_DATUM_MINVALUE: PartitionRangeDatumKind = -1; +pub const PartitionRangeDatumKind_PARTITION_RANGE_DATUM_VALUE: PartitionRangeDatumKind = 0; +pub const PartitionRangeDatumKind_PARTITION_RANGE_DATUM_MAXVALUE: PartitionRangeDatumKind = 1; +pub type PartitionRangeDatumKind = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionRangeDatum { + pub type_: NodeTag, + pub kind: PartitionRangeDatumKind, + pub value: *mut Node, + pub location: ::std::os::raw::c_int, +} +impl Default for PartitionRangeDatum { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionCmd { + pub type_: NodeTag, + pub name: *mut RangeVar, + pub bound: *mut PartitionBoundSpec, + pub concurrent: bool, +} +impl Default for PartitionCmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const RTEKind_RTE_RELATION: RTEKind = 0; +pub const RTEKind_RTE_SUBQUERY: RTEKind = 1; +pub const RTEKind_RTE_JOIN: RTEKind = 2; +pub const RTEKind_RTE_FUNCTION: RTEKind = 3; +pub const RTEKind_RTE_TABLEFUNC: RTEKind = 4; +pub const RTEKind_RTE_VALUES: RTEKind = 5; +pub const RTEKind_RTE_CTE: RTEKind = 6; +pub const RTEKind_RTE_NAMEDTUPLESTORE: RTEKind = 7; +pub const RTEKind_RTE_RESULT: RTEKind = 8; +pub type RTEKind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeTblEntry { + pub type_: NodeTag, + pub rtekind: RTEKind, + pub relid: Oid, + pub relkind: ::std::os::raw::c_char, + pub rellockmode: ::std::os::raw::c_int, + pub tablesample: *mut TableSampleClause, + pub perminfoindex: Index, + pub subquery: *mut Query, + pub security_barrier: bool, + pub jointype: JoinType, + pub joinmergedcols: ::std::os::raw::c_int, + pub joinaliasvars: *mut List, + pub joinleftcols: *mut List, + pub joinrightcols: *mut List, + pub join_using_alias: *mut Alias, + pub functions: *mut List, + pub funcordinality: bool, + pub tablefunc: *mut TableFunc, + pub values_lists: *mut List, + pub ctename: *mut ::std::os::raw::c_char, + pub ctelevelsup: Index, + pub self_reference: bool, + pub coltypes: *mut List, + pub coltypmods: *mut List, + pub colcollations: *mut List, + pub enrname: *mut ::std::os::raw::c_char, + pub enrtuples: Cardinality, + pub alias: *mut Alias, + pub eref: *mut Alias, + pub lateral: bool, + pub inh: bool, + pub inFromCl: bool, + pub securityQuals: *mut List, +} +impl Default for RangeTblEntry { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RTEPermissionInfo { + pub type_: NodeTag, + pub relid: Oid, + pub inh: bool, + pub requiredPerms: AclMode, + pub checkAsUser: Oid, + pub selectedCols: *mut Bitmapset, + pub insertedCols: *mut Bitmapset, + pub updatedCols: *mut Bitmapset, +} +impl Default for RTEPermissionInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeTblFunction { + pub type_: NodeTag, + pub funcexpr: *mut Node, + pub funccolcount: ::std::os::raw::c_int, + pub funccolnames: *mut List, + pub funccoltypes: *mut List, + pub funccoltypmods: *mut List, + pub funccolcollations: *mut List, + pub funcparams: *mut Bitmapset, +} +impl Default for RangeTblFunction { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TableSampleClause { + pub type_: NodeTag, + pub tsmhandler: Oid, + pub args: *mut List, + pub repeatable: *mut Expr, +} +impl Default for TableSampleClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const WCOKind_WCO_VIEW_CHECK: WCOKind = 0; +pub const WCOKind_WCO_RLS_INSERT_CHECK: WCOKind = 1; +pub const WCOKind_WCO_RLS_UPDATE_CHECK: WCOKind = 2; +pub const WCOKind_WCO_RLS_CONFLICT_CHECK: WCOKind = 3; +pub const WCOKind_WCO_RLS_MERGE_UPDATE_CHECK: WCOKind = 4; +pub const WCOKind_WCO_RLS_MERGE_DELETE_CHECK: WCOKind = 5; +pub type WCOKind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WithCheckOption { + pub type_: NodeTag, + pub kind: WCOKind, + pub relname: *mut ::std::os::raw::c_char, + pub polname: *mut ::std::os::raw::c_char, + pub qual: *mut Node, + pub cascaded: bool, +} +impl Default for WithCheckOption { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SortGroupClause { + pub type_: NodeTag, + pub tleSortGroupRef: Index, + pub eqop: Oid, + pub sortop: Oid, + pub nulls_first: bool, + pub hashable: bool, +} +impl Default for SortGroupClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const GroupingSetKind_GROUPING_SET_EMPTY: GroupingSetKind = 0; +pub const GroupingSetKind_GROUPING_SET_SIMPLE: GroupingSetKind = 1; +pub const GroupingSetKind_GROUPING_SET_ROLLUP: GroupingSetKind = 2; +pub const GroupingSetKind_GROUPING_SET_CUBE: GroupingSetKind = 3; +pub const GroupingSetKind_GROUPING_SET_SETS: GroupingSetKind = 4; +pub type GroupingSetKind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GroupingSet { + pub type_: NodeTag, + pub kind: GroupingSetKind, + pub content: *mut List, + pub location: ::std::os::raw::c_int, +} +impl Default for GroupingSet { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowClause { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub refname: *mut ::std::os::raw::c_char, + pub partitionClause: *mut List, + pub orderClause: *mut List, + pub frameOptions: ::std::os::raw::c_int, + pub startOffset: *mut Node, + pub endOffset: *mut Node, + pub runCondition: *mut List, + pub startInRangeFunc: Oid, + pub endInRangeFunc: Oid, + pub inRangeColl: Oid, + pub inRangeAsc: bool, + pub inRangeNullsFirst: bool, + pub winref: Index, + pub copiedOrder: bool, +} +impl Default for WindowClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RowMarkClause { + pub type_: NodeTag, + pub rti: Index, + pub strength: LockClauseStrength, + pub waitPolicy: LockWaitPolicy, + pub pushedDown: bool, +} +impl Default for RowMarkClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WithClause { + pub type_: NodeTag, + pub ctes: *mut List, + pub recursive: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for WithClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct InferClause { + pub type_: NodeTag, + pub indexElems: *mut List, + pub whereClause: *mut Node, + pub conname: *mut ::std::os::raw::c_char, + pub location: ::std::os::raw::c_int, +} +impl Default for InferClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct OnConflictClause { + pub type_: NodeTag, + pub action: OnConflictAction, + pub infer: *mut InferClause, + pub targetList: *mut List, + pub whereClause: *mut Node, + pub location: ::std::os::raw::c_int, +} +impl Default for OnConflictClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const CTEMaterialize_CTEMaterializeDefault: CTEMaterialize = 0; +pub const CTEMaterialize_CTEMaterializeAlways: CTEMaterialize = 1; +pub const CTEMaterialize_CTEMaterializeNever: CTEMaterialize = 2; +pub type CTEMaterialize = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CTESearchClause { + pub type_: NodeTag, + pub search_col_list: *mut List, + pub search_breadth_first: bool, + pub search_seq_column: *mut ::std::os::raw::c_char, + pub location: ::std::os::raw::c_int, +} +impl Default for CTESearchClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CTECycleClause { + pub type_: NodeTag, + pub cycle_col_list: *mut List, + pub cycle_mark_column: *mut ::std::os::raw::c_char, + pub cycle_mark_value: *mut Node, + pub cycle_mark_default: *mut Node, + pub cycle_path_column: *mut ::std::os::raw::c_char, + pub location: ::std::os::raw::c_int, + pub cycle_mark_type: Oid, + pub cycle_mark_typmod: ::std::os::raw::c_int, + pub cycle_mark_collation: Oid, + pub cycle_mark_neop: Oid, +} +impl Default for CTECycleClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CommonTableExpr { + pub type_: NodeTag, + pub ctename: *mut ::std::os::raw::c_char, + pub aliascolnames: *mut List, + pub ctematerialized: CTEMaterialize, + pub ctequery: *mut Node, + pub search_clause: *mut CTESearchClause, + pub cycle_clause: *mut CTECycleClause, + pub location: ::std::os::raw::c_int, + pub cterecursive: bool, + pub cterefcount: ::std::os::raw::c_int, + pub ctecolnames: *mut List, + pub ctecoltypes: *mut List, + pub ctecoltypmods: *mut List, + pub ctecolcollations: *mut List, +} +impl Default for CommonTableExpr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeWhenClause { + pub type_: NodeTag, + pub matched: bool, + pub commandType: CmdType, + pub override_: OverridingKind, + pub condition: *mut Node, + pub targetList: *mut List, + pub values: *mut List, +} +impl Default for MergeWhenClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeAction { + pub type_: NodeTag, + pub matched: bool, + pub commandType: CmdType, + pub override_: OverridingKind, + pub qual: *mut Node, + pub targetList: *mut List, + pub updateColnos: *mut List, +} +impl Default for MergeAction { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TriggerTransition { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub isNew: bool, + pub isTable: bool, +} +impl Default for TriggerTransition { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonOutput { + pub type_: NodeTag, + pub typeName: *mut TypeName, + pub returning: *mut JsonReturning, +} +impl Default for JsonOutput { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonKeyValue { + pub type_: NodeTag, + pub key: *mut Expr, + pub value: *mut JsonValueExpr, +} +impl Default for JsonKeyValue { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonObjectConstructor { + pub type_: NodeTag, + pub exprs: *mut List, + pub output: *mut JsonOutput, + pub absent_on_null: bool, + pub unique: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for JsonObjectConstructor { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonArrayConstructor { + pub type_: NodeTag, + pub exprs: *mut List, + pub output: *mut JsonOutput, + pub absent_on_null: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for JsonArrayConstructor { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonArrayQueryConstructor { + pub type_: NodeTag, + pub query: *mut Node, + pub output: *mut JsonOutput, + pub format: *mut JsonFormat, + pub absent_on_null: bool, + pub location: ::std::os::raw::c_int, +} +impl Default for JsonArrayQueryConstructor { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonAggConstructor { + pub type_: NodeTag, + pub output: *mut JsonOutput, + pub agg_filter: *mut Node, + pub agg_order: *mut List, + pub over: *mut WindowDef, + pub location: ::std::os::raw::c_int, +} +impl Default for JsonAggConstructor { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonObjectAgg { + pub type_: NodeTag, + pub constructor: *mut JsonAggConstructor, + pub arg: *mut JsonKeyValue, + pub absent_on_null: bool, + pub unique: bool, +} +impl Default for JsonObjectAgg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonArrayAgg { + pub type_: NodeTag, + pub constructor: *mut JsonAggConstructor, + pub arg: *mut JsonValueExpr, + pub absent_on_null: bool, +} +impl Default for JsonArrayAgg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[doc = "\t\tRaw Grammar Output Statements"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RawStmt { + pub type_: NodeTag, + pub stmt: *mut Node, + pub stmt_location: ::std::os::raw::c_int, + pub stmt_len: ::std::os::raw::c_int, +} +impl Default for RawStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[doc = "\t\tOptimizable Statements"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct InsertStmt { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub cols: *mut List, + pub selectStmt: *mut Node, + pub onConflictClause: *mut OnConflictClause, + pub returningList: *mut List, + pub withClause: *mut WithClause, + pub override_: OverridingKind, +} +impl Default for InsertStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DeleteStmt { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub usingClause: *mut List, + pub whereClause: *mut Node, + pub returningList: *mut List, + pub withClause: *mut WithClause, +} +impl Default for DeleteStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct UpdateStmt { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub targetList: *mut List, + pub whereClause: *mut Node, + pub fromClause: *mut List, + pub returningList: *mut List, + pub withClause: *mut WithClause, +} +impl Default for UpdateStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeStmt { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub sourceRelation: *mut Node, + pub joinCondition: *mut Node, + pub mergeWhenClauses: *mut List, + pub withClause: *mut WithClause, +} +impl Default for MergeStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const SetOperation_SETOP_NONE: SetOperation = 0; +pub const SetOperation_SETOP_UNION: SetOperation = 1; +pub const SetOperation_SETOP_INTERSECT: SetOperation = 2; +pub const SetOperation_SETOP_EXCEPT: SetOperation = 3; +pub type SetOperation = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SelectStmt { + pub type_: NodeTag, + pub distinctClause: *mut List, + pub intoClause: *mut IntoClause, + pub targetList: *mut List, + pub fromClause: *mut List, + pub whereClause: *mut Node, + pub groupClause: *mut List, + pub groupDistinct: bool, + pub havingClause: *mut Node, + pub windowClause: *mut List, + pub valuesLists: *mut List, + pub sortClause: *mut List, + pub limitOffset: *mut Node, + pub limitCount: *mut Node, + pub limitOption: LimitOption, + pub lockingClause: *mut List, + pub withClause: *mut WithClause, + pub op: SetOperation, + pub all: bool, + pub larg: *mut SelectStmt, + pub rarg: *mut SelectStmt, +} +impl Default for SelectStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SetOperationStmt { + pub type_: NodeTag, + pub op: SetOperation, + pub all: bool, + pub larg: *mut Node, + pub rarg: *mut Node, + pub colTypes: *mut List, + pub colTypmods: *mut List, + pub colCollations: *mut List, + pub groupClauses: *mut List, +} +impl Default for SetOperationStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReturnStmt { + pub type_: NodeTag, + pub returnval: *mut Node, +} +impl Default for ReturnStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLAssignStmt { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub indirection: *mut List, + pub nnames: ::std::os::raw::c_int, + pub val: *mut SelectStmt, + pub location: ::std::os::raw::c_int, +} +impl Default for PLAssignStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ObjectType_OBJECT_ACCESS_METHOD: ObjectType = 0; +pub const ObjectType_OBJECT_AGGREGATE: ObjectType = 1; +pub const ObjectType_OBJECT_AMOP: ObjectType = 2; +pub const ObjectType_OBJECT_AMPROC: ObjectType = 3; +pub const ObjectType_OBJECT_ATTRIBUTE: ObjectType = 4; +pub const ObjectType_OBJECT_CAST: ObjectType = 5; +pub const ObjectType_OBJECT_COLUMN: ObjectType = 6; +pub const ObjectType_OBJECT_COLLATION: ObjectType = 7; +pub const ObjectType_OBJECT_CONVERSION: ObjectType = 8; +pub const ObjectType_OBJECT_DATABASE: ObjectType = 9; +pub const ObjectType_OBJECT_DEFAULT: ObjectType = 10; +pub const ObjectType_OBJECT_DEFACL: ObjectType = 11; +pub const ObjectType_OBJECT_DOMAIN: ObjectType = 12; +pub const ObjectType_OBJECT_DOMCONSTRAINT: ObjectType = 13; +pub const ObjectType_OBJECT_EVENT_TRIGGER: ObjectType = 14; +pub const ObjectType_OBJECT_EXTENSION: ObjectType = 15; +pub const ObjectType_OBJECT_FDW: ObjectType = 16; +pub const ObjectType_OBJECT_FOREIGN_SERVER: ObjectType = 17; +pub const ObjectType_OBJECT_FOREIGN_TABLE: ObjectType = 18; +pub const ObjectType_OBJECT_FUNCTION: ObjectType = 19; +pub const ObjectType_OBJECT_INDEX: ObjectType = 20; +pub const ObjectType_OBJECT_LANGUAGE: ObjectType = 21; +pub const ObjectType_OBJECT_LARGEOBJECT: ObjectType = 22; +pub const ObjectType_OBJECT_MATVIEW: ObjectType = 23; +pub const ObjectType_OBJECT_OPCLASS: ObjectType = 24; +pub const ObjectType_OBJECT_OPERATOR: ObjectType = 25; +pub const ObjectType_OBJECT_OPFAMILY: ObjectType = 26; +pub const ObjectType_OBJECT_PARAMETER_ACL: ObjectType = 27; +pub const ObjectType_OBJECT_POLICY: ObjectType = 28; +pub const ObjectType_OBJECT_PROCEDURE: ObjectType = 29; +pub const ObjectType_OBJECT_PUBLICATION: ObjectType = 30; +pub const ObjectType_OBJECT_PUBLICATION_NAMESPACE: ObjectType = 31; +pub const ObjectType_OBJECT_PUBLICATION_REL: ObjectType = 32; +pub const ObjectType_OBJECT_ROLE: ObjectType = 33; +pub const ObjectType_OBJECT_ROUTINE: ObjectType = 34; +pub const ObjectType_OBJECT_RULE: ObjectType = 35; +pub const ObjectType_OBJECT_SCHEMA: ObjectType = 36; +pub const ObjectType_OBJECT_SEQUENCE: ObjectType = 37; +pub const ObjectType_OBJECT_SUBSCRIPTION: ObjectType = 38; +pub const ObjectType_OBJECT_STATISTIC_EXT: ObjectType = 39; +pub const ObjectType_OBJECT_TABCONSTRAINT: ObjectType = 40; +pub const ObjectType_OBJECT_TABLE: ObjectType = 41; +pub const ObjectType_OBJECT_TABLESPACE: ObjectType = 42; +pub const ObjectType_OBJECT_TRANSFORM: ObjectType = 43; +pub const ObjectType_OBJECT_TRIGGER: ObjectType = 44; +pub const ObjectType_OBJECT_TSCONFIGURATION: ObjectType = 45; +pub const ObjectType_OBJECT_TSDICTIONARY: ObjectType = 46; +pub const ObjectType_OBJECT_TSPARSER: ObjectType = 47; +pub const ObjectType_OBJECT_TSTEMPLATE: ObjectType = 48; +pub const ObjectType_OBJECT_TYPE: ObjectType = 49; +pub const ObjectType_OBJECT_USER_MAPPING: ObjectType = 50; +pub const ObjectType_OBJECT_VIEW: ObjectType = 51; +#[doc = "\t\tOther Statements (no optimizations required)\n\n\t\tThese are not touched by parser/analyze.c except to put them into\n\t\tthe utilityStmt field of a Query. This is eventually passed to\n\t\tProcessUtility (by-passing rewriting and planning). Some of the\n\t\tstatements do need attention from parse analysis, and this is\n\t\tdone by routines in parser/parse_utilcmd.c after ProcessUtility\n\t\treceives the command for execution.\n\t\tDECLARE CURSOR, EXPLAIN, and CREATE TABLE AS are special cases:\n\t\tthey contain optimizable statements, which get processed normally\n\t\tby parser/analyze.c."] +pub type ObjectType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateSchemaStmt { + pub type_: NodeTag, + pub schemaname: *mut ::std::os::raw::c_char, + pub authrole: *mut RoleSpec, + pub schemaElts: *mut List, + pub if_not_exists: bool, +} +impl Default for CreateSchemaStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const DropBehavior_DROP_RESTRICT: DropBehavior = 0; +pub const DropBehavior_DROP_CASCADE: DropBehavior = 1; +pub type DropBehavior = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterTableStmt { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub cmds: *mut List, + pub objtype: ObjectType, + pub missing_ok: bool, +} +impl Default for AlterTableStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const AlterTableType_AT_AddColumn: AlterTableType = 0; +pub const AlterTableType_AT_AddColumnToView: AlterTableType = 1; +pub const AlterTableType_AT_ColumnDefault: AlterTableType = 2; +pub const AlterTableType_AT_CookedColumnDefault: AlterTableType = 3; +pub const AlterTableType_AT_DropNotNull: AlterTableType = 4; +pub const AlterTableType_AT_SetNotNull: AlterTableType = 5; +pub const AlterTableType_AT_DropExpression: AlterTableType = 6; +pub const AlterTableType_AT_CheckNotNull: AlterTableType = 7; +pub const AlterTableType_AT_SetStatistics: AlterTableType = 8; +pub const AlterTableType_AT_SetOptions: AlterTableType = 9; +pub const AlterTableType_AT_ResetOptions: AlterTableType = 10; +pub const AlterTableType_AT_SetStorage: AlterTableType = 11; +pub const AlterTableType_AT_SetCompression: AlterTableType = 12; +pub const AlterTableType_AT_DropColumn: AlterTableType = 13; +pub const AlterTableType_AT_AddIndex: AlterTableType = 14; +pub const AlterTableType_AT_ReAddIndex: AlterTableType = 15; +pub const AlterTableType_AT_AddConstraint: AlterTableType = 16; +pub const AlterTableType_AT_ReAddConstraint: AlterTableType = 17; +pub const AlterTableType_AT_ReAddDomainConstraint: AlterTableType = 18; +pub const AlterTableType_AT_AlterConstraint: AlterTableType = 19; +pub const AlterTableType_AT_ValidateConstraint: AlterTableType = 20; +pub const AlterTableType_AT_AddIndexConstraint: AlterTableType = 21; +pub const AlterTableType_AT_DropConstraint: AlterTableType = 22; +pub const AlterTableType_AT_ReAddComment: AlterTableType = 23; +pub const AlterTableType_AT_AlterColumnType: AlterTableType = 24; +pub const AlterTableType_AT_AlterColumnGenericOptions: AlterTableType = 25; +pub const AlterTableType_AT_ChangeOwner: AlterTableType = 26; +pub const AlterTableType_AT_ClusterOn: AlterTableType = 27; +pub const AlterTableType_AT_DropCluster: AlterTableType = 28; +pub const AlterTableType_AT_SetLogged: AlterTableType = 29; +pub const AlterTableType_AT_SetUnLogged: AlterTableType = 30; +pub const AlterTableType_AT_DropOids: AlterTableType = 31; +pub const AlterTableType_AT_SetAccessMethod: AlterTableType = 32; +pub const AlterTableType_AT_SetTableSpace: AlterTableType = 33; +pub const AlterTableType_AT_SetRelOptions: AlterTableType = 34; +pub const AlterTableType_AT_ResetRelOptions: AlterTableType = 35; +pub const AlterTableType_AT_ReplaceRelOptions: AlterTableType = 36; +pub const AlterTableType_AT_EnableTrig: AlterTableType = 37; +pub const AlterTableType_AT_EnableAlwaysTrig: AlterTableType = 38; +pub const AlterTableType_AT_EnableReplicaTrig: AlterTableType = 39; +pub const AlterTableType_AT_DisableTrig: AlterTableType = 40; +pub const AlterTableType_AT_EnableTrigAll: AlterTableType = 41; +pub const AlterTableType_AT_DisableTrigAll: AlterTableType = 42; +pub const AlterTableType_AT_EnableTrigUser: AlterTableType = 43; +pub const AlterTableType_AT_DisableTrigUser: AlterTableType = 44; +pub const AlterTableType_AT_EnableRule: AlterTableType = 45; +pub const AlterTableType_AT_EnableAlwaysRule: AlterTableType = 46; +pub const AlterTableType_AT_EnableReplicaRule: AlterTableType = 47; +pub const AlterTableType_AT_DisableRule: AlterTableType = 48; +pub const AlterTableType_AT_AddInherit: AlterTableType = 49; +pub const AlterTableType_AT_DropInherit: AlterTableType = 50; +pub const AlterTableType_AT_AddOf: AlterTableType = 51; +pub const AlterTableType_AT_DropOf: AlterTableType = 52; +pub const AlterTableType_AT_ReplicaIdentity: AlterTableType = 53; +pub const AlterTableType_AT_EnableRowSecurity: AlterTableType = 54; +pub const AlterTableType_AT_DisableRowSecurity: AlterTableType = 55; +pub const AlterTableType_AT_ForceRowSecurity: AlterTableType = 56; +pub const AlterTableType_AT_NoForceRowSecurity: AlterTableType = 57; +pub const AlterTableType_AT_GenericOptions: AlterTableType = 58; +pub const AlterTableType_AT_AttachPartition: AlterTableType = 59; +pub const AlterTableType_AT_DetachPartition: AlterTableType = 60; +pub const AlterTableType_AT_DetachPartitionFinalize: AlterTableType = 61; +pub const AlterTableType_AT_AddIdentity: AlterTableType = 62; +pub const AlterTableType_AT_SetIdentity: AlterTableType = 63; +pub const AlterTableType_AT_DropIdentity: AlterTableType = 64; +pub const AlterTableType_AT_ReAddStatistics: AlterTableType = 65; +pub type AlterTableType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReplicaIdentityStmt { + pub type_: NodeTag, + pub identity_type: ::std::os::raw::c_char, + pub name: *mut ::std::os::raw::c_char, +} +impl Default for ReplicaIdentityStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterTableCmd { + pub type_: NodeTag, + pub subtype: AlterTableType, + pub name: *mut ::std::os::raw::c_char, + pub num: int16, + pub newowner: *mut RoleSpec, + pub def: *mut Node, + pub behavior: DropBehavior, + pub missing_ok: bool, + pub recurse: bool, +} +impl Default for AlterTableCmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterCollationStmt { + pub type_: NodeTag, + pub collname: *mut List, +} +impl Default for AlterCollationStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterDomainStmt { + pub type_: NodeTag, + pub subtype: ::std::os::raw::c_char, + pub typeName: *mut List, + pub name: *mut ::std::os::raw::c_char, + pub def: *mut Node, + pub behavior: DropBehavior, + pub missing_ok: bool, +} +impl Default for AlterDomainStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const GrantTargetType_ACL_TARGET_OBJECT: GrantTargetType = 0; +pub const GrantTargetType_ACL_TARGET_ALL_IN_SCHEMA: GrantTargetType = 1; +pub const GrantTargetType_ACL_TARGET_DEFAULTS: GrantTargetType = 2; +pub type GrantTargetType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GrantStmt { + pub type_: NodeTag, + pub is_grant: bool, + pub targtype: GrantTargetType, + pub objtype: ObjectType, + pub objects: *mut List, + pub privileges: *mut List, + pub grantees: *mut List, + pub grant_option: bool, + pub grantor: *mut RoleSpec, + pub behavior: DropBehavior, +} +impl Default for GrantStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ObjectWithArgs { + pub type_: NodeTag, + pub objname: *mut List, + pub objargs: *mut List, + pub objfuncargs: *mut List, + pub args_unspecified: bool, +} +impl Default for ObjectWithArgs { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AccessPriv { + pub type_: NodeTag, + pub priv_name: *mut ::std::os::raw::c_char, + pub cols: *mut List, +} +impl Default for AccessPriv { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GrantRoleStmt { + pub type_: NodeTag, + pub granted_roles: *mut List, + pub grantee_roles: *mut List, + pub is_grant: bool, + pub opt: *mut List, + pub grantor: *mut RoleSpec, + pub behavior: DropBehavior, +} +impl Default for GrantRoleStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterDefaultPrivilegesStmt { + pub type_: NodeTag, + pub options: *mut List, + pub action: *mut GrantStmt, +} +impl Default for AlterDefaultPrivilegesStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CopyStmt { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub query: *mut Node, + pub attlist: *mut List, + pub is_from: bool, + pub is_program: bool, + pub filename: *mut ::std::os::raw::c_char, + pub options: *mut List, + pub whereClause: *mut Node, +} +impl Default for CopyStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const VariableSetKind_VAR_SET_VALUE: VariableSetKind = 0; +pub const VariableSetKind_VAR_SET_DEFAULT: VariableSetKind = 1; +pub const VariableSetKind_VAR_SET_CURRENT: VariableSetKind = 2; +pub const VariableSetKind_VAR_SET_MULTI: VariableSetKind = 3; +pub const VariableSetKind_VAR_RESET: VariableSetKind = 4; +pub const VariableSetKind_VAR_RESET_ALL: VariableSetKind = 5; +pub type VariableSetKind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct VariableSetStmt { + pub type_: NodeTag, + pub kind: VariableSetKind, + pub name: *mut ::std::os::raw::c_char, + pub args: *mut List, + pub is_local: bool, +} +impl Default for VariableSetStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct VariableShowStmt { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, +} +impl Default for VariableShowStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateStmt { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub tableElts: *mut List, + pub inhRelations: *mut List, + pub partbound: *mut PartitionBoundSpec, + pub partspec: *mut PartitionSpec, + pub ofTypename: *mut TypeName, + pub constraints: *mut List, + pub options: *mut List, + pub oncommit: OnCommitAction, + pub tablespacename: *mut ::std::os::raw::c_char, + pub accessMethod: *mut ::std::os::raw::c_char, + pub if_not_exists: bool, +} +impl Default for CreateStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ConstrType_CONSTR_NULL: ConstrType = 0; +pub const ConstrType_CONSTR_NOTNULL: ConstrType = 1; +pub const ConstrType_CONSTR_DEFAULT: ConstrType = 2; +pub const ConstrType_CONSTR_IDENTITY: ConstrType = 3; +pub const ConstrType_CONSTR_GENERATED: ConstrType = 4; +pub const ConstrType_CONSTR_CHECK: ConstrType = 5; +pub const ConstrType_CONSTR_PRIMARY: ConstrType = 6; +pub const ConstrType_CONSTR_UNIQUE: ConstrType = 7; +pub const ConstrType_CONSTR_EXCLUSION: ConstrType = 8; +pub const ConstrType_CONSTR_FOREIGN: ConstrType = 9; +pub const ConstrType_CONSTR_ATTR_DEFERRABLE: ConstrType = 10; +pub const ConstrType_CONSTR_ATTR_NOT_DEFERRABLE: ConstrType = 11; +pub const ConstrType_CONSTR_ATTR_DEFERRED: ConstrType = 12; +pub const ConstrType_CONSTR_ATTR_IMMEDIATE: ConstrType = 13; +pub type ConstrType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Constraint { + pub type_: NodeTag, + pub contype: ConstrType, + pub conname: *mut ::std::os::raw::c_char, + pub deferrable: bool, + pub initdeferred: bool, + pub location: ::std::os::raw::c_int, + pub is_no_inherit: bool, + pub raw_expr: *mut Node, + pub cooked_expr: *mut ::std::os::raw::c_char, + pub generated_when: ::std::os::raw::c_char, + pub nulls_not_distinct: bool, + pub keys: *mut List, + pub including: *mut List, + pub exclusions: *mut List, + pub options: *mut List, + pub indexname: *mut ::std::os::raw::c_char, + pub indexspace: *mut ::std::os::raw::c_char, + pub reset_default_tblspc: bool, + pub access_method: *mut ::std::os::raw::c_char, + pub where_clause: *mut Node, + pub pktable: *mut RangeVar, + pub fk_attrs: *mut List, + pub pk_attrs: *mut List, + pub fk_matchtype: ::std::os::raw::c_char, + pub fk_upd_action: ::std::os::raw::c_char, + pub fk_del_action: ::std::os::raw::c_char, + pub fk_del_set_cols: *mut List, + pub old_conpfeqop: *mut List, + pub old_pktable_oid: Oid, + pub skip_validation: bool, + pub initially_valid: bool, +} +impl Default for Constraint { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateTableSpaceStmt { + pub type_: NodeTag, + pub tablespacename: *mut ::std::os::raw::c_char, + pub owner: *mut RoleSpec, + pub location: *mut ::std::os::raw::c_char, + pub options: *mut List, +} +impl Default for CreateTableSpaceStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DropTableSpaceStmt { + pub type_: NodeTag, + pub tablespacename: *mut ::std::os::raw::c_char, + pub missing_ok: bool, +} +impl Default for DropTableSpaceStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterTableSpaceOptionsStmt { + pub type_: NodeTag, + pub tablespacename: *mut ::std::os::raw::c_char, + pub options: *mut List, + pub isReset: bool, +} +impl Default for AlterTableSpaceOptionsStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterTableMoveAllStmt { + pub type_: NodeTag, + pub orig_tablespacename: *mut ::std::os::raw::c_char, + pub objtype: ObjectType, + pub roles: *mut List, + pub new_tablespacename: *mut ::std::os::raw::c_char, + pub nowait: bool, +} +impl Default for AlterTableMoveAllStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateExtensionStmt { + pub type_: NodeTag, + pub extname: *mut ::std::os::raw::c_char, + pub if_not_exists: bool, + pub options: *mut List, +} +impl Default for CreateExtensionStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterExtensionStmt { + pub type_: NodeTag, + pub extname: *mut ::std::os::raw::c_char, + pub options: *mut List, +} +impl Default for AlterExtensionStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterExtensionContentsStmt { + pub type_: NodeTag, + pub extname: *mut ::std::os::raw::c_char, + pub action: ::std::os::raw::c_int, + pub objtype: ObjectType, + pub object: *mut Node, +} +impl Default for AlterExtensionContentsStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateFdwStmt { + pub type_: NodeTag, + pub fdwname: *mut ::std::os::raw::c_char, + pub func_options: *mut List, + pub options: *mut List, +} +impl Default for CreateFdwStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterFdwStmt { + pub type_: NodeTag, + pub fdwname: *mut ::std::os::raw::c_char, + pub func_options: *mut List, + pub options: *mut List, +} +impl Default for AlterFdwStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateForeignServerStmt { + pub type_: NodeTag, + pub servername: *mut ::std::os::raw::c_char, + pub servertype: *mut ::std::os::raw::c_char, + pub version: *mut ::std::os::raw::c_char, + pub fdwname: *mut ::std::os::raw::c_char, + pub if_not_exists: bool, + pub options: *mut List, +} +impl Default for CreateForeignServerStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterForeignServerStmt { + pub type_: NodeTag, + pub servername: *mut ::std::os::raw::c_char, + pub version: *mut ::std::os::raw::c_char, + pub options: *mut List, + pub has_version: bool, +} +impl Default for AlterForeignServerStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateForeignTableStmt { + pub base: CreateStmt, + pub servername: *mut ::std::os::raw::c_char, + pub options: *mut List, +} +impl Default for CreateForeignTableStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateUserMappingStmt { + pub type_: NodeTag, + pub user: *mut RoleSpec, + pub servername: *mut ::std::os::raw::c_char, + pub if_not_exists: bool, + pub options: *mut List, +} +impl Default for CreateUserMappingStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterUserMappingStmt { + pub type_: NodeTag, + pub user: *mut RoleSpec, + pub servername: *mut ::std::os::raw::c_char, + pub options: *mut List, +} +impl Default for AlterUserMappingStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DropUserMappingStmt { + pub type_: NodeTag, + pub user: *mut RoleSpec, + pub servername: *mut ::std::os::raw::c_char, + pub missing_ok: bool, +} +impl Default for DropUserMappingStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImportForeignSchemaType_FDW_IMPORT_SCHEMA_ALL: ImportForeignSchemaType = 0; +pub const ImportForeignSchemaType_FDW_IMPORT_SCHEMA_LIMIT_TO: ImportForeignSchemaType = 1; +pub const ImportForeignSchemaType_FDW_IMPORT_SCHEMA_EXCEPT: ImportForeignSchemaType = 2; +pub type ImportForeignSchemaType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImportForeignSchemaStmt { + pub type_: NodeTag, + pub server_name: *mut ::std::os::raw::c_char, + pub remote_schema: *mut ::std::os::raw::c_char, + pub local_schema: *mut ::std::os::raw::c_char, + pub list_type: ImportForeignSchemaType, + pub table_list: *mut List, + pub options: *mut List, +} +impl Default for ImportForeignSchemaStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreatePolicyStmt { + pub type_: NodeTag, + pub policy_name: *mut ::std::os::raw::c_char, + pub table: *mut RangeVar, + pub cmd_name: *mut ::std::os::raw::c_char, + pub permissive: bool, + pub roles: *mut List, + pub qual: *mut Node, + pub with_check: *mut Node, +} +impl Default for CreatePolicyStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterPolicyStmt { + pub type_: NodeTag, + pub policy_name: *mut ::std::os::raw::c_char, + pub table: *mut RangeVar, + pub roles: *mut List, + pub qual: *mut Node, + pub with_check: *mut Node, +} +impl Default for AlterPolicyStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateAmStmt { + pub type_: NodeTag, + pub amname: *mut ::std::os::raw::c_char, + pub handler_name: *mut List, + pub amtype: ::std::os::raw::c_char, +} +impl Default for CreateAmStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateTrigStmt { + pub type_: NodeTag, + pub replace: bool, + pub isconstraint: bool, + pub trigname: *mut ::std::os::raw::c_char, + pub relation: *mut RangeVar, + pub funcname: *mut List, + pub args: *mut List, + pub row: bool, + pub timing: int16, + pub events: int16, + pub columns: *mut List, + pub whenClause: *mut Node, + pub transitionRels: *mut List, + pub deferrable: bool, + pub initdeferred: bool, + pub constrrel: *mut RangeVar, +} +impl Default for CreateTrigStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateEventTrigStmt { + pub type_: NodeTag, + pub trigname: *mut ::std::os::raw::c_char, + pub eventname: *mut ::std::os::raw::c_char, + pub whenclause: *mut List, + pub funcname: *mut List, +} +impl Default for CreateEventTrigStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterEventTrigStmt { + pub type_: NodeTag, + pub trigname: *mut ::std::os::raw::c_char, + pub tgenabled: ::std::os::raw::c_char, +} +impl Default for AlterEventTrigStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreatePLangStmt { + pub type_: NodeTag, + pub replace: bool, + pub plname: *mut ::std::os::raw::c_char, + pub plhandler: *mut List, + pub plinline: *mut List, + pub plvalidator: *mut List, + pub pltrusted: bool, +} +impl Default for CreatePLangStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const RoleStmtType_ROLESTMT_ROLE: RoleStmtType = 0; +pub const RoleStmtType_ROLESTMT_USER: RoleStmtType = 1; +pub const RoleStmtType_ROLESTMT_GROUP: RoleStmtType = 2; +pub type RoleStmtType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateRoleStmt { + pub type_: NodeTag, + pub stmt_type: RoleStmtType, + pub role: *mut ::std::os::raw::c_char, + pub options: *mut List, +} +impl Default for CreateRoleStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterRoleStmt { + pub type_: NodeTag, + pub role: *mut RoleSpec, + pub options: *mut List, + pub action: ::std::os::raw::c_int, +} +impl Default for AlterRoleStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterRoleSetStmt { + pub type_: NodeTag, + pub role: *mut RoleSpec, + pub database: *mut ::std::os::raw::c_char, + pub setstmt: *mut VariableSetStmt, +} +impl Default for AlterRoleSetStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DropRoleStmt { + pub type_: NodeTag, + pub roles: *mut List, + pub missing_ok: bool, +} +impl Default for DropRoleStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateSeqStmt { + pub type_: NodeTag, + pub sequence: *mut RangeVar, + pub options: *mut List, + pub ownerId: Oid, + pub for_identity: bool, + pub if_not_exists: bool, +} +impl Default for CreateSeqStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterSeqStmt { + pub type_: NodeTag, + pub sequence: *mut RangeVar, + pub options: *mut List, + pub for_identity: bool, + pub missing_ok: bool, +} +impl Default for AlterSeqStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DefineStmt { + pub type_: NodeTag, + pub kind: ObjectType, + pub oldstyle: bool, + pub defnames: *mut List, + pub args: *mut List, + pub definition: *mut List, + pub if_not_exists: bool, + pub replace: bool, +} +impl Default for DefineStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateDomainStmt { + pub type_: NodeTag, + pub domainname: *mut List, + pub typeName: *mut TypeName, + pub collClause: *mut CollateClause, + pub constraints: *mut List, +} +impl Default for CreateDomainStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateOpClassStmt { + pub type_: NodeTag, + pub opclassname: *mut List, + pub opfamilyname: *mut List, + pub amname: *mut ::std::os::raw::c_char, + pub datatype: *mut TypeName, + pub items: *mut List, + pub isDefault: bool, +} +impl Default for CreateOpClassStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateOpClassItem { + pub type_: NodeTag, + pub itemtype: ::std::os::raw::c_int, + pub name: *mut ObjectWithArgs, + pub number: ::std::os::raw::c_int, + pub order_family: *mut List, + pub class_args: *mut List, + pub storedtype: *mut TypeName, +} +impl Default for CreateOpClassItem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateOpFamilyStmt { + pub type_: NodeTag, + pub opfamilyname: *mut List, + pub amname: *mut ::std::os::raw::c_char, +} +impl Default for CreateOpFamilyStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterOpFamilyStmt { + pub type_: NodeTag, + pub opfamilyname: *mut List, + pub amname: *mut ::std::os::raw::c_char, + pub isDrop: bool, + pub items: *mut List, +} +impl Default for AlterOpFamilyStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DropStmt { + pub type_: NodeTag, + pub objects: *mut List, + pub removeType: ObjectType, + pub behavior: DropBehavior, + pub missing_ok: bool, + pub concurrent: bool, +} +impl Default for DropStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TruncateStmt { + pub type_: NodeTag, + pub relations: *mut List, + pub restart_seqs: bool, + pub behavior: DropBehavior, +} +impl Default for TruncateStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CommentStmt { + pub type_: NodeTag, + pub objtype: ObjectType, + pub object: *mut Node, + pub comment: *mut ::std::os::raw::c_char, +} +impl Default for CommentStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SecLabelStmt { + pub type_: NodeTag, + pub objtype: ObjectType, + pub object: *mut Node, + pub provider: *mut ::std::os::raw::c_char, + pub label: *mut ::std::os::raw::c_char, +} +impl Default for SecLabelStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DeclareCursorStmt { + pub type_: NodeTag, + pub portalname: *mut ::std::os::raw::c_char, + pub options: ::std::os::raw::c_int, + pub query: *mut Node, +} +impl Default for DeclareCursorStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ClosePortalStmt { + pub type_: NodeTag, + pub portalname: *mut ::std::os::raw::c_char, +} +impl Default for ClosePortalStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const FetchDirection_FETCH_FORWARD: FetchDirection = 0; +pub const FetchDirection_FETCH_BACKWARD: FetchDirection = 1; +pub const FetchDirection_FETCH_ABSOLUTE: FetchDirection = 2; +pub const FetchDirection_FETCH_RELATIVE: FetchDirection = 3; +pub type FetchDirection = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FetchStmt { + pub type_: NodeTag, + pub direction: FetchDirection, + pub howMany: ::std::os::raw::c_long, + pub portalname: *mut ::std::os::raw::c_char, + pub ismove: bool, +} +impl Default for FetchStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexStmt { + pub type_: NodeTag, + pub idxname: *mut ::std::os::raw::c_char, + pub relation: *mut RangeVar, + pub accessMethod: *mut ::std::os::raw::c_char, + pub tableSpace: *mut ::std::os::raw::c_char, + pub indexParams: *mut List, + pub indexIncludingParams: *mut List, + pub options: *mut List, + pub whereClause: *mut Node, + pub excludeOpNames: *mut List, + pub idxcomment: *mut ::std::os::raw::c_char, + pub indexOid: Oid, + pub oldNumber: RelFileNumber, + pub oldCreateSubid: SubTransactionId, + pub oldFirstRelfilelocatorSubid: SubTransactionId, + pub unique: bool, + pub nulls_not_distinct: bool, + pub primary: bool, + pub isconstraint: bool, + pub deferrable: bool, + pub initdeferred: bool, + pub transformed: bool, + pub concurrent: bool, + pub if_not_exists: bool, + pub reset_default_tblspc: bool, +} +impl Default for IndexStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateStatsStmt { + pub type_: NodeTag, + pub defnames: *mut List, + pub stat_types: *mut List, + pub exprs: *mut List, + pub relations: *mut List, + pub stxcomment: *mut ::std::os::raw::c_char, + pub transformed: bool, + pub if_not_exists: bool, +} +impl Default for CreateStatsStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StatsElem { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub expr: *mut Node, +} +impl Default for StatsElem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterStatsStmt { + pub type_: NodeTag, + pub defnames: *mut List, + pub stxstattarget: ::std::os::raw::c_int, + pub missing_ok: bool, +} +impl Default for AlterStatsStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateFunctionStmt { + pub type_: NodeTag, + pub is_procedure: bool, + pub replace: bool, + pub funcname: *mut List, + pub parameters: *mut List, + pub returnType: *mut TypeName, + pub options: *mut List, + pub sql_body: *mut Node, +} +impl Default for CreateFunctionStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const FunctionParameterMode_FUNC_PARAM_IN: FunctionParameterMode = 105; +pub const FunctionParameterMode_FUNC_PARAM_OUT: FunctionParameterMode = 111; +pub const FunctionParameterMode_FUNC_PARAM_INOUT: FunctionParameterMode = 98; +pub const FunctionParameterMode_FUNC_PARAM_VARIADIC: FunctionParameterMode = 118; +pub const FunctionParameterMode_FUNC_PARAM_TABLE: FunctionParameterMode = 116; +pub const FunctionParameterMode_FUNC_PARAM_DEFAULT: FunctionParameterMode = 100; +pub type FunctionParameterMode = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FunctionParameter { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub argType: *mut TypeName, + pub mode: FunctionParameterMode, + pub defexpr: *mut Node, +} +impl Default for FunctionParameter { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterFunctionStmt { + pub type_: NodeTag, + pub objtype: ObjectType, + pub func: *mut ObjectWithArgs, + pub actions: *mut List, +} +impl Default for AlterFunctionStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DoStmt { + pub type_: NodeTag, + pub args: *mut List, +} +impl Default for DoStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct InlineCodeBlock { + pub type_: NodeTag, + pub source_text: *mut ::std::os::raw::c_char, + pub langOid: Oid, + pub langIsTrusted: bool, + pub atomic: bool, +} +impl Default for InlineCodeBlock { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CallStmt { + pub type_: NodeTag, + pub funccall: *mut FuncCall, + pub funcexpr: *mut FuncExpr, + pub outargs: *mut List, +} +impl Default for CallStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CallContext { + pub type_: NodeTag, + pub atomic: bool, +} +impl Default for CallContext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RenameStmt { + pub type_: NodeTag, + pub renameType: ObjectType, + pub relationType: ObjectType, + pub relation: *mut RangeVar, + pub object: *mut Node, + pub subname: *mut ::std::os::raw::c_char, + pub newname: *mut ::std::os::raw::c_char, + pub behavior: DropBehavior, + pub missing_ok: bool, +} +impl Default for RenameStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterObjectDependsStmt { + pub type_: NodeTag, + pub objectType: ObjectType, + pub relation: *mut RangeVar, + pub object: *mut Node, + pub extname: *mut String, + pub remove: bool, +} +impl Default for AlterObjectDependsStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterObjectSchemaStmt { + pub type_: NodeTag, + pub objectType: ObjectType, + pub relation: *mut RangeVar, + pub object: *mut Node, + pub newschema: *mut ::std::os::raw::c_char, + pub missing_ok: bool, +} +impl Default for AlterObjectSchemaStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterOwnerStmt { + pub type_: NodeTag, + pub objectType: ObjectType, + pub relation: *mut RangeVar, + pub object: *mut Node, + pub newowner: *mut RoleSpec, +} +impl Default for AlterOwnerStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterOperatorStmt { + pub type_: NodeTag, + pub opername: *mut ObjectWithArgs, + pub options: *mut List, +} +impl Default for AlterOperatorStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterTypeStmt { + pub type_: NodeTag, + pub typeName: *mut List, + pub options: *mut List, +} +impl Default for AlterTypeStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RuleStmt { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub rulename: *mut ::std::os::raw::c_char, + pub whereClause: *mut Node, + pub event: CmdType, + pub instead: bool, + pub actions: *mut List, + pub replace: bool, +} +impl Default for RuleStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NotifyStmt { + pub type_: NodeTag, + pub conditionname: *mut ::std::os::raw::c_char, + pub payload: *mut ::std::os::raw::c_char, +} +impl Default for NotifyStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ListenStmt { + pub type_: NodeTag, + pub conditionname: *mut ::std::os::raw::c_char, +} +impl Default for ListenStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct UnlistenStmt { + pub type_: NodeTag, + pub conditionname: *mut ::std::os::raw::c_char, +} +impl Default for UnlistenStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const TransactionStmtKind_TRANS_STMT_BEGIN: TransactionStmtKind = 0; +pub const TransactionStmtKind_TRANS_STMT_START: TransactionStmtKind = 1; +pub const TransactionStmtKind_TRANS_STMT_COMMIT: TransactionStmtKind = 2; +pub const TransactionStmtKind_TRANS_STMT_ROLLBACK: TransactionStmtKind = 3; +pub const TransactionStmtKind_TRANS_STMT_SAVEPOINT: TransactionStmtKind = 4; +pub const TransactionStmtKind_TRANS_STMT_RELEASE: TransactionStmtKind = 5; +pub const TransactionStmtKind_TRANS_STMT_ROLLBACK_TO: TransactionStmtKind = 6; +pub const TransactionStmtKind_TRANS_STMT_PREPARE: TransactionStmtKind = 7; +pub const TransactionStmtKind_TRANS_STMT_COMMIT_PREPARED: TransactionStmtKind = 8; +pub const TransactionStmtKind_TRANS_STMT_ROLLBACK_PREPARED: TransactionStmtKind = 9; +pub type TransactionStmtKind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TransactionStmt { + pub type_: NodeTag, + pub kind: TransactionStmtKind, + pub options: *mut List, + pub savepoint_name: *mut ::std::os::raw::c_char, + pub gid: *mut ::std::os::raw::c_char, + pub chain: bool, +} +impl Default for TransactionStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CompositeTypeStmt { + pub type_: NodeTag, + pub typevar: *mut RangeVar, + pub coldeflist: *mut List, +} +impl Default for CompositeTypeStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateEnumStmt { + pub type_: NodeTag, + pub typeName: *mut List, + pub vals: *mut List, +} +impl Default for CreateEnumStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateRangeStmt { + pub type_: NodeTag, + pub typeName: *mut List, + pub params: *mut List, +} +impl Default for CreateRangeStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterEnumStmt { + pub type_: NodeTag, + pub typeName: *mut List, + pub oldVal: *mut ::std::os::raw::c_char, + pub newVal: *mut ::std::os::raw::c_char, + pub newValNeighbor: *mut ::std::os::raw::c_char, + pub newValIsAfter: bool, + pub skipIfNewValExists: bool, +} +impl Default for AlterEnumStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ViewCheckOption_NO_CHECK_OPTION: ViewCheckOption = 0; +pub const ViewCheckOption_LOCAL_CHECK_OPTION: ViewCheckOption = 1; +pub const ViewCheckOption_CASCADED_CHECK_OPTION: ViewCheckOption = 2; +pub type ViewCheckOption = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ViewStmt { + pub type_: NodeTag, + pub view: *mut RangeVar, + pub aliases: *mut List, + pub query: *mut Node, + pub replace: bool, + pub options: *mut List, + pub withCheckOption: ViewCheckOption, +} +impl Default for ViewStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LoadStmt { + pub type_: NodeTag, + pub filename: *mut ::std::os::raw::c_char, +} +impl Default for LoadStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreatedbStmt { + pub type_: NodeTag, + pub dbname: *mut ::std::os::raw::c_char, + pub options: *mut List, +} +impl Default for CreatedbStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterDatabaseStmt { + pub type_: NodeTag, + pub dbname: *mut ::std::os::raw::c_char, + pub options: *mut List, +} +impl Default for AlterDatabaseStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterDatabaseRefreshCollStmt { + pub type_: NodeTag, + pub dbname: *mut ::std::os::raw::c_char, +} +impl Default for AlterDatabaseRefreshCollStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterDatabaseSetStmt { + pub type_: NodeTag, + pub dbname: *mut ::std::os::raw::c_char, + pub setstmt: *mut VariableSetStmt, +} +impl Default for AlterDatabaseSetStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DropdbStmt { + pub type_: NodeTag, + pub dbname: *mut ::std::os::raw::c_char, + pub missing_ok: bool, + pub options: *mut List, +} +impl Default for DropdbStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterSystemStmt { + pub type_: NodeTag, + pub setstmt: *mut VariableSetStmt, +} +impl Default for AlterSystemStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ClusterStmt { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub indexname: *mut ::std::os::raw::c_char, + pub params: *mut List, +} +impl Default for ClusterStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct VacuumStmt { + pub type_: NodeTag, + pub options: *mut List, + pub rels: *mut List, + pub is_vacuumcmd: bool, +} +impl Default for VacuumStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct VacuumRelation { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub oid: Oid, + pub va_cols: *mut List, +} +impl Default for VacuumRelation { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExplainStmt { + pub type_: NodeTag, + pub query: *mut Node, + pub options: *mut List, +} +impl Default for ExplainStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateTableAsStmt { + pub type_: NodeTag, + pub query: *mut Node, + pub into: *mut IntoClause, + pub objtype: ObjectType, + pub is_select_into: bool, + pub if_not_exists: bool, +} +impl Default for CreateTableAsStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RefreshMatViewStmt { + pub type_: NodeTag, + pub concurrent: bool, + pub skipData: bool, + pub relation: *mut RangeVar, +} +impl Default for RefreshMatViewStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CheckPointStmt { + pub type_: NodeTag, +} +impl Default for CheckPointStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const DiscardMode_DISCARD_ALL: DiscardMode = 0; +pub const DiscardMode_DISCARD_PLANS: DiscardMode = 1; +pub const DiscardMode_DISCARD_SEQUENCES: DiscardMode = 2; +pub const DiscardMode_DISCARD_TEMP: DiscardMode = 3; +pub type DiscardMode = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DiscardStmt { + pub type_: NodeTag, + pub target: DiscardMode, +} +impl Default for DiscardStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LockStmt { + pub type_: NodeTag, + pub relations: *mut List, + pub mode: ::std::os::raw::c_int, + pub nowait: bool, +} +impl Default for LockStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ConstraintsSetStmt { + pub type_: NodeTag, + pub constraints: *mut List, + pub deferred: bool, +} +impl Default for ConstraintsSetStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ReindexObjectType_REINDEX_OBJECT_INDEX: ReindexObjectType = 0; +pub const ReindexObjectType_REINDEX_OBJECT_TABLE: ReindexObjectType = 1; +pub const ReindexObjectType_REINDEX_OBJECT_SCHEMA: ReindexObjectType = 2; +pub const ReindexObjectType_REINDEX_OBJECT_SYSTEM: ReindexObjectType = 3; +pub const ReindexObjectType_REINDEX_OBJECT_DATABASE: ReindexObjectType = 4; +pub type ReindexObjectType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReindexStmt { + pub type_: NodeTag, + pub kind: ReindexObjectType, + pub relation: *mut RangeVar, + pub name: *const ::std::os::raw::c_char, + pub params: *mut List, +} +impl Default for ReindexStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateConversionStmt { + pub type_: NodeTag, + pub conversion_name: *mut List, + pub for_encoding_name: *mut ::std::os::raw::c_char, + pub to_encoding_name: *mut ::std::os::raw::c_char, + pub func_name: *mut List, + pub def: bool, +} +impl Default for CreateConversionStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateCastStmt { + pub type_: NodeTag, + pub sourcetype: *mut TypeName, + pub targettype: *mut TypeName, + pub func: *mut ObjectWithArgs, + pub context: CoercionContext, + pub inout: bool, +} +impl Default for CreateCastStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateTransformStmt { + pub type_: NodeTag, + pub replace: bool, + pub type_name: *mut TypeName, + pub lang: *mut ::std::os::raw::c_char, + pub fromsql: *mut ObjectWithArgs, + pub tosql: *mut ObjectWithArgs, +} +impl Default for CreateTransformStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PrepareStmt { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub argtypes: *mut List, + pub query: *mut Node, +} +impl Default for PrepareStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExecuteStmt { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, + pub params: *mut List, +} +impl Default for ExecuteStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DeallocateStmt { + pub type_: NodeTag, + pub name: *mut ::std::os::raw::c_char, +} +impl Default for DeallocateStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DropOwnedStmt { + pub type_: NodeTag, + pub roles: *mut List, + pub behavior: DropBehavior, +} +impl Default for DropOwnedStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReassignOwnedStmt { + pub type_: NodeTag, + pub roles: *mut List, + pub newrole: *mut RoleSpec, +} +impl Default for ReassignOwnedStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterTSDictionaryStmt { + pub type_: NodeTag, + pub dictname: *mut List, + pub options: *mut List, +} +impl Default for AlterTSDictionaryStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const AlterTSConfigType_ALTER_TSCONFIG_ADD_MAPPING: AlterTSConfigType = 0; +pub const AlterTSConfigType_ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN: AlterTSConfigType = 1; +pub const AlterTSConfigType_ALTER_TSCONFIG_REPLACE_DICT: AlterTSConfigType = 2; +pub const AlterTSConfigType_ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN: AlterTSConfigType = 3; +pub const AlterTSConfigType_ALTER_TSCONFIG_DROP_MAPPING: AlterTSConfigType = 4; +pub type AlterTSConfigType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterTSConfigurationStmt { + pub type_: NodeTag, + pub kind: AlterTSConfigType, + pub cfgname: *mut List, + pub tokentype: *mut List, + pub dicts: *mut List, + pub override_: bool, + pub replace: bool, + pub missing_ok: bool, +} +impl Default for AlterTSConfigurationStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PublicationTable { + pub type_: NodeTag, + pub relation: *mut RangeVar, + pub whereClause: *mut Node, + pub columns: *mut List, +} +impl Default for PublicationTable { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const PublicationObjSpecType_PUBLICATIONOBJ_TABLE: PublicationObjSpecType = 0; +pub const PublicationObjSpecType_PUBLICATIONOBJ_TABLES_IN_SCHEMA: PublicationObjSpecType = 1; +pub const PublicationObjSpecType_PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA: PublicationObjSpecType = 2; +pub const PublicationObjSpecType_PUBLICATIONOBJ_CONTINUATION: PublicationObjSpecType = 3; +pub type PublicationObjSpecType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PublicationObjSpec { + pub type_: NodeTag, + pub pubobjtype: PublicationObjSpecType, + pub name: *mut ::std::os::raw::c_char, + pub pubtable: *mut PublicationTable, + pub location: ::std::os::raw::c_int, +} +impl Default for PublicationObjSpec { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreatePublicationStmt { + pub type_: NodeTag, + pub pubname: *mut ::std::os::raw::c_char, + pub options: *mut List, + pub pubobjects: *mut List, + pub for_all_tables: bool, +} +impl Default for CreatePublicationStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const AlterPublicationAction_AP_AddObjects: AlterPublicationAction = 0; +pub const AlterPublicationAction_AP_DropObjects: AlterPublicationAction = 1; +pub const AlterPublicationAction_AP_SetObjects: AlterPublicationAction = 2; +pub type AlterPublicationAction = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterPublicationStmt { + pub type_: NodeTag, + pub pubname: *mut ::std::os::raw::c_char, + pub options: *mut List, + pub pubobjects: *mut List, + pub for_all_tables: bool, + pub action: AlterPublicationAction, +} +impl Default for AlterPublicationStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateSubscriptionStmt { + pub type_: NodeTag, + pub subname: *mut ::std::os::raw::c_char, + pub conninfo: *mut ::std::os::raw::c_char, + pub publication: *mut List, + pub options: *mut List, +} +impl Default for CreateSubscriptionStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_OPTIONS: AlterSubscriptionType = 0; +pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_CONNECTION: AlterSubscriptionType = 1; +pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_SET_PUBLICATION: AlterSubscriptionType = 2; +pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_ADD_PUBLICATION: AlterSubscriptionType = 3; +pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_DROP_PUBLICATION: AlterSubscriptionType = 4; +pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_REFRESH: AlterSubscriptionType = 5; +pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_ENABLED: AlterSubscriptionType = 6; +pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_SKIP: AlterSubscriptionType = 7; +pub type AlterSubscriptionType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterSubscriptionStmt { + pub type_: NodeTag, + pub kind: AlterSubscriptionType, + pub subname: *mut ::std::os::raw::c_char, + pub conninfo: *mut ::std::os::raw::c_char, + pub publication: *mut List, + pub options: *mut List, +} +impl Default for AlterSubscriptionStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DropSubscriptionStmt { + pub type_: NodeTag, + pub subname: *mut ::std::os::raw::c_char, + pub missing_ok: bool, + pub behavior: DropBehavior, +} +impl Default for DropSubscriptionStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PlannedStmt { + pub type_: NodeTag, + pub commandType: CmdType, + pub queryId: uint64, + pub hasReturning: bool, + pub hasModifyingCTE: bool, + pub canSetTag: bool, + pub transientPlan: bool, + pub dependsOnRole: bool, + pub parallelModeNeeded: bool, + pub jitFlags: ::std::os::raw::c_int, + pub planTree: *mut Plan, + pub rtable: *mut List, + pub permInfos: *mut List, + pub resultRelations: *mut List, + pub appendRelations: *mut List, + pub subplans: *mut List, + pub rewindPlanIDs: *mut Bitmapset, + pub rowMarks: *mut List, + pub relationOids: *mut List, + pub invalItems: *mut List, + pub paramExecTypes: *mut List, + pub utilityStmt: *mut Node, + pub stmt_location: ::std::os::raw::c_int, + pub stmt_len: ::std::os::raw::c_int, +} +impl Default for PlannedStmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Plan { + pub type_: NodeTag, + pub startup_cost: Cost, + pub total_cost: Cost, + pub plan_rows: Cardinality, + pub plan_width: ::std::os::raw::c_int, + pub parallel_aware: bool, + pub parallel_safe: bool, + pub async_capable: bool, + pub plan_node_id: ::std::os::raw::c_int, + pub targetlist: *mut List, + pub qual: *mut List, + pub lefttree: *mut Plan, + pub righttree: *mut Plan, + pub initPlan: *mut List, + pub extParam: *mut Bitmapset, + pub allParam: *mut Bitmapset, +} +impl Default for Plan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Result { + pub plan: Plan, + pub resconstantqual: *mut Node, +} +impl Default for Result { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ProjectSet { + pub plan: Plan, +} +impl Default for ProjectSet { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ModifyTable { + pub plan: Plan, + pub operation: CmdType, + pub canSetTag: bool, + pub nominalRelation: Index, + pub rootRelation: Index, + pub partColsUpdated: bool, + pub resultRelations: *mut List, + pub updateColnosLists: *mut List, + pub withCheckOptionLists: *mut List, + pub returningLists: *mut List, + pub fdwPrivLists: *mut List, + pub fdwDirectModifyPlans: *mut Bitmapset, + pub rowMarks: *mut List, + pub epqParam: ::std::os::raw::c_int, + pub onConflictAction: OnConflictAction, + pub arbiterIndexes: *mut List, + pub onConflictSet: *mut List, + pub onConflictCols: *mut List, + pub onConflictWhere: *mut Node, + pub exclRelRTI: Index, + pub exclRelTlist: *mut List, + pub mergeActionLists: *mut List, +} +impl Default for ModifyTable { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Append { + pub plan: Plan, + pub apprelids: *mut Bitmapset, + pub appendplans: *mut List, + pub nasyncplans: ::std::os::raw::c_int, + pub first_partial_plan: ::std::os::raw::c_int, + pub part_prune_info: *mut PartitionPruneInfo, +} +impl Default for Append { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeAppend { + pub plan: Plan, + pub apprelids: *mut Bitmapset, + pub mergeplans: *mut List, + pub numCols: ::std::os::raw::c_int, + pub sortColIdx: *mut AttrNumber, + pub sortOperators: *mut Oid, + pub collations: *mut Oid, + pub nullsFirst: *mut bool, + pub part_prune_info: *mut PartitionPruneInfo, +} +impl Default for MergeAppend { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RecursiveUnion { + pub plan: Plan, + pub wtParam: ::std::os::raw::c_int, + pub numCols: ::std::os::raw::c_int, + pub dupColIdx: *mut AttrNumber, + pub dupOperators: *mut Oid, + pub dupCollations: *mut Oid, + pub numGroups: ::std::os::raw::c_long, +} +impl Default for RecursiveUnion { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapAnd { + pub plan: Plan, + pub bitmapplans: *mut List, +} +impl Default for BitmapAnd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapOr { + pub plan: Plan, + pub isshared: bool, + pub bitmapplans: *mut List, +} +impl Default for BitmapOr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Scan { + pub plan: Plan, + pub scanrelid: Index, +} +impl Default for Scan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SeqScan { + pub scan: Scan, +} +impl Default for SeqScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SampleScan { + pub scan: Scan, + pub tablesample: *mut TableSampleClause, +} +impl Default for SampleScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexScan { + pub scan: Scan, + pub indexid: Oid, + pub indexqual: *mut List, + pub indexqualorig: *mut List, + pub indexorderby: *mut List, + pub indexorderbyorig: *mut List, + pub indexorderbyops: *mut List, + pub indexorderdir: ScanDirection, +} +impl Default for IndexScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexOnlyScan { + pub scan: Scan, + pub indexid: Oid, + pub indexqual: *mut List, + pub recheckqual: *mut List, + pub indexorderby: *mut List, + pub indextlist: *mut List, + pub indexorderdir: ScanDirection, +} +impl Default for IndexOnlyScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapIndexScan { + pub scan: Scan, + pub indexid: Oid, + pub isshared: bool, + pub indexqual: *mut List, + pub indexqualorig: *mut List, +} +impl Default for BitmapIndexScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapHeapScan { + pub scan: Scan, + pub bitmapqualorig: *mut List, +} +impl Default for BitmapHeapScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TidScan { + pub scan: Scan, + pub tidquals: *mut List, +} +impl Default for TidScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TidRangeScan { + pub scan: Scan, + pub tidrangequals: *mut List, +} +impl Default for TidRangeScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const SubqueryScanStatus_SUBQUERY_SCAN_UNKNOWN: SubqueryScanStatus = 0; +pub const SubqueryScanStatus_SUBQUERY_SCAN_TRIVIAL: SubqueryScanStatus = 1; +pub const SubqueryScanStatus_SUBQUERY_SCAN_NONTRIVIAL: SubqueryScanStatus = 2; +pub type SubqueryScanStatus = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SubqueryScan { + pub scan: Scan, + pub subplan: *mut Plan, + pub scanstatus: SubqueryScanStatus, +} +impl Default for SubqueryScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FunctionScan { + pub scan: Scan, + pub functions: *mut List, + pub funcordinality: bool, +} +impl Default for FunctionScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ValuesScan { + pub scan: Scan, + pub values_lists: *mut List, +} +impl Default for ValuesScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TableFuncScan { + pub scan: Scan, + pub tablefunc: *mut TableFunc, +} +impl Default for TableFuncScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CteScan { + pub scan: Scan, + pub ctePlanId: ::std::os::raw::c_int, + pub cteParam: ::std::os::raw::c_int, +} +impl Default for CteScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NamedTuplestoreScan { + pub scan: Scan, + pub enrname: *mut ::std::os::raw::c_char, +} +impl Default for NamedTuplestoreScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WorkTableScan { + pub scan: Scan, + pub wtParam: ::std::os::raw::c_int, +} +impl Default for WorkTableScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForeignScan { + pub scan: Scan, + pub operation: CmdType, + pub resultRelation: Index, + pub checkAsUser: Oid, + pub fs_server: Oid, + pub fdw_exprs: *mut List, + pub fdw_private: *mut List, + pub fdw_scan_tlist: *mut List, + pub fdw_recheck_quals: *mut List, + pub fs_relids: *mut Bitmapset, + pub fs_base_relids: *mut Bitmapset, + pub fsSystemCol: bool, +} +impl Default for ForeignScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CustomScan { + pub scan: Scan, + pub flags: uint32, + pub custom_plans: *mut List, + pub custom_exprs: *mut List, + pub custom_private: *mut List, + pub custom_scan_tlist: *mut List, + pub custom_relids: *mut Bitmapset, + pub methods: *const CustomScanMethods, +} +impl Default for CustomScan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Join { + pub plan: Plan, + pub jointype: JoinType, + pub inner_unique: bool, + pub joinqual: *mut List, +} +impl Default for Join { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NestLoop { + pub join: Join, + pub nestParams: *mut List, +} +impl Default for NestLoop { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NestLoopParam { + pub type_: NodeTag, + pub paramno: ::std::os::raw::c_int, + pub paramval: *mut Var, +} +impl Default for NestLoopParam { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeJoin { + pub join: Join, + pub skip_mark_restore: bool, + pub mergeclauses: *mut List, + pub mergeFamilies: *mut Oid, + pub mergeCollations: *mut Oid, + pub mergeStrategies: *mut ::std::os::raw::c_int, + pub mergeNullsFirst: *mut bool, +} +impl Default for MergeJoin { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HashJoin { + pub join: Join, + pub hashclauses: *mut List, + pub hashoperators: *mut List, + pub hashcollations: *mut List, + pub hashkeys: *mut List, +} +impl Default for HashJoin { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Material { + pub plan: Plan, +} +impl Default for Material { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Memoize { + pub plan: Plan, + pub numKeys: ::std::os::raw::c_int, + pub hashOperators: *mut Oid, + pub collations: *mut Oid, + pub param_exprs: *mut List, + pub singlerow: bool, + pub binary_mode: bool, + pub est_entries: uint32, + pub keyparamids: *mut Bitmapset, +} +impl Default for Memoize { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Sort { + pub plan: Plan, + pub numCols: ::std::os::raw::c_int, + pub sortColIdx: *mut AttrNumber, + pub sortOperators: *mut Oid, + pub collations: *mut Oid, + pub nullsFirst: *mut bool, +} +impl Default for Sort { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IncrementalSort { + pub sort: Sort, + pub nPresortedCols: ::std::os::raw::c_int, +} +impl Default for IncrementalSort { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Group { + pub plan: Plan, + pub numCols: ::std::os::raw::c_int, + pub grpColIdx: *mut AttrNumber, + pub grpOperators: *mut Oid, + pub grpCollations: *mut Oid, +} +impl Default for Group { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Agg { + pub plan: Plan, + pub aggstrategy: AggStrategy, + pub aggsplit: AggSplit, + pub numCols: ::std::os::raw::c_int, + pub grpColIdx: *mut AttrNumber, + pub grpOperators: *mut Oid, + pub grpCollations: *mut Oid, + pub numGroups: ::std::os::raw::c_long, + pub transitionSpace: uint64, + pub aggParams: *mut Bitmapset, + pub groupingSets: *mut List, + pub chain: *mut List, +} +impl Default for Agg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowAgg { + pub plan: Plan, + pub winref: Index, + pub partNumCols: ::std::os::raw::c_int, + pub partColIdx: *mut AttrNumber, + pub partOperators: *mut Oid, + pub partCollations: *mut Oid, + pub ordNumCols: ::std::os::raw::c_int, + pub ordColIdx: *mut AttrNumber, + pub ordOperators: *mut Oid, + pub ordCollations: *mut Oid, + pub frameOptions: ::std::os::raw::c_int, + pub startOffset: *mut Node, + pub endOffset: *mut Node, + pub runCondition: *mut List, + pub runConditionOrig: *mut List, + pub startInRangeFunc: Oid, + pub endInRangeFunc: Oid, + pub inRangeColl: Oid, + pub inRangeAsc: bool, + pub inRangeNullsFirst: bool, + pub topWindow: bool, +} +impl Default for WindowAgg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Unique { + pub plan: Plan, + pub numCols: ::std::os::raw::c_int, + pub uniqColIdx: *mut AttrNumber, + pub uniqOperators: *mut Oid, + pub uniqCollations: *mut Oid, +} +impl Default for Unique { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Gather { + pub plan: Plan, + pub num_workers: ::std::os::raw::c_int, + pub rescan_param: ::std::os::raw::c_int, + pub single_copy: bool, + pub invisible: bool, + pub initParam: *mut Bitmapset, +} +impl Default for Gather { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GatherMerge { + pub plan: Plan, + pub num_workers: ::std::os::raw::c_int, + pub rescan_param: ::std::os::raw::c_int, + pub numCols: ::std::os::raw::c_int, + pub sortColIdx: *mut AttrNumber, + pub sortOperators: *mut Oid, + pub collations: *mut Oid, + pub nullsFirst: *mut bool, + pub initParam: *mut Bitmapset, +} +impl Default for GatherMerge { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Hash { + pub plan: Plan, + pub hashkeys: *mut List, + pub skewTable: Oid, + pub skewColumn: AttrNumber, + pub skewInherit: bool, + pub rows_total: Cardinality, +} +impl Default for Hash { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SetOp { + pub plan: Plan, + pub cmd: SetOpCmd, + pub strategy: SetOpStrategy, + pub numCols: ::std::os::raw::c_int, + pub dupColIdx: *mut AttrNumber, + pub dupOperators: *mut Oid, + pub dupCollations: *mut Oid, + pub flagColIdx: AttrNumber, + pub firstFlag: ::std::os::raw::c_int, + pub numGroups: ::std::os::raw::c_long, +} +impl Default for SetOp { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LockRows { + pub plan: Plan, + pub rowMarks: *mut List, + pub epqParam: ::std::os::raw::c_int, +} +impl Default for LockRows { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Limit { + pub plan: Plan, + pub limitOffset: *mut Node, + pub limitCount: *mut Node, + pub limitOption: LimitOption, + pub uniqNumCols: ::std::os::raw::c_int, + pub uniqColIdx: *mut AttrNumber, + pub uniqOperators: *mut Oid, + pub uniqCollations: *mut Oid, +} +impl Default for Limit { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const RowMarkType_ROW_MARK_EXCLUSIVE: RowMarkType = 0; +pub const RowMarkType_ROW_MARK_NOKEYEXCLUSIVE: RowMarkType = 1; +pub const RowMarkType_ROW_MARK_SHARE: RowMarkType = 2; +pub const RowMarkType_ROW_MARK_KEYSHARE: RowMarkType = 3; +pub const RowMarkType_ROW_MARK_REFERENCE: RowMarkType = 4; +pub const RowMarkType_ROW_MARK_COPY: RowMarkType = 5; +pub type RowMarkType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PlanRowMark { + pub type_: NodeTag, + pub rti: Index, + pub prti: Index, + pub rowmarkId: Index, + pub markType: RowMarkType, + pub allMarkTypes: ::std::os::raw::c_int, + pub strength: LockClauseStrength, + pub waitPolicy: LockWaitPolicy, + pub isParent: bool, +} +impl Default for PlanRowMark { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionPruneInfo { + pub type_: NodeTag, + pub prune_infos: *mut List, + pub other_subplans: *mut Bitmapset, +} +impl Default for PartitionPruneInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionedRelPruneInfo { + pub type_: NodeTag, + pub rtindex: Index, + pub present_parts: *mut Bitmapset, + pub nparts: ::std::os::raw::c_int, + pub subplan_map: *mut ::std::os::raw::c_int, + pub subpart_map: *mut ::std::os::raw::c_int, + pub relid_map: *mut Oid, + pub initial_pruning_steps: *mut List, + pub exec_pruning_steps: *mut List, + pub execparamids: *mut Bitmapset, +} +impl Default for PartitionedRelPruneInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionPruneStep { + pub type_: NodeTag, + pub step_id: ::std::os::raw::c_int, +} +impl Default for PartitionPruneStep { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionPruneStepOp { + pub step: PartitionPruneStep, + pub opstrategy: StrategyNumber, + pub exprs: *mut List, + pub cmpfns: *mut List, + pub nullkeys: *mut Bitmapset, +} +impl Default for PartitionPruneStepOp { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const PartitionPruneCombineOp_PARTPRUNE_COMBINE_UNION: PartitionPruneCombineOp = 0; +pub const PartitionPruneCombineOp_PARTPRUNE_COMBINE_INTERSECT: PartitionPruneCombineOp = 1; +pub type PartitionPruneCombineOp = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionPruneStepCombine { + pub step: PartitionPruneStep, + pub combineOp: PartitionPruneCombineOp, + pub source_stepids: *mut List, +} +impl Default for PartitionPruneStepCombine { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PlanInvalItem { + pub type_: NodeTag, + pub cacheId: ::std::os::raw::c_int, + pub hashValue: uint32, +} +impl Default for PlanInvalItem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const MonotonicFunction_MONOTONICFUNC_NONE: MonotonicFunction = 0; +pub const MonotonicFunction_MONOTONICFUNC_INCREASING: MonotonicFunction = 1; +pub const MonotonicFunction_MONOTONICFUNC_DECREASING: MonotonicFunction = 2; +pub const MonotonicFunction_MONOTONICFUNC_BOTH: MonotonicFunction = 3; +pub type MonotonicFunction = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct pg_atomic_flag { + pub value: ::std::os::raw::c_char, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct pg_atomic_uint32 { + pub value: uint32, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct pg_atomic_uint64 { + pub value: uint64, +} +extern "C" { + pub static mut dynamic_shared_memory_type: ::std::os::raw::c_int; +} +extern "C" { + pub static mut min_dynamic_shared_memory: ::std::os::raw::c_int; +} +pub type dsm_handle = uint32; +pub const dsm_op_DSM_OP_CREATE: dsm_op = 0; +pub const dsm_op_DSM_OP_ATTACH: dsm_op = 1; +pub const dsm_op_DSM_OP_DETACH: dsm_op = 2; +pub const dsm_op_DSM_OP_DESTROY: dsm_op = 3; +pub type dsm_op = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_impl_op( + op: dsm_op, + handle: dsm_handle, + request_size: Size, + impl_private: *mut *mut ::std::os::raw::c_void, + mapped_address: *mut *mut ::std::os::raw::c_void, + mapped_size: *mut Size, + elevel: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_impl_pin_segment( + handle: dsm_handle, + impl_private: *mut ::std::os::raw::c_void, + impl_private_pm_handle: *mut *mut ::std::os::raw::c_void, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_impl_unpin_segment( + handle: dsm_handle, + impl_private: *mut *mut ::std::os::raw::c_void, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsm_segment { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PGShmemHeader { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_cleanup_using_control_segment(old_control_handle: dsm_handle); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_postmaster_startup(arg1: *mut PGShmemHeader); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_backend_shutdown(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_detach_all(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_estimate_size() -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_shmem_init(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_create(size: Size, flags: ::std::os::raw::c_int) -> *mut dsm_segment; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_attach(h: dsm_handle) -> *mut dsm_segment; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_detach(seg: *mut dsm_segment); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_pin_mapping(seg: *mut dsm_segment); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_unpin_mapping(seg: *mut dsm_segment); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_pin_segment(seg: *mut dsm_segment); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_unpin_segment(handle: dsm_handle); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_find_mapping(handle: dsm_handle) -> *mut dsm_segment; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_segment_address(seg: *mut dsm_segment) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_segment_map_length(seg: *mut dsm_segment) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsm_segment_handle(seg: *mut dsm_segment) -> dsm_handle; +} +pub type on_dsm_detach_callback = + ::std::option::Option; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_dsm_detach(seg: *mut dsm_segment, function: on_dsm_detach_callback, arg: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cancel_on_dsm_detach( + seg: *mut dsm_segment, + function: on_dsm_detach_callback, + arg: Datum, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reset_on_dsm_detach(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dsa_area { + _unused: [u8; 0], +} +pub type dsa_pointer = uint64; +pub type dsa_pointer_atomic = pg_atomic_uint64; +pub type dsa_handle = dsm_handle; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_create(tranche_id: ::std::os::raw::c_int) -> *mut dsa_area; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_create_in_place( + place: *mut ::std::os::raw::c_void, + size: usize, + tranche_id: ::std::os::raw::c_int, + segment: *mut dsm_segment, + ) -> *mut dsa_area; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_attach(handle: dsa_handle) -> *mut dsa_area; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_attach_in_place( + place: *mut ::std::os::raw::c_void, + segment: *mut dsm_segment, + ) -> *mut dsa_area; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_release_in_place(place: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_on_dsm_detach_release_in_place(arg1: *mut dsm_segment, arg2: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_on_shmem_exit_release_in_place(arg1: ::std::os::raw::c_int, arg2: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_pin_mapping(area: *mut dsa_area); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_detach(area: *mut dsa_area); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_pin(area: *mut dsa_area); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_unpin(area: *mut dsa_area); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_set_size_limit(area: *mut dsa_area, limit: usize); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_minimum_size() -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_get_handle(area: *mut dsa_area) -> dsa_handle; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_allocate_extended( + area: *mut dsa_area, + size: usize, + flags: ::std::os::raw::c_int, + ) -> dsa_pointer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_free(area: *mut dsa_area, dp: dsa_pointer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_get_address(area: *mut dsa_area, dp: dsa_pointer) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_trim(area: *mut dsa_area); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsa_dump(area: *mut dsa_area); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TIDBitmap { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TBMIterator { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TBMSharedIterator { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct TBMIterateResult { + pub blockno: BlockNumber, + pub ntuples: ::std::os::raw::c_int, + pub recheck: bool, + pub offsets: __IncompleteArrayField, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_create(maxbytes: ::std::os::raw::c_long, dsa: *mut dsa_area) -> *mut TIDBitmap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_free(tbm: *mut TIDBitmap); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_free_shared_area(dsa: *mut dsa_area, dp: dsa_pointer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_add_tuples( + tbm: *mut TIDBitmap, + tids: ItemPointer, + ntids: ::std::os::raw::c_int, + recheck: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_add_page(tbm: *mut TIDBitmap, pageno: BlockNumber); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_union(a: *mut TIDBitmap, b: *const TIDBitmap); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_intersect(a: *mut TIDBitmap, b: *const TIDBitmap); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_is_empty(tbm: *const TIDBitmap) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_begin_iterate(tbm: *mut TIDBitmap) -> *mut TBMIterator; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_prepare_shared_iterate(tbm: *mut TIDBitmap) -> dsa_pointer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_iterate(iterator: *mut TBMIterator) -> *mut TBMIterateResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_shared_iterate(iterator: *mut TBMSharedIterator) -> *mut TBMIterateResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_end_iterate(iterator: *mut TBMIterator); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_end_shared_iterate(iterator: *mut TBMSharedIterator); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_attach_shared_iterate(dsa: *mut dsa_area, dp: dsa_pointer) + -> *mut TBMSharedIterator; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tbm_calculate_entries(maxbytes: f64) -> ::std::os::raw::c_long; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct proclist_node { + pub next: ::std::os::raw::c_int, + pub prev: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct proclist_head { + pub head: ::std::os::raw::c_int, + pub tail: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct proclist_mutable_iter { + pub cur: ::std::os::raw::c_int, + pub next: ::std::os::raw::c_int, +} +pub type slock_t = ::std::os::raw::c_uchar; +extern "C" { + pub static mut dummy_spinlock: slock_t; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn s_lock( + lock: *mut slock_t, + file: *const ::std::os::raw::c_char, + line: ::std::os::raw::c_int, + func: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_spins_per_delay(shared_spins_per_delay: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn update_spins_per_delay( + shared_spins_per_delay: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SpinDelayStatus { + pub spins: ::std::os::raw::c_int, + pub delays: ::std::os::raw::c_int, + pub cur_delay: ::std::os::raw::c_int, + pub file: *const ::std::os::raw::c_char, + pub line: ::std::os::raw::c_int, + pub func: *const ::std::os::raw::c_char, +} +impl Default for SpinDelayStatus { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn perform_spin_delay(status: *mut SpinDelayStatus); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn finish_spin_delay(status: *mut SpinDelayStatus); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SpinlockSemas() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SpinlockSemaSize() -> Size; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ConditionVariable { + pub mutex: slock_t, + pub wakeup: proclist_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ConditionVariableMinimallyPadded { + pub cv: ConditionVariable, + pub pad: [::std::os::raw::c_char; 16usize], +} +impl Default for ConditionVariableMinimallyPadded { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionVariableInit(cv: *mut ConditionVariable); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionVariableSleep(cv: *mut ConditionVariable, wait_event_info: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionVariableTimedSleep( + cv: *mut ConditionVariable, + timeout: ::std::os::raw::c_long, + wait_event_info: uint32, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionVariableCancelSleep(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionVariablePrepareToSleep(cv: *mut ConditionVariable); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionVariableSignal(cv: *mut ConditionVariable); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionVariableBroadcast(cv: *mut ConditionVariable); +} +pub type HashValueFunc = ::std::option::Option< + unsafe extern "C" fn(key: *const ::std::os::raw::c_void, keysize: Size) -> uint32, +>; +pub type HashCompareFunc = ::std::option::Option< + unsafe extern "C" fn( + key1: *const ::std::os::raw::c_void, + key2: *const ::std::os::raw::c_void, + keysize: Size, + ) -> ::std::os::raw::c_int, +>; +pub type HashCopyFunc = ::std::option::Option< + unsafe extern "C" fn( + dest: *mut ::std::os::raw::c_void, + src: *const ::std::os::raw::c_void, + keysize: Size, + ) -> *mut ::std::os::raw::c_void, +>; +pub type HashAllocFunc = + ::std::option::Option *mut ::std::os::raw::c_void>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HASHELEMENT { + pub link: *mut HASHELEMENT, + pub hashvalue: uint32, +} +impl Default for HASHELEMENT { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HASHHDR { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HTAB { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HASHCTL { + pub num_partitions: ::std::os::raw::c_long, + pub ssize: ::std::os::raw::c_long, + pub dsize: ::std::os::raw::c_long, + pub max_dsize: ::std::os::raw::c_long, + pub keysize: Size, + pub entrysize: Size, + pub hash: HashValueFunc, + pub match_: HashCompareFunc, + pub keycopy: HashCopyFunc, + pub alloc: HashAllocFunc, + pub hcxt: MemoryContext, + pub hctl: *mut HASHHDR, +} +impl Default for HASHCTL { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const HASHACTION_HASH_FIND: HASHACTION = 0; +pub const HASHACTION_HASH_ENTER: HASHACTION = 1; +pub const HASHACTION_HASH_REMOVE: HASHACTION = 2; +pub const HASHACTION_HASH_ENTER_NULL: HASHACTION = 3; +pub type HASHACTION = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HASH_SEQ_STATUS { + pub hashp: *mut HTAB, + pub curBucket: uint32, + pub curEntry: *mut HASHELEMENT, +} +impl Default for HASH_SEQ_STATUS { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_create( + tabname: *const ::std::os::raw::c_char, + nelem: ::std::os::raw::c_long, + info: *const HASHCTL, + flags: ::std::os::raw::c_int, + ) -> *mut HTAB; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_destroy(hashp: *mut HTAB); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_stats(where_: *const ::std::os::raw::c_char, hashp: *mut HTAB); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_search( + hashp: *mut HTAB, + keyPtr: *const ::std::os::raw::c_void, + action: HASHACTION, + foundPtr: *mut bool, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_hash_value(hashp: *mut HTAB, keyPtr: *const ::std::os::raw::c_void) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_search_with_hash_value( + hashp: *mut HTAB, + keyPtr: *const ::std::os::raw::c_void, + hashvalue: uint32, + action: HASHACTION, + foundPtr: *mut bool, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_update_hash_key( + hashp: *mut HTAB, + existingEntry: *mut ::std::os::raw::c_void, + newKeyPtr: *const ::std::os::raw::c_void, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_get_num_entries(hashp: *mut HTAB) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_seq_init(status: *mut HASH_SEQ_STATUS, hashp: *mut HTAB); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_seq_search(status: *mut HASH_SEQ_STATUS) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_seq_term(status: *mut HASH_SEQ_STATUS); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_freeze(hashp: *mut HTAB); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_estimate_size(num_entries: ::std::os::raw::c_long, entrysize: Size) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_select_dirsize(num_entries: ::std::os::raw::c_long) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_get_shared_size(info: *mut HASHCTL, flags: ::std::os::raw::c_int) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_HashTables(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOSubXact_HashTables(isCommit: bool, nestDepth: ::std::os::raw::c_int); +} +pub const EphemeralNameRelationType_ENR_NAMED_TUPLESTORE: EphemeralNameRelationType = 0; +pub type EphemeralNameRelationType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct EphemeralNamedRelationMetadataData { + pub name: *mut ::std::os::raw::c_char, + pub reliddesc: Oid, + pub tupdesc: TupleDesc, + pub enrtype: EphemeralNameRelationType, + pub enrtuples: f64, +} +impl Default for EphemeralNamedRelationMetadataData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type EphemeralNamedRelationMetadata = *mut EphemeralNamedRelationMetadataData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct EphemeralNamedRelationData { + pub md: EphemeralNamedRelationMetadataData, + pub reldata: *mut ::std::os::raw::c_void, +} +impl Default for EphemeralNamedRelationData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type EphemeralNamedRelation = *mut EphemeralNamedRelationData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct QueryEnvironment { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_queryEnv() -> *mut QueryEnvironment; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_visible_ENR_metadata( + queryEnv: *mut QueryEnvironment, + refname: *const ::std::os::raw::c_char, + ) -> EphemeralNamedRelationMetadata; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn register_ENR(queryEnv: *mut QueryEnvironment, enr: EphemeralNamedRelation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unregister_ENR(queryEnv: *mut QueryEnvironment, name: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_ENR( + queryEnv: *mut QueryEnvironment, + name: *const ::std::os::raw::c_char, + ) -> EphemeralNamedRelation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ENRMetadataGetTupDesc(enrmd: EphemeralNamedRelationMetadata) -> TupleDesc; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Trigger { + pub tgoid: Oid, + pub tgname: *mut ::std::os::raw::c_char, + pub tgfoid: Oid, + pub tgtype: int16, + pub tgenabled: ::std::os::raw::c_char, + pub tgisinternal: bool, + pub tgisclone: bool, + pub tgconstrrelid: Oid, + pub tgconstrindid: Oid, + pub tgconstraint: Oid, + pub tgdeferrable: bool, + pub tginitdeferred: bool, + pub tgnargs: int16, + pub tgnattr: int16, + pub tgattr: *mut int16, + pub tgargs: *mut *mut ::std::os::raw::c_char, + pub tgqual: *mut ::std::os::raw::c_char, + pub tgoldtable: *mut ::std::os::raw::c_char, + pub tgnewtable: *mut ::std::os::raw::c_char, +} +impl Default for Trigger { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TriggerDesc { + pub triggers: *mut Trigger, + pub numtriggers: ::std::os::raw::c_int, + pub trig_insert_before_row: bool, + pub trig_insert_after_row: bool, + pub trig_insert_instead_row: bool, + pub trig_insert_before_statement: bool, + pub trig_insert_after_statement: bool, + pub trig_update_before_row: bool, + pub trig_update_after_row: bool, + pub trig_update_instead_row: bool, + pub trig_update_before_statement: bool, + pub trig_update_after_statement: bool, + pub trig_delete_before_row: bool, + pub trig_delete_after_row: bool, + pub trig_delete_instead_row: bool, + pub trig_delete_before_statement: bool, + pub trig_delete_after_statement: bool, + pub trig_truncate_before_statement: bool, + pub trig_truncate_after_statement: bool, + pub trig_insert_new_table: bool, + pub trig_update_old_table: bool, + pub trig_update_new_table: bool, + pub trig_delete_old_table: bool, +} +impl Default for TriggerDesc { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct dirent { + pub d_ino: __ino_t, + pub d_off: __off_t, + pub d_reclen: ::std::os::raw::c_ushort, + pub d_type: ::std::os::raw::c_uchar, + pub d_name: [::std::os::raw::c_char; 256usize], +} +impl Default for dirent { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const DT_UNKNOWN: _bindgen_ty_3 = 0; +pub const DT_FIFO: _bindgen_ty_3 = 1; +pub const DT_CHR: _bindgen_ty_3 = 2; +pub const DT_DIR: _bindgen_ty_3 = 4; +pub const DT_BLK: _bindgen_ty_3 = 6; +pub const DT_REG: _bindgen_ty_3 = 8; +pub const DT_LNK: _bindgen_ty_3 = 10; +pub const DT_SOCK: _bindgen_ty_3 = 12; +pub const DT_WHT: _bindgen_ty_3 = 14; +pub type _bindgen_ty_3 = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __dirstream { + _unused: [u8; 0], +} +pub type DIR = __dirstream; +pub const RecoveryInitSyncMethod_RECOVERY_INIT_SYNC_METHOD_FSYNC: RecoveryInitSyncMethod = 0; +pub const RecoveryInitSyncMethod_RECOVERY_INIT_SYNC_METHOD_SYNCFS: RecoveryInitSyncMethod = 1; +pub type RecoveryInitSyncMethod = ::std::os::raw::c_uint; +pub type File = ::std::os::raw::c_int; +extern "C" { + pub static mut max_files_per_process: ::std::os::raw::c_int; +} +extern "C" { + pub static mut data_sync_retry: bool; +} +extern "C" { + pub static mut recovery_init_sync_method: ::std::os::raw::c_int; +} +extern "C" { + pub static mut io_direct_flags: ::std::os::raw::c_int; +} +extern "C" { + pub static mut max_safe_fds: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PathNameOpenFile( + fileName: *const ::std::os::raw::c_char, + fileFlags: ::std::os::raw::c_int, + ) -> File; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PathNameOpenFilePerm( + fileName: *const ::std::os::raw::c_char, + fileFlags: ::std::os::raw::c_int, + fileMode: mode_t, + ) -> File; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpenTemporaryFile(interXact: bool) -> File; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileClose(file: File); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FilePrefetch( + file: File, + offset: off_t, + amount: off_t, + wait_event_info: uint32, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileRead( + file: File, + buffer: *mut ::std::os::raw::c_void, + amount: usize, + offset: off_t, + wait_event_info: uint32, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileWrite( + file: File, + buffer: *const ::std::os::raw::c_void, + amount: usize, + offset: off_t, + wait_event_info: uint32, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileSync(file: File, wait_event_info: uint32) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileZero( + file: File, + offset: off_t, + amount: off_t, + wait_event_info: uint32, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileFallocate( + file: File, + offset: off_t, + amount: off_t, + wait_event_info: uint32, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileSize(file: File) -> off_t; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileTruncate( + file: File, + offset: off_t, + wait_event_info: uint32, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileWriteback(file: File, offset: off_t, nbytes: off_t, wait_event_info: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FilePathName(file: File) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileGetRawDesc(file: File) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileGetRawFlags(file: File) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileGetRawMode(file: File) -> mode_t; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PathNameCreateTemporaryFile( + path: *const ::std::os::raw::c_char, + error_on_failure: bool, + ) -> File; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PathNameOpenTemporaryFile( + path: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + ) -> File; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PathNameDeleteTemporaryFile( + path: *const ::std::os::raw::c_char, + error_on_failure: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PathNameCreateTemporaryDir( + basedir: *const ::std::os::raw::c_char, + directory: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PathNameDeleteTemporaryDir(dirname: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TempTablespacePath(path: *mut ::std::os::raw::c_char, tablespace: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AllocateFile( + name: *const ::std::os::raw::c_char, + mode: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeFile(file: *mut FILE) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpenPipeStream( + command: *const ::std::os::raw::c_char, + mode: *const ::std::os::raw::c_char, + ) -> *mut FILE; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ClosePipeStream(file: *mut FILE) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AllocateDir(dirname: *const ::std::os::raw::c_char) -> *mut DIR; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReadDir(dir: *mut DIR, dirname: *const ::std::os::raw::c_char) -> *mut dirent; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReadDirExtended( + dir: *mut DIR, + dirname: *const ::std::os::raw::c_char, + elevel: ::std::os::raw::c_int, + ) -> *mut dirent; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeDir(dir: *mut DIR) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpenTransientFile( + fileName: *const ::std::os::raw::c_char, + fileFlags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpenTransientFilePerm( + fileName: *const ::std::os::raw::c_char, + fileFlags: ::std::os::raw::c_int, + fileMode: mode_t, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CloseTransientFile(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BasicOpenFile( + fileName: *const ::std::os::raw::c_char, + fileFlags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BasicOpenFilePerm( + fileName: *const ::std::os::raw::c_char, + fileFlags: ::std::os::raw::c_int, + fileMode: mode_t, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AcquireExternalFD() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReserveExternalFD(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseExternalFD(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MakePGDirectory(directoryName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitFileAccess(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitTemporaryFileAccess(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_max_safe_fds(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn closeAllVfds(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetTempTablespaces(tableSpaces: *mut Oid, numSpaces: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TempTablespacesAreSet() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTempTablespaces( + tableSpaces: *mut Oid, + numSpaces: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetNextTempTableSpace() -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_Files(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOSubXact_Files( + isCommit: bool, + mySubid: SubTransactionId, + parentSubid: SubTransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemovePgTempFiles(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemovePgTempFilesInDir( + tmpdirname: *const ::std::os::raw::c_char, + missing_ok: bool, + unlink_all: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn looks_like_temp_rel_name(name: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_fsync(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_fsync_no_writethrough(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_fsync_writethrough(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_fdatasync(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_flush_data(fd: ::std::os::raw::c_int, offset: off_t, nbytes: off_t); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_truncate(path: *const ::std::os::raw::c_char, length: off_t) + -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fsync_fname(fname: *const ::std::os::raw::c_char, isdir: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fsync_fname_ext( + fname: *const ::std::os::raw::c_char, + isdir: bool, + ignore_perm: bool, + elevel: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn durable_rename( + oldfile: *const ::std::os::raw::c_char, + newfile: *const ::std::os::raw::c_char, + elevel: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn durable_unlink( + fname: *const ::std::os::raw::c_char, + elevel: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SyncDataDirectory(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn data_sync_elevel(elevel: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FileSet { + pub creator_pid: pid_t, + pub number: uint32, + pub ntablespaces: ::std::os::raw::c_int, + pub tablespaces: [Oid; 8usize], +} +impl Default for FileSet { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileSetInit(fileset: *mut FileSet); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileSetCreate(fileset: *mut FileSet, name: *const ::std::os::raw::c_char) -> File; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileSetOpen( + fileset: *mut FileSet, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + ) -> File; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileSetDelete( + fileset: *mut FileSet, + name: *const ::std::os::raw::c_char, + error_on_failure: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FileSetDeleteAll(fileset: *mut FileSet); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedFileSet { + pub fs: FileSet, + pub mutex: slock_t, + pub refcnt: ::std::os::raw::c_int, +} +impl Default for SharedFileSet { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SharedFileSetInit(fileset: *mut SharedFileSet, seg: *mut dsm_segment); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SharedFileSetAttach(fileset: *mut SharedFileSet, seg: *mut dsm_segment); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SharedFileSetDeleteAll(fileset: *mut SharedFileSet); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedTuplestore { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedTuplestoreAccessor { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sts_estimate(participants: ::std::os::raw::c_int) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sts_initialize( + sts: *mut SharedTuplestore, + participants: ::std::os::raw::c_int, + my_participant_number: ::std::os::raw::c_int, + meta_data_size: usize, + flags: ::std::os::raw::c_int, + fileset: *mut SharedFileSet, + name: *const ::std::os::raw::c_char, + ) -> *mut SharedTuplestoreAccessor; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sts_attach( + sts: *mut SharedTuplestore, + my_participant_number: ::std::os::raw::c_int, + fileset: *mut SharedFileSet, + ) -> *mut SharedTuplestoreAccessor; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sts_end_write(accessor: *mut SharedTuplestoreAccessor); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sts_reinitialize(accessor: *mut SharedTuplestoreAccessor); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sts_begin_parallel_scan(accessor: *mut SharedTuplestoreAccessor); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sts_end_parallel_scan(accessor: *mut SharedTuplestoreAccessor); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sts_puttuple( + accessor: *mut SharedTuplestoreAccessor, + meta_data: *mut ::std::os::raw::c_void, + tuple: MinimalTuple, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sts_parallel_scan_next( + accessor: *mut SharedTuplestoreAccessor, + meta_data: *mut ::std::os::raw::c_void, + ) -> MinimalTuple; +} +pub type Timestamp = int64; +pub type TimestampTz = int64; +pub type TimeOffset = int64; +pub type fsec_t = int32; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct Interval { + pub time: TimeOffset, + pub day: int32, + pub month: int32, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct pg_itm { + pub tm_usec: ::std::os::raw::c_int, + pub tm_sec: ::std::os::raw::c_int, + pub tm_min: ::std::os::raw::c_int, + pub tm_hour: int64, + pub tm_mday: ::std::os::raw::c_int, + pub tm_mon: ::std::os::raw::c_int, + pub tm_year: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct pg_itm_in { + pub tm_usec: int64, + pub tm_mday: ::std::os::raw::c_int, + pub tm_mon: ::std::os::raw::c_int, + pub tm_year: ::std::os::raw::c_int, +} +pub const SnapshotType_SNAPSHOT_MVCC: SnapshotType = 0; +pub const SnapshotType_SNAPSHOT_SELF: SnapshotType = 1; +pub const SnapshotType_SNAPSHOT_ANY: SnapshotType = 2; +pub const SnapshotType_SNAPSHOT_TOAST: SnapshotType = 3; +pub const SnapshotType_SNAPSHOT_DIRTY: SnapshotType = 4; +pub const SnapshotType_SNAPSHOT_HISTORIC_MVCC: SnapshotType = 5; +pub const SnapshotType_SNAPSHOT_NON_VACUUMABLE: SnapshotType = 6; +pub type SnapshotType = ::std::os::raw::c_uint; +pub type Snapshot = *mut SnapshotData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SnapshotData { + pub snapshot_type: SnapshotType, + pub xmin: TransactionId, + pub xmax: TransactionId, + pub xip: *mut TransactionId, + pub xcnt: uint32, + pub subxip: *mut TransactionId, + pub subxcnt: int32, + pub suboverflowed: bool, + pub takenDuringRecovery: bool, + pub copied: bool, + pub curcid: CommandId, + pub speculativeToken: uint32, + pub vistest: *mut GlobalVisState, + pub active_count: uint32, + pub regd_count: uint32, + pub ph_node: pairingheap_node, + pub whenTaken: TimestampTz, + pub lsn: XLogRecPtr, + pub snapXactCompletionCount: uint64, +} +impl Default for SnapshotData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Relation = *mut RelationData; +pub type RelationPtr = *mut Relation; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationIdGetRelation(relationId: Oid) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationClose(relation: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetFKeyList(relation: Relation) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetIndexList(relation: Relation) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetStatExtList(relation: Relation) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetPrimaryKeyIndex(relation: Relation) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetReplicaIndex(relation: Relation) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetIndexExpressions(relation: Relation) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetDummyIndexExpressions(relation: Relation) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetIndexPredicate(relation: Relation) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetIndexRawAttOptions(indexrel: Relation) -> *mut Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetIndexAttOptions(relation: Relation, copy: bool) -> *mut *mut bytea; +} +pub const IndexAttrBitmapKind_INDEX_ATTR_BITMAP_KEY: IndexAttrBitmapKind = 0; +pub const IndexAttrBitmapKind_INDEX_ATTR_BITMAP_PRIMARY_KEY: IndexAttrBitmapKind = 1; +pub const IndexAttrBitmapKind_INDEX_ATTR_BITMAP_IDENTITY_KEY: IndexAttrBitmapKind = 2; +pub const IndexAttrBitmapKind_INDEX_ATTR_BITMAP_HOT_BLOCKING: IndexAttrBitmapKind = 3; +pub const IndexAttrBitmapKind_INDEX_ATTR_BITMAP_SUMMARIZED: IndexAttrBitmapKind = 4; +pub type IndexAttrBitmapKind = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetIndexAttrBitmap( + relation: Relation, + attrKind: IndexAttrBitmapKind, + ) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetIdentityKeyBitmap(relation: Relation) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetExclusionInfo( + indexRelation: Relation, + operators: *mut *mut Oid, + procs: *mut *mut Oid, + strategies: *mut *mut uint16, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationInitIndexAccessInfo(relation: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationBuildPublicationDesc(relation: Relation, pubdesc: *mut PublicationDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationInitTableAccessMethod(relation: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errtable(rel: Relation) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errtablecol(rel: Relation, attnum: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errtablecolname( + rel: Relation, + colname: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errtableconstraint( + rel: Relation, + conname: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationCacheInitialize(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationCacheInitializePhase2(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationCacheInitializePhase3(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationBuildLocalRelation( + relname: *const ::std::os::raw::c_char, + relnamespace: Oid, + tupDesc: TupleDesc, + relid: Oid, + accessmtd: Oid, + relfilenumber: RelFileNumber, + reltablespace: Oid, + shared_relation: bool, + mapped_relation: bool, + relpersistence: ::std::os::raw::c_char, + relkind: ::std::os::raw::c_char, + ) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationSetNewRelfilenumber(relation: Relation, persistence: ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationAssumeNewRelfilelocator(relation: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationForgetRelation(rid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationCacheInvalidateEntry(relationId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationCacheInvalidate(debug_discard: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationCloseSmgrByOid(relationId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AssertPendingSyncs_RelationCache(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_RelationCache(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOSubXact_RelationCache( + isCommit: bool, + mySubid: SubTransactionId, + parentSubid: SubTransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationIdIsInInitFile(relationId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationCacheInitFilePreInvalidate(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationCacheInitFilePostInvalidate(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationCacheInitFileRemove(); +} +extern "C" { + pub static mut criticalRelcachesBuilt: bool; +} +extern "C" { + pub static mut criticalSharedRelcachesBuilt: bool; +} +pub type SortSupport = *mut SortSupportData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SortSupportData { + pub ssup_cxt: MemoryContext, + pub ssup_collation: Oid, + pub ssup_reverse: bool, + pub ssup_nulls_first: bool, + pub ssup_attno: AttrNumber, + pub ssup_extra: *mut ::std::os::raw::c_void, + pub comparator: ::std::option::Option< + unsafe extern "C" fn(x: Datum, y: Datum, ssup: SortSupport) -> ::std::os::raw::c_int, + >, + pub abbreviate: bool, + pub abbrev_converter: + ::std::option::Option Datum>, + pub abbrev_abort: ::std::option::Option< + unsafe extern "C" fn(memtupcount: ::std::os::raw::c_int, ssup: SortSupport) -> bool, + >, + pub abbrev_full_comparator: ::std::option::Option< + unsafe extern "C" fn(x: Datum, y: Datum, ssup: SortSupport) -> ::std::os::raw::c_int, + >, +} +impl Default for SortSupportData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ssup_datum_unsigned_cmp(x: Datum, y: Datum, ssup: SortSupport) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ssup_datum_signed_cmp(x: Datum, y: Datum, ssup: SortSupport) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ssup_datum_int32_cmp(x: Datum, y: Datum, ssup: SortSupport) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrepareSortSupportComparisonShim(cmpFunc: Oid, ssup: SortSupport); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrepareSortSupportFromOrderingOp(orderingOp: Oid, ssup: SortSupport); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrepareSortSupportFromIndexRel(indexRel: Relation, strategy: int16, ssup: SortSupport); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrepareSortSupportFromGistIndexRel(indexRel: Relation, ssup: SortSupport); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct IndexTupleData { + pub t_tid: ItemPointerData, + pub t_info: ::std::os::raw::c_ushort, +} +pub type IndexTuple = *mut IndexTupleData; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct IndexAttributeBitMapData { + pub bits: [bits8; 4usize], +} +pub type IndexAttributeBitMap = *mut IndexAttributeBitMapData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_form_tuple( + tupleDescriptor: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + ) -> IndexTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_form_tuple_context( + tupleDescriptor: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + context: MemoryContext, + ) -> IndexTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nocache_index_getattr( + tup: IndexTuple, + attnum: ::std::os::raw::c_int, + tupleDesc: TupleDesc, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_deform_tuple( + tup: IndexTuple, + tupleDescriptor: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_deform_tuple_internal( + tupleDescriptor: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + tp: *mut ::std::os::raw::c_char, + bp: *mut bits8, + hasnulls: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CopyIndexTuple(source: IndexTuple) -> IndexTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_truncate_tuple( + sourceDescriptor: TupleDesc, + source: IndexTuple, + leavenatts: ::std::os::raw::c_int, + ) -> IndexTuple; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LogicalTapeSet { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LogicalTape { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TapeShare { + pub firstblocknumber: ::std::os::raw::c_long, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeSetCreate( + preallocate: bool, + fileset: *mut SharedFileSet, + worker: ::std::os::raw::c_int, + ) -> *mut LogicalTapeSet; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeClose(lt: *mut LogicalTape); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeSetClose(lts: *mut LogicalTapeSet); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeCreate(lts: *mut LogicalTapeSet) -> *mut LogicalTape; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeImport( + lts: *mut LogicalTapeSet, + worker: ::std::os::raw::c_int, + shared: *mut TapeShare, + ) -> *mut LogicalTape; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeSetForgetFreeSpace(lts: *mut LogicalTapeSet); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeRead( + lt: *mut LogicalTape, + ptr: *mut ::std::os::raw::c_void, + size: usize, + ) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeWrite(lt: *mut LogicalTape, ptr: *const ::std::os::raw::c_void, size: usize); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeRewindForRead(lt: *mut LogicalTape, buffer_size: usize); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeFreeze(lt: *mut LogicalTape, share: *mut TapeShare); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeBackspace(lt: *mut LogicalTape, size: usize) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeSeek( + lt: *mut LogicalTape, + blocknum: ::std::os::raw::c_long, + offset: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeTell( + lt: *mut LogicalTape, + blocknum: *mut ::std::os::raw::c_long, + offset: *mut ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalTapeSetBlocks(lts: *mut LogicalTapeSet) -> ::std::os::raw::c_long; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Tuplesortstate { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Sharedsort { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SortCoordinateData { + pub isWorker: bool, + pub nParticipants: ::std::os::raw::c_int, + pub sharedsort: *mut Sharedsort, +} +impl Default for SortCoordinateData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type SortCoordinate = *mut SortCoordinateData; +pub const TuplesortMethod_SORT_TYPE_STILL_IN_PROGRESS: TuplesortMethod = 0; +pub const TuplesortMethod_SORT_TYPE_TOP_N_HEAPSORT: TuplesortMethod = 1; +pub const TuplesortMethod_SORT_TYPE_QUICKSORT: TuplesortMethod = 2; +pub const TuplesortMethod_SORT_TYPE_EXTERNAL_SORT: TuplesortMethod = 4; +pub const TuplesortMethod_SORT_TYPE_EXTERNAL_MERGE: TuplesortMethod = 8; +pub type TuplesortMethod = ::std::os::raw::c_uint; +pub const TuplesortSpaceType_SORT_SPACE_TYPE_DISK: TuplesortSpaceType = 0; +pub const TuplesortSpaceType_SORT_SPACE_TYPE_MEMORY: TuplesortSpaceType = 1; +pub type TuplesortSpaceType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TuplesortInstrumentation { + pub sortMethod: TuplesortMethod, + pub spaceType: TuplesortSpaceType, + pub spaceUsed: int64, +} +impl Default for TuplesortInstrumentation { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SortTuple { + pub tuple: *mut ::std::os::raw::c_void, + pub datum1: Datum, + pub isnull1: bool, + pub srctape: ::std::os::raw::c_int, +} +impl Default for SortTuple { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type SortTupleComparator = ::std::option::Option< + unsafe extern "C" fn( + a: *const SortTuple, + b: *const SortTuple, + state: *mut Tuplesortstate, + ) -> ::std::os::raw::c_int, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TuplesortPublic { + pub comparetup: SortTupleComparator, + pub removeabbrev: ::std::option::Option< + unsafe extern "C" fn( + state: *mut Tuplesortstate, + stups: *mut SortTuple, + count: ::std::os::raw::c_int, + ), + >, + pub writetup: ::std::option::Option< + unsafe extern "C" fn( + state: *mut Tuplesortstate, + tape: *mut LogicalTape, + stup: *mut SortTuple, + ), + >, + pub readtup: ::std::option::Option< + unsafe extern "C" fn( + state: *mut Tuplesortstate, + stup: *mut SortTuple, + tape: *mut LogicalTape, + len: ::std::os::raw::c_uint, + ), + >, + pub freestate: ::std::option::Option, + pub maincontext: MemoryContext, + pub sortcontext: MemoryContext, + pub tuplecontext: MemoryContext, + pub haveDatum1: bool, + pub nKeys: ::std::os::raw::c_int, + pub sortKeys: SortSupport, + pub onlyKey: SortSupport, + pub sortopt: ::std::os::raw::c_int, + pub tuples: bool, + pub arg: *mut ::std::os::raw::c_void, +} +impl Default for TuplesortPublic { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_begin_common( + workMem: ::std::os::raw::c_int, + coordinate: SortCoordinate, + sortopt: ::std::os::raw::c_int, + ) -> *mut Tuplesortstate; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_set_bound(state: *mut Tuplesortstate, bound: int64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_used_bound(state: *mut Tuplesortstate) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_puttuple_common( + state: *mut Tuplesortstate, + tuple: *mut SortTuple, + useAbbrev: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_performsort(state: *mut Tuplesortstate); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_gettuple_common( + state: *mut Tuplesortstate, + forward: bool, + stup: *mut SortTuple, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_skiptuples(state: *mut Tuplesortstate, ntuples: int64, forward: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_end(state: *mut Tuplesortstate); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_reset(state: *mut Tuplesortstate); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_get_stats(state: *mut Tuplesortstate, stats: *mut TuplesortInstrumentation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_method_name(m: TuplesortMethod) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_space_type_name(t: TuplesortSpaceType) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_merge_order(allowedMem: int64) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_estimate_shared(nWorkers: ::std::os::raw::c_int) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_initialize_shared( + shared: *mut Sharedsort, + nWorkers: ::std::os::raw::c_int, + seg: *mut dsm_segment, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_attach_shared(shared: *mut Sharedsort, seg: *mut dsm_segment); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_rescan(state: *mut Tuplesortstate); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_markpos(state: *mut Tuplesortstate); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_restorepos(state: *mut Tuplesortstate); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_readtup_alloc( + state: *mut Tuplesortstate, + tuplen: Size, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_begin_heap( + tupDesc: TupleDesc, + nkeys: ::std::os::raw::c_int, + attNums: *mut AttrNumber, + sortOperators: *mut Oid, + sortCollations: *mut Oid, + nullsFirstFlags: *mut bool, + workMem: ::std::os::raw::c_int, + coordinate: SortCoordinate, + sortopt: ::std::os::raw::c_int, + ) -> *mut Tuplesortstate; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_begin_cluster( + tupDesc: TupleDesc, + indexRel: Relation, + heaprel: Relation, + workMem: ::std::os::raw::c_int, + coordinate: SortCoordinate, + sortopt: ::std::os::raw::c_int, + ) -> *mut Tuplesortstate; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_begin_index_btree( + heapRel: Relation, + indexRel: Relation, + enforceUnique: bool, + uniqueNullsNotDistinct: bool, + workMem: ::std::os::raw::c_int, + coordinate: SortCoordinate, + sortopt: ::std::os::raw::c_int, + ) -> *mut Tuplesortstate; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_begin_index_hash( + heapRel: Relation, + indexRel: Relation, + high_mask: uint32, + low_mask: uint32, + max_buckets: uint32, + workMem: ::std::os::raw::c_int, + coordinate: SortCoordinate, + sortopt: ::std::os::raw::c_int, + ) -> *mut Tuplesortstate; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_begin_index_gist( + heapRel: Relation, + indexRel: Relation, + workMem: ::std::os::raw::c_int, + coordinate: SortCoordinate, + sortopt: ::std::os::raw::c_int, + ) -> *mut Tuplesortstate; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_begin_datum( + datumType: Oid, + sortOperator: Oid, + sortCollation: Oid, + nullsFirstFlag: bool, + workMem: ::std::os::raw::c_int, + coordinate: SortCoordinate, + sortopt: ::std::os::raw::c_int, + ) -> *mut Tuplesortstate; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_puttupleslot(state: *mut Tuplesortstate, slot: *mut TupleTableSlot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_putheaptuple(state: *mut Tuplesortstate, tup: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_putindextuplevalues( + state: *mut Tuplesortstate, + rel: Relation, + self_: ItemPointer, + values: *mut Datum, + isnull: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_putdatum(state: *mut Tuplesortstate, val: Datum, isNull: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_gettupleslot( + state: *mut Tuplesortstate, + forward: bool, + copy: bool, + slot: *mut TupleTableSlot, + abbrev: *mut Datum, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_getheaptuple(state: *mut Tuplesortstate, forward: bool) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_getindextuple(state: *mut Tuplesortstate, forward: bool) -> IndexTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplesort_getdatum( + state: *mut Tuplesortstate, + forward: bool, + copy: bool, + val: *mut Datum, + isNull: *mut bool, + abbrev: *mut Datum, + ) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Tuplestorestate { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_begin_heap( + randomAccess: bool, + interXact: bool, + maxKBytes: ::std::os::raw::c_int, + ) -> *mut Tuplestorestate; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_set_eflags(state: *mut Tuplestorestate, eflags: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_puttupleslot(state: *mut Tuplestorestate, slot: *mut TupleTableSlot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_puttuple(state: *mut Tuplestorestate, tuple: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_putvalues( + state: *mut Tuplestorestate, + tdesc: TupleDesc, + values: *mut Datum, + isnull: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_alloc_read_pointer( + state: *mut Tuplestorestate, + eflags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_select_read_pointer(state: *mut Tuplestorestate, ptr: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_copy_read_pointer( + state: *mut Tuplestorestate, + srcptr: ::std::os::raw::c_int, + destptr: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_trim(state: *mut Tuplestorestate); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_in_memory(state: *mut Tuplestorestate) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_gettupleslot( + state: *mut Tuplestorestate, + forward: bool, + copy: bool, + slot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_advance(state: *mut Tuplestorestate, forward: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_skiptuples( + state: *mut Tuplestorestate, + ntuples: int64, + forward: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_tuple_count(state: *mut Tuplestorestate) -> int64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_ateof(state: *mut Tuplestorestate) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_rescan(state: *mut Tuplestorestate); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_clear(state: *mut Tuplestorestate); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplestore_end(state: *mut Tuplestorestate); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParallelHashJoinState { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExprEvalStep { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CopyMultiInsertBuffer { + _unused: [u8; 0], +} +pub type ExprStateEvalFunc = ::std::option::Option< + unsafe extern "C" fn( + expression: *mut ExprState, + econtext: *mut ExprContext, + isNull: *mut bool, + ) -> Datum, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExprState { + pub type_: NodeTag, + pub flags: uint8, + pub resnull: bool, + pub resvalue: Datum, + pub resultslot: *mut TupleTableSlot, + pub steps: *mut ExprEvalStep, + pub evalfunc: ExprStateEvalFunc, + pub expr: *mut Expr, + pub evalfunc_private: *mut ::std::os::raw::c_void, + pub steps_len: ::std::os::raw::c_int, + pub steps_alloc: ::std::os::raw::c_int, + pub parent: *mut PlanState, + pub ext_params: ParamListInfo, + pub innermost_caseval: *mut Datum, + pub innermost_casenull: *mut bool, + pub innermost_domainval: *mut Datum, + pub innermost_domainnull: *mut bool, +} +impl Default for ExprState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexInfo { + pub type_: NodeTag, + pub ii_NumIndexAttrs: ::std::os::raw::c_int, + pub ii_NumIndexKeyAttrs: ::std::os::raw::c_int, + pub ii_IndexAttrNumbers: [AttrNumber; 32usize], + pub ii_Expressions: *mut List, + pub ii_ExpressionsState: *mut List, + pub ii_Predicate: *mut List, + pub ii_PredicateState: *mut ExprState, + pub ii_ExclusionOps: *mut Oid, + pub ii_ExclusionProcs: *mut Oid, + pub ii_ExclusionStrats: *mut uint16, + pub ii_UniqueOps: *mut Oid, + pub ii_UniqueProcs: *mut Oid, + pub ii_UniqueStrats: *mut uint16, + pub ii_OpclassOptions: *mut Datum, + pub ii_Unique: bool, + pub ii_NullsNotDistinct: bool, + pub ii_ReadyForInserts: bool, + pub ii_CheckedUnchanged: bool, + pub ii_IndexUnchanged: bool, + pub ii_Concurrent: bool, + pub ii_BrokenHotChain: bool, + pub ii_Summarizing: bool, + pub ii_ParallelWorkers: ::std::os::raw::c_int, + pub ii_Am: Oid, + pub ii_AmCache: *mut ::std::os::raw::c_void, + pub ii_Context: MemoryContext, +} +impl Default for IndexInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ExprContextCallbackFunction = ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExprContext_CB { + pub next: *mut ExprContext_CB, + pub function: ExprContextCallbackFunction, + pub arg: Datum, +} +impl Default for ExprContext_CB { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExprContext { + pub type_: NodeTag, + pub ecxt_scantuple: *mut TupleTableSlot, + pub ecxt_innertuple: *mut TupleTableSlot, + pub ecxt_outertuple: *mut TupleTableSlot, + pub ecxt_per_query_memory: MemoryContext, + pub ecxt_per_tuple_memory: MemoryContext, + pub ecxt_param_exec_vals: *mut ParamExecData, + pub ecxt_param_list_info: ParamListInfo, + pub ecxt_aggvalues: *mut Datum, + pub ecxt_aggnulls: *mut bool, + pub caseValue_datum: Datum, + pub caseValue_isNull: bool, + pub domainValue_datum: Datum, + pub domainValue_isNull: bool, + pub ecxt_estate: *mut EState, + pub ecxt_callbacks: *mut ExprContext_CB, +} +impl Default for ExprContext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ExprDoneCond_ExprSingleResult: ExprDoneCond = 0; +pub const ExprDoneCond_ExprMultipleResult: ExprDoneCond = 1; +pub const ExprDoneCond_ExprEndResult: ExprDoneCond = 2; +pub type ExprDoneCond = ::std::os::raw::c_uint; +pub const SetFunctionReturnMode_SFRM_ValuePerCall: SetFunctionReturnMode = 1; +pub const SetFunctionReturnMode_SFRM_Materialize: SetFunctionReturnMode = 2; +pub const SetFunctionReturnMode_SFRM_Materialize_Random: SetFunctionReturnMode = 4; +pub const SetFunctionReturnMode_SFRM_Materialize_Preferred: SetFunctionReturnMode = 8; +pub type SetFunctionReturnMode = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReturnSetInfo { + pub type_: NodeTag, + pub econtext: *mut ExprContext, + pub expectedDesc: TupleDesc, + pub allowedModes: ::std::os::raw::c_int, + pub returnMode: SetFunctionReturnMode, + pub isDone: ExprDoneCond, + pub setResult: *mut Tuplestorestate, + pub setDesc: TupleDesc, +} +impl Default for ReturnSetInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ProjectionInfo { + pub type_: NodeTag, + pub pi_state: ExprState, + pub pi_exprContext: *mut ExprContext, +} +impl Default for ProjectionInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JunkFilter { + pub type_: NodeTag, + pub jf_targetList: *mut List, + pub jf_cleanTupType: TupleDesc, + pub jf_cleanMap: *mut AttrNumber, + pub jf_resultSlot: *mut TupleTableSlot, +} +impl Default for JunkFilter { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct OnConflictSetState { + pub type_: NodeTag, + pub oc_Existing: *mut TupleTableSlot, + pub oc_ProjSlot: *mut TupleTableSlot, + pub oc_ProjInfo: *mut ProjectionInfo, + pub oc_WhereClause: *mut ExprState, +} +impl Default for OnConflictSetState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeActionState { + pub type_: NodeTag, + pub mas_action: *mut MergeAction, + pub mas_proj: *mut ProjectionInfo, + pub mas_whenqual: *mut ExprState, +} +impl Default for MergeActionState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ResultRelInfo { + pub type_: NodeTag, + pub ri_RangeTableIndex: Index, + pub ri_RelationDesc: Relation, + pub ri_NumIndices: ::std::os::raw::c_int, + pub ri_IndexRelationDescs: RelationPtr, + pub ri_IndexRelationInfo: *mut *mut IndexInfo, + pub ri_RowIdAttNo: AttrNumber, + pub ri_extraUpdatedCols: *mut Bitmapset, + pub ri_projectNew: *mut ProjectionInfo, + pub ri_newTupleSlot: *mut TupleTableSlot, + pub ri_oldTupleSlot: *mut TupleTableSlot, + pub ri_projectNewInfoValid: bool, + pub ri_TrigDesc: *mut TriggerDesc, + pub ri_TrigFunctions: *mut FmgrInfo, + pub ri_TrigWhenExprs: *mut *mut ExprState, + pub ri_TrigInstrument: *mut Instrumentation, + pub ri_ReturningSlot: *mut TupleTableSlot, + pub ri_TrigOldSlot: *mut TupleTableSlot, + pub ri_TrigNewSlot: *mut TupleTableSlot, + pub ri_FdwRoutine: *mut FdwRoutine, + pub ri_FdwState: *mut ::std::os::raw::c_void, + pub ri_usesFdwDirectModify: bool, + pub ri_NumSlots: ::std::os::raw::c_int, + pub ri_NumSlotsInitialized: ::std::os::raw::c_int, + pub ri_BatchSize: ::std::os::raw::c_int, + pub ri_Slots: *mut *mut TupleTableSlot, + pub ri_PlanSlots: *mut *mut TupleTableSlot, + pub ri_WithCheckOptions: *mut List, + pub ri_WithCheckOptionExprs: *mut List, + pub ri_ConstraintExprs: *mut *mut ExprState, + pub ri_GeneratedExprsI: *mut *mut ExprState, + pub ri_GeneratedExprsU: *mut *mut ExprState, + pub ri_NumGeneratedNeededI: ::std::os::raw::c_int, + pub ri_NumGeneratedNeededU: ::std::os::raw::c_int, + pub ri_returningList: *mut List, + pub ri_projectReturning: *mut ProjectionInfo, + pub ri_onConflictArbiterIndexes: *mut List, + pub ri_onConflict: *mut OnConflictSetState, + pub ri_matchedMergeAction: *mut List, + pub ri_notMatchedMergeAction: *mut List, + pub ri_PartitionCheckExpr: *mut ExprState, + pub ri_ChildToRootMap: *mut TupleConversionMap, + pub ri_ChildToRootMapValid: bool, + pub ri_RootToChildMap: *mut TupleConversionMap, + pub ri_RootToChildMapValid: bool, + pub ri_RootResultRelInfo: *mut ResultRelInfo, + pub ri_PartitionTupleSlot: *mut TupleTableSlot, + pub ri_CopyMultiInsertBuffer: *mut CopyMultiInsertBuffer, + pub ri_ancestorResultRels: *mut List, +} +impl Default for ResultRelInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AsyncRequest { + pub requestor: *mut PlanState, + pub requestee: *mut PlanState, + pub request_index: ::std::os::raw::c_int, + pub callback_pending: bool, + pub request_complete: bool, + pub result: *mut TupleTableSlot, +} +impl Default for AsyncRequest { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct EState { + pub type_: NodeTag, + pub es_direction: ScanDirection, + pub es_snapshot: Snapshot, + pub es_crosscheck_snapshot: Snapshot, + pub es_range_table: *mut List, + pub es_range_table_size: Index, + pub es_relations: *mut Relation, + pub es_rowmarks: *mut *mut ExecRowMark, + pub es_rteperminfos: *mut List, + pub es_plannedstmt: *mut PlannedStmt, + pub es_sourceText: *const ::std::os::raw::c_char, + pub es_junkFilter: *mut JunkFilter, + pub es_output_cid: CommandId, + pub es_result_relations: *mut *mut ResultRelInfo, + pub es_opened_result_relations: *mut List, + pub es_partition_directory: PartitionDirectory, + pub es_tuple_routing_result_relations: *mut List, + pub es_trig_target_relations: *mut List, + pub es_param_list_info: ParamListInfo, + pub es_param_exec_vals: *mut ParamExecData, + pub es_queryEnv: *mut QueryEnvironment, + pub es_query_cxt: MemoryContext, + pub es_tupleTable: *mut List, + pub es_processed: uint64, + pub es_total_processed: uint64, + pub es_top_eflags: ::std::os::raw::c_int, + pub es_instrument: ::std::os::raw::c_int, + pub es_finished: bool, + pub es_exprcontexts: *mut List, + pub es_subplanstates: *mut List, + pub es_auxmodifytables: *mut List, + pub es_per_tuple_exprcontext: *mut ExprContext, + pub es_epq_active: *mut EPQState, + pub es_use_parallel_mode: bool, + pub es_query_dsa: *mut dsa_area, + pub es_jit_flags: ::std::os::raw::c_int, + pub es_jit: *mut JitContext, + pub es_jit_worker_instr: *mut JitInstrumentation, + pub es_insert_pending_result_relations: *mut List, + pub es_insert_pending_modifytables: *mut List, +} +impl Default for EState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExecRowMark { + pub relation: Relation, + pub relid: Oid, + pub rti: Index, + pub prti: Index, + pub rowmarkId: Index, + pub markType: RowMarkType, + pub strength: LockClauseStrength, + pub waitPolicy: LockWaitPolicy, + pub ermActive: bool, + pub curCtid: ItemPointerData, + pub ermExtra: *mut ::std::os::raw::c_void, +} +impl Default for ExecRowMark { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExecAuxRowMark { + pub rowmark: *mut ExecRowMark, + pub ctidAttNo: AttrNumber, + pub toidAttNo: AttrNumber, + pub wholeAttNo: AttrNumber, +} +impl Default for ExecAuxRowMark { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type TupleHashEntry = *mut TupleHashEntryData; +pub type TupleHashTable = *mut TupleHashTableData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TupleHashEntryData { + pub firstTuple: MinimalTuple, + pub additional: *mut ::std::os::raw::c_void, + pub status: uint32, + pub hash: uint32, +} +impl Default for TupleHashEntryData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static pg_leftmost_one_pos: [uint8; 256usize]; +} +extern "C" { + pub static pg_rightmost_one_pos: [uint8; 256usize]; +} +extern "C" { + pub static pg_number_of_ones: [uint8; 256usize]; +} +extern "C" { + pub static mut pg_popcount32: + ::std::option::Option ::std::os::raw::c_int>; +} +extern "C" { + pub static mut pg_popcount64: + ::std::option::Option ::std::os::raw::c_int>; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_popcount(buf: *const ::std::os::raw::c_char, bytes: ::std::os::raw::c_int) -> uint64; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tuplehash_hash { + pub size: uint64, + pub members: uint32, + pub sizemask: uint32, + pub grow_threshold: uint32, + pub data: *mut TupleHashEntryData, + pub ctx: MemoryContext, + pub private_data: *mut ::std::os::raw::c_void, +} +impl Default for tuplehash_hash { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const tuplehash_status_tuplehash_SH_EMPTY: tuplehash_status = 0; +pub const tuplehash_status_tuplehash_SH_IN_USE: tuplehash_status = 1; +pub type tuplehash_status = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct tuplehash_iterator { + pub cur: uint32, + pub end: uint32, + pub done: bool, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_create( + ctx: MemoryContext, + nelements: uint32, + private_data: *mut ::std::os::raw::c_void, + ) -> *mut tuplehash_hash; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_destroy(tb: *mut tuplehash_hash); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_reset(tb: *mut tuplehash_hash); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_grow(tb: *mut tuplehash_hash, newsize: uint64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_insert( + tb: *mut tuplehash_hash, + key: MinimalTuple, + found: *mut bool, + ) -> *mut TupleHashEntryData; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_insert_hash( + tb: *mut tuplehash_hash, + key: MinimalTuple, + hash: uint32, + found: *mut bool, + ) -> *mut TupleHashEntryData; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_lookup(tb: *mut tuplehash_hash, key: MinimalTuple) -> *mut TupleHashEntryData; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_lookup_hash( + tb: *mut tuplehash_hash, + key: MinimalTuple, + hash: uint32, + ) -> *mut TupleHashEntryData; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_delete_item(tb: *mut tuplehash_hash, entry: *mut TupleHashEntryData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_delete(tb: *mut tuplehash_hash, key: MinimalTuple) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_start_iterate(tb: *mut tuplehash_hash, iter: *mut tuplehash_iterator); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_start_iterate_at( + tb: *mut tuplehash_hash, + iter: *mut tuplehash_iterator, + at: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_iterate( + tb: *mut tuplehash_hash, + iter: *mut tuplehash_iterator, + ) -> *mut TupleHashEntryData; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tuplehash_stat(tb: *mut tuplehash_hash); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TupleHashTableData { + pub hashtab: *mut tuplehash_hash, + pub numCols: ::std::os::raw::c_int, + pub keyColIdx: *mut AttrNumber, + pub tab_hash_funcs: *mut FmgrInfo, + pub tab_eq_func: *mut ExprState, + pub tab_collations: *mut Oid, + pub tablecxt: MemoryContext, + pub tempcxt: MemoryContext, + pub entrysize: Size, + pub tableslot: *mut TupleTableSlot, + pub inputslot: *mut TupleTableSlot, + pub in_hash_funcs: *mut FmgrInfo, + pub cur_eq_func: *mut ExprState, + pub hash_iv: uint32, + pub exprcontext: *mut ExprContext, +} +impl Default for TupleHashTableData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type TupleHashIterator = tuplehash_iterator; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowFuncExprState { + pub type_: NodeTag, + pub wfunc: *mut WindowFunc, + pub args: *mut List, + pub aggfilter: *mut ExprState, + pub wfuncno: ::std::os::raw::c_int, +} +impl Default for WindowFuncExprState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SetExprState { + pub type_: NodeTag, + pub expr: *mut Expr, + pub args: *mut List, + pub elidedFuncState: *mut ExprState, + pub func: FmgrInfo, + pub funcResultStore: *mut Tuplestorestate, + pub funcResultSlot: *mut TupleTableSlot, + pub funcResultDesc: TupleDesc, + pub funcReturnsTuple: bool, + pub funcReturnsSet: bool, + pub setArgsValid: bool, + pub shutdown_reg: bool, + pub fcinfo: FunctionCallInfo, +} +impl Default for SetExprState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SubPlanState { + pub type_: NodeTag, + pub subplan: *mut SubPlan, + pub planstate: *mut PlanState, + pub parent: *mut PlanState, + pub testexpr: *mut ExprState, + pub args: *mut List, + pub curTuple: HeapTuple, + pub curArray: Datum, + pub descRight: TupleDesc, + pub projLeft: *mut ProjectionInfo, + pub projRight: *mut ProjectionInfo, + pub hashtable: TupleHashTable, + pub hashnulls: TupleHashTable, + pub havehashrows: bool, + pub havenullrows: bool, + pub hashtablecxt: MemoryContext, + pub hashtempcxt: MemoryContext, + pub innerecontext: *mut ExprContext, + pub numCols: ::std::os::raw::c_int, + pub keyColIdx: *mut AttrNumber, + pub tab_eq_funcoids: *mut Oid, + pub tab_collations: *mut Oid, + pub tab_hash_funcs: *mut FmgrInfo, + pub tab_eq_funcs: *mut FmgrInfo, + pub lhs_hash_funcs: *mut FmgrInfo, + pub cur_eq_funcs: *mut FmgrInfo, + pub cur_eq_comp: *mut ExprState, +} +impl Default for SubPlanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const DomainConstraintType_DOM_CONSTRAINT_NOTNULL: DomainConstraintType = 0; +pub const DomainConstraintType_DOM_CONSTRAINT_CHECK: DomainConstraintType = 1; +pub type DomainConstraintType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DomainConstraintState { + pub type_: NodeTag, + pub constrainttype: DomainConstraintType, + pub name: *mut ::std::os::raw::c_char, + pub check_expr: *mut Expr, + pub check_exprstate: *mut ExprState, +} +impl Default for DomainConstraintState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ExecProcNodeMtd = + ::std::option::Option *mut TupleTableSlot>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PlanState { + pub type_: NodeTag, + pub plan: *mut Plan, + pub state: *mut EState, + pub ExecProcNode: ExecProcNodeMtd, + pub ExecProcNodeReal: ExecProcNodeMtd, + pub instrument: *mut Instrumentation, + pub worker_instrument: *mut WorkerInstrumentation, + pub worker_jit_instrument: *mut SharedJitInstrumentation, + pub qual: *mut ExprState, + pub lefttree: *mut PlanState, + pub righttree: *mut PlanState, + pub initPlan: *mut List, + pub subPlan: *mut List, + pub chgParam: *mut Bitmapset, + pub ps_ResultTupleDesc: TupleDesc, + pub ps_ResultTupleSlot: *mut TupleTableSlot, + pub ps_ExprContext: *mut ExprContext, + pub ps_ProjInfo: *mut ProjectionInfo, + pub async_capable: bool, + pub scandesc: TupleDesc, + pub scanops: *const TupleTableSlotOps, + pub outerops: *const TupleTableSlotOps, + pub innerops: *const TupleTableSlotOps, + pub resultops: *const TupleTableSlotOps, + pub scanopsfixed: bool, + pub outeropsfixed: bool, + pub inneropsfixed: bool, + pub resultopsfixed: bool, + pub scanopsset: bool, + pub outeropsset: bool, + pub inneropsset: bool, + pub resultopsset: bool, +} +impl Default for PlanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct EPQState { + pub parentestate: *mut EState, + pub epqParam: ::std::os::raw::c_int, + pub resultRelations: *mut List, + pub tuple_table: *mut List, + pub relsubs_slot: *mut *mut TupleTableSlot, + pub plan: *mut Plan, + pub arowMarks: *mut List, + pub origslot: *mut TupleTableSlot, + pub recheckestate: *mut EState, + pub relsubs_rowmark: *mut *mut ExecAuxRowMark, + pub relsubs_done: *mut bool, + pub relsubs_blocked: *mut bool, + pub recheckplanstate: *mut PlanState, +} +impl Default for EPQState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ResultState { + pub ps: PlanState, + pub resconstantqual: *mut ExprState, + pub rs_done: bool, + pub rs_checkqual: bool, +} +impl Default for ResultState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ProjectSetState { + pub ps: PlanState, + pub elems: *mut *mut Node, + pub elemdone: *mut ExprDoneCond, + pub nelems: ::std::os::raw::c_int, + pub pending_srf_tuples: bool, + pub argcontext: MemoryContext, +} +impl Default for ProjectSetState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ModifyTableState { + pub ps: PlanState, + pub operation: CmdType, + pub canSetTag: bool, + pub mt_done: bool, + pub mt_nrels: ::std::os::raw::c_int, + pub resultRelInfo: *mut ResultRelInfo, + pub rootResultRelInfo: *mut ResultRelInfo, + pub mt_epqstate: EPQState, + pub fireBSTriggers: bool, + pub mt_resultOidAttno: ::std::os::raw::c_int, + pub mt_lastResultOid: Oid, + pub mt_lastResultIndex: ::std::os::raw::c_int, + pub mt_resultOidHash: *mut HTAB, + pub mt_root_tuple_slot: *mut TupleTableSlot, + pub mt_partition_tuple_routing: *mut PartitionTupleRouting, + pub mt_transition_capture: *mut TransitionCaptureState, + pub mt_oc_transition_capture: *mut TransitionCaptureState, + pub mt_merge_subcommands: ::std::os::raw::c_int, + pub mt_merge_inserted: f64, + pub mt_merge_updated: f64, + pub mt_merge_deleted: f64, +} +impl Default for ModifyTableState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParallelAppendState { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionPruneState { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AppendState { + pub ps: PlanState, + pub appendplans: *mut *mut PlanState, + pub as_nplans: ::std::os::raw::c_int, + pub as_whichplan: ::std::os::raw::c_int, + pub as_begun: bool, + pub as_asyncplans: *mut Bitmapset, + pub as_nasyncplans: ::std::os::raw::c_int, + pub as_asyncrequests: *mut *mut AsyncRequest, + pub as_asyncresults: *mut *mut TupleTableSlot, + pub as_nasyncresults: ::std::os::raw::c_int, + pub as_syncdone: bool, + pub as_nasyncremain: ::std::os::raw::c_int, + pub as_needrequest: *mut Bitmapset, + pub as_eventset: *mut WaitEventSet, + pub as_first_partial_plan: ::std::os::raw::c_int, + pub as_pstate: *mut ParallelAppendState, + pub pstate_len: Size, + pub as_prune_state: *mut PartitionPruneState, + pub as_valid_subplans_identified: bool, + pub as_valid_subplans: *mut Bitmapset, + pub as_valid_asyncplans: *mut Bitmapset, + pub choose_next_subplan: + ::std::option::Option bool>, +} +impl Default for AppendState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeAppendState { + pub ps: PlanState, + pub mergeplans: *mut *mut PlanState, + pub ms_nplans: ::std::os::raw::c_int, + pub ms_nkeys: ::std::os::raw::c_int, + pub ms_sortkeys: SortSupport, + pub ms_slots: *mut *mut TupleTableSlot, + pub ms_heap: *mut binaryheap, + pub ms_initialized: bool, + pub ms_prune_state: *mut PartitionPruneState, + pub ms_valid_subplans: *mut Bitmapset, +} +impl Default for MergeAppendState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RecursiveUnionState { + pub ps: PlanState, + pub recursing: bool, + pub intermediate_empty: bool, + pub working_table: *mut Tuplestorestate, + pub intermediate_table: *mut Tuplestorestate, + pub eqfuncoids: *mut Oid, + pub hashfunctions: *mut FmgrInfo, + pub tempContext: MemoryContext, + pub hashtable: TupleHashTable, + pub tableContext: MemoryContext, +} +impl Default for RecursiveUnionState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapAndState { + pub ps: PlanState, + pub bitmapplans: *mut *mut PlanState, + pub nplans: ::std::os::raw::c_int, +} +impl Default for BitmapAndState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapOrState { + pub ps: PlanState, + pub bitmapplans: *mut *mut PlanState, + pub nplans: ::std::os::raw::c_int, +} +impl Default for BitmapOrState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ScanState { + pub ps: PlanState, + pub ss_currentRelation: Relation, + pub ss_currentScanDesc: *mut TableScanDescData, + pub ss_ScanTupleSlot: *mut TupleTableSlot, +} +impl Default for ScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SeqScanState { + pub ss: ScanState, + pub pscan_len: Size, +} +impl Default for SeqScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SampleScanState { + pub ss: ScanState, + pub args: *mut List, + pub repeatable: *mut ExprState, + pub tsmroutine: *mut TsmRoutine, + pub tsm_state: *mut ::std::os::raw::c_void, + pub use_bulkread: bool, + pub use_pagemode: bool, + pub begun: bool, + pub seed: uint32, + pub donetuples: int64, + pub haveblock: bool, + pub done: bool, +} +impl Default for SampleScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexRuntimeKeyInfo { + pub scan_key: *mut ScanKeyData, + pub key_expr: *mut ExprState, + pub key_toastable: bool, +} +impl Default for IndexRuntimeKeyInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexArrayKeyInfo { + pub scan_key: *mut ScanKeyData, + pub array_expr: *mut ExprState, + pub next_elem: ::std::os::raw::c_int, + pub num_elems: ::std::os::raw::c_int, + pub elem_values: *mut Datum, + pub elem_nulls: *mut bool, +} +impl Default for IndexArrayKeyInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexScanState { + pub ss: ScanState, + pub indexqualorig: *mut ExprState, + pub indexorderbyorig: *mut List, + pub iss_ScanKeys: *mut ScanKeyData, + pub iss_NumScanKeys: ::std::os::raw::c_int, + pub iss_OrderByKeys: *mut ScanKeyData, + pub iss_NumOrderByKeys: ::std::os::raw::c_int, + pub iss_RuntimeKeys: *mut IndexRuntimeKeyInfo, + pub iss_NumRuntimeKeys: ::std::os::raw::c_int, + pub iss_RuntimeKeysReady: bool, + pub iss_RuntimeContext: *mut ExprContext, + pub iss_RelationDesc: Relation, + pub iss_ScanDesc: *mut IndexScanDescData, + pub iss_ReorderQueue: *mut pairingheap, + pub iss_ReachedEnd: bool, + pub iss_OrderByValues: *mut Datum, + pub iss_OrderByNulls: *mut bool, + pub iss_SortSupport: SortSupport, + pub iss_OrderByTypByVals: *mut bool, + pub iss_OrderByTypLens: *mut int16, + pub iss_PscanLen: Size, +} +impl Default for IndexScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexOnlyScanState { + pub ss: ScanState, + pub recheckqual: *mut ExprState, + pub ioss_ScanKeys: *mut ScanKeyData, + pub ioss_NumScanKeys: ::std::os::raw::c_int, + pub ioss_OrderByKeys: *mut ScanKeyData, + pub ioss_NumOrderByKeys: ::std::os::raw::c_int, + pub ioss_RuntimeKeys: *mut IndexRuntimeKeyInfo, + pub ioss_NumRuntimeKeys: ::std::os::raw::c_int, + pub ioss_RuntimeKeysReady: bool, + pub ioss_RuntimeContext: *mut ExprContext, + pub ioss_RelationDesc: Relation, + pub ioss_ScanDesc: *mut IndexScanDescData, + pub ioss_TableSlot: *mut TupleTableSlot, + pub ioss_VMBuffer: Buffer, + pub ioss_PscanLen: Size, +} +impl Default for IndexOnlyScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapIndexScanState { + pub ss: ScanState, + pub biss_result: *mut TIDBitmap, + pub biss_ScanKeys: *mut ScanKeyData, + pub biss_NumScanKeys: ::std::os::raw::c_int, + pub biss_RuntimeKeys: *mut IndexRuntimeKeyInfo, + pub biss_NumRuntimeKeys: ::std::os::raw::c_int, + pub biss_ArrayKeys: *mut IndexArrayKeyInfo, + pub biss_NumArrayKeys: ::std::os::raw::c_int, + pub biss_RuntimeKeysReady: bool, + pub biss_RuntimeContext: *mut ExprContext, + pub biss_RelationDesc: Relation, + pub biss_ScanDesc: *mut IndexScanDescData, +} +impl Default for BitmapIndexScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const SharedBitmapState_BM_INITIAL: SharedBitmapState = 0; +pub const SharedBitmapState_BM_INPROGRESS: SharedBitmapState = 1; +pub const SharedBitmapState_BM_FINISHED: SharedBitmapState = 2; +pub type SharedBitmapState = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug)] +pub struct ParallelBitmapHeapState { + pub tbmiterator: dsa_pointer, + pub prefetch_iterator: dsa_pointer, + pub mutex: slock_t, + pub prefetch_pages: ::std::os::raw::c_int, + pub prefetch_target: ::std::os::raw::c_int, + pub state: SharedBitmapState, + pub cv: ConditionVariable, + pub phs_snapshot_data: __IncompleteArrayField<::std::os::raw::c_char>, +} +impl Default for ParallelBitmapHeapState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapHeapScanState { + pub ss: ScanState, + pub bitmapqualorig: *mut ExprState, + pub tbm: *mut TIDBitmap, + pub tbmiterator: *mut TBMIterator, + pub tbmres: *mut TBMIterateResult, + pub can_skip_fetch: bool, + pub return_empty_tuples: ::std::os::raw::c_int, + pub vmbuffer: Buffer, + pub pvmbuffer: Buffer, + pub exact_pages: ::std::os::raw::c_long, + pub lossy_pages: ::std::os::raw::c_long, + pub prefetch_iterator: *mut TBMIterator, + pub prefetch_pages: ::std::os::raw::c_int, + pub prefetch_target: ::std::os::raw::c_int, + pub prefetch_maximum: ::std::os::raw::c_int, + pub pscan_len: Size, + pub initialized: bool, + pub shared_tbmiterator: *mut TBMSharedIterator, + pub shared_prefetch_iterator: *mut TBMSharedIterator, + pub pstate: *mut ParallelBitmapHeapState, +} +impl Default for BitmapHeapScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TidScanState { + pub ss: ScanState, + pub tss_tidexprs: *mut List, + pub tss_isCurrentOf: bool, + pub tss_NumTids: ::std::os::raw::c_int, + pub tss_TidPtr: ::std::os::raw::c_int, + pub tss_TidList: *mut ItemPointerData, + pub tss_htup: HeapTupleData, +} +impl Default for TidScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TidRangeScanState { + pub ss: ScanState, + pub trss_tidexprs: *mut List, + pub trss_mintid: ItemPointerData, + pub trss_maxtid: ItemPointerData, + pub trss_inScan: bool, +} +impl Default for TidRangeScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SubqueryScanState { + pub ss: ScanState, + pub subplan: *mut PlanState, +} +impl Default for SubqueryScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FunctionScanPerFuncState { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FunctionScanState { + pub ss: ScanState, + pub eflags: ::std::os::raw::c_int, + pub ordinality: bool, + pub simple: bool, + pub ordinal: int64, + pub nfuncs: ::std::os::raw::c_int, + pub funcstates: *mut FunctionScanPerFuncState, + pub argcontext: MemoryContext, +} +impl Default for FunctionScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ValuesScanState { + pub ss: ScanState, + pub rowcontext: *mut ExprContext, + pub exprlists: *mut *mut List, + pub exprstatelists: *mut *mut List, + pub array_len: ::std::os::raw::c_int, + pub curr_idx: ::std::os::raw::c_int, +} +impl Default for ValuesScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TableFuncScanState { + pub ss: ScanState, + pub docexpr: *mut ExprState, + pub rowexpr: *mut ExprState, + pub colexprs: *mut List, + pub coldefexprs: *mut List, + pub ns_names: *mut List, + pub ns_uris: *mut List, + pub notnulls: *mut Bitmapset, + pub opaque: *mut ::std::os::raw::c_void, + pub routine: *mut TableFuncRoutine, + pub in_functions: *mut FmgrInfo, + pub typioparams: *mut Oid, + pub ordinal: int64, + pub perTableCxt: MemoryContext, + pub tupstore: *mut Tuplestorestate, +} +impl Default for TableFuncScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CteScanState { + pub ss: ScanState, + pub eflags: ::std::os::raw::c_int, + pub readptr: ::std::os::raw::c_int, + pub cteplanstate: *mut PlanState, + pub leader: *mut CteScanState, + pub cte_table: *mut Tuplestorestate, + pub eof_cte: bool, +} +impl Default for CteScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NamedTuplestoreScanState { + pub ss: ScanState, + pub readptr: ::std::os::raw::c_int, + pub tupdesc: TupleDesc, + pub relation: *mut Tuplestorestate, +} +impl Default for NamedTuplestoreScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WorkTableScanState { + pub ss: ScanState, + pub rustate: *mut RecursiveUnionState, +} +impl Default for WorkTableScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForeignScanState { + pub ss: ScanState, + pub fdw_recheck_quals: *mut ExprState, + pub pscan_len: Size, + pub resultRelInfo: *mut ResultRelInfo, + pub fdwroutine: *mut FdwRoutine, + pub fdw_state: *mut ::std::os::raw::c_void, +} +impl Default for ForeignScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CustomScanState { + pub ss: ScanState, + pub flags: uint32, + pub custom_ps: *mut List, + pub pscan_len: Size, + pub methods: *const CustomExecMethods, + pub slotOps: *const TupleTableSlotOps, +} +impl Default for CustomScanState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JoinState { + pub ps: PlanState, + pub jointype: JoinType, + pub single_match: bool, + pub joinqual: *mut ExprState, +} +impl Default for JoinState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NestLoopState { + pub js: JoinState, + pub nl_NeedNewOuter: bool, + pub nl_MatchedOuter: bool, + pub nl_NullInnerTupleSlot: *mut TupleTableSlot, +} +impl Default for NestLoopState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeJoinClauseData { + _unused: [u8; 0], +} +pub type MergeJoinClause = *mut MergeJoinClauseData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeJoinState { + pub js: JoinState, + pub mj_NumClauses: ::std::os::raw::c_int, + pub mj_Clauses: MergeJoinClause, + pub mj_JoinState: ::std::os::raw::c_int, + pub mj_SkipMarkRestore: bool, + pub mj_ExtraMarks: bool, + pub mj_ConstFalseJoin: bool, + pub mj_FillOuter: bool, + pub mj_FillInner: bool, + pub mj_MatchedOuter: bool, + pub mj_MatchedInner: bool, + pub mj_OuterTupleSlot: *mut TupleTableSlot, + pub mj_InnerTupleSlot: *mut TupleTableSlot, + pub mj_MarkedTupleSlot: *mut TupleTableSlot, + pub mj_NullOuterTupleSlot: *mut TupleTableSlot, + pub mj_NullInnerTupleSlot: *mut TupleTableSlot, + pub mj_OuterEContext: *mut ExprContext, + pub mj_InnerEContext: *mut ExprContext, +} +impl Default for MergeJoinState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HashJoinTupleData { + _unused: [u8; 0], +} +pub type HashJoinTuple = *mut HashJoinTupleData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HashJoinTableData { + _unused: [u8; 0], +} +pub type HashJoinTable = *mut HashJoinTableData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HashJoinState { + pub js: JoinState, + pub hashclauses: *mut ExprState, + pub hj_OuterHashKeys: *mut List, + pub hj_HashOperators: *mut List, + pub hj_Collations: *mut List, + pub hj_HashTable: HashJoinTable, + pub hj_CurHashValue: uint32, + pub hj_CurBucketNo: ::std::os::raw::c_int, + pub hj_CurSkewBucketNo: ::std::os::raw::c_int, + pub hj_CurTuple: HashJoinTuple, + pub hj_OuterTupleSlot: *mut TupleTableSlot, + pub hj_HashTupleSlot: *mut TupleTableSlot, + pub hj_NullOuterTupleSlot: *mut TupleTableSlot, + pub hj_NullInnerTupleSlot: *mut TupleTableSlot, + pub hj_FirstOuterTupleSlot: *mut TupleTableSlot, + pub hj_JoinState: ::std::os::raw::c_int, + pub hj_MatchedOuter: bool, + pub hj_OuterNotEmpty: bool, +} +impl Default for HashJoinState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MaterialState { + pub ss: ScanState, + pub eflags: ::std::os::raw::c_int, + pub eof_underlying: bool, + pub tuplestorestate: *mut Tuplestorestate, +} +impl Default for MaterialState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MemoizeEntry { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MemoizeTuple { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MemoizeKey { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct MemoizeInstrumentation { + pub cache_hits: uint64, + pub cache_misses: uint64, + pub cache_evictions: uint64, + pub cache_overflows: uint64, + pub mem_peak: uint64, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct SharedMemoizeInfo { + pub num_workers: ::std::os::raw::c_int, + pub sinstrument: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MemoizeState { + pub ss: ScanState, + pub mstatus: ::std::os::raw::c_int, + pub nkeys: ::std::os::raw::c_int, + pub hashtable: *mut memoize_hash, + pub hashkeydesc: TupleDesc, + pub tableslot: *mut TupleTableSlot, + pub probeslot: *mut TupleTableSlot, + pub cache_eq_expr: *mut ExprState, + pub param_exprs: *mut *mut ExprState, + pub hashfunctions: *mut FmgrInfo, + pub collations: *mut Oid, + pub mem_used: uint64, + pub mem_limit: uint64, + pub tableContext: MemoryContext, + pub lru_list: dlist_head, + pub last_tuple: *mut MemoizeTuple, + pub entry: *mut MemoizeEntry, + pub singlerow: bool, + pub binary_mode: bool, + pub stats: MemoizeInstrumentation, + pub shared_info: *mut SharedMemoizeInfo, + pub keyparamids: *mut Bitmapset, +} +impl Default for MemoizeState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PresortedKeyData { + pub flinfo: FmgrInfo, + pub fcinfo: FunctionCallInfo, + pub attno: OffsetNumber, +} +impl Default for PresortedKeyData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug)] +pub struct SharedSortInfo { + pub num_workers: ::std::os::raw::c_int, + pub sinstrument: __IncompleteArrayField, +} +impl Default for SharedSortInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SortState { + pub ss: ScanState, + pub randomAccess: bool, + pub bounded: bool, + pub bound: int64, + pub sort_Done: bool, + pub bounded_Done: bool, + pub bound_Done: int64, + pub tuplesortstate: *mut ::std::os::raw::c_void, + pub am_worker: bool, + pub datumSort: bool, + pub shared_info: *mut SharedSortInfo, +} +impl Default for SortState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct IncrementalSortGroupInfo { + pub groupCount: int64, + pub maxDiskSpaceUsed: int64, + pub totalDiskSpaceUsed: int64, + pub maxMemorySpaceUsed: int64, + pub totalMemorySpaceUsed: int64, + pub sortMethods: bits32, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct IncrementalSortInfo { + pub fullsortGroupInfo: IncrementalSortGroupInfo, + pub prefixsortGroupInfo: IncrementalSortGroupInfo, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct SharedIncrementalSortInfo { + pub num_workers: ::std::os::raw::c_int, + pub sinfo: __IncompleteArrayField, +} +pub const IncrementalSortExecutionStatus_INCSORT_LOADFULLSORT: IncrementalSortExecutionStatus = 0; +pub const IncrementalSortExecutionStatus_INCSORT_LOADPREFIXSORT: IncrementalSortExecutionStatus = 1; +pub const IncrementalSortExecutionStatus_INCSORT_READFULLSORT: IncrementalSortExecutionStatus = 2; +pub const IncrementalSortExecutionStatus_INCSORT_READPREFIXSORT: IncrementalSortExecutionStatus = 3; +pub type IncrementalSortExecutionStatus = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IncrementalSortState { + pub ss: ScanState, + pub bounded: bool, + pub bound: int64, + pub outerNodeDone: bool, + pub bound_Done: int64, + pub execution_status: IncrementalSortExecutionStatus, + pub n_fullsort_remaining: int64, + pub fullsort_state: *mut Tuplesortstate, + pub prefixsort_state: *mut Tuplesortstate, + pub presorted_keys: *mut PresortedKeyData, + pub incsort_info: IncrementalSortInfo, + pub group_pivot: *mut TupleTableSlot, + pub transfer_tuple: *mut TupleTableSlot, + pub am_worker: bool, + pub shared_info: *mut SharedIncrementalSortInfo, +} +impl Default for IncrementalSortState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GroupState { + pub ss: ScanState, + pub eqfunction: *mut ExprState, + pub grp_done: bool, +} +impl Default for GroupState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct AggregateInstrumentation { + pub hash_mem_peak: Size, + pub hash_disk_used: uint64, + pub hash_batches_used: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct SharedAggInfo { + pub num_workers: ::std::os::raw::c_int, + pub sinstrument: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AggStatePerAggData { + _unused: [u8; 0], +} +pub type AggStatePerAgg = *mut AggStatePerAggData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AggStatePerTransData { + _unused: [u8; 0], +} +pub type AggStatePerTrans = *mut AggStatePerTransData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AggStatePerGroupData { + _unused: [u8; 0], +} +pub type AggStatePerGroup = *mut AggStatePerGroupData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AggStatePerPhaseData { + _unused: [u8; 0], +} +pub type AggStatePerPhase = *mut AggStatePerPhaseData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AggStatePerHashData { + _unused: [u8; 0], +} +pub type AggStatePerHash = *mut AggStatePerHashData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AggState { + pub ss: ScanState, + pub aggs: *mut List, + pub numaggs: ::std::os::raw::c_int, + pub numtrans: ::std::os::raw::c_int, + pub aggstrategy: AggStrategy, + pub aggsplit: AggSplit, + pub phase: AggStatePerPhase, + pub numphases: ::std::os::raw::c_int, + pub current_phase: ::std::os::raw::c_int, + pub peragg: AggStatePerAgg, + pub pertrans: AggStatePerTrans, + pub hashcontext: *mut ExprContext, + pub aggcontexts: *mut *mut ExprContext, + pub tmpcontext: *mut ExprContext, + pub curaggcontext: *mut ExprContext, + pub curperagg: AggStatePerAgg, + pub curpertrans: AggStatePerTrans, + pub input_done: bool, + pub agg_done: bool, + pub projected_set: ::std::os::raw::c_int, + pub current_set: ::std::os::raw::c_int, + pub grouped_cols: *mut Bitmapset, + pub all_grouped_cols: *mut List, + pub colnos_needed: *mut Bitmapset, + pub max_colno_needed: ::std::os::raw::c_int, + pub all_cols_needed: bool, + pub maxsets: ::std::os::raw::c_int, + pub phases: AggStatePerPhase, + pub sort_in: *mut Tuplesortstate, + pub sort_out: *mut Tuplesortstate, + pub sort_slot: *mut TupleTableSlot, + pub pergroups: *mut AggStatePerGroup, + pub grp_firstTuple: HeapTuple, + pub table_filled: bool, + pub num_hashes: ::std::os::raw::c_int, + pub hash_metacxt: MemoryContext, + pub hash_tapeset: *mut LogicalTapeSet, + pub hash_spills: *mut HashAggSpill, + pub hash_spill_rslot: *mut TupleTableSlot, + pub hash_spill_wslot: *mut TupleTableSlot, + pub hash_batches: *mut List, + pub hash_ever_spilled: bool, + pub hash_spill_mode: bool, + pub hash_mem_limit: Size, + pub hash_ngroups_limit: uint64, + pub hash_planned_partitions: ::std::os::raw::c_int, + pub hashentrysize: f64, + pub hash_mem_peak: Size, + pub hash_ngroups_current: uint64, + pub hash_disk_used: uint64, + pub hash_batches_used: ::std::os::raw::c_int, + pub perhash: AggStatePerHash, + pub hash_pergroup: *mut AggStatePerGroup, + pub all_pergroups: *mut AggStatePerGroup, + pub combinedproj: *mut ProjectionInfo, + pub shared_info: *mut SharedAggInfo, +} +impl Default for AggState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowStatePerFuncData { + _unused: [u8; 0], +} +pub type WindowStatePerFunc = *mut WindowStatePerFuncData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowStatePerAggData { + _unused: [u8; 0], +} +pub type WindowStatePerAgg = *mut WindowStatePerAggData; +pub const WindowAggStatus_WINDOWAGG_DONE: WindowAggStatus = 0; +pub const WindowAggStatus_WINDOWAGG_RUN: WindowAggStatus = 1; +pub const WindowAggStatus_WINDOWAGG_PASSTHROUGH: WindowAggStatus = 2; +pub const WindowAggStatus_WINDOWAGG_PASSTHROUGH_STRICT: WindowAggStatus = 3; +pub type WindowAggStatus = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowAggState { + pub ss: ScanState, + pub funcs: *mut List, + pub numfuncs: ::std::os::raw::c_int, + pub numaggs: ::std::os::raw::c_int, + pub perfunc: WindowStatePerFunc, + pub peragg: WindowStatePerAgg, + pub partEqfunction: *mut ExprState, + pub ordEqfunction: *mut ExprState, + pub buffer: *mut Tuplestorestate, + pub current_ptr: ::std::os::raw::c_int, + pub framehead_ptr: ::std::os::raw::c_int, + pub frametail_ptr: ::std::os::raw::c_int, + pub grouptail_ptr: ::std::os::raw::c_int, + pub spooled_rows: int64, + pub currentpos: int64, + pub frameheadpos: int64, + pub frametailpos: int64, + pub agg_winobj: *mut WindowObjectData, + pub aggregatedbase: int64, + pub aggregatedupto: int64, + pub status: WindowAggStatus, + pub frameOptions: ::std::os::raw::c_int, + pub startOffset: *mut ExprState, + pub endOffset: *mut ExprState, + pub startOffsetValue: Datum, + pub endOffsetValue: Datum, + pub startInRangeFunc: FmgrInfo, + pub endInRangeFunc: FmgrInfo, + pub inRangeColl: Oid, + pub inRangeAsc: bool, + pub inRangeNullsFirst: bool, + pub currentgroup: int64, + pub frameheadgroup: int64, + pub frametailgroup: int64, + pub groupheadpos: int64, + pub grouptailpos: int64, + pub partcontext: MemoryContext, + pub aggcontext: MemoryContext, + pub curaggcontext: MemoryContext, + pub tmpcontext: *mut ExprContext, + pub runcondition: *mut ExprState, + pub use_pass_through: bool, + pub top_window: bool, + pub all_first: bool, + pub partition_spooled: bool, + pub more_partitions: bool, + pub framehead_valid: bool, + pub frametail_valid: bool, + pub grouptail_valid: bool, + pub first_part_slot: *mut TupleTableSlot, + pub framehead_slot: *mut TupleTableSlot, + pub frametail_slot: *mut TupleTableSlot, + pub agg_row_slot: *mut TupleTableSlot, + pub temp_slot_1: *mut TupleTableSlot, + pub temp_slot_2: *mut TupleTableSlot, +} +impl Default for WindowAggState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct UniqueState { + pub ps: PlanState, + pub eqfunction: *mut ExprState, +} +impl Default for UniqueState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GatherState { + pub ps: PlanState, + pub initialized: bool, + pub need_to_scan_locally: bool, + pub tuples_needed: int64, + pub funnel_slot: *mut TupleTableSlot, + pub pei: *mut ParallelExecutorInfo, + pub nworkers_launched: ::std::os::raw::c_int, + pub nreaders: ::std::os::raw::c_int, + pub nextreader: ::std::os::raw::c_int, + pub reader: *mut *mut TupleQueueReader, +} +impl Default for GatherState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GMReaderTupleBuffer { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GatherMergeState { + pub ps: PlanState, + pub initialized: bool, + pub gm_initialized: bool, + pub need_to_scan_locally: bool, + pub tuples_needed: int64, + pub tupDesc: TupleDesc, + pub gm_nkeys: ::std::os::raw::c_int, + pub gm_sortkeys: SortSupport, + pub pei: *mut ParallelExecutorInfo, + pub nworkers_launched: ::std::os::raw::c_int, + pub nreaders: ::std::os::raw::c_int, + pub gm_slots: *mut *mut TupleTableSlot, + pub reader: *mut *mut TupleQueueReader, + pub gm_tuple_buffers: *mut GMReaderTupleBuffer, + pub gm_heap: *mut binaryheap, +} +impl Default for GatherMergeState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct HashInstrumentation { + pub nbuckets: ::std::os::raw::c_int, + pub nbuckets_original: ::std::os::raw::c_int, + pub nbatch: ::std::os::raw::c_int, + pub nbatch_original: ::std::os::raw::c_int, + pub space_peak: Size, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct SharedHashInfo { + pub num_workers: ::std::os::raw::c_int, + pub hinstrument: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HashState { + pub ps: PlanState, + pub hashtable: HashJoinTable, + pub hashkeys: *mut List, + pub shared_info: *mut SharedHashInfo, + pub hinstrument: *mut HashInstrumentation, + pub parallel_state: *mut ParallelHashJoinState, +} +impl Default for HashState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SetOpStatePerGroupData { + _unused: [u8; 0], +} +pub type SetOpStatePerGroup = *mut SetOpStatePerGroupData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SetOpState { + pub ps: PlanState, + pub eqfunction: *mut ExprState, + pub eqfuncoids: *mut Oid, + pub hashfunctions: *mut FmgrInfo, + pub setop_done: bool, + pub numOutput: ::std::os::raw::c_long, + pub pergroup: SetOpStatePerGroup, + pub grp_firstTuple: HeapTuple, + pub hashtable: TupleHashTable, + pub tableContext: MemoryContext, + pub table_filled: bool, + pub hashiter: TupleHashIterator, +} +impl Default for SetOpState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LockRowsState { + pub ps: PlanState, + pub lr_arowMarks: *mut List, + pub lr_epqstate: EPQState, +} +impl Default for LockRowsState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const LimitStateCond_LIMIT_INITIAL: LimitStateCond = 0; +pub const LimitStateCond_LIMIT_RESCAN: LimitStateCond = 1; +pub const LimitStateCond_LIMIT_EMPTY: LimitStateCond = 2; +pub const LimitStateCond_LIMIT_INWINDOW: LimitStateCond = 3; +pub const LimitStateCond_LIMIT_WINDOWEND_TIES: LimitStateCond = 4; +pub const LimitStateCond_LIMIT_SUBPLANEOF: LimitStateCond = 5; +pub const LimitStateCond_LIMIT_WINDOWEND: LimitStateCond = 6; +pub const LimitStateCond_LIMIT_WINDOWSTART: LimitStateCond = 7; +pub type LimitStateCond = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LimitState { + pub ps: PlanState, + pub limitOffset: *mut ExprState, + pub limitCount: *mut ExprState, + pub limitOption: LimitOption, + pub offset: int64, + pub count: int64, + pub noCount: bool, + pub lstate: LimitStateCond, + pub position: int64, + pub subSlot: *mut TupleTableSlot, + pub eqfunction: *mut ExprState, + pub last_slot: *mut TupleTableSlot, +} +impl Default for LimitState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const CommandTag_CMDTAG_UNKNOWN: CommandTag = 0; +pub const CommandTag_CMDTAG_ALTER_ACCESS_METHOD: CommandTag = 1; +pub const CommandTag_CMDTAG_ALTER_AGGREGATE: CommandTag = 2; +pub const CommandTag_CMDTAG_ALTER_CAST: CommandTag = 3; +pub const CommandTag_CMDTAG_ALTER_COLLATION: CommandTag = 4; +pub const CommandTag_CMDTAG_ALTER_CONSTRAINT: CommandTag = 5; +pub const CommandTag_CMDTAG_ALTER_CONVERSION: CommandTag = 6; +pub const CommandTag_CMDTAG_ALTER_DATABASE: CommandTag = 7; +pub const CommandTag_CMDTAG_ALTER_DEFAULT_PRIVILEGES: CommandTag = 8; +pub const CommandTag_CMDTAG_ALTER_DOMAIN: CommandTag = 9; +pub const CommandTag_CMDTAG_ALTER_EVENT_TRIGGER: CommandTag = 10; +pub const CommandTag_CMDTAG_ALTER_EXTENSION: CommandTag = 11; +pub const CommandTag_CMDTAG_ALTER_FOREIGN_DATA_WRAPPER: CommandTag = 12; +pub const CommandTag_CMDTAG_ALTER_FOREIGN_TABLE: CommandTag = 13; +pub const CommandTag_CMDTAG_ALTER_FUNCTION: CommandTag = 14; +pub const CommandTag_CMDTAG_ALTER_INDEX: CommandTag = 15; +pub const CommandTag_CMDTAG_ALTER_LANGUAGE: CommandTag = 16; +pub const CommandTag_CMDTAG_ALTER_LARGE_OBJECT: CommandTag = 17; +pub const CommandTag_CMDTAG_ALTER_MATERIALIZED_VIEW: CommandTag = 18; +pub const CommandTag_CMDTAG_ALTER_OPERATOR: CommandTag = 19; +pub const CommandTag_CMDTAG_ALTER_OPERATOR_CLASS: CommandTag = 20; +pub const CommandTag_CMDTAG_ALTER_OPERATOR_FAMILY: CommandTag = 21; +pub const CommandTag_CMDTAG_ALTER_POLICY: CommandTag = 22; +pub const CommandTag_CMDTAG_ALTER_PROCEDURE: CommandTag = 23; +pub const CommandTag_CMDTAG_ALTER_PUBLICATION: CommandTag = 24; +pub const CommandTag_CMDTAG_ALTER_ROLE: CommandTag = 25; +pub const CommandTag_CMDTAG_ALTER_ROUTINE: CommandTag = 26; +pub const CommandTag_CMDTAG_ALTER_RULE: CommandTag = 27; +pub const CommandTag_CMDTAG_ALTER_SCHEMA: CommandTag = 28; +pub const CommandTag_CMDTAG_ALTER_SEQUENCE: CommandTag = 29; +pub const CommandTag_CMDTAG_ALTER_SERVER: CommandTag = 30; +pub const CommandTag_CMDTAG_ALTER_STATISTICS: CommandTag = 31; +pub const CommandTag_CMDTAG_ALTER_SUBSCRIPTION: CommandTag = 32; +pub const CommandTag_CMDTAG_ALTER_SYSTEM: CommandTag = 33; +pub const CommandTag_CMDTAG_ALTER_TABLE: CommandTag = 34; +pub const CommandTag_CMDTAG_ALTER_TABLESPACE: CommandTag = 35; +pub const CommandTag_CMDTAG_ALTER_TEXT_SEARCH_CONFIGURATION: CommandTag = 36; +pub const CommandTag_CMDTAG_ALTER_TEXT_SEARCH_DICTIONARY: CommandTag = 37; +pub const CommandTag_CMDTAG_ALTER_TEXT_SEARCH_PARSER: CommandTag = 38; +pub const CommandTag_CMDTAG_ALTER_TEXT_SEARCH_TEMPLATE: CommandTag = 39; +pub const CommandTag_CMDTAG_ALTER_TRANSFORM: CommandTag = 40; +pub const CommandTag_CMDTAG_ALTER_TRIGGER: CommandTag = 41; +pub const CommandTag_CMDTAG_ALTER_TYPE: CommandTag = 42; +pub const CommandTag_CMDTAG_ALTER_USER_MAPPING: CommandTag = 43; +pub const CommandTag_CMDTAG_ALTER_VIEW: CommandTag = 44; +pub const CommandTag_CMDTAG_ANALYZE: CommandTag = 45; +pub const CommandTag_CMDTAG_BEGIN: CommandTag = 46; +pub const CommandTag_CMDTAG_CALL: CommandTag = 47; +pub const CommandTag_CMDTAG_CHECKPOINT: CommandTag = 48; +pub const CommandTag_CMDTAG_CLOSE: CommandTag = 49; +pub const CommandTag_CMDTAG_CLOSE_CURSOR: CommandTag = 50; +pub const CommandTag_CMDTAG_CLOSE_CURSOR_ALL: CommandTag = 51; +pub const CommandTag_CMDTAG_CLUSTER: CommandTag = 52; +pub const CommandTag_CMDTAG_COMMENT: CommandTag = 53; +pub const CommandTag_CMDTAG_COMMIT: CommandTag = 54; +pub const CommandTag_CMDTAG_COMMIT_PREPARED: CommandTag = 55; +pub const CommandTag_CMDTAG_COPY: CommandTag = 56; +pub const CommandTag_CMDTAG_COPY_FROM: CommandTag = 57; +pub const CommandTag_CMDTAG_CREATE_ACCESS_METHOD: CommandTag = 58; +pub const CommandTag_CMDTAG_CREATE_AGGREGATE: CommandTag = 59; +pub const CommandTag_CMDTAG_CREATE_CAST: CommandTag = 60; +pub const CommandTag_CMDTAG_CREATE_COLLATION: CommandTag = 61; +pub const CommandTag_CMDTAG_CREATE_CONSTRAINT: CommandTag = 62; +pub const CommandTag_CMDTAG_CREATE_CONVERSION: CommandTag = 63; +pub const CommandTag_CMDTAG_CREATE_DATABASE: CommandTag = 64; +pub const CommandTag_CMDTAG_CREATE_DOMAIN: CommandTag = 65; +pub const CommandTag_CMDTAG_CREATE_EVENT_TRIGGER: CommandTag = 66; +pub const CommandTag_CMDTAG_CREATE_EXTENSION: CommandTag = 67; +pub const CommandTag_CMDTAG_CREATE_FOREIGN_DATA_WRAPPER: CommandTag = 68; +pub const CommandTag_CMDTAG_CREATE_FOREIGN_TABLE: CommandTag = 69; +pub const CommandTag_CMDTAG_CREATE_FUNCTION: CommandTag = 70; +pub const CommandTag_CMDTAG_CREATE_INDEX: CommandTag = 71; +pub const CommandTag_CMDTAG_CREATE_LANGUAGE: CommandTag = 72; +pub const CommandTag_CMDTAG_CREATE_MATERIALIZED_VIEW: CommandTag = 73; +pub const CommandTag_CMDTAG_CREATE_OPERATOR: CommandTag = 74; +pub const CommandTag_CMDTAG_CREATE_OPERATOR_CLASS: CommandTag = 75; +pub const CommandTag_CMDTAG_CREATE_OPERATOR_FAMILY: CommandTag = 76; +pub const CommandTag_CMDTAG_CREATE_POLICY: CommandTag = 77; +pub const CommandTag_CMDTAG_CREATE_PROCEDURE: CommandTag = 78; +pub const CommandTag_CMDTAG_CREATE_PUBLICATION: CommandTag = 79; +pub const CommandTag_CMDTAG_CREATE_ROLE: CommandTag = 80; +pub const CommandTag_CMDTAG_CREATE_ROUTINE: CommandTag = 81; +pub const CommandTag_CMDTAG_CREATE_RULE: CommandTag = 82; +pub const CommandTag_CMDTAG_CREATE_SCHEMA: CommandTag = 83; +pub const CommandTag_CMDTAG_CREATE_SEQUENCE: CommandTag = 84; +pub const CommandTag_CMDTAG_CREATE_SERVER: CommandTag = 85; +pub const CommandTag_CMDTAG_CREATE_STATISTICS: CommandTag = 86; +pub const CommandTag_CMDTAG_CREATE_SUBSCRIPTION: CommandTag = 87; +pub const CommandTag_CMDTAG_CREATE_TABLE: CommandTag = 88; +pub const CommandTag_CMDTAG_CREATE_TABLE_AS: CommandTag = 89; +pub const CommandTag_CMDTAG_CREATE_TABLESPACE: CommandTag = 90; +pub const CommandTag_CMDTAG_CREATE_TEXT_SEARCH_CONFIGURATION: CommandTag = 91; +pub const CommandTag_CMDTAG_CREATE_TEXT_SEARCH_DICTIONARY: CommandTag = 92; +pub const CommandTag_CMDTAG_CREATE_TEXT_SEARCH_PARSER: CommandTag = 93; +pub const CommandTag_CMDTAG_CREATE_TEXT_SEARCH_TEMPLATE: CommandTag = 94; +pub const CommandTag_CMDTAG_CREATE_TRANSFORM: CommandTag = 95; +pub const CommandTag_CMDTAG_CREATE_TRIGGER: CommandTag = 96; +pub const CommandTag_CMDTAG_CREATE_TYPE: CommandTag = 97; +pub const CommandTag_CMDTAG_CREATE_USER_MAPPING: CommandTag = 98; +pub const CommandTag_CMDTAG_CREATE_VIEW: CommandTag = 99; +pub const CommandTag_CMDTAG_DEALLOCATE: CommandTag = 100; +pub const CommandTag_CMDTAG_DEALLOCATE_ALL: CommandTag = 101; +pub const CommandTag_CMDTAG_DECLARE_CURSOR: CommandTag = 102; +pub const CommandTag_CMDTAG_DELETE: CommandTag = 103; +pub const CommandTag_CMDTAG_DISCARD: CommandTag = 104; +pub const CommandTag_CMDTAG_DISCARD_ALL: CommandTag = 105; +pub const CommandTag_CMDTAG_DISCARD_PLANS: CommandTag = 106; +pub const CommandTag_CMDTAG_DISCARD_SEQUENCES: CommandTag = 107; +pub const CommandTag_CMDTAG_DISCARD_TEMP: CommandTag = 108; +pub const CommandTag_CMDTAG_DO: CommandTag = 109; +pub const CommandTag_CMDTAG_DROP_ACCESS_METHOD: CommandTag = 110; +pub const CommandTag_CMDTAG_DROP_AGGREGATE: CommandTag = 111; +pub const CommandTag_CMDTAG_DROP_CAST: CommandTag = 112; +pub const CommandTag_CMDTAG_DROP_COLLATION: CommandTag = 113; +pub const CommandTag_CMDTAG_DROP_CONSTRAINT: CommandTag = 114; +pub const CommandTag_CMDTAG_DROP_CONVERSION: CommandTag = 115; +pub const CommandTag_CMDTAG_DROP_DATABASE: CommandTag = 116; +pub const CommandTag_CMDTAG_DROP_DOMAIN: CommandTag = 117; +pub const CommandTag_CMDTAG_DROP_EVENT_TRIGGER: CommandTag = 118; +pub const CommandTag_CMDTAG_DROP_EXTENSION: CommandTag = 119; +pub const CommandTag_CMDTAG_DROP_FOREIGN_DATA_WRAPPER: CommandTag = 120; +pub const CommandTag_CMDTAG_DROP_FOREIGN_TABLE: CommandTag = 121; +pub const CommandTag_CMDTAG_DROP_FUNCTION: CommandTag = 122; +pub const CommandTag_CMDTAG_DROP_INDEX: CommandTag = 123; +pub const CommandTag_CMDTAG_DROP_LANGUAGE: CommandTag = 124; +pub const CommandTag_CMDTAG_DROP_MATERIALIZED_VIEW: CommandTag = 125; +pub const CommandTag_CMDTAG_DROP_OPERATOR: CommandTag = 126; +pub const CommandTag_CMDTAG_DROP_OPERATOR_CLASS: CommandTag = 127; +pub const CommandTag_CMDTAG_DROP_OPERATOR_FAMILY: CommandTag = 128; +pub const CommandTag_CMDTAG_DROP_OWNED: CommandTag = 129; +pub const CommandTag_CMDTAG_DROP_POLICY: CommandTag = 130; +pub const CommandTag_CMDTAG_DROP_PROCEDURE: CommandTag = 131; +pub const CommandTag_CMDTAG_DROP_PUBLICATION: CommandTag = 132; +pub const CommandTag_CMDTAG_DROP_ROLE: CommandTag = 133; +pub const CommandTag_CMDTAG_DROP_ROUTINE: CommandTag = 134; +pub const CommandTag_CMDTAG_DROP_RULE: CommandTag = 135; +pub const CommandTag_CMDTAG_DROP_SCHEMA: CommandTag = 136; +pub const CommandTag_CMDTAG_DROP_SEQUENCE: CommandTag = 137; +pub const CommandTag_CMDTAG_DROP_SERVER: CommandTag = 138; +pub const CommandTag_CMDTAG_DROP_STATISTICS: CommandTag = 139; +pub const CommandTag_CMDTAG_DROP_SUBSCRIPTION: CommandTag = 140; +pub const CommandTag_CMDTAG_DROP_TABLE: CommandTag = 141; +pub const CommandTag_CMDTAG_DROP_TABLESPACE: CommandTag = 142; +pub const CommandTag_CMDTAG_DROP_TEXT_SEARCH_CONFIGURATION: CommandTag = 143; +pub const CommandTag_CMDTAG_DROP_TEXT_SEARCH_DICTIONARY: CommandTag = 144; +pub const CommandTag_CMDTAG_DROP_TEXT_SEARCH_PARSER: CommandTag = 145; +pub const CommandTag_CMDTAG_DROP_TEXT_SEARCH_TEMPLATE: CommandTag = 146; +pub const CommandTag_CMDTAG_DROP_TRANSFORM: CommandTag = 147; +pub const CommandTag_CMDTAG_DROP_TRIGGER: CommandTag = 148; +pub const CommandTag_CMDTAG_DROP_TYPE: CommandTag = 149; +pub const CommandTag_CMDTAG_DROP_USER_MAPPING: CommandTag = 150; +pub const CommandTag_CMDTAG_DROP_VIEW: CommandTag = 151; +pub const CommandTag_CMDTAG_EXECUTE: CommandTag = 152; +pub const CommandTag_CMDTAG_EXPLAIN: CommandTag = 153; +pub const CommandTag_CMDTAG_FETCH: CommandTag = 154; +pub const CommandTag_CMDTAG_GRANT: CommandTag = 155; +pub const CommandTag_CMDTAG_GRANT_ROLE: CommandTag = 156; +pub const CommandTag_CMDTAG_IMPORT_FOREIGN_SCHEMA: CommandTag = 157; +pub const CommandTag_CMDTAG_INSERT: CommandTag = 158; +pub const CommandTag_CMDTAG_LISTEN: CommandTag = 159; +pub const CommandTag_CMDTAG_LOAD: CommandTag = 160; +pub const CommandTag_CMDTAG_LOCK_TABLE: CommandTag = 161; +pub const CommandTag_CMDTAG_MERGE: CommandTag = 162; +pub const CommandTag_CMDTAG_MOVE: CommandTag = 163; +pub const CommandTag_CMDTAG_NOTIFY: CommandTag = 164; +pub const CommandTag_CMDTAG_PREPARE: CommandTag = 165; +pub const CommandTag_CMDTAG_PREPARE_TRANSACTION: CommandTag = 166; +pub const CommandTag_CMDTAG_REASSIGN_OWNED: CommandTag = 167; +pub const CommandTag_CMDTAG_REFRESH_MATERIALIZED_VIEW: CommandTag = 168; +pub const CommandTag_CMDTAG_REINDEX: CommandTag = 169; +pub const CommandTag_CMDTAG_RELEASE: CommandTag = 170; +pub const CommandTag_CMDTAG_RESET: CommandTag = 171; +pub const CommandTag_CMDTAG_REVOKE: CommandTag = 172; +pub const CommandTag_CMDTAG_REVOKE_ROLE: CommandTag = 173; +pub const CommandTag_CMDTAG_ROLLBACK: CommandTag = 174; +pub const CommandTag_CMDTAG_ROLLBACK_PREPARED: CommandTag = 175; +pub const CommandTag_CMDTAG_SAVEPOINT: CommandTag = 176; +pub const CommandTag_CMDTAG_SECURITY_LABEL: CommandTag = 177; +pub const CommandTag_CMDTAG_SELECT: CommandTag = 178; +pub const CommandTag_CMDTAG_SELECT_FOR_KEY_SHARE: CommandTag = 179; +pub const CommandTag_CMDTAG_SELECT_FOR_NO_KEY_UPDATE: CommandTag = 180; +pub const CommandTag_CMDTAG_SELECT_FOR_SHARE: CommandTag = 181; +pub const CommandTag_CMDTAG_SELECT_FOR_UPDATE: CommandTag = 182; +pub const CommandTag_CMDTAG_SELECT_INTO: CommandTag = 183; +pub const CommandTag_CMDTAG_SET: CommandTag = 184; +pub const CommandTag_CMDTAG_SET_CONSTRAINTS: CommandTag = 185; +pub const CommandTag_CMDTAG_SHOW: CommandTag = 186; +pub const CommandTag_CMDTAG_START_TRANSACTION: CommandTag = 187; +pub const CommandTag_CMDTAG_TRUNCATE_TABLE: CommandTag = 188; +pub const CommandTag_CMDTAG_UNLISTEN: CommandTag = 189; +pub const CommandTag_CMDTAG_UPDATE: CommandTag = 190; +pub const CommandTag_CMDTAG_VACUUM: CommandTag = 191; +pub const CommandTag_COMMAND_TAG_NEXTTAG: CommandTag = 192; +pub type CommandTag = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct QueryCompletion { + pub commandTag: CommandTag, + pub nprocessed: uint64, +} +impl Default for QueryCompletion { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeQueryCompletion(qc: *mut QueryCompletion); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCommandTagName(commandTag: CommandTag) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCommandTagNameAndLen( + commandTag: CommandTag, + len: *mut Size, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn command_tag_display_rowcount(commandTag: CommandTag) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn command_tag_event_trigger_ok(commandTag: CommandTag) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn command_tag_table_rewrite_ok(commandTag: CommandTag) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCommandTagEnum(commandname: *const ::std::os::raw::c_char) -> CommandTag; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildQueryCompletionString( + buff: *mut ::std::os::raw::c_char, + qc: *const QueryCompletion, + nameonly: bool, + ) -> Size; +} +pub const CommandDest_DestNone: CommandDest = 0; +pub const CommandDest_DestDebug: CommandDest = 1; +pub const CommandDest_DestRemote: CommandDest = 2; +pub const CommandDest_DestRemoteExecute: CommandDest = 3; +pub const CommandDest_DestRemoteSimple: CommandDest = 4; +pub const CommandDest_DestSPI: CommandDest = 5; +pub const CommandDest_DestTuplestore: CommandDest = 6; +pub const CommandDest_DestIntoRel: CommandDest = 7; +pub const CommandDest_DestCopyOut: CommandDest = 8; +pub const CommandDest_DestSQLFunction: CommandDest = 9; +pub const CommandDest_DestTransientRel: CommandDest = 10; +pub const CommandDest_DestTupleQueue: CommandDest = 11; +pub type CommandDest = ::std::os::raw::c_uint; +pub type DestReceiver = _DestReceiver; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _DestReceiver { + pub receiveSlot: ::std::option::Option< + unsafe extern "C" fn(slot: *mut TupleTableSlot, self_: *mut DestReceiver) -> bool, + >, + pub rStartup: ::std::option::Option< + unsafe extern "C" fn( + self_: *mut DestReceiver, + operation: ::std::os::raw::c_int, + typeinfo: TupleDesc, + ), + >, + pub rShutdown: ::std::option::Option, + pub rDestroy: ::std::option::Option, + pub mydest: CommandDest, +} +impl Default for _DestReceiver { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut None_Receiver: *mut DestReceiver; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BeginCommand(commandTag: CommandTag, dest: CommandDest); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateDestReceiver(dest: CommandDest) -> *mut DestReceiver; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EndCommand( + qc: *const QueryCompletion, + dest: CommandDest, + force_undecorated_output: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EndReplicationCommand(commandTag: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn NullCommand(dest: CommandDest); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReadyForQuery(dest: CommandDest); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct QueryDesc { + pub operation: CmdType, + pub plannedstmt: *mut PlannedStmt, + pub sourceText: *const ::std::os::raw::c_char, + pub snapshot: Snapshot, + pub crosscheck_snapshot: Snapshot, + pub dest: *mut DestReceiver, + pub params: ParamListInfo, + pub queryEnv: *mut QueryEnvironment, + pub instrument_options: ::std::os::raw::c_int, + pub tupDesc: TupleDesc, + pub estate: *mut EState, + pub planstate: *mut PlanState, + pub already_executed: bool, + pub totaltime: *mut Instrumentation, +} +impl Default for QueryDesc { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateQueryDesc( + plannedstmt: *mut PlannedStmt, + sourceText: *const ::std::os::raw::c_char, + snapshot: Snapshot, + crosscheck_snapshot: Snapshot, + dest: *mut DestReceiver, + params: ParamListInfo, + queryEnv: *mut QueryEnvironment, + instrument_options: ::std::os::raw::c_int, + ) -> *mut QueryDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeQueryDesc(qdesc: *mut QueryDesc); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct MemoryContextCounters { + pub nblocks: Size, + pub freechunks: Size, + pub totalspace: Size, + pub freespace: Size, +} +pub type MemoryStatsPrintFunc = ::std::option::Option< + unsafe extern "C" fn( + context: MemoryContext, + passthru: *mut ::std::os::raw::c_void, + stats_string: *const ::std::os::raw::c_char, + print_to_stderr: bool, + ), +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct MemoryContextMethods { + pub alloc: ::std::option::Option< + unsafe extern "C" fn(context: MemoryContext, size: Size) -> *mut ::std::os::raw::c_void, + >, + pub free_p: ::std::option::Option, + pub realloc: ::std::option::Option< + unsafe extern "C" fn( + pointer: *mut ::std::os::raw::c_void, + size: Size, + ) -> *mut ::std::os::raw::c_void, + >, + pub reset: ::std::option::Option, + pub delete_context: ::std::option::Option, + pub get_chunk_context: ::std::option::Option< + unsafe extern "C" fn(pointer: *mut ::std::os::raw::c_void) -> MemoryContext, + >, + pub get_chunk_space: + ::std::option::Option Size>, + pub is_empty: ::std::option::Option bool>, + pub stats: ::std::option::Option< + unsafe extern "C" fn( + context: MemoryContext, + printfunc: MemoryStatsPrintFunc, + passthru: *mut ::std::os::raw::c_void, + totals: *mut MemoryContextCounters, + print_to_stderr: bool, + ), + >, + pub check: ::std::option::Option, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MemoryContextData { + pub type_: NodeTag, + pub isReset: bool, + pub allowInCritSection: bool, + pub mem_allocated: Size, + pub methods: *const MemoryContextMethods, + pub parent: MemoryContext, + pub firstchild: MemoryContext, + pub prevchild: MemoryContext, + pub nextchild: MemoryContext, + pub name: *const ::std::os::raw::c_char, + pub ident: *const ::std::os::raw::c_char, + pub reset_cbs: *mut MemoryContextCallback, +} +impl Default for MemoryContextData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut TopMemoryContext: MemoryContext; +} +extern "C" { + pub static mut ErrorContext: MemoryContext; +} +extern "C" { + pub static mut PostmasterContext: MemoryContext; +} +extern "C" { + pub static mut CacheMemoryContext: MemoryContext; +} +extern "C" { + pub static mut MessageContext: MemoryContext; +} +extern "C" { + pub static mut TopTransactionContext: MemoryContext; +} +extern "C" { + pub static mut CurTransactionContext: MemoryContext; +} +extern "C" { + pub static mut PortalContext: MemoryContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextReset(context: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextDelete(context: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextResetOnly(context: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextResetChildren(context: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextDeleteChildren(context: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextSetIdentifier(context: MemoryContext, id: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextSetParent(context: MemoryContext, new_parent: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetMemoryChunkContext(pointer: *mut ::std::os::raw::c_void) -> MemoryContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetMemoryChunkSpace(pointer: *mut ::std::os::raw::c_void) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextGetParent(context: MemoryContext) -> MemoryContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextIsEmpty(context: MemoryContext) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextMemAllocated(context: MemoryContext, recurse: bool) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextStats(context: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextStatsDetail( + context: MemoryContext, + max_children: ::std::os::raw::c_int, + print_to_stderr: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextAllowInCriticalSection(context: MemoryContext, allow: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MemoryContextCheck(context: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HandleLogMemoryContextInterrupt(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessLogMemoryContextInterrupt(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AllocSetContextCreateInternal( + parent: MemoryContext, + name: *const ::std::os::raw::c_char, + minContextSize: Size, + initBlockSize: Size, + maxBlockSize: Size, + ) -> MemoryContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SlabContextCreate( + parent: MemoryContext, + name: *const ::std::os::raw::c_char, + blockSize: Size, + chunkSize: Size, + ) -> MemoryContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GenerationContextCreate( + parent: MemoryContext, + name: *const ::std::os::raw::c_char, + minContextSize: Size, + initBlockSize: Size, + maxBlockSize: Size, + ) -> MemoryContext; +} +pub type ExecutorStart_hook_type = ::std::option::Option< + unsafe extern "C" fn(queryDesc: *mut QueryDesc, eflags: ::std::os::raw::c_int), +>; +extern "C" { + pub static mut ExecutorStart_hook: ExecutorStart_hook_type; +} +pub type ExecutorRun_hook_type = ::std::option::Option< + unsafe extern "C" fn( + queryDesc: *mut QueryDesc, + direction: ScanDirection, + count: uint64, + execute_once: bool, + ), +>; +extern "C" { + pub static mut ExecutorRun_hook: ExecutorRun_hook_type; +} +pub type ExecutorFinish_hook_type = + ::std::option::Option; +extern "C" { + pub static mut ExecutorFinish_hook: ExecutorFinish_hook_type; +} +pub type ExecutorEnd_hook_type = + ::std::option::Option; +extern "C" { + pub static mut ExecutorEnd_hook: ExecutorEnd_hook_type; +} +pub type ExecutorCheckPerms_hook_type = ::std::option::Option< + unsafe extern "C" fn( + rangeTable: *mut List, + rtePermInfos: *mut List, + ereport_on_violation: bool, + ) -> bool, +>; +extern "C" { + pub static mut ExecutorCheckPerms_hook: ExecutorCheckPerms_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecReScan(node: *mut PlanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecMarkPos(node: *mut PlanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecRestrPos(node: *mut PlanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecSupportsMarkRestore(pathnode: *mut Path) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecSupportsBackwardScan(node: *mut Plan) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecMaterializesOutput(plantype: NodeTag) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn execCurrentOf( + cexpr: *mut CurrentOfExpr, + econtext: *mut ExprContext, + table_oid: Oid, + current_tid: ItemPointer, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn execTuplesMatchPrepare( + desc: TupleDesc, + numCols: ::std::os::raw::c_int, + keyColIdx: *const AttrNumber, + eqOperators: *const Oid, + collations: *const Oid, + parent: *mut PlanState, + ) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn execTuplesHashPrepare( + numCols: ::std::os::raw::c_int, + eqOperators: *const Oid, + eqFuncOids: *mut *mut Oid, + hashFunctions: *mut *mut FmgrInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildTupleHashTable( + parent: *mut PlanState, + inputDesc: TupleDesc, + numCols: ::std::os::raw::c_int, + keyColIdx: *mut AttrNumber, + eqfuncoids: *const Oid, + hashfunctions: *mut FmgrInfo, + collations: *mut Oid, + nbuckets: ::std::os::raw::c_long, + additionalsize: Size, + tablecxt: MemoryContext, + tempcxt: MemoryContext, + use_variable_hash_iv: bool, + ) -> TupleHashTable; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildTupleHashTableExt( + parent: *mut PlanState, + inputDesc: TupleDesc, + numCols: ::std::os::raw::c_int, + keyColIdx: *mut AttrNumber, + eqfuncoids: *const Oid, + hashfunctions: *mut FmgrInfo, + collations: *mut Oid, + nbuckets: ::std::os::raw::c_long, + additionalsize: Size, + metacxt: MemoryContext, + tablecxt: MemoryContext, + tempcxt: MemoryContext, + use_variable_hash_iv: bool, + ) -> TupleHashTable; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupTupleHashEntry( + hashtable: TupleHashTable, + slot: *mut TupleTableSlot, + isnew: *mut bool, + hash: *mut uint32, + ) -> TupleHashEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TupleHashTableHash(hashtable: TupleHashTable, slot: *mut TupleTableSlot) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupTupleHashEntryHash( + hashtable: TupleHashTable, + slot: *mut TupleTableSlot, + isnew: *mut bool, + hash: uint32, + ) -> TupleHashEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FindTupleHashEntry( + hashtable: TupleHashTable, + slot: *mut TupleTableSlot, + eqcomp: *mut ExprState, + hashfunctions: *mut FmgrInfo, + ) -> TupleHashEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResetTupleHashTable(hashtable: TupleHashTable); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitJunkFilter(targetList: *mut List, slot: *mut TupleTableSlot) -> *mut JunkFilter; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitJunkFilterConversion( + targetList: *mut List, + cleanTupType: TupleDesc, + slot: *mut TupleTableSlot, + ) -> *mut JunkFilter; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecFindJunkAttribute( + junkfilter: *mut JunkFilter, + attrName: *const ::std::os::raw::c_char, + ) -> AttrNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecFindJunkAttributeInTlist( + targetlist: *mut List, + attrName: *const ::std::os::raw::c_char, + ) -> AttrNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecFilterJunk( + junkfilter: *mut JunkFilter, + slot: *mut TupleTableSlot, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecutorStart(queryDesc: *mut QueryDesc, eflags: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standard_ExecutorStart(queryDesc: *mut QueryDesc, eflags: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecutorRun( + queryDesc: *mut QueryDesc, + direction: ScanDirection, + count: uint64, + execute_once: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standard_ExecutorRun( + queryDesc: *mut QueryDesc, + direction: ScanDirection, + count: uint64, + execute_once: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecutorFinish(queryDesc: *mut QueryDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standard_ExecutorFinish(queryDesc: *mut QueryDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecutorEnd(queryDesc: *mut QueryDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standard_ExecutorEnd(queryDesc: *mut QueryDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecutorRewind(queryDesc: *mut QueryDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecCheckPermissions( + rangeTable: *mut List, + rteperminfos: *mut List, + ereport_on_violation: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckValidResultRel(resultRelInfo: *mut ResultRelInfo, operation: CmdType); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitResultRelInfo( + resultRelInfo: *mut ResultRelInfo, + resultRelationDesc: Relation, + resultRelationIndex: Index, + partition_root_rri: *mut ResultRelInfo, + instrument_options: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetTriggerResultRel( + estate: *mut EState, + relid: Oid, + rootRelInfo: *mut ResultRelInfo, + ) -> *mut ResultRelInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetAncestorResultRels( + estate: *mut EState, + resultRelInfo: *mut ResultRelInfo, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecConstraints( + resultRelInfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + estate: *mut EState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecPartitionCheck( + resultRelInfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + estate: *mut EState, + emitError: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecPartitionCheckEmitError( + resultRelInfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + estate: *mut EState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecWithCheckOptions( + kind: WCOKind, + resultRelInfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + estate: *mut EState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecUpdateLockMode(estate: *mut EState, relinfo: *mut ResultRelInfo) -> LockTupleMode; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecFindRowMark(estate: *mut EState, rti: Index, missing_ok: bool) -> *mut ExecRowMark; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBuildAuxRowMark(erm: *mut ExecRowMark, targetlist: *mut List) + -> *mut ExecAuxRowMark; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EvalPlanQual( + epqstate: *mut EPQState, + relation: Relation, + rti: Index, + inputslot: *mut TupleTableSlot, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EvalPlanQualInit( + epqstate: *mut EPQState, + parentestate: *mut EState, + subplan: *mut Plan, + auxrowmarks: *mut List, + epqParam: ::std::os::raw::c_int, + resultRelations: *mut List, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EvalPlanQualSetPlan(epqstate: *mut EPQState, subplan: *mut Plan, auxrowmarks: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EvalPlanQualSlot( + epqstate: *mut EPQState, + relation: Relation, + rti: Index, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EvalPlanQualFetchRowMark( + epqstate: *mut EPQState, + rti: Index, + slot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EvalPlanQualNext(epqstate: *mut EPQState) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EvalPlanQualBegin(epqstate: *mut EPQState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EvalPlanQualEnd(epqstate: *mut EPQState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitNode( + node: *mut Plan, + estate: *mut EState, + eflags: ::std::os::raw::c_int, + ) -> *mut PlanState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecSetExecProcNode(node: *mut PlanState, function: ExecProcNodeMtd); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MultiExecProcNode(node: *mut PlanState) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecEndNode(node: *mut PlanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecShutdownNode(node: *mut PlanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecSetTupleBound(tuples_needed: int64, child_node: *mut PlanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitExpr(node: *mut Expr, parent: *mut PlanState) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitExprWithParams(node: *mut Expr, ext_params: ParamListInfo) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitQual(qual: *mut List, parent: *mut PlanState) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitCheck(qual: *mut List, parent: *mut PlanState) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitExprList(nodes: *mut List, parent: *mut PlanState) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBuildAggTrans( + aggstate: *mut AggState, + phase: *mut AggStatePerPhaseData, + doSort: bool, + doHash: bool, + nullcheck: bool, + ) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBuildGroupingEqual( + ldesc: TupleDesc, + rdesc: TupleDesc, + lops: *const TupleTableSlotOps, + rops: *const TupleTableSlotOps, + numCols: ::std::os::raw::c_int, + keyColIdx: *const AttrNumber, + eqfunctions: *const Oid, + collations: *const Oid, + parent: *mut PlanState, + ) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBuildParamSetEqual( + desc: TupleDesc, + lops: *const TupleTableSlotOps, + rops: *const TupleTableSlotOps, + eqfunctions: *const Oid, + collations: *const Oid, + param_exprs: *const List, + parent: *mut PlanState, + ) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBuildProjectionInfo( + targetList: *mut List, + econtext: *mut ExprContext, + slot: *mut TupleTableSlot, + parent: *mut PlanState, + inputDesc: TupleDesc, + ) -> *mut ProjectionInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBuildUpdateProjection( + targetList: *mut List, + evalTargetList: bool, + targetColnos: *mut List, + relDesc: TupleDesc, + econtext: *mut ExprContext, + slot: *mut TupleTableSlot, + parent: *mut PlanState, + ) -> *mut ProjectionInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecPrepareExpr(node: *mut Expr, estate: *mut EState) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecPrepareQual(qual: *mut List, estate: *mut EState) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecPrepareCheck(qual: *mut List, estate: *mut EState) -> *mut ExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecPrepareExprList(nodes: *mut List, estate: *mut EState) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecCheck(state: *mut ExprState, econtext: *mut ExprContext) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitTableFunctionResult( + expr: *mut Expr, + econtext: *mut ExprContext, + parent: *mut PlanState, + ) -> *mut SetExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecMakeTableFunctionResult( + setexpr: *mut SetExprState, + econtext: *mut ExprContext, + argContext: MemoryContext, + expectedDesc: TupleDesc, + randomAccess: bool, + ) -> *mut Tuplestorestate; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitFunctionResultSet( + expr: *mut Expr, + econtext: *mut ExprContext, + parent: *mut PlanState, + ) -> *mut SetExprState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecMakeFunctionResultSet( + fcache: *mut SetExprState, + econtext: *mut ExprContext, + argContext: MemoryContext, + isNull: *mut bool, + isDone: *mut ExprDoneCond, + ) -> Datum; +} +pub type ExecScanAccessMtd = + ::std::option::Option *mut TupleTableSlot>; +pub type ExecScanRecheckMtd = ::std::option::Option< + unsafe extern "C" fn(node: *mut ScanState, slot: *mut TupleTableSlot) -> bool, +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecScan( + node: *mut ScanState, + accessMtd: ExecScanAccessMtd, + recheckMtd: ExecScanRecheckMtd, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecAssignScanProjectionInfo(node: *mut ScanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecAssignScanProjectionInfoWithVarno( + node: *mut ScanState, + varno: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecScanReScan(node: *mut ScanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitResultTypeTL(planstate: *mut PlanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitResultSlot(planstate: *mut PlanState, tts_ops: *const TupleTableSlotOps); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitResultTupleSlotTL(planstate: *mut PlanState, tts_ops: *const TupleTableSlotOps); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitScanTupleSlot( + estate: *mut EState, + scanstate: *mut ScanState, + tupledesc: TupleDesc, + tts_ops: *const TupleTableSlotOps, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitExtraTupleSlot( + estate: *mut EState, + tupledesc: TupleDesc, + tts_ops: *const TupleTableSlotOps, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitNullTupleSlot( + estate: *mut EState, + tupType: TupleDesc, + tts_ops: *const TupleTableSlotOps, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecTypeFromTL(targetList: *mut List) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecCleanTypeFromTL(targetList: *mut List) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecTypeFromExprList(exprList: *mut List) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecTypeSetColNames(typeInfo: TupleDesc, namesList: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UpdateChangedParamSet(node: *mut PlanState, newchg: *mut Bitmapset); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TupOutputState { + pub slot: *mut TupleTableSlot, + pub dest: *mut DestReceiver, +} +impl Default for TupOutputState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn begin_tup_output_tupdesc( + dest: *mut DestReceiver, + tupdesc: TupleDesc, + tts_ops: *const TupleTableSlotOps, + ) -> *mut TupOutputState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn do_tup_output(tstate: *mut TupOutputState, values: *mut Datum, isnull: *mut bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn do_text_output_multiline( + tstate: *mut TupOutputState, + txt: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn end_tup_output(tstate: *mut TupOutputState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateExecutorState() -> *mut EState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeExecutorState(estate: *mut EState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateExprContext(estate: *mut EState) -> *mut ExprContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateWorkExprContext(estate: *mut EState) -> *mut ExprContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateStandaloneExprContext() -> *mut ExprContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeExprContext(econtext: *mut ExprContext, isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReScanExprContext(econtext: *mut ExprContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MakePerTupleExprContext(estate: *mut EState) -> *mut ExprContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecAssignExprContext(estate: *mut EState, planstate: *mut PlanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetResultType(planstate: *mut PlanState) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetResultSlotOps( + planstate: *mut PlanState, + isfixed: *mut bool, + ) -> *const TupleTableSlotOps; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecAssignProjectionInfo(planstate: *mut PlanState, inputDesc: TupleDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecConditionalAssignProjectionInfo( + planstate: *mut PlanState, + inputDesc: TupleDesc, + varno: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecFreeExprContext(planstate: *mut PlanState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecAssignScanType(scanstate: *mut ScanState, tupDesc: TupleDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecCreateScanSlotFromOuterPlan( + estate: *mut EState, + scanstate: *mut ScanState, + tts_ops: *const TupleTableSlotOps, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecRelationIsTargetRelation(estate: *mut EState, scanrelid: Index) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecOpenScanRelation( + estate: *mut EState, + scanrelid: Index, + eflags: ::std::os::raw::c_int, + ) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitRangeTable(estate: *mut EState, rangeTable: *mut List, permInfos: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecCloseRangeTableRelations(estate: *mut EState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecCloseResultRelations(estate: *mut EState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetRangeTableRelation(estate: *mut EState, rti: Index) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInitResultRelation( + estate: *mut EState, + resultRelInfo: *mut ResultRelInfo, + rti: Index, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn executor_errposition( + estate: *mut EState, + location: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterExprContextCallback( + econtext: *mut ExprContext, + function: ExprContextCallbackFunction, + arg: Datum, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnregisterExprContextCallback( + econtext: *mut ExprContext, + function: ExprContextCallbackFunction, + arg: Datum, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetAttributeByName( + tuple: HeapTupleHeader, + attname: *const ::std::os::raw::c_char, + isNull: *mut bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetAttributeByNum( + tuple: HeapTupleHeader, + attrno: AttrNumber, + isNull: *mut bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecTargetListLength(targetlist: *mut List) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecCleanTargetListLength(targetlist: *mut List) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetTriggerOldSlot( + estate: *mut EState, + relInfo: *mut ResultRelInfo, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetTriggerNewSlot( + estate: *mut EState, + relInfo: *mut ResultRelInfo, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetReturningSlot( + estate: *mut EState, + relInfo: *mut ResultRelInfo, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetChildToRootMap(resultRelInfo: *mut ResultRelInfo) -> *mut TupleConversionMap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetRootToChildMap( + resultRelInfo: *mut ResultRelInfo, + estate: *mut EState, + ) -> *mut TupleConversionMap; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetResultRelCheckAsUser(relInfo: *mut ResultRelInfo, estate: *mut EState) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetInsertedCols(relinfo: *mut ResultRelInfo, estate: *mut EState) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetUpdatedCols(relinfo: *mut ResultRelInfo, estate: *mut EState) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetExtraUpdatedCols( + relinfo: *mut ResultRelInfo, + estate: *mut EState, + ) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetAllUpdatedCols( + relinfo: *mut ResultRelInfo, + estate: *mut EState, + ) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecOpenIndices(resultRelInfo: *mut ResultRelInfo, speculative: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecCloseIndices(resultRelInfo: *mut ResultRelInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecInsertIndexTuples( + resultRelInfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + estate: *mut EState, + update: bool, + noDupErr: bool, + specConflict: *mut bool, + arbiterIndexes: *mut List, + onlySummarizing: bool, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecCheckIndexConstraints( + resultRelInfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + estate: *mut EState, + conflictTid: ItemPointer, + arbiterIndexes: *mut List, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_exclusion_constraint( + heap: Relation, + index: Relation, + indexInfo: *mut IndexInfo, + tupleid: ItemPointer, + values: *mut Datum, + isnull: *mut bool, + estate: *mut EState, + newIndex: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationFindReplTupleByIndex( + rel: Relation, + idxoid: Oid, + lockmode: LockTupleMode, + searchslot: *mut TupleTableSlot, + outslot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationFindReplTupleSeq( + rel: Relation, + lockmode: LockTupleMode, + searchslot: *mut TupleTableSlot, + outslot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecSimpleRelationInsert( + resultRelInfo: *mut ResultRelInfo, + estate: *mut EState, + slot: *mut TupleTableSlot, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecSimpleRelationUpdate( + resultRelInfo: *mut ResultRelInfo, + estate: *mut EState, + epqstate: *mut EPQState, + searchslot: *mut TupleTableSlot, + slot: *mut TupleTableSlot, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecSimpleRelationDelete( + resultRelInfo: *mut ResultRelInfo, + estate: *mut EState, + epqstate: *mut EPQState, + searchslot: *mut TupleTableSlot, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckCmdReplicaIdentity(rel: Relation, cmd: CmdType); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckSubscriptionRelkind( + relkind: ::std::os::raw::c_char, + nspname: *const ::std::os::raw::c_char, + relname: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecGetUpdateNewTuple( + relinfo: *mut ResultRelInfo, + planSlot: *mut TupleTableSlot, + oldSlot: *mut TupleTableSlot, + ) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecLookupResultRelByOid( + node: *mut ModifyTableState, + resultoid: Oid, + missing_ok: bool, + update_cache: bool, + ) -> *mut ResultRelInfo; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AttInMetadata { + pub tupdesc: TupleDesc, + pub attinfuncs: *mut FmgrInfo, + pub attioparams: *mut Oid, + pub atttypmods: *mut int32, +} +impl Default for AttInMetadata { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FuncCallContext { + pub call_cntr: uint64, + pub max_calls: uint64, + pub user_fctx: *mut ::std::os::raw::c_void, + pub attinmeta: *mut AttInMetadata, + pub multi_call_memory_ctx: MemoryContext, + pub tuple_desc: TupleDesc, +} +impl Default for FuncCallContext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const TypeFuncClass_TYPEFUNC_SCALAR: TypeFuncClass = 0; +pub const TypeFuncClass_TYPEFUNC_COMPOSITE: TypeFuncClass = 1; +pub const TypeFuncClass_TYPEFUNC_COMPOSITE_DOMAIN: TypeFuncClass = 2; +pub const TypeFuncClass_TYPEFUNC_RECORD: TypeFuncClass = 3; +pub const TypeFuncClass_TYPEFUNC_OTHER: TypeFuncClass = 4; +pub type TypeFuncClass = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_call_result_type( + fcinfo: FunctionCallInfo, + resultTypeId: *mut Oid, + resultTupleDesc: *mut TupleDesc, + ) -> TypeFuncClass; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_expr_result_type( + expr: *mut Node, + resultTypeId: *mut Oid, + resultTupleDesc: *mut TupleDesc, + ) -> TypeFuncClass; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_result_type( + functionId: Oid, + resultTypeId: *mut Oid, + resultTupleDesc: *mut TupleDesc, + ) -> TypeFuncClass; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_expr_result_tupdesc(expr: *mut Node, noError: bool) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn resolve_polymorphic_argtypes( + numargs: ::std::os::raw::c_int, + argtypes: *mut Oid, + argmodes: *mut ::std::os::raw::c_char, + call_expr: *mut Node, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_arg_info( + procTup: HeapTuple, + p_argtypes: *mut *mut Oid, + p_argnames: *mut *mut *mut ::std::os::raw::c_char, + p_argmodes: *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_input_arg_names( + proargnames: Datum, + proargmodes: Datum, + arg_names: *mut *mut *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_trftypes( + procTup: HeapTuple, + p_trftypes: *mut *mut Oid, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_result_name(functionId: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_function_result_tupdesc_d( + prokind: ::std::os::raw::c_char, + proallargtypes: Datum, + proargmodes: Datum, + proargnames: Datum, + ) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_function_result_tupdesc_t(procTuple: HeapTuple) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationNameGetTupleDesc(relname: *const ::std::os::raw::c_char) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TypeGetTupleDesc(typeoid: Oid, colaliases: *mut List) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BlessTupleDesc(tupdesc: TupleDesc) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TupleDescGetAttInMetadata(tupdesc: TupleDesc) -> *mut AttInMetadata; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildTupleFromCStrings( + attinmeta: *mut AttInMetadata, + values: *mut *mut ::std::os::raw::c_char, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleHeaderGetDatum(tuple: HeapTupleHeader) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitMaterializedSRF(fcinfo: FunctionCallInfo, flags: bits32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn init_MultiFuncCall(fcinfo: FunctionCallInfo) -> *mut FuncCallContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn per_MultiFuncCall(fcinfo: FunctionCallInfo) -> *mut FuncCallContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn end_MultiFuncCall(fcinfo: FunctionCallInfo, funcctx: *mut FuncCallContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_variadic_args( + fcinfo: FunctionCallInfo, + variadic_start: ::std::os::raw::c_int, + convert_unknown: bool, + args: *mut *mut Datum, + types: *mut *mut Oid, + nulls: *mut *mut bool, + ) -> ::std::os::raw::c_int; +} +pub type sig_atomic_t = __sig_atomic_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { + pub sival_int: ::std::os::raw::c_int, + pub sival_ptr: *mut ::std::os::raw::c_void, +} +impl Default for sigval { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type __sigval_t = sigval; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct siginfo_t { + pub si_signo: ::std::os::raw::c_int, + pub si_errno: ::std::os::raw::c_int, + pub si_code: ::std::os::raw::c_int, + pub __pad0: ::std::os::raw::c_int, + pub _sifields: siginfo_t__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union siginfo_t__bindgen_ty_1 { + pub _pad: [::std::os::raw::c_int; 28usize], + pub _kill: siginfo_t__bindgen_ty_1__bindgen_ty_1, + pub _timer: siginfo_t__bindgen_ty_1__bindgen_ty_2, + pub _rt: siginfo_t__bindgen_ty_1__bindgen_ty_3, + pub _sigchld: siginfo_t__bindgen_ty_1__bindgen_ty_4, + pub _sigfault: siginfo_t__bindgen_ty_1__bindgen_ty_5, + pub _sigpoll: siginfo_t__bindgen_ty_1__bindgen_ty_6, + pub _sigsys: siginfo_t__bindgen_ty_1__bindgen_ty_7, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_1 { + pub si_pid: __pid_t, + pub si_uid: __uid_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_2 { + pub si_tid: ::std::os::raw::c_int, + pub si_overrun: ::std::os::raw::c_int, + pub si_sigval: __sigval_t, +} +impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_3 { + pub si_pid: __pid_t, + pub si_uid: __uid_t, + pub si_sigval: __sigval_t, +} +impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_3 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_4 { + pub si_pid: __pid_t, + pub si_uid: __uid_t, + pub si_status: ::std::os::raw::c_int, + pub si_utime: __clock_t, + pub si_stime: __clock_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_5 { + pub si_addr: *mut ::std::os::raw::c_void, + pub si_addr_lsb: ::std::os::raw::c_short, + pub _bounds: siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 { + pub _addr_bnd: siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1, + pub _pkey: __uint32_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 { + pub _lower: *mut ::std::os::raw::c_void, + pub _upper: *mut ::std::os::raw::c_void, +} +impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_5 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_6 { + pub si_band: ::std::os::raw::c_long, + pub si_fd: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct siginfo_t__bindgen_ty_1__bindgen_ty_7 { + pub _call_addr: *mut ::std::os::raw::c_void, + pub _syscall: ::std::os::raw::c_int, + pub _arch: ::std::os::raw::c_uint, +} +impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_7 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for siginfo_t__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for siginfo_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const SI_ASYNCNL: _bindgen_ty_4 = -60; +pub const SI_DETHREAD: _bindgen_ty_4 = -7; +pub const SI_TKILL: _bindgen_ty_4 = -6; +pub const SI_SIGIO: _bindgen_ty_4 = -5; +pub const SI_ASYNCIO: _bindgen_ty_4 = -4; +pub const SI_MESGQ: _bindgen_ty_4 = -3; +pub const SI_TIMER: _bindgen_ty_4 = -2; +pub const SI_QUEUE: _bindgen_ty_4 = -1; +pub const SI_USER: _bindgen_ty_4 = 0; +pub const SI_KERNEL: _bindgen_ty_4 = 128; +pub type _bindgen_ty_4 = ::std::os::raw::c_int; +pub const ILL_ILLOPC: _bindgen_ty_5 = 1; +pub const ILL_ILLOPN: _bindgen_ty_5 = 2; +pub const ILL_ILLADR: _bindgen_ty_5 = 3; +pub const ILL_ILLTRP: _bindgen_ty_5 = 4; +pub const ILL_PRVOPC: _bindgen_ty_5 = 5; +pub const ILL_PRVREG: _bindgen_ty_5 = 6; +pub const ILL_COPROC: _bindgen_ty_5 = 7; +pub const ILL_BADSTK: _bindgen_ty_5 = 8; +pub const ILL_BADIADDR: _bindgen_ty_5 = 9; +pub type _bindgen_ty_5 = ::std::os::raw::c_uint; +pub const FPE_INTDIV: _bindgen_ty_6 = 1; +pub const FPE_INTOVF: _bindgen_ty_6 = 2; +pub const FPE_FLTDIV: _bindgen_ty_6 = 3; +pub const FPE_FLTOVF: _bindgen_ty_6 = 4; +pub const FPE_FLTUND: _bindgen_ty_6 = 5; +pub const FPE_FLTRES: _bindgen_ty_6 = 6; +pub const FPE_FLTINV: _bindgen_ty_6 = 7; +pub const FPE_FLTSUB: _bindgen_ty_6 = 8; +pub const FPE_FLTUNK: _bindgen_ty_6 = 14; +pub const FPE_CONDTRAP: _bindgen_ty_6 = 15; +pub type _bindgen_ty_6 = ::std::os::raw::c_uint; +pub const SEGV_MAPERR: _bindgen_ty_7 = 1; +pub const SEGV_ACCERR: _bindgen_ty_7 = 2; +pub const SEGV_BNDERR: _bindgen_ty_7 = 3; +pub const SEGV_PKUERR: _bindgen_ty_7 = 4; +pub const SEGV_ACCADI: _bindgen_ty_7 = 5; +pub const SEGV_ADIDERR: _bindgen_ty_7 = 6; +pub const SEGV_ADIPERR: _bindgen_ty_7 = 7; +pub const SEGV_MTEAERR: _bindgen_ty_7 = 8; +pub const SEGV_MTESERR: _bindgen_ty_7 = 9; +pub type _bindgen_ty_7 = ::std::os::raw::c_uint; +pub const BUS_ADRALN: _bindgen_ty_8 = 1; +pub const BUS_ADRERR: _bindgen_ty_8 = 2; +pub const BUS_OBJERR: _bindgen_ty_8 = 3; +pub const BUS_MCEERR_AR: _bindgen_ty_8 = 4; +pub const BUS_MCEERR_AO: _bindgen_ty_8 = 5; +pub type _bindgen_ty_8 = ::std::os::raw::c_uint; +pub const CLD_EXITED: _bindgen_ty_9 = 1; +pub const CLD_KILLED: _bindgen_ty_9 = 2; +pub const CLD_DUMPED: _bindgen_ty_9 = 3; +pub const CLD_TRAPPED: _bindgen_ty_9 = 4; +pub const CLD_STOPPED: _bindgen_ty_9 = 5; +pub const CLD_CONTINUED: _bindgen_ty_9 = 6; +pub type _bindgen_ty_9 = ::std::os::raw::c_uint; +pub const POLL_IN: _bindgen_ty_10 = 1; +pub const POLL_OUT: _bindgen_ty_10 = 2; +pub const POLL_MSG: _bindgen_ty_10 = 3; +pub const POLL_ERR: _bindgen_ty_10 = 4; +pub const POLL_PRI: _bindgen_ty_10 = 5; +pub const POLL_HUP: _bindgen_ty_10 = 6; +pub type _bindgen_ty_10 = ::std::os::raw::c_uint; +pub type sigval_t = __sigval_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigevent { + pub sigev_value: __sigval_t, + pub sigev_signo: ::std::os::raw::c_int, + pub sigev_notify: ::std::os::raw::c_int, + pub _sigev_un: sigevent__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigevent__bindgen_ty_1 { + pub _pad: [::std::os::raw::c_int; 12usize], + pub _tid: __pid_t, + pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { + pub _function: ::std::option::Option, + pub _attribute: *mut pthread_attr_t, +} +impl Default for sigevent__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for sigevent__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for sigevent { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type sigevent_t = sigevent; +pub const SIGEV_SIGNAL: _bindgen_ty_11 = 0; +pub const SIGEV_NONE: _bindgen_ty_11 = 1; +pub const SIGEV_THREAD: _bindgen_ty_11 = 2; +pub const SIGEV_THREAD_ID: _bindgen_ty_11 = 4; +pub type _bindgen_ty_11 = ::std::os::raw::c_uint; +pub type __sighandler_t = ::std::option::Option; +pub type sig_t = __sighandler_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigaction { + pub __sigaction_handler: sigaction__bindgen_ty_1, + pub sa_mask: __sigset_t, + pub sa_flags: ::std::os::raw::c_int, + pub sa_restorer: ::std::option::Option, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigaction__bindgen_ty_1 { + pub sa_handler: __sighandler_t, + pub sa_sigaction: ::std::option::Option< + unsafe extern "C" fn( + arg1: ::std::os::raw::c_int, + arg2: *mut siginfo_t, + arg3: *mut ::std::os::raw::c_void, + ), + >, +} +impl Default for sigaction__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for sigaction { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _fpx_sw_bytes { + pub magic1: __uint32_t, + pub extended_size: __uint32_t, + pub xstate_bv: __uint64_t, + pub xstate_size: __uint32_t, + pub __glibc_reserved1: [__uint32_t; 7usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _fpreg { + pub significand: [::std::os::raw::c_ushort; 4usize], + pub exponent: ::std::os::raw::c_ushort, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _fpxreg { + pub significand: [::std::os::raw::c_ushort; 4usize], + pub exponent: ::std::os::raw::c_ushort, + pub __glibc_reserved1: [::std::os::raw::c_ushort; 3usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _xmmreg { + pub element: [__uint32_t; 4usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _fpstate { + pub cwd: __uint16_t, + pub swd: __uint16_t, + pub ftw: __uint16_t, + pub fop: __uint16_t, + pub rip: __uint64_t, + pub rdp: __uint64_t, + pub mxcsr: __uint32_t, + pub mxcr_mask: __uint32_t, + pub _st: [_fpxreg; 8usize], + pub _xmm: [_xmmreg; 16usize], + pub __glibc_reserved1: [__uint32_t; 24usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sigcontext { + pub r8: __uint64_t, + pub r9: __uint64_t, + pub r10: __uint64_t, + pub r11: __uint64_t, + pub r12: __uint64_t, + pub r13: __uint64_t, + pub r14: __uint64_t, + pub r15: __uint64_t, + pub rdi: __uint64_t, + pub rsi: __uint64_t, + pub rbp: __uint64_t, + pub rbx: __uint64_t, + pub rdx: __uint64_t, + pub rax: __uint64_t, + pub rcx: __uint64_t, + pub rsp: __uint64_t, + pub rip: __uint64_t, + pub eflags: __uint64_t, + pub cs: ::std::os::raw::c_ushort, + pub gs: ::std::os::raw::c_ushort, + pub fs: ::std::os::raw::c_ushort, + pub __pad0: ::std::os::raw::c_ushort, + pub err: __uint64_t, + pub trapno: __uint64_t, + pub oldmask: __uint64_t, + pub cr2: __uint64_t, + pub __bindgen_anon_1: sigcontext__bindgen_ty_1, + pub __reserved1: [__uint64_t; 8usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigcontext__bindgen_ty_1 { + pub fpstate: *mut _fpstate, + pub __fpstate_word: __uint64_t, +} +impl Default for sigcontext__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for sigcontext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _xsave_hdr { + pub xstate_bv: __uint64_t, + pub __glibc_reserved1: [__uint64_t; 2usize], + pub __glibc_reserved2: [__uint64_t; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _ymmh_state { + pub ymmh_space: [__uint32_t; 64usize], +} +impl Default for _ymmh_state { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _xstate { + pub fpstate: _fpstate, + pub xstate_hdr: _xsave_hdr, + pub ymmh: _ymmh_state, +} +impl Default for _xstate { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct stack_t { + pub ss_sp: *mut ::std::os::raw::c_void, + pub ss_flags: ::std::os::raw::c_int, + pub ss_size: usize, +} +impl Default for stack_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type greg_t = ::std::os::raw::c_longlong; +pub type gregset_t = [greg_t; 23usize]; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _libc_fpxreg { + pub significand: [::std::os::raw::c_ushort; 4usize], + pub exponent: ::std::os::raw::c_ushort, + pub __glibc_reserved1: [::std::os::raw::c_ushort; 3usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _libc_xmmreg { + pub element: [__uint32_t; 4usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _libc_fpstate { + pub cwd: __uint16_t, + pub swd: __uint16_t, + pub ftw: __uint16_t, + pub fop: __uint16_t, + pub rip: __uint64_t, + pub rdp: __uint64_t, + pub mxcsr: __uint32_t, + pub mxcr_mask: __uint32_t, + pub _st: [_libc_fpxreg; 8usize], + pub _xmm: [_libc_xmmreg; 16usize], + pub __glibc_reserved1: [__uint32_t; 24usize], +} +pub type fpregset_t = *mut _libc_fpstate; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mcontext_t { + pub gregs: gregset_t, + pub fpregs: fpregset_t, + pub __reserved1: [::std::os::raw::c_ulonglong; 8usize], +} +impl Default for mcontext_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ucontext_t { + pub uc_flags: ::std::os::raw::c_ulong, + pub uc_link: *mut ucontext_t, + pub uc_stack: stack_t, + pub uc_mcontext: mcontext_t, + pub uc_sigmask: sigset_t, + pub __fpregs_mem: _libc_fpstate, + pub __ssp: [::std::os::raw::c_ulonglong; 4usize], +} +impl Default for ucontext_t { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const SS_ONSTACK: _bindgen_ty_12 = 1; +pub const SS_DISABLE: _bindgen_ty_12 = 2; +pub type _bindgen_ty_12 = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigstack { + pub ss_sp: *mut ::std::os::raw::c_void, + pub ss_onstack: ::std::os::raw::c_int, +} +impl Default for sigstack { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type pg_time_t = int64; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pg_tm { + pub tm_sec: ::std::os::raw::c_int, + pub tm_min: ::std::os::raw::c_int, + pub tm_hour: ::std::os::raw::c_int, + pub tm_mday: ::std::os::raw::c_int, + pub tm_mon: ::std::os::raw::c_int, + pub tm_year: ::std::os::raw::c_int, + pub tm_wday: ::std::os::raw::c_int, + pub tm_yday: ::std::os::raw::c_int, + pub tm_isdst: ::std::os::raw::c_int, + pub tm_gmtoff: ::std::os::raw::c_long, + pub tm_zone: *const ::std::os::raw::c_char, +} +impl Default for pg_tm { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pg_tz { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pg_tzenum { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_localtime(timep: *const pg_time_t, tz: *const pg_tz) -> *mut pg_tm; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_gmtime(timep: *const pg_time_t) -> *mut pg_tm; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_next_dst_boundary( + timep: *const pg_time_t, + before_gmtoff: *mut ::std::os::raw::c_long, + before_isdst: *mut ::std::os::raw::c_int, + boundary: *mut pg_time_t, + after_gmtoff: *mut ::std::os::raw::c_long, + after_isdst: *mut ::std::os::raw::c_int, + tz: *const pg_tz, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_interpret_timezone_abbrev( + abbrev: *const ::std::os::raw::c_char, + timep: *const pg_time_t, + gmtoff: *mut ::std::os::raw::c_long, + isdst: *mut ::std::os::raw::c_int, + tz: *const pg_tz, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_timezone_offset(tz: *const pg_tz, gmtoff: *mut ::std::os::raw::c_long) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_timezone_name(tz: *mut pg_tz) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tz_acceptable(tz: *mut pg_tz) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strftime( + s: *mut ::std::os::raw::c_char, + maxsize: usize, + format: *const ::std::os::raw::c_char, + t: *const pg_tm, + ) -> usize; +} +extern "C" { + pub static mut session_timezone: *mut pg_tz; +} +extern "C" { + pub static mut log_timezone: *mut pg_tz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_timezone_initialize(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tzset(tzname: *const ::std::os::raw::c_char) -> *mut pg_tz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tzset_offset(gmtoffset: ::std::os::raw::c_long) -> *mut pg_tz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tzenumerate_start() -> *mut pg_tzenum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tzenumerate_next(dir: *mut pg_tzenum) -> *mut pg_tz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tzenumerate_end(dir: *mut pg_tzenum); +} +extern "C" { + #[doc = "\t System interrupt and critical section handling\n\n There are two types of interrupts that a running backend needs to accept\n without messing up its state: QueryCancel (SIGINT) and ProcDie (SIGTERM).\n In both cases, we need to be able to clean up the current transaction\n gracefully, so we can't respond to the interrupt instantaneously ---\n there's no guarantee that internal data structures would be self-consistent\n if the code is interrupted at an arbitrary instant. Instead, the signal\n handlers set flags that are checked periodically during execution.\n\n The CHECK_FOR_INTERRUPTS() macro is called at strategically located spots\n where it is normally safe to accept a cancel or die interrupt. In some\n cases, we invoke CHECK_FOR_INTERRUPTS() inside low-level subroutines that\n might sometimes be called in contexts that do *not* want to allow a cancel\n or die interrupt. The HOLD_INTERRUPTS() and RESUME_INTERRUPTS() macros\n allow code to ensure that no cancel or die interrupt will be accepted,\n even if CHECK_FOR_INTERRUPTS() gets called in a subroutine. The interrupt\n will be held off until CHECK_FOR_INTERRUPTS() is done outside any\n HOLD_INTERRUPTS() ... RESUME_INTERRUPTS() section.\n\n There is also a mechanism to prevent query cancel interrupts, while still\n allowing die interrupts: HOLD_CANCEL_INTERRUPTS() and\n RESUME_CANCEL_INTERRUPTS().\n\n Note that ProcessInterrupts() has also acquired a number of tasks that\n do not necessarily cause a query-cancel-or-die response. Hence, it's\n possible that it will just clear InterruptPending and return.\n\n INTERRUPTS_PENDING_CONDITION() can be checked to see whether an\n interrupt needs to be serviced, without trying to do so immediately.\n Some callers are also interested in INTERRUPTS_CAN_BE_PROCESSED(),\n which tells whether ProcessInterrupts is sure to clear the interrupt.\n\n Special mechanisms are used to let an interrupt be accepted when we are\n waiting for a lock or when we are waiting for command input (but, of\n course, only if the interrupt holdoff counter is zero). See the\n related code for details.\n\n A lost connection is handled similarly, although the loss of connection\n does not raise a signal, but is detected when we fail to write to the\n socket. If there was a signal for a broken connection, we could make use of\n it by setting ClientConnectionLost in the signal handler.\n\n A related, but conceptually distinct, mechanism is the \"critical section\"\n mechanism. A critical section not only holds off cancel/die interrupts,\n but causes any ereport(ERROR) or ereport(FATAL) to become ereport(PANIC)\n --- that is, a system-wide reset is forced. Needless to say, only really\n *critical* code should be marked as a critical section!\tCurrently, this\n mechanism is only used for XLOG-related code.\n"] + pub static mut InterruptPending: sig_atomic_t; +} +extern "C" { + pub static mut QueryCancelPending: sig_atomic_t; +} +extern "C" { + pub static mut ProcDiePending: sig_atomic_t; +} +extern "C" { + pub static mut IdleInTransactionSessionTimeoutPending: sig_atomic_t; +} +extern "C" { + pub static mut IdleSessionTimeoutPending: sig_atomic_t; +} +extern "C" { + pub static mut ProcSignalBarrierPending: sig_atomic_t; +} +extern "C" { + pub static mut LogMemoryContextPending: sig_atomic_t; +} +extern "C" { + pub static mut IdleStatsUpdateTimeoutPending: sig_atomic_t; +} +extern "C" { + pub static mut CheckClientConnectionPending: sig_atomic_t; +} +extern "C" { + pub static mut ClientConnectionLost: sig_atomic_t; +} +extern "C" { + pub static mut InterruptHoldoffCount: uint32; +} +extern "C" { + pub static mut QueryCancelHoldoffCount: uint32; +} +extern "C" { + pub static mut CritSectionCount: uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessInterrupts(); +} +extern "C" { + #[doc = "\t globals.h --\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t *"] + pub static mut PostmasterPid: pid_t; +} +extern "C" { + pub static mut IsPostmasterEnvironment: bool; +} +extern "C" { + pub static mut IsUnderPostmaster: bool; +} +extern "C" { + pub static mut IsBackgroundWorker: bool; +} +extern "C" { + pub static mut IsBinaryUpgrade: bool; +} +extern "C" { + pub static mut ExitOnAnyError: bool; +} +extern "C" { + pub static mut DataDir: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut data_directory_mode: ::std::os::raw::c_int; +} +extern "C" { + pub static mut NBuffers: ::std::os::raw::c_int; +} +extern "C" { + pub static mut MaxBackends: ::std::os::raw::c_int; +} +extern "C" { + pub static mut MaxConnections: ::std::os::raw::c_int; +} +extern "C" { + pub static mut max_worker_processes: ::std::os::raw::c_int; +} +extern "C" { + pub static mut max_parallel_workers: ::std::os::raw::c_int; +} +extern "C" { + pub static mut MyProcPid: ::std::os::raw::c_int; +} +extern "C" { + pub static mut MyStartTime: pg_time_t; +} +extern "C" { + pub static mut MyStartTimestamp: TimestampTz; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Port { + _unused: [u8; 0], +} +extern "C" { + pub static mut MyProcPort: *mut Port; +} +extern "C" { + pub static mut MyLatch: *mut Latch; +} +extern "C" { + pub static mut MyCancelKey: int32; +} +extern "C" { + pub static mut MyPMChildSlot: ::std::os::raw::c_int; +} +extern "C" { + pub static mut OutputFileName: [::std::os::raw::c_char; 0usize]; +} +extern "C" { + pub static mut my_exec_path: [::std::os::raw::c_char; 0usize]; +} +extern "C" { + pub static mut pkglib_path: [::std::os::raw::c_char; 0usize]; +} +extern "C" { + pub static mut MyDatabaseId: Oid; +} +extern "C" { + pub static mut MyDatabaseTableSpace: Oid; +} +extern "C" { + pub static mut DateStyle: ::std::os::raw::c_int; +} +extern "C" { + pub static mut DateOrder: ::std::os::raw::c_int; +} +extern "C" { + pub static mut IntervalStyle: ::std::os::raw::c_int; +} +extern "C" { + pub static mut enableFsync: bool; +} +extern "C" { + pub static mut allowSystemTableMods: bool; +} +extern "C" { + pub static mut work_mem: ::std::os::raw::c_int; +} +extern "C" { + pub static mut hash_mem_multiplier: f64; +} +extern "C" { + pub static mut maintenance_work_mem: ::std::os::raw::c_int; +} +extern "C" { + pub static mut max_parallel_maintenance_workers: ::std::os::raw::c_int; +} +extern "C" { + pub static mut VacuumBufferUsageLimit: ::std::os::raw::c_int; +} +extern "C" { + pub static mut VacuumCostPageHit: ::std::os::raw::c_int; +} +extern "C" { + pub static mut VacuumCostPageMiss: ::std::os::raw::c_int; +} +extern "C" { + pub static mut VacuumCostPageDirty: ::std::os::raw::c_int; +} +extern "C" { + pub static mut VacuumCostLimit: ::std::os::raw::c_int; +} +extern "C" { + pub static mut VacuumCostDelay: f64; +} +extern "C" { + pub static mut VacuumPageHit: int64; +} +extern "C" { + pub static mut VacuumPageMiss: int64; +} +extern "C" { + pub static mut VacuumPageDirty: int64; +} +extern "C" { + pub static mut VacuumCostBalance: ::std::os::raw::c_int; +} +extern "C" { + pub static mut VacuumCostActive: bool; +} +pub type pg_stack_base_t = *mut ::std::os::raw::c_char; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_stack_base() -> pg_stack_base_t; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn restore_stack_base(base: pg_stack_base_t); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_stack_depth(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn stack_is_too_deep() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PreventCommandIfReadOnly(cmdname: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PreventCommandIfParallelMode(cmdname: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PreventCommandDuringRecovery(cmdname: *const ::std::os::raw::c_char); +} +extern "C" { + pub static mut trace_recovery_messages: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn trace_recovery(trace_level: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +extern "C" { + pub static mut DatabasePath: *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitPostmasterChild(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitStandaloneProcess(argv0: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitProcessLocalLatch(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SwitchToSharedLatch(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SwitchBackToLocalLatch(); +} +pub const BackendType_B_INVALID: BackendType = 0; +pub const BackendType_B_ARCHIVER: BackendType = 1; +pub const BackendType_B_AUTOVAC_LAUNCHER: BackendType = 2; +pub const BackendType_B_AUTOVAC_WORKER: BackendType = 3; +pub const BackendType_B_BACKEND: BackendType = 4; +pub const BackendType_B_BG_WORKER: BackendType = 5; +pub const BackendType_B_BG_WRITER: BackendType = 6; +pub const BackendType_B_CHECKPOINTER: BackendType = 7; +pub const BackendType_B_LOGGER: BackendType = 8; +pub const BackendType_B_STANDALONE_BACKEND: BackendType = 9; +pub const BackendType_B_STARTUP: BackendType = 10; +pub const BackendType_B_WAL_RECEIVER: BackendType = 11; +pub const BackendType_B_WAL_SENDER: BackendType = 12; +pub const BackendType_B_WAL_WRITER: BackendType = 13; +pub type BackendType = ::std::os::raw::c_uint; +extern "C" { + pub static mut MyBackendType: BackendType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetBackendTypeDesc(backendType: BackendType) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetDatabasePath(path: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn checkDataDir(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetDataDir(dir: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ChangeToDataDir(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetUserNameFromId(roleid: Oid, noerr: bool) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetUserId() -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetOuterUserId() -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSessionUserId() -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetAuthenticatedUserId() -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetUserIdAndSecContext(userid: *mut Oid, sec_context: *mut ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetUserIdAndSecContext(userid: Oid, sec_context: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InLocalUserIdChange() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InSecurityRestrictedOperation() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InNoForceRLSOperation() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetUserIdAndContext(userid: *mut Oid, sec_def_context: *mut bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetUserIdAndContext(userid: Oid, sec_def_context: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeSessionUserId(rolename: *const ::std::os::raw::c_char, roleid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeSessionUserIdStandalone(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetSessionAuthorization(userid: Oid, is_superuser: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentRoleId() -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetCurrentRoleId(roleid: Oid, is_superuser: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeSystemUser( + authn_id: *const ::std::os::raw::c_char, + auth_method: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSystemUser() -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn superuser() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn superuser_arg(roleid: Oid) -> bool; +} +pub const ProcessingMode_BootstrapProcessing: ProcessingMode = 0; +pub const ProcessingMode_InitProcessing: ProcessingMode = 1; +pub const ProcessingMode_NormalProcessing: ProcessingMode = 2; +#[doc = "\t pmod.h --\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t *\n\t\t\tPOSTGRES processing mode definitions. *"] +pub type ProcessingMode = ::std::os::raw::c_uint; +extern "C" { + pub static mut Mode: ProcessingMode; +} +pub const AuxProcType_NotAnAuxProcess: AuxProcType = -1; +pub const AuxProcType_StartupProcess: AuxProcType = 0; +pub const AuxProcType_BgWriterProcess: AuxProcType = 1; +pub const AuxProcType_ArchiverProcess: AuxProcType = 2; +pub const AuxProcType_CheckpointerProcess: AuxProcType = 3; +pub const AuxProcType_WalWriterProcess: AuxProcType = 4; +pub const AuxProcType_WalReceiverProcess: AuxProcType = 5; +pub const AuxProcType_NUM_AUXPROCTYPES: AuxProcType = 6; +pub type AuxProcType = ::std::os::raw::c_int; +extern "C" { + pub static mut MyAuxProcType: AuxProcType; +} +#[pgrx_macros::pg_guard] +extern "C" { + #[doc = "\t pinit.h --\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t *\n\t\t\tPOSTGRES initialization and cleanup definitions. *"] + pub fn pg_split_opts( + argv: *mut *mut ::std::os::raw::c_char, + argcp: *mut ::std::os::raw::c_int, + optstr: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeMaxBackends(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitPostgres( + in_dbname: *const ::std::os::raw::c_char, + dboid: Oid, + username: *const ::std::os::raw::c_char, + useroid: Oid, + load_session_libraries: bool, + override_allow_connections: bool, + out_dbname: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BaseInit(); +} +extern "C" { + pub static mut IgnoreSystemIndexes: bool; +} +extern "C" { + pub static mut process_shared_preload_libraries_in_progress: bool; +} +extern "C" { + pub static mut process_shared_preload_libraries_done: bool; +} +extern "C" { + pub static mut process_shmem_requests_in_progress: bool; +} +extern "C" { + pub static mut session_preload_libraries_string: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut shared_preload_libraries_string: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut local_preload_libraries_string: *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateDataDirLockFile(amPostmaster: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateSocketLockFile( + socketfile: *const ::std::os::raw::c_char, + amPostmaster: bool, + socketDir: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TouchSocketLockFiles(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AddToDataDirLockFile( + target_line: ::std::os::raw::c_int, + str_: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RecheckDataDirLockFile() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ValidatePgVersion(path: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn process_shared_preload_libraries(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn process_session_preload_libraries(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn process_shmem_requests(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_bindtextdomain(domain: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_rolreplication(roleid: Oid) -> bool; +} +pub type shmem_request_hook_type = ::std::option::Option; +extern "C" { + pub static mut shmem_request_hook: shmem_request_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EstimateClientConnectionInfoSpace() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SerializeClientConnectionInfo(maxsize: Size, start_address: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreClientConnectionInfo(conninfo: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_hash_memory_limit() -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PgArchShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PgArchShmemInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PgArchCanRestart() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PgArchiverMain() -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PgArchWakeup(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PgArchForceDirScan(); +} +pub const ProgressCommandType_PROGRESS_COMMAND_INVALID: ProgressCommandType = 0; +pub const ProgressCommandType_PROGRESS_COMMAND_VACUUM: ProgressCommandType = 1; +pub const ProgressCommandType_PROGRESS_COMMAND_ANALYZE: ProgressCommandType = 2; +pub const ProgressCommandType_PROGRESS_COMMAND_CLUSTER: ProgressCommandType = 3; +pub const ProgressCommandType_PROGRESS_COMMAND_CREATE_INDEX: ProgressCommandType = 4; +pub const ProgressCommandType_PROGRESS_COMMAND_BASEBACKUP: ProgressCommandType = 5; +pub const ProgressCommandType_PROGRESS_COMMAND_COPY: ProgressCommandType = 6; +pub type ProgressCommandType = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_progress_start_command(cmdtype: ProgressCommandType, relid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_progress_update_param(index: ::std::os::raw::c_int, val: int64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_progress_incr_param(index: ::std::os::raw::c_int, incr: int64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_progress_update_multi_param( + nparam: ::std::os::raw::c_int, + index: *const ::std::os::raw::c_int, + val: *const int64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_progress_end_command(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iovec { + pub iov_base: *mut ::std::os::raw::c_void, + pub iov_len: usize, +} +impl Default for iovec { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type socklen_t = __socklen_t; +pub const __socket_type_SOCK_STREAM: __socket_type = 1; +pub const __socket_type_SOCK_DGRAM: __socket_type = 2; +pub const __socket_type_SOCK_RAW: __socket_type = 3; +pub const __socket_type_SOCK_RDM: __socket_type = 4; +pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; +pub const __socket_type_SOCK_DCCP: __socket_type = 6; +pub const __socket_type_SOCK_PACKET: __socket_type = 10; +pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; +pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; +pub type __socket_type = ::std::os::raw::c_uint; +pub type sa_family_t = ::std::os::raw::c_ushort; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct sockaddr { + pub sa_family: sa_family_t, + pub sa_data: [::std::os::raw::c_char; 14usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_storage { + pub ss_family: sa_family_t, + pub __ss_padding: [::std::os::raw::c_char; 118usize], + pub __ss_align: ::std::os::raw::c_ulong, +} +impl Default for sockaddr_storage { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const MSG_OOB: _bindgen_ty_13 = 1; +pub const MSG_PEEK: _bindgen_ty_13 = 2; +pub const MSG_DONTROUTE: _bindgen_ty_13 = 4; +pub const MSG_CTRUNC: _bindgen_ty_13 = 8; +pub const MSG_PROXY: _bindgen_ty_13 = 16; +pub const MSG_TRUNC: _bindgen_ty_13 = 32; +pub const MSG_DONTWAIT: _bindgen_ty_13 = 64; +pub const MSG_EOR: _bindgen_ty_13 = 128; +pub const MSG_WAITALL: _bindgen_ty_13 = 256; +pub const MSG_FIN: _bindgen_ty_13 = 512; +pub const MSG_SYN: _bindgen_ty_13 = 1024; +pub const MSG_CONFIRM: _bindgen_ty_13 = 2048; +pub const MSG_RST: _bindgen_ty_13 = 4096; +pub const MSG_ERRQUEUE: _bindgen_ty_13 = 8192; +pub const MSG_NOSIGNAL: _bindgen_ty_13 = 16384; +pub const MSG_MORE: _bindgen_ty_13 = 32768; +pub const MSG_WAITFORONE: _bindgen_ty_13 = 65536; +pub const MSG_BATCH: _bindgen_ty_13 = 262144; +pub const MSG_ZEROCOPY: _bindgen_ty_13 = 67108864; +pub const MSG_FASTOPEN: _bindgen_ty_13 = 536870912; +pub const MSG_CMSG_CLOEXEC: _bindgen_ty_13 = 1073741824; +pub type _bindgen_ty_13 = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct msghdr { + pub msg_name: *mut ::std::os::raw::c_void, + pub msg_namelen: socklen_t, + pub msg_iov: *mut iovec, + pub msg_iovlen: usize, + pub msg_control: *mut ::std::os::raw::c_void, + pub msg_controllen: usize, + pub msg_flags: ::std::os::raw::c_int, +} +impl Default for msghdr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct cmsghdr { + pub cmsg_len: usize, + pub cmsg_level: ::std::os::raw::c_int, + pub cmsg_type: ::std::os::raw::c_int, + pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, +} +pub const SCM_RIGHTS: _bindgen_ty_14 = 1; +pub type _bindgen_ty_14 = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct __kernel_fd_set { + pub fds_bits: [::std::os::raw::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = + ::std::option::Option; +pub type __kernel_key_t = ::std::os::raw::c_int; +pub type __kernel_mqd_t = ::std::os::raw::c_int; +pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; +pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; +pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; +pub type __kernel_long_t = ::std::os::raw::c_long; +pub type __kernel_ulong_t = ::std::os::raw::c_ulong; +pub type __kernel_ino_t = __kernel_ulong_t; +pub type __kernel_mode_t = ::std::os::raw::c_uint; +pub type __kernel_pid_t = ::std::os::raw::c_int; +pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; +pub type __kernel_uid_t = ::std::os::raw::c_uint; +pub type __kernel_gid_t = ::std::os::raw::c_uint; +pub type __kernel_suseconds_t = __kernel_long_t; +pub type __kernel_daddr_t = ::std::os::raw::c_int; +pub type __kernel_uid32_t = ::std::os::raw::c_uint; +pub type __kernel_gid32_t = ::std::os::raw::c_uint; +pub type __kernel_size_t = __kernel_ulong_t; +pub type __kernel_ssize_t = __kernel_long_t; +pub type __kernel_ptrdiff_t = __kernel_long_t; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct __kernel_fsid_t { + pub val: [::std::os::raw::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = ::std::os::raw::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = ::std::os::raw::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = ::std::os::raw::c_int; +pub type __kernel_clockid_t = ::std::os::raw::c_int; +pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; +pub type __kernel_uid16_t = ::std::os::raw::c_ushort; +pub type __kernel_gid16_t = ::std::os::raw::c_ushort; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct linger { + pub l_onoff: ::std::os::raw::c_int, + pub l_linger: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct osockaddr { + pub sa_family: ::std::os::raw::c_ushort, + pub sa_data: [::std::os::raw::c_uchar; 14usize], +} +pub const SHUT_RD: _bindgen_ty_15 = 0; +pub const SHUT_WR: _bindgen_ty_15 = 1; +pub const SHUT_RDWR: _bindgen_ty_15 = 2; +pub type _bindgen_ty_15 = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_un { + pub sun_family: sa_family_t, + pub sun_path: [::std::os::raw::c_char; 108usize], +} +impl Default for sockaddr_un { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type in_addr_t = u32; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct in_addr { + pub s_addr: in_addr_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_opts { + pub ip_dst: in_addr, + pub ip_opts: [::std::os::raw::c_char; 40usize], +} +impl Default for ip_opts { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ip_mreqn { + pub imr_multiaddr: in_addr, + pub imr_address: in_addr, + pub imr_ifindex: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct in_pktinfo { + pub ipi_ifindex: ::std::os::raw::c_int, + pub ipi_spec_dst: in_addr, + pub ipi_addr: in_addr, +} +pub const IPPROTO_IP: _bindgen_ty_16 = 0; +pub const IPPROTO_ICMP: _bindgen_ty_16 = 1; +pub const IPPROTO_IGMP: _bindgen_ty_16 = 2; +pub const IPPROTO_IPIP: _bindgen_ty_16 = 4; +pub const IPPROTO_TCP: _bindgen_ty_16 = 6; +pub const IPPROTO_EGP: _bindgen_ty_16 = 8; +pub const IPPROTO_PUP: _bindgen_ty_16 = 12; +pub const IPPROTO_UDP: _bindgen_ty_16 = 17; +pub const IPPROTO_IDP: _bindgen_ty_16 = 22; +pub const IPPROTO_TP: _bindgen_ty_16 = 29; +pub const IPPROTO_DCCP: _bindgen_ty_16 = 33; +pub const IPPROTO_IPV6: _bindgen_ty_16 = 41; +pub const IPPROTO_RSVP: _bindgen_ty_16 = 46; +pub const IPPROTO_GRE: _bindgen_ty_16 = 47; +pub const IPPROTO_ESP: _bindgen_ty_16 = 50; +pub const IPPROTO_AH: _bindgen_ty_16 = 51; +pub const IPPROTO_MTP: _bindgen_ty_16 = 92; +pub const IPPROTO_BEETPH: _bindgen_ty_16 = 94; +pub const IPPROTO_ENCAP: _bindgen_ty_16 = 98; +pub const IPPROTO_PIM: _bindgen_ty_16 = 103; +pub const IPPROTO_COMP: _bindgen_ty_16 = 108; +pub const IPPROTO_SCTP: _bindgen_ty_16 = 132; +pub const IPPROTO_UDPLITE: _bindgen_ty_16 = 136; +pub const IPPROTO_MPLS: _bindgen_ty_16 = 137; +pub const IPPROTO_ETHERNET: _bindgen_ty_16 = 143; +pub const IPPROTO_RAW: _bindgen_ty_16 = 255; +pub const IPPROTO_MPTCP: _bindgen_ty_16 = 262; +pub const IPPROTO_MAX: _bindgen_ty_16 = 263; +pub type _bindgen_ty_16 = ::std::os::raw::c_uint; +pub const IPPROTO_HOPOPTS: _bindgen_ty_17 = 0; +pub const IPPROTO_ROUTING: _bindgen_ty_17 = 43; +pub const IPPROTO_FRAGMENT: _bindgen_ty_17 = 44; +pub const IPPROTO_ICMPV6: _bindgen_ty_17 = 58; +pub const IPPROTO_NONE: _bindgen_ty_17 = 59; +pub const IPPROTO_DSTOPTS: _bindgen_ty_17 = 60; +pub const IPPROTO_MH: _bindgen_ty_17 = 135; +pub type _bindgen_ty_17 = ::std::os::raw::c_uint; +pub type in_port_t = u16; +pub const IPPORT_ECHO: _bindgen_ty_18 = 7; +pub const IPPORT_DISCARD: _bindgen_ty_18 = 9; +pub const IPPORT_SYSTAT: _bindgen_ty_18 = 11; +pub const IPPORT_DAYTIME: _bindgen_ty_18 = 13; +pub const IPPORT_NETSTAT: _bindgen_ty_18 = 15; +pub const IPPORT_FTP: _bindgen_ty_18 = 21; +pub const IPPORT_TELNET: _bindgen_ty_18 = 23; +pub const IPPORT_SMTP: _bindgen_ty_18 = 25; +pub const IPPORT_TIMESERVER: _bindgen_ty_18 = 37; +pub const IPPORT_NAMESERVER: _bindgen_ty_18 = 42; +pub const IPPORT_WHOIS: _bindgen_ty_18 = 43; +pub const IPPORT_MTP: _bindgen_ty_18 = 57; +pub const IPPORT_TFTP: _bindgen_ty_18 = 69; +pub const IPPORT_RJE: _bindgen_ty_18 = 77; +pub const IPPORT_FINGER: _bindgen_ty_18 = 79; +pub const IPPORT_TTYLINK: _bindgen_ty_18 = 87; +pub const IPPORT_SUPDUP: _bindgen_ty_18 = 95; +pub const IPPORT_EXECSERVER: _bindgen_ty_18 = 512; +pub const IPPORT_LOGINSERVER: _bindgen_ty_18 = 513; +pub const IPPORT_CMDSERVER: _bindgen_ty_18 = 514; +pub const IPPORT_EFSSERVER: _bindgen_ty_18 = 520; +pub const IPPORT_BIFFUDP: _bindgen_ty_18 = 512; +pub const IPPORT_WHOSERVER: _bindgen_ty_18 = 513; +pub const IPPORT_ROUTESERVER: _bindgen_ty_18 = 520; +pub const IPPORT_RESERVED: _bindgen_ty_18 = 1024; +pub const IPPORT_USERRESERVED: _bindgen_ty_18 = 5000; +pub type _bindgen_ty_18 = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { + pub __in6_u: in6_addr__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union in6_addr__bindgen_ty_1 { + pub __u6_addr8: [u8; 16usize], + pub __u6_addr16: [u16; 8usize], + pub __u6_addr32: [u32; 4usize], +} +impl Default for in6_addr__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for in6_addr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct sockaddr_in { + pub sin_family: sa_family_t, + pub sin_port: in_port_t, + pub sin_addr: in_addr, + pub sin_zero: [::std::os::raw::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr_in6 { + pub sin6_family: sa_family_t, + pub sin6_port: in_port_t, + pub sin6_flowinfo: u32, + pub sin6_addr: in6_addr, + pub sin6_scope_id: u32, +} +impl Default for sockaddr_in6 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ip_mreq { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ip_mreq_source { + pub imr_multiaddr: in_addr, + pub imr_interface: in_addr, + pub imr_sourceaddr: in_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { + pub ipv6mr_multiaddr: in6_addr, + pub ipv6mr_interface: ::std::os::raw::c_uint, +} +impl Default for ipv6_mreq { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct group_req { + pub gr_interface: u32, + pub gr_group: sockaddr_storage, +} +impl Default for group_req { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct group_source_req { + pub gsr_interface: u32, + pub gsr_group: sockaddr_storage, + pub gsr_source: sockaddr_storage, +} +impl Default for group_source_req { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ip_msfilter { + pub imsf_multiaddr: in_addr, + pub imsf_interface: in_addr, + pub imsf_fmode: u32, + pub imsf_numsrc: u32, + pub imsf_slist: [in_addr; 1usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct group_filter { + pub gf_interface: u32, + pub gf_group: sockaddr_storage, + pub gf_fmode: u32, + pub gf_numsrc: u32, + pub gf_slist: [sockaddr_storage; 1usize], +} +impl Default for group_filter { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bindresvport6( + __sockfd: ::std::os::raw::c_int, + __sock_in: *mut sockaddr_in6, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rpcent { + pub r_name: *mut ::std::os::raw::c_char, + pub r_aliases: *mut *mut ::std::os::raw::c_char, + pub r_number: ::std::os::raw::c_int, +} +impl Default for rpcent { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct netent { + pub n_name: *mut ::std::os::raw::c_char, + pub n_aliases: *mut *mut ::std::os::raw::c_char, + pub n_addrtype: ::std::os::raw::c_int, + pub n_net: u32, +} +impl Default for netent { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct hostent { + pub h_name: *mut ::std::os::raw::c_char, + pub h_aliases: *mut *mut ::std::os::raw::c_char, + pub h_addrtype: ::std::os::raw::c_int, + pub h_length: ::std::os::raw::c_int, + pub h_addr_list: *mut *mut ::std::os::raw::c_char, +} +impl Default for hostent { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct servent { + pub s_name: *mut ::std::os::raw::c_char, + pub s_aliases: *mut *mut ::std::os::raw::c_char, + pub s_port: ::std::os::raw::c_int, + pub s_proto: *mut ::std::os::raw::c_char, +} +impl Default for servent { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct protoent { + pub p_name: *mut ::std::os::raw::c_char, + pub p_aliases: *mut *mut ::std::os::raw::c_char, + pub p_proto: ::std::os::raw::c_int, +} +impl Default for protoent { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct addrinfo { + pub ai_flags: ::std::os::raw::c_int, + pub ai_family: ::std::os::raw::c_int, + pub ai_socktype: ::std::os::raw::c_int, + pub ai_protocol: ::std::os::raw::c_int, + pub ai_addrlen: socklen_t, + pub ai_addr: *mut sockaddr, + pub ai_canonname: *mut ::std::os::raw::c_char, + pub ai_next: *mut addrinfo, +} +impl Default for addrinfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SockAddr { + pub addr: sockaddr_storage, + pub salen: socklen_t, +} +impl Default for SockAddr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AddrInfo { + pub family: ::std::os::raw::c_int, + pub addr: SockAddr, +} +impl Default for AddrInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ProtocolVersion = uint32; +pub type MsgType = ProtocolVersion; +pub type PacketLen = uint32; +extern "C" { + pub static mut Db_user_namespace: bool; +} +pub type AuthRequest = uint32; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CancelRequestPacket { + pub cancelRequestCode: MsgType, + pub backendPID: uint32, + pub cancelAuthCode: uint32, +} +pub type BackendId = ::std::os::raw::c_int; +extern "C" { + pub static mut MyBackendId: BackendId; +} +extern "C" { + pub static mut ParallelLeaderBackendId: BackendId; +} +pub const BackendState_STATE_UNDEFINED: BackendState = 0; +pub const BackendState_STATE_IDLE: BackendState = 1; +pub const BackendState_STATE_RUNNING: BackendState = 2; +pub const BackendState_STATE_IDLEINTRANSACTION: BackendState = 3; +pub const BackendState_STATE_FASTPATH: BackendState = 4; +pub const BackendState_STATE_IDLEINTRANSACTION_ABORTED: BackendState = 5; +pub const BackendState_STATE_DISABLED: BackendState = 6; +pub type BackendState = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PgBackendSSLStatus { + pub ssl_bits: ::std::os::raw::c_int, + pub ssl_version: [::std::os::raw::c_char; 64usize], + pub ssl_cipher: [::std::os::raw::c_char; 64usize], + pub ssl_client_dn: [::std::os::raw::c_char; 64usize], + pub ssl_client_serial: [::std::os::raw::c_char; 64usize], + pub ssl_issuer_dn: [::std::os::raw::c_char; 64usize], +} +impl Default for PgBackendSSLStatus { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PgBackendGSSStatus { + pub gss_princ: [::std::os::raw::c_char; 64usize], + pub gss_auth: bool, + pub gss_enc: bool, + pub gss_delegation: bool, +} +impl Default for PgBackendGSSStatus { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PgBackendStatus { + pub st_changecount: ::std::os::raw::c_int, + pub st_procpid: ::std::os::raw::c_int, + pub st_backendType: BackendType, + pub st_proc_start_timestamp: TimestampTz, + pub st_xact_start_timestamp: TimestampTz, + pub st_activity_start_timestamp: TimestampTz, + pub st_state_start_timestamp: TimestampTz, + pub st_databaseid: Oid, + pub st_userid: Oid, + pub st_clientaddr: SockAddr, + pub st_clienthostname: *mut ::std::os::raw::c_char, + pub st_ssl: bool, + pub st_sslstatus: *mut PgBackendSSLStatus, + pub st_gss: bool, + pub st_gssstatus: *mut PgBackendGSSStatus, + pub st_state: BackendState, + pub st_appname: *mut ::std::os::raw::c_char, + pub st_activity_raw: *mut ::std::os::raw::c_char, + pub st_progress_command: ProgressCommandType, + pub st_progress_command_target: Oid, + pub st_progress_param: [int64; 20usize], + pub st_query_id: uint64, +} +impl Default for PgBackendStatus { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LocalPgBackendStatus { + pub backendStatus: PgBackendStatus, + pub backend_id: BackendId, + pub backend_xid: TransactionId, + pub backend_xmin: TransactionId, + pub backend_subxact_count: ::std::os::raw::c_int, + pub backend_subxact_overflowed: bool, +} +impl Default for LocalPgBackendStatus { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut pgstat_track_activities: bool; +} +extern "C" { + pub static mut pgstat_track_activity_query_size: ::std::os::raw::c_int; +} +extern "C" { + pub static mut MyBEEntry: *mut PgBackendStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BackendStatusShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateSharedBackendStatus(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_beinit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_bestart(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_clear_backend_activity_snapshot(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_activity(state: BackendState, cmd_str: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_query_id(query_id: uint64, force: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_tempfile(filesize: usize); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_appname(appname: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_xact_timestamp(tstamp: TimestampTz); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_backend_current_activity( + pid: ::std::os::raw::c_int, + checkUser: bool, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_crashed_backend_activity( + pid: ::std::os::raw::c_int, + buffer: *mut ::std::os::raw::c_char, + buflen: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_my_query_id() -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_numbackends() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_beentry(beid: BackendId) -> *mut PgBackendStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_local_beentry( + beid: ::std::os::raw::c_int, + ) -> *mut LocalPgBackendStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_clip_activity( + raw_activity: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +pub const WaitEventActivity_WAIT_EVENT_ARCHIVER_MAIN: WaitEventActivity = 83886080; +pub const WaitEventActivity_WAIT_EVENT_AUTOVACUUM_MAIN: WaitEventActivity = 83886081; +pub const WaitEventActivity_WAIT_EVENT_BGWRITER_HIBERNATE: WaitEventActivity = 83886082; +pub const WaitEventActivity_WAIT_EVENT_BGWRITER_MAIN: WaitEventActivity = 83886083; +pub const WaitEventActivity_WAIT_EVENT_CHECKPOINTER_MAIN: WaitEventActivity = 83886084; +pub const WaitEventActivity_WAIT_EVENT_LOGICAL_APPLY_MAIN: WaitEventActivity = 83886085; +pub const WaitEventActivity_WAIT_EVENT_LOGICAL_LAUNCHER_MAIN: WaitEventActivity = 83886086; +pub const WaitEventActivity_WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN: WaitEventActivity = 83886087; +pub const WaitEventActivity_WAIT_EVENT_RECOVERY_WAL_STREAM: WaitEventActivity = 83886088; +pub const WaitEventActivity_WAIT_EVENT_SYSLOGGER_MAIN: WaitEventActivity = 83886089; +pub const WaitEventActivity_WAIT_EVENT_WAL_RECEIVER_MAIN: WaitEventActivity = 83886090; +pub const WaitEventActivity_WAIT_EVENT_WAL_SENDER_MAIN: WaitEventActivity = 83886091; +pub const WaitEventActivity_WAIT_EVENT_WAL_WRITER_MAIN: WaitEventActivity = 83886092; +pub type WaitEventActivity = ::std::os::raw::c_uint; +pub const WaitEventClient_WAIT_EVENT_CLIENT_READ: WaitEventClient = 100663296; +pub const WaitEventClient_WAIT_EVENT_CLIENT_WRITE: WaitEventClient = 100663297; +pub const WaitEventClient_WAIT_EVENT_GSS_OPEN_SERVER: WaitEventClient = 100663298; +pub const WaitEventClient_WAIT_EVENT_LIBPQWALRECEIVER_CONNECT: WaitEventClient = 100663299; +pub const WaitEventClient_WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE: WaitEventClient = 100663300; +pub const WaitEventClient_WAIT_EVENT_SSL_OPEN_SERVER: WaitEventClient = 100663301; +pub const WaitEventClient_WAIT_EVENT_WAL_SENDER_WAIT_WAL: WaitEventClient = 100663302; +pub const WaitEventClient_WAIT_EVENT_WAL_SENDER_WRITE_DATA: WaitEventClient = 100663303; +pub type WaitEventClient = ::std::os::raw::c_uint; +pub const WaitEventIPC_WAIT_EVENT_APPEND_READY: WaitEventIPC = 134217728; +pub const WaitEventIPC_WAIT_EVENT_ARCHIVE_CLEANUP_COMMAND: WaitEventIPC = 134217729; +pub const WaitEventIPC_WAIT_EVENT_ARCHIVE_COMMAND: WaitEventIPC = 134217730; +pub const WaitEventIPC_WAIT_EVENT_BACKEND_TERMINATION: WaitEventIPC = 134217731; +pub const WaitEventIPC_WAIT_EVENT_BACKUP_WAIT_WAL_ARCHIVE: WaitEventIPC = 134217732; +pub const WaitEventIPC_WAIT_EVENT_BGWORKER_SHUTDOWN: WaitEventIPC = 134217733; +pub const WaitEventIPC_WAIT_EVENT_BGWORKER_STARTUP: WaitEventIPC = 134217734; +pub const WaitEventIPC_WAIT_EVENT_BTREE_PAGE: WaitEventIPC = 134217735; +pub const WaitEventIPC_WAIT_EVENT_BUFFER_IO: WaitEventIPC = 134217736; +pub const WaitEventIPC_WAIT_EVENT_CHECKPOINT_DONE: WaitEventIPC = 134217737; +pub const WaitEventIPC_WAIT_EVENT_CHECKPOINT_START: WaitEventIPC = 134217738; +pub const WaitEventIPC_WAIT_EVENT_EXECUTE_GATHER: WaitEventIPC = 134217739; +pub const WaitEventIPC_WAIT_EVENT_HASH_BATCH_ALLOCATE: WaitEventIPC = 134217740; +pub const WaitEventIPC_WAIT_EVENT_HASH_BATCH_ELECT: WaitEventIPC = 134217741; +pub const WaitEventIPC_WAIT_EVENT_HASH_BATCH_LOAD: WaitEventIPC = 134217742; +pub const WaitEventIPC_WAIT_EVENT_HASH_BUILD_ALLOCATE: WaitEventIPC = 134217743; +pub const WaitEventIPC_WAIT_EVENT_HASH_BUILD_ELECT: WaitEventIPC = 134217744; +pub const WaitEventIPC_WAIT_EVENT_HASH_BUILD_HASH_INNER: WaitEventIPC = 134217745; +pub const WaitEventIPC_WAIT_EVENT_HASH_BUILD_HASH_OUTER: WaitEventIPC = 134217746; +pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_DECIDE: WaitEventIPC = 134217747; +pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_ELECT: WaitEventIPC = 134217748; +pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_FINISH: WaitEventIPC = 134217749; +pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_REALLOCATE: WaitEventIPC = 134217750; +pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_REPARTITION: WaitEventIPC = 134217751; +pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BUCKETS_ELECT: WaitEventIPC = 134217752; +pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BUCKETS_REALLOCATE: WaitEventIPC = 134217753; +pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BUCKETS_REINSERT: WaitEventIPC = 134217754; +pub const WaitEventIPC_WAIT_EVENT_LOGICAL_APPLY_SEND_DATA: WaitEventIPC = 134217755; +pub const WaitEventIPC_WAIT_EVENT_LOGICAL_PARALLEL_APPLY_STATE_CHANGE: WaitEventIPC = 134217756; +pub const WaitEventIPC_WAIT_EVENT_LOGICAL_SYNC_DATA: WaitEventIPC = 134217757; +pub const WaitEventIPC_WAIT_EVENT_LOGICAL_SYNC_STATE_CHANGE: WaitEventIPC = 134217758; +pub const WaitEventIPC_WAIT_EVENT_MQ_INTERNAL: WaitEventIPC = 134217759; +pub const WaitEventIPC_WAIT_EVENT_MQ_PUT_MESSAGE: WaitEventIPC = 134217760; +pub const WaitEventIPC_WAIT_EVENT_MQ_RECEIVE: WaitEventIPC = 134217761; +pub const WaitEventIPC_WAIT_EVENT_MQ_SEND: WaitEventIPC = 134217762; +pub const WaitEventIPC_WAIT_EVENT_PARALLEL_BITMAP_SCAN: WaitEventIPC = 134217763; +pub const WaitEventIPC_WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN: WaitEventIPC = 134217764; +pub const WaitEventIPC_WAIT_EVENT_PARALLEL_FINISH: WaitEventIPC = 134217765; +pub const WaitEventIPC_WAIT_EVENT_PROCARRAY_GROUP_UPDATE: WaitEventIPC = 134217766; +pub const WaitEventIPC_WAIT_EVENT_PROC_SIGNAL_BARRIER: WaitEventIPC = 134217767; +pub const WaitEventIPC_WAIT_EVENT_PROMOTE: WaitEventIPC = 134217768; +pub const WaitEventIPC_WAIT_EVENT_RECOVERY_CONFLICT_SNAPSHOT: WaitEventIPC = 134217769; +pub const WaitEventIPC_WAIT_EVENT_RECOVERY_CONFLICT_TABLESPACE: WaitEventIPC = 134217770; +pub const WaitEventIPC_WAIT_EVENT_RECOVERY_END_COMMAND: WaitEventIPC = 134217771; +pub const WaitEventIPC_WAIT_EVENT_RECOVERY_PAUSE: WaitEventIPC = 134217772; +pub const WaitEventIPC_WAIT_EVENT_REPLICATION_ORIGIN_DROP: WaitEventIPC = 134217773; +pub const WaitEventIPC_WAIT_EVENT_REPLICATION_SLOT_DROP: WaitEventIPC = 134217774; +pub const WaitEventIPC_WAIT_EVENT_RESTORE_COMMAND: WaitEventIPC = 134217775; +pub const WaitEventIPC_WAIT_EVENT_SAFE_SNAPSHOT: WaitEventIPC = 134217776; +pub const WaitEventIPC_WAIT_EVENT_SYNC_REP: WaitEventIPC = 134217777; +pub const WaitEventIPC_WAIT_EVENT_WAL_RECEIVER_EXIT: WaitEventIPC = 134217778; +pub const WaitEventIPC_WAIT_EVENT_WAL_RECEIVER_WAIT_START: WaitEventIPC = 134217779; +pub const WaitEventIPC_WAIT_EVENT_XACT_GROUP_UPDATE: WaitEventIPC = 134217780; +pub type WaitEventIPC = ::std::os::raw::c_uint; +pub const WaitEventTimeout_WAIT_EVENT_BASE_BACKUP_THROTTLE: WaitEventTimeout = 150994944; +pub const WaitEventTimeout_WAIT_EVENT_CHECKPOINT_WRITE_DELAY: WaitEventTimeout = 150994945; +pub const WaitEventTimeout_WAIT_EVENT_PG_SLEEP: WaitEventTimeout = 150994946; +pub const WaitEventTimeout_WAIT_EVENT_RECOVERY_APPLY_DELAY: WaitEventTimeout = 150994947; +pub const WaitEventTimeout_WAIT_EVENT_RECOVERY_RETRIEVE_RETRY_INTERVAL: WaitEventTimeout = + 150994948; +pub const WaitEventTimeout_WAIT_EVENT_REGISTER_SYNC_REQUEST: WaitEventTimeout = 150994949; +pub const WaitEventTimeout_WAIT_EVENT_SPIN_DELAY: WaitEventTimeout = 150994950; +pub const WaitEventTimeout_WAIT_EVENT_VACUUM_DELAY: WaitEventTimeout = 150994951; +pub const WaitEventTimeout_WAIT_EVENT_VACUUM_TRUNCATE: WaitEventTimeout = 150994952; +pub type WaitEventTimeout = ::std::os::raw::c_uint; +pub const WaitEventIO_WAIT_EVENT_BASEBACKUP_READ: WaitEventIO = 167772160; +pub const WaitEventIO_WAIT_EVENT_BASEBACKUP_SYNC: WaitEventIO = 167772161; +pub const WaitEventIO_WAIT_EVENT_BASEBACKUP_WRITE: WaitEventIO = 167772162; +pub const WaitEventIO_WAIT_EVENT_BUFFILE_READ: WaitEventIO = 167772163; +pub const WaitEventIO_WAIT_EVENT_BUFFILE_WRITE: WaitEventIO = 167772164; +pub const WaitEventIO_WAIT_EVENT_BUFFILE_TRUNCATE: WaitEventIO = 167772165; +pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_READ: WaitEventIO = 167772166; +pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_SYNC: WaitEventIO = 167772167; +pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_SYNC_UPDATE: WaitEventIO = 167772168; +pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_WRITE: WaitEventIO = 167772169; +pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_WRITE_UPDATE: WaitEventIO = 167772170; +pub const WaitEventIO_WAIT_EVENT_COPY_FILE_READ: WaitEventIO = 167772171; +pub const WaitEventIO_WAIT_EVENT_COPY_FILE_WRITE: WaitEventIO = 167772172; +pub const WaitEventIO_WAIT_EVENT_DATA_FILE_EXTEND: WaitEventIO = 167772173; +pub const WaitEventIO_WAIT_EVENT_DATA_FILE_FLUSH: WaitEventIO = 167772174; +pub const WaitEventIO_WAIT_EVENT_DATA_FILE_IMMEDIATE_SYNC: WaitEventIO = 167772175; +pub const WaitEventIO_WAIT_EVENT_DATA_FILE_PREFETCH: WaitEventIO = 167772176; +pub const WaitEventIO_WAIT_EVENT_DATA_FILE_READ: WaitEventIO = 167772177; +pub const WaitEventIO_WAIT_EVENT_DATA_FILE_SYNC: WaitEventIO = 167772178; +pub const WaitEventIO_WAIT_EVENT_DATA_FILE_TRUNCATE: WaitEventIO = 167772179; +pub const WaitEventIO_WAIT_EVENT_DATA_FILE_WRITE: WaitEventIO = 167772180; +pub const WaitEventIO_WAIT_EVENT_DSM_ALLOCATE: WaitEventIO = 167772181; +pub const WaitEventIO_WAIT_EVENT_DSM_FILL_ZERO_WRITE: WaitEventIO = 167772182; +pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ: WaitEventIO = 167772183; +pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC: WaitEventIO = 167772184; +pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE: WaitEventIO = 167772185; +pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_CREATE_READ: WaitEventIO = 167772186; +pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_CREATE_SYNC: WaitEventIO = 167772187; +pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_CREATE_WRITE: WaitEventIO = 167772188; +pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ: WaitEventIO = 167772189; +pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_CHECKPOINT_SYNC: WaitEventIO = 167772190; +pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC: WaitEventIO = 167772191; +pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE: WaitEventIO = 167772192; +pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_SYNC: WaitEventIO = 167772193; +pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_TRUNCATE: WaitEventIO = 167772194; +pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_WRITE: WaitEventIO = 167772195; +pub const WaitEventIO_WAIT_EVENT_RELATION_MAP_READ: WaitEventIO = 167772196; +pub const WaitEventIO_WAIT_EVENT_RELATION_MAP_REPLACE: WaitEventIO = 167772197; +pub const WaitEventIO_WAIT_EVENT_RELATION_MAP_WRITE: WaitEventIO = 167772198; +pub const WaitEventIO_WAIT_EVENT_REORDER_BUFFER_READ: WaitEventIO = 167772199; +pub const WaitEventIO_WAIT_EVENT_REORDER_BUFFER_WRITE: WaitEventIO = 167772200; +pub const WaitEventIO_WAIT_EVENT_REORDER_LOGICAL_MAPPING_READ: WaitEventIO = 167772201; +pub const WaitEventIO_WAIT_EVENT_REPLICATION_SLOT_READ: WaitEventIO = 167772202; +pub const WaitEventIO_WAIT_EVENT_REPLICATION_SLOT_RESTORE_SYNC: WaitEventIO = 167772203; +pub const WaitEventIO_WAIT_EVENT_REPLICATION_SLOT_SYNC: WaitEventIO = 167772204; +pub const WaitEventIO_WAIT_EVENT_REPLICATION_SLOT_WRITE: WaitEventIO = 167772205; +pub const WaitEventIO_WAIT_EVENT_SLRU_FLUSH_SYNC: WaitEventIO = 167772206; +pub const WaitEventIO_WAIT_EVENT_SLRU_READ: WaitEventIO = 167772207; +pub const WaitEventIO_WAIT_EVENT_SLRU_SYNC: WaitEventIO = 167772208; +pub const WaitEventIO_WAIT_EVENT_SLRU_WRITE: WaitEventIO = 167772209; +pub const WaitEventIO_WAIT_EVENT_SNAPBUILD_READ: WaitEventIO = 167772210; +pub const WaitEventIO_WAIT_EVENT_SNAPBUILD_SYNC: WaitEventIO = 167772211; +pub const WaitEventIO_WAIT_EVENT_SNAPBUILD_WRITE: WaitEventIO = 167772212; +pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_FILE_SYNC: WaitEventIO = 167772213; +pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_FILE_WRITE: WaitEventIO = 167772214; +pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_READ: WaitEventIO = 167772215; +pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_SYNC: WaitEventIO = 167772216; +pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_WRITE: WaitEventIO = 167772217; +pub const WaitEventIO_WAIT_EVENT_TWOPHASE_FILE_READ: WaitEventIO = 167772218; +pub const WaitEventIO_WAIT_EVENT_TWOPHASE_FILE_SYNC: WaitEventIO = 167772219; +pub const WaitEventIO_WAIT_EVENT_TWOPHASE_FILE_WRITE: WaitEventIO = 167772220; +pub const WaitEventIO_WAIT_EVENT_VERSION_FILE_WRITE: WaitEventIO = 167772221; +pub const WaitEventIO_WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ: WaitEventIO = 167772222; +pub const WaitEventIO_WAIT_EVENT_WAL_BOOTSTRAP_SYNC: WaitEventIO = 167772223; +pub const WaitEventIO_WAIT_EVENT_WAL_BOOTSTRAP_WRITE: WaitEventIO = 167772224; +pub const WaitEventIO_WAIT_EVENT_WAL_COPY_READ: WaitEventIO = 167772225; +pub const WaitEventIO_WAIT_EVENT_WAL_COPY_SYNC: WaitEventIO = 167772226; +pub const WaitEventIO_WAIT_EVENT_WAL_COPY_WRITE: WaitEventIO = 167772227; +pub const WaitEventIO_WAIT_EVENT_WAL_INIT_SYNC: WaitEventIO = 167772228; +pub const WaitEventIO_WAIT_EVENT_WAL_INIT_WRITE: WaitEventIO = 167772229; +pub const WaitEventIO_WAIT_EVENT_WAL_READ: WaitEventIO = 167772230; +pub const WaitEventIO_WAIT_EVENT_WAL_SYNC: WaitEventIO = 167772231; +pub const WaitEventIO_WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN: WaitEventIO = 167772232; +pub const WaitEventIO_WAIT_EVENT_WAL_WRITE: WaitEventIO = 167772233; +pub type WaitEventIO = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_wait_event(wait_event_info: uint32) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_wait_event_type(wait_event_info: uint32) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_set_wait_event_storage(wait_event_info: *mut uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_reset_wait_event_storage(); +} +extern "C" { + pub static mut my_wait_event_info: *mut uint32; +} +pub const PgStat_Kind_PGSTAT_KIND_INVALID: PgStat_Kind = 0; +pub const PgStat_Kind_PGSTAT_KIND_DATABASE: PgStat_Kind = 1; +pub const PgStat_Kind_PGSTAT_KIND_RELATION: PgStat_Kind = 2; +pub const PgStat_Kind_PGSTAT_KIND_FUNCTION: PgStat_Kind = 3; +pub const PgStat_Kind_PGSTAT_KIND_REPLSLOT: PgStat_Kind = 4; +pub const PgStat_Kind_PGSTAT_KIND_SUBSCRIPTION: PgStat_Kind = 5; +pub const PgStat_Kind_PGSTAT_KIND_ARCHIVER: PgStat_Kind = 6; +pub const PgStat_Kind_PGSTAT_KIND_BGWRITER: PgStat_Kind = 7; +pub const PgStat_Kind_PGSTAT_KIND_CHECKPOINTER: PgStat_Kind = 8; +pub const PgStat_Kind_PGSTAT_KIND_IO: PgStat_Kind = 9; +pub const PgStat_Kind_PGSTAT_KIND_SLRU: PgStat_Kind = 10; +pub const PgStat_Kind_PGSTAT_KIND_WAL: PgStat_Kind = 11; +pub type PgStat_Kind = ::std::os::raw::c_uint; +pub const TrackFunctionsLevel_TRACK_FUNC_OFF: TrackFunctionsLevel = 0; +pub const TrackFunctionsLevel_TRACK_FUNC_PL: TrackFunctionsLevel = 1; +pub const TrackFunctionsLevel_TRACK_FUNC_ALL: TrackFunctionsLevel = 2; +pub type TrackFunctionsLevel = ::std::os::raw::c_uint; +pub const PgStat_FetchConsistency_PGSTAT_FETCH_CONSISTENCY_NONE: PgStat_FetchConsistency = 0; +pub const PgStat_FetchConsistency_PGSTAT_FETCH_CONSISTENCY_CACHE: PgStat_FetchConsistency = 1; +pub const PgStat_FetchConsistency_PGSTAT_FETCH_CONSISTENCY_SNAPSHOT: PgStat_FetchConsistency = 2; +pub type PgStat_FetchConsistency = ::std::os::raw::c_uint; +pub const SessionEndType_DISCONNECT_NOT_YET: SessionEndType = 0; +pub const SessionEndType_DISCONNECT_NORMAL: SessionEndType = 1; +pub const SessionEndType_DISCONNECT_CLIENT_EOF: SessionEndType = 2; +pub const SessionEndType_DISCONNECT_FATAL: SessionEndType = 3; +pub const SessionEndType_DISCONNECT_KILLED: SessionEndType = 4; +pub type SessionEndType = ::std::os::raw::c_uint; +pub type PgStat_Counter = int64; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_FunctionCounts { + pub numcalls: PgStat_Counter, + pub total_time: instr_time, + pub self_time: instr_time, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PgStat_FunctionCallUsage { + pub fs: *mut PgStat_FunctionCounts, + pub save_f_total_time: instr_time, + pub save_total: instr_time, + pub start: instr_time, +} +impl Default for PgStat_FunctionCallUsage { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_BackendSubEntry { + pub apply_error_count: PgStat_Counter, + pub sync_error_count: PgStat_Counter, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_TableCounts { + pub numscans: PgStat_Counter, + pub tuples_returned: PgStat_Counter, + pub tuples_fetched: PgStat_Counter, + pub tuples_inserted: PgStat_Counter, + pub tuples_updated: PgStat_Counter, + pub tuples_deleted: PgStat_Counter, + pub tuples_hot_updated: PgStat_Counter, + pub tuples_newpage_updated: PgStat_Counter, + pub truncdropped: bool, + pub delta_live_tuples: PgStat_Counter, + pub delta_dead_tuples: PgStat_Counter, + pub changed_tuples: PgStat_Counter, + pub blocks_fetched: PgStat_Counter, + pub blocks_hit: PgStat_Counter, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PgStat_TableStatus { + pub id: Oid, + pub shared: bool, + pub trans: *mut PgStat_TableXactStatus, + pub counts: PgStat_TableCounts, + pub relation: Relation, +} +impl Default for PgStat_TableStatus { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PgStat_TableXactStatus { + pub tuples_inserted: PgStat_Counter, + pub tuples_updated: PgStat_Counter, + pub tuples_deleted: PgStat_Counter, + pub truncdropped: bool, + pub inserted_pre_truncdrop: PgStat_Counter, + pub updated_pre_truncdrop: PgStat_Counter, + pub deleted_pre_truncdrop: PgStat_Counter, + pub nest_level: ::std::os::raw::c_int, + pub upper: *mut PgStat_TableXactStatus, + pub parent: *mut PgStat_TableStatus, + pub next: *mut PgStat_TableXactStatus, +} +impl Default for PgStat_TableXactStatus { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PgStat_ArchiverStats { + pub archived_count: PgStat_Counter, + pub last_archived_wal: [::std::os::raw::c_char; 41usize], + pub last_archived_timestamp: TimestampTz, + pub failed_count: PgStat_Counter, + pub last_failed_wal: [::std::os::raw::c_char; 41usize], + pub last_failed_timestamp: TimestampTz, + pub stat_reset_timestamp: TimestampTz, +} +impl Default for PgStat_ArchiverStats { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_BgWriterStats { + pub buf_written_clean: PgStat_Counter, + pub maxwritten_clean: PgStat_Counter, + pub buf_alloc: PgStat_Counter, + pub stat_reset_timestamp: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_CheckpointerStats { + pub timed_checkpoints: PgStat_Counter, + pub requested_checkpoints: PgStat_Counter, + pub checkpoint_write_time: PgStat_Counter, + pub checkpoint_sync_time: PgStat_Counter, + pub buf_written_checkpoints: PgStat_Counter, + pub buf_written_backend: PgStat_Counter, + pub buf_fsync_backend: PgStat_Counter, +} +pub const IOObject_IOOBJECT_RELATION: IOObject = 0; +pub const IOObject_IOOBJECT_TEMP_RELATION: IOObject = 1; +pub type IOObject = ::std::os::raw::c_uint; +pub const IOContext_IOCONTEXT_BULKREAD: IOContext = 0; +pub const IOContext_IOCONTEXT_BULKWRITE: IOContext = 1; +pub const IOContext_IOCONTEXT_NORMAL: IOContext = 2; +pub const IOContext_IOCONTEXT_VACUUM: IOContext = 3; +pub type IOContext = ::std::os::raw::c_uint; +pub const IOOp_IOOP_EVICT: IOOp = 0; +pub const IOOp_IOOP_EXTEND: IOOp = 1; +pub const IOOp_IOOP_FSYNC: IOOp = 2; +pub const IOOp_IOOP_HIT: IOOp = 3; +pub const IOOp_IOOP_READ: IOOp = 4; +pub const IOOp_IOOP_REUSE: IOOp = 5; +pub const IOOp_IOOP_WRITE: IOOp = 6; +pub const IOOp_IOOP_WRITEBACK: IOOp = 7; +pub type IOOp = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_BktypeIO { + pub counts: [[[PgStat_Counter; 8usize]; 4usize]; 2usize], + pub times: [[[PgStat_Counter; 8usize]; 4usize]; 2usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_IO { + pub stat_reset_timestamp: TimestampTz, + pub stats: [PgStat_BktypeIO; 14usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_StatDBEntry { + pub xact_commit: PgStat_Counter, + pub xact_rollback: PgStat_Counter, + pub blocks_fetched: PgStat_Counter, + pub blocks_hit: PgStat_Counter, + pub tuples_returned: PgStat_Counter, + pub tuples_fetched: PgStat_Counter, + pub tuples_inserted: PgStat_Counter, + pub tuples_updated: PgStat_Counter, + pub tuples_deleted: PgStat_Counter, + pub last_autovac_time: TimestampTz, + pub conflict_tablespace: PgStat_Counter, + pub conflict_lock: PgStat_Counter, + pub conflict_snapshot: PgStat_Counter, + pub conflict_logicalslot: PgStat_Counter, + pub conflict_bufferpin: PgStat_Counter, + pub conflict_startup_deadlock: PgStat_Counter, + pub temp_files: PgStat_Counter, + pub temp_bytes: PgStat_Counter, + pub deadlocks: PgStat_Counter, + pub checksum_failures: PgStat_Counter, + pub last_checksum_failure: TimestampTz, + pub blk_read_time: PgStat_Counter, + pub blk_write_time: PgStat_Counter, + pub sessions: PgStat_Counter, + pub session_time: PgStat_Counter, + pub active_time: PgStat_Counter, + pub idle_in_transaction_time: PgStat_Counter, + pub sessions_abandoned: PgStat_Counter, + pub sessions_fatal: PgStat_Counter, + pub sessions_killed: PgStat_Counter, + pub stat_reset_timestamp: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_StatFuncEntry { + pub numcalls: PgStat_Counter, + pub total_time: PgStat_Counter, + pub self_time: PgStat_Counter, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_StatReplSlotEntry { + pub spill_txns: PgStat_Counter, + pub spill_count: PgStat_Counter, + pub spill_bytes: PgStat_Counter, + pub stream_txns: PgStat_Counter, + pub stream_count: PgStat_Counter, + pub stream_bytes: PgStat_Counter, + pub total_txns: PgStat_Counter, + pub total_bytes: PgStat_Counter, + pub stat_reset_timestamp: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_SLRUStats { + pub blocks_zeroed: PgStat_Counter, + pub blocks_hit: PgStat_Counter, + pub blocks_read: PgStat_Counter, + pub blocks_written: PgStat_Counter, + pub blocks_exists: PgStat_Counter, + pub flush: PgStat_Counter, + pub truncate: PgStat_Counter, + pub stat_reset_timestamp: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_StatSubEntry { + pub apply_error_count: PgStat_Counter, + pub sync_error_count: PgStat_Counter, + pub stat_reset_timestamp: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_StatTabEntry { + pub numscans: PgStat_Counter, + pub lastscan: TimestampTz, + pub tuples_returned: PgStat_Counter, + pub tuples_fetched: PgStat_Counter, + pub tuples_inserted: PgStat_Counter, + pub tuples_updated: PgStat_Counter, + pub tuples_deleted: PgStat_Counter, + pub tuples_hot_updated: PgStat_Counter, + pub tuples_newpage_updated: PgStat_Counter, + pub live_tuples: PgStat_Counter, + pub dead_tuples: PgStat_Counter, + pub mod_since_analyze: PgStat_Counter, + pub ins_since_vacuum: PgStat_Counter, + pub blocks_fetched: PgStat_Counter, + pub blocks_hit: PgStat_Counter, + pub last_vacuum_time: TimestampTz, + pub vacuum_count: PgStat_Counter, + pub last_autovacuum_time: TimestampTz, + pub autovacuum_count: PgStat_Counter, + pub last_analyze_time: TimestampTz, + pub analyze_count: PgStat_Counter, + pub last_autoanalyze_time: TimestampTz, + pub autoanalyze_count: PgStat_Counter, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_WalStats { + pub wal_records: PgStat_Counter, + pub wal_fpi: PgStat_Counter, + pub wal_bytes: uint64, + pub wal_buffers_full: PgStat_Counter, + pub wal_write: PgStat_Counter, + pub wal_sync: PgStat_Counter, + pub wal_write_time: PgStat_Counter, + pub wal_sync_time: PgStat_Counter, + pub stat_reset_timestamp: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PgStat_PendingWalStats { + pub wal_buffers_full: PgStat_Counter, + pub wal_write: PgStat_Counter, + pub wal_sync: PgStat_Counter, + pub wal_write_time: instr_time, + pub wal_sync_time: instr_time, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StatsShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StatsShmemInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_restore_stats(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_discard_stats(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_before_server_shutdown(code: ::std::os::raw::c_int, arg: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_initialize(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_stat(force: bool) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_force_next_flush(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_reset_counters(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_reset(kind: PgStat_Kind, dboid: Oid, objoid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_reset_of_kind(kind: PgStat_Kind); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_clear_snapshot(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_stat_snapshot_timestamp(have_snapshot: *mut bool) -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_kind_from_str(kind_str: *mut ::std::os::raw::c_char) -> PgStat_Kind; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_have_entry(kind: PgStat_Kind, dboid: Oid, objoid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_archiver(xlog: *const ::std::os::raw::c_char, failed: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_archiver() -> *mut PgStat_ArchiverStats; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_bgwriter(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_bgwriter() -> *mut PgStat_BgWriterStats; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_checkpointer(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_checkpointer() -> *mut PgStat_CheckpointerStats; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_bktype_io_stats_valid( + backend_io: *mut PgStat_BktypeIO, + bktype: BackendType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_io_op(io_object: IOObject, io_context: IOContext, io_op: IOOp); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_io_op_n( + io_object: IOObject, + io_context: IOContext, + io_op: IOOp, + cnt: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_prepare_io_time() -> instr_time; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_io_op_time( + io_object: IOObject, + io_context: IOContext, + io_op: IOOp, + start_time: instr_time, + cnt: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_io() -> *mut PgStat_IO; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_io_context_name(io_context: IOContext) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_io_object_name(io_object: IOObject) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_tracks_io_bktype(bktype: BackendType) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_tracks_io_object( + bktype: BackendType, + io_object: IOObject, + io_context: IOContext, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_tracks_io_op( + bktype: BackendType, + io_object: IOObject, + io_context: IOContext, + io_op: IOOp, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_drop_database(databaseid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_autovac(dboid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_recovery_conflict(reason: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_deadlock(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_checksum_failures_in_db(dboid: Oid, failurecount: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_checksum_failure(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_connect(dboid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_dbentry(dboid: Oid) -> *mut PgStat_StatDBEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_create_function(proid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_drop_function(proid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_init_function_usage( + fcinfo: *mut FunctionCallInfoBaseData, + fcu: *mut PgStat_FunctionCallUsage, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_end_function_usage(fcu: *mut PgStat_FunctionCallUsage, finalize: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_funcentry(func_id: Oid) -> *mut PgStat_StatFuncEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_funcstat_entry(func_id: Oid) -> *mut PgStat_FunctionCounts; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_create_relation(rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_drop_relation(rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_copy_relation_stats(dst: Relation, src: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_init_relation(rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_assoc_relation(rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_unlink_relation(rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_vacuum( + tableoid: Oid, + shared: bool, + livetuples: PgStat_Counter, + deadtuples: PgStat_Counter, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_analyze( + rel: Relation, + livetuples: PgStat_Counter, + deadtuples: PgStat_Counter, + resetcounter: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_heap_insert(rel: Relation, n: PgStat_Counter); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_heap_update(rel: Relation, hot: bool, newpage: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_heap_delete(rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_truncate(rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_update_heap_dead_tuples(rel: Relation, delta: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_twophase_postcommit( + xid: TransactionId, + info: uint16, + recdata: *mut ::std::os::raw::c_void, + len: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_twophase_postabort( + xid: TransactionId, + info: uint16, + recdata: *mut ::std::os::raw::c_void, + len: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_tabentry(relid: Oid) -> *mut PgStat_StatTabEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_tabentry_ext(shared: bool, reloid: Oid) -> *mut PgStat_StatTabEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_tabstat_entry(rel_id: Oid) -> *mut PgStat_TableStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_reset_replslot(name: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_replslot( + slot: *mut ReplicationSlot, + repSlotStat: *const PgStat_StatReplSlotEntry, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_create_replslot(slot: *mut ReplicationSlot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_acquire_replslot(slot: *mut ReplicationSlot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_drop_replslot(slot: *mut ReplicationSlot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_replslot(slotname: NameData) -> *mut PgStat_StatReplSlotEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_reset_slru(arg1: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_slru_page_zeroed(slru_idx: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_slru_page_hit(slru_idx: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_slru_page_read(slru_idx: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_slru_page_written(slru_idx: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_slru_page_exists(slru_idx: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_slru_flush(slru_idx: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_count_slru_truncate(slru_idx: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_slru_name(slru_idx: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_slru_index(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_slru() -> *mut PgStat_SLRUStats; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_subscription_error(subid: Oid, is_apply_error: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_create_subscription(subid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_drop_subscription(subid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_subscription(subid: Oid) -> *mut PgStat_StatSubEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_PgStat(isCommit: bool, parallel: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOSubXact_PgStat(isCommit: bool, nestDepth: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtPrepare_PgStat(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PostPrepare_PgStat(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_get_transactional_drops( + isCommit: bool, + items: *mut *mut xl_xact_stats_item, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_execute_transactional_drops( + ndrops: ::std::os::raw::c_int, + items: *mut xl_xact_stats_item, + is_redo: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_report_wal(force: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgstat_fetch_stat_wal() -> *mut PgStat_WalStats; +} +extern "C" { + pub static mut pgstat_track_counts: bool; +} +extern "C" { + pub static mut pgstat_track_functions: ::std::os::raw::c_int; +} +extern "C" { + pub static mut pgstat_fetch_consistency: ::std::os::raw::c_int; +} +extern "C" { + pub static mut PendingBgWriterStats: PgStat_BgWriterStats; +} +extern "C" { + pub static mut PendingCheckpointerStats: PgStat_CheckpointerStats; +} +extern "C" { + pub static mut pgStatBlockReadTime: PgStat_Counter; +} +extern "C" { + pub static mut pgStatBlockWriteTime: PgStat_Counter; +} +extern "C" { + pub static mut pgStatActiveTime: PgStat_Counter; +} +extern "C" { + pub static mut pgStatTransactionIdleTime: PgStat_Counter; +} +extern "C" { + pub static mut pgStatSessionEndCause: SessionEndType; +} +extern "C" { + pub static mut PendingWalStats: PgStat_PendingWalStats; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ScanKeyData { + pub sk_flags: ::std::os::raw::c_int, + pub sk_attno: AttrNumber, + pub sk_strategy: StrategyNumber, + pub sk_subtype: Oid, + pub sk_collation: Oid, + pub sk_func: FmgrInfo, + pub sk_argument: Datum, +} +impl Default for ScanKeyData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ScanKey = *mut ScanKeyData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ScanKeyInit( + entry: ScanKey, + attributeNumber: AttrNumber, + strategy: StrategyNumber, + procedure: RegProcedure, + argument: Datum, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ScanKeyEntryInitialize( + entry: ScanKey, + flags: ::std::os::raw::c_int, + attributeNumber: AttrNumber, + strategy: StrategyNumber, + subtype: Oid, + collation: Oid, + procedure: RegProcedure, + argument: Datum, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ScanKeyEntryInitializeWithInfo( + entry: ScanKey, + flags: ::std::os::raw::c_int, + attributeNumber: AttrNumber, + strategy: StrategyNumber, + subtype: Oid, + collation: Oid, + finfo: *mut FmgrInfo, + argument: Datum, + ); +} +pub type LOCKMASK = ::std::os::raw::c_int; +pub type LOCKMODE = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xl_standby_lock { + pub xid: TransactionId, + pub dbOid: Oid, + pub relOid: Oid, +} +impl Default for xl_standby_lock { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct IndexBuildResult { + pub heap_tuples: f64, + pub index_tuples: f64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexVacuumInfo { + pub index: Relation, + pub heaprel: Relation, + pub analyze_only: bool, + pub report_progress: bool, + pub estimated_count: bool, + pub message_level: ::std::os::raw::c_int, + pub num_heap_tuples: f64, + pub strategy: BufferAccessStrategy, +} +impl Default for IndexVacuumInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct IndexBulkDeleteResult { + pub num_pages: BlockNumber, + pub estimated_count: bool, + pub num_index_tuples: f64, + pub tuples_removed: f64, + pub pages_newly_deleted: BlockNumber, + pub pages_deleted: BlockNumber, + pub pages_free: BlockNumber, +} +pub type IndexBulkDeleteCallback = ::std::option::Option< + unsafe extern "C" fn(itemptr: ItemPointer, state: *mut ::std::os::raw::c_void) -> bool, +>; +pub type IndexScanDesc = *mut IndexScanDescData; +pub type SysScanDesc = *mut SysScanDescData; +pub type ParallelIndexScanDesc = *mut ParallelIndexScanDescData; +pub const IndexUniqueCheck_UNIQUE_CHECK_NO: IndexUniqueCheck = 0; +pub const IndexUniqueCheck_UNIQUE_CHECK_YES: IndexUniqueCheck = 1; +pub const IndexUniqueCheck_UNIQUE_CHECK_PARTIAL: IndexUniqueCheck = 2; +pub const IndexUniqueCheck_UNIQUE_CHECK_EXISTING: IndexUniqueCheck = 3; +pub type IndexUniqueCheck = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct IndexOrderByDistance { + pub value: f64, + pub isnull: bool, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_open(relationId: Oid, lockmode: LOCKMODE) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_close(relation: Relation, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_insert( + indexRelation: Relation, + values: *mut Datum, + isnull: *mut bool, + heap_t_ctid: ItemPointer, + heapRelation: Relation, + checkUnique: IndexUniqueCheck, + indexUnchanged: bool, + indexInfo: *mut IndexInfo, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_beginscan( + heapRelation: Relation, + indexRelation: Relation, + snapshot: Snapshot, + nkeys: ::std::os::raw::c_int, + norderbys: ::std::os::raw::c_int, + ) -> IndexScanDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_beginscan_bitmap( + indexRelation: Relation, + snapshot: Snapshot, + nkeys: ::std::os::raw::c_int, + ) -> IndexScanDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_rescan( + scan: IndexScanDesc, + keys: ScanKey, + nkeys: ::std::os::raw::c_int, + orderbys: ScanKey, + norderbys: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_endscan(scan: IndexScanDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_markpos(scan: IndexScanDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_restrpos(scan: IndexScanDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_parallelscan_estimate(indexRelation: Relation, snapshot: Snapshot) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_parallelscan_initialize( + heapRelation: Relation, + indexRelation: Relation, + snapshot: Snapshot, + target: ParallelIndexScanDesc, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_parallelrescan(scan: IndexScanDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_beginscan_parallel( + heaprel: Relation, + indexrel: Relation, + nkeys: ::std::os::raw::c_int, + norderbys: ::std::os::raw::c_int, + pscan: ParallelIndexScanDesc, + ) -> IndexScanDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_getnext_tid(scan: IndexScanDesc, direction: ScanDirection) -> ItemPointer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_fetch_heap(scan: IndexScanDesc, slot: *mut TupleTableSlot) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_getnext_slot( + scan: IndexScanDesc, + direction: ScanDirection, + slot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_getbitmap(scan: IndexScanDesc, bitmap: *mut TIDBitmap) -> int64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_bulk_delete( + info: *mut IndexVacuumInfo, + istat: *mut IndexBulkDeleteResult, + callback: IndexBulkDeleteCallback, + callback_state: *mut ::std::os::raw::c_void, + ) -> *mut IndexBulkDeleteResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_vacuum_cleanup( + info: *mut IndexVacuumInfo, + istat: *mut IndexBulkDeleteResult, + ) -> *mut IndexBulkDeleteResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_can_return(indexRelation: Relation, attno: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_getprocid(irel: Relation, attnum: AttrNumber, procnum: uint16) -> RegProcedure; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_getprocinfo(irel: Relation, attnum: AttrNumber, procnum: uint16) -> *mut FmgrInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_store_float8_orderby_distances( + scan: IndexScanDesc, + orderByTypes: *mut Oid, + distances: *mut IndexOrderByDistance, + recheckOrderBy: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_opclass_options( + indrel: Relation, + attnum: AttrNumber, + attoptions: Datum, + validate: bool, + ) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetIndexScan( + indexRelation: Relation, + nkeys: ::std::os::raw::c_int, + norderbys: ::std::os::raw::c_int, + ) -> IndexScanDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IndexScanEnd(scan: IndexScanDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildIndexValueDescription( + indexRelation: Relation, + values: *mut Datum, + isnull: *mut bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_compute_xid_horizon_for_tuples( + irel: Relation, + hrel: Relation, + ibuf: Buffer, + itemnos: *mut OffsetNumber, + nitems: ::std::os::raw::c_int, + ) -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn systable_beginscan( + heapRelation: Relation, + indexId: Oid, + indexOK: bool, + snapshot: Snapshot, + nkeys: ::std::os::raw::c_int, + key: ScanKey, + ) -> SysScanDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn systable_getnext(sysscan: SysScanDesc) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn systable_recheck_tuple(sysscan: SysScanDesc, tup: HeapTuple) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn systable_endscan(sysscan: SysScanDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn systable_beginscan_ordered( + heapRelation: Relation, + indexRelation: Relation, + snapshot: Snapshot, + nkeys: ::std::os::raw::c_int, + key: ScanKey, + ) -> SysScanDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn systable_getnext_ordered(sysscan: SysScanDesc, direction: ScanDirection) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn systable_endscan_ordered(sysscan: SysScanDesc); +} +pub const IndexAMProperty_AMPROP_UNKNOWN: IndexAMProperty = 0; +pub const IndexAMProperty_AMPROP_ASC: IndexAMProperty = 1; +pub const IndexAMProperty_AMPROP_DESC: IndexAMProperty = 2; +pub const IndexAMProperty_AMPROP_NULLS_FIRST: IndexAMProperty = 3; +pub const IndexAMProperty_AMPROP_NULLS_LAST: IndexAMProperty = 4; +pub const IndexAMProperty_AMPROP_ORDERABLE: IndexAMProperty = 5; +pub const IndexAMProperty_AMPROP_DISTANCE_ORDERABLE: IndexAMProperty = 6; +pub const IndexAMProperty_AMPROP_RETURNABLE: IndexAMProperty = 7; +pub const IndexAMProperty_AMPROP_SEARCH_ARRAY: IndexAMProperty = 8; +pub const IndexAMProperty_AMPROP_SEARCH_NULLS: IndexAMProperty = 9; +pub const IndexAMProperty_AMPROP_CLUSTERABLE: IndexAMProperty = 10; +pub const IndexAMProperty_AMPROP_INDEX_SCAN: IndexAMProperty = 11; +pub const IndexAMProperty_AMPROP_BITMAP_SCAN: IndexAMProperty = 12; +pub const IndexAMProperty_AMPROP_BACKWARD_SCAN: IndexAMProperty = 13; +pub const IndexAMProperty_AMPROP_CAN_ORDER: IndexAMProperty = 14; +pub const IndexAMProperty_AMPROP_CAN_UNIQUE: IndexAMProperty = 15; +pub const IndexAMProperty_AMPROP_CAN_MULTI_COL: IndexAMProperty = 16; +pub const IndexAMProperty_AMPROP_CAN_EXCLUDE: IndexAMProperty = 17; +pub const IndexAMProperty_AMPROP_CAN_INCLUDE: IndexAMProperty = 18; +pub type IndexAMProperty = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct OpFamilyMember { + pub is_func: bool, + pub object: Oid, + pub number: ::std::os::raw::c_int, + pub lefttype: Oid, + pub righttype: Oid, + pub sortfamily: Oid, + pub ref_is_hard: bool, + pub ref_is_family: bool, + pub refobjid: Oid, +} +impl Default for OpFamilyMember { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ambuild_function = ::std::option::Option< + unsafe extern "C" fn( + heapRelation: Relation, + indexRelation: Relation, + indexInfo: *mut IndexInfo, + ) -> *mut IndexBuildResult, +>; +pub type ambuildempty_function = + ::std::option::Option; +pub type aminsert_function = ::std::option::Option< + unsafe extern "C" fn( + indexRelation: Relation, + values: *mut Datum, + isnull: *mut bool, + heap_tid: ItemPointer, + heapRelation: Relation, + checkUnique: IndexUniqueCheck, + indexUnchanged: bool, + indexInfo: *mut IndexInfo, + ) -> bool, +>; +pub type ambulkdelete_function = ::std::option::Option< + unsafe extern "C" fn( + info: *mut IndexVacuumInfo, + stats: *mut IndexBulkDeleteResult, + callback: IndexBulkDeleteCallback, + callback_state: *mut ::std::os::raw::c_void, + ) -> *mut IndexBulkDeleteResult, +>; +pub type amvacuumcleanup_function = ::std::option::Option< + unsafe extern "C" fn( + info: *mut IndexVacuumInfo, + stats: *mut IndexBulkDeleteResult, + ) -> *mut IndexBulkDeleteResult, +>; +pub type amcanreturn_function = ::std::option::Option< + unsafe extern "C" fn(indexRelation: Relation, attno: ::std::os::raw::c_int) -> bool, +>; +pub type amcostestimate_function = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + path: *mut IndexPath, + loop_count: f64, + indexStartupCost: *mut Cost, + indexTotalCost: *mut Cost, + indexSelectivity: *mut Selectivity, + indexCorrelation: *mut f64, + indexPages: *mut f64, + ), +>; +pub type amoptions_function = + ::std::option::Option *mut bytea>; +pub type amproperty_function = ::std::option::Option< + unsafe extern "C" fn( + index_oid: Oid, + attno: ::std::os::raw::c_int, + prop: IndexAMProperty, + propname: *const ::std::os::raw::c_char, + res: *mut bool, + isnull: *mut bool, + ) -> bool, +>; +pub type ambuildphasename_function = + ::std::option::Option *mut ::std::os::raw::c_char>; +pub type amvalidate_function = ::std::option::Option bool>; +pub type amadjustmembers_function = ::std::option::Option< + unsafe extern "C" fn( + opfamilyoid: Oid, + opclassoid: Oid, + operators: *mut List, + functions: *mut List, + ), +>; +pub type ambeginscan_function = ::std::option::Option< + unsafe extern "C" fn( + indexRelation: Relation, + nkeys: ::std::os::raw::c_int, + norderbys: ::std::os::raw::c_int, + ) -> IndexScanDesc, +>; +pub type amrescan_function = ::std::option::Option< + unsafe extern "C" fn( + scan: IndexScanDesc, + keys: ScanKey, + nkeys: ::std::os::raw::c_int, + orderbys: ScanKey, + norderbys: ::std::os::raw::c_int, + ), +>; +pub type amgettuple_function = ::std::option::Option< + unsafe extern "C" fn(scan: IndexScanDesc, direction: ScanDirection) -> bool, +>; +pub type amgetbitmap_function = + ::std::option::Option int64>; +pub type amendscan_function = ::std::option::Option; +pub type ammarkpos_function = ::std::option::Option; +pub type amrestrpos_function = ::std::option::Option; +pub type amestimateparallelscan_function = ::std::option::Option Size>; +pub type aminitparallelscan_function = + ::std::option::Option; +pub type amparallelrescan_function = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexAmRoutine { + pub type_: NodeTag, + pub amstrategies: uint16, + pub amsupport: uint16, + pub amoptsprocnum: uint16, + pub amcanorder: bool, + pub amcanorderbyop: bool, + pub amcanbackward: bool, + pub amcanunique: bool, + pub amcanmulticol: bool, + pub amoptionalkey: bool, + pub amsearcharray: bool, + pub amsearchnulls: bool, + pub amstorage: bool, + pub amclusterable: bool, + pub ampredlocks: bool, + pub amcanparallel: bool, + pub amcaninclude: bool, + pub amusemaintenanceworkmem: bool, + pub amsummarizing: bool, + pub amparallelvacuumoptions: uint8, + pub amkeytype: Oid, + pub ambuild: ambuild_function, + pub ambuildempty: ambuildempty_function, + pub aminsert: aminsert_function, + pub ambulkdelete: ambulkdelete_function, + pub amvacuumcleanup: amvacuumcleanup_function, + pub amcanreturn: amcanreturn_function, + pub amcostestimate: amcostestimate_function, + pub amoptions: amoptions_function, + pub amproperty: amproperty_function, + pub ambuildphasename: ambuildphasename_function, + pub amvalidate: amvalidate_function, + pub amadjustmembers: amadjustmembers_function, + pub ambeginscan: ambeginscan_function, + pub amrescan: amrescan_function, + pub amgettuple: amgettuple_function, + pub amgetbitmap: amgetbitmap_function, + pub amendscan: amendscan_function, + pub ammarkpos: ammarkpos_function, + pub amrestrpos: amrestrpos_function, + pub amestimateparallelscan: amestimateparallelscan_function, + pub aminitparallelscan: aminitparallelscan_function, + pub amparallelrescan: amparallelrescan_function, +} +impl Default for IndexAmRoutine { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetIndexAmRoutine(amhandler: Oid) -> *mut IndexAmRoutine; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetIndexAmRoutineByAmId(amoid: Oid, noerror: bool) -> *mut IndexAmRoutine; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BackupState { + pub name: [::std::os::raw::c_char; 1025usize], + pub startpoint: XLogRecPtr, + pub starttli: TimeLineID, + pub checkpointloc: XLogRecPtr, + pub starttime: pg_time_t, + pub started_in_recovery: bool, + pub stoppoint: XLogRecPtr, + pub stoptli: TimeLineID, + pub stoptime: pg_time_t, +} +impl Default for BackupState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_backup_content( + state: *mut BackupState, + ishistoryfile: bool, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut sync_method: ::std::os::raw::c_int; +} +extern "C" { + pub static mut ProcLastRecPtr: XLogRecPtr; +} +extern "C" { + pub static mut XactLastRecEnd: XLogRecPtr; +} +extern "C" { + pub static mut XactLastCommitEnd: XLogRecPtr; +} +extern "C" { + pub static mut wal_segment_size: ::std::os::raw::c_int; +} +extern "C" { + pub static mut min_wal_size_mb: ::std::os::raw::c_int; +} +extern "C" { + pub static mut max_wal_size_mb: ::std::os::raw::c_int; +} +extern "C" { + pub static mut wal_keep_size_mb: ::std::os::raw::c_int; +} +extern "C" { + pub static mut max_slot_wal_keep_size_mb: ::std::os::raw::c_int; +} +extern "C" { + pub static mut XLOGbuffers: ::std::os::raw::c_int; +} +extern "C" { + pub static mut XLogArchiveTimeout: ::std::os::raw::c_int; +} +extern "C" { + pub static mut wal_retrieve_retry_interval: ::std::os::raw::c_int; +} +extern "C" { + pub static mut XLogArchiveCommand: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut EnableHotStandby: bool; +} +extern "C" { + pub static mut fullPageWrites: bool; +} +extern "C" { + pub static mut wal_log_hints: bool; +} +extern "C" { + pub static mut wal_compression: ::std::os::raw::c_int; +} +extern "C" { + pub static mut wal_init_zero: bool; +} +extern "C" { + pub static mut wal_recycle: bool; +} +extern "C" { + pub static mut wal_consistency_checking: *mut bool; +} +extern "C" { + pub static mut wal_consistency_checking_string: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut log_checkpoints: bool; +} +extern "C" { + pub static mut track_wal_io_timing: bool; +} +extern "C" { + pub static mut wal_decode_buffer_size: ::std::os::raw::c_int; +} +extern "C" { + pub static mut CheckPointSegments: ::std::os::raw::c_int; +} +pub const ArchiveMode_ARCHIVE_MODE_OFF: ArchiveMode = 0; +pub const ArchiveMode_ARCHIVE_MODE_ON: ArchiveMode = 1; +pub const ArchiveMode_ARCHIVE_MODE_ALWAYS: ArchiveMode = 2; +pub type ArchiveMode = ::std::os::raw::c_uint; +extern "C" { + pub static mut XLogArchiveMode: ::std::os::raw::c_int; +} +pub const WalLevel_WAL_LEVEL_MINIMAL: WalLevel = 0; +pub const WalLevel_WAL_LEVEL_REPLICA: WalLevel = 1; +pub const WalLevel_WAL_LEVEL_LOGICAL: WalLevel = 2; +pub type WalLevel = ::std::os::raw::c_uint; +pub const WalCompression_WAL_COMPRESSION_NONE: WalCompression = 0; +pub const WalCompression_WAL_COMPRESSION_PGLZ: WalCompression = 1; +pub const WalCompression_WAL_COMPRESSION_LZ4: WalCompression = 2; +pub const WalCompression_WAL_COMPRESSION_ZSTD: WalCompression = 3; +pub type WalCompression = ::std::os::raw::c_uint; +pub const RecoveryState_RECOVERY_STATE_CRASH: RecoveryState = 0; +pub const RecoveryState_RECOVERY_STATE_ARCHIVE: RecoveryState = 1; +pub const RecoveryState_RECOVERY_STATE_DONE: RecoveryState = 2; +pub type RecoveryState = ::std::os::raw::c_uint; +extern "C" { + pub static mut wal_level: ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CheckpointStatsData { + pub ckpt_start_t: TimestampTz, + pub ckpt_write_t: TimestampTz, + pub ckpt_sync_t: TimestampTz, + pub ckpt_sync_end_t: TimestampTz, + pub ckpt_end_t: TimestampTz, + pub ckpt_bufs_written: ::std::os::raw::c_int, + pub ckpt_segs_added: ::std::os::raw::c_int, + pub ckpt_segs_removed: ::std::os::raw::c_int, + pub ckpt_segs_recycled: ::std::os::raw::c_int, + pub ckpt_sync_rels: ::std::os::raw::c_int, + pub ckpt_longest_sync: uint64, + pub ckpt_agg_sync_time: uint64, +} +extern "C" { + pub static mut CheckpointStats: CheckpointStatsData; +} +pub const WALAvailability_WALAVAIL_INVALID_LSN: WALAvailability = 0; +pub const WALAvailability_WALAVAIL_RESERVED: WALAvailability = 1; +pub const WALAvailability_WALAVAIL_EXTENDED: WALAvailability = 2; +pub const WALAvailability_WALAVAIL_UNRESERVED: WALAvailability = 3; +pub const WALAvailability_WALAVAIL_REMOVED: WALAvailability = 4; +pub type WALAvailability = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogInsertRecord( + rdata: *mut XLogRecData, + fpw_lsn: XLogRecPtr, + flags: uint8, + num_fpi: ::std::os::raw::c_int, + topxid_included: bool, + ) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogFlush(record: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogBackgroundFlush() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogNeedsFlush(record: XLogRecPtr) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogFileInit(logsegno: XLogSegNo, logtli: TimeLineID) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogFileOpen(segno: XLogSegNo, tli: TimeLineID) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckXLogRemoved(segno: XLogSegNo, tli: TimeLineID); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogGetLastRemovedSegno() -> XLogSegNo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogSetAsyncXactLSN(asyncXactLSN: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogSetReplicationSlotMinimumLSN(lsn: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xlog_redo(record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xlog_desc(buf: StringInfo, record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xlog_identify(info: uint8) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn issue_xlog_fsync(fd: ::std::os::raw::c_int, segno: XLogSegNo, tli: TimeLineID); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RecoveryInProgress() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetRecoveryState() -> RecoveryState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogInsertAllowed() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetXLogInsertRecPtr() -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetXLogWriteRecPtr() -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSystemIdentifier() -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetMockAuthenticationNonce() -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DataChecksumsEnabled() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetFakeLSNForUnloggedRel() -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLOGShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLOGShmemInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BootStrapXLOG(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeWalConsistencyChecking(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LocalProcessControlFile(reset: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetActiveWalLevelOnStandby() -> WalLevel; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StartupXLOG(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShutdownXLOG(code: ::std::os::raw::c_int, arg: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateCheckPoint(flags: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateRestartPoint(flags: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetWALAvailability(targetLSN: XLogRecPtr) -> WALAvailability; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogPutNextOid(nextOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRestorePoint(rpName: *const ::std::os::raw::c_char) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UpdateFullPageWrites(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetFullPageWriteInfo(RedoRecPtr_p: *mut XLogRecPtr, doPageWrites_p: *mut bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetRedoRecPtr() -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetInsertRecPtr() -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetFlushRecPtr(insertTLI: *mut TimeLineID) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetWALInsertionTimeLine() -> TimeLineID; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLastImportantRecPtr() -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetWalWriterSleeping(sleeping: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveNonParentXlogFiles(switchpoint: XLogRecPtr, newTLI: TimeLineID); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogCheckpointNeeded(new_segno: XLogSegNo) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SwitchIntoArchiveRecovery(EndRecPtr: XLogRecPtr, replayTLI: TimeLineID); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReachedEndOfBackup(EndRecPtr: XLogRecPtr, tli: TimeLineID); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetInstallXLogFileSegmentActive(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsInstallXLogFileSegmentActive() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogShutdownWalRcv(); +} +pub const SessionBackupState_SESSION_BACKUP_NONE: SessionBackupState = 0; +pub const SessionBackupState_SESSION_BACKUP_RUNNING: SessionBackupState = 1; +pub type SessionBackupState = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn do_pg_backup_start( + backupidstr: *const ::std::os::raw::c_char, + fast: bool, + tablespaces: *mut *mut List, + state: *mut BackupState, + tblspcmapfile: StringInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn do_pg_backup_stop(state: *mut BackupState, waitforarchive: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn do_pg_abort_backup(code: ::std::os::raw::c_int, arg: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn register_persistent_abort_backup_handler(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_backup_status() -> SessionBackupState; +} +pub type RmgrId = uint8; +pub const RmgrIds_RM_XLOG_ID: RmgrIds = 0; +pub const RmgrIds_RM_XACT_ID: RmgrIds = 1; +pub const RmgrIds_RM_SMGR_ID: RmgrIds = 2; +pub const RmgrIds_RM_CLOG_ID: RmgrIds = 3; +pub const RmgrIds_RM_DBASE_ID: RmgrIds = 4; +pub const RmgrIds_RM_TBLSPC_ID: RmgrIds = 5; +pub const RmgrIds_RM_MULTIXACT_ID: RmgrIds = 6; +pub const RmgrIds_RM_RELMAP_ID: RmgrIds = 7; +pub const RmgrIds_RM_STANDBY_ID: RmgrIds = 8; +pub const RmgrIds_RM_HEAP2_ID: RmgrIds = 9; +pub const RmgrIds_RM_HEAP_ID: RmgrIds = 10; +pub const RmgrIds_RM_BTREE_ID: RmgrIds = 11; +pub const RmgrIds_RM_HASH_ID: RmgrIds = 12; +pub const RmgrIds_RM_GIN_ID: RmgrIds = 13; +pub const RmgrIds_RM_GIST_ID: RmgrIds = 14; +pub const RmgrIds_RM_SEQ_ID: RmgrIds = 15; +pub const RmgrIds_RM_SPGIST_ID: RmgrIds = 16; +pub const RmgrIds_RM_BRIN_ID: RmgrIds = 17; +pub const RmgrIds_RM_COMMIT_TS_ID: RmgrIds = 18; +pub const RmgrIds_RM_REPLORIGIN_ID: RmgrIds = 19; +pub const RmgrIds_RM_GENERIC_ID: RmgrIds = 20; +pub const RmgrIds_RM_LOGICALMSG_ID: RmgrIds = 21; +pub const RmgrIds_RM_NEXT_ID: RmgrIds = 22; +pub type RmgrIds = ::std::os::raw::c_uint; +pub type pg_crc32c = uint32; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_comp_crc32c_sb8( + crc: pg_crc32c, + data: *const ::std::os::raw::c_void, + len: usize, + ) -> pg_crc32c; +} +extern "C" { + pub static mut pg_comp_crc32c: ::std::option::Option< + unsafe extern "C" fn( + crc: pg_crc32c, + data: *const ::std::os::raw::c_void, + len: usize, + ) -> pg_crc32c, + >; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_comp_crc32c_sse42( + crc: pg_crc32c, + data: *const ::std::os::raw::c_void, + len: usize, + ) -> pg_crc32c; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RelFileLocator { + pub spcOid: Oid, + pub dbOid: Oid, + pub relNumber: RelFileNumber, +} +impl Default for RelFileLocator { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RelFileLocatorBackend { + pub locator: RelFileLocator, + pub backend: BackendId, +} +impl Default for RelFileLocatorBackend { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XLogRecord { + pub xl_tot_len: uint32, + pub xl_xid: TransactionId, + pub xl_prev: XLogRecPtr, + pub xl_info: uint8, + pub xl_rmid: RmgrId, + pub xl_crc: pg_crc32c, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XLogRecordBlockHeader { + pub id: uint8, + pub fork_flags: uint8, + pub data_length: uint16, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XLogRecordBlockImageHeader { + pub length: uint16, + pub hole_offset: uint16, + pub bimg_info: uint8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XLogRecordBlockCompressHeader { + pub hole_length: uint16, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XLogRecordDataHeaderShort { + pub id: uint8, + pub data_length: uint8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XLogRecordDataHeaderLong { + pub id: uint8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct WALOpenSegment { + pub ws_file: ::std::os::raw::c_int, + pub ws_segno: XLogSegNo, + pub ws_tli: TimeLineID, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WALSegmentContext { + pub ws_dir: [::std::os::raw::c_char; 1024usize], + pub ws_segsize: ::std::os::raw::c_int, +} +impl Default for WALSegmentContext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type XLogPageReadCB = ::std::option::Option< + unsafe extern "C" fn( + xlogreader: *mut XLogReaderState, + targetPagePtr: XLogRecPtr, + reqLen: ::std::os::raw::c_int, + targetRecPtr: XLogRecPtr, + readBuf: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int, +>; +pub type WALSegmentOpenCB = ::std::option::Option< + unsafe extern "C" fn( + xlogreader: *mut XLogReaderState, + nextSegNo: XLogSegNo, + tli_p: *mut TimeLineID, + ), +>; +pub type WALSegmentCloseCB = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XLogReaderRoutine { + pub page_read: XLogPageReadCB, + pub segment_open: WALSegmentOpenCB, + pub segment_close: WALSegmentCloseCB, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DecodedBkpBlock { + pub in_use: bool, + pub rlocator: RelFileLocator, + pub forknum: ForkNumber, + pub blkno: BlockNumber, + pub prefetch_buffer: Buffer, + pub flags: uint8, + pub has_image: bool, + pub apply_image: bool, + pub bkp_image: *mut ::std::os::raw::c_char, + pub hole_offset: uint16, + pub hole_length: uint16, + pub bimg_len: uint16, + pub bimg_info: uint8, + pub has_data: bool, + pub data: *mut ::std::os::raw::c_char, + pub data_len: uint16, + pub data_bufsz: uint16, +} +impl Default for DecodedBkpBlock { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug)] +pub struct DecodedXLogRecord { + pub size: usize, + pub oversized: bool, + pub next: *mut DecodedXLogRecord, + pub lsn: XLogRecPtr, + pub next_lsn: XLogRecPtr, + pub header: XLogRecord, + pub record_origin: RepOriginId, + pub toplevel_xid: TransactionId, + pub main_data: *mut ::std::os::raw::c_char, + pub main_data_len: uint32, + pub max_block_id: ::std::os::raw::c_int, + pub blocks: __IncompleteArrayField, +} +impl Default for DecodedXLogRecord { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct XLogReaderState { + pub routine: XLogReaderRoutine, + pub system_identifier: uint64, + pub private_data: *mut ::std::os::raw::c_void, + pub ReadRecPtr: XLogRecPtr, + pub EndRecPtr: XLogRecPtr, + pub abortedRecPtr: XLogRecPtr, + pub missingContrecPtr: XLogRecPtr, + pub overwrittenRecPtr: XLogRecPtr, + pub DecodeRecPtr: XLogRecPtr, + pub NextRecPtr: XLogRecPtr, + pub PrevRecPtr: XLogRecPtr, + pub record: *mut DecodedXLogRecord, + pub decode_buffer: *mut ::std::os::raw::c_char, + pub decode_buffer_size: usize, + pub free_decode_buffer: bool, + pub decode_buffer_head: *mut ::std::os::raw::c_char, + pub decode_buffer_tail: *mut ::std::os::raw::c_char, + pub decode_queue_head: *mut DecodedXLogRecord, + pub decode_queue_tail: *mut DecodedXLogRecord, + pub readBuf: *mut ::std::os::raw::c_char, + pub readLen: uint32, + pub segcxt: WALSegmentContext, + pub seg: WALOpenSegment, + pub segoff: uint32, + pub latestPagePtr: XLogRecPtr, + pub latestPageTLI: TimeLineID, + pub currRecPtr: XLogRecPtr, + pub currTLI: TimeLineID, + pub currTLIValidUntil: XLogRecPtr, + pub nextTLI: TimeLineID, + pub readRecordBuf: *mut ::std::os::raw::c_char, + pub readRecordBufSize: uint32, + pub errormsg_buf: *mut ::std::os::raw::c_char, + pub errormsg_deferred: bool, + pub nonblocking: bool, +} +impl Default for XLogReaderState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogReaderAllocate( + wal_segment_size: ::std::os::raw::c_int, + waldir: *const ::std::os::raw::c_char, + routine: *mut XLogReaderRoutine, + private_data: *mut ::std::os::raw::c_void, + ) -> *mut XLogReaderState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogReaderFree(state: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogReaderSetDecodeBuffer( + state: *mut XLogReaderState, + buffer: *mut ::std::os::raw::c_void, + size: usize, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogBeginRead(state: *mut XLogReaderState, RecPtr: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogFindNextRecord(state: *mut XLogReaderState, RecPtr: XLogRecPtr) -> XLogRecPtr; +} +pub const XLogPageReadResult_XLREAD_SUCCESS: XLogPageReadResult = 0; +pub const XLogPageReadResult_XLREAD_FAIL: XLogPageReadResult = -1; +pub const XLogPageReadResult_XLREAD_WOULDBLOCK: XLogPageReadResult = -2; +pub type XLogPageReadResult = ::std::os::raw::c_int; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogReadRecord( + state: *mut XLogReaderState, + errormsg: *mut *mut ::std::os::raw::c_char, + ) -> *mut XLogRecord; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogNextRecord( + state: *mut XLogReaderState, + errormsg: *mut *mut ::std::os::raw::c_char, + ) -> *mut DecodedXLogRecord; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogReleasePreviousRecord(state: *mut XLogReaderState) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogReadAhead(state: *mut XLogReaderState, nonblocking: bool) -> *mut DecodedXLogRecord; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogReaderValidatePageHeader( + state: *mut XLogReaderState, + recptr: XLogRecPtr, + phdr: *mut ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogReaderResetError(state: *mut XLogReaderState); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct WALReadError { + pub wre_errno: ::std::os::raw::c_int, + pub wre_off: ::std::os::raw::c_int, + pub wre_req: ::std::os::raw::c_int, + pub wre_read: ::std::os::raw::c_int, + pub wre_seg: WALOpenSegment, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WALRead( + state: *mut XLogReaderState, + buf: *mut ::std::os::raw::c_char, + startptr: XLogRecPtr, + count: Size, + tli: TimeLineID, + errinfo: *mut WALReadError, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeXLogRecordRequiredSpace(xl_tot_len: usize) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeXLogRecord( + state: *mut XLogReaderState, + decoded: *mut DecodedXLogRecord, + record: *mut XLogRecord, + lsn: XLogRecPtr, + errormsg: *mut *mut ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRecGetFullXid(record: *mut XLogReaderState) -> FullTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreBlockImage( + record: *mut XLogReaderState, + block_id: uint8, + page: *mut ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRecGetBlockData( + record: *mut XLogReaderState, + block_id: uint8, + len: *mut Size, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRecGetBlockTag( + record: *mut XLogReaderState, + block_id: uint8, + rlocator: *mut RelFileLocator, + forknum: *mut ForkNumber, + blknum: *mut BlockNumber, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRecGetBlockTagExtended( + record: *mut XLogReaderState, + block_id: uint8, + rlocator: *mut RelFileLocator, + forknum: *mut ForkNumber, + blknum: *mut BlockNumber, + prefetch_buffer: *mut Buffer, + ) -> bool; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XLogPageHeaderData { + pub xlp_magic: uint16, + pub xlp_info: uint16, + pub xlp_tli: TimeLineID, + pub xlp_pageaddr: XLogRecPtr, + pub xlp_rem_len: uint32, +} +pub type XLogPageHeader = *mut XLogPageHeaderData; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XLogLongPageHeaderData { + pub std: XLogPageHeaderData, + pub xlp_sysid: uint64, + pub xlp_seg_size: uint32, + pub xlp_xlog_blcksz: uint32, +} +pub type XLogLongPageHeader = *mut XLogLongPageHeaderData; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct xl_parameter_change { + pub MaxConnections: ::std::os::raw::c_int, + pub max_worker_processes: ::std::os::raw::c_int, + pub max_wal_senders: ::std::os::raw::c_int, + pub max_prepared_xacts: ::std::os::raw::c_int, + pub max_locks_per_xact: ::std::os::raw::c_int, + pub wal_level: ::std::os::raw::c_int, + pub wal_log_hints: bool, + pub track_commit_timestamp: bool, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xl_restore_point { + pub rp_time: TimestampTz, + pub rp_name: [::std::os::raw::c_char; 64usize], +} +impl Default for xl_restore_point { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct xl_overwrite_contrecord { + pub overwritten_lsn: XLogRecPtr, + pub overwrite_time: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct xl_end_of_recovery { + pub end_time: TimestampTz, + pub ThisTimeLineID: TimeLineID, + pub PrevTimeLineID: TimeLineID, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct XLogRecData { + pub next: *mut XLogRecData, + pub data: *mut ::std::os::raw::c_char, + pub len: uint32, +} +impl Default for XLogRecData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const RecoveryTargetAction_RECOVERY_TARGET_ACTION_PAUSE: RecoveryTargetAction = 0; +pub const RecoveryTargetAction_RECOVERY_TARGET_ACTION_PROMOTE: RecoveryTargetAction = 1; +pub const RecoveryTargetAction_RECOVERY_TARGET_ACTION_SHUTDOWN: RecoveryTargetAction = 2; +pub type RecoveryTargetAction = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct XLogRecordBuffer { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RmgrData { + pub rm_name: *const ::std::os::raw::c_char, + pub rm_redo: ::std::option::Option, + pub rm_desc: + ::std::option::Option, + pub rm_identify: + ::std::option::Option *const ::std::os::raw::c_char>, + pub rm_startup: ::std::option::Option, + pub rm_cleanup: ::std::option::Option, + pub rm_mask: ::std::option::Option< + unsafe extern "C" fn(pagedata: *mut ::std::os::raw::c_char, blkno: BlockNumber), + >, + pub rm_decode: ::std::option::Option< + unsafe extern "C" fn(ctx: *mut LogicalDecodingContext, buf: *mut XLogRecordBuffer), + >, +} +impl Default for RmgrData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut RmgrTable: [RmgrData; 0usize]; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RmgrStartup(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RmgrCleanup(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RmgrNotFound(rmid: RmgrId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterCustomRmgr(rmid: RmgrId, rmgr: *const RmgrData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLastSegSwitchData(lastSwitchLSN: *mut XLogRecPtr) -> pg_time_t; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RequestXLogSwitch(mark_unimportant: bool) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetOldestRestartPoint(oldrecptr: *mut XLogRecPtr, oldtli: *mut TimeLineID); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRecGetBlockRefInfo( + record: *mut XLogReaderState, + pretty: bool, + detailed_format: bool, + buf: StringInfo, + fpi_len: *mut uint32, + ); +} +extern "C" { + pub static mut ArchiveRecoveryRequested: bool; +} +extern "C" { + pub static mut InArchiveRecovery: bool; +} +extern "C" { + pub static mut StandbyMode: bool; +} +extern "C" { + pub static mut recoveryRestoreCommand: *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogBeginInsert(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogSetRecordFlags(flags: uint8); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogInsert(rmid: RmgrId, info: uint8) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogEnsureRecordSpace( + max_block_id: ::std::os::raw::c_int, + ndatas: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRegisterData(data: *mut ::std::os::raw::c_char, len: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRegisterBuffer(block_id: uint8, buffer: Buffer, flags: uint8); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRegisterBlock( + block_id: uint8, + rlocator: *mut RelFileLocator, + forknum: ForkNumber, + blknum: BlockNumber, + page: *mut ::std::os::raw::c_char, + flags: uint8, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogRegisterBufData(block_id: uint8, data: *mut ::std::os::raw::c_char, len: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogResetInsertion(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogCheckBufferNeedsBackup(buffer: Buffer) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn log_newpage( + rlocator: *mut RelFileLocator, + forknum: ForkNumber, + blkno: BlockNumber, + page: *mut ::std::os::raw::c_char, + page_std: bool, + ) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn log_newpages( + rlocator: *mut RelFileLocator, + forknum: ForkNumber, + num_pages: ::std::os::raw::c_int, + blknos: *mut BlockNumber, + pages: *mut *mut ::std::os::raw::c_char, + page_std: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn log_newpage_buffer(buffer: Buffer, page_std: bool) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn log_newpage_range( + rel: Relation, + forknum: ForkNumber, + startblk: BlockNumber, + endblk: BlockNumber, + page_std: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XLogSaveBufferForHint(buffer: Buffer, buffer_std: bool) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitXLogInsert(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errdetail_relkind_not_supported( + relkind: ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_class { + pub oid: Oid, + pub relname: NameData, + pub relnamespace: Oid, + pub reltype: Oid, + pub reloftype: Oid, + pub relowner: Oid, + pub relam: Oid, + pub relfilenode: Oid, + pub reltablespace: Oid, + pub relpages: int32, + pub reltuples: float4, + pub relallvisible: int32, + pub reltoastrelid: Oid, + pub relhasindex: bool, + pub relisshared: bool, + pub relpersistence: ::std::os::raw::c_char, + pub relkind: ::std::os::raw::c_char, + pub relnatts: int16, + pub relchecks: int16, + pub relhasrules: bool, + pub relhastriggers: bool, + pub relhassubclass: bool, + pub relrowsecurity: bool, + pub relforcerowsecurity: bool, + pub relispopulated: bool, + pub relreplident: ::std::os::raw::c_char, + pub relispartition: bool, + pub relrewrite: Oid, + pub relfrozenxid: TransactionId, + pub relminmxid: TransactionId, +} +impl Default for FormData_pg_class { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_class = *mut FormData_pg_class; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsSystemRelation(relation: Relation) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsToastRelation(relation: Relation) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsCatalogRelation(relation: Relation) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsSystemClass(relid: Oid, reltuple: Form_pg_class) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsToastClass(reltuple: Form_pg_class) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsCatalogRelationOid(relid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsCatalogNamespace(namespaceId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsToastNamespace(namespaceId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsReservedName(name: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsSharedRelation(relationId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsPinnedObject(classId: Oid, objectId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetNewOidWithIndex(relation: Relation, indexId: Oid, oidcolumn: AttrNumber) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetNewRelFileNumber( + reltablespace: Oid, + pg_class: Relation, + relpersistence: ::std::os::raw::c_char, + ) -> RelFileNumber; +} +#[repr(C)] +#[derive(Debug)] +pub struct FormData_pg_index { + pub indexrelid: Oid, + pub indrelid: Oid, + pub indnatts: int16, + pub indnkeyatts: int16, + pub indisunique: bool, + pub indnullsnotdistinct: bool, + pub indisprimary: bool, + pub indisexclusion: bool, + pub indimmediate: bool, + pub indisclustered: bool, + pub indisvalid: bool, + pub indcheckxmin: bool, + pub indisready: bool, + pub indislive: bool, + pub indisreplident: bool, + pub indkey: int2vector, +} +impl Default for FormData_pg_index { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_index = *mut FormData_pg_index; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ObjectAddress { + pub classId: Oid, + pub objectId: Oid, + pub objectSubId: int32, +} +impl Default for ObjectAddress { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static InvalidObjectAddress: ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_address( + objtype: ObjectType, + object: *mut Node, + relp: *mut Relation, + lockmode: LOCKMODE, + missing_ok: bool, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_address_rv( + objtype: ObjectType, + rel: *mut RangeVar, + object: *mut List, + relp: *mut Relation, + lockmode: LOCKMODE, + missing_ok: bool, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_object_ownership( + roleid: Oid, + objtype: ObjectType, + address: ObjectAddress, + object: *mut Node, + relation: Relation, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_namespace(address: *const ObjectAddress) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_objectclass_supported(class_id: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_class_descr(class_id: Oid) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_oid_index(class_id: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_catcache_oid(class_id: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_catcache_name(class_id: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_attnum_oid(class_id: Oid) -> AttrNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_attnum_name(class_id: Oid) -> AttrNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_attnum_namespace(class_id: Oid) -> AttrNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_attnum_owner(class_id: Oid) -> AttrNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_attnum_acl(class_id: Oid) -> AttrNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_type(class_id: Oid, object_id: Oid) -> ObjectType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_object_namensp_unique(class_id: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_catalog_object_by_oid( + catalog: Relation, + oidcol: AttrNumber, + objectId: Oid, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getObjectDescription( + object: *const ObjectAddress, + missing_ok: bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getObjectDescriptionOids(classid: Oid, objid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn read_objtype_from_string( + objtype: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getObjectTypeDescription( + object: *const ObjectAddress, + missing_ok: bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getObjectIdentity( + object: *const ObjectAddress, + missing_ok: bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getObjectIdentityParts( + object: *const ObjectAddress, + objname: *mut *mut List, + objargs: *mut *mut List, + missing_ok: bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn strlist_to_textarray(list: *mut List) -> *mut ArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_relkind_objtype(relkind: ::std::os::raw::c_char) -> ObjectType; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_publication { + pub oid: Oid, + pub pubname: NameData, + pub pubowner: Oid, + pub puballtables: bool, + pub pubinsert: bool, + pub pubupdate: bool, + pub pubdelete: bool, + pub pubtruncate: bool, + pub pubviaroot: bool, +} +impl Default for FormData_pg_publication { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_publication = *mut FormData_pg_publication; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PublicationActions { + pub pubinsert: bool, + pub pubupdate: bool, + pub pubdelete: bool, + pub pubtruncate: bool, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PublicationDesc { + pub pubactions: PublicationActions, + pub rf_valid_for_update: bool, + pub rf_valid_for_delete: bool, + pub cols_valid_for_update: bool, + pub cols_valid_for_delete: bool, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Publication { + pub oid: Oid, + pub name: *mut ::std::os::raw::c_char, + pub alltables: bool, + pub pubviaroot: bool, + pub pubactions: PublicationActions, +} +impl Default for Publication { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PublicationRelInfo { + pub relation: Relation, + pub whereClause: *mut Node, + pub columns: *mut List, +} +impl Default for PublicationRelInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetPublication(pubid: Oid) -> *mut Publication; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetPublicationByName( + pubname: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> *mut Publication; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetRelationPublications(relid: Oid) -> *mut List; +} +pub const PublicationPartOpt_PUBLICATION_PART_ROOT: PublicationPartOpt = 0; +pub const PublicationPartOpt_PUBLICATION_PART_LEAF: PublicationPartOpt = 1; +pub const PublicationPartOpt_PUBLICATION_PART_ALL: PublicationPartOpt = 2; +pub type PublicationPartOpt = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetPublicationRelations(pubid: Oid, pub_partopt: PublicationPartOpt) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetAllTablesPublications() -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetAllTablesPublicationRelations(pubviaroot: bool) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetPublicationSchemas(pubid: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSchemaPublications(schemaid: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSchemaPublicationRelations( + schemaid: Oid, + pub_partopt: PublicationPartOpt, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetAllSchemaPublicationRelations( + pubid: Oid, + pub_partopt: PublicationPartOpt, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetPubPartitionOptionRelations( + result: *mut List, + pub_partopt: PublicationPartOpt, + relid: Oid, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTopMostAncestorInPublication( + puboid: Oid, + ancestors: *mut List, + ancestor_level: *mut ::std::os::raw::c_int, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_publishable_relation(rel: Relation) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_schema_publication(pubid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn publication_add_relation( + pubid: Oid, + pri: *mut PublicationRelInfo, + if_not_exists: bool, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn publication_add_schema(pubid: Oid, schemaid: Oid, if_not_exists: bool) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pub_collist_to_bitmapset( + columns: *mut Bitmapset, + pubcols: Datum, + mcxt: MemoryContext, + ) -> *mut Bitmapset; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RewriteRule { + pub ruleId: Oid, + pub event: CmdType, + pub qual: *mut Node, + pub actions: *mut List, + pub enabled: ::std::os::raw::c_char, + pub isInstead: bool, +} +impl Default for RewriteRule { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RuleLock { + pub numLocks: ::std::os::raw::c_int, + pub rules: *mut *mut RewriteRule, +} +impl Default for RuleLock { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SMgrRelationData { + pub smgr_rlocator: RelFileLocatorBackend, + pub smgr_owner: *mut *mut SMgrRelationData, + pub smgr_targblock: BlockNumber, + pub smgr_cached_nblocks: [BlockNumber; 4usize], + pub smgr_which: ::std::os::raw::c_int, + pub md_num_open_segs: [::std::os::raw::c_int; 4usize], + pub md_seg_fds: [*mut _MdfdVec; 4usize], + pub node: dlist_node, +} +impl Default for SMgrRelationData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type SMgrRelation = *mut SMgrRelationData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrinit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgropen(rlocator: RelFileLocator, backend: BackendId) -> SMgrRelation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrexists(reln: SMgrRelation, forknum: ForkNumber) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrsetowner(owner: *mut SMgrRelation, reln: SMgrRelation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrclearowner(owner: *mut SMgrRelation, reln: SMgrRelation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrclose(reln: SMgrRelation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrcloseall(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrcloserellocator(rlocator: RelFileLocatorBackend); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrrelease(reln: SMgrRelation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrreleaseall(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrcreate(reln: SMgrRelation, forknum: ForkNumber, isRedo: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrdosyncall(rels: *mut SMgrRelation, nrels: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrdounlinkall(rels: *mut SMgrRelation, nrels: ::std::os::raw::c_int, isRedo: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrextend( + reln: SMgrRelation, + forknum: ForkNumber, + blocknum: BlockNumber, + buffer: *const ::std::os::raw::c_void, + skipFsync: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrzeroextend( + reln: SMgrRelation, + forknum: ForkNumber, + blocknum: BlockNumber, + nblocks: ::std::os::raw::c_int, + skipFsync: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrprefetch(reln: SMgrRelation, forknum: ForkNumber, blocknum: BlockNumber) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrread( + reln: SMgrRelation, + forknum: ForkNumber, + blocknum: BlockNumber, + buffer: *mut ::std::os::raw::c_void, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrwrite( + reln: SMgrRelation, + forknum: ForkNumber, + blocknum: BlockNumber, + buffer: *const ::std::os::raw::c_void, + skipFsync: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrwriteback( + reln: SMgrRelation, + forknum: ForkNumber, + blocknum: BlockNumber, + nblocks: BlockNumber, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrnblocks(reln: SMgrRelation, forknum: ForkNumber) -> BlockNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrnblocks_cached(reln: SMgrRelation, forknum: ForkNumber) -> BlockNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrtruncate( + reln: SMgrRelation, + forknum: *mut ForkNumber, + nforks: ::std::os::raw::c_int, + nblocks: *mut BlockNumber, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn smgrimmedsync(reln: SMgrRelation, forknum: ForkNumber); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_SMgr(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessBarrierSmgrRelease() -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LockRelId { + pub relId: Oid, + pub dbId: Oid, +} +impl Default for LockRelId { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LockInfoData { + pub lockRelId: LockRelId, +} +impl Default for LockInfoData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type LockInfo = *mut LockInfoData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RelationData { + pub rd_locator: RelFileLocator, + pub rd_smgr: SMgrRelation, + pub rd_refcnt: ::std::os::raw::c_int, + pub rd_backend: BackendId, + pub rd_islocaltemp: bool, + pub rd_isnailed: bool, + pub rd_isvalid: bool, + pub rd_indexvalid: bool, + pub rd_statvalid: bool, + pub rd_createSubid: SubTransactionId, + pub rd_newRelfilelocatorSubid: SubTransactionId, + pub rd_firstRelfilelocatorSubid: SubTransactionId, + pub rd_droppedSubid: SubTransactionId, + pub rd_rel: Form_pg_class, + pub rd_att: TupleDesc, + pub rd_id: Oid, + pub rd_lockInfo: LockInfoData, + pub rd_rules: *mut RuleLock, + pub rd_rulescxt: MemoryContext, + pub trigdesc: *mut TriggerDesc, + pub rd_rsdesc: *mut RowSecurityDesc, + pub rd_fkeylist: *mut List, + pub rd_fkeyvalid: bool, + pub rd_partkey: PartitionKey, + pub rd_partkeycxt: MemoryContext, + pub rd_partdesc: PartitionDesc, + pub rd_pdcxt: MemoryContext, + pub rd_partdesc_nodetached: PartitionDesc, + pub rd_pddcxt: MemoryContext, + pub rd_partdesc_nodetached_xmin: TransactionId, + pub rd_partcheck: *mut List, + pub rd_partcheckvalid: bool, + pub rd_partcheckcxt: MemoryContext, + pub rd_indexlist: *mut List, + pub rd_pkindex: Oid, + pub rd_replidindex: Oid, + pub rd_statlist: *mut List, + pub rd_attrsvalid: bool, + pub rd_keyattr: *mut Bitmapset, + pub rd_pkattr: *mut Bitmapset, + pub rd_idattr: *mut Bitmapset, + pub rd_hotblockingattr: *mut Bitmapset, + pub rd_summarizedattr: *mut Bitmapset, + pub rd_pubdesc: *mut PublicationDesc, + pub rd_options: *mut bytea, + pub rd_amhandler: Oid, + pub rd_tableam: *const TableAmRoutine, + pub rd_index: Form_pg_index, + pub rd_indextuple: *mut HeapTupleData, + pub rd_indexcxt: MemoryContext, + pub rd_indam: *mut IndexAmRoutine, + pub rd_opfamily: *mut Oid, + pub rd_opcintype: *mut Oid, + pub rd_support: *mut RegProcedure, + pub rd_supportinfo: *mut FmgrInfo, + pub rd_indoption: *mut int16, + pub rd_indexprs: *mut List, + pub rd_indpred: *mut List, + pub rd_exclops: *mut Oid, + pub rd_exclprocs: *mut Oid, + pub rd_exclstrats: *mut uint16, + pub rd_indcollation: *mut Oid, + pub rd_opcoptions: *mut *mut bytea, + pub rd_amcache: *mut ::std::os::raw::c_void, + pub rd_fdwroutine: *mut FdwRoutine, + pub rd_toastoid: Oid, + pub pgstat_enabled: bool, + pub pgstat_info: *mut PgStat_TableStatus, +} +impl Default for RelationData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForeignKeyCacheInfo { + pub type_: NodeTag, + pub conoid: Oid, + pub conrelid: Oid, + pub confrelid: Oid, + pub nkeys: ::std::os::raw::c_int, + pub conkey: [AttrNumber; 32usize], + pub confkey: [AttrNumber; 32usize], + pub conpfeqop: [Oid; 32usize], +} +impl Default for ForeignKeyCacheInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct AutoVacOpts { + pub enabled: bool, + pub vacuum_threshold: ::std::os::raw::c_int, + pub vacuum_ins_threshold: ::std::os::raw::c_int, + pub analyze_threshold: ::std::os::raw::c_int, + pub vacuum_cost_limit: ::std::os::raw::c_int, + pub freeze_min_age: ::std::os::raw::c_int, + pub freeze_max_age: ::std::os::raw::c_int, + pub freeze_table_age: ::std::os::raw::c_int, + pub multixact_freeze_min_age: ::std::os::raw::c_int, + pub multixact_freeze_max_age: ::std::os::raw::c_int, + pub multixact_freeze_table_age: ::std::os::raw::c_int, + pub log_min_duration: ::std::os::raw::c_int, + pub vacuum_cost_delay: float8, + pub vacuum_scale_factor: float8, + pub vacuum_ins_scale_factor: float8, + pub analyze_scale_factor: float8, +} +pub const StdRdOptIndexCleanup_STDRD_OPTION_VACUUM_INDEX_CLEANUP_AUTO: StdRdOptIndexCleanup = 0; +pub const StdRdOptIndexCleanup_STDRD_OPTION_VACUUM_INDEX_CLEANUP_OFF: StdRdOptIndexCleanup = 1; +pub const StdRdOptIndexCleanup_STDRD_OPTION_VACUUM_INDEX_CLEANUP_ON: StdRdOptIndexCleanup = 2; +pub type StdRdOptIndexCleanup = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StdRdOptions { + pub vl_len_: int32, + pub fillfactor: ::std::os::raw::c_int, + pub toast_tuple_target: ::std::os::raw::c_int, + pub autovacuum: AutoVacOpts, + pub user_catalog_table: bool, + pub parallel_workers: ::std::os::raw::c_int, + pub vacuum_index_cleanup: StdRdOptIndexCleanup, + pub vacuum_truncate: bool, +} +impl Default for StdRdOptions { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ViewOptCheckOption_VIEW_OPTION_CHECK_OPTION_NOT_SET: ViewOptCheckOption = 0; +pub const ViewOptCheckOption_VIEW_OPTION_CHECK_OPTION_LOCAL: ViewOptCheckOption = 1; +pub const ViewOptCheckOption_VIEW_OPTION_CHECK_OPTION_CASCADED: ViewOptCheckOption = 2; +pub type ViewOptCheckOption = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ViewOptions { + pub vl_len_: int32, + pub security_barrier: bool, + pub security_invoker: bool, + pub check_option: ViewOptCheckOption, +} +impl Default for ViewOptions { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationIncrementReferenceCount(rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationDecrementReferenceCount(rel: Relation); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GenericXLogState { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GenericXLogStart(relation: Relation) -> *mut GenericXLogState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GenericXLogRegisterBuffer( + state: *mut GenericXLogState, + buffer: Buffer, + flags: ::std::os::raw::c_int, + ) -> Page; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GenericXLogFinish(state: *mut GenericXLogState) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GenericXLogAbort(state: *mut GenericXLogState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generic_redo(record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generic_identify(info: uint8) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generic_desc(buf: StringInfo, record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generic_mask(page: *mut ::std::os::raw::c_char, blkno: BlockNumber); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct GinStatsData { + pub nPendingPages: BlockNumber, + pub nTotalPages: BlockNumber, + pub nEntryPages: BlockNumber, + pub nDataPages: BlockNumber, + pub nEntries: int64, + pub ginVersion: int32, +} +pub type GinTernaryValue = ::std::os::raw::c_char; +extern "C" { + pub static mut GinFuzzySearchLimit: ::std::os::raw::c_int; +} +extern "C" { + pub static mut gin_pending_list_limit: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ginGetStats(index: Relation, stats: *mut GinStatsData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ginUpdateStats(index: Relation, stats: *const GinStatsData, is_build: bool); +} +pub type GistNSN = XLogRecPtr; +pub type PageGistNSN = PageXLogRecPtr; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct GISTPageOpaqueData { + pub nsn: PageGistNSN, + pub rightlink: BlockNumber, + pub flags: uint16, + pub gist_page_id: uint16, +} +pub type GISTPageOpaque = *mut GISTPageOpaqueData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GIST_SPLITVEC { + pub spl_left: *mut OffsetNumber, + pub spl_nleft: ::std::os::raw::c_int, + pub spl_ldatum: Datum, + pub spl_ldatum_exists: bool, + pub spl_right: *mut OffsetNumber, + pub spl_nright: ::std::os::raw::c_int, + pub spl_rdatum: Datum, + pub spl_rdatum_exists: bool, +} +impl Default for GIST_SPLITVEC { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GISTENTRY { + pub key: Datum, + pub rel: Relation, + pub page: Page, + pub offset: OffsetNumber, + pub leafkey: bool, +} +impl Default for GISTENTRY { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct GISTDeletedPageContents { + pub deleteXid: FullTransactionId, +} +#[repr(C)] +#[derive(Debug)] +pub struct GistEntryVector { + pub n: int32, + pub vector: __IncompleteArrayField, +} +impl Default for GistEntryVector { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn relation_open(relationId: Oid, lockmode: LOCKMODE) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn try_relation_open(relationId: Oid, lockmode: LOCKMODE) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn relation_openrv(relation: *const RangeVar, lockmode: LOCKMODE) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn relation_openrv_extended( + relation: *const RangeVar, + lockmode: LOCKMODE, + missing_ok: bool, + ) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn relation_close(relation: Relation, lockmode: LOCKMODE); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TableScanDescData { + pub rs_rd: Relation, + pub rs_snapshot: *mut SnapshotData, + pub rs_nkeys: ::std::os::raw::c_int, + pub rs_key: *mut ScanKeyData, + pub rs_mintid: ItemPointerData, + pub rs_maxtid: ItemPointerData, + pub rs_flags: uint32, + pub rs_parallel: *mut ParallelTableScanDescData, +} +impl Default for TableScanDescData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type TableScanDesc = *mut TableScanDescData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParallelTableScanDescData { + pub phs_relid: Oid, + pub phs_syncscan: bool, + pub phs_snapshot_any: bool, + pub phs_snapshot_off: Size, +} +impl Default for ParallelTableScanDescData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ParallelTableScanDesc = *mut ParallelTableScanDescData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParallelBlockTableScanDescData { + pub base: ParallelTableScanDescData, + pub phs_nblocks: BlockNumber, + pub phs_mutex: slock_t, + pub phs_startblock: BlockNumber, + pub phs_nallocated: pg_atomic_uint64, +} +impl Default for ParallelBlockTableScanDescData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ParallelBlockTableScanDesc = *mut ParallelBlockTableScanDescData; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ParallelBlockTableScanWorkerData { + pub phsw_nallocated: uint64, + pub phsw_chunk_remaining: uint32, + pub phsw_chunk_size: uint32, +} +pub type ParallelBlockTableScanWorker = *mut ParallelBlockTableScanWorkerData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexFetchTableData { + pub rel: Relation, +} +impl Default for IndexFetchTableData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexScanDescData { + pub heapRelation: Relation, + pub indexRelation: Relation, + pub xs_snapshot: *mut SnapshotData, + pub numberOfKeys: ::std::os::raw::c_int, + pub numberOfOrderBys: ::std::os::raw::c_int, + pub keyData: *mut ScanKeyData, + pub orderByData: *mut ScanKeyData, + pub xs_want_itup: bool, + pub xs_temp_snap: bool, + pub kill_prior_tuple: bool, + pub ignore_killed_tuples: bool, + pub xactStartedInRecovery: bool, + pub opaque: *mut ::std::os::raw::c_void, + pub xs_itup: IndexTuple, + pub xs_itupdesc: *mut TupleDescData, + pub xs_hitup: HeapTuple, + pub xs_hitupdesc: *mut TupleDescData, + pub xs_heaptid: ItemPointerData, + pub xs_heap_continue: bool, + pub xs_heapfetch: *mut IndexFetchTableData, + pub xs_recheck: bool, + pub xs_orderbyvals: *mut Datum, + pub xs_orderbynulls: *mut bool, + pub xs_recheckorderby: bool, + pub parallel_scan: *mut ParallelIndexScanDescData, +} +impl Default for IndexScanDescData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug)] +pub struct ParallelIndexScanDescData { + pub ps_relid: Oid, + pub ps_indexid: Oid, + pub ps_offset: Size, + pub ps_snapshot_data: __IncompleteArrayField<::std::os::raw::c_char>, +} +impl Default for ParallelIndexScanDescData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SysScanDescData { + pub heap_rel: Relation, + pub irel: Relation, + pub scan: *mut TableScanDescData, + pub iscan: *mut IndexScanDescData, + pub snapshot: *mut SnapshotData, + pub slot: *mut TupleTableSlot, +} +impl Default for SysScanDescData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_open(relationId: Oid, lockmode: LOCKMODE) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_openrv(relation: *const RangeVar, lockmode: LOCKMODE) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_openrv_extended( + relation: *const RangeVar, + lockmode: LOCKMODE, + missing_ok: bool, + ) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn try_table_open(relationId: Oid, lockmode: LOCKMODE) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_close(relation: Relation, lockmode: LOCKMODE); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedInvalCatcacheMsg { + pub id: int8, + pub dbId: Oid, + pub hashValue: uint32, +} +impl Default for SharedInvalCatcacheMsg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedInvalCatalogMsg { + pub id: int8, + pub dbId: Oid, + pub catId: Oid, +} +impl Default for SharedInvalCatalogMsg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedInvalRelcacheMsg { + pub id: int8, + pub dbId: Oid, + pub relId: Oid, +} +impl Default for SharedInvalRelcacheMsg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedInvalSmgrMsg { + pub id: int8, + pub backend_hi: int8, + pub backend_lo: uint16, + pub rlocator: RelFileLocator, +} +impl Default for SharedInvalSmgrMsg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedInvalRelmapMsg { + pub id: int8, + pub dbId: Oid, +} +impl Default for SharedInvalRelmapMsg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedInvalSnapshotMsg { + pub id: int8, + pub dbId: Oid, + pub relId: Oid, +} +impl Default for SharedInvalSnapshotMsg { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SharedInvalidationMessage { + pub id: int8, + pub cc: SharedInvalCatcacheMsg, + pub cat: SharedInvalCatalogMsg, + pub rc: SharedInvalRelcacheMsg, + pub sm: SharedInvalSmgrMsg, + pub rm: SharedInvalRelmapMsg, + pub sn: SharedInvalSnapshotMsg, +} +impl Default for SharedInvalidationMessage { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut SharedInvalidMessageCounter: uint64; +} +extern "C" { + pub static mut catchupInterruptPending: sig_atomic_t; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SendSharedInvalidMessages( + msgs: *const SharedInvalidationMessage, + n: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReceiveSharedInvalidMessages( + invalFunction: ::std::option::Option< + unsafe extern "C" fn(msg: *mut SharedInvalidationMessage), + >, + resetFunction: ::std::option::Option, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HandleCatchupInterrupt(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessCatchupInterrupt(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xactGetCommittedInvalidationMessages( + msgs: *mut *mut SharedInvalidationMessage, + RelcacheInitFileInval: *mut bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessCommittedInvalidationMessages( + msgs: *mut SharedInvalidationMessage, + nmsgs: ::std::os::raw::c_int, + RelcacheInitFileInval: bool, + dbid: Oid, + tsid: Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LocalExecuteInvalidationMessage(msg: *mut SharedInvalidationMessage); +} +extern "C" { + pub static mut DefaultXactIsoLevel: ::std::os::raw::c_int; +} +extern "C" { + pub static mut XactIsoLevel: ::std::os::raw::c_int; +} +extern "C" { + pub static mut DefaultXactReadOnly: bool; +} +extern "C" { + pub static mut XactReadOnly: bool; +} +extern "C" { + pub static mut xact_is_sampled: bool; +} +extern "C" { + pub static mut DefaultXactDeferrable: bool; +} +extern "C" { + pub static mut XactDeferrable: bool; +} +pub const SyncCommitLevel_SYNCHRONOUS_COMMIT_OFF: SyncCommitLevel = 0; +pub const SyncCommitLevel_SYNCHRONOUS_COMMIT_LOCAL_FLUSH: SyncCommitLevel = 1; +pub const SyncCommitLevel_SYNCHRONOUS_COMMIT_REMOTE_WRITE: SyncCommitLevel = 2; +pub const SyncCommitLevel_SYNCHRONOUS_COMMIT_REMOTE_FLUSH: SyncCommitLevel = 3; +pub const SyncCommitLevel_SYNCHRONOUS_COMMIT_REMOTE_APPLY: SyncCommitLevel = 4; +pub type SyncCommitLevel = ::std::os::raw::c_uint; +extern "C" { + pub static mut synchronous_commit: ::std::os::raw::c_int; +} +extern "C" { + pub static mut CheckXidAlive: TransactionId; +} +extern "C" { + pub static mut bsysscan: bool; +} +extern "C" { + pub static mut MyXactFlags: ::std::os::raw::c_int; +} +pub const XactEvent_XACT_EVENT_COMMIT: XactEvent = 0; +pub const XactEvent_XACT_EVENT_PARALLEL_COMMIT: XactEvent = 1; +pub const XactEvent_XACT_EVENT_ABORT: XactEvent = 2; +pub const XactEvent_XACT_EVENT_PARALLEL_ABORT: XactEvent = 3; +pub const XactEvent_XACT_EVENT_PREPARE: XactEvent = 4; +pub const XactEvent_XACT_EVENT_PRE_COMMIT: XactEvent = 5; +pub const XactEvent_XACT_EVENT_PARALLEL_PRE_COMMIT: XactEvent = 6; +pub const XactEvent_XACT_EVENT_PRE_PREPARE: XactEvent = 7; +pub type XactEvent = ::std::os::raw::c_uint; +pub type XactCallback = + ::std::option::Option; +pub const SubXactEvent_SUBXACT_EVENT_START_SUB: SubXactEvent = 0; +pub const SubXactEvent_SUBXACT_EVENT_COMMIT_SUB: SubXactEvent = 1; +pub const SubXactEvent_SUBXACT_EVENT_ABORT_SUB: SubXactEvent = 2; +pub const SubXactEvent_SUBXACT_EVENT_PRE_COMMIT_SUB: SubXactEvent = 3; +pub type SubXactEvent = ::std::os::raw::c_uint; +pub type SubXactCallback = ::std::option::Option< + unsafe extern "C" fn( + event: SubXactEvent, + mySubid: SubTransactionId, + parentSubid: SubTransactionId, + arg: *mut ::std::os::raw::c_void, + ), +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct SavedTransactionCharacteristics { + pub save_XactIsoLevel: ::std::os::raw::c_int, + pub save_XactReadOnly: bool, + pub save_XactDeferrable: bool, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct xl_xact_assignment { + pub xtop: TransactionId, + pub nsubxacts: ::std::os::raw::c_int, + pub xsub: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct xl_xact_xinfo { + pub xinfo: uint32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xl_xact_dbinfo { + pub dbId: Oid, + pub tsId: Oid, +} +impl Default for xl_xact_dbinfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct xl_xact_subxacts { + pub nsubxacts: ::std::os::raw::c_int, + pub subxacts: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug)] +pub struct xl_xact_relfilelocators { + pub nrels: ::std::os::raw::c_int, + pub xlocators: __IncompleteArrayField, +} +impl Default for xl_xact_relfilelocators { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xl_xact_stats_item { + pub kind: ::std::os::raw::c_int, + pub dboid: Oid, + pub objoid: Oid, +} +impl Default for xl_xact_stats_item { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug)] +pub struct xl_xact_stats_items { + pub nitems: ::std::os::raw::c_int, + pub items: __IncompleteArrayField, +} +impl Default for xl_xact_stats_items { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +pub struct xl_xact_invals { + pub nmsgs: ::std::os::raw::c_int, + pub msgs: __IncompleteArrayField, +} +impl Default for xl_xact_invals { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct xl_xact_twophase { + pub xid: TransactionId, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct xl_xact_origin { + pub origin_lsn: XLogRecPtr, + pub origin_timestamp: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct xl_xact_commit { + pub xact_time: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct xl_xact_abort { + pub xact_time: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xl_xact_prepare { + pub magic: uint32, + pub total_len: uint32, + pub xid: TransactionId, + pub database: Oid, + pub prepared_at: TimestampTz, + pub owner: Oid, + pub nsubxacts: int32, + pub ncommitrels: int32, + pub nabortrels: int32, + pub ncommitstats: int32, + pub nabortstats: int32, + pub ninvalmsgs: int32, + pub initfileinval: bool, + pub gidlen: uint16, + pub origin_lsn: XLogRecPtr, + pub origin_timestamp: TimestampTz, +} +impl Default for xl_xact_prepare { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xl_xact_parsed_commit { + pub xact_time: TimestampTz, + pub xinfo: uint32, + pub dbId: Oid, + pub tsId: Oid, + pub nsubxacts: ::std::os::raw::c_int, + pub subxacts: *mut TransactionId, + pub nrels: ::std::os::raw::c_int, + pub xlocators: *mut RelFileLocator, + pub nstats: ::std::os::raw::c_int, + pub stats: *mut xl_xact_stats_item, + pub nmsgs: ::std::os::raw::c_int, + pub msgs: *mut SharedInvalidationMessage, + pub twophase_xid: TransactionId, + pub twophase_gid: [::std::os::raw::c_char; 200usize], + pub nabortrels: ::std::os::raw::c_int, + pub abortlocators: *mut RelFileLocator, + pub nabortstats: ::std::os::raw::c_int, + pub abortstats: *mut xl_xact_stats_item, + pub origin_lsn: XLogRecPtr, + pub origin_timestamp: TimestampTz, +} +impl Default for xl_xact_parsed_commit { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type xl_xact_parsed_prepare = xl_xact_parsed_commit; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xl_xact_parsed_abort { + pub xact_time: TimestampTz, + pub xinfo: uint32, + pub dbId: Oid, + pub tsId: Oid, + pub nsubxacts: ::std::os::raw::c_int, + pub subxacts: *mut TransactionId, + pub nrels: ::std::os::raw::c_int, + pub xlocators: *mut RelFileLocator, + pub nstats: ::std::os::raw::c_int, + pub stats: *mut xl_xact_stats_item, + pub twophase_xid: TransactionId, + pub twophase_gid: [::std::os::raw::c_char; 200usize], + pub origin_lsn: XLogRecPtr, + pub origin_timestamp: TimestampTz, +} +impl Default for xl_xact_parsed_abort { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsTransactionState() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsAbortedTransactionBlockState() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTopTransactionId() -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTopTransactionIdIfAny() -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentTransactionId() -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentTransactionIdIfAny() -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetStableLatestTransactionId() -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentSubTransactionId() -> SubTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTopFullTransactionId() -> FullTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTopFullTransactionIdIfAny() -> FullTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentFullTransactionId() -> FullTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentFullTransactionIdIfAny() -> FullTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MarkCurrentTransactionIdLoggedIfAny(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SubTransactionIsActive(subxid: SubTransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentCommandId(used: bool) -> CommandId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetParallelStartTimestamps(xact_ts: TimestampTz, stmt_ts: TimestampTz); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentTransactionStartTimestamp() -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentStatementStartTimestamp() -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentTransactionStopTimestamp() -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetCurrentStatementStartTimestamp(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentTransactionNestLevel() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdIsCurrentTransactionId(xid: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CommandCounterIncrement(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ForceSyncCommit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StartTransactionCommand(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SaveTransactionCharacteristics(s: *mut SavedTransactionCharacteristics); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreTransactionCharacteristics(s: *const SavedTransactionCharacteristics); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CommitTransactionCommand(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AbortCurrentTransaction(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BeginTransactionBlock(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EndTransactionBlock(chain: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrepareTransactionBlock(gid: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UserAbortTransactionBlock(chain: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BeginImplicitTransactionBlock(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EndImplicitTransactionBlock(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseSavepoint(name: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineSavepoint(name: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RollbackToSavepoint(name: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BeginInternalSubTransaction(name: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseCurrentSubTransaction(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RollbackAndReleaseCurrentSubTransaction(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsSubTransaction() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EstimateTransactionStateSpace() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SerializeTransactionState(maxsize: Size, start_address: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StartParallelWorkerTransaction(tstatespace: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EndParallelWorkerTransaction(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsTransactionBlock() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsTransactionOrTransactionBlock() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionBlockStatusCode() -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AbortOutOfAnyTransaction(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PreventInTransactionBlock(isTopLevel: bool, stmtType: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RequireTransactionBlock(isTopLevel: bool, stmtType: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WarnNoTransactionBlock(isTopLevel: bool, stmtType: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsInTransactionBlock(isTopLevel: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterXactCallback(callback: XactCallback, arg: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnregisterXactCallback(callback: XactCallback, arg: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterSubXactCallback(callback: SubXactCallback, arg: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnregisterSubXactCallback(callback: SubXactCallback, arg: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsSubxactTopXidLogPending() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MarkSubxactTopXidLogged(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xactGetCommittedChildren(ptr: *mut *mut TransactionId) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XactLogCommitRecord( + commit_time: TimestampTz, + nsubxacts: ::std::os::raw::c_int, + subxacts: *mut TransactionId, + nrels: ::std::os::raw::c_int, + rels: *mut RelFileLocator, + ndroppedstats: ::std::os::raw::c_int, + droppedstats: *mut xl_xact_stats_item, + nmsgs: ::std::os::raw::c_int, + msgs: *mut SharedInvalidationMessage, + relcacheInval: bool, + xactflags: ::std::os::raw::c_int, + twophase_xid: TransactionId, + twophase_gid: *const ::std::os::raw::c_char, + ) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XactLogAbortRecord( + abort_time: TimestampTz, + nsubxacts: ::std::os::raw::c_int, + subxacts: *mut TransactionId, + nrels: ::std::os::raw::c_int, + rels: *mut RelFileLocator, + ndroppedstats: ::std::os::raw::c_int, + droppedstats: *mut xl_xact_stats_item, + xactflags: ::std::os::raw::c_int, + twophase_xid: TransactionId, + twophase_gid: *const ::std::os::raw::c_char, + ) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xact_redo(record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xact_desc(buf: StringInfo, record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xact_identify(info: uint8) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParseCommitRecord( + info: uint8, + xlrec: *mut xl_xact_commit, + parsed: *mut xl_xact_parsed_commit, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParseAbortRecord( + info: uint8, + xlrec: *mut xl_xact_abort, + parsed: *mut xl_xact_parsed_abort, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParsePrepareRecord( + info: uint8, + xlrec: *mut xl_xact_prepare, + parsed: *mut xl_xact_parsed_prepare, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EnterParallelMode(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExitParallelMode(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsInParallelMode() -> bool; +} +extern "C" { + pub static mut default_table_access_method: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut synchronize_seqscans: bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BulkInsertStateData { + _unused: [u8; 0], +} +pub const ScanOptions_SO_TYPE_SEQSCAN: ScanOptions = 1; +pub const ScanOptions_SO_TYPE_BITMAPSCAN: ScanOptions = 2; +pub const ScanOptions_SO_TYPE_SAMPLESCAN: ScanOptions = 4; +pub const ScanOptions_SO_TYPE_TIDSCAN: ScanOptions = 8; +pub const ScanOptions_SO_TYPE_TIDRANGESCAN: ScanOptions = 16; +pub const ScanOptions_SO_TYPE_ANALYZE: ScanOptions = 32; +pub const ScanOptions_SO_ALLOW_STRAT: ScanOptions = 64; +pub const ScanOptions_SO_ALLOW_SYNC: ScanOptions = 128; +pub const ScanOptions_SO_ALLOW_PAGEMODE: ScanOptions = 256; +pub const ScanOptions_SO_TEMP_SNAPSHOT: ScanOptions = 512; +pub type ScanOptions = ::std::os::raw::c_uint; +pub const TM_Result_TM_Ok: TM_Result = 0; +pub const TM_Result_TM_Invisible: TM_Result = 1; +pub const TM_Result_TM_SelfModified: TM_Result = 2; +pub const TM_Result_TM_Updated: TM_Result = 3; +pub const TM_Result_TM_Deleted: TM_Result = 4; +pub const TM_Result_TM_BeingModified: TM_Result = 5; +pub const TM_Result_TM_WouldBlock: TM_Result = 6; +pub type TM_Result = ::std::os::raw::c_uint; +pub const TU_UpdateIndexes_TU_None: TU_UpdateIndexes = 0; +pub const TU_UpdateIndexes_TU_All: TU_UpdateIndexes = 1; +pub const TU_UpdateIndexes_TU_Summarizing: TU_UpdateIndexes = 2; +pub type TU_UpdateIndexes = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TM_FailureData { + pub ctid: ItemPointerData, + pub xmax: TransactionId, + pub cmax: CommandId, + pub traversed: bool, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TM_IndexDelete { + pub tid: ItemPointerData, + pub id: int16, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TM_IndexStatus { + pub idxoffnum: OffsetNumber, + pub knowndeletable: bool, + pub promising: bool, + pub freespace: int16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TM_IndexDeleteOp { + pub irel: Relation, + pub iblknum: BlockNumber, + pub bottomup: bool, + pub bottomupfreespace: ::std::os::raw::c_int, + pub ndeltids: ::std::os::raw::c_int, + pub deltids: *mut TM_IndexDelete, + pub status: *mut TM_IndexStatus, +} +impl Default for TM_IndexDeleteOp { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type IndexBuildCallback = ::std::option::Option< + unsafe extern "C" fn( + index: Relation, + tid: ItemPointer, + values: *mut Datum, + isnull: *mut bool, + tupleIsAlive: bool, + state: *mut ::std::os::raw::c_void, + ), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TableAmRoutine { + pub type_: NodeTag, + pub slot_callbacks: + ::std::option::Option *const TupleTableSlotOps>, + pub scan_begin: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + snapshot: Snapshot, + nkeys: ::std::os::raw::c_int, + key: *mut ScanKeyData, + pscan: ParallelTableScanDesc, + flags: uint32, + ) -> TableScanDesc, + >, + pub scan_end: ::std::option::Option, + pub scan_rescan: ::std::option::Option< + unsafe extern "C" fn( + scan: TableScanDesc, + key: *mut ScanKeyData, + set_params: bool, + allow_strat: bool, + allow_sync: bool, + allow_pagemode: bool, + ), + >, + pub scan_getnextslot: ::std::option::Option< + unsafe extern "C" fn( + scan: TableScanDesc, + direction: ScanDirection, + slot: *mut TupleTableSlot, + ) -> bool, + >, + pub scan_set_tidrange: ::std::option::Option< + unsafe extern "C" fn(scan: TableScanDesc, mintid: ItemPointer, maxtid: ItemPointer), + >, + pub scan_getnextslot_tidrange: ::std::option::Option< + unsafe extern "C" fn( + scan: TableScanDesc, + direction: ScanDirection, + slot: *mut TupleTableSlot, + ) -> bool, + >, + pub parallelscan_estimate: ::std::option::Option Size>, + pub parallelscan_initialize: ::std::option::Option< + unsafe extern "C" fn(rel: Relation, pscan: ParallelTableScanDesc) -> Size, + >, + pub parallelscan_reinitialize: + ::std::option::Option, + pub index_fetch_begin: + ::std::option::Option *mut IndexFetchTableData>, + pub index_fetch_reset: + ::std::option::Option, + pub index_fetch_end: + ::std::option::Option, + pub index_fetch_tuple: ::std::option::Option< + unsafe extern "C" fn( + scan: *mut IndexFetchTableData, + tid: ItemPointer, + snapshot: Snapshot, + slot: *mut TupleTableSlot, + call_again: *mut bool, + all_dead: *mut bool, + ) -> bool, + >, + pub tuple_fetch_row_version: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + tid: ItemPointer, + snapshot: Snapshot, + slot: *mut TupleTableSlot, + ) -> bool, + >, + pub tuple_tid_valid: + ::std::option::Option bool>, + pub tuple_get_latest_tid: + ::std::option::Option, + pub tuple_satisfies_snapshot: ::std::option::Option< + unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, snapshot: Snapshot) -> bool, + >, + pub index_delete_tuples: ::std::option::Option< + unsafe extern "C" fn(rel: Relation, delstate: *mut TM_IndexDeleteOp) -> TransactionId, + >, + pub tuple_insert: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + slot: *mut TupleTableSlot, + cid: CommandId, + options: ::std::os::raw::c_int, + bistate: *mut BulkInsertStateData, + ), + >, + pub tuple_insert_speculative: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + slot: *mut TupleTableSlot, + cid: CommandId, + options: ::std::os::raw::c_int, + bistate: *mut BulkInsertStateData, + specToken: uint32, + ), + >, + pub tuple_complete_speculative: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + slot: *mut TupleTableSlot, + specToken: uint32, + succeeded: bool, + ), + >, + pub multi_insert: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + slots: *mut *mut TupleTableSlot, + nslots: ::std::os::raw::c_int, + cid: CommandId, + options: ::std::os::raw::c_int, + bistate: *mut BulkInsertStateData, + ), + >, + pub tuple_delete: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + tid: ItemPointer, + cid: CommandId, + snapshot: Snapshot, + crosscheck: Snapshot, + wait: bool, + tmfd: *mut TM_FailureData, + changingPart: bool, + ) -> TM_Result, + >, + pub tuple_update: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + otid: ItemPointer, + slot: *mut TupleTableSlot, + cid: CommandId, + snapshot: Snapshot, + crosscheck: Snapshot, + wait: bool, + tmfd: *mut TM_FailureData, + lockmode: *mut LockTupleMode, + update_indexes: *mut TU_UpdateIndexes, + ) -> TM_Result, + >, + pub tuple_lock: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + tid: ItemPointer, + snapshot: Snapshot, + slot: *mut TupleTableSlot, + cid: CommandId, + mode: LockTupleMode, + wait_policy: LockWaitPolicy, + flags: uint8, + tmfd: *mut TM_FailureData, + ) -> TM_Result, + >, + pub finish_bulk_insert: + ::std::option::Option, + pub relation_set_new_filelocator: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + newrlocator: *const RelFileLocator, + persistence: ::std::os::raw::c_char, + freezeXid: *mut TransactionId, + minmulti: *mut MultiXactId, + ), + >, + pub relation_nontransactional_truncate: + ::std::option::Option, + pub relation_copy_data: ::std::option::Option< + unsafe extern "C" fn(rel: Relation, newrlocator: *const RelFileLocator), + >, + pub relation_copy_for_cluster: ::std::option::Option< + unsafe extern "C" fn( + NewTable: Relation, + OldTable: Relation, + OldIndex: Relation, + use_sort: bool, + OldestXmin: TransactionId, + xid_cutoff: *mut TransactionId, + multi_cutoff: *mut MultiXactId, + num_tuples: *mut f64, + tups_vacuumed: *mut f64, + tups_recently_dead: *mut f64, + ), + >, + pub relation_vacuum: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + params: *mut VacuumParams, + bstrategy: BufferAccessStrategy, + ), + >, + pub scan_analyze_next_block: ::std::option::Option< + unsafe extern "C" fn( + scan: TableScanDesc, + blockno: BlockNumber, + bstrategy: BufferAccessStrategy, + ) -> bool, + >, + pub scan_analyze_next_tuple: ::std::option::Option< + unsafe extern "C" fn( + scan: TableScanDesc, + OldestXmin: TransactionId, + liverows: *mut f64, + deadrows: *mut f64, + slot: *mut TupleTableSlot, + ) -> bool, + >, + pub index_build_range_scan: ::std::option::Option< + unsafe extern "C" fn( + table_rel: Relation, + index_rel: Relation, + index_info: *mut IndexInfo, + allow_sync: bool, + anyvisible: bool, + progress: bool, + start_blockno: BlockNumber, + numblocks: BlockNumber, + callback: IndexBuildCallback, + callback_state: *mut ::std::os::raw::c_void, + scan: TableScanDesc, + ) -> f64, + >, + pub index_validate_scan: ::std::option::Option< + unsafe extern "C" fn( + table_rel: Relation, + index_rel: Relation, + index_info: *mut IndexInfo, + snapshot: Snapshot, + state: *mut ValidateIndexState, + ), + >, + pub relation_size: ::std::option::Option< + unsafe extern "C" fn(rel: Relation, forkNumber: ForkNumber) -> uint64, + >, + pub relation_needs_toast_table: + ::std::option::Option bool>, + pub relation_toast_am: ::std::option::Option Oid>, + pub relation_fetch_toast_slice: ::std::option::Option< + unsafe extern "C" fn( + toastrel: Relation, + valueid: Oid, + attrsize: int32, + sliceoffset: int32, + slicelength: int32, + result: *mut varlena, + ), + >, + pub relation_estimate_size: ::std::option::Option< + unsafe extern "C" fn( + rel: Relation, + attr_widths: *mut int32, + pages: *mut BlockNumber, + tuples: *mut f64, + allvisfrac: *mut f64, + ), + >, + pub scan_bitmap_next_block: ::std::option::Option< + unsafe extern "C" fn(scan: TableScanDesc, tbmres: *mut TBMIterateResult) -> bool, + >, + pub scan_bitmap_next_tuple: ::std::option::Option< + unsafe extern "C" fn( + scan: TableScanDesc, + tbmres: *mut TBMIterateResult, + slot: *mut TupleTableSlot, + ) -> bool, + >, + pub scan_sample_next_block: ::std::option::Option< + unsafe extern "C" fn(scan: TableScanDesc, scanstate: *mut SampleScanState) -> bool, + >, + pub scan_sample_next_tuple: ::std::option::Option< + unsafe extern "C" fn( + scan: TableScanDesc, + scanstate: *mut SampleScanState, + slot: *mut TupleTableSlot, + ) -> bool, + >, +} +impl Default for TableAmRoutine { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_slot_callbacks(relation: Relation) -> *const TupleTableSlotOps; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_slot_create(relation: Relation, reglist: *mut *mut List) -> *mut TupleTableSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_beginscan_catalog( + relation: Relation, + nkeys: ::std::os::raw::c_int, + key: *mut ScanKeyData, + ) -> TableScanDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_scan_update_snapshot(scan: TableScanDesc, snapshot: Snapshot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_parallelscan_estimate(rel: Relation, snapshot: Snapshot) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_parallelscan_initialize( + rel: Relation, + pscan: ParallelTableScanDesc, + snapshot: Snapshot, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_beginscan_parallel( + relation: Relation, + pscan: ParallelTableScanDesc, + ) -> TableScanDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_index_fetch_tuple_check( + rel: Relation, + tid: ItemPointer, + snapshot: Snapshot, + all_dead: *mut bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_tuple_get_latest_tid(scan: TableScanDesc, tid: ItemPointer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn simple_table_tuple_insert(rel: Relation, slot: *mut TupleTableSlot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn simple_table_tuple_delete(rel: Relation, tid: ItemPointer, snapshot: Snapshot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn simple_table_tuple_update( + rel: Relation, + otid: ItemPointer, + slot: *mut TupleTableSlot, + snapshot: Snapshot, + update_indexes: *mut TU_UpdateIndexes, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_block_parallelscan_estimate(rel: Relation) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_block_parallelscan_initialize(rel: Relation, pscan: ParallelTableScanDesc) + -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_block_parallelscan_reinitialize(rel: Relation, pscan: ParallelTableScanDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_block_parallelscan_nextpage( + rel: Relation, + pbscanwork: ParallelBlockTableScanWorker, + pbscan: ParallelBlockTableScanDesc, + ) -> BlockNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_block_parallelscan_startblock_init( + rel: Relation, + pbscanwork: ParallelBlockTableScanWorker, + pbscan: ParallelBlockTableScanDesc, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_block_relation_size(rel: Relation, forkNumber: ForkNumber) -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_block_relation_estimate_size( + rel: Relation, + attr_widths: *mut int32, + pages: *mut BlockNumber, + tuples: *mut f64, + allvisfrac: *mut f64, + overhead_bytes_per_tuple: Size, + usable_bytes_per_page: Size, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTableAmRoutine(amhandler: Oid) -> *const TableAmRoutine; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetHeapamTableAmRoutine() -> *const TableAmRoutine; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitShmemAccess(seghdr: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitShmemAllocation(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShmemAlloc(size: Size) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShmemAllocNoError(size: Size) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShmemAllocUnlocked(size: Size) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShmemAddrIsValid(addr: *const ::std::os::raw::c_void) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitShmemIndex(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShmemInitHash( + name: *const ::std::os::raw::c_char, + init_size: ::std::os::raw::c_long, + max_size: ::std::os::raw::c_long, + infoP: *mut HASHCTL, + hash_flags: ::std::os::raw::c_int, + ) -> *mut HTAB; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShmemInitStruct( + name: *const ::std::os::raw::c_char, + size: Size, + foundPtr: *mut bool, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_size(s1: Size, s2: Size) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mul_size(s1: Size, s2: Size) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RequestAddinShmemSpace(size: Size); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ShmemIndexEnt { + pub key: [::std::os::raw::c_char; 48usize], + pub location: *mut ::std::os::raw::c_void, + pub size: Size, + pub allocated_size: Size, +} +impl Default for ShmemIndexEnt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct shm_toc { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_toc_create( + magic: uint64, + address: *mut ::std::os::raw::c_void, + nbytes: Size, + ) -> *mut shm_toc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_toc_attach(magic: uint64, address: *mut ::std::os::raw::c_void) -> *mut shm_toc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_toc_allocate(toc: *mut shm_toc, nbytes: Size) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_toc_freespace(toc: *mut shm_toc) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_toc_insert(toc: *mut shm_toc, key: uint64, address: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_toc_lookup( + toc: *mut shm_toc, + key: uint64, + noError: bool, + ) -> *mut ::std::os::raw::c_void; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct shm_toc_estimator { + pub space_for_chunks: Size, + pub number_of_keys: Size, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_toc_estimate(e: *mut shm_toc_estimator) -> Size; +} +pub type BulkInsertState = *mut BulkInsertStateData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HeapScanDescData { + pub rs_base: TableScanDescData, + pub rs_nblocks: BlockNumber, + pub rs_startblock: BlockNumber, + pub rs_numblocks: BlockNumber, + pub rs_inited: bool, + pub rs_coffset: OffsetNumber, + pub rs_cblock: BlockNumber, + pub rs_cbuf: Buffer, + pub rs_strategy: BufferAccessStrategy, + pub rs_ctup: HeapTupleData, + pub rs_parallelworkerdata: *mut ParallelBlockTableScanWorkerData, + pub rs_cindex: ::std::os::raw::c_int, + pub rs_ntuples: ::std::os::raw::c_int, + pub rs_vistuples: [OffsetNumber; 291usize], +} +impl Default for HeapScanDescData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type HeapScanDesc = *mut HeapScanDescData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexFetchHeapData { + pub xs_base: IndexFetchTableData, + pub xs_cbuf: Buffer, +} +impl Default for IndexFetchHeapData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const HTSV_Result_HEAPTUPLE_DEAD: HTSV_Result = 0; +pub const HTSV_Result_HEAPTUPLE_LIVE: HTSV_Result = 1; +pub const HTSV_Result_HEAPTUPLE_RECENTLY_DEAD: HTSV_Result = 2; +pub const HTSV_Result_HEAPTUPLE_INSERT_IN_PROGRESS: HTSV_Result = 3; +pub const HTSV_Result_HEAPTUPLE_DELETE_IN_PROGRESS: HTSV_Result = 4; +pub type HTSV_Result = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct HeapTupleFreeze { + pub xmax: TransactionId, + pub t_infomask2: uint16, + pub t_infomask: uint16, + pub frzflags: uint8, + pub checkflags: uint8, + pub offset: OffsetNumber, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct HeapPageFreeze { + pub freeze_required: bool, + pub FreezePageRelfrozenXid: TransactionId, + pub FreezePageRelminMxid: MultiXactId, + pub NoFreezePageRelfrozenXid: TransactionId, + pub NoFreezePageRelminMxid: MultiXactId, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_beginscan( + relation: Relation, + snapshot: Snapshot, + nkeys: ::std::os::raw::c_int, + key: ScanKey, + parallel_scan: ParallelTableScanDesc, + flags: uint32, + ) -> TableScanDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_setscanlimits(sscan: TableScanDesc, startBlk: BlockNumber, numBlks: BlockNumber); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heapgetpage(sscan: TableScanDesc, block: BlockNumber); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_rescan( + sscan: TableScanDesc, + key: ScanKey, + set_params: bool, + allow_strat: bool, + allow_sync: bool, + allow_pagemode: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_endscan(sscan: TableScanDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_getnext(sscan: TableScanDesc, direction: ScanDirection) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_getnextslot( + sscan: TableScanDesc, + direction: ScanDirection, + slot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_set_tidrange(sscan: TableScanDesc, mintid: ItemPointer, maxtid: ItemPointer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_getnextslot_tidrange( + sscan: TableScanDesc, + direction: ScanDirection, + slot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_fetch( + relation: Relation, + snapshot: Snapshot, + tuple: HeapTuple, + userbuf: *mut Buffer, + keep_buf: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_hot_search_buffer( + tid: ItemPointer, + relation: Relation, + buffer: Buffer, + snapshot: Snapshot, + heapTuple: HeapTuple, + all_dead: *mut bool, + first_call: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_get_latest_tid(sscan: TableScanDesc, tid: ItemPointer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetBulkInsertState() -> BulkInsertState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeBulkInsertState(arg1: BulkInsertState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseBulkInsertStatePin(bistate: BulkInsertState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_insert( + relation: Relation, + tup: HeapTuple, + cid: CommandId, + options: ::std::os::raw::c_int, + bistate: BulkInsertState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_multi_insert( + relation: Relation, + slots: *mut *mut TupleTableSlot, + ntuples: ::std::os::raw::c_int, + cid: CommandId, + options: ::std::os::raw::c_int, + bistate: BulkInsertState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_delete( + relation: Relation, + tid: ItemPointer, + cid: CommandId, + crosscheck: Snapshot, + wait: bool, + tmfd: *mut TM_FailureData, + changingPart: bool, + ) -> TM_Result; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_finish_speculative(relation: Relation, tid: ItemPointer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_abort_speculative(relation: Relation, tid: ItemPointer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_update( + relation: Relation, + otid: ItemPointer, + newtup: HeapTuple, + cid: CommandId, + crosscheck: Snapshot, + wait: bool, + tmfd: *mut TM_FailureData, + lockmode: *mut LockTupleMode, + update_indexes: *mut TU_UpdateIndexes, + ) -> TM_Result; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_lock_tuple( + relation: Relation, + tuple: HeapTuple, + cid: CommandId, + mode: LockTupleMode, + wait_policy: LockWaitPolicy, + follow_updates: bool, + buffer: *mut Buffer, + tmfd: *mut TM_FailureData, + ) -> TM_Result; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_inplace_update(relation: Relation, tuple: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_prepare_freeze_tuple( + tuple: HeapTupleHeader, + cutoffs: *const VacuumCutoffs, + pagefrz: *mut HeapPageFreeze, + frz: *mut HeapTupleFreeze, + totally_frozen: *mut bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_freeze_execute_prepared( + rel: Relation, + buffer: Buffer, + snapshotConflictHorizon: TransactionId, + tuples: *mut HeapTupleFreeze, + ntuples: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_freeze_tuple( + tuple: HeapTupleHeader, + relfrozenxid: TransactionId, + relminmxid: TransactionId, + FreezeLimit: TransactionId, + MultiXactCutoff: TransactionId, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_tuple_should_freeze( + tuple: HeapTupleHeader, + cutoffs: *const VacuumCutoffs, + NoFreezePageRelfrozenXid: *mut TransactionId, + NoFreezePageRelminMxid: *mut MultiXactId, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_tuple_needs_eventual_freeze(tuple: HeapTupleHeader) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn simple_heap_insert(relation: Relation, tup: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn simple_heap_delete(relation: Relation, tid: ItemPointer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn simple_heap_update( + relation: Relation, + otid: ItemPointer, + tup: HeapTuple, + update_indexes: *mut TU_UpdateIndexes, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_index_delete_tuples( + rel: Relation, + delstate: *mut TM_IndexDeleteOp, + ) -> TransactionId; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GlobalVisState { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_page_prune_opt(relation: Relation, buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_page_prune( + relation: Relation, + buffer: Buffer, + vistest: *mut GlobalVisState, + old_snap_xmin: TransactionId, + old_snap_ts: TimestampTz, + nnewlpdead: *mut ::std::os::raw::c_int, + off_loc: *mut OffsetNumber, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_page_prune_execute( + buffer: Buffer, + redirected: *mut OffsetNumber, + nredirected: ::std::os::raw::c_int, + nowdead: *mut OffsetNumber, + ndead: ::std::os::raw::c_int, + nowunused: *mut OffsetNumber, + nunused: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_get_root_tuples(page: Page, root_offsets: *mut OffsetNumber); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_vacuum_rel( + rel: Relation, + params: *mut VacuumParams, + bstrategy: BufferAccessStrategy, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleSatisfiesVisibility( + htup: HeapTuple, + snapshot: Snapshot, + buffer: Buffer, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleSatisfiesUpdate( + htup: HeapTuple, + curcid: CommandId, + buffer: Buffer, + ) -> TM_Result; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleSatisfiesVacuum( + htup: HeapTuple, + OldestXmin: TransactionId, + buffer: Buffer, + ) -> HTSV_Result; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleSatisfiesVacuumHorizon( + htup: HeapTuple, + buffer: Buffer, + dead_after: *mut TransactionId, + ) -> HTSV_Result; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleSetHintBits( + tuple: HeapTupleHeader, + buffer: Buffer, + infomask: uint16, + xid: TransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleHeaderIsOnlyLocked(tuple: HeapTupleHeader) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapTupleIsSurelyDead(htup: HeapTuple, vistest: *mut GlobalVisState) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResolveCminCmaxDuringDecoding( + tuplecid_data: *mut HTAB, + snapshot: Snapshot, + htup: HeapTuple, + buffer: Buffer, + cmin: *mut CommandId, + cmax: *mut CommandId, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HeapCheckForSerializableConflictOut( + visible: bool, + relation: Relation, + tuple: HeapTuple, + buffer: Buffer, + snapshot: Snapshot, + ); +} +pub const LWLockWaitState_LW_WS_NOT_WAITING: LWLockWaitState = 0; +pub const LWLockWaitState_LW_WS_WAITING: LWLockWaitState = 1; +pub const LWLockWaitState_LW_WS_PENDING_WAKEUP: LWLockWaitState = 2; +pub type LWLockWaitState = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LWLock { + pub tranche: uint16, + pub state: pg_atomic_uint32, + pub waiters: proclist_head, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union LWLockPadded { + pub lock: LWLock, + pub pad: [::std::os::raw::c_char; 128usize], +} +impl Default for LWLockPadded { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut MainLWLockArray: *mut LWLockPadded; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NamedLWLockTranche { + pub trancheId: ::std::os::raw::c_int, + pub trancheName: *mut ::std::os::raw::c_char, +} +impl Default for NamedLWLockTranche { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut NamedLWLockTrancheArray: *mut NamedLWLockTranche; +} +extern "C" { + pub static mut NamedLWLockTrancheRequests: ::std::os::raw::c_int; +} +pub const LWLockMode_LW_EXCLUSIVE: LWLockMode = 0; +pub const LWLockMode_LW_SHARED: LWLockMode = 1; +pub const LWLockMode_LW_WAIT_UNTIL_FREE: LWLockMode = 2; +pub type LWLockMode = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockAcquire(lock: *mut LWLock, mode: LWLockMode) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockConditionalAcquire(lock: *mut LWLock, mode: LWLockMode) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockAcquireOrWait(lock: *mut LWLock, mode: LWLockMode) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockRelease(lock: *mut LWLock); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockReleaseClearVar(lock: *mut LWLock, valptr: *mut uint64, val: uint64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockReleaseAll(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockHeldByMe(lock: *mut LWLock) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockAnyHeldByMe( + lock: *mut LWLock, + nlocks: ::std::os::raw::c_int, + stride: usize, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockHeldByMeInMode(lock: *mut LWLock, mode: LWLockMode) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockWaitForVar( + lock: *mut LWLock, + valptr: *mut uint64, + oldval: uint64, + newval: *mut uint64, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockUpdateVar(lock: *mut LWLock, valptr: *mut uint64, val: uint64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateLWLocks(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitLWLockAccess(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLWLockIdentifier(classId: uint32, eventId: uint16) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RequestNamedLWLockTranche( + tranche_name: *const ::std::os::raw::c_char, + num_lwlocks: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetNamedLWLockTranche(tranche_name: *const ::std::os::raw::c_char) -> *mut LWLockPadded; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockNewTrancheId() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockRegisterTranche( + tranche_id: ::std::os::raw::c_int, + tranche_name: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LWLockInitialize(lock: *mut LWLock, tranche_id: ::std::os::raw::c_int); +} +pub const BuiltinTrancheIds_LWTRANCHE_XACT_BUFFER: BuiltinTrancheIds = 48; +pub const BuiltinTrancheIds_LWTRANCHE_COMMITTS_BUFFER: BuiltinTrancheIds = 49; +pub const BuiltinTrancheIds_LWTRANCHE_SUBTRANS_BUFFER: BuiltinTrancheIds = 50; +pub const BuiltinTrancheIds_LWTRANCHE_MULTIXACTOFFSET_BUFFER: BuiltinTrancheIds = 51; +pub const BuiltinTrancheIds_LWTRANCHE_MULTIXACTMEMBER_BUFFER: BuiltinTrancheIds = 52; +pub const BuiltinTrancheIds_LWTRANCHE_NOTIFY_BUFFER: BuiltinTrancheIds = 53; +pub const BuiltinTrancheIds_LWTRANCHE_SERIAL_BUFFER: BuiltinTrancheIds = 54; +pub const BuiltinTrancheIds_LWTRANCHE_WAL_INSERT: BuiltinTrancheIds = 55; +pub const BuiltinTrancheIds_LWTRANCHE_BUFFER_CONTENT: BuiltinTrancheIds = 56; +pub const BuiltinTrancheIds_LWTRANCHE_REPLICATION_ORIGIN_STATE: BuiltinTrancheIds = 57; +pub const BuiltinTrancheIds_LWTRANCHE_REPLICATION_SLOT_IO: BuiltinTrancheIds = 58; +pub const BuiltinTrancheIds_LWTRANCHE_LOCK_FASTPATH: BuiltinTrancheIds = 59; +pub const BuiltinTrancheIds_LWTRANCHE_BUFFER_MAPPING: BuiltinTrancheIds = 60; +pub const BuiltinTrancheIds_LWTRANCHE_LOCK_MANAGER: BuiltinTrancheIds = 61; +pub const BuiltinTrancheIds_LWTRANCHE_PREDICATE_LOCK_MANAGER: BuiltinTrancheIds = 62; +pub const BuiltinTrancheIds_LWTRANCHE_PARALLEL_HASH_JOIN: BuiltinTrancheIds = 63; +pub const BuiltinTrancheIds_LWTRANCHE_PARALLEL_QUERY_DSA: BuiltinTrancheIds = 64; +pub const BuiltinTrancheIds_LWTRANCHE_PER_SESSION_DSA: BuiltinTrancheIds = 65; +pub const BuiltinTrancheIds_LWTRANCHE_PER_SESSION_RECORD_TYPE: BuiltinTrancheIds = 66; +pub const BuiltinTrancheIds_LWTRANCHE_PER_SESSION_RECORD_TYPMOD: BuiltinTrancheIds = 67; +pub const BuiltinTrancheIds_LWTRANCHE_SHARED_TUPLESTORE: BuiltinTrancheIds = 68; +pub const BuiltinTrancheIds_LWTRANCHE_SHARED_TIDBITMAP: BuiltinTrancheIds = 69; +pub const BuiltinTrancheIds_LWTRANCHE_PARALLEL_APPEND: BuiltinTrancheIds = 70; +pub const BuiltinTrancheIds_LWTRANCHE_PER_XACT_PREDICATE_LIST: BuiltinTrancheIds = 71; +pub const BuiltinTrancheIds_LWTRANCHE_PGSTATS_DSA: BuiltinTrancheIds = 72; +pub const BuiltinTrancheIds_LWTRANCHE_PGSTATS_HASH: BuiltinTrancheIds = 73; +pub const BuiltinTrancheIds_LWTRANCHE_PGSTATS_DATA: BuiltinTrancheIds = 74; +pub const BuiltinTrancheIds_LWTRANCHE_LAUNCHER_DSA: BuiltinTrancheIds = 75; +pub const BuiltinTrancheIds_LWTRANCHE_LAUNCHER_HASH: BuiltinTrancheIds = 76; +pub const BuiltinTrancheIds_LWTRANCHE_FIRST_USER_DEFINED: BuiltinTrancheIds = 77; +pub type BuiltinTrancheIds = ::std::os::raw::c_uint; +pub type LWLockId = *mut LWLock; +extern "C" { + pub static mut PgStartTime: TimestampTz; +} +extern "C" { + pub static mut PgReloadTime: TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anytimestamp_typmod_check(istz: bool, typmod: int32) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentTimestamp() -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSQLCurrentTimestamp(typmod: int32) -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSQLLocalTimestamp(typmod: int32) -> Timestamp; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TimestampDifference( + start_time: TimestampTz, + stop_time: TimestampTz, + secs: *mut ::std::os::raw::c_long, + microsecs: *mut ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TimestampDifferenceMilliseconds( + start_time: TimestampTz, + stop_time: TimestampTz, + ) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TimestampDifferenceExceeds( + start_time: TimestampTz, + stop_time: TimestampTz, + msec: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_t_to_timestamptz(tm: pg_time_t) -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_to_time_t(t: TimestampTz) -> pg_time_t; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_to_str(t: TimestampTz) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tm2timestamp( + tm: *mut pg_tm, + fsec: fsec_t, + tzp: *mut ::std::os::raw::c_int, + result: *mut Timestamp, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp2tm( + dt: Timestamp, + tzp: *mut ::std::os::raw::c_int, + tm: *mut pg_tm, + fsec: *mut fsec_t, + tzn: *mut *const ::std::os::raw::c_char, + attimezone: *mut pg_tz, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dt2time( + jd: Timestamp, + hour: *mut ::std::os::raw::c_int, + min: *mut ::std::os::raw::c_int, + sec: *mut ::std::os::raw::c_int, + fsec: *mut fsec_t, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval2itm(span: Interval, itm: *mut pg_itm); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn itm2interval(itm: *mut pg_itm, span: *mut Interval) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn itmin2interval(itm_in: *mut pg_itm_in, span: *mut Interval) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetEpochTimestamp() -> Timestamp; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetEpochTime(tm: *mut pg_tm); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_cmp_internal(dt1: Timestamp, dt2: Timestamp) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp2timestamptz_opt_overflow( + timestamp: Timestamp, + overflow: *mut ::std::os::raw::c_int, + ) -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_cmp_timestamptz_internal(timestampVal: Timestamp, dt2: TimestampTz) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn isoweek2j( + year: ::std::os::raw::c_int, + week: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn isoweek2date( + woy: ::std::os::raw::c_int, + year: *mut ::std::os::raw::c_int, + mon: *mut ::std::os::raw::c_int, + mday: *mut ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn isoweekdate2date( + isoweek: ::std::os::raw::c_int, + wday: ::std::os::raw::c_int, + year: *mut ::std::os::raw::c_int, + mon: *mut ::std::os::raw::c_int, + mday: *mut ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date2isoweek( + year: ::std::os::raw::c_int, + mon: ::std::os::raw::c_int, + mday: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date2isoyear( + year: ::std::os::raw::c_int, + mon: ::std::os::raw::c_int, + mday: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date2isoyearday( + year: ::std::os::raw::c_int, + mon: ::std::os::raw::c_int, + mday: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TimestampTimestampTzRequiresRewrite() -> bool; +} +extern "C" { + pub static mut max_locks_per_xact: ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct VirtualTransactionId { + pub backendId: BackendId, + pub localTransactionId: LocalTransactionId, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LockMethodData { + pub numLockModes: ::std::os::raw::c_int, + pub conflictTab: *const LOCKMASK, + pub lockModeNames: *const *const ::std::os::raw::c_char, + pub trace_flag: *const bool, +} +impl Default for LockMethodData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type LockMethod = *const LockMethodData; +pub type LOCKMETHODID = uint16; +pub const LockTagType_LOCKTAG_RELATION: LockTagType = 0; +pub const LockTagType_LOCKTAG_RELATION_EXTEND: LockTagType = 1; +pub const LockTagType_LOCKTAG_DATABASE_FROZEN_IDS: LockTagType = 2; +pub const LockTagType_LOCKTAG_PAGE: LockTagType = 3; +pub const LockTagType_LOCKTAG_TUPLE: LockTagType = 4; +pub const LockTagType_LOCKTAG_TRANSACTION: LockTagType = 5; +pub const LockTagType_LOCKTAG_VIRTUALTRANSACTION: LockTagType = 6; +pub const LockTagType_LOCKTAG_SPECULATIVE_TOKEN: LockTagType = 7; +pub const LockTagType_LOCKTAG_OBJECT: LockTagType = 8; +pub const LockTagType_LOCKTAG_USERLOCK: LockTagType = 9; +pub const LockTagType_LOCKTAG_ADVISORY: LockTagType = 10; +pub const LockTagType_LOCKTAG_APPLY_TRANSACTION: LockTagType = 11; +pub type LockTagType = ::std::os::raw::c_uint; +extern "C" { + pub static LockTagTypeNames: [*const ::std::os::raw::c_char; 0usize]; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LOCKTAG { + pub locktag_field1: uint32, + pub locktag_field2: uint32, + pub locktag_field3: uint32, + pub locktag_field4: uint16, + pub locktag_type: uint8, + pub locktag_lockmethodid: uint8, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LOCK { + pub tag: LOCKTAG, + pub grantMask: LOCKMASK, + pub waitMask: LOCKMASK, + pub procLocks: dlist_head, + pub waitProcs: dclist_head, + pub requested: [::std::os::raw::c_int; 10usize], + pub nRequested: ::std::os::raw::c_int, + pub granted: [::std::os::raw::c_int; 10usize], + pub nGranted: ::std::os::raw::c_int, +} +impl Default for LOCK { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PROCLOCKTAG { + pub myLock: *mut LOCK, + pub myProc: *mut PGPROC, +} +impl Default for PROCLOCKTAG { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PROCLOCK { + pub tag: PROCLOCKTAG, + pub groupLeader: *mut PGPROC, + pub holdMask: LOCKMASK, + pub releaseMask: LOCKMASK, + pub lockLink: dlist_node, + pub procLink: dlist_node, +} +impl Default for PROCLOCK { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LOCALLOCKTAG { + pub lock: LOCKTAG, + pub mode: LOCKMODE, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LOCALLOCKOWNER { + pub owner: *mut ResourceOwnerData, + pub nLocks: int64, +} +impl Default for LOCALLOCKOWNER { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LOCALLOCK { + pub tag: LOCALLOCKTAG, + pub hashcode: uint32, + pub lock: *mut LOCK, + pub proclock: *mut PROCLOCK, + pub nLocks: int64, + pub numLockOwners: ::std::os::raw::c_int, + pub maxLockOwners: ::std::os::raw::c_int, + pub lockOwners: *mut LOCALLOCKOWNER, + pub holdsStrongLockCount: bool, + pub lockCleared: bool, +} +impl Default for LOCALLOCK { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LockInstanceData { + pub locktag: LOCKTAG, + pub holdMask: LOCKMASK, + pub waitLockMode: LOCKMODE, + pub backend: BackendId, + pub lxid: LocalTransactionId, + pub waitStart: TimestampTz, + pub pid: ::std::os::raw::c_int, + pub leaderPid: ::std::os::raw::c_int, + pub fastpath: bool, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LockData { + pub nelements: ::std::os::raw::c_int, + pub locks: *mut LockInstanceData, +} +impl Default for LockData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct BlockedProcData { + pub pid: ::std::os::raw::c_int, + pub first_lock: ::std::os::raw::c_int, + pub num_locks: ::std::os::raw::c_int, + pub first_waiter: ::std::os::raw::c_int, + pub num_waiters: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BlockedProcsData { + pub procs: *mut BlockedProcData, + pub locks: *mut LockInstanceData, + pub waiter_pids: *mut ::std::os::raw::c_int, + pub nprocs: ::std::os::raw::c_int, + pub maxprocs: ::std::os::raw::c_int, + pub nlocks: ::std::os::raw::c_int, + pub maxlocks: ::std::os::raw::c_int, + pub npids: ::std::os::raw::c_int, + pub maxpids: ::std::os::raw::c_int, +} +impl Default for BlockedProcsData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const LockAcquireResult_LOCKACQUIRE_NOT_AVAIL: LockAcquireResult = 0; +pub const LockAcquireResult_LOCKACQUIRE_OK: LockAcquireResult = 1; +pub const LockAcquireResult_LOCKACQUIRE_ALREADY_HELD: LockAcquireResult = 2; +pub const LockAcquireResult_LOCKACQUIRE_ALREADY_CLEAR: LockAcquireResult = 3; +pub type LockAcquireResult = ::std::os::raw::c_uint; +pub const DeadLockState_DS_NOT_YET_CHECKED: DeadLockState = 0; +pub const DeadLockState_DS_NO_DEADLOCK: DeadLockState = 1; +pub const DeadLockState_DS_SOFT_DEADLOCK: DeadLockState = 2; +pub const DeadLockState_DS_HARD_DEADLOCK: DeadLockState = 3; +pub const DeadLockState_DS_BLOCKED_BY_AUTOVACUUM: DeadLockState = 4; +pub type DeadLockState = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitLocks(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLocksMethodTable(lock: *const LOCK) -> LockMethod; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLockTagsMethodTable(locktag: *const LOCKTAG) -> LockMethod; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockTagHashCode(locktag: *const LOCKTAG) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DoLockModesConflict(mode1: LOCKMODE, mode2: LOCKMODE) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockAcquire( + locktag: *const LOCKTAG, + lockmode: LOCKMODE, + sessionLock: bool, + dontWait: bool, + ) -> LockAcquireResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockAcquireExtended( + locktag: *const LOCKTAG, + lockmode: LOCKMODE, + sessionLock: bool, + dontWait: bool, + reportMemoryError: bool, + locallockp: *mut *mut LOCALLOCK, + ) -> LockAcquireResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AbortStrongLockAcquire(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MarkLockClear(locallock: *mut LOCALLOCK); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockRelease(locktag: *const LOCKTAG, lockmode: LOCKMODE, sessionLock: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockReleaseAll(lockmethodid: LOCKMETHODID, allLocks: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockReleaseSession(lockmethodid: LOCKMETHODID); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockReleaseCurrentOwner(locallocks: *mut *mut LOCALLOCK, nlocks: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockReassignCurrentOwner(locallocks: *mut *mut LOCALLOCK, nlocks: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockHeldByMe(locktag: *const LOCKTAG, lockmode: LOCKMODE) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLockMethodLocalHash() -> *mut HTAB; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockHasWaiters(locktag: *const LOCKTAG, lockmode: LOCKMODE, sessionLock: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLockConflicts( + locktag: *const LOCKTAG, + lockmode: LOCKMODE, + countp: *mut ::std::os::raw::c_int, + ) -> *mut VirtualTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtPrepare_Locks(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PostPrepare_Locks(xid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockCheckConflicts( + lockMethodTable: LockMethod, + lockmode: LOCKMODE, + lock: *mut LOCK, + proclock: *mut PROCLOCK, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GrantLock(lock: *mut LOCK, proclock: *mut PROCLOCK, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GrantAwaitedLock(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveFromWaitQueue(proc_: *mut PGPROC, hashcode: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLockStatusData() -> *mut LockData; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetBlockerStatusData(blocked_pid: ::std::os::raw::c_int) -> *mut BlockedProcsData; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetRunningTransactionLocks(nlocks: *mut ::std::os::raw::c_int) -> *mut xl_standby_lock; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLockmodeName( + lockmethodid: LOCKMETHODID, + mode: LOCKMODE, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lock_twophase_recover( + xid: TransactionId, + info: uint16, + recdata: *mut ::std::os::raw::c_void, + len: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lock_twophase_postcommit( + xid: TransactionId, + info: uint16, + recdata: *mut ::std::os::raw::c_void, + len: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lock_twophase_postabort( + xid: TransactionId, + info: uint16, + recdata: *mut ::std::os::raw::c_void, + len: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lock_twophase_standby_recover( + xid: TransactionId, + info: uint16, + recdata: *mut ::std::os::raw::c_void, + len: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DeadLockCheck(proc_: *mut PGPROC) -> DeadLockState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetBlockingAutoVacuumPgproc() -> *mut PGPROC; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DeadLockReport() -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RememberSimpleDeadLock( + proc1: *mut PGPROC, + lockmode: LOCKMODE, + lock: *mut LOCK, + proc2: *mut PGPROC, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitDeadLockChecking(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockWaiterCount(locktag: *const LOCKTAG) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn VirtualXactLockTableInsert(vxid: VirtualTransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn VirtualXactLockTableCleanup(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn VirtualXactLock(vxid: VirtualTransactionId, wait: bool) -> bool; +} +pub const relopt_type_RELOPT_TYPE_BOOL: relopt_type = 0; +pub const relopt_type_RELOPT_TYPE_INT: relopt_type = 1; +pub const relopt_type_RELOPT_TYPE_REAL: relopt_type = 2; +pub const relopt_type_RELOPT_TYPE_ENUM: relopt_type = 3; +pub const relopt_type_RELOPT_TYPE_STRING: relopt_type = 4; +pub type relopt_type = ::std::os::raw::c_uint; +pub const relopt_kind_RELOPT_KIND_LOCAL: relopt_kind = 0; +pub const relopt_kind_RELOPT_KIND_HEAP: relopt_kind = 1; +pub const relopt_kind_RELOPT_KIND_TOAST: relopt_kind = 2; +pub const relopt_kind_RELOPT_KIND_BTREE: relopt_kind = 4; +pub const relopt_kind_RELOPT_KIND_HASH: relopt_kind = 8; +pub const relopt_kind_RELOPT_KIND_GIN: relopt_kind = 16; +pub const relopt_kind_RELOPT_KIND_GIST: relopt_kind = 32; +pub const relopt_kind_RELOPT_KIND_ATTRIBUTE: relopt_kind = 64; +pub const relopt_kind_RELOPT_KIND_TABLESPACE: relopt_kind = 128; +pub const relopt_kind_RELOPT_KIND_SPGIST: relopt_kind = 256; +pub const relopt_kind_RELOPT_KIND_VIEW: relopt_kind = 512; +pub const relopt_kind_RELOPT_KIND_BRIN: relopt_kind = 1024; +pub const relopt_kind_RELOPT_KIND_PARTITIONED: relopt_kind = 2048; +pub const relopt_kind_RELOPT_KIND_LAST_DEFAULT: relopt_kind = 2048; +pub const relopt_kind_RELOPT_KIND_MAX: relopt_kind = 1073741824; +pub type relopt_kind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct relopt_gen { + pub name: *const ::std::os::raw::c_char, + pub desc: *const ::std::os::raw::c_char, + pub kinds: bits32, + pub lockmode: LOCKMODE, + pub namelen: ::std::os::raw::c_int, + pub type_: relopt_type, +} +impl Default for relopt_gen { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct relopt_value { + pub gen: *mut relopt_gen, + pub isset: bool, + pub values: relopt_value__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union relopt_value__bindgen_ty_1 { + pub bool_val: bool, + pub int_val: ::std::os::raw::c_int, + pub real_val: f64, + pub enum_val: ::std::os::raw::c_int, + pub string_val: *mut ::std::os::raw::c_char, +} +impl Default for relopt_value__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for relopt_value { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct relopt_bool { + pub gen: relopt_gen, + pub default_val: bool, +} +impl Default for relopt_bool { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct relopt_int { + pub gen: relopt_gen, + pub default_val: ::std::os::raw::c_int, + pub min: ::std::os::raw::c_int, + pub max: ::std::os::raw::c_int, +} +impl Default for relopt_int { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct relopt_real { + pub gen: relopt_gen, + pub default_val: f64, + pub min: f64, + pub max: f64, +} +impl Default for relopt_real { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct relopt_enum_elt_def { + pub string_val: *const ::std::os::raw::c_char, + pub symbol_val: ::std::os::raw::c_int, +} +impl Default for relopt_enum_elt_def { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct relopt_enum { + pub gen: relopt_gen, + pub members: *mut relopt_enum_elt_def, + pub default_val: ::std::os::raw::c_int, + pub detailmsg: *const ::std::os::raw::c_char, +} +impl Default for relopt_enum { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type validate_string_relopt = + ::std::option::Option; +pub type fill_string_relopt = ::std::option::Option< + unsafe extern "C" fn( + value: *const ::std::os::raw::c_char, + ptr: *mut ::std::os::raw::c_void, + ) -> Size, +>; +pub type relopts_validator = ::std::option::Option< + unsafe extern "C" fn( + parsed_options: *mut ::std::os::raw::c_void, + vals: *mut relopt_value, + nvals: ::std::os::raw::c_int, + ), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct relopt_string { + pub gen: relopt_gen, + pub default_len: ::std::os::raw::c_int, + pub default_isnull: bool, + pub validate_cb: validate_string_relopt, + pub fill_cb: fill_string_relopt, + pub default_val: *mut ::std::os::raw::c_char, +} +impl Default for relopt_string { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct relopt_parse_elt { + pub optname: *const ::std::os::raw::c_char, + pub opttype: relopt_type, + pub offset: ::std::os::raw::c_int, +} +impl Default for relopt_parse_elt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct local_relopt { + pub option: *mut relopt_gen, + pub offset: ::std::os::raw::c_int, +} +impl Default for local_relopt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct local_relopts { + pub options: *mut List, + pub validators: *mut List, + pub relopt_struct_size: Size, +} +impl Default for local_relopts { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_reloption_kind() -> relopt_kind; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_bool_reloption( + kinds: bits32, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + default_val: bool, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_int_reloption( + kinds: bits32, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + default_val: ::std::os::raw::c_int, + min_val: ::std::os::raw::c_int, + max_val: ::std::os::raw::c_int, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_real_reloption( + kinds: bits32, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + default_val: f64, + min_val: f64, + max_val: f64, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_enum_reloption( + kinds: bits32, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + members: *mut relopt_enum_elt_def, + default_val: ::std::os::raw::c_int, + detailmsg: *const ::std::os::raw::c_char, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_string_reloption( + kinds: bits32, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + default_val: *const ::std::os::raw::c_char, + validator: validate_string_relopt, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn init_local_reloptions(relopts: *mut local_relopts, relopt_struct_size: Size); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn register_reloptions_validator(relopts: *mut local_relopts, validator: relopts_validator); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_local_bool_reloption( + relopts: *mut local_relopts, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + default_val: bool, + offset: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_local_int_reloption( + relopts: *mut local_relopts, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + default_val: ::std::os::raw::c_int, + min_val: ::std::os::raw::c_int, + max_val: ::std::os::raw::c_int, + offset: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_local_real_reloption( + relopts: *mut local_relopts, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + default_val: f64, + min_val: f64, + max_val: f64, + offset: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_local_enum_reloption( + relopts: *mut local_relopts, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + members: *mut relopt_enum_elt_def, + default_val: ::std::os::raw::c_int, + detailmsg: *const ::std::os::raw::c_char, + offset: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_local_string_reloption( + relopts: *mut local_relopts, + name: *const ::std::os::raw::c_char, + desc: *const ::std::os::raw::c_char, + default_val: *const ::std::os::raw::c_char, + validator: validate_string_relopt, + filler: fill_string_relopt, + offset: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn transformRelOptions( + oldOptions: Datum, + defList: *mut List, + namspace: *const ::std::os::raw::c_char, + validnsps: *mut *mut ::std::os::raw::c_char, + acceptOidsOff: bool, + isReset: bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn untransformRelOptions(options: Datum) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extractRelOptions( + tuple: HeapTuple, + tupdesc: TupleDesc, + amoptions: amoptions_function, + ) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_reloptions( + reloptions: Datum, + validate: bool, + kind: relopt_kind, + relopt_struct_size: Size, + relopt_elems: *const relopt_parse_elt, + num_relopt_elems: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_local_reloptions( + relopts: *mut local_relopts, + options: Datum, + validate: bool, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn default_reloptions(reloptions: Datum, validate: bool, kind: relopt_kind) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_reloptions( + relkind: ::std::os::raw::c_char, + reloptions: Datum, + validate: bool, + ) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn view_reloptions(reloptions: Datum, validate: bool) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn partitioned_table_reloptions(reloptions: Datum, validate: bool) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_reloptions( + amoptions: amoptions_function, + reloptions: Datum, + validate: bool, + ) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn attribute_reloptions(reloptions: Datum, validate: bool) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tablespace_reloptions(reloptions: Datum, validate: bool) -> *mut bytea; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTableGetRelOptionsLockLevel(defList: *mut List) -> LOCKMODE; +} +pub const DependencyType_DEPENDENCY_NORMAL: DependencyType = 110; +pub const DependencyType_DEPENDENCY_AUTO: DependencyType = 97; +pub const DependencyType_DEPENDENCY_INTERNAL: DependencyType = 105; +pub const DependencyType_DEPENDENCY_PARTITION_PRI: DependencyType = 80; +pub const DependencyType_DEPENDENCY_PARTITION_SEC: DependencyType = 83; +pub const DependencyType_DEPENDENCY_EXTENSION: DependencyType = 101; +pub const DependencyType_DEPENDENCY_AUTO_EXTENSION: DependencyType = 120; +pub type DependencyType = ::std::os::raw::c_uint; +pub const SharedDependencyType_SHARED_DEPENDENCY_OWNER: SharedDependencyType = 111; +pub const SharedDependencyType_SHARED_DEPENDENCY_ACL: SharedDependencyType = 97; +pub const SharedDependencyType_SHARED_DEPENDENCY_POLICY: SharedDependencyType = 114; +pub const SharedDependencyType_SHARED_DEPENDENCY_TABLESPACE: SharedDependencyType = 116; +pub const SharedDependencyType_SHARED_DEPENDENCY_INVALID: SharedDependencyType = 0; +pub type SharedDependencyType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ObjectAddresses { + _unused: [u8; 0], +} +pub const ObjectClass_OCLASS_CLASS: ObjectClass = 0; +pub const ObjectClass_OCLASS_PROC: ObjectClass = 1; +pub const ObjectClass_OCLASS_TYPE: ObjectClass = 2; +pub const ObjectClass_OCLASS_CAST: ObjectClass = 3; +pub const ObjectClass_OCLASS_COLLATION: ObjectClass = 4; +pub const ObjectClass_OCLASS_CONSTRAINT: ObjectClass = 5; +pub const ObjectClass_OCLASS_CONVERSION: ObjectClass = 6; +pub const ObjectClass_OCLASS_DEFAULT: ObjectClass = 7; +pub const ObjectClass_OCLASS_LANGUAGE: ObjectClass = 8; +pub const ObjectClass_OCLASS_LARGEOBJECT: ObjectClass = 9; +pub const ObjectClass_OCLASS_OPERATOR: ObjectClass = 10; +pub const ObjectClass_OCLASS_OPCLASS: ObjectClass = 11; +pub const ObjectClass_OCLASS_OPFAMILY: ObjectClass = 12; +pub const ObjectClass_OCLASS_AM: ObjectClass = 13; +pub const ObjectClass_OCLASS_AMOP: ObjectClass = 14; +pub const ObjectClass_OCLASS_AMPROC: ObjectClass = 15; +pub const ObjectClass_OCLASS_REWRITE: ObjectClass = 16; +pub const ObjectClass_OCLASS_TRIGGER: ObjectClass = 17; +pub const ObjectClass_OCLASS_SCHEMA: ObjectClass = 18; +pub const ObjectClass_OCLASS_STATISTIC_EXT: ObjectClass = 19; +pub const ObjectClass_OCLASS_TSPARSER: ObjectClass = 20; +pub const ObjectClass_OCLASS_TSDICT: ObjectClass = 21; +pub const ObjectClass_OCLASS_TSTEMPLATE: ObjectClass = 22; +pub const ObjectClass_OCLASS_TSCONFIG: ObjectClass = 23; +pub const ObjectClass_OCLASS_ROLE: ObjectClass = 24; +pub const ObjectClass_OCLASS_ROLE_MEMBERSHIP: ObjectClass = 25; +pub const ObjectClass_OCLASS_DATABASE: ObjectClass = 26; +pub const ObjectClass_OCLASS_TBLSPACE: ObjectClass = 27; +pub const ObjectClass_OCLASS_FDW: ObjectClass = 28; +pub const ObjectClass_OCLASS_FOREIGN_SERVER: ObjectClass = 29; +pub const ObjectClass_OCLASS_USER_MAPPING: ObjectClass = 30; +pub const ObjectClass_OCLASS_DEFACL: ObjectClass = 31; +pub const ObjectClass_OCLASS_EXTENSION: ObjectClass = 32; +pub const ObjectClass_OCLASS_EVENT_TRIGGER: ObjectClass = 33; +pub const ObjectClass_OCLASS_PARAMETER_ACL: ObjectClass = 34; +pub const ObjectClass_OCLASS_POLICY: ObjectClass = 35; +pub const ObjectClass_OCLASS_PUBLICATION: ObjectClass = 36; +pub const ObjectClass_OCLASS_PUBLICATION_NAMESPACE: ObjectClass = 37; +pub const ObjectClass_OCLASS_PUBLICATION_REL: ObjectClass = 38; +pub const ObjectClass_OCLASS_SUBSCRIPTION: ObjectClass = 39; +pub const ObjectClass_OCLASS_TRANSFORM: ObjectClass = 40; +pub type ObjectClass = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AcquireDeletionLock(object: *const ObjectAddress, flags: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseDeletionLock(object: *const ObjectAddress); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn performDeletion( + object: *const ObjectAddress, + behavior: DropBehavior, + flags: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn performMultipleDeletions( + objects: *const ObjectAddresses, + behavior: DropBehavior, + flags: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordDependencyOnExpr( + depender: *const ObjectAddress, + expr: *mut Node, + rtable: *mut List, + behavior: DependencyType, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordDependencyOnSingleRelExpr( + depender: *const ObjectAddress, + expr: *mut Node, + relId: Oid, + behavior: DependencyType, + self_behavior: DependencyType, + reverse_self: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getObjectClass(object: *const ObjectAddress) -> ObjectClass; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn new_object_addresses() -> *mut ObjectAddresses; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_exact_object_address(object: *const ObjectAddress, addrs: *mut ObjectAddresses); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn object_address_present( + object: *const ObjectAddress, + addrs: *const ObjectAddresses, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_object_address_dependencies( + depender: *const ObjectAddress, + referenced: *mut ObjectAddresses, + behavior: DependencyType, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sort_object_addresses(addrs: *mut ObjectAddresses); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn free_object_addresses(addrs: *mut ObjectAddresses); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordDependencyOn( + depender: *const ObjectAddress, + referenced: *const ObjectAddress, + behavior: DependencyType, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordMultipleDependencies( + depender: *const ObjectAddress, + referenced: *const ObjectAddress, + nreferenced: ::std::os::raw::c_int, + behavior: DependencyType, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordDependencyOnCurrentExtension(object: *const ObjectAddress, isReplace: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn checkMembershipInCurrentExtension(object: *const ObjectAddress); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deleteDependencyRecordsFor( + classId: Oid, + objectId: Oid, + skipExtensionDeps: bool, + ) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deleteDependencyRecordsForClass( + classId: Oid, + objectId: Oid, + refclassId: Oid, + deptype: ::std::os::raw::c_char, + ) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deleteDependencyRecordsForSpecific( + classId: Oid, + objectId: Oid, + deptype: ::std::os::raw::c_char, + refclassId: Oid, + refobjectId: Oid, + ) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn changeDependencyFor( + classId: Oid, + objectId: Oid, + refClassId: Oid, + oldRefObjectId: Oid, + newRefObjectId: Oid, + ) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn changeDependenciesOf( + classId: Oid, + oldObjectId: Oid, + newObjectId: Oid, + ) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn changeDependenciesOn( + refClassId: Oid, + oldRefObjectId: Oid, + newRefObjectId: Oid, + ) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getExtensionOfObject(classId: Oid, objectId: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getAutoExtensionsOfObject(classId: Oid, objectId: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sequenceIsOwned( + seqId: Oid, + deptype: ::std::os::raw::c_char, + tableId: *mut Oid, + colId: *mut int32, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getOwnedSequences(relid: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getIdentitySequence(relid: Oid, attnum: AttrNumber, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_index_constraint(indexId: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_index_ref_constraints(indexId: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordSharedDependencyOn( + depender: *mut ObjectAddress, + referenced: *mut ObjectAddress, + deptype: SharedDependencyType, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deleteSharedDependencyRecordsFor(classId: Oid, objectId: Oid, objectSubId: int32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordDependencyOnOwner(classId: Oid, objectId: Oid, owner: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn changeDependencyOnOwner(classId: Oid, objectId: Oid, newOwnerId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordDependencyOnTablespace(classId: Oid, objectId: Oid, tablespace: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn changeDependencyOnTablespace(classId: Oid, objectId: Oid, newTablespaceId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn updateAclDependencies( + classId: Oid, + objectId: Oid, + objsubId: int32, + ownerId: Oid, + noldmembers: ::std::os::raw::c_int, + oldmembers: *mut Oid, + nnewmembers: ::std::os::raw::c_int, + newmembers: *mut Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn checkSharedDependencies( + classId: Oid, + objectId: Oid, + detail_msg: *mut *mut ::std::os::raw::c_char, + detail_log_msg: *mut *mut ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shdepLockAndCheckObject(classId: Oid, objectId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn copyTemplateDependencies(templateDbId: Oid, newDbId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dropDatabaseDependencies(databaseId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shdepDropOwned(roleids: *mut List, behavior: DropBehavior); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shdepReassignOwned(roleids: *mut List, newrole: Oid); +} +pub const IndexStateFlagsAction_INDEX_CREATE_SET_READY: IndexStateFlagsAction = 0; +pub const IndexStateFlagsAction_INDEX_CREATE_SET_VALID: IndexStateFlagsAction = 1; +pub const IndexStateFlagsAction_INDEX_DROP_CLEAR_VALID: IndexStateFlagsAction = 2; +pub const IndexStateFlagsAction_INDEX_DROP_SET_DEAD: IndexStateFlagsAction = 3; +pub type IndexStateFlagsAction = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReindexParams { + pub options: bits32, + pub tablespaceOid: Oid, +} +impl Default for ReindexParams { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ValidateIndexState { + pub tuplesort: *mut Tuplesortstate, + pub htups: f64, + pub itups: f64, + pub tups_inserted: f64, +} +impl Default for ValidateIndexState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_check_primary_key( + heapRel: Relation, + indexInfo: *mut IndexInfo, + is_alter_table: bool, + stmt: *mut IndexStmt, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_create( + heapRelation: Relation, + indexRelationName: *const ::std::os::raw::c_char, + indexRelationId: Oid, + parentIndexRelid: Oid, + parentConstraintId: Oid, + relFileNumber: RelFileNumber, + indexInfo: *mut IndexInfo, + indexColNames: *mut List, + accessMethodObjectId: Oid, + tableSpaceId: Oid, + collationObjectId: *mut Oid, + classObjectId: *mut Oid, + coloptions: *mut int16, + reloptions: Datum, + flags: bits16, + constr_flags: bits16, + allow_system_table_mods: bool, + is_internal: bool, + constraintId: *mut Oid, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_concurrently_create_copy( + heapRelation: Relation, + oldIndexId: Oid, + tablespaceOid: Oid, + newName: *const ::std::os::raw::c_char, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_concurrently_build(heapRelationId: Oid, indexRelationId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_concurrently_swap( + newIndexId: Oid, + oldIndexId: Oid, + oldName: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_concurrently_set_dead(heapId: Oid, indexId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_constraint_create( + heapRelation: Relation, + indexRelationId: Oid, + parentConstraintId: Oid, + indexInfo: *mut IndexInfo, + constraintName: *const ::std::os::raw::c_char, + constraintType: ::std::os::raw::c_char, + constr_flags: bits16, + allow_system_table_mods: bool, + is_internal: bool, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_drop(indexId: Oid, concurrent: bool, concurrent_lock_mode: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildIndexInfo(index: Relation) -> *mut IndexInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildDummyIndexInfo(index: Relation) -> *mut IndexInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CompareIndexInfo( + info1: *mut IndexInfo, + info2: *mut IndexInfo, + collations1: *mut Oid, + collations2: *mut Oid, + opfamilies1: *mut Oid, + opfamilies2: *mut Oid, + attmap: *mut AttrMap, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildSpeculativeIndexInfo(index: Relation, ii: *mut IndexInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FormIndexDatum( + indexInfo: *mut IndexInfo, + slot: *mut TupleTableSlot, + estate: *mut EState, + values: *mut Datum, + isnull: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_build( + heapRelation: Relation, + indexRelation: Relation, + indexInfo: *mut IndexInfo, + isreindex: bool, + parallel: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn validate_index(heapId: Oid, indexId: Oid, snapshot: Snapshot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_set_state_flags(indexId: Oid, action: IndexStateFlagsAction); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IndexGetRelation(indexId: Oid, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reindex_index( + indexId: Oid, + skip_constraint_checks: bool, + persistence: ::std::os::raw::c_char, + params: *mut ReindexParams, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reindex_relation( + relid: Oid, + flags: ::std::os::raw::c_int, + params: *mut ReindexParams, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReindexIsProcessingHeap(heapOid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReindexIsProcessingIndex(indexOid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResetReindexState(nestLevel: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EstimateReindexStateSpace() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SerializeReindexState(maxsize: Size, start_address: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreReindexState(reindexstate: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IndexSetParentIndex(partitionIdx: Relation, parentOid: Oid); +} +pub type CatalogIndexState = *mut ResultRelInfo; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CatalogOpenIndexes(heapRel: Relation) -> CatalogIndexState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CatalogCloseIndexes(indstate: CatalogIndexState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CatalogTupleInsert(heapRel: Relation, tup: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CatalogTupleInsertWithInfo( + heapRel: Relation, + tup: HeapTuple, + indstate: CatalogIndexState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CatalogTuplesMultiInsertWithInfo( + heapRel: Relation, + slot: *mut *mut TupleTableSlot, + ntuples: ::std::os::raw::c_int, + indstate: CatalogIndexState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CatalogTupleUpdate(heapRel: Relation, otid: ItemPointer, tup: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CatalogTupleUpdateWithInfo( + heapRel: Relation, + otid: ItemPointer, + tup: HeapTuple, + indstate: CatalogIndexState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CatalogTupleDelete(heapRel: Relation, tid: ItemPointer); +} +#[repr(C)] +#[derive(Debug)] +pub struct _FuncCandidateList { + pub next: *mut _FuncCandidateList, + pub pathpos: ::std::os::raw::c_int, + pub oid: Oid, + pub nominalnargs: ::std::os::raw::c_int, + pub nargs: ::std::os::raw::c_int, + pub nvargs: ::std::os::raw::c_int, + pub ndargs: ::std::os::raw::c_int, + pub argnumbers: *mut ::std::os::raw::c_int, + pub args: __IncompleteArrayField, +} +impl Default for _FuncCandidateList { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type FuncCandidateList = *mut _FuncCandidateList; +pub const TempNamespaceStatus_TEMP_NAMESPACE_NOT_TEMP: TempNamespaceStatus = 0; +pub const TempNamespaceStatus_TEMP_NAMESPACE_IDLE: TempNamespaceStatus = 1; +pub const TempNamespaceStatus_TEMP_NAMESPACE_IN_USE: TempNamespaceStatus = 2; +pub type TempNamespaceStatus = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct OverrideSearchPath { + pub schemas: *mut List, + pub addCatalog: bool, + pub addTemp: bool, + pub generation: uint64, +} +impl Default for OverrideSearchPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const RVROption_RVR_MISSING_OK: RVROption = 1; +pub const RVROption_RVR_NOWAIT: RVROption = 2; +pub const RVROption_RVR_SKIP_LOCKED: RVROption = 4; +pub type RVROption = ::std::os::raw::c_uint; +pub type RangeVarGetRelidCallback = ::std::option::Option< + unsafe extern "C" fn( + relation: *const RangeVar, + relId: Oid, + oldRelId: Oid, + callback_arg: *mut ::std::os::raw::c_void, + ), +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RangeVarGetRelidExtended( + relation: *const RangeVar, + lockmode: LOCKMODE, + flags: uint32, + callback: RangeVarGetRelidCallback, + callback_arg: *mut ::std::os::raw::c_void, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RangeVarGetCreationNamespace(newRelation: *const RangeVar) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RangeVarGetAndCheckCreationNamespace( + relation: *mut RangeVar, + lockmode: LOCKMODE, + existing_relation_id: *mut Oid, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RangeVarAdjustRelationPersistence(newRelation: *mut RangeVar, nspid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelnameGetRelid(relname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationIsVisible(relid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TypenameGetTypid(typname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TypenameGetTypidExtended(typname: *const ::std::os::raw::c_char, temp_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TypeIsVisible(typid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FuncnameGetCandidates( + names: *mut List, + nargs: ::std::os::raw::c_int, + argnames: *mut List, + expand_variadic: bool, + expand_defaults: bool, + include_out_arguments: bool, + missing_ok: bool, + ) -> FuncCandidateList; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FunctionIsVisible(funcid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpernameGetOprid(names: *mut List, oprleft: Oid, oprright: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpernameGetCandidates( + names: *mut List, + oprkind: ::std::os::raw::c_char, + missing_schema_ok: bool, + ) -> FuncCandidateList; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OperatorIsVisible(oprid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpclassnameGetOpcid(amid: Oid, opcname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpclassIsVisible(opcid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpfamilynameGetOpfid(amid: Oid, opfname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OpfamilyIsVisible(opfid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CollationGetCollid(collname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CollationIsVisible(collid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConversionGetConid(conname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConversionIsVisible(conid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_statistics_object_oid(names: *mut List, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StatisticsObjIsVisible(relid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_ts_parser_oid(names: *mut List, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TSParserIsVisible(prsId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_ts_dict_oid(names: *mut List, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TSDictionaryIsVisible(dictId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_ts_template_oid(names: *mut List, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TSTemplateIsVisible(tmplId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_ts_config_oid(names: *mut List, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TSConfigIsVisible(cfgid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DeconstructQualifiedName( + names: *mut List, + nspname_p: *mut *mut ::std::os::raw::c_char, + objname_p: *mut *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupNamespaceNoError(nspname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupExplicitNamespace(nspname: *const ::std::os::raw::c_char, missing_ok: bool) + -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_namespace_oid(nspname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupCreationNamespace(nspname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckSetNamespace(oldNspOid: Oid, nspOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QualifiedNameGetCreationNamespace( + names: *mut List, + objname_p: *mut *mut ::std::os::raw::c_char, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeRangeVarFromNameList(names: *mut List) -> *mut RangeVar; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn NameListToString(names: *mut List) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn NameListToQuotedString(names: *mut List) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn isTempNamespace(namespaceId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn isTempToastNamespace(namespaceId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn isTempOrTempToastNamespace(namespaceId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn isAnyTempNamespace(namespaceId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn isOtherTempNamespace(namespaceId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn checkTempNamespaceStatus(namespaceId: Oid) -> TempNamespaceStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTempNamespaceBackendId(namespaceId: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTempToastNamespace() -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTempNamespaceState(tempNamespaceId: *mut Oid, tempToastNamespaceId: *mut Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetTempNamespaceState(tempNamespaceId: Oid, tempToastNamespaceId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResetTempTableNamespace(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetOverrideSearchPath(context: MemoryContext) -> *mut OverrideSearchPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CopyOverrideSearchPath(path: *mut OverrideSearchPath) -> *mut OverrideSearchPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OverrideSearchPathMatchesCurrent(path: *mut OverrideSearchPath) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PushOverrideSearchPath(newpath: *mut OverrideSearchPath); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PopOverrideSearchPath(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_collation_oid(collname: *mut List, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_conversion_oid(conname: *mut List, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FindDefaultConversionProc(for_encoding: int32, to_encoding: int32) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeSearchPath(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_Namespace(isCommit: bool, parallel: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOSubXact_Namespace( + isCommit: bool, + mySubid: SubTransactionId, + parentSubid: SubTransactionId, + ); +} +extern "C" { + pub static mut namespace_search_path: *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fetch_search_path(includeImplicit: bool) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fetch_search_path_array( + sarray: *mut Oid, + sarray_len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +pub const ObjectAccessType_OAT_POST_CREATE: ObjectAccessType = 0; +pub const ObjectAccessType_OAT_DROP: ObjectAccessType = 1; +pub const ObjectAccessType_OAT_POST_ALTER: ObjectAccessType = 2; +pub const ObjectAccessType_OAT_NAMESPACE_SEARCH: ObjectAccessType = 3; +pub const ObjectAccessType_OAT_FUNCTION_EXECUTE: ObjectAccessType = 4; +pub const ObjectAccessType_OAT_TRUNCATE: ObjectAccessType = 5; +pub type ObjectAccessType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ObjectAccessPostCreate { + pub is_internal: bool, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ObjectAccessDrop { + pub dropflags: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ObjectAccessPostAlter { + pub auxiliary_id: Oid, + pub is_internal: bool, +} +impl Default for ObjectAccessPostAlter { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ObjectAccessNamespaceSearch { + pub ereport_on_violation: bool, + pub result: bool, +} +pub type object_access_hook_type = ::std::option::Option< + unsafe extern "C" fn( + access: ObjectAccessType, + classId: Oid, + objectId: Oid, + subId: ::std::os::raw::c_int, + arg: *mut ::std::os::raw::c_void, + ), +>; +pub type object_access_hook_type_str = ::std::option::Option< + unsafe extern "C" fn( + access: ObjectAccessType, + classId: Oid, + objectStr: *const ::std::os::raw::c_char, + subId: ::std::os::raw::c_int, + arg: *mut ::std::os::raw::c_void, + ), +>; +extern "C" { + pub static mut object_access_hook: object_access_hook_type; +} +extern "C" { + pub static mut object_access_hook_str: object_access_hook_type_str; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunObjectPostCreateHook( + classId: Oid, + objectId: Oid, + subId: ::std::os::raw::c_int, + is_internal: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunObjectDropHook( + classId: Oid, + objectId: Oid, + subId: ::std::os::raw::c_int, + dropflags: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunObjectTruncateHook(objectId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunObjectPostAlterHook( + classId: Oid, + objectId: Oid, + subId: ::std::os::raw::c_int, + auxiliaryId: Oid, + is_internal: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunNamespaceSearchHook(objectId: Oid, ereport_on_violation: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunFunctionExecuteHook(objectId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunObjectPostCreateHookStr( + classId: Oid, + objectName: *const ::std::os::raw::c_char, + subId: ::std::os::raw::c_int, + is_internal: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunObjectDropHookStr( + classId: Oid, + objectName: *const ::std::os::raw::c_char, + subId: ::std::os::raw::c_int, + dropflags: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunObjectTruncateHookStr(objectName: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunObjectPostAlterHookStr( + classId: Oid, + objectName: *const ::std::os::raw::c_char, + subId: ::std::os::raw::c_int, + auxiliaryId: Oid, + is_internal: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunNamespaceSearchHookStr( + objectName: *const ::std::os::raw::c_char, + ereport_on_violation: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RunFunctionExecuteHookStr(objectName: *const ::std::os::raw::c_char); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_authid { + pub oid: Oid, + pub rolname: NameData, + pub rolsuper: bool, + pub rolinherit: bool, + pub rolcreaterole: bool, + pub rolcreatedb: bool, + pub rolcanlogin: bool, + pub rolreplication: bool, + pub rolbypassrls: bool, + pub rolconnlimit: int32, +} +impl Default for FormData_pg_authid { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_authid = *mut FormData_pg_authid; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_database { + pub oid: Oid, + pub datname: NameData, + pub datdba: Oid, + pub encoding: int32, + pub datlocprovider: ::std::os::raw::c_char, + pub datistemplate: bool, + pub datallowconn: bool, + pub datconnlimit: int32, + pub datfrozenxid: TransactionId, + pub datminmxid: TransactionId, + pub dattablespace: Oid, +} +impl Default for FormData_pg_database { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_database = *mut FormData_pg_database; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_enum { + pub oid: Oid, + pub enumtypid: Oid, + pub enumsortorder: float4, + pub enumlabel: NameData, +} +impl Default for FormData_pg_enum { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_enum = *mut FormData_pg_enum; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EnumValuesCreate(enumTypeOid: Oid, vals: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EnumValuesDelete(enumTypeOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AddEnumLabel( + enumTypeOid: Oid, + newVal: *const ::std::os::raw::c_char, + neighbor: *const ::std::os::raw::c_char, + newValIsAfter: bool, + skipIfExists: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RenameEnumLabel( + enumTypeOid: Oid, + oldVal: *const ::std::os::raw::c_char, + newVal: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EnumUncommitted(enum_id: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EstimateUncommittedEnumsSpace() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SerializeUncommittedEnums(space: *mut ::std::os::raw::c_void, size: Size); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreUncommittedEnums(space: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_Enum(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_extension { + pub oid: Oid, + pub extname: NameData, + pub extowner: Oid, + pub extnamespace: Oid, + pub extrelocatable: bool, +} +impl Default for FormData_pg_extension { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_extension = *mut FormData_pg_extension; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_operator { + pub oid: Oid, + pub oprname: NameData, + pub oprnamespace: Oid, + pub oprowner: Oid, + pub oprkind: ::std::os::raw::c_char, + pub oprcanmerge: bool, + pub oprcanhash: bool, + pub oprleft: Oid, + pub oprright: Oid, + pub oprresult: Oid, + pub oprcom: Oid, + pub oprnegate: Oid, + pub oprcode: regproc, + pub oprrest: regproc, + pub oprjoin: regproc, +} +impl Default for FormData_pg_operator { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_operator = *mut FormData_pg_operator; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OperatorCreate( + operatorName: *const ::std::os::raw::c_char, + operatorNamespace: Oid, + leftTypeId: Oid, + rightTypeId: Oid, + procedureId: Oid, + commutatorName: *mut List, + negatorName: *mut List, + restrictionId: Oid, + joinId: Oid, + canMerge: bool, + canHash: bool, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeOperatorDependencies( + tuple: HeapTuple, + makeExtensionDep: bool, + isUpdate: bool, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OperatorUpd(baseId: Oid, commId: Oid, negId: Oid, isDelete: bool); +} +#[repr(C)] +#[derive(Debug)] +pub struct FormData_pg_proc { + pub oid: Oid, + pub proname: NameData, + pub pronamespace: Oid, + pub proowner: Oid, + pub prolang: Oid, + pub procost: float4, + pub prorows: float4, + pub provariadic: Oid, + pub prosupport: regproc, + pub prokind: ::std::os::raw::c_char, + pub prosecdef: bool, + pub proleakproof: bool, + pub proisstrict: bool, + pub proretset: bool, + pub provolatile: ::std::os::raw::c_char, + pub proparallel: ::std::os::raw::c_char, + pub pronargs: int16, + pub pronargdefaults: int16, + pub prorettype: Oid, + pub proargtypes: oidvector, +} +impl Default for FormData_pg_proc { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_proc = *mut FormData_pg_proc; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcedureCreate( + procedureName: *const ::std::os::raw::c_char, + procNamespace: Oid, + replace: bool, + returnsSet: bool, + returnType: Oid, + proowner: Oid, + languageObjectId: Oid, + languageValidator: Oid, + prosrc: *const ::std::os::raw::c_char, + probin: *const ::std::os::raw::c_char, + prosqlbody: *mut Node, + prokind: ::std::os::raw::c_char, + security_definer: bool, + isLeakProof: bool, + isStrict: bool, + volatility: ::std::os::raw::c_char, + parallel: ::std::os::raw::c_char, + parameterTypes: *mut oidvector, + allParameterTypes: Datum, + parameterModes: Datum, + parameterNames: Datum, + parameterDefaults: *mut List, + trftypes: Datum, + proconfig: Datum, + prosupport: Oid, + procost: float4, + prorows: float4, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn function_parse_error_transpose(prosrc: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oid_array_to_list(datum: Datum) -> *mut List; +} +pub const ParseExprKind_EXPR_KIND_NONE: ParseExprKind = 0; +pub const ParseExprKind_EXPR_KIND_OTHER: ParseExprKind = 1; +pub const ParseExprKind_EXPR_KIND_JOIN_ON: ParseExprKind = 2; +pub const ParseExprKind_EXPR_KIND_JOIN_USING: ParseExprKind = 3; +pub const ParseExprKind_EXPR_KIND_FROM_SUBSELECT: ParseExprKind = 4; +pub const ParseExprKind_EXPR_KIND_FROM_FUNCTION: ParseExprKind = 5; +pub const ParseExprKind_EXPR_KIND_WHERE: ParseExprKind = 6; +pub const ParseExprKind_EXPR_KIND_HAVING: ParseExprKind = 7; +pub const ParseExprKind_EXPR_KIND_FILTER: ParseExprKind = 8; +pub const ParseExprKind_EXPR_KIND_WINDOW_PARTITION: ParseExprKind = 9; +pub const ParseExprKind_EXPR_KIND_WINDOW_ORDER: ParseExprKind = 10; +pub const ParseExprKind_EXPR_KIND_WINDOW_FRAME_RANGE: ParseExprKind = 11; +pub const ParseExprKind_EXPR_KIND_WINDOW_FRAME_ROWS: ParseExprKind = 12; +pub const ParseExprKind_EXPR_KIND_WINDOW_FRAME_GROUPS: ParseExprKind = 13; +pub const ParseExprKind_EXPR_KIND_SELECT_TARGET: ParseExprKind = 14; +pub const ParseExprKind_EXPR_KIND_INSERT_TARGET: ParseExprKind = 15; +pub const ParseExprKind_EXPR_KIND_UPDATE_SOURCE: ParseExprKind = 16; +pub const ParseExprKind_EXPR_KIND_UPDATE_TARGET: ParseExprKind = 17; +pub const ParseExprKind_EXPR_KIND_MERGE_WHEN: ParseExprKind = 18; +pub const ParseExprKind_EXPR_KIND_GROUP_BY: ParseExprKind = 19; +pub const ParseExprKind_EXPR_KIND_ORDER_BY: ParseExprKind = 20; +pub const ParseExprKind_EXPR_KIND_DISTINCT_ON: ParseExprKind = 21; +pub const ParseExprKind_EXPR_KIND_LIMIT: ParseExprKind = 22; +pub const ParseExprKind_EXPR_KIND_OFFSET: ParseExprKind = 23; +pub const ParseExprKind_EXPR_KIND_RETURNING: ParseExprKind = 24; +pub const ParseExprKind_EXPR_KIND_VALUES: ParseExprKind = 25; +pub const ParseExprKind_EXPR_KIND_VALUES_SINGLE: ParseExprKind = 26; +pub const ParseExprKind_EXPR_KIND_CHECK_CONSTRAINT: ParseExprKind = 27; +pub const ParseExprKind_EXPR_KIND_DOMAIN_CHECK: ParseExprKind = 28; +pub const ParseExprKind_EXPR_KIND_COLUMN_DEFAULT: ParseExprKind = 29; +pub const ParseExprKind_EXPR_KIND_FUNCTION_DEFAULT: ParseExprKind = 30; +pub const ParseExprKind_EXPR_KIND_INDEX_EXPRESSION: ParseExprKind = 31; +pub const ParseExprKind_EXPR_KIND_INDEX_PREDICATE: ParseExprKind = 32; +pub const ParseExprKind_EXPR_KIND_STATS_EXPRESSION: ParseExprKind = 33; +pub const ParseExprKind_EXPR_KIND_ALTER_COL_TRANSFORM: ParseExprKind = 34; +pub const ParseExprKind_EXPR_KIND_EXECUTE_PARAMETER: ParseExprKind = 35; +pub const ParseExprKind_EXPR_KIND_TRIGGER_WHEN: ParseExprKind = 36; +pub const ParseExprKind_EXPR_KIND_POLICY: ParseExprKind = 37; +pub const ParseExprKind_EXPR_KIND_PARTITION_BOUND: ParseExprKind = 38; +pub const ParseExprKind_EXPR_KIND_PARTITION_EXPRESSION: ParseExprKind = 39; +pub const ParseExprKind_EXPR_KIND_CALL_ARGUMENT: ParseExprKind = 40; +pub const ParseExprKind_EXPR_KIND_COPY_WHERE: ParseExprKind = 41; +pub const ParseExprKind_EXPR_KIND_GENERATED_COLUMN: ParseExprKind = 42; +pub const ParseExprKind_EXPR_KIND_CYCLE_MARK: ParseExprKind = 43; +pub type ParseExprKind = ::std::os::raw::c_uint; +pub type PreParseColumnRefHook = ::std::option::Option< + unsafe extern "C" fn(pstate: *mut ParseState, cref: *mut ColumnRef) -> *mut Node, +>; +pub type PostParseColumnRefHook = ::std::option::Option< + unsafe extern "C" fn( + pstate: *mut ParseState, + cref: *mut ColumnRef, + var: *mut Node, + ) -> *mut Node, +>; +pub type ParseParamRefHook = ::std::option::Option< + unsafe extern "C" fn(pstate: *mut ParseState, pref: *mut ParamRef) -> *mut Node, +>; +pub type CoerceParamHook = ::std::option::Option< + unsafe extern "C" fn( + pstate: *mut ParseState, + param: *mut Param, + targetTypeId: Oid, + targetTypeMod: int32, + location: ::std::os::raw::c_int, + ) -> *mut Node, +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParseState { + pub parentParseState: *mut ParseState, + pub p_sourcetext: *const ::std::os::raw::c_char, + pub p_rtable: *mut List, + pub p_rteperminfos: *mut List, + pub p_joinexprs: *mut List, + pub p_nullingrels: *mut List, + pub p_joinlist: *mut List, + pub p_namespace: *mut List, + pub p_lateral_active: bool, + pub p_ctenamespace: *mut List, + pub p_future_ctes: *mut List, + pub p_parent_cte: *mut CommonTableExpr, + pub p_target_relation: Relation, + pub p_target_nsitem: *mut ParseNamespaceItem, + pub p_is_insert: bool, + pub p_windowdefs: *mut List, + pub p_expr_kind: ParseExprKind, + pub p_next_resno: ::std::os::raw::c_int, + pub p_multiassign_exprs: *mut List, + pub p_locking_clause: *mut List, + pub p_locked_from_parent: bool, + pub p_resolve_unknowns: bool, + pub p_queryEnv: *mut QueryEnvironment, + pub p_hasAggs: bool, + pub p_hasWindowFuncs: bool, + pub p_hasTargetSRFs: bool, + pub p_hasSubLinks: bool, + pub p_hasModifyingCTE: bool, + pub p_last_srf: *mut Node, + pub p_pre_columnref_hook: PreParseColumnRefHook, + pub p_post_columnref_hook: PostParseColumnRefHook, + pub p_paramref_hook: ParseParamRefHook, + pub p_coerce_param_hook: CoerceParamHook, + pub p_ref_hook_state: *mut ::std::os::raw::c_void, +} +impl Default for ParseState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParseNamespaceItem { + pub p_names: *mut Alias, + pub p_rte: *mut RangeTblEntry, + pub p_rtindex: ::std::os::raw::c_int, + pub p_perminfo: *mut RTEPermissionInfo, + pub p_nscolumns: *mut ParseNamespaceColumn, + pub p_rel_visible: bool, + pub p_cols_visible: bool, + pub p_lateral_only: bool, + pub p_lateral_ok: bool, +} +impl Default for ParseNamespaceItem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParseNamespaceColumn { + pub p_varno: Index, + pub p_varattno: AttrNumber, + pub p_vartype: Oid, + pub p_vartypmod: int32, + pub p_varcollid: Oid, + pub p_varnosyn: Index, + pub p_varattnosyn: AttrNumber, + pub p_dontexpand: bool, +} +impl Default for ParseNamespaceColumn { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParseCallbackState { + pub pstate: *mut ParseState, + pub location: ::std::os::raw::c_int, + pub errcallback: ErrorContextCallback, +} +impl Default for ParseCallbackState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_parsestate(parentParseState: *mut ParseState) -> *mut ParseState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn free_parsestate(pstate: *mut ParseState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parser_errposition( + pstate: *mut ParseState, + location: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn setup_parser_errposition_callback( + pcbstate: *mut ParseCallbackState, + pstate: *mut ParseState, + location: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cancel_parser_errposition_callback(pcbstate: *mut ParseCallbackState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn transformContainerType(containerType: *mut Oid, containerTypmod: *mut int32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn transformContainerSubscripts( + pstate: *mut ParseState, + containerBase: *mut Node, + containerType: Oid, + containerTypMod: int32, + indirection: *mut List, + isAssignment: bool, + ) -> *mut SubscriptingRef; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_const(pstate: *mut ParseState, aconst: *mut A_Const) -> *mut Const; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AclItem { + pub ai_grantee: Oid, + pub ai_grantor: Oid, + pub ai_privs: AclMode, +} +impl Default for AclItem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Acl = ArrayType; +pub const AclMaskHow_ACLMASK_ALL: AclMaskHow = 0; +pub const AclMaskHow_ACLMASK_ANY: AclMaskHow = 1; +pub type AclMaskHow = ::std::os::raw::c_uint; +pub const AclResult_ACLCHECK_OK: AclResult = 0; +pub const AclResult_ACLCHECK_NO_PRIV: AclResult = 1; +pub const AclResult_ACLCHECK_NOT_OWNER: AclResult = 2; +pub type AclResult = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn acldefault(objtype: ObjectType, ownerId: Oid) -> *mut Acl; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_user_default_acl(objtype: ObjectType, ownerId: Oid, nsp_oid: Oid) -> *mut Acl; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordDependencyOnNewAcl( + classId: Oid, + objectId: Oid, + objsubId: int32, + ownerId: Oid, + acl: *mut Acl, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclupdate( + old_acl: *const Acl, + mod_aip: *const AclItem, + modechg: ::std::os::raw::c_int, + ownerId: Oid, + behavior: DropBehavior, + ) -> *mut Acl; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclnewowner(old_acl: *const Acl, oldOwnerId: Oid, newOwnerId: Oid) -> *mut Acl; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_empty_acl() -> *mut Acl; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclcopy(orig_acl: *const Acl) -> *mut Acl; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclconcat(left_acl: *const Acl, right_acl: *const Acl) -> *mut Acl; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclmerge(left_acl: *const Acl, right_acl: *const Acl, ownerId: Oid) -> *mut Acl; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclitemsort(acl: *mut Acl); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclequal(left_acl: *const Acl, right_acl: *const Acl) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclmask( + acl: *const Acl, + roleid: Oid, + ownerId: Oid, + mask: AclMode, + how: AclMaskHow, + ) -> AclMode; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclmembers(acl: *const Acl, roleids: *mut *mut Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_privs_of_role(member: Oid, role: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn member_can_set_role(member: Oid, role: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_can_set_role(member: Oid, role: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_member_of_role(member: Oid, role: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_member_of_role_nosuper(member: Oid, role: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_admin_of_role(member: Oid, role: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn select_best_admin(member: Oid, role: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_role_oid(rolname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_role_oid_or_public(rolname: *const ::std::os::raw::c_char) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rolespec_oid(role: *const RoleSpec, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_rolespec_name(role: *const RoleSpec, detail_msg: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rolespec_tuple(role: *const RoleSpec) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rolespec_name(role: *const RoleSpec) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn select_best_grantor( + roleId: Oid, + privileges: AclMode, + acl: *const Acl, + ownerId: Oid, + grantorId: *mut Oid, + grantOptions: *mut AclMode, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initialize_acl(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecuteGrantStmt(stmt: *mut GrantStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecAlterDefaultPrivilegesStmt( + pstate: *mut ParseState, + stmt: *mut AlterDefaultPrivilegesStmt, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveRoleFromObjectACL(roleid: Oid, classid: Oid, objid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_class_aclmask(table_oid: Oid, roleid: Oid, mask: AclMode, how: AclMaskHow) + -> AclMode; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn object_aclcheck(classid: Oid, objectid: Oid, roleid: Oid, mode: AclMode) -> AclResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_attribute_aclcheck( + table_oid: Oid, + attnum: AttrNumber, + roleid: Oid, + mode: AclMode, + ) -> AclResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_attribute_aclcheck_ext( + table_oid: Oid, + attnum: AttrNumber, + roleid: Oid, + mode: AclMode, + is_missing: *mut bool, + ) -> AclResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_attribute_aclcheck_all( + table_oid: Oid, + roleid: Oid, + mode: AclMode, + how: AclMaskHow, + ) -> AclResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_class_aclcheck(table_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_class_aclcheck_ext( + table_oid: Oid, + roleid: Oid, + mode: AclMode, + is_missing: *mut bool, + ) -> AclResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_parameter_aclcheck( + name: *const ::std::os::raw::c_char, + roleid: Oid, + mode: AclMode, + ) -> AclResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_largeobject_aclcheck_snapshot( + lobj_oid: Oid, + roleid: Oid, + mode: AclMode, + snapshot: Snapshot, + ) -> AclResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclcheck_error( + aclerr: AclResult, + objtype: ObjectType, + objectname: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclcheck_error_col( + aclerr: AclResult, + objtype: ObjectType, + objectname: *const ::std::os::raw::c_char, + colname: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclcheck_error_type(aclerr: AclResult, typeOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn recordExtObjInitPriv(objoid: Oid, classoid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn removeExtObjInitPriv(objoid: Oid, classoid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn object_ownercheck(classid: Oid, objectid: Oid, roleid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_createrole_privilege(roleid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_bypassrls_privilege(roleid: Oid) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_namespace { + pub oid: Oid, + pub nspname: NameData, + pub nspowner: Oid, +} +impl Default for FormData_pg_namespace { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_namespace = *mut FormData_pg_namespace; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn NamespaceCreate( + nspName: *const ::std::os::raw::c_char, + ownerId: Oid, + isTemp: bool, + ) -> Oid; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_tablespace { + pub oid: Oid, + pub spcname: NameData, + pub spcowner: Oid, +} +impl Default for FormData_pg_tablespace { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_tablespace = *mut FormData_pg_tablespace; +#[repr(C)] +#[derive(Debug)] +pub struct FormData_pg_trigger { + pub oid: Oid, + pub tgrelid: Oid, + pub tgparentid: Oid, + pub tgname: NameData, + pub tgfoid: Oid, + pub tgtype: int16, + pub tgenabled: ::std::os::raw::c_char, + pub tgisinternal: bool, + pub tgconstrrelid: Oid, + pub tgconstrindid: Oid, + pub tgconstraint: Oid, + pub tgdeferrable: bool, + pub tginitdeferred: bool, + pub tgnargs: int16, + pub tgattr: int2vector, +} +impl Default for FormData_pg_trigger { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_trigger = *mut FormData_pg_trigger; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_type { + pub oid: Oid, + pub typname: NameData, + pub typnamespace: Oid, + pub typowner: Oid, + pub typlen: int16, + pub typbyval: bool, + pub typtype: ::std::os::raw::c_char, + pub typcategory: ::std::os::raw::c_char, + pub typispreferred: bool, + pub typisdefined: bool, + pub typdelim: ::std::os::raw::c_char, + pub typrelid: Oid, + pub typsubscript: regproc, + pub typelem: Oid, + pub typarray: Oid, + pub typinput: regproc, + pub typoutput: regproc, + pub typreceive: regproc, + pub typsend: regproc, + pub typmodin: regproc, + pub typmodout: regproc, + pub typanalyze: regproc, + pub typalign: ::std::os::raw::c_char, + pub typstorage: ::std::os::raw::c_char, + pub typnotnull: bool, + pub typbasetype: Oid, + pub typtypmod: int32, + pub typndims: int32, + pub typcollation: Oid, +} +impl Default for FormData_pg_type { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_type = *mut FormData_pg_type; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TypeShellMake( + typeName: *const ::std::os::raw::c_char, + typeNamespace: Oid, + ownerId: Oid, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TypeCreate( + newTypeOid: Oid, + typeName: *const ::std::os::raw::c_char, + typeNamespace: Oid, + relationOid: Oid, + relationKind: ::std::os::raw::c_char, + ownerId: Oid, + internalSize: int16, + typeType: ::std::os::raw::c_char, + typeCategory: ::std::os::raw::c_char, + typePreferred: bool, + typDelim: ::std::os::raw::c_char, + inputProcedure: Oid, + outputProcedure: Oid, + receiveProcedure: Oid, + sendProcedure: Oid, + typmodinProcedure: Oid, + typmodoutProcedure: Oid, + analyzeProcedure: Oid, + subscriptProcedure: Oid, + elementType: Oid, + isImplicitArray: bool, + arrayType: Oid, + baseType: Oid, + defaultTypeValue: *const ::std::os::raw::c_char, + defaultTypeBin: *mut ::std::os::raw::c_char, + passedByValue: bool, + alignment: ::std::os::raw::c_char, + storage: ::std::os::raw::c_char, + typeMod: int32, + typNDims: int32, + typeNotNull: bool, + typeCollation: Oid, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GenerateTypeDependencies( + typeTuple: HeapTuple, + typeCatalog: Relation, + defaultExpr: *mut Node, + typacl: *mut ::std::os::raw::c_void, + relationKind: ::std::os::raw::c_char, + isImplicitArray: bool, + isDependentType: bool, + makeExtensionDep: bool, + rebuild: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RenameTypeInternal( + typeOid: Oid, + newTypeName: *const ::std::os::raw::c_char, + typeNamespace: Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeArrayTypeName( + typeName: *const ::std::os::raw::c_char, + typeNamespace: Oid, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn moveArrayTypeName( + typeOid: Oid, + typeName: *const ::std::os::raw::c_char, + typeNamespace: Oid, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeMultirangeTypeName( + rangeTypeName: *const ::std::os::raw::c_char, + typeNamespace: Oid, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CommentObject(stmt: *mut CommentStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DeleteComments(oid: Oid, classoid: Oid, subid: int32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateComments( + oid: Oid, + classoid: Oid, + subid: int32, + comment: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DeleteSharedComments(oid: Oid, classoid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateSharedComments(oid: Oid, classoid: Oid, comment: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetComment(oid: Oid, classoid: Oid, subid: int32) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn createdb(pstate: *mut ParseState, stmt: *const CreatedbStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dropdb(dbname: *const ::std::os::raw::c_char, missing_ok: bool, force: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DropDatabase(pstate: *mut ParseState, stmt: *mut DropdbStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RenameDatabase( + oldname: *const ::std::os::raw::c_char, + newname: *const ::std::os::raw::c_char, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterDatabase( + pstate: *mut ParseState, + stmt: *mut AlterDatabaseStmt, + isTopLevel: bool, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterDatabaseRefreshColl(stmt: *mut AlterDatabaseRefreshCollStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterDatabaseSet(stmt: *mut AlterDatabaseSetStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterDatabaseOwner( + dbname: *const ::std::os::raw::c_char, + newOwnerId: Oid, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_database_oid(dbname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_database_name(dbid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn have_createdb_privilege() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_encoding_locale_matches( + encoding: ::std::os::raw::c_int, + collate: *const ::std::os::raw::c_char, + ctype: *const ::std::os::raw::c_char, + ); +} +pub type EOM_get_flat_size_method = + ::std::option::Option Size>; +pub type EOM_flatten_into_method = ::std::option::Option< + unsafe extern "C" fn( + eohptr: *mut ExpandedObjectHeader, + result: *mut ::std::os::raw::c_void, + allocated_size: Size, + ), +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ExpandedObjectMethods { + pub get_flat_size: EOM_get_flat_size_method, + pub flatten_into: EOM_flatten_into_method, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExpandedObjectHeader { + pub vl_len_: int32, + pub eoh_methods: *const ExpandedObjectMethods, + pub eoh_context: MemoryContext, + pub eoh_rw_ptr: [::std::os::raw::c_char; 10usize], + pub eoh_ro_ptr: [::std::os::raw::c_char; 10usize], +} +impl Default for ExpandedObjectHeader { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DatumGetEOHP(d: Datum) -> *mut ExpandedObjectHeader; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EOH_init_header( + eohptr: *mut ExpandedObjectHeader, + methods: *const ExpandedObjectMethods, + obj_context: MemoryContext, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EOH_get_flat_size(eohptr: *mut ExpandedObjectHeader) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EOH_flatten_into( + eohptr: *mut ExpandedObjectHeader, + result: *mut ::std::os::raw::c_void, + allocated_size: Size, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MakeExpandedObjectReadOnlyInternal(d: Datum) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransferExpandedObject(d: Datum, new_parent: MemoryContext) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DeleteExpandedObject(d: Datum); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ArrayType { + pub vl_len_: int32, + pub ndim: ::std::os::raw::c_int, + pub dataoffset: int32, + pub elemtype: Oid, +} +impl Default for ArrayType { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExpandedArrayHeader { + pub hdr: ExpandedObjectHeader, + pub ea_magic: ::std::os::raw::c_int, + pub ndims: ::std::os::raw::c_int, + pub dims: *mut ::std::os::raw::c_int, + pub lbound: *mut ::std::os::raw::c_int, + pub element_type: Oid, + pub typlen: int16, + pub typbyval: bool, + pub typalign: ::std::os::raw::c_char, + pub dvalues: *mut Datum, + pub dnulls: *mut bool, + pub dvalueslen: ::std::os::raw::c_int, + pub nelems: ::std::os::raw::c_int, + pub flat_size: Size, + pub fvalue: *mut ArrayType, + pub fstartptr: *mut ::std::os::raw::c_char, + pub fendptr: *mut ::std::os::raw::c_char, +} +impl Default for ExpandedArrayHeader { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union AnyArrayType { + pub flt: ArrayType, + pub xpn: ExpandedArrayHeader, +} +impl Default for AnyArrayType { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ArrayBuildState { + pub mcontext: MemoryContext, + pub dvalues: *mut Datum, + pub dnulls: *mut bool, + pub alen: ::std::os::raw::c_int, + pub nelems: ::std::os::raw::c_int, + pub element_type: Oid, + pub typlen: int16, + pub typbyval: bool, + pub typalign: ::std::os::raw::c_char, + pub private_cxt: bool, +} +impl Default for ArrayBuildState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ArrayBuildStateArr { + pub mcontext: MemoryContext, + pub data: *mut ::std::os::raw::c_char, + pub nullbitmap: *mut bits8, + pub abytes: ::std::os::raw::c_int, + pub nbytes: ::std::os::raw::c_int, + pub aitems: ::std::os::raw::c_int, + pub nitems: ::std::os::raw::c_int, + pub ndims: ::std::os::raw::c_int, + pub dims: [::std::os::raw::c_int; 6usize], + pub lbs: [::std::os::raw::c_int; 6usize], + pub array_type: Oid, + pub element_type: Oid, + pub private_cxt: bool, +} +impl Default for ArrayBuildStateArr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ArrayBuildStateAny { + pub scalarstate: *mut ArrayBuildState, + pub arraystate: *mut ArrayBuildStateArr, +} +impl Default for ArrayBuildStateAny { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ArrayMetaState { + pub element_type: Oid, + pub typlen: int16, + pub typbyval: bool, + pub typalign: ::std::os::raw::c_char, + pub typdelim: ::std::os::raw::c_char, + pub typioparam: Oid, + pub typiofunc: Oid, + pub proc_: FmgrInfo, +} +impl Default for ArrayMetaState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ArrayMapState { + pub inp_extra: ArrayMetaState, + pub ret_extra: ArrayMetaState, +} +impl Default for ArrayMapState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ArrayIteratorData { + _unused: [u8; 0], +} +pub type ArrayIterator = *mut ArrayIteratorData; +extern "C" { + pub static mut Array_nulls: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CopyArrayEls( + array: *mut ArrayType, + values: *mut Datum, + nulls: *mut bool, + nitems: ::std::os::raw::c_int, + typlen: ::std::os::raw::c_int, + typbyval: bool, + typalign: ::std::os::raw::c_char, + freedata: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_get_element( + arraydatum: Datum, + nSubscripts: ::std::os::raw::c_int, + indx: *mut ::std::os::raw::c_int, + arraytyplen: ::std::os::raw::c_int, + elmlen: ::std::os::raw::c_int, + elmbyval: bool, + elmalign: ::std::os::raw::c_char, + isNull: *mut bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_set_element( + arraydatum: Datum, + nSubscripts: ::std::os::raw::c_int, + indx: *mut ::std::os::raw::c_int, + dataValue: Datum, + isNull: bool, + arraytyplen: ::std::os::raw::c_int, + elmlen: ::std::os::raw::c_int, + elmbyval: bool, + elmalign: ::std::os::raw::c_char, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_get_slice( + arraydatum: Datum, + nSubscripts: ::std::os::raw::c_int, + upperIndx: *mut ::std::os::raw::c_int, + lowerIndx: *mut ::std::os::raw::c_int, + upperProvided: *mut bool, + lowerProvided: *mut bool, + arraytyplen: ::std::os::raw::c_int, + elmlen: ::std::os::raw::c_int, + elmbyval: bool, + elmalign: ::std::os::raw::c_char, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_set_slice( + arraydatum: Datum, + nSubscripts: ::std::os::raw::c_int, + upperIndx: *mut ::std::os::raw::c_int, + lowerIndx: *mut ::std::os::raw::c_int, + upperProvided: *mut bool, + lowerProvided: *mut bool, + srcArrayDatum: Datum, + isNull: bool, + arraytyplen: ::std::os::raw::c_int, + elmlen: ::std::os::raw::c_int, + elmbyval: bool, + elmalign: ::std::os::raw::c_char, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_ref( + array: *mut ArrayType, + nSubscripts: ::std::os::raw::c_int, + indx: *mut ::std::os::raw::c_int, + arraytyplen: ::std::os::raw::c_int, + elmlen: ::std::os::raw::c_int, + elmbyval: bool, + elmalign: ::std::os::raw::c_char, + isNull: *mut bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_set( + array: *mut ArrayType, + nSubscripts: ::std::os::raw::c_int, + indx: *mut ::std::os::raw::c_int, + dataValue: Datum, + isNull: bool, + arraytyplen: ::std::os::raw::c_int, + elmlen: ::std::os::raw::c_int, + elmbyval: bool, + elmalign: ::std::os::raw::c_char, + ) -> *mut ArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_map( + arrayd: Datum, + exprstate: *mut ExprState, + econtext: *mut ExprContext, + retType: Oid, + amstate: *mut ArrayMapState, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_bitmap_copy( + destbitmap: *mut bits8, + destoffset: ::std::os::raw::c_int, + srcbitmap: *const bits8, + srcoffset: ::std::os::raw::c_int, + nitems: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn construct_array( + elems: *mut Datum, + nelems: ::std::os::raw::c_int, + elmtype: Oid, + elmlen: ::std::os::raw::c_int, + elmbyval: bool, + elmalign: ::std::os::raw::c_char, + ) -> *mut ArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn construct_array_builtin( + elems: *mut Datum, + nelems: ::std::os::raw::c_int, + elmtype: Oid, + ) -> *mut ArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn construct_md_array( + elems: *mut Datum, + nulls: *mut bool, + ndims: ::std::os::raw::c_int, + dims: *mut ::std::os::raw::c_int, + lbs: *mut ::std::os::raw::c_int, + elmtype: Oid, + elmlen: ::std::os::raw::c_int, + elmbyval: bool, + elmalign: ::std::os::raw::c_char, + ) -> *mut ArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn construct_empty_array(elmtype: Oid) -> *mut ArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn construct_empty_expanded_array( + element_type: Oid, + parentcontext: MemoryContext, + metacache: *mut ArrayMetaState, + ) -> *mut ExpandedArrayHeader; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deconstruct_array( + array: *mut ArrayType, + elmtype: Oid, + elmlen: ::std::os::raw::c_int, + elmbyval: bool, + elmalign: ::std::os::raw::c_char, + elemsp: *mut *mut Datum, + nullsp: *mut *mut bool, + nelemsp: *mut ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deconstruct_array_builtin( + array: *mut ArrayType, + elmtype: Oid, + elemsp: *mut *mut Datum, + nullsp: *mut *mut bool, + nelemsp: *mut ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_contains_nulls(array: *mut ArrayType) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initArrayResult( + element_type: Oid, + rcontext: MemoryContext, + subcontext: bool, + ) -> *mut ArrayBuildState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initArrayResultWithSize( + element_type: Oid, + rcontext: MemoryContext, + subcontext: bool, + initsize: ::std::os::raw::c_int, + ) -> *mut ArrayBuildState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn accumArrayResult( + astate: *mut ArrayBuildState, + dvalue: Datum, + disnull: bool, + element_type: Oid, + rcontext: MemoryContext, + ) -> *mut ArrayBuildState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeArrayResult(astate: *mut ArrayBuildState, rcontext: MemoryContext) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeMdArrayResult( + astate: *mut ArrayBuildState, + ndims: ::std::os::raw::c_int, + dims: *mut ::std::os::raw::c_int, + lbs: *mut ::std::os::raw::c_int, + rcontext: MemoryContext, + release: bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initArrayResultArr( + array_type: Oid, + element_type: Oid, + rcontext: MemoryContext, + subcontext: bool, + ) -> *mut ArrayBuildStateArr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn accumArrayResultArr( + astate: *mut ArrayBuildStateArr, + dvalue: Datum, + disnull: bool, + array_type: Oid, + rcontext: MemoryContext, + ) -> *mut ArrayBuildStateArr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeArrayResultArr( + astate: *mut ArrayBuildStateArr, + rcontext: MemoryContext, + release: bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initArrayResultAny( + input_type: Oid, + rcontext: MemoryContext, + subcontext: bool, + ) -> *mut ArrayBuildStateAny; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn accumArrayResultAny( + astate: *mut ArrayBuildStateAny, + dvalue: Datum, + disnull: bool, + input_type: Oid, + rcontext: MemoryContext, + ) -> *mut ArrayBuildStateAny; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeArrayResultAny( + astate: *mut ArrayBuildStateAny, + rcontext: MemoryContext, + release: bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_create_iterator( + arr: *mut ArrayType, + slice_ndim: ::std::os::raw::c_int, + mstate: *mut ArrayMetaState, + ) -> ArrayIterator; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_iterate(iterator: ArrayIterator, value: *mut Datum, isnull: *mut bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_free_iterator(iterator: ArrayIterator); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ArrayGetOffset( + n: ::std::os::raw::c_int, + dim: *const ::std::os::raw::c_int, + lb: *const ::std::os::raw::c_int, + indx: *const ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ArrayGetOffset0( + n: ::std::os::raw::c_int, + tup: *const ::std::os::raw::c_int, + scale: *const ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ArrayGetNItems( + ndim: ::std::os::raw::c_int, + dims: *const ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ArrayGetNItemsSafe( + ndim: ::std::os::raw::c_int, + dims: *const ::std::os::raw::c_int, + escontext: *mut Node, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ArrayCheckBounds( + ndim: ::std::os::raw::c_int, + dims: *const ::std::os::raw::c_int, + lb: *const ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ArrayCheckBoundsSafe( + ndim: ::std::os::raw::c_int, + dims: *const ::std::os::raw::c_int, + lb: *const ::std::os::raw::c_int, + escontext: *mut Node, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mda_get_range( + n: ::std::os::raw::c_int, + span: *mut ::std::os::raw::c_int, + st: *const ::std::os::raw::c_int, + endp: *const ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mda_get_prod( + n: ::std::os::raw::c_int, + range: *const ::std::os::raw::c_int, + prod: *mut ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mda_get_offset_values( + n: ::std::os::raw::c_int, + dist: *mut ::std::os::raw::c_int, + prod: *const ::std::os::raw::c_int, + span: *const ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mda_next_tuple( + n: ::std::os::raw::c_int, + curr: *mut ::std::os::raw::c_int, + span: *const ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ArrayGetIntegerTypmods(arr: *mut ArrayType, n: *mut ::std::os::raw::c_int) + -> *mut int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expand_array( + arraydatum: Datum, + parentcontext: MemoryContext, + metacache: *mut ArrayMetaState, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DatumGetExpandedArray(d: Datum) -> *mut ExpandedArrayHeader; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DatumGetExpandedArrayX( + d: Datum, + metacache: *mut ArrayMetaState, + ) -> *mut ExpandedArrayHeader; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DatumGetAnyArrayP(d: Datum) -> *mut AnyArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deconstruct_expanded_array(eah: *mut ExpandedArrayHeader); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveObjects(stmt: *mut DropStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineIndex( + relationId: Oid, + stmt: *mut IndexStmt, + indexRelationId: Oid, + parentIndexId: Oid, + parentConstraintId: Oid, + total_parts: ::std::os::raw::c_int, + is_alter_table: bool, + check_rights: bool, + check_not_in_use: bool, + skip_build: bool, + quiet: bool, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecReindex(pstate: *mut ParseState, stmt: *mut ReindexStmt, isTopLevel: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeObjectName( + name1: *const ::std::os::raw::c_char, + name2: *const ::std::os::raw::c_char, + label: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ChooseRelationName( + name1: *const ::std::os::raw::c_char, + name2: *const ::std::os::raw::c_char, + label: *const ::std::os::raw::c_char, + namespaceid: Oid, + isconstraint: bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckIndexCompatible( + oldId: Oid, + accessMethodName: *const ::std::os::raw::c_char, + attributeList: *mut List, + exclusionOpNames: *mut List, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetDefaultOpClass(type_id: Oid, am_id: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResolveOpClass( + opclass: *mut List, + attrType: Oid, + accessMethodName: *const ::std::os::raw::c_char, + accessMethodId: Oid, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateFunction(pstate: *mut ParseState, stmt: *mut CreateFunctionStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveFunctionById(funcOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterFunction(pstate: *mut ParseState, stmt: *mut AlterFunctionStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateCast(stmt: *mut CreateCastStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateTransform(stmt: *mut CreateTransformStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsThereFunctionInNamespace( + proname: *const ::std::os::raw::c_char, + pronargs: ::std::os::raw::c_int, + proargtypes: *mut oidvector, + nspOid: Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecuteDoStmt(pstate: *mut ParseState, stmt: *mut DoStmt, atomic: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecuteCallStmt( + stmt: *mut CallStmt, + params: ParamListInfo, + atomic: bool, + dest: *mut DestReceiver, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CallStmtResultDesc(stmt: *mut CallStmt) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_transform_oid(type_id: Oid, lang_id: Oid, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interpret_function_parameter_list( + pstate: *mut ParseState, + parameters: *mut List, + languageOid: Oid, + objtype: ObjectType, + parameterTypes: *mut *mut oidvector, + parameterTypes_list: *mut *mut List, + allParameterTypes: *mut *mut ArrayType, + parameterModes: *mut *mut ArrayType, + parameterNames: *mut *mut ArrayType, + inParameterNames_list: *mut *mut List, + parameterDefaults: *mut *mut List, + variadicArgType: *mut Oid, + requiredResultType: *mut Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineOperator(names: *mut List, parameters: *mut List) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveOperatorById(operOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterOperator(stmt: *mut AlterOperatorStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateStatistics(stmt: *mut CreateStatsStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterStatistics(stmt: *mut AlterStatsStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveStatisticsById(statsOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveStatisticsDataById(statsOid: Oid, inh: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StatisticsGetRelation(statId: Oid, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineAggregate( + pstate: *mut ParseState, + name: *mut List, + args: *mut List, + oldstyle: bool, + parameters: *mut List, + replace: bool, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineOpClass(stmt: *mut CreateOpClassStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineOpFamily(stmt: *mut CreateOpFamilyStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterOpFamily(stmt: *mut AlterOpFamilyStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsThereOpClassInNamespace( + opcname: *const ::std::os::raw::c_char, + opcmethod: Oid, + opcnamespace: Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsThereOpFamilyInNamespace( + opfname: *const ::std::os::raw::c_char, + opfmethod: Oid, + opfnamespace: Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_opclass_oid(amID: Oid, opclassname: *mut List, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_opfamily_oid(amID: Oid, opfamilyname: *mut List, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineTSParser(names: *mut List, parameters: *mut List) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineTSDictionary(names: *mut List, parameters: *mut List) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTSDictionary(stmt: *mut AlterTSDictionaryStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineTSTemplate(names: *mut List, parameters: *mut List) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineTSConfiguration( + names: *mut List, + parameters: *mut List, + copied: *mut ObjectAddress, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveTSConfigurationById(cfgId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTSConfiguration(stmt: *mut AlterTSConfigurationStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn serialize_deflist(deflist: *mut List) -> *mut text; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deserialize_deflist(txt: Datum) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterForeignServerOwner( + name: *const ::std::os::raw::c_char, + newOwnerId: Oid, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterForeignServerOwner_oid(arg1: Oid, newOwnerId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterForeignDataWrapperOwner( + name: *const ::std::os::raw::c_char, + newOwnerId: Oid, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterForeignDataWrapperOwner_oid(fwdId: Oid, newOwnerId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateForeignDataWrapper( + pstate: *mut ParseState, + stmt: *mut CreateFdwStmt, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterForeignDataWrapper( + pstate: *mut ParseState, + stmt: *mut AlterFdwStmt, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateForeignServer(stmt: *mut CreateForeignServerStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterForeignServer(stmt: *mut AlterForeignServerStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateUserMapping(stmt: *mut CreateUserMappingStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterUserMapping(stmt: *mut AlterUserMappingStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveUserMapping(stmt: *mut DropUserMappingStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateForeignTable(stmt: *mut CreateForeignTableStmt, relid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ImportForeignSchema(stmt: *mut ImportForeignSchemaStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn transformGenericOptions( + catalogId: Oid, + oldOptions: Datum, + options: *mut List, + fdwvalidator: Oid, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateAccessMethod(stmt: *mut CreateAmStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_index_am_oid(amname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_table_am_oid(amname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_am_oid(amname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_am_name(amOid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetString(def: *mut DefElem) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetNumeric(def: *mut DefElem) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetBoolean(def: *mut DefElem) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetInt32(def: *mut DefElem) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetInt64(def: *mut DefElem) -> int64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetObjectId(def: *mut DefElem) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetQualifiedName(def: *mut DefElem) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetTypeName(def: *mut DefElem) -> *mut TypeName; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetTypeLength(def: *mut DefElem) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn defGetStringList(def: *mut DefElem) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errorConflictingDefElem(defel: *mut DefElem, pstate: *mut ParseState) -> !; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_event_trigger { + pub oid: Oid, + pub evtname: NameData, + pub evtevent: NameData, + pub evtowner: Oid, + pub evtfoid: Oid, + pub evtenabled: ::std::os::raw::c_char, +} +impl Default for FormData_pg_event_trigger { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_event_trigger = *mut FormData_pg_event_trigger; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct InternalGrant { + pub is_grant: bool, + pub objtype: ObjectType, + pub objects: *mut List, + pub all_privs: bool, + pub privileges: AclMode, + pub col_privs: *mut List, + pub grantees: *mut List, + pub grant_option: bool, + pub behavior: DropBehavior, +} +impl Default for InternalGrant { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const CollectedCommandType_SCT_Simple: CollectedCommandType = 0; +pub const CollectedCommandType_SCT_AlterTable: CollectedCommandType = 1; +pub const CollectedCommandType_SCT_Grant: CollectedCommandType = 2; +pub const CollectedCommandType_SCT_AlterOpFamily: CollectedCommandType = 3; +pub const CollectedCommandType_SCT_AlterDefaultPrivileges: CollectedCommandType = 4; +pub const CollectedCommandType_SCT_CreateOpClass: CollectedCommandType = 5; +pub const CollectedCommandType_SCT_AlterTSConfig: CollectedCommandType = 6; +pub type CollectedCommandType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollectedATSubcmd { + pub address: ObjectAddress, + pub parsetree: *mut Node, +} +impl Default for CollectedATSubcmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct CollectedCommand { + pub type_: CollectedCommandType, + pub in_extension: bool, + pub parsetree: *mut Node, + pub d: CollectedCommand__bindgen_ty_1, + pub parent: *mut CollectedCommand, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union CollectedCommand__bindgen_ty_1 { + pub simple: CollectedCommand__bindgen_ty_1__bindgen_ty_1, + pub alterTable: CollectedCommand__bindgen_ty_1__bindgen_ty_2, + pub grant: CollectedCommand__bindgen_ty_1__bindgen_ty_3, + pub opfam: CollectedCommand__bindgen_ty_1__bindgen_ty_4, + pub createopc: CollectedCommand__bindgen_ty_1__bindgen_ty_5, + pub atscfg: CollectedCommand__bindgen_ty_1__bindgen_ty_6, + pub defprivs: CollectedCommand__bindgen_ty_1__bindgen_ty_7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollectedCommand__bindgen_ty_1__bindgen_ty_1 { + pub address: ObjectAddress, + pub secondaryObject: ObjectAddress, +} +impl Default for CollectedCommand__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollectedCommand__bindgen_ty_1__bindgen_ty_2 { + pub objectId: Oid, + pub classId: Oid, + pub subcmds: *mut List, +} +impl Default for CollectedCommand__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollectedCommand__bindgen_ty_1__bindgen_ty_3 { + pub istmt: *mut InternalGrant, +} +impl Default for CollectedCommand__bindgen_ty_1__bindgen_ty_3 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollectedCommand__bindgen_ty_1__bindgen_ty_4 { + pub address: ObjectAddress, + pub operators: *mut List, + pub procedures: *mut List, +} +impl Default for CollectedCommand__bindgen_ty_1__bindgen_ty_4 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollectedCommand__bindgen_ty_1__bindgen_ty_5 { + pub address: ObjectAddress, + pub operators: *mut List, + pub procedures: *mut List, +} +impl Default for CollectedCommand__bindgen_ty_1__bindgen_ty_5 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollectedCommand__bindgen_ty_1__bindgen_ty_6 { + pub address: ObjectAddress, + pub dictIds: *mut Oid, + pub ndicts: ::std::os::raw::c_int, +} +impl Default for CollectedCommand__bindgen_ty_1__bindgen_ty_6 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CollectedCommand__bindgen_ty_1__bindgen_ty_7 { + pub objtype: ObjectType, +} +impl Default for CollectedCommand__bindgen_ty_1__bindgen_ty_7 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for CollectedCommand__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for CollectedCommand { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct EventTriggerData { + pub type_: NodeTag, + pub event: *const ::std::os::raw::c_char, + pub parsetree: *mut Node, + pub tag: CommandTag, +} +impl Default for EventTriggerData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateEventTrigger(stmt: *mut CreateEventTrigStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_event_trigger_oid(trigname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterEventTrigger(stmt: *mut AlterEventTrigStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterEventTriggerOwner( + name: *const ::std::os::raw::c_char, + newOwnerId: Oid, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterEventTriggerOwner_oid(arg1: Oid, newOwnerId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerSupportsObjectType(obtype: ObjectType) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerSupportsObjectClass(objclass: ObjectClass) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerDDLCommandStart(parsetree: *mut Node); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerDDLCommandEnd(parsetree: *mut Node); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerSQLDrop(parsetree: *mut Node); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerTableRewrite( + parsetree: *mut Node, + tableOid: Oid, + reason: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerBeginCompleteQuery() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerEndCompleteQuery(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn trackDroppedObjectsNeeded() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerSQLDropAddObject(object: *const ObjectAddress, original: bool, normal: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerInhibitCommandCollection(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerUndoInhibitCommandCollection(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerCollectSimpleCommand( + address: ObjectAddress, + secondaryObject: ObjectAddress, + parsetree: *mut Node, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerAlterTableStart(parsetree: *mut Node); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerAlterTableRelid(objectId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerCollectAlterTableSubcmd(subcmd: *mut Node, address: ObjectAddress); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerAlterTableEnd(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerCollectGrant(istmt: *mut InternalGrant); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerCollectAlterOpFam( + stmt: *mut AlterOpFamilyStmt, + opfamoid: Oid, + operators: *mut List, + procedures: *mut List, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerCollectCreateOpClass( + stmt: *mut CreateOpClassStmt, + opcoid: Oid, + operators: *mut List, + procedures: *mut List, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerCollectAlterTSConfig( + stmt: *mut AlterTSConfigurationStmt, + cfgId: Oid, + dictIds: *mut Oid, + ndicts: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EventTriggerCollectAlterDefPrivs(stmt: *mut AlterDefaultPrivilegesStmt); +} +pub const ExplainFormat_EXPLAIN_FORMAT_TEXT: ExplainFormat = 0; +pub const ExplainFormat_EXPLAIN_FORMAT_XML: ExplainFormat = 1; +pub const ExplainFormat_EXPLAIN_FORMAT_JSON: ExplainFormat = 2; +pub const ExplainFormat_EXPLAIN_FORMAT_YAML: ExplainFormat = 3; +pub type ExplainFormat = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExplainWorkersState { + pub num_workers: ::std::os::raw::c_int, + pub worker_inited: *mut bool, + pub worker_str: *mut StringInfoData, + pub worker_state_save: *mut ::std::os::raw::c_int, + pub prev_str: StringInfo, +} +impl Default for ExplainWorkersState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExplainState { + pub str_: StringInfo, + pub verbose: bool, + pub analyze: bool, + pub costs: bool, + pub buffers: bool, + pub wal: bool, + pub timing: bool, + pub summary: bool, + pub settings: bool, + pub generic: bool, + pub format: ExplainFormat, + pub indent: ::std::os::raw::c_int, + pub grouping_stack: *mut List, + pub pstmt: *mut PlannedStmt, + pub rtable: *mut List, + pub rtable_names: *mut List, + pub deparse_cxt: *mut List, + pub printed_subplans: *mut Bitmapset, + pub hide_workers: bool, + pub workers_state: *mut ExplainWorkersState, +} +impl Default for ExplainState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ExplainOneQuery_hook_type = ::std::option::Option< + unsafe extern "C" fn( + query: *mut Query, + cursorOptions: ::std::os::raw::c_int, + into: *mut IntoClause, + es: *mut ExplainState, + queryString: *const ::std::os::raw::c_char, + params: ParamListInfo, + queryEnv: *mut QueryEnvironment, + ), +>; +extern "C" { + pub static mut ExplainOneQuery_hook: ExplainOneQuery_hook_type; +} +pub type explain_get_index_name_hook_type = + ::std::option::Option *const ::std::os::raw::c_char>; +extern "C" { + pub static mut explain_get_index_name_hook: explain_get_index_name_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainQuery( + pstate: *mut ParseState, + stmt: *mut ExplainStmt, + params: ParamListInfo, + dest: *mut DestReceiver, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn NewExplainState() -> *mut ExplainState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainResultDesc(stmt: *mut ExplainStmt) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainOneUtility( + utilityStmt: *mut Node, + into: *mut IntoClause, + es: *mut ExplainState, + queryString: *const ::std::os::raw::c_char, + params: ParamListInfo, + queryEnv: *mut QueryEnvironment, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainOnePlan( + plannedstmt: *mut PlannedStmt, + into: *mut IntoClause, + es: *mut ExplainState, + queryString: *const ::std::os::raw::c_char, + params: ParamListInfo, + queryEnv: *mut QueryEnvironment, + planduration: *const instr_time, + bufusage: *const BufferUsage, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPrintPlan(es: *mut ExplainState, queryDesc: *mut QueryDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPrintTriggers(es: *mut ExplainState, queryDesc: *mut QueryDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPrintJITSummary(es: *mut ExplainState, queryDesc: *mut QueryDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainQueryText(es: *mut ExplainState, queryDesc: *mut QueryDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainQueryParameters( + es: *mut ExplainState, + params: ParamListInfo, + maxlen: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainBeginOutput(es: *mut ExplainState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainEndOutput(es: *mut ExplainState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainSeparatePlans(es: *mut ExplainState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPropertyList( + qlabel: *const ::std::os::raw::c_char, + data: *mut List, + es: *mut ExplainState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPropertyListNested( + qlabel: *const ::std::os::raw::c_char, + data: *mut List, + es: *mut ExplainState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPropertyText( + qlabel: *const ::std::os::raw::c_char, + value: *const ::std::os::raw::c_char, + es: *mut ExplainState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPropertyInteger( + qlabel: *const ::std::os::raw::c_char, + unit: *const ::std::os::raw::c_char, + value: int64, + es: *mut ExplainState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPropertyUInteger( + qlabel: *const ::std::os::raw::c_char, + unit: *const ::std::os::raw::c_char, + value: uint64, + es: *mut ExplainState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPropertyFloat( + qlabel: *const ::std::os::raw::c_char, + unit: *const ::std::os::raw::c_char, + value: f64, + ndigits: ::std::os::raw::c_int, + es: *mut ExplainState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainPropertyBool( + qlabel: *const ::std::os::raw::c_char, + value: bool, + es: *mut ExplainState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainOpenGroup( + objtype: *const ::std::os::raw::c_char, + labelname: *const ::std::os::raw::c_char, + labeled: bool, + es: *mut ExplainState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExplainCloseGroup( + objtype: *const ::std::os::raw::c_char, + labelname: *const ::std::os::raw::c_char, + labeled: bool, + es: *mut ExplainState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateProceduralLanguage(stmt: *mut CreatePLangStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_language_oid(langname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +extern "C" { + pub static mut allow_in_place_tablespaces: bool; +} +#[repr(C)] +#[derive(Debug)] +pub struct xl_tblspc_create_rec { + pub ts_id: Oid, + pub ts_path: __IncompleteArrayField<::std::os::raw::c_char>, +} +impl Default for xl_tblspc_create_rec { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xl_tblspc_drop_rec { + pub ts_id: Oid, +} +impl Default for xl_tblspc_drop_rec { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TableSpaceOpts { + pub vl_len_: int32, + pub random_page_cost: float8, + pub seq_page_cost: float8, + pub effective_io_concurrency: ::std::os::raw::c_int, + pub maintenance_io_concurrency: ::std::os::raw::c_int, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateTableSpace(stmt: *mut CreateTableSpaceStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DropTableSpace(stmt: *mut DropTableSpaceStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RenameTableSpace( + oldname: *const ::std::os::raw::c_char, + newname: *const ::std::os::raw::c_char, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTableSpaceOptions(stmt: *mut AlterTableSpaceOptionsStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TablespaceCreateDbspace(spcOid: Oid, dbOid: Oid, isRedo: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetDefaultTablespace(relpersistence: ::std::os::raw::c_char, partitioned: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrepareTempTablespaces(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_tablespace_oid( + tablespacename: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_tablespace_name(spc_oid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn directory_is_empty(path: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn remove_tablespace_symlink(linkloc: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tblspc_redo(record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tblspc_desc(buf: StringInfo, record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tblspc_identify(info: uint8) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineRelation( + stmt: *mut CreateStmt, + relkind: ::std::os::raw::c_char, + ownerId: Oid, + typaddress: *mut ObjectAddress, + queryString: *const ::std::os::raw::c_char, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveRelations(drop: *mut DropStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTableLookupRelation(stmt: *mut AlterTableStmt, lockmode: LOCKMODE) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTable( + stmt: *mut AlterTableStmt, + lockmode: LOCKMODE, + context: *mut AlterTableUtilityContext, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTableGetLockLevel(cmds: *mut List) -> LOCKMODE; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ATExecChangeOwner( + relationOid: Oid, + newOwnerId: Oid, + recursing: bool, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTableInternal(relid: Oid, cmds: *mut List, recurse: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTableMoveAll(stmt: *mut AlterTableMoveAllStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTableNamespace( + stmt: *mut AlterObjectSchemaStmt, + oldschema: *mut Oid, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterTableNamespaceInternal( + rel: Relation, + oldNspOid: Oid, + nspOid: Oid, + objsMoved: *mut ObjectAddresses, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterRelationNamespaceInternal( + classRel: Relation, + relOid: Oid, + oldNspOid: Oid, + newNspOid: Oid, + hasDependEntry: bool, + objsMoved: *mut ObjectAddresses, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckTableNotInUse(rel: Relation, stmt: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecuteTruncate(stmt: *mut TruncateStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecuteTruncateGuts( + explicit_rels: *mut List, + relids: *mut List, + relids_logged: *mut List, + behavior: DropBehavior, + restart_seqs: bool, + run_as_table_owner: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetRelationHasSubclass(relationId: Oid, relhassubclass: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckRelationTableSpaceMove(rel: Relation, newTableSpaceId: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetRelationTableSpace( + rel: Relation, + newTableSpaceId: Oid, + newRelFilenumber: RelFileNumber, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn renameatt(stmt: *mut RenameStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RenameConstraint(stmt: *mut RenameStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RenameRelation(stmt: *mut RenameStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RenameRelationInternal( + myrelid: Oid, + newrelname: *const ::std::os::raw::c_char, + is_internal: bool, + is_index: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResetRelRewrite(myrelid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_composite_type_dependencies( + typeOid: Oid, + origRelation: Relation, + origTypeName: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_of_type(typetuple: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn register_on_commit_action(relid: Oid, action: OnCommitAction); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn remove_on_commit_action(relid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PreCommit_on_commit_actions(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_on_commit_actions(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOSubXact_on_commit_actions( + isCommit: bool, + mySubid: SubTransactionId, + parentSubid: SubTransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RangeVarCallbackMaintainsTable( + relation: *const RangeVar, + relId: Oid, + oldRelId: Oid, + arg: *mut ::std::os::raw::c_void, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_partition_ancestor_privs(relid: Oid, userid: Oid, acl: AclMode) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RangeVarCallbackOwnsRelation( + relation: *const RangeVar, + relId: Oid, + oldRelId: Oid, + arg: *mut ::std::os::raw::c_void, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PartConstraintImpliedByRelConstraint( + scanrel: Relation, + partConstraint: *mut List, + ) -> bool; +} +pub type TriggerEvent = uint32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TriggerData { + pub type_: NodeTag, + pub tg_event: TriggerEvent, + pub tg_relation: Relation, + pub tg_trigtuple: HeapTuple, + pub tg_newtuple: HeapTuple, + pub tg_trigger: *mut Trigger, + pub tg_trigslot: *mut TupleTableSlot, + pub tg_newslot: *mut TupleTableSlot, + pub tg_oldtable: *mut Tuplestorestate, + pub tg_newtable: *mut Tuplestorestate, + pub tg_updatedcols: *const Bitmapset, +} +impl Default for TriggerData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AfterTriggersTableData { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TransitionCaptureState { + pub tcs_delete_old_table: bool, + pub tcs_update_old_table: bool, + pub tcs_update_new_table: bool, + pub tcs_insert_new_table: bool, + pub tcs_original_insert_tuple: *mut TupleTableSlot, + pub tcs_private: *mut AfterTriggersTableData, +} +impl Default for TransitionCaptureState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut SessionReplicationRole: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateTrigger( + stmt: *mut CreateTrigStmt, + queryString: *const ::std::os::raw::c_char, + relOid: Oid, + refRelOid: Oid, + constraintOid: Oid, + indexOid: Oid, + funcoid: Oid, + parentTriggerOid: Oid, + whenClause: *mut Node, + isInternal: bool, + in_partition: bool, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateTriggerFiringOn( + stmt: *mut CreateTrigStmt, + queryString: *const ::std::os::raw::c_char, + relOid: Oid, + refRelOid: Oid, + constraintOid: Oid, + indexOid: Oid, + funcoid: Oid, + parentTriggerOid: Oid, + whenClause: *mut Node, + isInternal: bool, + in_partition: bool, + trigger_fires_when: ::std::os::raw::c_char, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TriggerSetParentTrigger( + trigRel: Relation, + childTrigId: Oid, + parentTrigId: Oid, + childTableId: Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RemoveTriggerById(trigOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_trigger_oid( + relid: Oid, + trigname: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn renametrig(stmt: *mut RenameStmt) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EnableDisableTrigger( + rel: Relation, + tgname: *const ::std::os::raw::c_char, + tgparent: Oid, + fires_when: ::std::os::raw::c_char, + skip_system: bool, + recurse: bool, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationBuildTriggers(relation: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CopyTriggerDesc(trigdesc: *mut TriggerDesc) -> *mut TriggerDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FindTriggerIncompatibleWithInheritance( + trigdesc: *mut TriggerDesc, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MakeTransitionCaptureState( + trigdesc: *mut TriggerDesc, + relid: Oid, + cmdType: CmdType, + ) -> *mut TransitionCaptureState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeTriggerDesc(trigdesc: *mut TriggerDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBSInsertTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecASInsertTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + transition_capture: *mut TransitionCaptureState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBRInsertTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecARInsertTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + recheckIndexes: *mut List, + transition_capture: *mut TransitionCaptureState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecIRInsertTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBSDeleteTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecASDeleteTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + transition_capture: *mut TransitionCaptureState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBRDeleteTriggers( + estate: *mut EState, + epqstate: *mut EPQState, + relinfo: *mut ResultRelInfo, + tupleid: ItemPointer, + fdw_trigtuple: HeapTuple, + epqslot: *mut *mut TupleTableSlot, + tmresult: *mut TM_Result, + tmfd: *mut TM_FailureData, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecARDeleteTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + tupleid: ItemPointer, + fdw_trigtuple: HeapTuple, + transition_capture: *mut TransitionCaptureState, + is_crosspart_update: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecIRDeleteTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + trigtuple: HeapTuple, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBSUpdateTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecASUpdateTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + transition_capture: *mut TransitionCaptureState, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBRUpdateTriggers( + estate: *mut EState, + epqstate: *mut EPQState, + relinfo: *mut ResultRelInfo, + tupleid: ItemPointer, + fdw_trigtuple: HeapTuple, + newslot: *mut TupleTableSlot, + tmresult: *mut TM_Result, + tmfd: *mut TM_FailureData, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecARUpdateTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + src_partinfo: *mut ResultRelInfo, + dst_partinfo: *mut ResultRelInfo, + tupleid: ItemPointer, + fdw_trigtuple: HeapTuple, + newslot: *mut TupleTableSlot, + recheckIndexes: *mut List, + transition_capture: *mut TransitionCaptureState, + is_crosspart_update: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecIRUpdateTriggers( + estate: *mut EState, + relinfo: *mut ResultRelInfo, + trigtuple: HeapTuple, + newslot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecBSTruncateTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecASTruncateTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AfterTriggerBeginXact(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AfterTriggerBeginQuery(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AfterTriggerEndQuery(estate: *mut EState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AfterTriggerFireDeferred(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AfterTriggerEndXact(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AfterTriggerBeginSubXact(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AfterTriggerEndSubXact(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AfterTriggerSetState(stmt: *mut ConstraintsSetStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AfterTriggerPendingOnRel(relid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_pk_upd_check_required( + trigger: *mut Trigger, + pk_rel: Relation, + oldslot: *mut TupleTableSlot, + newslot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_fk_upd_check_required( + trigger: *mut Trigger, + fk_rel: Relation, + oldslot: *mut TupleTableSlot, + newslot: *mut TupleTableSlot, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_Initial_Check(trigger: *mut Trigger, fk_rel: Relation, pk_rel: Relation) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_PartitionRemove_Check(trigger: *mut Trigger, fk_rel: Relation, pk_rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_trigger_type(tgfoid: Oid) -> ::std::os::raw::c_int; +} +pub const PasswordType_PASSWORD_TYPE_PLAINTEXT: PasswordType = 0; +pub const PasswordType_PASSWORD_TYPE_MD5: PasswordType = 1; +pub const PasswordType_PASSWORD_TYPE_SCRAM_SHA_256: PasswordType = 2; +pub type PasswordType = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_password_type(shadow_pass: *const ::std::os::raw::c_char) -> PasswordType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn encrypt_password( + target_type: PasswordType, + role: *const ::std::os::raw::c_char, + password: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_role_password( + role: *const ::std::os::raw::c_char, + logdetail: *mut *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn md5_crypt_verify( + role: *const ::std::os::raw::c_char, + shadow_pass: *const ::std::os::raw::c_char, + client_pass: *const ::std::os::raw::c_char, + md5_salt: *const ::std::os::raw::c_char, + md5_salt_len: ::std::os::raw::c_int, + logdetail: *mut *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plain_crypt_verify( + role: *const ::std::os::raw::c_char, + shadow_pass: *const ::std::os::raw::c_char, + client_pass: *const ::std::os::raw::c_char, + logdetail: *mut *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +pub const GucContext_PGC_INTERNAL: GucContext = 0; +pub const GucContext_PGC_POSTMASTER: GucContext = 1; +pub const GucContext_PGC_SIGHUP: GucContext = 2; +pub const GucContext_PGC_SU_BACKEND: GucContext = 3; +pub const GucContext_PGC_BACKEND: GucContext = 4; +pub const GucContext_PGC_SUSET: GucContext = 5; +pub const GucContext_PGC_USERSET: GucContext = 6; +pub type GucContext = ::std::os::raw::c_uint; +pub const GucSource_PGC_S_DEFAULT: GucSource = 0; +pub const GucSource_PGC_S_DYNAMIC_DEFAULT: GucSource = 1; +pub const GucSource_PGC_S_ENV_VAR: GucSource = 2; +pub const GucSource_PGC_S_FILE: GucSource = 3; +pub const GucSource_PGC_S_ARGV: GucSource = 4; +pub const GucSource_PGC_S_GLOBAL: GucSource = 5; +pub const GucSource_PGC_S_DATABASE: GucSource = 6; +pub const GucSource_PGC_S_USER: GucSource = 7; +pub const GucSource_PGC_S_DATABASE_USER: GucSource = 8; +pub const GucSource_PGC_S_CLIENT: GucSource = 9; +pub const GucSource_PGC_S_OVERRIDE: GucSource = 10; +pub const GucSource_PGC_S_INTERACTIVE: GucSource = 11; +pub const GucSource_PGC_S_TEST: GucSource = 12; +pub const GucSource_PGC_S_SESSION: GucSource = 13; +pub type GucSource = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ConfigVariable { + pub name: *mut ::std::os::raw::c_char, + pub value: *mut ::std::os::raw::c_char, + pub errmsg: *mut ::std::os::raw::c_char, + pub filename: *mut ::std::os::raw::c_char, + pub sourceline: ::std::os::raw::c_int, + pub ignore: bool, + pub applied: bool, + pub next: *mut ConfigVariable, +} +impl Default for ConfigVariable { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParseConfigFile( + config_file: *const ::std::os::raw::c_char, + strict: bool, + calling_file: *const ::std::os::raw::c_char, + calling_lineno: ::std::os::raw::c_int, + depth: ::std::os::raw::c_int, + elevel: ::std::os::raw::c_int, + head_p: *mut *mut ConfigVariable, + tail_p: *mut *mut ConfigVariable, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParseConfigFp( + fp: *mut FILE, + config_file: *const ::std::os::raw::c_char, + depth: ::std::os::raw::c_int, + elevel: ::std::os::raw::c_int, + head_p: *mut *mut ConfigVariable, + tail_p: *mut *mut ConfigVariable, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParseConfigDirectory( + includedir: *const ::std::os::raw::c_char, + calling_file: *const ::std::os::raw::c_char, + calling_lineno: ::std::os::raw::c_int, + depth: ::std::os::raw::c_int, + elevel: ::std::os::raw::c_int, + head_p: *mut *mut ConfigVariable, + tail_p: *mut *mut ConfigVariable, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeConfigVariables(list: *mut ConfigVariable); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DeescapeQuotedString(s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct config_enum_entry { + pub name: *const ::std::os::raw::c_char, + pub val: ::std::os::raw::c_int, + pub hidden: bool, +} +impl Default for config_enum_entry { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type GucBoolCheckHook = ::std::option::Option< + unsafe extern "C" fn( + newval: *mut bool, + extra: *mut *mut ::std::os::raw::c_void, + source: GucSource, + ) -> bool, +>; +pub type GucIntCheckHook = ::std::option::Option< + unsafe extern "C" fn( + newval: *mut ::std::os::raw::c_int, + extra: *mut *mut ::std::os::raw::c_void, + source: GucSource, + ) -> bool, +>; +pub type GucRealCheckHook = ::std::option::Option< + unsafe extern "C" fn( + newval: *mut f64, + extra: *mut *mut ::std::os::raw::c_void, + source: GucSource, + ) -> bool, +>; +pub type GucStringCheckHook = ::std::option::Option< + unsafe extern "C" fn( + newval: *mut *mut ::std::os::raw::c_char, + extra: *mut *mut ::std::os::raw::c_void, + source: GucSource, + ) -> bool, +>; +pub type GucEnumCheckHook = ::std::option::Option< + unsafe extern "C" fn( + newval: *mut ::std::os::raw::c_int, + extra: *mut *mut ::std::os::raw::c_void, + source: GucSource, + ) -> bool, +>; +pub type GucBoolAssignHook = + ::std::option::Option; +pub type GucIntAssignHook = ::std::option::Option< + unsafe extern "C" fn(newval: ::std::os::raw::c_int, extra: *mut ::std::os::raw::c_void), +>; +pub type GucRealAssignHook = + ::std::option::Option; +pub type GucStringAssignHook = ::std::option::Option< + unsafe extern "C" fn(newval: *const ::std::os::raw::c_char, extra: *mut ::std::os::raw::c_void), +>; +pub type GucEnumAssignHook = ::std::option::Option< + unsafe extern "C" fn(newval: ::std::os::raw::c_int, extra: *mut ::std::os::raw::c_void), +>; +pub type GucShowHook = + ::std::option::Option *const ::std::os::raw::c_char>; +pub const GucAction_GUC_ACTION_SET: GucAction = 0; +pub const GucAction_GUC_ACTION_LOCAL: GucAction = 1; +pub const GucAction_GUC_ACTION_SAVE: GucAction = 2; +pub type GucAction = ::std::os::raw::c_uint; +extern "C" { + pub static mut Debug_print_plan: bool; +} +extern "C" { + pub static mut Debug_print_parse: bool; +} +extern "C" { + pub static mut Debug_print_rewritten: bool; +} +extern "C" { + pub static mut Debug_pretty_print: bool; +} +extern "C" { + pub static mut log_parser_stats: bool; +} +extern "C" { + pub static mut log_planner_stats: bool; +} +extern "C" { + pub static mut log_executor_stats: bool; +} +extern "C" { + pub static mut log_statement_stats: bool; +} +extern "C" { + pub static mut log_btree_build_stats: bool; +} +extern "C" { + pub static mut check_function_bodies: bool; +} +extern "C" { + pub static mut session_auth_is_superuser: bool; +} +extern "C" { + pub static mut log_duration: bool; +} +extern "C" { + pub static mut log_parameter_max_length: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_parameter_max_length_on_error: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_min_error_statement: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_min_messages: ::std::os::raw::c_int; +} +extern "C" { + pub static mut client_min_messages: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_min_duration_sample: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_min_duration_statement: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_temp_files: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_statement_sample_rate: f64; +} +extern "C" { + pub static mut log_xact_sample_rate: f64; +} +extern "C" { + pub static mut backtrace_functions: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut temp_file_limit: ::std::os::raw::c_int; +} +extern "C" { + pub static mut num_temp_buffers: ::std::os::raw::c_int; +} +extern "C" { + pub static mut cluster_name: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut ConfigFileName: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut HbaFileName: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut IdentFileName: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut external_pid_file: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut application_name: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut tcp_keepalives_idle: ::std::os::raw::c_int; +} +extern "C" { + pub static mut tcp_keepalives_interval: ::std::os::raw::c_int; +} +extern "C" { + pub static mut tcp_keepalives_count: ::std::os::raw::c_int; +} +extern "C" { + pub static mut tcp_user_timeout: ::std::os::raw::c_int; +} +extern "C" { + pub static mut trace_sort: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetConfigOption( + name: *const ::std::os::raw::c_char, + value: *const ::std::os::raw::c_char, + context: GucContext, + source: GucSource, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineCustomBoolVariable( + name: *const ::std::os::raw::c_char, + short_desc: *const ::std::os::raw::c_char, + long_desc: *const ::std::os::raw::c_char, + valueAddr: *mut bool, + bootValue: bool, + context: GucContext, + flags: ::std::os::raw::c_int, + check_hook: GucBoolCheckHook, + assign_hook: GucBoolAssignHook, + show_hook: GucShowHook, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineCustomIntVariable( + name: *const ::std::os::raw::c_char, + short_desc: *const ::std::os::raw::c_char, + long_desc: *const ::std::os::raw::c_char, + valueAddr: *mut ::std::os::raw::c_int, + bootValue: ::std::os::raw::c_int, + minValue: ::std::os::raw::c_int, + maxValue: ::std::os::raw::c_int, + context: GucContext, + flags: ::std::os::raw::c_int, + check_hook: GucIntCheckHook, + assign_hook: GucIntAssignHook, + show_hook: GucShowHook, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineCustomRealVariable( + name: *const ::std::os::raw::c_char, + short_desc: *const ::std::os::raw::c_char, + long_desc: *const ::std::os::raw::c_char, + valueAddr: *mut f64, + bootValue: f64, + minValue: f64, + maxValue: f64, + context: GucContext, + flags: ::std::os::raw::c_int, + check_hook: GucRealCheckHook, + assign_hook: GucRealAssignHook, + show_hook: GucShowHook, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineCustomStringVariable( + name: *const ::std::os::raw::c_char, + short_desc: *const ::std::os::raw::c_char, + long_desc: *const ::std::os::raw::c_char, + valueAddr: *mut *mut ::std::os::raw::c_char, + bootValue: *const ::std::os::raw::c_char, + context: GucContext, + flags: ::std::os::raw::c_int, + check_hook: GucStringCheckHook, + assign_hook: GucStringAssignHook, + show_hook: GucShowHook, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DefineCustomEnumVariable( + name: *const ::std::os::raw::c_char, + short_desc: *const ::std::os::raw::c_char, + long_desc: *const ::std::os::raw::c_char, + valueAddr: *mut ::std::os::raw::c_int, + bootValue: ::std::os::raw::c_int, + options: *const config_enum_entry, + context: GucContext, + flags: ::std::os::raw::c_int, + check_hook: GucEnumCheckHook, + assign_hook: GucEnumAssignHook, + show_hook: GucShowHook, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MarkGUCPrefixReserved(className: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetConfigOption( + name: *const ::std::os::raw::c_char, + missing_ok: bool, + restrict_privileged: bool, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetConfigOptionResetString( + name: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetConfigOptionFlags( + name: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessConfigFile(context: GucContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn convert_GUC_name_for_parameter_acl( + name: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_GUC_name_for_parameter_acl(name: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeGUCOptions(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SelectConfigFiles( + userDoption: *const ::std::os::raw::c_char, + progname: *const ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResetAllOptions(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtStart_GUC(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn NewGUCNestLevel() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_GUC(isCommit: bool, nestLevel: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BeginReportingGUCOptions(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReportChangedGUCOptions(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParseLongOption( + string: *const ::std::os::raw::c_char, + name: *mut *mut ::std::os::raw::c_char, + value: *mut *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_config_unit_name(flags: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_int( + value: *const ::std::os::raw::c_char, + result: *mut ::std::os::raw::c_int, + flags: ::std::os::raw::c_int, + hintmsg: *mut *const ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_real( + value: *const ::std::os::raw::c_char, + result: *mut f64, + flags: ::std::os::raw::c_int, + hintmsg: *mut *const ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_config_option( + name: *const ::std::os::raw::c_char, + value: *const ::std::os::raw::c_char, + context: GucContext, + source: GucSource, + action: GucAction, + changeVal: bool, + elevel: ::std::os::raw::c_int, + is_reload: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_config_option_ext( + name: *const ::std::os::raw::c_char, + value: *const ::std::os::raw::c_char, + context: GucContext, + source: GucSource, + srole: Oid, + action: GucAction, + changeVal: bool, + elevel: ::std::os::raw::c_int, + is_reload: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterSystemSetConfigFile(altersysstmt: *mut AlterSystemStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetConfigOptionByName( + name: *const ::std::os::raw::c_char, + varname: *mut *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessGUCArray( + array: *mut ArrayType, + context: GucContext, + source: GucSource, + action: GucAction, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GUCArrayAdd( + array: *mut ArrayType, + name: *const ::std::os::raw::c_char, + value: *const ::std::os::raw::c_char, + ) -> *mut ArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GUCArrayDelete( + array: *mut ArrayType, + name: *const ::std::os::raw::c_char, + ) -> *mut ArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GUCArrayReset(array: *mut ArrayType) -> *mut ArrayType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn guc_malloc(elevel: ::std::os::raw::c_int, size: usize) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn guc_realloc( + elevel: ::std::os::raw::c_int, + old: *mut ::std::os::raw::c_void, + size: usize, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn guc_strdup( + elevel: ::std::os::raw::c_int, + src: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn guc_free(ptr: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EstimateGUCStateSpace() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SerializeGUCState(maxsize: Size, start_address: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreGUCState(gucstate: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecSetVariableStmt(stmt: *mut VariableSetStmt, isTopLevel: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExtractSetVariableArgs(stmt: *mut VariableSetStmt) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetPGVariable(name: *const ::std::os::raw::c_char, args: *mut List, is_local: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetPGVariable(name: *const ::std::os::raw::c_char, dest: *mut DestReceiver); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetPGVariableResultDesc(name: *const ::std::os::raw::c_char) -> TupleDesc; +} +extern "C" { + pub static mut GUC_check_errmsg_string: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut GUC_check_errdetail_string: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut GUC_check_errhint_string: *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GUC_check_errcode(sqlerrcode: ::std::os::raw::c_int); +} +extern "C" { + pub static mut Password_encryption: ::std::os::raw::c_int; +} +extern "C" { + pub static mut createrole_self_grant: *mut ::std::os::raw::c_char; +} +pub type check_password_hook_type = ::std::option::Option< + unsafe extern "C" fn( + username: *const ::std::os::raw::c_char, + shadow_pass: *const ::std::os::raw::c_char, + password_type: PasswordType, + validuntil_time: Datum, + validuntil_null: bool, + ), +>; +extern "C" { + pub static mut check_password_hook: check_password_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateRole(pstate: *mut ParseState, stmt: *mut CreateRoleStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterRole(pstate: *mut ParseState, stmt: *mut AlterRoleStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AlterRoleSet(stmt: *mut AlterRoleSetStmt) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DropRole(stmt: *mut DropRoleStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GrantRole(pstate: *mut ParseState, stmt: *mut GrantRoleStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RenameRole( + oldname: *const ::std::os::raw::c_char, + newname: *const ::std::os::raw::c_char, + ) -> ObjectAddress; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DropOwnedObjects(stmt: *mut DropOwnedStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReassignOwnedObjects(stmt: *mut ReassignOwnedStmt); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn roleSpecsToIds(memberNames: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_createrole_self_grant( + newval: *mut *mut ::std::os::raw::c_char, + extra: *mut *mut ::std::os::raw::c_void, + source: GucSource, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn assign_createrole_self_grant( + newval: *const ::std::os::raw::c_char, + extra: *mut ::std::os::raw::c_void, + ); +} +pub type bgworker_main_type = ::std::option::Option; +pub const BgWorkerStartTime_BgWorkerStart_PostmasterStart: BgWorkerStartTime = 0; +pub const BgWorkerStartTime_BgWorkerStart_ConsistentState: BgWorkerStartTime = 1; +pub const BgWorkerStartTime_BgWorkerStart_RecoveryFinished: BgWorkerStartTime = 2; +pub type BgWorkerStartTime = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BackgroundWorker { + pub bgw_name: [::std::os::raw::c_char; 96usize], + pub bgw_type: [::std::os::raw::c_char; 96usize], + pub bgw_flags: ::std::os::raw::c_int, + pub bgw_start_time: BgWorkerStartTime, + pub bgw_restart_time: ::std::os::raw::c_int, + pub bgw_library_name: [::std::os::raw::c_char; 96usize], + pub bgw_function_name: [::std::os::raw::c_char; 96usize], + pub bgw_main_arg: Datum, + pub bgw_extra: [::std::os::raw::c_char; 128usize], + pub bgw_notify_pid: pid_t, +} +impl Default for BackgroundWorker { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const BgwHandleStatus_BGWH_STARTED: BgwHandleStatus = 0; +pub const BgwHandleStatus_BGWH_NOT_YET_STARTED: BgwHandleStatus = 1; +pub const BgwHandleStatus_BGWH_STOPPED: BgwHandleStatus = 2; +pub const BgwHandleStatus_BGWH_POSTMASTER_DIED: BgwHandleStatus = 3; +pub type BgwHandleStatus = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BackgroundWorkerHandle { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterBackgroundWorker(worker: *mut BackgroundWorker); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterDynamicBackgroundWorker( + worker: *mut BackgroundWorker, + handle: *mut *mut BackgroundWorkerHandle, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetBackgroundWorkerPid( + handle: *mut BackgroundWorkerHandle, + pidp: *mut pid_t, + ) -> BgwHandleStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitForBackgroundWorkerStartup( + handle: *mut BackgroundWorkerHandle, + pidp: *mut pid_t, + ) -> BgwHandleStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitForBackgroundWorkerShutdown(arg1: *mut BackgroundWorkerHandle) -> BgwHandleStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetBackgroundWorkerTypeByPid(pid: pid_t) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TerminateBackgroundWorker(handle: *mut BackgroundWorkerHandle); +} +extern "C" { + pub static mut MyBgworkerEntry: *mut BackgroundWorker; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BackgroundWorkerInitializeConnection( + dbname: *const ::std::os::raw::c_char, + username: *const ::std::os::raw::c_char, + flags: uint32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BackgroundWorkerInitializeConnectionByOid(dboid: Oid, useroid: Oid, flags: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BackgroundWorkerBlockSignals(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BackgroundWorkerUnblockSignals(); +} +pub const SyncRequestType_SYNC_REQUEST: SyncRequestType = 0; +pub const SyncRequestType_SYNC_UNLINK_REQUEST: SyncRequestType = 1; +pub const SyncRequestType_SYNC_FORGET_REQUEST: SyncRequestType = 2; +pub const SyncRequestType_SYNC_FILTER_REQUEST: SyncRequestType = 3; +pub type SyncRequestType = ::std::os::raw::c_uint; +pub const SyncRequestHandler_SYNC_HANDLER_MD: SyncRequestHandler = 0; +pub const SyncRequestHandler_SYNC_HANDLER_CLOG: SyncRequestHandler = 1; +pub const SyncRequestHandler_SYNC_HANDLER_COMMIT_TS: SyncRequestHandler = 2; +pub const SyncRequestHandler_SYNC_HANDLER_MULTIXACT_OFFSET: SyncRequestHandler = 3; +pub const SyncRequestHandler_SYNC_HANDLER_MULTIXACT_MEMBER: SyncRequestHandler = 4; +pub const SyncRequestHandler_SYNC_HANDLER_NONE: SyncRequestHandler = 5; +pub type SyncRequestHandler = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FileTag { + pub handler: int16, + pub forknum: int16, + pub rlocator: RelFileLocator, + pub segno: uint32, +} +impl Default for FileTag { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitSync(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SyncPreCheckpoint(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SyncPostCheckpoint(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessSyncRequests(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RememberSyncRequest(ftag: *const FileTag, type_: SyncRequestType); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterSyncRequest( + ftag: *const FileTag, + type_: SyncRequestType, + retryOnError: bool, + ) -> bool; +} +pub type XidStatus = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct xl_clog_truncate { + pub pageno: ::std::os::raw::c_int, + pub oldestXact: TransactionId, + pub oldestXactDb: Oid, +} +impl Default for xl_clog_truncate { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdSetTreeStatus( + xid: TransactionId, + nsubxids: ::std::os::raw::c_int, + subxids: *mut TransactionId, + status: XidStatus, + lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdGetStatus(xid: TransactionId, lsn: *mut XLogRecPtr) -> XidStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CLOGShmemBuffers() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CLOGShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CLOGShmemInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BootStrapCLOG(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StartupCLOG(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TrimCLOG(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckPointCLOG(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExtendCLOG(newestXact: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TruncateCLOG(oldestXact: TransactionId, oldestxid_datoid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clogsyncfiletag( + ftag: *const FileTag, + path: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clog_redo(record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clog_desc(buf: StringInfo, record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clog_identify(info: uint8) -> *const ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct Latch { + pub is_set: sig_atomic_t, + pub maybe_sleeping: sig_atomic_t, + pub is_shared: bool, + pub owner_pid: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WaitEvent { + pub pos: ::std::os::raw::c_int, + pub events: uint32, + pub fd: pgsocket, + pub user_data: *mut ::std::os::raw::c_void, +} +impl Default for WaitEvent { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeLatchSupport(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitLatch(latch: *mut Latch); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitSharedLatch(latch: *mut Latch); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OwnLatch(latch: *mut Latch); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DisownLatch(latch: *mut Latch); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetLatch(latch: *mut Latch); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResetLatch(latch: *mut Latch); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShutdownLatchSupport(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateWaitEventSet( + context: MemoryContext, + nevents: ::std::os::raw::c_int, + ) -> *mut WaitEventSet; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeWaitEventSet(set: *mut WaitEventSet); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeWaitEventSetAfterFork(set: *mut WaitEventSet); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AddWaitEventToSet( + set: *mut WaitEventSet, + events: uint32, + fd: pgsocket, + latch: *mut Latch, + user_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ModifyWaitEvent( + set: *mut WaitEventSet, + pos: ::std::os::raw::c_int, + events: uint32, + latch: *mut Latch, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitEventSetWait( + set: *mut WaitEventSet, + timeout: ::std::os::raw::c_long, + occurred_events: *mut WaitEvent, + nevents: ::std::os::raw::c_int, + wait_event_info: uint32, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitLatch( + latch: *mut Latch, + wakeEvents: ::std::os::raw::c_int, + timeout: ::std::os::raw::c_long, + wait_event_info: uint32, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitLatchOrSocket( + latch: *mut Latch, + wakeEvents: ::std::os::raw::c_int, + sock: pgsocket, + timeout: ::std::os::raw::c_long, + wait_event_info: uint32, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeLatchWaitSet(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetNumRegisteredWaitEvents(set: *mut WaitEventSet) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitEventSetCanReportClosed() -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PGSemaphoreData { + _unused: [u8; 0], +} +pub type PGSemaphore = *mut PGSemaphoreData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PGSemaphoreShmemSize(maxSemas: ::std::os::raw::c_int) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PGReserveSemaphores(maxSemas: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PGSemaphoreCreate() -> PGSemaphore; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PGSemaphoreReset(sema: PGSemaphore); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PGSemaphoreLock(sema: PGSemaphore); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PGSemaphoreUnlock(sema: PGSemaphore); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PGSemaphoreTryLock(sema: PGSemaphore) -> bool; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct XidCacheStatus { + pub count: uint8, + pub overflowed: bool, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct XidCache { + pub xids: [TransactionId; 64usize], +} +impl Default for XidCache { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ProcWaitStatus_PROC_WAIT_STATUS_OK: ProcWaitStatus = 0; +pub const ProcWaitStatus_PROC_WAIT_STATUS_WAITING: ProcWaitStatus = 1; +pub const ProcWaitStatus_PROC_WAIT_STATUS_ERROR: ProcWaitStatus = 2; +pub type ProcWaitStatus = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PGPROC { + pub links: dlist_node, + pub procgloballist: *mut dlist_head, + pub sem: PGSemaphore, + pub waitStatus: ProcWaitStatus, + pub procLatch: Latch, + pub xid: TransactionId, + pub xmin: TransactionId, + pub lxid: LocalTransactionId, + pub pid: ::std::os::raw::c_int, + pub pgxactoff: ::std::os::raw::c_int, + pub pgprocno: ::std::os::raw::c_int, + pub backendId: BackendId, + pub databaseId: Oid, + pub roleId: Oid, + pub tempNamespaceId: Oid, + pub isBackgroundWorker: bool, + pub recoveryConflictPending: bool, + pub lwWaiting: uint8, + pub lwWaitMode: uint8, + pub lwWaitLink: proclist_node, + pub cvWaitLink: proclist_node, + pub waitLock: *mut LOCK, + pub waitProcLock: *mut PROCLOCK, + pub waitLockMode: LOCKMODE, + pub heldLocks: LOCKMASK, + pub waitStart: pg_atomic_uint64, + pub delayChkptFlags: ::std::os::raw::c_int, + pub statusFlags: uint8, + pub waitLSN: XLogRecPtr, + pub syncRepState: ::std::os::raw::c_int, + pub syncRepLinks: dlist_node, + pub myProcLocks: [dlist_head; 16usize], + pub subxidStatus: XidCacheStatus, + pub subxids: XidCache, + pub procArrayGroupMember: bool, + pub procArrayGroupNext: pg_atomic_uint32, + pub procArrayGroupMemberXid: TransactionId, + pub wait_event_info: uint32, + pub clogGroupMember: bool, + pub clogGroupNext: pg_atomic_uint32, + pub clogGroupMemberXid: TransactionId, + pub clogGroupMemberXidStatus: XidStatus, + pub clogGroupMemberPage: ::std::os::raw::c_int, + pub clogGroupMemberLsn: XLogRecPtr, + pub fpInfoLock: LWLock, + pub fpLockBits: uint64, + pub fpRelId: [Oid; 16usize], + pub fpVXIDLock: bool, + pub fpLocalTransactionId: LocalTransactionId, + pub lockGroupLeader: *mut PGPROC, + pub lockGroupMembers: dlist_head, + pub lockGroupLink: dlist_node, +} +impl Default for PGPROC { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut MyProc: *mut PGPROC; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PROC_HDR { + pub allProcs: *mut PGPROC, + pub xids: *mut TransactionId, + pub subxidStates: *mut XidCacheStatus, + pub statusFlags: *mut uint8, + pub allProcCount: uint32, + pub freeProcs: dlist_head, + pub autovacFreeProcs: dlist_head, + pub bgworkerFreeProcs: dlist_head, + pub walsenderFreeProcs: dlist_head, + pub procArrayGroupFirst: pg_atomic_uint32, + pub clogGroupFirst: pg_atomic_uint32, + pub walwriterLatch: *mut Latch, + pub checkpointerLatch: *mut Latch, + pub spins_per_delay: ::std::os::raw::c_int, + pub startupBufferPinWaitBufId: ::std::os::raw::c_int, +} +impl Default for PROC_HDR { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut ProcGlobal: *mut PROC_HDR; +} +extern "C" { + pub static mut PreparedXactProcs: *mut PGPROC; +} +extern "C" { + pub static mut DeadlockTimeout: ::std::os::raw::c_int; +} +extern "C" { + pub static mut StatementTimeout: ::std::os::raw::c_int; +} +extern "C" { + pub static mut LockTimeout: ::std::os::raw::c_int; +} +extern "C" { + pub static mut IdleInTransactionSessionTimeout: ::std::os::raw::c_int; +} +extern "C" { + pub static mut IdleSessionTimeout: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_lock_waits: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcGlobalSemas() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcGlobalShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitProcGlobal(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitProcess(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitProcessPhase2(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitAuxiliaryProcess(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetStartupBufferPinWaitBufId(bufid: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetStartupBufferPinWaitBufId() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HaveNFreeProcs(n: ::std::os::raw::c_int, nfree: *mut ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcReleaseLocks(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcSleep(locallock: *mut LOCALLOCK, lockMethodTable: LockMethod) -> ProcWaitStatus; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcWakeup(proc_: *mut PGPROC, waitStatus: ProcWaitStatus); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcLockWakeup(lockMethodTable: LockMethod, lock: *mut LOCK); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckDeadLockAlert(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsWaitingForLock() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockErrorCleanup(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcWaitForSignal(wait_event_info: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcSendSignal(pgprocno: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AuxiliaryPidGetProc(pid: ::std::os::raw::c_int) -> *mut PGPROC; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BecomeLockGroupLeader(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BecomeLockGroupMember(leader: *mut PGPROC, pid: ::std::os::raw::c_int) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct shm_mq { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct shm_mq_handle { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct shm_mq_iovec { + pub data: *const ::std::os::raw::c_char, + pub len: Size, +} +impl Default for shm_mq_iovec { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const shm_mq_result_SHM_MQ_SUCCESS: shm_mq_result = 0; +pub const shm_mq_result_SHM_MQ_WOULD_BLOCK: shm_mq_result = 1; +pub const shm_mq_result_SHM_MQ_DETACHED: shm_mq_result = 2; +pub type shm_mq_result = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_create(address: *mut ::std::os::raw::c_void, size: Size) -> *mut shm_mq; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_set_receiver(mq: *mut shm_mq, arg1: *mut PGPROC); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_set_sender(mq: *mut shm_mq, arg1: *mut PGPROC); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_get_receiver(arg1: *mut shm_mq) -> *mut PGPROC; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_get_sender(arg1: *mut shm_mq) -> *mut PGPROC; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_attach( + mq: *mut shm_mq, + seg: *mut dsm_segment, + handle: *mut BackgroundWorkerHandle, + ) -> *mut shm_mq_handle; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_set_handle(arg1: *mut shm_mq_handle, arg2: *mut BackgroundWorkerHandle); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_detach(mqh: *mut shm_mq_handle); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_get_queue(mqh: *mut shm_mq_handle) -> *mut shm_mq; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_send( + mqh: *mut shm_mq_handle, + nbytes: Size, + data: *const ::std::os::raw::c_void, + nowait: bool, + force_flush: bool, + ) -> shm_mq_result; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_sendv( + mqh: *mut shm_mq_handle, + iov: *mut shm_mq_iovec, + iovcnt: ::std::os::raw::c_int, + nowait: bool, + force_flush: bool, + ) -> shm_mq_result; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_receive( + mqh: *mut shm_mq_handle, + nbytesp: *mut Size, + datap: *mut *mut ::std::os::raw::c_void, + nowait: bool, + ) -> shm_mq_result; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shm_mq_wait_for_attach(mqh: *mut shm_mq_handle) -> shm_mq_result; +} +extern "C" { + pub static shm_mq_minimum_size: Size; +} +pub type parallel_worker_main_type = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParallelWorkerInfo { + pub bgwhandle: *mut BackgroundWorkerHandle, + pub error_mqh: *mut shm_mq_handle, + pub pid: int32, +} +impl Default for ParallelWorkerInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParallelContext { + pub node: dlist_node, + pub subid: SubTransactionId, + pub nworkers: ::std::os::raw::c_int, + pub nworkers_to_launch: ::std::os::raw::c_int, + pub nworkers_launched: ::std::os::raw::c_int, + pub library_name: *mut ::std::os::raw::c_char, + pub function_name: *mut ::std::os::raw::c_char, + pub error_context_stack: *mut ErrorContextCallback, + pub estimator: shm_toc_estimator, + pub seg: *mut dsm_segment, + pub private_memory: *mut ::std::os::raw::c_void, + pub toc: *mut shm_toc, + pub worker: *mut ParallelWorkerInfo, + pub nknown_attached_workers: ::std::os::raw::c_int, + pub known_attached_workers: *mut bool, +} +impl Default for ParallelContext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParallelWorkerContext { + pub seg: *mut dsm_segment, + pub toc: *mut shm_toc, +} +impl Default for ParallelWorkerContext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut ParallelMessagePending: sig_atomic_t; +} +extern "C" { + pub static mut ParallelWorkerNumber: ::std::os::raw::c_int; +} +extern "C" { + pub static mut InitializingParallelWorker: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateParallelContext( + library_name: *const ::std::os::raw::c_char, + function_name: *const ::std::os::raw::c_char, + nworkers: ::std::os::raw::c_int, + ) -> *mut ParallelContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeParallelDSM(pcxt: *mut ParallelContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReinitializeParallelDSM(pcxt: *mut ParallelContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReinitializeParallelWorkers( + pcxt: *mut ParallelContext, + nworkers_to_launch: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LaunchParallelWorkers(pcxt: *mut ParallelContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitForParallelWorkersToAttach(pcxt: *mut ParallelContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitForParallelWorkersToFinish(pcxt: *mut ParallelContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DestroyParallelContext(pcxt: *mut ParallelContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParallelContextActive() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HandleParallelMessageInterrupt(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HandleParallelMessages(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_Parallel(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOSubXact_Parallel(isCommit: bool, mySubId: SubTransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParallelWorkerReportLastRecEnd(last_xlog_end: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParallelWorkerMain(main_arg: Datum); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FormData_pg_statistic { + pub starelid: Oid, + pub staattnum: int16, + pub stainherit: bool, + pub stanullfrac: float4, + pub stawidth: int32, + pub stadistinct: float4, + pub stakind1: int16, + pub stakind2: int16, + pub stakind3: int16, + pub stakind4: int16, + pub stakind5: int16, + pub staop1: Oid, + pub staop2: Oid, + pub staop3: Oid, + pub staop4: Oid, + pub staop5: Oid, + pub stacoll1: Oid, + pub stacoll2: Oid, + pub stacoll3: Oid, + pub stacoll4: Oid, + pub stacoll5: Oid, +} +impl Default for FormData_pg_statistic { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type Form_pg_statistic = *mut FormData_pg_statistic; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParallelVacuumState { + _unused: [u8; 0], +} +pub type VacAttrStatsP = *mut VacAttrStats; +pub type AnalyzeAttrFetchFunc = ::std::option::Option< + unsafe extern "C" fn( + stats: VacAttrStatsP, + rownum: ::std::os::raw::c_int, + isNull: *mut bool, + ) -> Datum, +>; +pub type AnalyzeAttrComputeStatsFunc = ::std::option::Option< + unsafe extern "C" fn( + stats: VacAttrStatsP, + fetchfunc: AnalyzeAttrFetchFunc, + samplerows: ::std::os::raw::c_int, + totalrows: f64, + ), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct VacAttrStats { + pub attr: Form_pg_attribute, + pub attrtypid: Oid, + pub attrtypmod: int32, + pub attrtype: Form_pg_type, + pub attrcollid: Oid, + pub anl_context: MemoryContext, + pub compute_stats: AnalyzeAttrComputeStatsFunc, + pub minrows: ::std::os::raw::c_int, + pub extra_data: *mut ::std::os::raw::c_void, + pub stats_valid: bool, + pub stanullfrac: float4, + pub stawidth: int32, + pub stadistinct: float4, + pub stakind: [int16; 5usize], + pub staop: [Oid; 5usize], + pub stacoll: [Oid; 5usize], + pub numnumbers: [::std::os::raw::c_int; 5usize], + pub stanumbers: [*mut float4; 5usize], + pub numvalues: [::std::os::raw::c_int; 5usize], + pub stavalues: [*mut Datum; 5usize], + pub statypid: [Oid; 5usize], + pub statyplen: [int16; 5usize], + pub statypbyval: [bool; 5usize], + pub statypalign: [::std::os::raw::c_char; 5usize], + pub tupattnum: ::std::os::raw::c_int, + pub rows: *mut HeapTuple, + pub tupDesc: TupleDesc, + pub exprvals: *mut Datum, + pub exprnulls: *mut bool, + pub rowstride: ::std::os::raw::c_int, +} +impl Default for VacAttrStats { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const VacOptValue_VACOPTVALUE_UNSPECIFIED: VacOptValue = 0; +pub const VacOptValue_VACOPTVALUE_AUTO: VacOptValue = 1; +pub const VacOptValue_VACOPTVALUE_DISABLED: VacOptValue = 2; +pub const VacOptValue_VACOPTVALUE_ENABLED: VacOptValue = 3; +pub type VacOptValue = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct VacuumParams { + pub options: bits32, + pub freeze_min_age: ::std::os::raw::c_int, + pub freeze_table_age: ::std::os::raw::c_int, + pub multixact_freeze_min_age: ::std::os::raw::c_int, + pub multixact_freeze_table_age: ::std::os::raw::c_int, + pub is_wraparound: bool, + pub log_min_duration: ::std::os::raw::c_int, + pub index_cleanup: VacOptValue, + pub truncate: VacOptValue, + pub nworkers: ::std::os::raw::c_int, +} +impl Default for VacuumParams { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct VacuumCutoffs { + pub relfrozenxid: TransactionId, + pub relminmxid: MultiXactId, + pub OldestXmin: TransactionId, + pub OldestMxact: MultiXactId, + pub FreezeLimit: TransactionId, + pub MultiXactCutoff: MultiXactId, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct VacDeadItems { + pub max_items: ::std::os::raw::c_int, + pub num_items: ::std::os::raw::c_int, + pub items: __IncompleteArrayField, +} +extern "C" { + pub static mut default_statistics_target: ::std::os::raw::c_int; +} +extern "C" { + pub static mut vacuum_freeze_min_age: ::std::os::raw::c_int; +} +extern "C" { + pub static mut vacuum_freeze_table_age: ::std::os::raw::c_int; +} +extern "C" { + pub static mut vacuum_multixact_freeze_min_age: ::std::os::raw::c_int; +} +extern "C" { + pub static mut vacuum_multixact_freeze_table_age: ::std::os::raw::c_int; +} +extern "C" { + pub static mut vacuum_failsafe_age: ::std::os::raw::c_int; +} +extern "C" { + pub static mut vacuum_multixact_failsafe_age: ::std::os::raw::c_int; +} +extern "C" { + pub static mut VacuumSharedCostBalance: *mut pg_atomic_uint32; +} +extern "C" { + pub static mut VacuumActiveNWorkers: *mut pg_atomic_uint32; +} +extern "C" { + pub static mut VacuumCostBalanceLocal: ::std::os::raw::c_int; +} +extern "C" { + pub static mut VacuumFailsafeActive: bool; +} +extern "C" { + pub static mut vacuum_cost_delay: f64; +} +extern "C" { + pub static mut vacuum_cost_limit: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExecVacuum(pstate: *mut ParseState, vacstmt: *mut VacuumStmt, isTopLevel: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vacuum( + relations: *mut List, + params: *mut VacuumParams, + bstrategy: BufferAccessStrategy, + vac_context: MemoryContext, + isTopLevel: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vac_open_indexes( + relation: Relation, + lockmode: LOCKMODE, + nindexes: *mut ::std::os::raw::c_int, + Irel: *mut *mut Relation, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vac_close_indexes( + nindexes: ::std::os::raw::c_int, + Irel: *mut Relation, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vac_estimate_reltuples( + relation: Relation, + total_pages: BlockNumber, + scanned_pages: BlockNumber, + scanned_tuples: f64, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vac_update_relstats( + relation: Relation, + num_pages: BlockNumber, + num_tuples: f64, + num_all_visible_pages: BlockNumber, + hasindex: bool, + frozenxid: TransactionId, + minmulti: MultiXactId, + frozenxid_updated: *mut bool, + minmulti_updated: *mut bool, + in_outer_xact: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vacuum_get_cutoffs( + rel: Relation, + params: *const VacuumParams, + cutoffs: *mut VacuumCutoffs, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vacuum_xid_failsafe_check(cutoffs: *const VacuumCutoffs) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vac_update_datfrozenxid(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vacuum_delay_point(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vacuum_is_permitted_for_relation( + relid: Oid, + reltuple: Form_pg_class, + options: bits32, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vacuum_open_relation( + relid: Oid, + relation: *mut RangeVar, + options: bits32, + verbose: bool, + lmode: LOCKMODE, + ) -> Relation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vac_bulkdel_one_index( + ivinfo: *mut IndexVacuumInfo, + istat: *mut IndexBulkDeleteResult, + dead_items: *mut VacDeadItems, + ) -> *mut IndexBulkDeleteResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vac_cleanup_one_index( + ivinfo: *mut IndexVacuumInfo, + istat: *mut IndexBulkDeleteResult, + ) -> *mut IndexBulkDeleteResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn vac_max_items_to_alloc_size(max_items: ::std::os::raw::c_int) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AutoVacuumUpdateCostLimit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn VacuumUpdateCosts(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parallel_vacuum_init( + rel: Relation, + indrels: *mut Relation, + nindexes: ::std::os::raw::c_int, + nrequested_workers: ::std::os::raw::c_int, + max_items: ::std::os::raw::c_int, + elevel: ::std::os::raw::c_int, + bstrategy: BufferAccessStrategy, + ) -> *mut ParallelVacuumState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parallel_vacuum_end( + pvs: *mut ParallelVacuumState, + istats: *mut *mut IndexBulkDeleteResult, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parallel_vacuum_get_dead_items(pvs: *mut ParallelVacuumState) -> *mut VacDeadItems; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parallel_vacuum_bulkdel_all_indexes( + pvs: *mut ParallelVacuumState, + num_table_tuples: ::std::os::raw::c_long, + num_index_scans: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parallel_vacuum_cleanup_all_indexes( + pvs: *mut ParallelVacuumState, + num_table_tuples: ::std::os::raw::c_long, + num_index_scans: ::std::os::raw::c_int, + estimated_count: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parallel_vacuum_main(seg: *mut dsm_segment, toc: *mut shm_toc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn analyze_rel( + relid: Oid, + relation: *mut RangeVar, + params: *mut VacuumParams, + va_cols: *mut List, + in_outer_xact: bool, + bstrategy: BufferAccessStrategy, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn std_typanalyze(stats: *mut VacAttrStats) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anl_random_fract() -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anl_init_selection_state(n: ::std::os::raw::c_int) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anl_get_next_S(t: f64, n: ::std::os::raw::c_int, stateptr: *mut f64) -> f64; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ConfigData { + pub name: *mut ::std::os::raw::c_char, + pub setting: *mut ::std::os::raw::c_char, +} +impl Default for ConfigData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_configdata( + my_exec_path: *const ::std::os::raw::c_char, + configdata_len: *mut usize, + ) -> *mut ConfigData; +} +pub const RawParseMode_RAW_PARSE_DEFAULT: RawParseMode = 0; +pub const RawParseMode_RAW_PARSE_TYPE_NAME: RawParseMode = 1; +pub const RawParseMode_RAW_PARSE_PLPGSQL_EXPR: RawParseMode = 2; +pub const RawParseMode_RAW_PARSE_PLPGSQL_ASSIGN1: RawParseMode = 3; +pub const RawParseMode_RAW_PARSE_PLPGSQL_ASSIGN2: RawParseMode = 4; +pub const RawParseMode_RAW_PARSE_PLPGSQL_ASSIGN3: RawParseMode = 5; +pub type RawParseMode = ::std::os::raw::c_uint; +pub const BackslashQuoteType_BACKSLASH_QUOTE_OFF: BackslashQuoteType = 0; +pub const BackslashQuoteType_BACKSLASH_QUOTE_ON: BackslashQuoteType = 1; +pub const BackslashQuoteType_BACKSLASH_QUOTE_SAFE_ENCODING: BackslashQuoteType = 2; +pub type BackslashQuoteType = ::std::os::raw::c_uint; +extern "C" { + pub static mut backslash_quote: ::std::os::raw::c_int; +} +extern "C" { + pub static mut escape_string_warning: bool; +} +extern "C" { + pub static mut standard_conforming_strings: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn raw_parser(str_: *const ::std::os::raw::c_char, mode: RawParseMode) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SystemFuncName(name: *mut ::std::os::raw::c_char) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SystemTypeName(name: *mut ::std::os::raw::c_char) -> *mut TypeName; +} +pub type ResourceOwner = *mut ResourceOwnerData; +extern "C" { + pub static mut CurrentResourceOwner: ResourceOwner; +} +extern "C" { + pub static mut CurTransactionResourceOwner: ResourceOwner; +} +extern "C" { + pub static mut TopTransactionResourceOwner: ResourceOwner; +} +extern "C" { + pub static mut AuxProcessResourceOwner: ResourceOwner; +} +pub const ResourceReleasePhase_RESOURCE_RELEASE_BEFORE_LOCKS: ResourceReleasePhase = 0; +pub const ResourceReleasePhase_RESOURCE_RELEASE_LOCKS: ResourceReleasePhase = 1; +pub const ResourceReleasePhase_RESOURCE_RELEASE_AFTER_LOCKS: ResourceReleasePhase = 2; +pub type ResourceReleasePhase = ::std::os::raw::c_uint; +pub type ResourceReleaseCallback = ::std::option::Option< + unsafe extern "C" fn( + phase: ResourceReleasePhase, + isCommit: bool, + isTopLevel: bool, + arg: *mut ::std::os::raw::c_void, + ), +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResourceOwnerCreate( + parent: ResourceOwner, + name: *const ::std::os::raw::c_char, + ) -> ResourceOwner; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResourceOwnerRelease( + owner: ResourceOwner, + phase: ResourceReleasePhase, + isCommit: bool, + isTopLevel: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResourceOwnerReleaseAllPlanCacheRefs(owner: ResourceOwner); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResourceOwnerDelete(owner: ResourceOwner); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResourceOwnerGetParent(owner: ResourceOwner) -> ResourceOwner; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResourceOwnerNewParent(owner: ResourceOwner, newparent: ResourceOwner); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterResourceReleaseCallback( + callback: ResourceReleaseCallback, + arg: *mut ::std::os::raw::c_void, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnregisterResourceReleaseCallback( + callback: ResourceReleaseCallback, + arg: *mut ::std::os::raw::c_void, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateAuxProcessResourceOwner(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseAuxProcessResources(isCommit: bool); +} +pub const PlanCacheMode_PLAN_CACHE_MODE_AUTO: PlanCacheMode = 0; +pub const PlanCacheMode_PLAN_CACHE_MODE_FORCE_GENERIC_PLAN: PlanCacheMode = 1; +pub const PlanCacheMode_PLAN_CACHE_MODE_FORCE_CUSTOM_PLAN: PlanCacheMode = 2; +pub type PlanCacheMode = ::std::os::raw::c_uint; +extern "C" { + pub static mut plan_cache_mode: ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CachedPlanSource { + pub magic: ::std::os::raw::c_int, + pub raw_parse_tree: *mut RawStmt, + pub query_string: *const ::std::os::raw::c_char, + pub commandTag: CommandTag, + pub param_types: *mut Oid, + pub num_params: ::std::os::raw::c_int, + pub parserSetup: ParserSetupHook, + pub parserSetupArg: *mut ::std::os::raw::c_void, + pub cursor_options: ::std::os::raw::c_int, + pub fixed_result: bool, + pub resultDesc: TupleDesc, + pub context: MemoryContext, + pub query_list: *mut List, + pub relationOids: *mut List, + pub invalItems: *mut List, + pub search_path: *mut OverrideSearchPath, + pub query_context: MemoryContext, + pub rewriteRoleId: Oid, + pub rewriteRowSecurity: bool, + pub dependsOnRLS: bool, + pub gplan: *mut CachedPlan, + pub is_oneshot: bool, + pub is_complete: bool, + pub is_saved: bool, + pub is_valid: bool, + pub generation: ::std::os::raw::c_int, + pub node: dlist_node, + pub generic_cost: f64, + pub total_custom_cost: f64, + pub num_custom_plans: int64, + pub num_generic_plans: int64, +} +impl Default for CachedPlanSource { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CachedPlan { + pub magic: ::std::os::raw::c_int, + pub stmt_list: *mut List, + pub is_oneshot: bool, + pub is_saved: bool, + pub is_valid: bool, + pub planRoleId: Oid, + pub dependsOnRole: bool, + pub saved_xmin: TransactionId, + pub generation: ::std::os::raw::c_int, + pub refcount: ::std::os::raw::c_int, + pub context: MemoryContext, +} +impl Default for CachedPlan { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CachedExpression { + pub magic: ::std::os::raw::c_int, + pub expr: *mut Node, + pub is_valid: bool, + pub relationOids: *mut List, + pub invalItems: *mut List, + pub context: MemoryContext, + pub node: dlist_node, +} +impl Default for CachedExpression { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitPlanCache(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResetPlanCache(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateCachedPlan( + raw_parse_tree: *mut RawStmt, + query_string: *const ::std::os::raw::c_char, + commandTag: CommandTag, + ) -> *mut CachedPlanSource; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateOneShotCachedPlan( + raw_parse_tree: *mut RawStmt, + query_string: *const ::std::os::raw::c_char, + commandTag: CommandTag, + ) -> *mut CachedPlanSource; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CompleteCachedPlan( + plansource: *mut CachedPlanSource, + querytree_list: *mut List, + querytree_context: MemoryContext, + param_types: *mut Oid, + num_params: ::std::os::raw::c_int, + parserSetup: ParserSetupHook, + parserSetupArg: *mut ::std::os::raw::c_void, + cursor_options: ::std::os::raw::c_int, + fixed_result: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SaveCachedPlan(plansource: *mut CachedPlanSource); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DropCachedPlan(plansource: *mut CachedPlanSource); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CachedPlanSetParentContext(plansource: *mut CachedPlanSource, newcontext: MemoryContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CopyCachedPlan(plansource: *mut CachedPlanSource) -> *mut CachedPlanSource; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CachedPlanIsValid(plansource: *mut CachedPlanSource) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CachedPlanGetTargetList( + plansource: *mut CachedPlanSource, + queryEnv: *mut QueryEnvironment, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCachedPlan( + plansource: *mut CachedPlanSource, + boundParams: ParamListInfo, + owner: ResourceOwner, + queryEnv: *mut QueryEnvironment, + ) -> *mut CachedPlan; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseCachedPlan(plan: *mut CachedPlan, owner: ResourceOwner); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CachedPlanAllowsSimpleValidityCheck( + plansource: *mut CachedPlanSource, + plan: *mut CachedPlan, + owner: ResourceOwner, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CachedPlanIsSimplyValid( + plansource: *mut CachedPlanSource, + plan: *mut CachedPlan, + owner: ResourceOwner, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCachedExpression(expr: *mut Node) -> *mut CachedExpression; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeCachedExpression(cexpr: *mut CachedExpression); +} +pub const PortalStrategy_PORTAL_ONE_SELECT: PortalStrategy = 0; +pub const PortalStrategy_PORTAL_ONE_RETURNING: PortalStrategy = 1; +pub const PortalStrategy_PORTAL_ONE_MOD_WITH: PortalStrategy = 2; +pub const PortalStrategy_PORTAL_UTIL_SELECT: PortalStrategy = 3; +pub const PortalStrategy_PORTAL_MULTI_QUERY: PortalStrategy = 4; +pub type PortalStrategy = ::std::os::raw::c_uint; +pub const PortalStatus_PORTAL_NEW: PortalStatus = 0; +pub const PortalStatus_PORTAL_DEFINED: PortalStatus = 1; +pub const PortalStatus_PORTAL_READY: PortalStatus = 2; +pub const PortalStatus_PORTAL_ACTIVE: PortalStatus = 3; +pub const PortalStatus_PORTAL_DONE: PortalStatus = 4; +pub const PortalStatus_PORTAL_FAILED: PortalStatus = 5; +pub type PortalStatus = ::std::os::raw::c_uint; +pub type Portal = *mut PortalData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PortalData { + pub name: *const ::std::os::raw::c_char, + pub prepStmtName: *const ::std::os::raw::c_char, + pub portalContext: MemoryContext, + pub resowner: ResourceOwner, + pub cleanup: ::std::option::Option, + pub createSubid: SubTransactionId, + pub activeSubid: SubTransactionId, + pub createLevel: ::std::os::raw::c_int, + pub sourceText: *const ::std::os::raw::c_char, + pub commandTag: CommandTag, + pub qc: QueryCompletion, + pub stmts: *mut List, + pub cplan: *mut CachedPlan, + pub portalParams: ParamListInfo, + pub queryEnv: *mut QueryEnvironment, + pub strategy: PortalStrategy, + pub cursorOptions: ::std::os::raw::c_int, + pub run_once: bool, + pub status: PortalStatus, + pub portalPinned: bool, + pub autoHeld: bool, + pub queryDesc: *mut QueryDesc, + pub tupDesc: TupleDesc, + pub formats: *mut int16, + pub portalSnapshot: Snapshot, + pub holdStore: *mut Tuplestorestate, + pub holdContext: MemoryContext, + pub holdSnapshot: Snapshot, + pub atStart: bool, + pub atEnd: bool, + pub portalPos: uint64, + pub creation_time: TimestampTz, + pub visible: bool, +} +impl Default for PortalData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EnablePortalManager(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PreCommit_Portals(isPrepare: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtAbort_Portals(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtCleanup_Portals(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PortalErrorCleanup(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtSubCommit_Portals( + mySubid: SubTransactionId, + parentSubid: SubTransactionId, + parentLevel: ::std::os::raw::c_int, + parentXactOwner: ResourceOwner, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtSubAbort_Portals( + mySubid: SubTransactionId, + parentSubid: SubTransactionId, + myXactOwner: ResourceOwner, + parentXactOwner: ResourceOwner, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtSubCleanup_Portals(mySubid: SubTransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreatePortal( + name: *const ::std::os::raw::c_char, + allowDup: bool, + dupSilent: bool, + ) -> Portal; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateNewPortal() -> Portal; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PinPortal(portal: Portal); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnpinPortal(portal: Portal); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MarkPortalActive(portal: Portal); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MarkPortalDone(portal: Portal); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MarkPortalFailed(portal: Portal); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PortalDrop(portal: Portal, isTopCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetPortalByName(name: *const ::std::os::raw::c_char) -> Portal; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PortalDefineQuery( + portal: Portal, + prepStmtName: *const ::std::os::raw::c_char, + sourceText: *const ::std::os::raw::c_char, + commandTag: CommandTag, + stmts: *mut List, + cplan: *mut CachedPlan, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PortalGetPrimaryStmt(portal: Portal) -> *mut PlannedStmt; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PortalCreateHoldStore(portal: Portal); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PortalHashTableDeleteAll(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ThereAreNoReadyPortals() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HoldPinnedPortals(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ForgetPortalSnapshots(); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SPITupleTable { + pub tupdesc: TupleDesc, + pub vals: *mut HeapTuple, + pub numvals: uint64, + pub alloced: uint64, + pub tuptabcxt: MemoryContext, + pub next: slist_node, + pub subid: SubTransactionId, +} +impl Default for SPITupleTable { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SPIPrepareOptions { + pub parserSetup: ParserSetupHook, + pub parserSetupArg: *mut ::std::os::raw::c_void, + pub parseMode: RawParseMode, + pub cursorOptions: ::std::os::raw::c_int, +} +impl Default for SPIPrepareOptions { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SPIExecuteOptions { + pub params: ParamListInfo, + pub read_only: bool, + pub allow_nonatomic: bool, + pub must_return_tuples: bool, + pub tcount: uint64, + pub dest: *mut DestReceiver, + pub owner: ResourceOwner, +} +impl Default for SPIExecuteOptions { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SPIParseOpenOptions { + pub params: ParamListInfo, + pub cursorOptions: ::std::os::raw::c_int, + pub read_only: bool, +} +impl Default for SPIParseOpenOptions { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SPI_plan { + _unused: [u8; 0], +} +pub type SPIPlanPtr = *mut _SPI_plan; +extern "C" { + pub static mut SPI_processed: uint64; +} +extern "C" { + pub static mut SPI_tuptable: *mut SPITupleTable; +} +extern "C" { + pub static mut SPI_result: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_connect() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_connect_ext(options: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_finish() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_execute( + src: *const ::std::os::raw::c_char, + read_only: bool, + tcount: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_execute_extended( + src: *const ::std::os::raw::c_char, + options: *const SPIExecuteOptions, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_execute_plan( + plan: SPIPlanPtr, + Values: *mut Datum, + Nulls: *const ::std::os::raw::c_char, + read_only: bool, + tcount: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_execute_plan_extended( + plan: SPIPlanPtr, + options: *const SPIExecuteOptions, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_execute_plan_with_paramlist( + plan: SPIPlanPtr, + params: ParamListInfo, + read_only: bool, + tcount: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_exec( + src: *const ::std::os::raw::c_char, + tcount: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_execp( + plan: SPIPlanPtr, + Values: *mut Datum, + Nulls: *const ::std::os::raw::c_char, + tcount: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_execute_snapshot( + plan: SPIPlanPtr, + Values: *mut Datum, + Nulls: *const ::std::os::raw::c_char, + snapshot: Snapshot, + crosscheck_snapshot: Snapshot, + read_only: bool, + fire_triggers: bool, + tcount: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_execute_with_args( + src: *const ::std::os::raw::c_char, + nargs: ::std::os::raw::c_int, + argtypes: *mut Oid, + Values: *mut Datum, + Nulls: *const ::std::os::raw::c_char, + read_only: bool, + tcount: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_prepare( + src: *const ::std::os::raw::c_char, + nargs: ::std::os::raw::c_int, + argtypes: *mut Oid, + ) -> SPIPlanPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_prepare_cursor( + src: *const ::std::os::raw::c_char, + nargs: ::std::os::raw::c_int, + argtypes: *mut Oid, + cursorOptions: ::std::os::raw::c_int, + ) -> SPIPlanPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_prepare_extended( + src: *const ::std::os::raw::c_char, + options: *const SPIPrepareOptions, + ) -> SPIPlanPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_prepare_params( + src: *const ::std::os::raw::c_char, + parserSetup: ParserSetupHook, + parserSetupArg: *mut ::std::os::raw::c_void, + cursorOptions: ::std::os::raw::c_int, + ) -> SPIPlanPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_keepplan(plan: SPIPlanPtr) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_saveplan(plan: SPIPlanPtr) -> SPIPlanPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_freeplan(plan: SPIPlanPtr) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_getargtypeid(plan: SPIPlanPtr, argIndex: ::std::os::raw::c_int) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_getargcount(plan: SPIPlanPtr) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_is_cursor_plan(plan: SPIPlanPtr) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_plan_is_valid(plan: SPIPlanPtr) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_result_code_string(code: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_plan_get_plan_sources(plan: SPIPlanPtr) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_plan_get_cached_plan(plan: SPIPlanPtr) -> *mut CachedPlan; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_copytuple(tuple: HeapTuple) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_returntuple(tuple: HeapTuple, tupdesc: TupleDesc) -> HeapTupleHeader; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_modifytuple( + rel: Relation, + tuple: HeapTuple, + natts: ::std::os::raw::c_int, + attnum: *mut ::std::os::raw::c_int, + Values: *mut Datum, + Nulls: *const ::std::os::raw::c_char, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_fnumber( + tupdesc: TupleDesc, + fname: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_fname( + tupdesc: TupleDesc, + fnumber: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_getvalue( + tuple: HeapTuple, + tupdesc: TupleDesc, + fnumber: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_getbinval( + tuple: HeapTuple, + tupdesc: TupleDesc, + fnumber: ::std::os::raw::c_int, + isnull: *mut bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_gettype( + tupdesc: TupleDesc, + fnumber: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_gettypeid(tupdesc: TupleDesc, fnumber: ::std::os::raw::c_int) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_getrelname(rel: Relation) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_getnspname(rel: Relation) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_palloc(size: Size) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_repalloc( + pointer: *mut ::std::os::raw::c_void, + size: Size, + ) -> *mut ::std::os::raw::c_void; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_pfree(pointer: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_datumTransfer(value: Datum, typByVal: bool, typLen: ::std::os::raw::c_int) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_freetuple(tuple: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_freetuptable(tuptable: *mut SPITupleTable); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_cursor_open( + name: *const ::std::os::raw::c_char, + plan: SPIPlanPtr, + Values: *mut Datum, + Nulls: *const ::std::os::raw::c_char, + read_only: bool, + ) -> Portal; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_cursor_open_with_args( + name: *const ::std::os::raw::c_char, + src: *const ::std::os::raw::c_char, + nargs: ::std::os::raw::c_int, + argtypes: *mut Oid, + Values: *mut Datum, + Nulls: *const ::std::os::raw::c_char, + read_only: bool, + cursorOptions: ::std::os::raw::c_int, + ) -> Portal; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_cursor_open_with_paramlist( + name: *const ::std::os::raw::c_char, + plan: SPIPlanPtr, + params: ParamListInfo, + read_only: bool, + ) -> Portal; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_cursor_parse_open( + name: *const ::std::os::raw::c_char, + src: *const ::std::os::raw::c_char, + options: *const SPIParseOpenOptions, + ) -> Portal; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_cursor_find(name: *const ::std::os::raw::c_char) -> Portal; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_cursor_fetch(portal: Portal, forward: bool, count: ::std::os::raw::c_long); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_cursor_move(portal: Portal, forward: bool, count: ::std::os::raw::c_long); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_scroll_cursor_fetch( + arg1: Portal, + direction: FetchDirection, + count: ::std::os::raw::c_long, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_scroll_cursor_move( + arg1: Portal, + direction: FetchDirection, + count: ::std::os::raw::c_long, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_cursor_close(portal: Portal); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_register_relation(enr: EphemeralNamedRelation) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_unregister_relation(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_register_trigger_data(tdata: *mut TriggerData) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_start_transaction(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_commit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_commit_and_chain(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_rollback(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_rollback_and_chain(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_SPI(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOSubXact_SPI(isCommit: bool, mySubid: SubTransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SPI_inside_nonatomic_context() -> bool; +} +pub type Relids = *mut Bitmapset; +pub const CostSelector_STARTUP_COST: CostSelector = 0; +pub const CostSelector_TOTAL_COST: CostSelector = 1; +pub type CostSelector = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct QualCost { + pub startup: Cost, + pub per_tuple: Cost, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct AggClauseCosts { + pub transCost: QualCost, + pub finalCost: QualCost, + pub transitionSpace: Size, +} +pub const UpperRelationKind_UPPERREL_SETOP: UpperRelationKind = 0; +pub const UpperRelationKind_UPPERREL_PARTIAL_GROUP_AGG: UpperRelationKind = 1; +pub const UpperRelationKind_UPPERREL_GROUP_AGG: UpperRelationKind = 2; +pub const UpperRelationKind_UPPERREL_WINDOW: UpperRelationKind = 3; +pub const UpperRelationKind_UPPERREL_PARTIAL_DISTINCT: UpperRelationKind = 4; +pub const UpperRelationKind_UPPERREL_DISTINCT: UpperRelationKind = 5; +pub const UpperRelationKind_UPPERREL_ORDERED: UpperRelationKind = 6; +pub const UpperRelationKind_UPPERREL_FINAL: UpperRelationKind = 7; +pub type UpperRelationKind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PlannerGlobal { + pub type_: NodeTag, + pub boundParams: ParamListInfo, + pub subplans: *mut List, + pub subroots: *mut List, + pub rewindPlanIDs: *mut Bitmapset, + pub finalrtable: *mut List, + pub finalrteperminfos: *mut List, + pub finalrowmarks: *mut List, + pub resultRelations: *mut List, + pub appendRelations: *mut List, + pub relationOids: *mut List, + pub invalItems: *mut List, + pub paramExecTypes: *mut List, + pub lastPHId: Index, + pub lastRowMarkId: Index, + pub lastPlanNodeId: ::std::os::raw::c_int, + pub transientPlan: bool, + pub dependsOnRole: bool, + pub parallelModeOK: bool, + pub parallelModeNeeded: bool, + pub maxParallelHazard: ::std::os::raw::c_char, + pub partition_directory: PartitionDirectory, +} +impl Default for PlannerGlobal { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PlannerInfo { + pub type_: NodeTag, + pub parse: *mut Query, + pub glob: *mut PlannerGlobal, + pub query_level: Index, + pub parent_root: *mut PlannerInfo, + pub plan_params: *mut List, + pub outer_params: *mut Bitmapset, + pub simple_rel_array: *mut *mut RelOptInfo, + pub simple_rel_array_size: ::std::os::raw::c_int, + pub simple_rte_array: *mut *mut RangeTblEntry, + pub append_rel_array: *mut *mut AppendRelInfo, + pub all_baserels: Relids, + pub outer_join_rels: Relids, + pub all_query_rels: Relids, + pub join_rel_list: *mut List, + pub join_rel_hash: *mut HTAB, + pub join_rel_level: *mut *mut List, + pub join_cur_level: ::std::os::raw::c_int, + pub init_plans: *mut List, + pub cte_plan_ids: *mut List, + pub multiexpr_params: *mut List, + pub join_domains: *mut List, + pub eq_classes: *mut List, + pub ec_merging_done: bool, + pub canon_pathkeys: *mut List, + pub left_join_clauses: *mut List, + pub right_join_clauses: *mut List, + pub full_join_clauses: *mut List, + pub join_info_list: *mut List, + pub last_rinfo_serial: ::std::os::raw::c_int, + pub all_result_relids: Relids, + pub leaf_result_relids: Relids, + pub append_rel_list: *mut List, + pub row_identity_vars: *mut List, + pub rowMarks: *mut List, + pub placeholder_list: *mut List, + pub placeholder_array: *mut *mut PlaceHolderInfo, + pub placeholder_array_size: ::std::os::raw::c_int, + pub fkey_list: *mut List, + pub query_pathkeys: *mut List, + pub group_pathkeys: *mut List, + pub num_groupby_pathkeys: ::std::os::raw::c_int, + pub window_pathkeys: *mut List, + pub distinct_pathkeys: *mut List, + pub sort_pathkeys: *mut List, + pub part_schemes: *mut List, + pub initial_rels: *mut List, + pub upper_rels: [*mut List; 8usize], + pub upper_targets: [*mut PathTarget; 8usize], + pub processed_groupClause: *mut List, + pub processed_distinctClause: *mut List, + pub processed_tlist: *mut List, + pub update_colnos: *mut List, + pub grouping_map: *mut AttrNumber, + pub minmax_aggs: *mut List, + pub planner_cxt: MemoryContext, + pub total_table_pages: Cardinality, + pub tuple_fraction: Selectivity, + pub limit_tuples: Cardinality, + pub qual_security_level: Index, + pub hasJoinRTEs: bool, + pub hasLateralRTEs: bool, + pub hasHavingQual: bool, + pub hasPseudoConstantQuals: bool, + pub hasAlternativeSubPlans: bool, + pub placeholdersFrozen: bool, + pub hasRecursion: bool, + pub agginfos: *mut List, + pub aggtransinfos: *mut List, + pub numOrderedAggs: ::std::os::raw::c_int, + pub hasNonPartialAggs: bool, + pub hasNonSerialAggs: bool, + pub wt_param_id: ::std::os::raw::c_int, + pub non_recursive_path: *mut Path, + pub curOuterRels: Relids, + pub curOuterParams: *mut List, + pub isAltSubplan: *mut bool, + pub isUsedSubplan: *mut bool, + pub join_search_private: *mut ::std::os::raw::c_void, + pub partColsUpdated: bool, +} +impl Default for PlannerInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PartitionSchemeData { + pub strategy: ::std::os::raw::c_char, + pub partnatts: int16, + pub partopfamily: *mut Oid, + pub partopcintype: *mut Oid, + pub partcollation: *mut Oid, + pub parttyplen: *mut int16, + pub parttypbyval: *mut bool, + pub partsupfunc: *mut FmgrInfo, +} +impl Default for PartitionSchemeData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type PartitionScheme = *mut PartitionSchemeData; +pub const RelOptKind_RELOPT_BASEREL: RelOptKind = 0; +pub const RelOptKind_RELOPT_JOINREL: RelOptKind = 1; +pub const RelOptKind_RELOPT_OTHER_MEMBER_REL: RelOptKind = 2; +pub const RelOptKind_RELOPT_OTHER_JOINREL: RelOptKind = 3; +pub const RelOptKind_RELOPT_UPPER_REL: RelOptKind = 4; +pub const RelOptKind_RELOPT_OTHER_UPPER_REL: RelOptKind = 5; +pub type RelOptKind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RelOptInfo { + pub type_: NodeTag, + pub reloptkind: RelOptKind, + pub relids: Relids, + pub rows: Cardinality, + pub consider_startup: bool, + pub consider_param_startup: bool, + pub consider_parallel: bool, + pub reltarget: *mut PathTarget, + pub pathlist: *mut List, + pub ppilist: *mut List, + pub partial_pathlist: *mut List, + pub cheapest_startup_path: *mut Path, + pub cheapest_total_path: *mut Path, + pub cheapest_unique_path: *mut Path, + pub cheapest_parameterized_paths: *mut List, + pub direct_lateral_relids: Relids, + pub lateral_relids: Relids, + pub relid: Index, + pub reltablespace: Oid, + pub rtekind: RTEKind, + pub min_attr: AttrNumber, + pub max_attr: AttrNumber, + pub attr_needed: *mut Relids, + pub attr_widths: *mut int32, + pub nulling_relids: Relids, + pub lateral_vars: *mut List, + pub lateral_referencers: Relids, + pub indexlist: *mut List, + pub statlist: *mut List, + pub pages: BlockNumber, + pub tuples: Cardinality, + pub allvisfrac: f64, + pub eclass_indexes: *mut Bitmapset, + pub subroot: *mut PlannerInfo, + pub subplan_params: *mut List, + pub rel_parallel_workers: ::std::os::raw::c_int, + pub amflags: uint32, + pub serverid: Oid, + pub userid: Oid, + pub useridiscurrent: bool, + pub fdwroutine: *mut FdwRoutine, + pub fdw_private: *mut ::std::os::raw::c_void, + pub unique_for_rels: *mut List, + pub non_unique_for_rels: *mut List, + pub baserestrictinfo: *mut List, + pub baserestrictcost: QualCost, + pub baserestrict_min_security: Index, + pub joininfo: *mut List, + pub has_eclass_joins: bool, + pub consider_partitionwise_join: bool, + pub parent: *mut RelOptInfo, + pub top_parent: *mut RelOptInfo, + pub top_parent_relids: Relids, + pub part_scheme: PartitionScheme, + pub nparts: ::std::os::raw::c_int, + pub boundinfo: *mut PartitionBoundInfoData, + pub partbounds_merged: bool, + pub partition_qual: *mut List, + pub part_rels: *mut *mut RelOptInfo, + pub live_parts: *mut Bitmapset, + pub all_partrels: Relids, + pub partexprs: *mut *mut List, + pub nullable_partexprs: *mut *mut List, +} +impl Default for RelOptInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexOptInfo { + pub type_: NodeTag, + pub indexoid: Oid, + pub reltablespace: Oid, + pub rel: *mut RelOptInfo, + pub pages: BlockNumber, + pub tuples: Cardinality, + pub tree_height: ::std::os::raw::c_int, + pub ncolumns: ::std::os::raw::c_int, + pub nkeycolumns: ::std::os::raw::c_int, + pub indexkeys: *mut ::std::os::raw::c_int, + pub indexcollations: *mut Oid, + pub opfamily: *mut Oid, + pub opcintype: *mut Oid, + pub sortopfamily: *mut Oid, + pub reverse_sort: *mut bool, + pub nulls_first: *mut bool, + pub opclassoptions: *mut *mut bytea, + pub canreturn: *mut bool, + pub relam: Oid, + pub indexprs: *mut List, + pub indpred: *mut List, + pub indextlist: *mut List, + pub indrestrictinfo: *mut List, + pub predOK: bool, + pub unique: bool, + pub immediate: bool, + pub hypothetical: bool, + pub amcanorderbyop: bool, + pub amoptionalkey: bool, + pub amsearcharray: bool, + pub amsearchnulls: bool, + pub amhasgettuple: bool, + pub amhasgetbitmap: bool, + pub amcanparallel: bool, + pub amcanmarkpos: bool, + pub amcostestimate: ::std::option::Option, +} +impl Default for IndexOptInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForeignKeyOptInfo { + pub type_: NodeTag, + pub con_relid: Index, + pub ref_relid: Index, + pub nkeys: ::std::os::raw::c_int, + pub conkey: [AttrNumber; 32usize], + pub confkey: [AttrNumber; 32usize], + pub conpfeqop: [Oid; 32usize], + pub nmatched_ec: ::std::os::raw::c_int, + pub nconst_ec: ::std::os::raw::c_int, + pub nmatched_rcols: ::std::os::raw::c_int, + pub nmatched_ri: ::std::os::raw::c_int, + pub eclass: [*mut EquivalenceClass; 32usize], + pub fk_eclass_member: [*mut EquivalenceMember; 32usize], + pub rinfos: [*mut List; 32usize], +} +impl Default for ForeignKeyOptInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StatisticExtInfo { + pub type_: NodeTag, + pub statOid: Oid, + pub inherit: bool, + pub rel: *mut RelOptInfo, + pub kind: ::std::os::raw::c_char, + pub keys: *mut Bitmapset, + pub exprs: *mut List, +} +impl Default for StatisticExtInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JoinDomain { + pub type_: NodeTag, + pub jd_relids: Relids, +} +impl Default for JoinDomain { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct EquivalenceClass { + pub type_: NodeTag, + pub ec_opfamilies: *mut List, + pub ec_collation: Oid, + pub ec_members: *mut List, + pub ec_sources: *mut List, + pub ec_derives: *mut List, + pub ec_relids: Relids, + pub ec_has_const: bool, + pub ec_has_volatile: bool, + pub ec_broken: bool, + pub ec_sortref: Index, + pub ec_min_security: Index, + pub ec_max_security: Index, + pub ec_merged: *mut EquivalenceClass, +} +impl Default for EquivalenceClass { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct EquivalenceMember { + pub type_: NodeTag, + pub em_expr: *mut Expr, + pub em_relids: Relids, + pub em_is_const: bool, + pub em_is_child: bool, + pub em_datatype: Oid, + pub em_jdomain: *mut JoinDomain, + pub em_parent: *mut EquivalenceMember, +} +impl Default for EquivalenceMember { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PathKey { + pub type_: NodeTag, + pub pk_eclass: *mut EquivalenceClass, + pub pk_opfamily: Oid, + pub pk_strategy: ::std::os::raw::c_int, + pub pk_nulls_first: bool, +} +impl Default for PathKey { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const VolatileFunctionStatus_VOLATILITY_UNKNOWN: VolatileFunctionStatus = 0; +pub const VolatileFunctionStatus_VOLATILITY_VOLATILE: VolatileFunctionStatus = 1; +pub const VolatileFunctionStatus_VOLATILITY_NOVOLATILE: VolatileFunctionStatus = 2; +pub type VolatileFunctionStatus = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PathTarget { + pub type_: NodeTag, + pub exprs: *mut List, + pub sortgrouprefs: *mut Index, + pub cost: QualCost, + pub width: ::std::os::raw::c_int, + pub has_volatile_expr: VolatileFunctionStatus, +} +impl Default for PathTarget { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParamPathInfo { + pub type_: NodeTag, + pub ppi_req_outer: Relids, + pub ppi_rows: Cardinality, + pub ppi_clauses: *mut List, + pub ppi_serials: *mut Bitmapset, +} +impl Default for ParamPathInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Path { + pub type_: NodeTag, + pub pathtype: NodeTag, + pub parent: *mut RelOptInfo, + pub pathtarget: *mut PathTarget, + pub param_info: *mut ParamPathInfo, + pub parallel_aware: bool, + pub parallel_safe: bool, + pub parallel_workers: ::std::os::raw::c_int, + pub rows: Cardinality, + pub startup_cost: Cost, + pub total_cost: Cost, + pub pathkeys: *mut List, +} +impl Default for Path { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexPath { + pub path: Path, + pub indexinfo: *mut IndexOptInfo, + pub indexclauses: *mut List, + pub indexorderbys: *mut List, + pub indexorderbycols: *mut List, + pub indexscandir: ScanDirection, + pub indextotalcost: Cost, + pub indexselectivity: Selectivity, +} +impl Default for IndexPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IndexClause { + pub type_: NodeTag, + pub rinfo: *mut RestrictInfo, + pub indexquals: *mut List, + pub lossy: bool, + pub indexcol: AttrNumber, + pub indexcols: *mut List, +} +impl Default for IndexClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapHeapPath { + pub path: Path, + pub bitmapqual: *mut Path, +} +impl Default for BitmapHeapPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapAndPath { + pub path: Path, + pub bitmapquals: *mut List, + pub bitmapselectivity: Selectivity, +} +impl Default for BitmapAndPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BitmapOrPath { + pub path: Path, + pub bitmapquals: *mut List, + pub bitmapselectivity: Selectivity, +} +impl Default for BitmapOrPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TidPath { + pub path: Path, + pub tidquals: *mut List, +} +impl Default for TidPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TidRangePath { + pub path: Path, + pub tidrangequals: *mut List, +} +impl Default for TidRangePath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SubqueryScanPath { + pub path: Path, + pub subpath: *mut Path, +} +impl Default for SubqueryScanPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForeignPath { + pub path: Path, + pub fdw_outerpath: *mut Path, + pub fdw_private: *mut List, +} +impl Default for ForeignPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CustomPath { + pub path: Path, + pub flags: uint32, + pub custom_paths: *mut List, + pub custom_private: *mut List, + pub methods: *const CustomPathMethods, +} +impl Default for CustomPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AppendPath { + pub path: Path, + pub subpaths: *mut List, + pub first_partial_path: ::std::os::raw::c_int, + pub limit_tuples: Cardinality, +} +impl Default for AppendPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_dummy_rel(rel: *mut RelOptInfo) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeAppendPath { + pub path: Path, + pub subpaths: *mut List, + pub limit_tuples: Cardinality, +} +impl Default for MergeAppendPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GroupResultPath { + pub path: Path, + pub quals: *mut List, +} +impl Default for GroupResultPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MaterialPath { + pub path: Path, + pub subpath: *mut Path, +} +impl Default for MaterialPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MemoizePath { + pub path: Path, + pub subpath: *mut Path, + pub hash_operators: *mut List, + pub param_exprs: *mut List, + pub singlerow: bool, + pub binary_mode: bool, + pub calls: Cardinality, + pub est_entries: uint32, +} +impl Default for MemoizePath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const UniquePathMethod_UNIQUE_PATH_NOOP: UniquePathMethod = 0; +pub const UniquePathMethod_UNIQUE_PATH_HASH: UniquePathMethod = 1; +pub const UniquePathMethod_UNIQUE_PATH_SORT: UniquePathMethod = 2; +pub type UniquePathMethod = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct UniquePath { + pub path: Path, + pub subpath: *mut Path, + pub umethod: UniquePathMethod, + pub in_operators: *mut List, + pub uniq_exprs: *mut List, +} +impl Default for UniquePath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GatherPath { + pub path: Path, + pub subpath: *mut Path, + pub single_copy: bool, + pub num_workers: ::std::os::raw::c_int, +} +impl Default for GatherPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GatherMergePath { + pub path: Path, + pub subpath: *mut Path, + pub num_workers: ::std::os::raw::c_int, +} +impl Default for GatherMergePath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JoinPath { + pub path: Path, + pub jointype: JoinType, + pub inner_unique: bool, + pub outerjoinpath: *mut Path, + pub innerjoinpath: *mut Path, + pub joinrestrictinfo: *mut List, +} +impl Default for JoinPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NestPath { + pub jpath: JoinPath, +} +impl Default for NestPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergePath { + pub jpath: JoinPath, + pub path_mergeclauses: *mut List, + pub outersortkeys: *mut List, + pub innersortkeys: *mut List, + pub skip_mark_restore: bool, + pub materialize_inner: bool, +} +impl Default for MergePath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HashPath { + pub jpath: JoinPath, + pub path_hashclauses: *mut List, + pub num_batches: ::std::os::raw::c_int, + pub inner_rows_total: Cardinality, +} +impl Default for HashPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ProjectionPath { + pub path: Path, + pub subpath: *mut Path, + pub dummypp: bool, +} +impl Default for ProjectionPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ProjectSetPath { + pub path: Path, + pub subpath: *mut Path, +} +impl Default for ProjectSetPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SortPath { + pub path: Path, + pub subpath: *mut Path, +} +impl Default for SortPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IncrementalSortPath { + pub spath: SortPath, + pub nPresortedCols: ::std::os::raw::c_int, +} +impl Default for IncrementalSortPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GroupPath { + pub path: Path, + pub subpath: *mut Path, + pub groupClause: *mut List, + pub qual: *mut List, +} +impl Default for GroupPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct UpperUniquePath { + pub path: Path, + pub subpath: *mut Path, + pub numkeys: ::std::os::raw::c_int, +} +impl Default for UpperUniquePath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AggPath { + pub path: Path, + pub subpath: *mut Path, + pub aggstrategy: AggStrategy, + pub aggsplit: AggSplit, + pub numGroups: Cardinality, + pub transitionSpace: uint64, + pub groupClause: *mut List, + pub qual: *mut List, +} +impl Default for AggPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GroupingSetData { + pub type_: NodeTag, + pub set: *mut List, + pub numGroups: Cardinality, +} +impl Default for GroupingSetData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RollupData { + pub type_: NodeTag, + pub groupClause: *mut List, + pub gsets: *mut List, + pub gsets_data: *mut List, + pub numGroups: Cardinality, + pub hashable: bool, + pub is_hashed: bool, +} +impl Default for RollupData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GroupingSetsPath { + pub path: Path, + pub subpath: *mut Path, + pub aggstrategy: AggStrategy, + pub rollups: *mut List, + pub qual: *mut List, + pub transitionSpace: uint64, +} +impl Default for GroupingSetsPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MinMaxAggPath { + pub path: Path, + pub mmaggregates: *mut List, + pub quals: *mut List, +} +impl Default for MinMaxAggPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowAggPath { + pub path: Path, + pub subpath: *mut Path, + pub winclause: *mut WindowClause, + pub qual: *mut List, + pub topwindow: bool, +} +impl Default for WindowAggPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SetOpPath { + pub path: Path, + pub subpath: *mut Path, + pub cmd: SetOpCmd, + pub strategy: SetOpStrategy, + pub distinctList: *mut List, + pub flagColIdx: AttrNumber, + pub firstFlag: ::std::os::raw::c_int, + pub numGroups: Cardinality, +} +impl Default for SetOpPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RecursiveUnionPath { + pub path: Path, + pub leftpath: *mut Path, + pub rightpath: *mut Path, + pub distinctList: *mut List, + pub wtParam: ::std::os::raw::c_int, + pub numGroups: Cardinality, +} +impl Default for RecursiveUnionPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LockRowsPath { + pub path: Path, + pub subpath: *mut Path, + pub rowMarks: *mut List, + pub epqParam: ::std::os::raw::c_int, +} +impl Default for LockRowsPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ModifyTablePath { + pub path: Path, + pub subpath: *mut Path, + pub operation: CmdType, + pub canSetTag: bool, + pub nominalRelation: Index, + pub rootRelation: Index, + pub partColsUpdated: bool, + pub resultRelations: *mut List, + pub updateColnosLists: *mut List, + pub withCheckOptionLists: *mut List, + pub returningLists: *mut List, + pub rowMarks: *mut List, + pub onconflict: *mut OnConflictExpr, + pub epqParam: ::std::os::raw::c_int, + pub mergeActionLists: *mut List, +} +impl Default for ModifyTablePath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LimitPath { + pub path: Path, + pub subpath: *mut Path, + pub limitOffset: *mut Node, + pub limitCount: *mut Node, + pub limitOption: LimitOption, +} +impl Default for LimitPath { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RestrictInfo { + pub type_: NodeTag, + pub clause: *mut Expr, + pub is_pushed_down: bool, + pub can_join: bool, + pub pseudoconstant: bool, + pub has_clone: bool, + pub is_clone: bool, + pub leakproof: bool, + pub has_volatile: VolatileFunctionStatus, + pub security_level: Index, + pub num_base_rels: ::std::os::raw::c_int, + pub clause_relids: Relids, + pub required_relids: Relids, + pub outer_relids: Relids, + pub left_relids: Relids, + pub right_relids: Relids, + pub orclause: *mut Expr, + pub rinfo_serial: ::std::os::raw::c_int, + pub parent_ec: *mut EquivalenceClass, + pub eval_cost: QualCost, + pub norm_selec: Selectivity, + pub outer_selec: Selectivity, + pub mergeopfamilies: *mut List, + pub left_ec: *mut EquivalenceClass, + pub right_ec: *mut EquivalenceClass, + pub left_em: *mut EquivalenceMember, + pub right_em: *mut EquivalenceMember, + pub scansel_cache: *mut List, + pub outer_is_left: bool, + pub hashjoinoperator: Oid, + pub left_bucketsize: Selectivity, + pub right_bucketsize: Selectivity, + pub left_mcvfreq: Selectivity, + pub right_mcvfreq: Selectivity, + pub left_hasheqoperator: Oid, + pub right_hasheqoperator: Oid, +} +impl Default for RestrictInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MergeScanSelCache { + pub opfamily: Oid, + pub collation: Oid, + pub strategy: ::std::os::raw::c_int, + pub nulls_first: bool, + pub leftstartsel: Selectivity, + pub leftendsel: Selectivity, + pub rightstartsel: Selectivity, + pub rightendsel: Selectivity, +} +impl Default for MergeScanSelCache { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PlaceHolderVar { + pub xpr: Expr, + pub phexpr: *mut Expr, + pub phrels: Relids, + pub phnullingrels: Relids, + pub phid: Index, + pub phlevelsup: Index, +} +impl Default for PlaceHolderVar { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SpecialJoinInfo { + pub type_: NodeTag, + pub min_lefthand: Relids, + pub min_righthand: Relids, + pub syn_lefthand: Relids, + pub syn_righthand: Relids, + pub jointype: JoinType, + pub ojrelid: Index, + pub commute_above_l: Relids, + pub commute_above_r: Relids, + pub commute_below_l: Relids, + pub commute_below_r: Relids, + pub lhs_strict: bool, + pub semi_can_btree: bool, + pub semi_can_hash: bool, + pub semi_operators: *mut List, + pub semi_rhs_exprs: *mut List, +} +impl Default for SpecialJoinInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct OuterJoinClauseInfo { + pub type_: NodeTag, + pub rinfo: *mut RestrictInfo, + pub sjinfo: *mut SpecialJoinInfo, +} +impl Default for OuterJoinClauseInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AppendRelInfo { + pub type_: NodeTag, + pub parent_relid: Index, + pub child_relid: Index, + pub parent_reltype: Oid, + pub child_reltype: Oid, + pub translated_vars: *mut List, + pub num_child_cols: ::std::os::raw::c_int, + pub parent_colnos: *mut AttrNumber, + pub parent_reloid: Oid, +} +impl Default for AppendRelInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RowIdentityVarInfo { + pub type_: NodeTag, + pub rowidvar: *mut Var, + pub rowidwidth: int32, + pub rowidname: *mut ::std::os::raw::c_char, + pub rowidrels: Relids, +} +impl Default for RowIdentityVarInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PlaceHolderInfo { + pub type_: NodeTag, + pub phid: Index, + pub ph_var: *mut PlaceHolderVar, + pub ph_eval_at: Relids, + pub ph_lateral: Relids, + pub ph_needed: Relids, + pub ph_width: int32, +} +impl Default for PlaceHolderInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MinMaxAggInfo { + pub type_: NodeTag, + pub aggfnoid: Oid, + pub aggsortop: Oid, + pub target: *mut Expr, + pub subroot: *mut PlannerInfo, + pub path: *mut Path, + pub pathcost: Cost, + pub param: *mut Param, +} +impl Default for MinMaxAggInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PlannerParamItem { + pub type_: NodeTag, + pub item: *mut Node, + pub paramId: ::std::os::raw::c_int, +} +impl Default for PlannerParamItem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct SemiAntiJoinFactors { + pub outer_match_frac: Selectivity, + pub match_count: Selectivity, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JoinPathExtraData { + pub restrictlist: *mut List, + pub mergeclause_list: *mut List, + pub inner_unique: bool, + pub sjinfo: *mut SpecialJoinInfo, + pub semifactors: SemiAntiJoinFactors, + pub param_source_rels: Relids, +} +impl Default for JoinPathExtraData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const PartitionwiseAggregateType_PARTITIONWISE_AGGREGATE_NONE: PartitionwiseAggregateType = 0; +pub const PartitionwiseAggregateType_PARTITIONWISE_AGGREGATE_FULL: PartitionwiseAggregateType = 1; +pub const PartitionwiseAggregateType_PARTITIONWISE_AGGREGATE_PARTIAL: PartitionwiseAggregateType = + 2; +pub type PartitionwiseAggregateType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct GroupPathExtraData { + pub flags: ::std::os::raw::c_int, + pub partial_costs_set: bool, + pub agg_partial_costs: AggClauseCosts, + pub agg_final_costs: AggClauseCosts, + pub target_parallel_safe: bool, + pub havingQual: *mut Node, + pub targetList: *mut List, + pub patype: PartitionwiseAggregateType, +} +impl Default for GroupPathExtraData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct FinalPathExtraData { + pub limit_needed: bool, + pub limit_tuples: Cardinality, + pub count_est: int64, + pub offset_est: int64, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct JoinCostWorkspace { + pub startup_cost: Cost, + pub total_cost: Cost, + pub run_cost: Cost, + pub inner_run_cost: Cost, + pub inner_rescan_run_cost: Cost, + pub outer_rows: Cardinality, + pub inner_rows: Cardinality, + pub outer_skip_rows: Cardinality, + pub inner_skip_rows: Cardinality, + pub numbuckets: ::std::os::raw::c_int, + pub numbatches: ::std::os::raw::c_int, + pub inner_rows_total: Cardinality, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AggInfo { + pub type_: NodeTag, + pub aggrefs: *mut List, + pub transno: ::std::os::raw::c_int, + pub shareable: bool, + pub finalfn_oid: Oid, +} +impl Default for AggInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AggTransInfo { + pub type_: NodeTag, + pub args: *mut List, + pub aggfilter: *mut Expr, + pub transfn_oid: Oid, + pub serialfn_oid: Oid, + pub deserialfn_oid: Oid, + pub combinefn_oid: Oid, + pub aggtranstype: Oid, + pub aggtranstypmod: int32, + pub transtypeLen: ::std::os::raw::c_int, + pub transtypeByVal: bool, + pub aggtransspace: int32, + pub initValue: Datum, + pub initValueIsNull: bool, +} +impl Default for AggTransInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type GetForeignRelSize_function = ::std::option::Option< + unsafe extern "C" fn(root: *mut PlannerInfo, baserel: *mut RelOptInfo, foreigntableid: Oid), +>; +pub type GetForeignPaths_function = ::std::option::Option< + unsafe extern "C" fn(root: *mut PlannerInfo, baserel: *mut RelOptInfo, foreigntableid: Oid), +>; +pub type GetForeignPlan_function = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + foreigntableid: Oid, + best_path: *mut ForeignPath, + tlist: *mut List, + scan_clauses: *mut List, + outer_plan: *mut Plan, + ) -> *mut ForeignScan, +>; +pub type BeginForeignScan_function = ::std::option::Option< + unsafe extern "C" fn(node: *mut ForeignScanState, eflags: ::std::os::raw::c_int), +>; +pub type IterateForeignScan_function = + ::std::option::Option *mut TupleTableSlot>; +pub type RecheckForeignScan_function = ::std::option::Option< + unsafe extern "C" fn(node: *mut ForeignScanState, slot: *mut TupleTableSlot) -> bool, +>; +pub type ReScanForeignScan_function = + ::std::option::Option; +pub type EndForeignScan_function = + ::std::option::Option; +pub type GetForeignJoinPaths_function = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + joinrel: *mut RelOptInfo, + outerrel: *mut RelOptInfo, + innerrel: *mut RelOptInfo, + jointype: JoinType, + extra: *mut JoinPathExtraData, + ), +>; +pub type GetForeignUpperPaths_function = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + stage: UpperRelationKind, + input_rel: *mut RelOptInfo, + output_rel: *mut RelOptInfo, + extra: *mut ::std::os::raw::c_void, + ), +>; +pub type AddForeignUpdateTargets_function = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + rtindex: Index, + target_rte: *mut RangeTblEntry, + target_relation: Relation, + ), +>; +pub type PlanForeignModify_function = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + plan: *mut ModifyTable, + resultRelation: Index, + subplan_index: ::std::os::raw::c_int, + ) -> *mut List, +>; +pub type BeginForeignModify_function = ::std::option::Option< + unsafe extern "C" fn( + mtstate: *mut ModifyTableState, + rinfo: *mut ResultRelInfo, + fdw_private: *mut List, + subplan_index: ::std::os::raw::c_int, + eflags: ::std::os::raw::c_int, + ), +>; +pub type ExecForeignInsert_function = ::std::option::Option< + unsafe extern "C" fn( + estate: *mut EState, + rinfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + planSlot: *mut TupleTableSlot, + ) -> *mut TupleTableSlot, +>; +pub type ExecForeignBatchInsert_function = ::std::option::Option< + unsafe extern "C" fn( + estate: *mut EState, + rinfo: *mut ResultRelInfo, + slots: *mut *mut TupleTableSlot, + planSlots: *mut *mut TupleTableSlot, + numSlots: *mut ::std::os::raw::c_int, + ) -> *mut *mut TupleTableSlot, +>; +pub type GetForeignModifyBatchSize_function = + ::std::option::Option ::std::os::raw::c_int>; +pub type ExecForeignUpdate_function = ::std::option::Option< + unsafe extern "C" fn( + estate: *mut EState, + rinfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + planSlot: *mut TupleTableSlot, + ) -> *mut TupleTableSlot, +>; +pub type ExecForeignDelete_function = ::std::option::Option< + unsafe extern "C" fn( + estate: *mut EState, + rinfo: *mut ResultRelInfo, + slot: *mut TupleTableSlot, + planSlot: *mut TupleTableSlot, + ) -> *mut TupleTableSlot, +>; +pub type EndForeignModify_function = + ::std::option::Option; +pub type BeginForeignInsert_function = ::std::option::Option< + unsafe extern "C" fn(mtstate: *mut ModifyTableState, rinfo: *mut ResultRelInfo), +>; +pub type EndForeignInsert_function = + ::std::option::Option; +pub type IsForeignRelUpdatable_function = + ::std::option::Option ::std::os::raw::c_int>; +pub type PlanDirectModify_function = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + plan: *mut ModifyTable, + resultRelation: Index, + subplan_index: ::std::os::raw::c_int, + ) -> bool, +>; +pub type BeginDirectModify_function = ::std::option::Option< + unsafe extern "C" fn(node: *mut ForeignScanState, eflags: ::std::os::raw::c_int), +>; +pub type IterateDirectModify_function = + ::std::option::Option *mut TupleTableSlot>; +pub type EndDirectModify_function = + ::std::option::Option; +pub type GetForeignRowMarkType_function = ::std::option::Option< + unsafe extern "C" fn(rte: *mut RangeTblEntry, strength: LockClauseStrength) -> RowMarkType, +>; +pub type RefetchForeignRow_function = ::std::option::Option< + unsafe extern "C" fn( + estate: *mut EState, + erm: *mut ExecRowMark, + rowid: Datum, + slot: *mut TupleTableSlot, + updated: *mut bool, + ), +>; +pub type ExplainForeignScan_function = + ::std::option::Option; +pub type ExplainForeignModify_function = ::std::option::Option< + unsafe extern "C" fn( + mtstate: *mut ModifyTableState, + rinfo: *mut ResultRelInfo, + fdw_private: *mut List, + subplan_index: ::std::os::raw::c_int, + es: *mut ExplainState, + ), +>; +pub type ExplainDirectModify_function = + ::std::option::Option; +pub type AcquireSampleRowsFunc = ::std::option::Option< + unsafe extern "C" fn( + relation: Relation, + elevel: ::std::os::raw::c_int, + rows: *mut HeapTuple, + targrows: ::std::os::raw::c_int, + totalrows: *mut f64, + totaldeadrows: *mut f64, + ) -> ::std::os::raw::c_int, +>; +pub type AnalyzeForeignTable_function = ::std::option::Option< + unsafe extern "C" fn( + relation: Relation, + func: *mut AcquireSampleRowsFunc, + totalpages: *mut BlockNumber, + ) -> bool, +>; +pub type ImportForeignSchema_function = ::std::option::Option< + unsafe extern "C" fn(stmt: *mut ImportForeignSchemaStmt, serverOid: Oid) -> *mut List, +>; +pub type ExecForeignTruncate_function = ::std::option::Option< + unsafe extern "C" fn(rels: *mut List, behavior: DropBehavior, restart_seqs: bool), +>; +pub type EstimateDSMForeignScan_function = ::std::option::Option< + unsafe extern "C" fn(node: *mut ForeignScanState, pcxt: *mut ParallelContext) -> Size, +>; +pub type InitializeDSMForeignScan_function = ::std::option::Option< + unsafe extern "C" fn( + node: *mut ForeignScanState, + pcxt: *mut ParallelContext, + coordinate: *mut ::std::os::raw::c_void, + ), +>; +pub type ReInitializeDSMForeignScan_function = ::std::option::Option< + unsafe extern "C" fn( + node: *mut ForeignScanState, + pcxt: *mut ParallelContext, + coordinate: *mut ::std::os::raw::c_void, + ), +>; +pub type InitializeWorkerForeignScan_function = ::std::option::Option< + unsafe extern "C" fn( + node: *mut ForeignScanState, + toc: *mut shm_toc, + coordinate: *mut ::std::os::raw::c_void, + ), +>; +pub type ShutdownForeignScan_function = + ::std::option::Option; +pub type IsForeignScanParallelSafe_function = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + rte: *mut RangeTblEntry, + ) -> bool, +>; +pub type ReparameterizeForeignPathByChild_function = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + fdw_private: *mut List, + child_rel: *mut RelOptInfo, + ) -> *mut List, +>; +pub type IsForeignPathAsyncCapable_function = + ::std::option::Option bool>; +pub type ForeignAsyncRequest_function = + ::std::option::Option; +pub type ForeignAsyncConfigureWait_function = + ::std::option::Option; +pub type ForeignAsyncNotify_function = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FdwRoutine { + pub type_: NodeTag, + pub GetForeignRelSize: GetForeignRelSize_function, + pub GetForeignPaths: GetForeignPaths_function, + pub GetForeignPlan: GetForeignPlan_function, + pub BeginForeignScan: BeginForeignScan_function, + pub IterateForeignScan: IterateForeignScan_function, + pub ReScanForeignScan: ReScanForeignScan_function, + pub EndForeignScan: EndForeignScan_function, + pub GetForeignJoinPaths: GetForeignJoinPaths_function, + pub GetForeignUpperPaths: GetForeignUpperPaths_function, + pub AddForeignUpdateTargets: AddForeignUpdateTargets_function, + pub PlanForeignModify: PlanForeignModify_function, + pub BeginForeignModify: BeginForeignModify_function, + pub ExecForeignInsert: ExecForeignInsert_function, + pub ExecForeignBatchInsert: ExecForeignBatchInsert_function, + pub GetForeignModifyBatchSize: GetForeignModifyBatchSize_function, + pub ExecForeignUpdate: ExecForeignUpdate_function, + pub ExecForeignDelete: ExecForeignDelete_function, + pub EndForeignModify: EndForeignModify_function, + pub BeginForeignInsert: BeginForeignInsert_function, + pub EndForeignInsert: EndForeignInsert_function, + pub IsForeignRelUpdatable: IsForeignRelUpdatable_function, + pub PlanDirectModify: PlanDirectModify_function, + pub BeginDirectModify: BeginDirectModify_function, + pub IterateDirectModify: IterateDirectModify_function, + pub EndDirectModify: EndDirectModify_function, + pub GetForeignRowMarkType: GetForeignRowMarkType_function, + pub RefetchForeignRow: RefetchForeignRow_function, + pub RecheckForeignScan: RecheckForeignScan_function, + pub ExplainForeignScan: ExplainForeignScan_function, + pub ExplainForeignModify: ExplainForeignModify_function, + pub ExplainDirectModify: ExplainDirectModify_function, + pub AnalyzeForeignTable: AnalyzeForeignTable_function, + pub ImportForeignSchema: ImportForeignSchema_function, + pub ExecForeignTruncate: ExecForeignTruncate_function, + pub IsForeignScanParallelSafe: IsForeignScanParallelSafe_function, + pub EstimateDSMForeignScan: EstimateDSMForeignScan_function, + pub InitializeDSMForeignScan: InitializeDSMForeignScan_function, + pub ReInitializeDSMForeignScan: ReInitializeDSMForeignScan_function, + pub InitializeWorkerForeignScan: InitializeWorkerForeignScan_function, + pub ShutdownForeignScan: ShutdownForeignScan_function, + pub ReparameterizeForeignPathByChild: ReparameterizeForeignPathByChild_function, + pub IsForeignPathAsyncCapable: IsForeignPathAsyncCapable_function, + pub ForeignAsyncRequest: ForeignAsyncRequest_function, + pub ForeignAsyncConfigureWait: ForeignAsyncConfigureWait_function, + pub ForeignAsyncNotify: ForeignAsyncNotify_function, +} +impl Default for FdwRoutine { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetFdwRoutine(fdwhandler: Oid) -> *mut FdwRoutine; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetForeignServerIdByRelId(relid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetFdwRoutineByServerId(serverid: Oid) -> *mut FdwRoutine; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetFdwRoutineByRelId(relid: Oid) -> *mut FdwRoutine; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetFdwRoutineForRelation(relation: Relation, makecopy: bool) -> *mut FdwRoutine; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsImportableForeignTable( + tablename: *const ::std::os::raw::c_char, + stmt: *mut ImportForeignSchemaStmt, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetExistingLocalJoinPath(joinrel: *mut RelOptInfo) -> *mut Path; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForeignDataWrapper { + pub fdwid: Oid, + pub owner: Oid, + pub fdwname: *mut ::std::os::raw::c_char, + pub fdwhandler: Oid, + pub fdwvalidator: Oid, + pub options: *mut List, +} +impl Default for ForeignDataWrapper { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForeignServer { + pub serverid: Oid, + pub fdwid: Oid, + pub owner: Oid, + pub servername: *mut ::std::os::raw::c_char, + pub servertype: *mut ::std::os::raw::c_char, + pub serverversion: *mut ::std::os::raw::c_char, + pub options: *mut List, +} +impl Default for ForeignServer { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct UserMapping { + pub umid: Oid, + pub userid: Oid, + pub serverid: Oid, + pub options: *mut List, +} +impl Default for UserMapping { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ForeignTable { + pub relid: Oid, + pub serverid: Oid, + pub options: *mut List, +} +impl Default for ForeignTable { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetForeignServer(serverid: Oid) -> *mut ForeignServer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetForeignServerExtended(serverid: Oid, flags: bits16) -> *mut ForeignServer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetForeignServerByName( + srvname: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> *mut ForeignServer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetUserMapping(userid: Oid, serverid: Oid) -> *mut UserMapping; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetForeignDataWrapper(fdwid: Oid) -> *mut ForeignDataWrapper; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetForeignDataWrapperExtended(fdwid: Oid, flags: bits16) -> *mut ForeignDataWrapper; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetForeignDataWrapperByName( + fdwname: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> *mut ForeignDataWrapper; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetForeignTable(relid: Oid) -> *mut ForeignTable; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetForeignColumnOptions(relid: Oid, attnum: AttrNumber) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_foreign_data_wrapper_oid( + fdwname: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_foreign_server_oid( + servername: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> Oid; +} +pub type __m64 = [::std::os::raw::c_longlong; 1usize]; +pub type __v1di = [::std::os::raw::c_longlong; 1usize]; +pub type __v2si = [::std::os::raw::c_int; 2usize]; +pub type __v4hi = [::std::os::raw::c_short; 4usize]; +pub type __v8qi = [::std::os::raw::c_char; 8usize]; +pub type __v4si = [::std::os::raw::c_int; 4usize]; +pub type __v4sf = [f32; 4usize]; +pub type __m128 = [f32; 4usize]; +pub type __m128_u = [f32; 4usize]; +pub type __v4su = [::std::os::raw::c_uint; 4usize]; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _mm_sfence(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _mm_getcsr() -> ::std::os::raw::c_uint; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _mm_setcsr(__i: ::std::os::raw::c_uint); +} +pub type __m128d = [f64; 2usize]; +pub type __m128i = [::std::os::raw::c_longlong; 2usize]; +pub type __m128d_u = [f64; 2usize]; +pub type __m128i_u = [::std::os::raw::c_longlong; 2usize]; +pub type __v2df = [f64; 2usize]; +pub type __v2di = [::std::os::raw::c_longlong; 2usize]; +pub type __v8hi = [::std::os::raw::c_short; 8usize]; +pub type __v16qi = [::std::os::raw::c_char; 16usize]; +pub type __v2du = [::std::os::raw::c_ulonglong; 2usize]; +pub type __v8hu = [::std::os::raw::c_ushort; 8usize]; +pub type __v16qu = [::std::os::raw::c_uchar; 16usize]; +pub type __v16qs = [::std::os::raw::c_schar; 16usize]; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _mm_clflush(__p: *const ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _mm_lfence(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _mm_mfence(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _mm_pause(); +} +pub type Vector8 = __m128i; +pub type Vector32 = __m128i; +pub type pg_wchar = ::std::os::raw::c_uint; +pub const pg_enc_PG_SQL_ASCII: pg_enc = 0; +pub const pg_enc_PG_EUC_JP: pg_enc = 1; +pub const pg_enc_PG_EUC_CN: pg_enc = 2; +pub const pg_enc_PG_EUC_KR: pg_enc = 3; +pub const pg_enc_PG_EUC_TW: pg_enc = 4; +pub const pg_enc_PG_EUC_JIS_2004: pg_enc = 5; +pub const pg_enc_PG_UTF8: pg_enc = 6; +pub const pg_enc_PG_MULE_INTERNAL: pg_enc = 7; +pub const pg_enc_PG_LATIN1: pg_enc = 8; +pub const pg_enc_PG_LATIN2: pg_enc = 9; +pub const pg_enc_PG_LATIN3: pg_enc = 10; +pub const pg_enc_PG_LATIN4: pg_enc = 11; +pub const pg_enc_PG_LATIN5: pg_enc = 12; +pub const pg_enc_PG_LATIN6: pg_enc = 13; +pub const pg_enc_PG_LATIN7: pg_enc = 14; +pub const pg_enc_PG_LATIN8: pg_enc = 15; +pub const pg_enc_PG_LATIN9: pg_enc = 16; +pub const pg_enc_PG_LATIN10: pg_enc = 17; +pub const pg_enc_PG_WIN1256: pg_enc = 18; +pub const pg_enc_PG_WIN1258: pg_enc = 19; +pub const pg_enc_PG_WIN866: pg_enc = 20; +pub const pg_enc_PG_WIN874: pg_enc = 21; +pub const pg_enc_PG_KOI8R: pg_enc = 22; +pub const pg_enc_PG_WIN1251: pg_enc = 23; +pub const pg_enc_PG_WIN1252: pg_enc = 24; +pub const pg_enc_PG_ISO_8859_5: pg_enc = 25; +pub const pg_enc_PG_ISO_8859_6: pg_enc = 26; +pub const pg_enc_PG_ISO_8859_7: pg_enc = 27; +pub const pg_enc_PG_ISO_8859_8: pg_enc = 28; +pub const pg_enc_PG_WIN1250: pg_enc = 29; +pub const pg_enc_PG_WIN1253: pg_enc = 30; +pub const pg_enc_PG_WIN1254: pg_enc = 31; +pub const pg_enc_PG_WIN1255: pg_enc = 32; +pub const pg_enc_PG_WIN1257: pg_enc = 33; +pub const pg_enc_PG_KOI8U: pg_enc = 34; +pub const pg_enc_PG_SJIS: pg_enc = 35; +pub const pg_enc_PG_BIG5: pg_enc = 36; +pub const pg_enc_PG_GBK: pg_enc = 37; +pub const pg_enc_PG_UHC: pg_enc = 38; +pub const pg_enc_PG_GB18030: pg_enc = 39; +pub const pg_enc_PG_JOHAB: pg_enc = 40; +pub const pg_enc_PG_SHIFT_JIS_2004: pg_enc = 41; +pub const pg_enc__PG_LAST_ENCODING_: pg_enc = 42; +pub type pg_enc = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pg_enc2name { + pub name: *const ::std::os::raw::c_char, + pub encoding: pg_enc, +} +impl Default for pg_enc2name { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static pg_enc2name_tbl: [pg_enc2name; 0usize]; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pg_enc2gettext { + pub encoding: pg_enc, + pub name: *const ::std::os::raw::c_char, +} +impl Default for pg_enc2gettext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static pg_enc2gettext_tbl: [pg_enc2gettext; 0usize]; +} +pub type mb2wchar_with_len_converter = ::std::option::Option< + unsafe extern "C" fn( + from: *const ::std::os::raw::c_uchar, + to: *mut pg_wchar, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, +>; +pub type wchar2mb_with_len_converter = ::std::option::Option< + unsafe extern "C" fn( + from: *const pg_wchar, + to: *mut ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, +>; +pub type mblen_converter = ::std::option::Option< + unsafe extern "C" fn(mbstr: *const ::std::os::raw::c_uchar) -> ::std::os::raw::c_int, +>; +pub type mbdisplaylen_converter = ::std::option::Option< + unsafe extern "C" fn(mbstr: *const ::std::os::raw::c_uchar) -> ::std::os::raw::c_int, +>; +pub type mbcharacter_incrementer = ::std::option::Option< + unsafe extern "C" fn(mbstr: *mut ::std::os::raw::c_uchar, len: ::std::os::raw::c_int) -> bool, +>; +pub type mbchar_verifier = ::std::option::Option< + unsafe extern "C" fn( + mbstr: *const ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, +>; +pub type mbstr_verifier = ::std::option::Option< + unsafe extern "C" fn( + mbstr: *const ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int, +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct pg_wchar_tbl { + pub mb2wchar_with_len: mb2wchar_with_len_converter, + pub wchar2mb_with_len: wchar2mb_with_len_converter, + pub mblen: mblen_converter, + pub dsplen: mbdisplaylen_converter, + pub mbverifychar: mbchar_verifier, + pub mbverifystr: mbstr_verifier, + pub maxmblen: ::std::os::raw::c_int, +} +extern "C" { + pub static pg_wchar_table: [pg_wchar_tbl; 0usize]; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pg_mb_radix_tree { + pub chars16: *const uint16, + pub chars32: *const uint32, + pub b1root: uint32, + pub b1_lower: uint8, + pub b1_upper: uint8, + pub b2root: uint32, + pub b2_1_lower: uint8, + pub b2_1_upper: uint8, + pub b2_2_lower: uint8, + pub b2_2_upper: uint8, + pub b3root: uint32, + pub b3_1_lower: uint8, + pub b3_1_upper: uint8, + pub b3_2_lower: uint8, + pub b3_2_upper: uint8, + pub b3_3_lower: uint8, + pub b3_3_upper: uint8, + pub b4root: uint32, + pub b4_1_lower: uint8, + pub b4_1_upper: uint8, + pub b4_2_lower: uint8, + pub b4_2_upper: uint8, + pub b4_3_lower: uint8, + pub b4_3_upper: uint8, + pub b4_4_lower: uint8, + pub b4_4_upper: uint8, +} +impl Default for pg_mb_radix_tree { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct pg_utf_to_local_combined { + pub utf1: uint32, + pub utf2: uint32, + pub code: uint32, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct pg_local_to_utf_combined { + pub code: uint32, + pub utf1: uint32, + pub utf2: uint32, +} +pub type utf_local_conversion_func = + ::std::option::Option uint32>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_char_to_encoding(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_to_char(encoding: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_valid_server_encoding_id(encoding: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_mblen( + encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_mblen_bounded( + encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_dsplen( + encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_verifymbchar( + encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_verifymbstr( + encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_max_length(encoding: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_valid_client_encoding(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_valid_server_encoding(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_encoding_supported_by_icu(encoding: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_encoding_name_for_icu( + encoding: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unicode_to_utf8( + c: pg_wchar, + utf8string: *mut ::std::os::raw::c_uchar, + ) -> *mut ::std::os::raw::c_uchar; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn utf8_to_unicode(c: *const ::std::os::raw::c_uchar) -> pg_wchar; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_utf8_islegal( + source: *const ::std::os::raw::c_uchar, + length: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_utf_mblen(s: *const ::std::os::raw::c_uchar) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mule_mblen(s: *const ::std::os::raw::c_uchar) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mb2wchar( + from: *const ::std::os::raw::c_char, + to: *mut pg_wchar, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mb2wchar_with_len( + from: *const ::std::os::raw::c_char, + to: *mut pg_wchar, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_mb2wchar_with_len( + encoding: ::std::os::raw::c_int, + from: *const ::std::os::raw::c_char, + to: *mut pg_wchar, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_wchar2mb( + from: *const pg_wchar, + to: *mut ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_wchar2mb_with_len( + from: *const pg_wchar, + to: *mut ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_wchar2mb_with_len( + encoding: ::std::os::raw::c_int, + from: *const pg_wchar, + to: *mut ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_char_and_wchar_strcmp( + s1: *const ::std::os::raw::c_char, + s2: *const pg_wchar, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_wchar_strncmp( + s1: *const pg_wchar, + s2: *const pg_wchar, + n: usize, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_char_and_wchar_strncmp( + s1: *const ::std::os::raw::c_char, + s2: *const pg_wchar, + n: usize, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_wchar_strlen(str_: *const pg_wchar) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mblen(mbstr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_dsplen(mbstr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mbstrlen(mbstr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mbstrlen_with_len( + mbstr: *const ::std::os::raw::c_char, + limit: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mbcliplen( + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + limit: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_mbcliplen( + encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + limit: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mbcharcliplen( + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + limit: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_database_encoding_max_length() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_database_encoding_character_incrementer() -> mbcharacter_incrementer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrepareClientEncoding(encoding: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetClientEncoding(encoding: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeClientEncoding(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_client_encoding() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_client_encoding_name() -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetDatabaseEncoding(encoding: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetDatabaseEncoding() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetDatabaseEncodingName() -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetMessageEncoding(encoding: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetMessageEncoding() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_do_encoding_conversion( + src: *mut ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + src_encoding: ::std::os::raw::c_int, + dest_encoding: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_uchar; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_do_encoding_conversion_buf( + proc_: Oid, + src_encoding: ::std::os::raw::c_int, + dest_encoding: ::std::os::raw::c_int, + src: *mut ::std::os::raw::c_uchar, + srclen: ::std::os::raw::c_int, + dest: *mut ::std::os::raw::c_uchar, + destlen: ::std::os::raw::c_int, + noError: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_client_to_server( + s: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_server_to_client( + s: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_any_to_server( + s: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_server_to_any( + s: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_unicode_to_server(c: pg_wchar, s: *mut ::std::os::raw::c_uchar); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_unicode_to_server_noerror(c: pg_wchar, s: *mut ::std::os::raw::c_uchar) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BIG5toCNS( + big5: ::std::os::raw::c_ushort, + lc: *mut ::std::os::raw::c_uchar, + ) -> ::std::os::raw::c_ushort; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CNStoBIG5( + cns: ::std::os::raw::c_ushort, + lc: ::std::os::raw::c_uchar, + ) -> ::std::os::raw::c_ushort; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UtfToLocal( + utf: *const ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + iso: *mut ::std::os::raw::c_uchar, + map: *const pg_mb_radix_tree, + cmap: *const pg_utf_to_local_combined, + cmapsize: ::std::os::raw::c_int, + conv_func: utf_local_conversion_func, + encoding: ::std::os::raw::c_int, + noError: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LocalToUtf( + iso: *const ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + utf: *mut ::std::os::raw::c_uchar, + map: *const pg_mb_radix_tree, + cmap: *const pg_local_to_utf_combined, + cmapsize: ::std::os::raw::c_int, + conv_func: utf_local_conversion_func, + encoding: ::std::os::raw::c_int, + noError: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_verifymbstr( + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + noError: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_verify_mbstr( + encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + noError: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_verify_mbstr_len( + encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + noError: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_encoding_conversion_args( + src_encoding: ::std::os::raw::c_int, + dest_encoding: ::std::os::raw::c_int, + len: ::std::os::raw::c_int, + expected_src_encoding: ::std::os::raw::c_int, + expected_dest_encoding: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn report_invalid_encoding( + encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn report_untranslatable_char( + src_encoding: ::std::os::raw::c_int, + dest_encoding: ::std::os::raw::c_int, + mbstr: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn local2local( + l: *const ::std::os::raw::c_uchar, + p: *mut ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + src_encoding: ::std::os::raw::c_int, + dest_encoding: ::std::os::raw::c_int, + tab: *const ::std::os::raw::c_uchar, + noError: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn latin2mic( + l: *const ::std::os::raw::c_uchar, + p: *mut ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + lc: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_int, + noError: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mic2latin( + mic: *const ::std::os::raw::c_uchar, + p: *mut ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + lc: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_int, + noError: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn latin2mic_with_table( + l: *const ::std::os::raw::c_uchar, + p: *mut ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + lc: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_int, + tab: *const ::std::os::raw::c_uchar, + noError: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mic2latin_with_table( + mic: *const ::std::os::raw::c_uchar, + p: *mut ::std::os::raw::c_uchar, + len: ::std::os::raw::c_int, + lc: ::std::os::raw::c_int, + encoding: ::std::os::raw::c_int, + tab: *const ::std::os::raw::c_uchar, + noError: bool, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExtensibleNode { + pub type_: NodeTag, + pub extnodename: *const ::std::os::raw::c_char, +} +impl Default for ExtensibleNode { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExtensibleNodeMethods { + pub extnodename: *const ::std::os::raw::c_char, + pub node_size: Size, + pub nodeCopy: ::std::option::Option< + unsafe extern "C" fn(newnode: *mut ExtensibleNode, oldnode: *const ExtensibleNode), + >, + pub nodeEqual: ::std::option::Option< + unsafe extern "C" fn(a: *const ExtensibleNode, b: *const ExtensibleNode) -> bool, + >, + pub nodeOut: ::std::option::Option< + unsafe extern "C" fn(str_: *mut StringInfoData, node: *const ExtensibleNode), + >, + pub nodeRead: ::std::option::Option, +} +impl Default for ExtensibleNodeMethods { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterExtensibleNodeMethods(methods: *const ExtensibleNodeMethods); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetExtensibleNodeMethods( + extnodename: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> *const ExtensibleNodeMethods; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CustomPathMethods { + pub CustomName: *const ::std::os::raw::c_char, + pub PlanCustomPath: ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + best_path: *mut CustomPath, + tlist: *mut List, + clauses: *mut List, + custom_plans: *mut List, + ) -> *mut Plan, + >, + pub ReparameterizeCustomPathByChild: ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + custom_private: *mut List, + child_rel: *mut RelOptInfo, + ) -> *mut List, + >, +} +impl Default for CustomPathMethods { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CustomScanMethods { + pub CustomName: *const ::std::os::raw::c_char, + pub CreateCustomScanState: + ::std::option::Option *mut Node>, +} +impl Default for CustomScanMethods { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CustomExecMethods { + pub CustomName: *const ::std::os::raw::c_char, + pub BeginCustomScan: ::std::option::Option< + unsafe extern "C" fn( + node: *mut CustomScanState, + estate: *mut EState, + eflags: ::std::os::raw::c_int, + ), + >, + pub ExecCustomScan: ::std::option::Option< + unsafe extern "C" fn(node: *mut CustomScanState) -> *mut TupleTableSlot, + >, + pub EndCustomScan: ::std::option::Option, + pub ReScanCustomScan: ::std::option::Option, + pub MarkPosCustomScan: ::std::option::Option, + pub RestrPosCustomScan: ::std::option::Option, + pub EstimateDSMCustomScan: ::std::option::Option< + unsafe extern "C" fn(node: *mut CustomScanState, pcxt: *mut ParallelContext) -> Size, + >, + pub InitializeDSMCustomScan: ::std::option::Option< + unsafe extern "C" fn( + node: *mut CustomScanState, + pcxt: *mut ParallelContext, + coordinate: *mut ::std::os::raw::c_void, + ), + >, + pub ReInitializeDSMCustomScan: ::std::option::Option< + unsafe extern "C" fn( + node: *mut CustomScanState, + pcxt: *mut ParallelContext, + coordinate: *mut ::std::os::raw::c_void, + ), + >, + pub InitializeWorkerCustomScan: ::std::option::Option< + unsafe extern "C" fn( + node: *mut CustomScanState, + toc: *mut shm_toc, + coordinate: *mut ::std::os::raw::c_void, + ), + >, + pub ShutdownCustomScan: ::std::option::Option, + pub ExplainCustomScan: ::std::option::Option< + unsafe extern "C" fn( + node: *mut CustomScanState, + ancestors: *mut List, + es: *mut ExplainState, + ), + >, +} +impl Default for CustomExecMethods { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterCustomScanMethods(methods: *const CustomScanMethods); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCustomScanMethods( + CustomName: *const ::std::os::raw::c_char, + missing_ok: bool, + ) -> *const CustomScanMethods; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeA_Expr( + kind: A_Expr_Kind, + name: *mut List, + lexpr: *mut Node, + rexpr: *mut Node, + location: ::std::os::raw::c_int, + ) -> *mut A_Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeSimpleA_Expr( + kind: A_Expr_Kind, + name: *mut ::std::os::raw::c_char, + lexpr: *mut Node, + rexpr: *mut Node, + location: ::std::os::raw::c_int, + ) -> *mut A_Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeVar( + varno: ::std::os::raw::c_int, + varattno: AttrNumber, + vartype: Oid, + vartypmod: int32, + varcollid: Oid, + varlevelsup: Index, + ) -> *mut Var; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeVarFromTargetEntry(varno: ::std::os::raw::c_int, tle: *mut TargetEntry) -> *mut Var; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeWholeRowVar( + rte: *mut RangeTblEntry, + varno: ::std::os::raw::c_int, + varlevelsup: Index, + allowScalar: bool, + ) -> *mut Var; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeTargetEntry( + expr: *mut Expr, + resno: AttrNumber, + resname: *mut ::std::os::raw::c_char, + resjunk: bool, + ) -> *mut TargetEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn flatCopyTargetEntry(src_tle: *mut TargetEntry) -> *mut TargetEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeFromExpr(fromlist: *mut List, quals: *mut Node) -> *mut FromExpr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeConst( + consttype: Oid, + consttypmod: int32, + constcollid: Oid, + constlen: ::std::os::raw::c_int, + constvalue: Datum, + constisnull: bool, + constbyval: bool, + ) -> *mut Const; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeNullConst(consttype: Oid, consttypmod: int32, constcollid: Oid) -> *mut Const; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeBoolConst(value: bool, isnull: bool) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeBoolExpr( + boolop: BoolExprType, + args: *mut List, + location: ::std::os::raw::c_int, + ) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeAlias(aliasname: *const ::std::os::raw::c_char, colnames: *mut List) -> *mut Alias; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeRelabelType( + arg: *mut Expr, + rtype: Oid, + rtypmod: int32, + rcollid: Oid, + rformat: CoercionForm, + ) -> *mut RelabelType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeRangeVar( + schemaname: *mut ::std::os::raw::c_char, + relname: *mut ::std::os::raw::c_char, + location: ::std::os::raw::c_int, + ) -> *mut RangeVar; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeTypeName(typnam: *mut ::std::os::raw::c_char) -> *mut TypeName; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeTypeNameFromNameList(names: *mut List) -> *mut TypeName; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeTypeNameFromOid(typeOid: Oid, typmod: int32) -> *mut TypeName; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeColumnDef( + colname: *const ::std::os::raw::c_char, + typeOid: Oid, + typmod: int32, + collOid: Oid, + ) -> *mut ColumnDef; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeFuncExpr( + funcid: Oid, + rettype: Oid, + args: *mut List, + funccollid: Oid, + inputcollid: Oid, + fformat: CoercionForm, + ) -> *mut FuncExpr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeFuncCall( + name: *mut List, + args: *mut List, + funcformat: CoercionForm, + location: ::std::os::raw::c_int, + ) -> *mut FuncCall; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_opclause( + opno: Oid, + opresulttype: Oid, + opretset: bool, + leftop: *mut Expr, + rightop: *mut Expr, + opcollid: Oid, + inputcollid: Oid, + ) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_andclause(andclauses: *mut List) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_orclause(orclauses: *mut List) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_notclause(notclause: *mut Expr) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_and_qual(qual1: *mut Node, qual2: *mut Node) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_ands_explicit(andclauses: *mut List) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_ands_implicit(clause: *mut Expr) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeIndexInfo( + numattrs: ::std::os::raw::c_int, + numkeyattrs: ::std::os::raw::c_int, + amoid: Oid, + expressions: *mut List, + predicates: *mut List, + unique: bool, + nulls_not_distinct: bool, + isready: bool, + concurrent: bool, + summarizing: bool, + ) -> *mut IndexInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeDefElem( + name: *mut ::std::os::raw::c_char, + arg: *mut Node, + location: ::std::os::raw::c_int, + ) -> *mut DefElem; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeDefElemExtended( + nameSpace: *mut ::std::os::raw::c_char, + name: *mut ::std::os::raw::c_char, + arg: *mut Node, + defaction: DefElemAction, + location: ::std::os::raw::c_int, + ) -> *mut DefElem; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeGroupingSet( + kind: GroupingSetKind, + content: *mut List, + location: ::std::os::raw::c_int, + ) -> *mut GroupingSet; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeVacuumRelation( + relation: *mut RangeVar, + oid: Oid, + va_cols: *mut List, + ) -> *mut VacuumRelation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeJsonFormat( + type_: JsonFormatType, + encoding: JsonEncoding, + location: ::std::os::raw::c_int, + ) -> *mut JsonFormat; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeJsonValueExpr(expr: *mut Expr, format: *mut JsonFormat) -> *mut JsonValueExpr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeJsonKeyValue(key: *mut Node, value: *mut Node) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeJsonIsPredicate( + expr: *mut Node, + format: *mut JsonFormat, + item_type: JsonValueType, + unique_keys: bool, + location: ::std::os::raw::c_int, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeJsonEncoding(name: *mut ::std::os::raw::c_char) -> JsonEncoding; +} +pub type check_function_callback = ::std::option::Option< + unsafe extern "C" fn(func_id: Oid, context: *mut ::std::os::raw::c_void) -> bool, +>; +pub type tree_walker_callback = ::std::option::Option< + unsafe extern "C" fn(node: *mut Node, context: *mut ::std::os::raw::c_void) -> bool, +>; +pub type planstate_tree_walker_callback = ::std::option::Option< + unsafe extern "C" fn(planstate: *mut PlanState, context: *mut ::std::os::raw::c_void) -> bool, +>; +pub type tree_mutator_callback = ::std::option::Option< + unsafe extern "C" fn(node: *mut Node, context: *mut ::std::os::raw::c_void) -> *mut Node, +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exprType(expr: *const Node) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exprTypmod(expr: *const Node) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exprIsLengthCoercion(expr: *const Node, coercedTypmod: *mut int32) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn applyRelabelType( + arg: *mut Node, + rtype: Oid, + rtypmod: int32, + rcollid: Oid, + rformat: CoercionForm, + rlocation: ::std::os::raw::c_int, + overwrite_ok: bool, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn relabel_to_typmod(expr: *mut Node, typmod: int32) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn strip_implicit_coercions(node: *mut Node) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expression_returns_set(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exprCollation(expr: *const Node) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exprInputCollation(expr: *const Node) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exprSetCollation(expr: *mut Node, collation: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exprSetInputCollation(expr: *mut Node, inputcollation: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exprLocation(expr: *const Node) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fix_opfuncids(node: *mut Node); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_opfuncid(opexpr: *mut OpExpr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_sa_opfuncid(opexpr: *mut ScalarArrayOpExpr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_functions_in_node( + node: *mut Node, + checker: check_function_callback, + context: *mut ::std::os::raw::c_void, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expression_tree_walker_impl( + node: *mut Node, + walker: tree_walker_callback, + context: *mut ::std::os::raw::c_void, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expression_tree_mutator_impl( + node: *mut Node, + mutator: tree_mutator_callback, + context: *mut ::std::os::raw::c_void, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_tree_walker_impl( + query: *mut Query, + walker: tree_walker_callback, + context: *mut ::std::os::raw::c_void, + flags: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_tree_mutator_impl( + query: *mut Query, + mutator: tree_mutator_callback, + context: *mut ::std::os::raw::c_void, + flags: ::std::os::raw::c_int, + ) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_table_walker_impl( + rtable: *mut List, + walker: tree_walker_callback, + context: *mut ::std::os::raw::c_void, + flags: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_table_mutator_impl( + rtable: *mut List, + mutator: tree_mutator_callback, + context: *mut ::std::os::raw::c_void, + flags: ::std::os::raw::c_int, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_table_entry_walker_impl( + rte: *mut RangeTblEntry, + walker: tree_walker_callback, + context: *mut ::std::os::raw::c_void, + flags: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_or_expression_tree_walker_impl( + node: *mut Node, + walker: tree_walker_callback, + context: *mut ::std::os::raw::c_void, + flags: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_or_expression_tree_mutator_impl( + node: *mut Node, + mutator: tree_mutator_callback, + context: *mut ::std::os::raw::c_void, + flags: ::std::os::raw::c_int, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn raw_expression_tree_walker_impl( + node: *mut Node, + walker: tree_walker_callback, + context: *mut ::std::os::raw::c_void, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn planstate_tree_walker_impl( + planstate: *mut PlanState, + walker: planstate_tree_walker_callback, + context: *mut ::std::os::raw::c_void, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn print(obj: *const ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pprint(obj: *const ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn elog_node_display( + lev: ::std::os::raw::c_int, + title: *const ::std::os::raw::c_char, + obj: *const ::std::os::raw::c_void, + pretty: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn format_node_dump(dump: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pretty_format_node_dump( + dump: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn print_rt(rtable: *const List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn print_expr(expr: *const Node, rtable: *const List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn print_pathkeys(pathkeys: *const List, rtable: *const List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn print_tl(tlist: *const List, rtable: *const List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn print_slot(slot: *mut TupleTableSlot); +} +pub const ReplicationKind_REPLICATION_KIND_PHYSICAL: ReplicationKind = 0; +pub const ReplicationKind_REPLICATION_KIND_LOGICAL: ReplicationKind = 1; +pub type ReplicationKind = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IdentifySystemCmd { + pub type_: NodeTag, +} +impl Default for IdentifySystemCmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BaseBackupCmd { + pub type_: NodeTag, + pub options: *mut List, +} +impl Default for BaseBackupCmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CreateReplicationSlotCmd { + pub type_: NodeTag, + pub slotname: *mut ::std::os::raw::c_char, + pub kind: ReplicationKind, + pub plugin: *mut ::std::os::raw::c_char, + pub temporary: bool, + pub options: *mut List, +} +impl Default for CreateReplicationSlotCmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DropReplicationSlotCmd { + pub type_: NodeTag, + pub slotname: *mut ::std::os::raw::c_char, + pub wait: bool, +} +impl Default for DropReplicationSlotCmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StartReplicationCmd { + pub type_: NodeTag, + pub kind: ReplicationKind, + pub slotname: *mut ::std::os::raw::c_char, + pub timeline: TimeLineID, + pub startpoint: XLogRecPtr, + pub options: *mut List, +} +impl Default for StartReplicationCmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReadReplicationSlotCmd { + pub type_: NodeTag, + pub slotname: *mut ::std::os::raw::c_char, +} +impl Default for ReadReplicationSlotCmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TimeLineHistoryCmd { + pub type_: NodeTag, + pub timeline: TimeLineID, +} +impl Default for TimeLineHistoryCmd { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SupportRequestSimplify { + pub type_: NodeTag, + pub root: *mut PlannerInfo, + pub fcall: *mut FuncExpr, +} +impl Default for SupportRequestSimplify { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SupportRequestSelectivity { + pub type_: NodeTag, + pub root: *mut PlannerInfo, + pub funcid: Oid, + pub args: *mut List, + pub inputcollid: Oid, + pub is_join: bool, + pub varRelid: ::std::os::raw::c_int, + pub jointype: JoinType, + pub sjinfo: *mut SpecialJoinInfo, + pub selectivity: Selectivity, +} +impl Default for SupportRequestSelectivity { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SupportRequestCost { + pub type_: NodeTag, + pub root: *mut PlannerInfo, + pub funcid: Oid, + pub node: *mut Node, + pub startup: Cost, + pub per_tuple: Cost, +} +impl Default for SupportRequestCost { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SupportRequestRows { + pub type_: NodeTag, + pub root: *mut PlannerInfo, + pub funcid: Oid, + pub node: *mut Node, + pub rows: f64, +} +impl Default for SupportRequestRows { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SupportRequestIndexCondition { + pub type_: NodeTag, + pub root: *mut PlannerInfo, + pub funcid: Oid, + pub node: *mut Node, + pub indexarg: ::std::os::raw::c_int, + pub index: *mut IndexOptInfo, + pub indexcol: ::std::os::raw::c_int, + pub opfamily: Oid, + pub indexcollation: Oid, + pub lossy: bool, +} +impl Default for SupportRequestIndexCondition { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SupportRequestWFuncMonotonic { + pub type_: NodeTag, + pub window_func: *mut WindowFunc, + pub window_clause: *mut WindowClause, + pub monotonic: MonotonicFunction, +} +impl Default for SupportRequestWFuncMonotonic { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SupportRequestOptimizeWindowClause { + pub type_: NodeTag, + pub window_func: *mut WindowFunc, + pub window_clause: *mut WindowClause, + pub frameOptions: ::std::os::raw::c_int, +} +impl Default for SupportRequestOptimizeWindowClause { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_append_rel_info( + parentrel: Relation, + childrel: Relation, + parentRTindex: Index, + childRTindex: Index, + ) -> *mut AppendRelInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn adjust_appendrel_attrs( + root: *mut PlannerInfo, + node: *mut Node, + nappinfos: ::std::os::raw::c_int, + appinfos: *mut *mut AppendRelInfo, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn adjust_appendrel_attrs_multilevel( + root: *mut PlannerInfo, + node: *mut Node, + childrel: *mut RelOptInfo, + parentrel: *mut RelOptInfo, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn adjust_child_relids( + relids: Relids, + nappinfos: ::std::os::raw::c_int, + appinfos: *mut *mut AppendRelInfo, + ) -> Relids; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn adjust_child_relids_multilevel( + root: *mut PlannerInfo, + relids: Relids, + childrel: *mut RelOptInfo, + parentrel: *mut RelOptInfo, + ) -> Relids; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn adjust_inherited_attnums(attnums: *mut List, context: *mut AppendRelInfo) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn adjust_inherited_attnums_multilevel( + root: *mut PlannerInfo, + attnums: *mut List, + child_relid: Index, + top_parent_relid: Index, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_translated_update_targetlist( + root: *mut PlannerInfo, + relid: Index, + processed_tlist: *mut *mut List, + update_colnos: *mut *mut List, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_appinfos_by_relids( + root: *mut PlannerInfo, + relids: Relids, + nappinfos: *mut ::std::os::raw::c_int, + ) -> *mut *mut AppendRelInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_row_identity_var( + root: *mut PlannerInfo, + orig_var: *mut Var, + rtindex: Index, + rowid_name: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_row_identity_columns( + root: *mut PlannerInfo, + rtindex: Index, + target_rte: *mut RangeTblEntry, + target_relation: Relation, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn distribute_row_identity_vars(root: *mut PlannerInfo); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WindowFuncLists { + pub numWindowFuncs: ::std::os::raw::c_int, + pub maxWinRef: Index, + pub windowFuncs: *mut *mut List, +} +impl Default for WindowFuncLists { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_agg_clause(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_window_function(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_window_functions(clause: *mut Node, maxWinRef: Index) -> *mut WindowFuncLists; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expression_returns_set_rows(root: *mut PlannerInfo, clause: *mut Node) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_subplans(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn max_parallel_hazard(parse: *mut Query) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_parallel_safe(root: *mut PlannerInfo, node: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_nonstrict_functions(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_exec_param(clause: *mut Node, param_ids: *mut List) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_leaked_vars(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_nonnullable_rels(clause: *mut Node) -> Relids; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_nonnullable_vars(clause: *mut Node) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_forced_null_vars(node: *mut Node) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_forced_null_var(node: *mut Node) -> *mut Var; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_pseudo_constant_clause(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_pseudo_constant_clause_relids(clause: *mut Node, relids: Relids) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn NumRelids(root: *mut PlannerInfo, clause: *mut Node) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CommuteOpExpr(clause: *mut OpExpr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inline_set_returning_function( + root: *mut PlannerInfo, + rte: *mut RangeTblEntry, + ) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pull_paramids(expr: *mut Expr) -> *mut Bitmapset; +} +pub const ConstraintExclusionType_CONSTRAINT_EXCLUSION_OFF: ConstraintExclusionType = 0; +pub const ConstraintExclusionType_CONSTRAINT_EXCLUSION_ON: ConstraintExclusionType = 1; +pub const ConstraintExclusionType_CONSTRAINT_EXCLUSION_PARTITION: ConstraintExclusionType = 2; +pub type ConstraintExclusionType = ::std::os::raw::c_uint; +extern "C" { + pub static mut disable_cost: Cost; +} +extern "C" { + pub static mut max_parallel_workers_per_gather: ::std::os::raw::c_int; +} +extern "C" { + pub static mut enable_seqscan: bool; +} +extern "C" { + pub static mut enable_indexscan: bool; +} +extern "C" { + pub static mut enable_indexonlyscan: bool; +} +extern "C" { + pub static mut enable_bitmapscan: bool; +} +extern "C" { + pub static mut enable_tidscan: bool; +} +extern "C" { + pub static mut enable_sort: bool; +} +extern "C" { + pub static mut enable_incremental_sort: bool; +} +extern "C" { + pub static mut enable_hashagg: bool; +} +extern "C" { + pub static mut enable_nestloop: bool; +} +extern "C" { + pub static mut enable_material: bool; +} +extern "C" { + pub static mut enable_memoize: bool; +} +extern "C" { + pub static mut enable_mergejoin: bool; +} +extern "C" { + pub static mut enable_hashjoin: bool; +} +extern "C" { + pub static mut enable_gathermerge: bool; +} +extern "C" { + pub static mut enable_partitionwise_join: bool; +} +extern "C" { + pub static mut enable_partitionwise_aggregate: bool; +} +extern "C" { + pub static mut enable_parallel_append: bool; +} +extern "C" { + pub static mut enable_parallel_hash: bool; +} +extern "C" { + pub static mut enable_partition_pruning: bool; +} +extern "C" { + pub static mut enable_presorted_aggregate: bool; +} +extern "C" { + pub static mut enable_async_append: bool; +} +extern "C" { + pub static mut constraint_exclusion: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_pages_fetched( + tuples_fetched: f64, + pages: BlockNumber, + index_pages: f64, + root: *mut PlannerInfo, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_seqscan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_samplescan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_index( + path: *mut IndexPath, + root: *mut PlannerInfo, + loop_count: f64, + partial_path: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_bitmap_heap_scan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + bitmapqual: *mut Path, + loop_count: f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_bitmap_and_node(path: *mut BitmapAndPath, root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_bitmap_or_node(path: *mut BitmapOrPath, root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_bitmap_tree_node(path: *mut Path, cost: *mut Cost, selec: *mut Selectivity); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_tidscan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + tidquals: *mut List, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_tidrangescan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + tidrangequals: *mut List, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_subqueryscan( + path: *mut SubqueryScanPath, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + trivial_pathtarget: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_functionscan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_valuesscan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_tablefuncscan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_ctescan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_namedtuplestorescan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_resultscan( + path: *mut Path, + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_recursive_union(runion: *mut Path, nrterm: *mut Path, rterm: *mut Path); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_sort( + path: *mut Path, + root: *mut PlannerInfo, + pathkeys: *mut List, + input_cost: Cost, + tuples: f64, + width: ::std::os::raw::c_int, + comparison_cost: Cost, + sort_mem: ::std::os::raw::c_int, + limit_tuples: f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_incremental_sort( + path: *mut Path, + root: *mut PlannerInfo, + pathkeys: *mut List, + presorted_keys: ::std::os::raw::c_int, + input_startup_cost: Cost, + input_total_cost: Cost, + input_tuples: f64, + width: ::std::os::raw::c_int, + comparison_cost: Cost, + sort_mem: ::std::os::raw::c_int, + limit_tuples: f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_append(apath: *mut AppendPath); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_merge_append( + path: *mut Path, + root: *mut PlannerInfo, + pathkeys: *mut List, + n_streams: ::std::os::raw::c_int, + input_startup_cost: Cost, + input_total_cost: Cost, + tuples: f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_material( + path: *mut Path, + input_startup_cost: Cost, + input_total_cost: Cost, + tuples: f64, + width: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_agg( + path: *mut Path, + root: *mut PlannerInfo, + aggstrategy: AggStrategy, + aggcosts: *const AggClauseCosts, + numGroupCols: ::std::os::raw::c_int, + numGroups: f64, + quals: *mut List, + input_startup_cost: Cost, + input_total_cost: Cost, + input_tuples: f64, + input_width: f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_windowagg( + path: *mut Path, + root: *mut PlannerInfo, + windowFuncs: *mut List, + numPartCols: ::std::os::raw::c_int, + numOrderCols: ::std::os::raw::c_int, + input_startup_cost: Cost, + input_total_cost: Cost, + input_tuples: f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_group( + path: *mut Path, + root: *mut PlannerInfo, + numGroupCols: ::std::os::raw::c_int, + numGroups: f64, + quals: *mut List, + input_startup_cost: Cost, + input_total_cost: Cost, + input_tuples: f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initial_cost_nestloop( + root: *mut PlannerInfo, + workspace: *mut JoinCostWorkspace, + jointype: JoinType, + outer_path: *mut Path, + inner_path: *mut Path, + extra: *mut JoinPathExtraData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn final_cost_nestloop( + root: *mut PlannerInfo, + path: *mut NestPath, + workspace: *mut JoinCostWorkspace, + extra: *mut JoinPathExtraData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initial_cost_mergejoin( + root: *mut PlannerInfo, + workspace: *mut JoinCostWorkspace, + jointype: JoinType, + mergeclauses: *mut List, + outer_path: *mut Path, + inner_path: *mut Path, + outersortkeys: *mut List, + innersortkeys: *mut List, + extra: *mut JoinPathExtraData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn final_cost_mergejoin( + root: *mut PlannerInfo, + path: *mut MergePath, + workspace: *mut JoinCostWorkspace, + extra: *mut JoinPathExtraData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initial_cost_hashjoin( + root: *mut PlannerInfo, + workspace: *mut JoinCostWorkspace, + jointype: JoinType, + hashclauses: *mut List, + outer_path: *mut Path, + inner_path: *mut Path, + extra: *mut JoinPathExtraData, + parallel_hash: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn final_cost_hashjoin( + root: *mut PlannerInfo, + path: *mut HashPath, + workspace: *mut JoinCostWorkspace, + extra: *mut JoinPathExtraData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_gather( + path: *mut GatherPath, + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + rows: *mut f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_gather_merge( + path: *mut GatherMergePath, + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + param_info: *mut ParamPathInfo, + input_startup_cost: Cost, + input_total_cost: Cost, + rows: *mut f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_subplan(root: *mut PlannerInfo, subplan: *mut SubPlan, plan: *mut Plan); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_qual_eval(cost: *mut QualCost, quals: *mut List, root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cost_qual_eval_node(cost: *mut QualCost, qual: *mut Node, root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compute_semi_anti_join_factors( + root: *mut PlannerInfo, + joinrel: *mut RelOptInfo, + outerrel: *mut RelOptInfo, + innerrel: *mut RelOptInfo, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + restrictlist: *mut List, + semifactors: *mut SemiAntiJoinFactors, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_baserel_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_parameterized_baserel_size( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + param_clauses: *mut List, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_parameterized_joinrel_size( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + outer_path: *mut Path, + inner_path: *mut Path, + sjinfo: *mut SpecialJoinInfo, + restrict_clauses: *mut List, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_joinrel_size_estimates( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + outer_rel: *mut RelOptInfo, + inner_rel: *mut RelOptInfo, + sjinfo: *mut SpecialJoinInfo, + restrictlist: *mut List, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_subquery_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_function_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_values_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_cte_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo, cte_rows: f64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_tablefunc_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_namedtuplestore_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_result_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_foreign_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_pathtarget_cost_width( + root: *mut PlannerInfo, + target: *mut PathTarget, + ) -> *mut PathTarget; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compute_bitmap_pages( + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + bitmapqual: *mut Path, + loop_count: ::std::os::raw::c_int, + cost: *mut Cost, + tuple: *mut f64, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clause_selectivity( + root: *mut PlannerInfo, + clause: *mut Node, + varRelid: ::std::os::raw::c_int, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clause_selectivity_ext( + root: *mut PlannerInfo, + clause: *mut Node, + varRelid: ::std::os::raw::c_int, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + use_extended_stats: bool, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clauselist_selectivity( + root: *mut PlannerInfo, + clauses: *mut List, + varRelid: ::std::os::raw::c_int, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clauselist_selectivity_ext( + root: *mut PlannerInfo, + clauses: *mut List, + varRelid: ::std::os::raw::c_int, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + use_extended_stats: bool, + ) -> Selectivity; +} +extern "C" { + pub static mut seq_page_cost: f64; +} +extern "C" { + pub static mut random_page_cost: f64; +} +extern "C" { + pub static mut cpu_tuple_cost: f64; +} +extern "C" { + pub static mut cpu_index_tuple_cost: f64; +} +extern "C" { + pub static mut cpu_operator_cost: f64; +} +extern "C" { + pub static mut parallel_tuple_cost: f64; +} +extern "C" { + pub static mut parallel_setup_cost: f64; +} +extern "C" { + pub static mut recursive_worktable_factor: f64; +} +extern "C" { + pub static mut effective_cache_size: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clamp_row_est(nrows: f64) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clamp_cardinality_to_long(x: Cardinality) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_pseudo_constant_for_index( + root: *mut PlannerInfo, + expr: *mut Node, + index: *mut IndexOptInfo, + ) -> bool; +} +pub const DebugParallelMode_DEBUG_PARALLEL_OFF: DebugParallelMode = 0; +pub const DebugParallelMode_DEBUG_PARALLEL_ON: DebugParallelMode = 1; +pub const DebugParallelMode_DEBUG_PARALLEL_REGRESS: DebugParallelMode = 2; +pub type DebugParallelMode = ::std::os::raw::c_uint; +extern "C" { + pub static mut debug_parallel_query: ::std::os::raw::c_int; +} +extern "C" { + pub static mut parallel_leader_participation: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn planner( + parse: *mut Query, + query_string: *const ::std::os::raw::c_char, + cursorOptions: ::std::os::raw::c_int, + boundParams: *mut ParamListInfoData, + ) -> *mut PlannedStmt; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expression_planner(expr: *mut Expr) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expression_planner_with_deps( + expr: *mut Expr, + relationOids: *mut *mut List, + invalItems: *mut *mut List, + ) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plan_cluster_use_sort(tableOid: Oid, indexOid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plan_create_index_workers(tableOid: Oid, indexOid: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_query_dependencies( + query: *mut Node, + relationOids: *mut *mut List, + invalItems: *mut *mut List, + hasRowSecurity: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn negate_clause(node: *mut Node) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn canonicalize_qual(qual: *mut Expr, is_check: bool) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_mutable_functions(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_volatile_functions(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_volatile_functions_not_nextval(clause: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn eval_const_expressions(root: *mut PlannerInfo, node: *mut Node) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn convert_saop_to_hashed_saop(node: *mut Node); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn estimate_expression_value(root: *mut PlannerInfo, node: *mut Node) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn evaluate_expr( + expr: *mut Expr, + result_type: Oid, + result_typmod: int32, + result_collation: Oid, + ) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expand_function_arguments( + args: *mut List, + include_out_arguments: bool, + result_type: Oid, + func_tuple: *mut HeapTupleData, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn predicate_implied_by( + predicate_list: *mut List, + clause_list: *mut List, + weak: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn predicate_refuted_by( + predicate_list: *mut List, + clause_list: *mut List, + weak: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn count_nonjunk_tlist_entries(tlist: *mut List) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_sortgroupref_tle(sortref: Index, targetList: *mut List) -> *mut TargetEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_sortgroupclause_tle( + sgClause: *mut SortGroupClause, + targetList: *mut List, + ) -> *mut TargetEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_sortgroupclause_expr( + sgClause: *mut SortGroupClause, + targetList: *mut List, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_sortgrouplist_exprs(sgClauses: *mut List, targetList: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_sortgroupref_clause(sortref: Index, clauses: *mut List) -> *mut SortGroupClause; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_sortgroupref_clause_noerr( + sortref: Index, + clauses: *mut List, + ) -> *mut SortGroupClause; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pull_varnos(root: *mut PlannerInfo, node: *mut Node) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pull_varnos_of_level( + root: *mut PlannerInfo, + node: *mut Node, + levelsup: ::std::os::raw::c_int, + ) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pull_varattnos(node: *mut Node, varno: Index, varattnos: *mut *mut Bitmapset); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pull_vars_of_level(node: *mut Node, levelsup: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_var_clause(node: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contain_vars_of_level(node: *mut Node, levelsup: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn locate_var_of_level( + node: *mut Node, + levelsup: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pull_var_clause(node: *mut Node, flags: ::std::os::raw::c_int) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn flatten_join_alias_vars( + root: *mut PlannerInfo, + query: *mut Query, + node: *mut Node, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compare_path_costs( + path1: *mut Path, + path2: *mut Path, + criterion: CostSelector, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compare_fractional_path_costs( + path1: *mut Path, + path2: *mut Path, + fraction: f64, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_cheapest(parent_rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_path(parent_rel: *mut RelOptInfo, new_path: *mut Path); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_path_precheck( + parent_rel: *mut RelOptInfo, + startup_cost: Cost, + total_cost: Cost, + pathkeys: *mut List, + required_outer: Relids, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_partial_path(parent_rel: *mut RelOptInfo, new_path: *mut Path); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_partial_path_precheck( + parent_rel: *mut RelOptInfo, + total_cost: Cost, + pathkeys: *mut List, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_seqscan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + required_outer: Relids, + parallel_workers: ::std::os::raw::c_int, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_samplescan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + required_outer: Relids, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_index_path( + root: *mut PlannerInfo, + index: *mut IndexOptInfo, + indexclauses: *mut List, + indexorderbys: *mut List, + indexorderbycols: *mut List, + pathkeys: *mut List, + indexscandir: ScanDirection, + indexonly: bool, + required_outer: Relids, + loop_count: f64, + partial_path: bool, + ) -> *mut IndexPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_bitmap_heap_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + bitmapqual: *mut Path, + required_outer: Relids, + loop_count: f64, + parallel_degree: ::std::os::raw::c_int, + ) -> *mut BitmapHeapPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_bitmap_and_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + bitmapquals: *mut List, + ) -> *mut BitmapAndPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_bitmap_or_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + bitmapquals: *mut List, + ) -> *mut BitmapOrPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_tidscan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + tidquals: *mut List, + required_outer: Relids, + ) -> *mut TidPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_tidrangescan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + tidrangequals: *mut List, + required_outer: Relids, + ) -> *mut TidRangePath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_append_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpaths: *mut List, + partial_subpaths: *mut List, + pathkeys: *mut List, + required_outer: Relids, + parallel_workers: ::std::os::raw::c_int, + parallel_aware: bool, + rows: f64, + ) -> *mut AppendPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_merge_append_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpaths: *mut List, + pathkeys: *mut List, + required_outer: Relids, + ) -> *mut MergeAppendPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_group_result_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + target: *mut PathTarget, + havingqual: *mut List, + ) -> *mut GroupResultPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_material_path(rel: *mut RelOptInfo, subpath: *mut Path) -> *mut MaterialPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_memoize_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + param_exprs: *mut List, + hash_operators: *mut List, + singlerow: bool, + binary_mode: bool, + calls: f64, + ) -> *mut MemoizePath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_unique_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + sjinfo: *mut SpecialJoinInfo, + ) -> *mut UniquePath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_gather_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + target: *mut PathTarget, + required_outer: Relids, + rows: *mut f64, + ) -> *mut GatherPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_gather_merge_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + target: *mut PathTarget, + pathkeys: *mut List, + required_outer: Relids, + rows: *mut f64, + ) -> *mut GatherMergePath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_subqueryscan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + trivial_pathtarget: bool, + pathkeys: *mut List, + required_outer: Relids, + ) -> *mut SubqueryScanPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_functionscan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + pathkeys: *mut List, + required_outer: Relids, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_valuesscan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + required_outer: Relids, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_tablefuncscan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + required_outer: Relids, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_ctescan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + required_outer: Relids, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_namedtuplestorescan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + required_outer: Relids, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_resultscan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + required_outer: Relids, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_worktablescan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + required_outer: Relids, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_foreignscan_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + target: *mut PathTarget, + rows: f64, + startup_cost: Cost, + total_cost: Cost, + pathkeys: *mut List, + required_outer: Relids, + fdw_outerpath: *mut Path, + fdw_private: *mut List, + ) -> *mut ForeignPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_foreign_join_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + target: *mut PathTarget, + rows: f64, + startup_cost: Cost, + total_cost: Cost, + pathkeys: *mut List, + required_outer: Relids, + fdw_outerpath: *mut Path, + fdw_private: *mut List, + ) -> *mut ForeignPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_foreign_upper_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + target: *mut PathTarget, + rows: f64, + startup_cost: Cost, + total_cost: Cost, + pathkeys: *mut List, + fdw_outerpath: *mut Path, + fdw_private: *mut List, + ) -> *mut ForeignPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn calc_nestloop_required_outer( + outerrelids: Relids, + outer_paramrels: Relids, + innerrelids: Relids, + inner_paramrels: Relids, + ) -> Relids; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn calc_non_nestloop_required_outer(outer_path: *mut Path, inner_path: *mut Path) + -> Relids; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_nestloop_path( + root: *mut PlannerInfo, + joinrel: *mut RelOptInfo, + jointype: JoinType, + workspace: *mut JoinCostWorkspace, + extra: *mut JoinPathExtraData, + outer_path: *mut Path, + inner_path: *mut Path, + restrict_clauses: *mut List, + pathkeys: *mut List, + required_outer: Relids, + ) -> *mut NestPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_mergejoin_path( + root: *mut PlannerInfo, + joinrel: *mut RelOptInfo, + jointype: JoinType, + workspace: *mut JoinCostWorkspace, + extra: *mut JoinPathExtraData, + outer_path: *mut Path, + inner_path: *mut Path, + restrict_clauses: *mut List, + pathkeys: *mut List, + required_outer: Relids, + mergeclauses: *mut List, + outersortkeys: *mut List, + innersortkeys: *mut List, + ) -> *mut MergePath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_hashjoin_path( + root: *mut PlannerInfo, + joinrel: *mut RelOptInfo, + jointype: JoinType, + workspace: *mut JoinCostWorkspace, + extra: *mut JoinPathExtraData, + outer_path: *mut Path, + inner_path: *mut Path, + parallel_hash: bool, + restrict_clauses: *mut List, + required_outer: Relids, + hashclauses: *mut List, + ) -> *mut HashPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_projection_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + target: *mut PathTarget, + ) -> *mut ProjectionPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn apply_projection_to_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + path: *mut Path, + target: *mut PathTarget, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_set_projection_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + target: *mut PathTarget, + ) -> *mut ProjectSetPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_sort_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + pathkeys: *mut List, + limit_tuples: f64, + ) -> *mut SortPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_incremental_sort_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + pathkeys: *mut List, + presorted_keys: ::std::os::raw::c_int, + limit_tuples: f64, + ) -> *mut IncrementalSortPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_group_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + groupClause: *mut List, + qual: *mut List, + numGroups: f64, + ) -> *mut GroupPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_upper_unique_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + numCols: ::std::os::raw::c_int, + numGroups: f64, + ) -> *mut UpperUniquePath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_agg_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + target: *mut PathTarget, + aggstrategy: AggStrategy, + aggsplit: AggSplit, + groupClause: *mut List, + qual: *mut List, + aggcosts: *const AggClauseCosts, + numGroups: f64, + ) -> *mut AggPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_groupingsets_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + having_qual: *mut List, + aggstrategy: AggStrategy, + rollups: *mut List, + agg_costs: *const AggClauseCosts, + ) -> *mut GroupingSetsPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_minmaxagg_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + target: *mut PathTarget, + mmaggregates: *mut List, + quals: *mut List, + ) -> *mut MinMaxAggPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_windowagg_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + target: *mut PathTarget, + windowFuncs: *mut List, + winclause: *mut WindowClause, + qual: *mut List, + topwindow: bool, + ) -> *mut WindowAggPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_setop_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + cmd: SetOpCmd, + strategy: SetOpStrategy, + distinctList: *mut List, + flagColIdx: AttrNumber, + firstFlag: ::std::os::raw::c_int, + numGroups: f64, + outputRows: f64, + ) -> *mut SetOpPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_recursiveunion_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + leftpath: *mut Path, + rightpath: *mut Path, + target: *mut PathTarget, + distinctList: *mut List, + wtParam: ::std::os::raw::c_int, + numGroups: f64, + ) -> *mut RecursiveUnionPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_lockrows_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + rowMarks: *mut List, + epqParam: ::std::os::raw::c_int, + ) -> *mut LockRowsPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_modifytable_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + operation: CmdType, + canSetTag: bool, + nominalRelation: Index, + rootRelation: Index, + partColsUpdated: bool, + resultRelations: *mut List, + updateColnosLists: *mut List, + withCheckOptionLists: *mut List, + returningLists: *mut List, + rowMarks: *mut List, + onconflict: *mut OnConflictExpr, + mergeActionLists: *mut List, + epqParam: ::std::os::raw::c_int, + ) -> *mut ModifyTablePath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_limit_path( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subpath: *mut Path, + limitOffset: *mut Node, + limitCount: *mut Node, + limitOption: LimitOption, + offset_est: int64, + count_est: int64, + ) -> *mut LimitPath; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn adjust_limit_rows_costs( + rows: *mut f64, + startup_cost: *mut Cost, + total_cost: *mut Cost, + offset_est: int64, + count_est: int64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reparameterize_path( + root: *mut PlannerInfo, + path: *mut Path, + required_outer: Relids, + loop_count: f64, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reparameterize_path_by_child( + root: *mut PlannerInfo, + path: *mut Path, + child_rel: *mut RelOptInfo, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn setup_simple_rel_arrays(root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expand_planner_arrays(root: *mut PlannerInfo, add_size: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_simple_rel( + root: *mut PlannerInfo, + relid: ::std::os::raw::c_int, + parent: *mut RelOptInfo, + ) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_base_rel(root: *mut PlannerInfo, relid: ::std::os::raw::c_int) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_base_rel_ignore_join( + root: *mut PlannerInfo, + relid: ::std::os::raw::c_int, + ) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_join_rel(root: *mut PlannerInfo, relids: Relids) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_join_rel( + root: *mut PlannerInfo, + joinrelids: Relids, + outer_rel: *mut RelOptInfo, + inner_rel: *mut RelOptInfo, + sjinfo: *mut SpecialJoinInfo, + pushed_down_joins: *mut List, + restrictlist_ptr: *mut *mut List, + ) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn min_join_parameterization( + root: *mut PlannerInfo, + joinrelids: Relids, + outer_rel: *mut RelOptInfo, + inner_rel: *mut RelOptInfo, + ) -> Relids; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fetch_upper_rel( + root: *mut PlannerInfo, + kind: UpperRelationKind, + relids: Relids, + ) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_childrel_parents(root: *mut PlannerInfo, rel: *mut RelOptInfo) -> Relids; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_baserel_parampathinfo( + root: *mut PlannerInfo, + baserel: *mut RelOptInfo, + required_outer: Relids, + ) -> *mut ParamPathInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_joinrel_parampathinfo( + root: *mut PlannerInfo, + joinrel: *mut RelOptInfo, + outer_path: *mut Path, + inner_path: *mut Path, + sjinfo: *mut SpecialJoinInfo, + required_outer: Relids, + restrict_clauses: *mut *mut List, + ) -> *mut ParamPathInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_appendrel_parampathinfo( + appendrel: *mut RelOptInfo, + required_outer: Relids, + ) -> *mut ParamPathInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_param_path_info(rel: *mut RelOptInfo, required_outer: Relids) + -> *mut ParamPathInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_param_path_clause_serials(path: *mut Path) -> *mut Bitmapset; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_child_join_rel( + root: *mut PlannerInfo, + outer_rel: *mut RelOptInfo, + inner_rel: *mut RelOptInfo, + parent_joinrel: *mut RelOptInfo, + restrictlist: *mut List, + sjinfo: *mut SpecialJoinInfo, + ) -> *mut RelOptInfo; +} +extern "C" { + pub static mut enable_geqo: bool; +} +extern "C" { + pub static mut geqo_threshold: ::std::os::raw::c_int; +} +extern "C" { + pub static mut min_parallel_table_scan_size: ::std::os::raw::c_int; +} +extern "C" { + pub static mut min_parallel_index_scan_size: ::std::os::raw::c_int; +} +pub type set_rel_pathlist_hook_type = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + rti: Index, + rte: *mut RangeTblEntry, + ), +>; +extern "C" { + pub static mut set_rel_pathlist_hook: set_rel_pathlist_hook_type; +} +pub type set_join_pathlist_hook_type = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + joinrel: *mut RelOptInfo, + outerrel: *mut RelOptInfo, + innerrel: *mut RelOptInfo, + jointype: JoinType, + extra: *mut JoinPathExtraData, + ), +>; +extern "C" { + pub static mut set_join_pathlist_hook: set_join_pathlist_hook_type; +} +pub type join_search_hook_type = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + levels_needed: ::std::os::raw::c_int, + initial_rels: *mut List, + ) -> *mut RelOptInfo, +>; +extern "C" { + pub static mut join_search_hook: join_search_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_one_rel(root: *mut PlannerInfo, joinlist: *mut List) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standard_join_search( + root: *mut PlannerInfo, + levels_needed: ::std::os::raw::c_int, + initial_rels: *mut List, + ) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_gather_paths(root: *mut PlannerInfo, rel: *mut RelOptInfo, override_rows: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_useful_gather_paths( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + override_rows: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compute_parallel_worker( + rel: *mut RelOptInfo, + heap_pages: f64, + index_pages: f64, + max_workers: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_partial_bitmap_paths( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + bitmapqual: *mut Path, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_partitionwise_join_paths(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_index_paths(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn relation_has_unique_index_for( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + restrictlist: *mut List, + exprlist: *mut List, + oprlist: *mut List, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn indexcol_is_bool_constant_for_query( + root: *mut PlannerInfo, + index: *mut IndexOptInfo, + indexcol: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn match_index_to_operand( + operand: *mut Node, + indexcol: ::std::os::raw::c_int, + index: *mut IndexOptInfo, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_index_predicates(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_tidscan_paths(root: *mut PlannerInfo, rel: *mut RelOptInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_paths_to_joinrel( + root: *mut PlannerInfo, + joinrel: *mut RelOptInfo, + outerrel: *mut RelOptInfo, + innerrel: *mut RelOptInfo, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + restrictlist: *mut List, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn join_search_one_level(root: *mut PlannerInfo, level: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_join_rel( + root: *mut PlannerInfo, + rel1: *mut RelOptInfo, + rel2: *mut RelOptInfo, + ) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_outer_joins_to_relids( + root: *mut PlannerInfo, + input_relids: Relids, + sjinfo: *mut SpecialJoinInfo, + pushed_down_joins: *mut *mut List, + ) -> Relids; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn have_join_order_restriction( + root: *mut PlannerInfo, + rel1: *mut RelOptInfo, + rel2: *mut RelOptInfo, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn have_dangerous_phv( + root: *mut PlannerInfo, + outer_relids: Relids, + inner_params: Relids, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mark_dummy_rel(rel: *mut RelOptInfo); +} +pub type ec_matches_callback_type = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + ec: *mut EquivalenceClass, + em: *mut EquivalenceMember, + arg: *mut ::std::os::raw::c_void, + ) -> bool, +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn process_equivalence( + root: *mut PlannerInfo, + p_restrictinfo: *mut *mut RestrictInfo, + jdomain: *mut JoinDomain, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn canonicalize_ec_expression( + expr: *mut Expr, + req_type: Oid, + req_collation: Oid, + ) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reconsider_outer_join_clauses(root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_eclass_for_sort_expr( + root: *mut PlannerInfo, + expr: *mut Expr, + opfamilies: *mut List, + opcintype: Oid, + collation: Oid, + sortref: Index, + rel: Relids, + create_it: bool, + ) -> *mut EquivalenceClass; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_ec_member_matching_expr( + ec: *mut EquivalenceClass, + expr: *mut Expr, + relids: Relids, + ) -> *mut EquivalenceMember; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_computable_ec_member( + root: *mut PlannerInfo, + ec: *mut EquivalenceClass, + exprs: *mut List, + relids: Relids, + require_parallel_safe: bool, + ) -> *mut EquivalenceMember; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn relation_can_be_sorted_early( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + ec: *mut EquivalenceClass, + require_parallel_safe: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_base_implied_equalities(root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_join_implied_equalities( + root: *mut PlannerInfo, + join_relids: Relids, + outer_relids: Relids, + inner_rel: *mut RelOptInfo, + sjinfo: *mut SpecialJoinInfo, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_join_implied_equalities_for_ecs( + root: *mut PlannerInfo, + eclasses: *mut List, + join_relids: Relids, + outer_relids: Relids, + inner_rel: *mut RelOptInfo, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exprs_known_equal(root: *mut PlannerInfo, item1: *mut Node, item2: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn match_eclasses_to_foreign_key_col( + root: *mut PlannerInfo, + fkinfo: *mut ForeignKeyOptInfo, + colno: ::std::os::raw::c_int, + ) -> *mut EquivalenceClass; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_derived_clause_for_ec_member( + ec: *mut EquivalenceClass, + em: *mut EquivalenceMember, + ) -> *mut RestrictInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_child_rel_equivalences( + root: *mut PlannerInfo, + appinfo: *mut AppendRelInfo, + parent_rel: *mut RelOptInfo, + child_rel: *mut RelOptInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_child_join_rel_equivalences( + root: *mut PlannerInfo, + nappinfos: ::std::os::raw::c_int, + appinfos: *mut *mut AppendRelInfo, + parent_joinrel: *mut RelOptInfo, + child_joinrel: *mut RelOptInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_implied_equalities_for_column( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + callback: ec_matches_callback_type, + callback_arg: *mut ::std::os::raw::c_void, + prohibited_rels: Relids, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn have_relevant_eclass_joinclause( + root: *mut PlannerInfo, + rel1: *mut RelOptInfo, + rel2: *mut RelOptInfo, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_relevant_eclass_joinclause(root: *mut PlannerInfo, rel1: *mut RelOptInfo) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn eclass_useful_for_merging( + root: *mut PlannerInfo, + eclass: *mut EquivalenceClass, + rel: *mut RelOptInfo, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_redundant_derived_clause(rinfo: *mut RestrictInfo, clauselist: *mut List) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_redundant_with_indexclauses( + rinfo: *mut RestrictInfo, + indexclauses: *mut List, + ) -> bool; +} +pub const PathKeysComparison_PATHKEYS_EQUAL: PathKeysComparison = 0; +pub const PathKeysComparison_PATHKEYS_BETTER1: PathKeysComparison = 1; +pub const PathKeysComparison_PATHKEYS_BETTER2: PathKeysComparison = 2; +pub const PathKeysComparison_PATHKEYS_DIFFERENT: PathKeysComparison = 3; +pub type PathKeysComparison = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compare_pathkeys(keys1: *mut List, keys2: *mut List) -> PathKeysComparison; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pathkeys_contained_in(keys1: *mut List, keys2: *mut List) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pathkeys_count_contained_in( + keys1: *mut List, + keys2: *mut List, + n_common: *mut ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_cheapest_path_for_pathkeys( + paths: *mut List, + pathkeys: *mut List, + required_outer: Relids, + cost_criterion: CostSelector, + require_parallel_safe: bool, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_cheapest_fractional_path_for_pathkeys( + paths: *mut List, + pathkeys: *mut List, + required_outer: Relids, + fraction: f64, + ) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_cheapest_parallel_safe_total_inner(paths: *mut List) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_index_pathkeys( + root: *mut PlannerInfo, + index: *mut IndexOptInfo, + scandir: ScanDirection, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_partition_pathkeys( + root: *mut PlannerInfo, + partrel: *mut RelOptInfo, + scandir: ScanDirection, + partialkeys: *mut bool, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_expression_pathkey( + root: *mut PlannerInfo, + expr: *mut Expr, + opno: Oid, + rel: Relids, + create_it: bool, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn convert_subquery_pathkeys( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + subquery_pathkeys: *mut List, + subquery_tlist: *mut List, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_join_pathkeys( + root: *mut PlannerInfo, + joinrel: *mut RelOptInfo, + jointype: JoinType, + outer_pathkeys: *mut List, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_pathkeys_for_sortclauses( + root: *mut PlannerInfo, + sortclauses: *mut List, + tlist: *mut List, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_pathkeys_for_sortclauses_extended( + root: *mut PlannerInfo, + sortclauses: *mut *mut List, + tlist: *mut List, + remove_redundant: bool, + sortable: *mut bool, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initialize_mergeclause_eclasses(root: *mut PlannerInfo, restrictinfo: *mut RestrictInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn update_mergeclause_eclasses(root: *mut PlannerInfo, restrictinfo: *mut RestrictInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_mergeclauses_for_outer_pathkeys( + root: *mut PlannerInfo, + pathkeys: *mut List, + restrictinfos: *mut List, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn select_outer_pathkeys_for_merge( + root: *mut PlannerInfo, + mergeclauses: *mut List, + joinrel: *mut RelOptInfo, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_inner_pathkeys_for_merge( + root: *mut PlannerInfo, + mergeclauses: *mut List, + outer_pathkeys: *mut List, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn trim_mergeclauses_for_inner_pathkeys( + root: *mut PlannerInfo, + mergeclauses: *mut List, + pathkeys: *mut List, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn truncate_useless_pathkeys( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + pathkeys: *mut List, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_useful_pathkeys(root: *mut PlannerInfo, rel: *mut RelOptInfo) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn append_pathkeys(target: *mut List, source: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_canonical_pathkey( + root: *mut PlannerInfo, + eclass: *mut EquivalenceClass, + opfamily: Oid, + strategy: ::std::os::raw::c_int, + nulls_first: bool, + ) -> *mut PathKey; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_paths_to_append_rel( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + live_childrels: *mut List, + ); +} +pub type get_relation_info_hook_type = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + relationObjectId: Oid, + inhparent: bool, + rel: *mut RelOptInfo, + ), +>; +extern "C" { + pub static mut get_relation_info_hook: get_relation_info_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_relation_info( + root: *mut PlannerInfo, + relationObjectId: Oid, + inhparent: bool, + rel: *mut RelOptInfo, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn infer_arbiter_indexes(root: *mut PlannerInfo) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn estimate_rel_size( + rel: Relation, + attr_widths: *mut int32, + pages: *mut BlockNumber, + tuples: *mut f64, + allvisfrac: *mut f64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rel_data_width(rel: Relation, attr_widths: *mut int32) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_relation_data_width(relid: Oid, attr_widths: *mut int32) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn relation_excluded_by_constraints( + root: *mut PlannerInfo, + rel: *mut RelOptInfo, + rte: *mut RangeTblEntry, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_physical_tlist(root: *mut PlannerInfo, rel: *mut RelOptInfo) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_unique_index(rel: *mut RelOptInfo, attno: AttrNumber) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn restriction_selectivity( + root: *mut PlannerInfo, + operatorid: Oid, + args: *mut List, + inputcollid: Oid, + varRelid: ::std::os::raw::c_int, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn join_selectivity( + root: *mut PlannerInfo, + operatorid: Oid, + args: *mut List, + inputcollid: Oid, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn function_selectivity( + root: *mut PlannerInfo, + funcid: Oid, + args: *mut List, + inputcollid: Oid, + is_join: bool, + varRelid: ::std::os::raw::c_int, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_function_cost( + root: *mut PlannerInfo, + funcid: Oid, + node: *mut Node, + cost: *mut QualCost, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_function_rows(root: *mut PlannerInfo, funcid: Oid, node: *mut Node) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_row_triggers(root: *mut PlannerInfo, rti: Index, event: CmdType) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_stored_generated_columns(root: *mut PlannerInfo, rti: Index) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_dependent_generated_columns( + root: *mut PlannerInfo, + rti: Index, + target_cols: *mut Bitmapset, + ) -> *mut Bitmapset; +} +extern "C" { + pub static mut cursor_tuple_fraction: f64; +} +pub type query_pathkeys_callback = ::std::option::Option< + unsafe extern "C" fn(root: *mut PlannerInfo, extra: *mut ::std::os::raw::c_void), +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_planner( + root: *mut PlannerInfo, + qp_callback: query_pathkeys_callback, + qp_extra: *mut ::std::os::raw::c_void, + ) -> *mut RelOptInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn preprocess_minmax_aggregates(root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_plan(root: *mut PlannerInfo, best_path: *mut Path) -> *mut Plan; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_foreignscan( + qptlist: *mut List, + qpqual: *mut List, + scanrelid: Index, + fdw_exprs: *mut List, + fdw_private: *mut List, + fdw_scan_tlist: *mut List, + fdw_recheck_quals: *mut List, + outer_plan: *mut Plan, + ) -> *mut ForeignScan; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn change_plan_targetlist( + subplan: *mut Plan, + tlist: *mut List, + tlist_parallel_safe: bool, + ) -> *mut Plan; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn materialize_finished_plan(subplan: *mut Plan) -> *mut Plan; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_projection_capable_path(path: *mut Path) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_projection_capable_plan(plan: *mut Plan) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_sort_from_sortclauses(sortcls: *mut List, lefttree: *mut Plan) -> *mut Sort; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_agg( + tlist: *mut List, + qual: *mut List, + aggstrategy: AggStrategy, + aggsplit: AggSplit, + numGroupCols: ::std::os::raw::c_int, + grpColIdx: *mut AttrNumber, + grpOperators: *mut Oid, + grpCollations: *mut Oid, + groupingSets: *mut List, + chain: *mut List, + dNumGroups: f64, + transitionSpace: Size, + lefttree: *mut Plan, + ) -> *mut Agg; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_limit( + lefttree: *mut Plan, + limitOffset: *mut Node, + limitCount: *mut Node, + limitOption: LimitOption, + uniqNumCols: ::std::os::raw::c_int, + uniqColIdx: *mut AttrNumber, + uniqOperators: *mut Oid, + uniqCollations: *mut Oid, + ) -> *mut Limit; +} +extern "C" { + pub static mut from_collapse_limit: ::std::os::raw::c_int; +} +extern "C" { + pub static mut join_collapse_limit: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_base_rels_to_query(root: *mut PlannerInfo, jtnode: *mut Node); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_other_rels_to_query(root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_base_rel_tlists(root: *mut PlannerInfo, final_tlist: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_vars_to_targetlist(root: *mut PlannerInfo, vars: *mut List, where_needed: Relids); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_lateral_references(root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_lateral_join_info(root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deconstruct_jointree(root: *mut PlannerInfo) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn distribute_restrictinfo_to_rels(root: *mut PlannerInfo, restrictinfo: *mut RestrictInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn process_implied_equality( + root: *mut PlannerInfo, + opno: Oid, + collation: Oid, + item1: *mut Expr, + item2: *mut Expr, + qualscope: Relids, + security_level: Index, + both_const: bool, + ) -> *mut RestrictInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_implied_join_equality( + root: *mut PlannerInfo, + opno: Oid, + collation: Oid, + item1: *mut Expr, + item2: *mut Expr, + qualscope: Relids, + security_level: Index, + ) -> *mut RestrictInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn match_foreign_keys_to_quals(root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn remove_useless_joins(root: *mut PlannerInfo, joinlist: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reduce_unique_semijoins(root: *mut PlannerInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_supports_distinctness(query: *mut Query) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_is_distinct_for(query: *mut Query, colnos: *mut List, opids: *mut List) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn innerrel_is_unique( + root: *mut PlannerInfo, + joinrelids: Relids, + outerrelids: Relids, + innerrel: *mut RelOptInfo, + jointype: JoinType, + restrictlist: *mut List, + force_cache: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_plan_references(root: *mut PlannerInfo, plan: *mut Plan) -> *mut Plan; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn trivial_subqueryscan(plan: *mut SubqueryScan) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_plan_function_dependency(root: *mut PlannerInfo, funcid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_plan_type_dependency(root: *mut PlannerInfo, typid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_query_dependencies_walker(node: *mut Node, context: *mut PlannerInfo) -> bool; +} +pub type planner_hook_type = ::std::option::Option< + unsafe extern "C" fn( + parse: *mut Query, + query_string: *const ::std::os::raw::c_char, + cursorOptions: ::std::os::raw::c_int, + boundParams: ParamListInfo, + ) -> *mut PlannedStmt, +>; +extern "C" { + pub static mut planner_hook: planner_hook_type; +} +pub type create_upper_paths_hook_type = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + stage: UpperRelationKind, + input_rel: *mut RelOptInfo, + output_rel: *mut RelOptInfo, + extra: *mut ::std::os::raw::c_void, + ), +>; +extern "C" { + pub static mut create_upper_paths_hook: create_upper_paths_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standard_planner( + parse: *mut Query, + query_string: *const ::std::os::raw::c_char, + cursorOptions: ::std::os::raw::c_int, + boundParams: ParamListInfo, + ) -> *mut PlannedStmt; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn subquery_planner( + glob: *mut PlannerGlobal, + parse: *mut Query, + parent_root: *mut PlannerInfo, + hasRecursion: bool, + tuple_fraction: f64, + ) -> *mut PlannerInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn select_rowmark_type( + rte: *mut RangeTblEntry, + strength: LockClauseStrength, + ) -> RowMarkType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn limit_needed(parse: *mut Query) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mark_partial_aggref(agg: *mut Aggref, aggsplit: AggSplit); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_cheapest_fractional_path(rel: *mut RelOptInfo, tuple_fraction: f64) -> *mut Path; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn preprocess_phv_expression(root: *mut PlannerInfo, expr: *mut Expr) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_restrictinfo( + root: *mut PlannerInfo, + clause: *mut Expr, + is_pushed_down: bool, + pseudoconstant: bool, + security_level: Index, + required_relids: Relids, + outer_relids: Relids, + ) -> *mut RestrictInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn commute_restrictinfo(rinfo: *mut RestrictInfo, comm_op: Oid) -> *mut RestrictInfo; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn restriction_is_or_clause(restrictinfo: *mut RestrictInfo) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn restriction_is_securely_promotable( + restrictinfo: *mut RestrictInfo, + rel: *mut RelOptInfo, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_actual_clauses(restrictinfo_list: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_actual_clauses(restrictinfo_list: *mut List, pseudoconstant: bool) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_actual_join_clauses( + restrictinfo_list: *mut List, + joinrelids: Relids, + joinquals: *mut *mut List, + otherquals: *mut *mut List, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clause_is_computable_at( + root: *mut PlannerInfo, + rinfo: *mut RestrictInfo, + eval_relids: Relids, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn join_clause_is_movable_to(rinfo: *mut RestrictInfo, baserel: *mut RelOptInfo) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn join_clause_is_movable_into( + rinfo: *mut RestrictInfo, + currentrelids: Relids, + current_and_outer: Relids, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tlist_member(node: *mut Expr, targetlist: *mut List) -> *mut TargetEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_to_flat_tlist(tlist: *mut List, exprs: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_tlist_exprs(tlist: *mut List, includeJunk: bool) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tlist_same_exprs(tlist1: *mut List, tlist2: *mut List) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tlist_same_datatypes(tlist: *mut List, colTypes: *mut List, junkOK: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tlist_same_collations(tlist: *mut List, colCollations: *mut List, junkOK: bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn apply_tlist_labeling(dest_tlist: *mut List, src_tlist: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_grouping_ops(groupClause: *mut List) -> *mut Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_grouping_collations(groupClause: *mut List, tlist: *mut List) -> *mut Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_grouping_cols(groupClause: *mut List, tlist: *mut List) -> *mut AttrNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn grouping_is_sortable(groupClause: *mut List) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn grouping_is_hashable(groupClause: *mut List) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_pathtarget_from_tlist(tlist: *mut List) -> *mut PathTarget; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_tlist_from_pathtarget(target: *mut PathTarget) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn copy_pathtarget(src: *mut PathTarget) -> *mut PathTarget; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn create_empty_pathtarget() -> *mut PathTarget; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_column_to_pathtarget(target: *mut PathTarget, expr: *mut Expr, sortgroupref: Index); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_new_column_to_pathtarget(target: *mut PathTarget, expr: *mut Expr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_new_columns_to_pathtarget(target: *mut PathTarget, exprs: *mut List); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn apply_pathtarget_labeling_to_tlist(tlist: *mut List, target: *mut PathTarget); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn split_pathtarget_at_srfs( + root: *mut PlannerInfo, + target: *mut PathTarget, + input_target: *mut PathTarget, + targets: *mut *mut List, + targets_contain_srfs: *mut *mut List, + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LocationLen { + pub location: ::std::os::raw::c_int, + pub length: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JumbleState { + pub jumble: *mut ::std::os::raw::c_uchar, + pub jumble_len: Size, + pub clocations: *mut LocationLen, + pub clocations_buf_size: ::std::os::raw::c_int, + pub clocations_count: ::std::os::raw::c_int, + pub highest_extern_param_id: ::std::os::raw::c_int, +} +impl Default for JumbleState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ComputeQueryIdType_COMPUTE_QUERY_ID_OFF: ComputeQueryIdType = 0; +pub const ComputeQueryIdType_COMPUTE_QUERY_ID_ON: ComputeQueryIdType = 1; +pub const ComputeQueryIdType_COMPUTE_QUERY_ID_AUTO: ComputeQueryIdType = 2; +pub const ComputeQueryIdType_COMPUTE_QUERY_ID_REGRESS: ComputeQueryIdType = 3; +pub type ComputeQueryIdType = ::std::os::raw::c_uint; +extern "C" { + pub static mut compute_query_id: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CleanQuerytext( + query: *const ::std::os::raw::c_char, + location: *mut ::std::os::raw::c_int, + len: *mut ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JumbleQuery( + query: *mut Query, + querytext: *const ::std::os::raw::c_char, + ) -> *mut JumbleState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EnableQueryId(); +} +extern "C" { + pub static mut query_id_enabled: bool; +} +pub type post_parse_analyze_hook_type = ::std::option::Option< + unsafe extern "C" fn(pstate: *mut ParseState, query: *mut Query, jstate: *mut JumbleState), +>; +extern "C" { + pub static mut post_parse_analyze_hook: post_parse_analyze_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_analyze_fixedparams( + parseTree: *mut RawStmt, + sourceText: *const ::std::os::raw::c_char, + paramTypes: *const Oid, + numParams: ::std::os::raw::c_int, + queryEnv: *mut QueryEnvironment, + ) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_analyze_varparams( + parseTree: *mut RawStmt, + sourceText: *const ::std::os::raw::c_char, + paramTypes: *mut *mut Oid, + numParams: *mut ::std::os::raw::c_int, + queryEnv: *mut QueryEnvironment, + ) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_analyze_withcb( + parseTree: *mut RawStmt, + sourceText: *const ::std::os::raw::c_char, + parserSetup: ParserSetupHook, + parserSetupArg: *mut ::std::os::raw::c_void, + queryEnv: *mut QueryEnvironment, + ) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_sub_analyze( + parseTree: *mut Node, + parentParseState: *mut ParseState, + parentCTE: *mut CommonTableExpr, + locked_from_parent: bool, + resolve_unknowns: bool, + ) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn transformInsertRow( + pstate: *mut ParseState, + exprlist: *mut List, + stmtcols: *mut List, + icolumns: *mut List, + attrnos: *mut List, + strip_indirection: bool, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn transformUpdateTargetList(pstate: *mut ParseState, origTlist: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn transformTopLevelStmt(pstate: *mut ParseState, parseTree: *mut RawStmt) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn transformStmt(pstate: *mut ParseState, parseTree: *mut Node) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn analyze_requires_snapshot(parseTree: *mut RawStmt) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LCS_asString(strength: LockClauseStrength) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckSelectLocking(qry: *mut Query, strength: LockClauseStrength); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn applyLockingClause( + qry: *mut Query, + rtindex: Index, + strength: LockClauseStrength, + waitPolicy: LockWaitPolicy, + pushedDown: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BuildOnConflictExcludedTargetlist(targetrel: Relation, exclRelIndex: Index) + -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeSortGroupClauseForSetOp(rescoltype: Oid, require_hash: bool) + -> *mut SortGroupClause; +} +pub const FuncDetailCode_FUNCDETAIL_NOTFOUND: FuncDetailCode = 0; +pub const FuncDetailCode_FUNCDETAIL_MULTIPLE: FuncDetailCode = 1; +pub const FuncDetailCode_FUNCDETAIL_NORMAL: FuncDetailCode = 2; +pub const FuncDetailCode_FUNCDETAIL_PROCEDURE: FuncDetailCode = 3; +pub const FuncDetailCode_FUNCDETAIL_AGGREGATE: FuncDetailCode = 4; +pub const FuncDetailCode_FUNCDETAIL_WINDOWFUNC: FuncDetailCode = 5; +pub const FuncDetailCode_FUNCDETAIL_COERCION: FuncDetailCode = 6; +pub type FuncDetailCode = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParseFuncOrColumn( + pstate: *mut ParseState, + funcname: *mut List, + fargs: *mut List, + last_srf: *mut Node, + fn_: *mut FuncCall, + proc_call: bool, + location: ::std::os::raw::c_int, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn func_get_detail( + funcname: *mut List, + fargs: *mut List, + fargnames: *mut List, + nargs: ::std::os::raw::c_int, + argtypes: *mut Oid, + expand_variadic: bool, + expand_defaults: bool, + include_out_arguments: bool, + funcid: *mut Oid, + rettype: *mut Oid, + retset: *mut bool, + nvargs: *mut ::std::os::raw::c_int, + vatype: *mut Oid, + true_typeids: *mut *mut Oid, + argdefaults: *mut *mut List, + ) -> FuncDetailCode; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn func_match_argtypes( + nargs: ::std::os::raw::c_int, + input_typeids: *mut Oid, + raw_candidates: FuncCandidateList, + candidates: *mut FuncCandidateList, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn func_select_candidate( + nargs: ::std::os::raw::c_int, + input_typeids: *mut Oid, + candidates: FuncCandidateList, + ) -> FuncCandidateList; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_fn_arguments( + pstate: *mut ParseState, + fargs: *mut List, + actual_arg_types: *mut Oid, + declared_arg_types: *mut Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn funcname_signature_string( + funcname: *const ::std::os::raw::c_char, + nargs: ::std::os::raw::c_int, + argnames: *mut List, + argtypes: *const Oid, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn func_signature_string( + funcname: *mut List, + nargs: ::std::os::raw::c_int, + argnames: *mut List, + argtypes: *const Oid, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupFuncName( + funcname: *mut List, + nargs: ::std::os::raw::c_int, + argtypes: *const Oid, + missing_ok: bool, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupFuncWithArgs( + objtype: ObjectType, + func: *mut ObjectWithArgs, + missing_ok: bool, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_srf_call_placement( + pstate: *mut ParseState, + last_srf: *mut Node, + location: ::std::os::raw::c_int, + ); +} +pub type Operator = HeapTuple; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupOperName( + pstate: *mut ParseState, + opername: *mut List, + oprleft: Oid, + oprright: Oid, + noError: bool, + location: ::std::os::raw::c_int, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupOperWithArgs(oper: *mut ObjectWithArgs, noError: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oper( + pstate: *mut ParseState, + opname: *mut List, + ltypeId: Oid, + rtypeId: Oid, + noError: bool, + location: ::std::os::raw::c_int, + ) -> Operator; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn left_oper( + pstate: *mut ParseState, + op: *mut List, + arg: Oid, + noError: bool, + location: ::std::os::raw::c_int, + ) -> Operator; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compatible_oper( + pstate: *mut ParseState, + op: *mut List, + arg1: Oid, + arg2: Oid, + noError: bool, + location: ::std::os::raw::c_int, + ) -> Operator; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_sort_group_operators( + argtype: Oid, + needLT: bool, + needEQ: bool, + needGT: bool, + ltOpr: *mut Oid, + eqOpr: *mut Oid, + gtOpr: *mut Oid, + isHashable: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compatible_oper_opid(op: *mut List, arg1: Oid, arg2: Oid, noError: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oprid(op: Operator) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oprfuncid(op: Operator) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_op( + pstate: *mut ParseState, + opname: *mut List, + ltree: *mut Node, + rtree: *mut Node, + last_srf: *mut Node, + location: ::std::os::raw::c_int, + ) -> *mut Expr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_scalar_array_op( + pstate: *mut ParseState, + opname: *mut List, + useOr: bool, + ltree: *mut Node, + rtree: *mut Node, + location: ::std::os::raw::c_int, + ) -> *mut Expr; +} +pub type Type = HeapTuple; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupTypeName( + pstate: *mut ParseState, + typeName: *const TypeName, + typmod_p: *mut int32, + missing_ok: bool, + ) -> Type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupTypeNameExtended( + pstate: *mut ParseState, + typeName: *const TypeName, + typmod_p: *mut int32, + temp_ok: bool, + missing_ok: bool, + ) -> Type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupTypeNameOid( + pstate: *mut ParseState, + typeName: *const TypeName, + missing_ok: bool, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typenameType( + pstate: *mut ParseState, + typeName: *const TypeName, + typmod_p: *mut int32, + ) -> Type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typenameTypeId(pstate: *mut ParseState, typeName: *const TypeName) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typenameTypeIdAndMod( + pstate: *mut ParseState, + typeName: *const TypeName, + typeid_p: *mut Oid, + typmod_p: *mut int32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TypeNameToString(typeName: *const TypeName) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TypeNameListToString(typenames: *mut List) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LookupCollation( + pstate: *mut ParseState, + collnames: *mut List, + location: ::std::os::raw::c_int, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetColumnDefCollation( + pstate: *mut ParseState, + coldef: *mut ColumnDef, + typeOid: Oid, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeidType(id: Oid) -> Type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeTypeId(tp: Type) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeLen(t: Type) -> int16; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeByVal(t: Type) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeTypeName(t: Type) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeTypeRelid(typ: Type) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeTypeCollation(typ: Type) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn stringTypeDatum( + tp: Type, + string: *mut ::std::os::raw::c_char, + atttypmod: int32, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeidTypeRelid(type_id: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeOrDomainTypeRelid(type_id: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn typeStringToTypeName( + str_: *const ::std::os::raw::c_char, + escontext: *mut Node, + ) -> *mut TypeName; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parseTypeString( + str_: *const ::std::os::raw::c_char, + typeid_p: *mut Oid, + typmod_p: *mut int32, + escontext: *mut Node, + ) -> bool; +} +pub type TYPCATEGORY = ::std::os::raw::c_char; +pub const CoercionPathType_COERCION_PATH_NONE: CoercionPathType = 0; +pub const CoercionPathType_COERCION_PATH_FUNC: CoercionPathType = 1; +pub const CoercionPathType_COERCION_PATH_RELABELTYPE: CoercionPathType = 2; +pub const CoercionPathType_COERCION_PATH_ARRAYCOERCE: CoercionPathType = 3; +pub const CoercionPathType_COERCION_PATH_COERCEVIAIO: CoercionPathType = 4; +pub type CoercionPathType = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsBinaryCoercible(srctype: Oid, targettype: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsBinaryCoercibleWithCast(srctype: Oid, targettype: Oid, castoid: *mut Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsPreferredType(category: TYPCATEGORY, type_: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TypeCategory(type_: Oid) -> TYPCATEGORY; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn coerce_to_target_type( + pstate: *mut ParseState, + expr: *mut Node, + exprtype: Oid, + targettype: Oid, + targettypmod: int32, + ccontext: CoercionContext, + cformat: CoercionForm, + location: ::std::os::raw::c_int, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn can_coerce_type( + nargs: ::std::os::raw::c_int, + input_typeids: *const Oid, + target_typeids: *const Oid, + ccontext: CoercionContext, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn coerce_type( + pstate: *mut ParseState, + node: *mut Node, + inputTypeId: Oid, + targetTypeId: Oid, + targetTypeMod: int32, + ccontext: CoercionContext, + cformat: CoercionForm, + location: ::std::os::raw::c_int, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn coerce_to_domain( + arg: *mut Node, + baseTypeId: Oid, + baseTypeMod: int32, + typeId: Oid, + ccontext: CoercionContext, + cformat: CoercionForm, + location: ::std::os::raw::c_int, + hideInputCoercion: bool, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn coerce_to_boolean( + pstate: *mut ParseState, + node: *mut Node, + constructName: *const ::std::os::raw::c_char, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn coerce_to_specific_type( + pstate: *mut ParseState, + node: *mut Node, + targetTypeId: Oid, + constructName: *const ::std::os::raw::c_char, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn coerce_to_specific_type_typmod( + pstate: *mut ParseState, + node: *mut Node, + targetTypeId: Oid, + targetTypmod: int32, + constructName: *const ::std::os::raw::c_char, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parser_coercion_errposition( + pstate: *mut ParseState, + coerce_location: ::std::os::raw::c_int, + input_expr: *mut Node, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn select_common_type( + pstate: *mut ParseState, + exprs: *mut List, + context: *const ::std::os::raw::c_char, + which_expr: *mut *mut Node, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn coerce_to_common_type( + pstate: *mut ParseState, + node: *mut Node, + targetTypeId: Oid, + context: *const ::std::os::raw::c_char, + ) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn verify_common_type(common_type: Oid, exprs: *mut List) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn select_common_typmod( + pstate: *mut ParseState, + exprs: *mut List, + common_type: Oid, + ) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_generic_type_consistency( + actual_arg_types: *const Oid, + declared_arg_types: *const Oid, + nargs: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enforce_generic_type_consistency( + actual_arg_types: *const Oid, + declared_arg_types: *mut Oid, + nargs: ::std::os::raw::c_int, + rettype: Oid, + allow_poly: bool, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_valid_polymorphic_signature( + ret_type: Oid, + declared_arg_types: *const Oid, + nargs: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_valid_internal_signature( + ret_type: Oid, + declared_arg_types: *const Oid, + nargs: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_coercion_pathway( + targetTypeId: Oid, + sourceTypeId: Oid, + ccontext: CoercionContext, + funcid: *mut Oid, + ) -> CoercionPathType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn find_typmod_coercion_function(typeId: Oid, funcid: *mut Oid) -> CoercionPathType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rte_attribute_name( + rte: *mut RangeTblEntry, + attnum: AttrNumber, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rte_attribute_is_dropped(rte: *mut RangeTblEntry, attnum: AttrNumber) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_tle_by_resno(tlist: *mut List, resno: AttrNumber) -> *mut TargetEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_parse_rowmark(qry: *mut Query, rtindex: Index) -> *mut RowMarkClause; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn downcase_truncate_identifier( + ident: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + warn: bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn downcase_identifier( + ident: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + warn: bool, + truncate: bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn truncate_identifier( + ident: *mut ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + warn: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scanner_isspace(ch: ::std::os::raw::c_char) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExpandedRecordHeader { + pub hdr: ExpandedObjectHeader, + pub er_magic: ::std::os::raw::c_int, + pub flags: ::std::os::raw::c_int, + pub er_decltypeid: Oid, + pub er_typeid: Oid, + pub er_typmod: int32, + pub er_tupdesc: TupleDesc, + pub er_tupdesc_id: uint64, + pub dvalues: *mut Datum, + pub dnulls: *mut bool, + pub nfields: ::std::os::raw::c_int, + pub flat_size: Size, + pub data_len: Size, + pub hoff: ::std::os::raw::c_int, + pub hasnull: bool, + pub fvalue: HeapTuple, + pub fstartptr: *mut ::std::os::raw::c_char, + pub fendptr: *mut ::std::os::raw::c_char, + pub er_short_term_cxt: MemoryContext, + pub er_dummy_header: *mut ExpandedRecordHeader, + pub er_domaininfo: *mut ::std::os::raw::c_void, + pub er_mcb: MemoryContextCallback, +} +impl Default for ExpandedRecordHeader { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExpandedRecordFieldInfo { + pub fnumber: ::std::os::raw::c_int, + pub ftypeid: Oid, + pub ftypmod: int32, + pub fcollation: Oid, +} +impl Default for ExpandedRecordFieldInfo { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_expanded_record_from_typeid( + type_id: Oid, + typmod: int32, + parentcontext: MemoryContext, + ) -> *mut ExpandedRecordHeader; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_expanded_record_from_tupdesc( + tupdesc: TupleDesc, + parentcontext: MemoryContext, + ) -> *mut ExpandedRecordHeader; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_expanded_record_from_exprecord( + olderh: *mut ExpandedRecordHeader, + parentcontext: MemoryContext, + ) -> *mut ExpandedRecordHeader; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expanded_record_set_tuple( + erh: *mut ExpandedRecordHeader, + tuple: HeapTuple, + copy: bool, + expand_external: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_expanded_record_from_datum( + recorddatum: Datum, + parentcontext: MemoryContext, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expanded_record_fetch_tupdesc(erh: *mut ExpandedRecordHeader) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expanded_record_get_tuple(erh: *mut ExpandedRecordHeader) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DatumGetExpandedRecord(d: Datum) -> *mut ExpandedRecordHeader; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn deconstruct_expanded_record(erh: *mut ExpandedRecordHeader); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expanded_record_lookup_field( + erh: *mut ExpandedRecordHeader, + fieldname: *const ::std::os::raw::c_char, + finfo: *mut ExpandedRecordFieldInfo, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expanded_record_fetch_field( + erh: *mut ExpandedRecordHeader, + fnumber: ::std::os::raw::c_int, + isnull: *mut bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expanded_record_set_field_internal( + erh: *mut ExpandedRecordHeader, + fnumber: ::std::os::raw::c_int, + newValue: Datum, + isnull: bool, + expand_external: bool, + check_constraints: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn expanded_record_set_fields( + erh: *mut ExpandedRecordHeader, + newValues: *const Datum, + isnulls: *const bool, + expand_external: bool, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DomainConstraintCache { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TypeCacheEnumData { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TypeCacheEntry { + pub type_id: Oid, + pub type_id_hash: uint32, + pub typlen: int16, + pub typbyval: bool, + pub typalign: ::std::os::raw::c_char, + pub typstorage: ::std::os::raw::c_char, + pub typtype: ::std::os::raw::c_char, + pub typrelid: Oid, + pub typsubscript: Oid, + pub typelem: Oid, + pub typcollation: Oid, + pub btree_opf: Oid, + pub btree_opintype: Oid, + pub hash_opf: Oid, + pub hash_opintype: Oid, + pub eq_opr: Oid, + pub lt_opr: Oid, + pub gt_opr: Oid, + pub cmp_proc: Oid, + pub hash_proc: Oid, + pub hash_extended_proc: Oid, + pub eq_opr_finfo: FmgrInfo, + pub cmp_proc_finfo: FmgrInfo, + pub hash_proc_finfo: FmgrInfo, + pub hash_extended_proc_finfo: FmgrInfo, + pub tupDesc: TupleDesc, + pub tupDesc_identifier: uint64, + pub rngelemtype: *mut TypeCacheEntry, + pub rng_collation: Oid, + pub rng_cmp_proc_finfo: FmgrInfo, + pub rng_canonical_finfo: FmgrInfo, + pub rng_subdiff_finfo: FmgrInfo, + pub rngtype: *mut TypeCacheEntry, + pub domainBaseType: Oid, + pub domainBaseTypmod: int32, + pub domainData: *mut DomainConstraintCache, + pub flags: ::std::os::raw::c_int, + pub enumData: *mut TypeCacheEnumData, + pub nextDomain: *mut TypeCacheEntry, +} +impl Default for TypeCacheEntry { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DomainConstraintRef { + pub constraints: *mut List, + pub refctx: MemoryContext, + pub tcache: *mut TypeCacheEntry, + pub need_exprstate: bool, + pub dcc: *mut DomainConstraintCache, + pub callback: MemoryContextCallback, +} +impl Default for DomainConstraintRef { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SharedRecordTypmodRegistry { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lookup_type_cache(type_id: Oid, flags: ::std::os::raw::c_int) -> *mut TypeCacheEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitDomainConstraintRef( + type_id: Oid, + ref_: *mut DomainConstraintRef, + refctx: MemoryContext, + need_exprstate: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UpdateDomainConstraintRef(ref_: *mut DomainConstraintRef); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DomainHasConstraints(type_id: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lookup_rowtype_tupdesc(type_id: Oid, typmod: int32) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lookup_rowtype_tupdesc_noerror(type_id: Oid, typmod: int32, noError: bool) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lookup_rowtype_tupdesc_copy(type_id: Oid, typmod: int32) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lookup_rowtype_tupdesc_domain(type_id: Oid, typmod: int32, noError: bool) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn assign_record_type_typmod(tupDesc: TupleDesc); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn assign_record_type_identifier(type_id: Oid, typmod: int32) -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compare_values_of_enum( + tcache: *mut TypeCacheEntry, + arg1: Oid, + arg2: Oid, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SharedRecordTypmodRegistryEstimate() -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SharedRecordTypmodRegistryInit( + arg1: *mut SharedRecordTypmodRegistry, + segment: *mut dsm_segment, + area: *mut dsa_area, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SharedRecordTypmodRegistryAttach(arg1: *mut SharedRecordTypmodRegistry); +} +pub const PLpgSQL_nsitem_type_PLPGSQL_NSTYPE_LABEL: PLpgSQL_nsitem_type = 0; +pub const PLpgSQL_nsitem_type_PLPGSQL_NSTYPE_VAR: PLpgSQL_nsitem_type = 1; +pub const PLpgSQL_nsitem_type_PLPGSQL_NSTYPE_REC: PLpgSQL_nsitem_type = 2; +pub type PLpgSQL_nsitem_type = ::std::os::raw::c_uint; +pub const PLpgSQL_label_type_PLPGSQL_LABEL_BLOCK: PLpgSQL_label_type = 0; +pub const PLpgSQL_label_type_PLPGSQL_LABEL_LOOP: PLpgSQL_label_type = 1; +pub const PLpgSQL_label_type_PLPGSQL_LABEL_OTHER: PLpgSQL_label_type = 2; +pub type PLpgSQL_label_type = ::std::os::raw::c_uint; +pub const PLpgSQL_datum_type_PLPGSQL_DTYPE_VAR: PLpgSQL_datum_type = 0; +pub const PLpgSQL_datum_type_PLPGSQL_DTYPE_ROW: PLpgSQL_datum_type = 1; +pub const PLpgSQL_datum_type_PLPGSQL_DTYPE_REC: PLpgSQL_datum_type = 2; +pub const PLpgSQL_datum_type_PLPGSQL_DTYPE_RECFIELD: PLpgSQL_datum_type = 3; +pub const PLpgSQL_datum_type_PLPGSQL_DTYPE_PROMISE: PLpgSQL_datum_type = 4; +pub type PLpgSQL_datum_type = ::std::os::raw::c_uint; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_NONE: PLpgSQL_promise_type = 0; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_NAME: PLpgSQL_promise_type = 1; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_WHEN: PLpgSQL_promise_type = 2; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_LEVEL: PLpgSQL_promise_type = 3; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_OP: PLpgSQL_promise_type = 4; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_RELID: PLpgSQL_promise_type = 5; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_TABLE_NAME: PLpgSQL_promise_type = 6; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_TABLE_SCHEMA: PLpgSQL_promise_type = 7; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_NARGS: PLpgSQL_promise_type = 8; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_ARGV: PLpgSQL_promise_type = 9; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_EVENT: PLpgSQL_promise_type = 10; +pub const PLpgSQL_promise_type_PLPGSQL_PROMISE_TG_TAG: PLpgSQL_promise_type = 11; +pub type PLpgSQL_promise_type = ::std::os::raw::c_uint; +pub const PLpgSQL_type_type_PLPGSQL_TTYPE_SCALAR: PLpgSQL_type_type = 0; +pub const PLpgSQL_type_type_PLPGSQL_TTYPE_REC: PLpgSQL_type_type = 1; +pub const PLpgSQL_type_type_PLPGSQL_TTYPE_PSEUDO: PLpgSQL_type_type = 2; +pub type PLpgSQL_type_type = ::std::os::raw::c_uint; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_BLOCK: PLpgSQL_stmt_type = 0; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_ASSIGN: PLpgSQL_stmt_type = 1; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_IF: PLpgSQL_stmt_type = 2; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_CASE: PLpgSQL_stmt_type = 3; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_LOOP: PLpgSQL_stmt_type = 4; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_WHILE: PLpgSQL_stmt_type = 5; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_FORI: PLpgSQL_stmt_type = 6; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_FORS: PLpgSQL_stmt_type = 7; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_FORC: PLpgSQL_stmt_type = 8; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_FOREACH_A: PLpgSQL_stmt_type = 9; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_EXIT: PLpgSQL_stmt_type = 10; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_RETURN: PLpgSQL_stmt_type = 11; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_RETURN_NEXT: PLpgSQL_stmt_type = 12; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_RETURN_QUERY: PLpgSQL_stmt_type = 13; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_RAISE: PLpgSQL_stmt_type = 14; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_ASSERT: PLpgSQL_stmt_type = 15; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_EXECSQL: PLpgSQL_stmt_type = 16; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_DYNEXECUTE: PLpgSQL_stmt_type = 17; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_DYNFORS: PLpgSQL_stmt_type = 18; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_GETDIAG: PLpgSQL_stmt_type = 19; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_OPEN: PLpgSQL_stmt_type = 20; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_FETCH: PLpgSQL_stmt_type = 21; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_CLOSE: PLpgSQL_stmt_type = 22; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_PERFORM: PLpgSQL_stmt_type = 23; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_CALL: PLpgSQL_stmt_type = 24; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_COMMIT: PLpgSQL_stmt_type = 25; +pub const PLpgSQL_stmt_type_PLPGSQL_STMT_ROLLBACK: PLpgSQL_stmt_type = 26; +pub type PLpgSQL_stmt_type = ::std::os::raw::c_uint; +pub const PLPGSQL_RC_OK: _bindgen_ty_19 = 0; +pub const PLPGSQL_RC_EXIT: _bindgen_ty_19 = 1; +pub const PLPGSQL_RC_RETURN: _bindgen_ty_19 = 2; +pub const PLPGSQL_RC_CONTINUE: _bindgen_ty_19 = 3; +pub type _bindgen_ty_19 = ::std::os::raw::c_uint; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_ROW_COUNT: PLpgSQL_getdiag_kind = 0; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_ROUTINE_OID: PLpgSQL_getdiag_kind = 1; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_CONTEXT: PLpgSQL_getdiag_kind = 2; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_ERROR_CONTEXT: PLpgSQL_getdiag_kind = 3; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_ERROR_DETAIL: PLpgSQL_getdiag_kind = 4; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_ERROR_HINT: PLpgSQL_getdiag_kind = 5; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_RETURNED_SQLSTATE: PLpgSQL_getdiag_kind = 6; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_COLUMN_NAME: PLpgSQL_getdiag_kind = 7; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_CONSTRAINT_NAME: PLpgSQL_getdiag_kind = 8; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_DATATYPE_NAME: PLpgSQL_getdiag_kind = 9; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_MESSAGE_TEXT: PLpgSQL_getdiag_kind = 10; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_TABLE_NAME: PLpgSQL_getdiag_kind = 11; +pub const PLpgSQL_getdiag_kind_PLPGSQL_GETDIAG_SCHEMA_NAME: PLpgSQL_getdiag_kind = 12; +pub type PLpgSQL_getdiag_kind = ::std::os::raw::c_uint; +pub const PLpgSQL_raise_option_type_PLPGSQL_RAISEOPTION_ERRCODE: PLpgSQL_raise_option_type = 0; +pub const PLpgSQL_raise_option_type_PLPGSQL_RAISEOPTION_MESSAGE: PLpgSQL_raise_option_type = 1; +pub const PLpgSQL_raise_option_type_PLPGSQL_RAISEOPTION_DETAIL: PLpgSQL_raise_option_type = 2; +pub const PLpgSQL_raise_option_type_PLPGSQL_RAISEOPTION_HINT: PLpgSQL_raise_option_type = 3; +pub const PLpgSQL_raise_option_type_PLPGSQL_RAISEOPTION_COLUMN: PLpgSQL_raise_option_type = 4; +pub const PLpgSQL_raise_option_type_PLPGSQL_RAISEOPTION_CONSTRAINT: PLpgSQL_raise_option_type = 5; +pub const PLpgSQL_raise_option_type_PLPGSQL_RAISEOPTION_DATATYPE: PLpgSQL_raise_option_type = 6; +pub const PLpgSQL_raise_option_type_PLPGSQL_RAISEOPTION_TABLE: PLpgSQL_raise_option_type = 7; +pub const PLpgSQL_raise_option_type_PLPGSQL_RAISEOPTION_SCHEMA: PLpgSQL_raise_option_type = 8; +pub type PLpgSQL_raise_option_type = ::std::os::raw::c_uint; +pub const PLpgSQL_resolve_option_PLPGSQL_RESOLVE_ERROR: PLpgSQL_resolve_option = 0; +pub const PLpgSQL_resolve_option_PLPGSQL_RESOLVE_VARIABLE: PLpgSQL_resolve_option = 1; +pub const PLpgSQL_resolve_option_PLPGSQL_RESOLVE_COLUMN: PLpgSQL_resolve_option = 2; +pub type PLpgSQL_resolve_option = ::std::os::raw::c_uint; +#[doc = " Node and structure definitions"] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_type { + pub typname: *mut ::std::os::raw::c_char, + pub typoid: Oid, + pub ttype: PLpgSQL_type_type, + pub typlen: int16, + pub typbyval: bool, + pub typtype: ::std::os::raw::c_char, + pub collation: Oid, + pub typisarray: bool, + pub atttypmod: int32, + pub origtypname: *mut TypeName, + pub tcache: *mut TypeCacheEntry, + pub tupdesc_id: uint64, +} +impl Default for PLpgSQL_type { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_expr { + pub query: *mut ::std::os::raw::c_char, + pub parseMode: RawParseMode, + pub plan: SPIPlanPtr, + pub paramnos: *mut Bitmapset, + pub func: *mut PLpgSQL_function, + pub ns: *mut PLpgSQL_nsitem, + pub expr_simple_expr: *mut Expr, + pub expr_simple_type: Oid, + pub expr_simple_typmod: int32, + pub expr_simple_mutable: bool, + pub target_param: ::std::os::raw::c_int, + pub expr_rw_param: *mut Param, + pub expr_simple_plansource: *mut CachedPlanSource, + pub expr_simple_plan: *mut CachedPlan, + pub expr_simple_plan_lxid: LocalTransactionId, + pub expr_simple_state: *mut ExprState, + pub expr_simple_in_use: bool, + pub expr_simple_lxid: LocalTransactionId, +} +impl Default for PLpgSQL_expr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_datum { + pub dtype: PLpgSQL_datum_type, + pub dno: ::std::os::raw::c_int, +} +impl Default for PLpgSQL_datum { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_variable { + pub dtype: PLpgSQL_datum_type, + pub dno: ::std::os::raw::c_int, + pub refname: *mut ::std::os::raw::c_char, + pub lineno: ::std::os::raw::c_int, + pub isconst: bool, + pub notnull: bool, + pub default_val: *mut PLpgSQL_expr, +} +impl Default for PLpgSQL_variable { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_var { + pub dtype: PLpgSQL_datum_type, + pub dno: ::std::os::raw::c_int, + pub refname: *mut ::std::os::raw::c_char, + pub lineno: ::std::os::raw::c_int, + pub isconst: bool, + pub notnull: bool, + pub default_val: *mut PLpgSQL_expr, + pub datatype: *mut PLpgSQL_type, + pub cursor_explicit_expr: *mut PLpgSQL_expr, + pub cursor_explicit_argrow: ::std::os::raw::c_int, + pub cursor_options: ::std::os::raw::c_int, + pub value: Datum, + pub isnull: bool, + pub freeval: bool, + pub promise: PLpgSQL_promise_type, +} +impl Default for PLpgSQL_var { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_row { + pub dtype: PLpgSQL_datum_type, + pub dno: ::std::os::raw::c_int, + pub refname: *mut ::std::os::raw::c_char, + pub lineno: ::std::os::raw::c_int, + pub isconst: bool, + pub notnull: bool, + pub default_val: *mut PLpgSQL_expr, + pub rowtupdesc: TupleDesc, + pub nfields: ::std::os::raw::c_int, + pub fieldnames: *mut *mut ::std::os::raw::c_char, + pub varnos: *mut ::std::os::raw::c_int, +} +impl Default for PLpgSQL_row { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_rec { + pub dtype: PLpgSQL_datum_type, + pub dno: ::std::os::raw::c_int, + pub refname: *mut ::std::os::raw::c_char, + pub lineno: ::std::os::raw::c_int, + pub isconst: bool, + pub notnull: bool, + pub default_val: *mut PLpgSQL_expr, + pub datatype: *mut PLpgSQL_type, + pub rectypeid: Oid, + pub firstfield: ::std::os::raw::c_int, + pub erh: *mut ExpandedRecordHeader, +} +impl Default for PLpgSQL_rec { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_recfield { + pub dtype: PLpgSQL_datum_type, + pub dno: ::std::os::raw::c_int, + pub fieldname: *mut ::std::os::raw::c_char, + pub recparentno: ::std::os::raw::c_int, + pub nextfield: ::std::os::raw::c_int, + pub rectupledescid: uint64, + pub finfo: ExpandedRecordFieldInfo, +} +impl Default for PLpgSQL_recfield { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug)] +pub struct PLpgSQL_nsitem { + pub itemtype: PLpgSQL_nsitem_type, + pub itemno: ::std::os::raw::c_int, + pub prev: *mut PLpgSQL_nsitem, + pub name: __IncompleteArrayField<::std::os::raw::c_char>, +} +impl Default for PLpgSQL_nsitem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, +} +impl Default for PLpgSQL_stmt { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_condition { + pub sqlerrstate: ::std::os::raw::c_int, + pub condname: *mut ::std::os::raw::c_char, + pub next: *mut PLpgSQL_condition, +} +impl Default for PLpgSQL_condition { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_exception_block { + pub sqlstate_varno: ::std::os::raw::c_int, + pub sqlerrm_varno: ::std::os::raw::c_int, + pub exc_list: *mut List, +} +impl Default for PLpgSQL_exception_block { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_exception { + pub lineno: ::std::os::raw::c_int, + pub conditions: *mut PLpgSQL_condition, + pub action: *mut List, +} +impl Default for PLpgSQL_exception { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_block { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub label: *mut ::std::os::raw::c_char, + pub body: *mut List, + pub n_initvars: ::std::os::raw::c_int, + pub initvarnos: *mut ::std::os::raw::c_int, + pub exceptions: *mut PLpgSQL_exception_block, +} +impl Default for PLpgSQL_stmt_block { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_assign { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub varno: ::std::os::raw::c_int, + pub expr: *mut PLpgSQL_expr, +} +impl Default for PLpgSQL_stmt_assign { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_perform { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub expr: *mut PLpgSQL_expr, +} +impl Default for PLpgSQL_stmt_perform { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_call { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub expr: *mut PLpgSQL_expr, + pub is_call: bool, + pub target: *mut PLpgSQL_variable, +} +impl Default for PLpgSQL_stmt_call { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_commit { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub chain: bool, +} +impl Default for PLpgSQL_stmt_commit { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_rollback { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub chain: bool, +} +impl Default for PLpgSQL_stmt_rollback { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_diag_item { + pub kind: PLpgSQL_getdiag_kind, + pub target: ::std::os::raw::c_int, +} +impl Default for PLpgSQL_diag_item { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_getdiag { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub is_stacked: bool, + pub diag_items: *mut List, +} +impl Default for PLpgSQL_stmt_getdiag { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_if { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub cond: *mut PLpgSQL_expr, + pub then_body: *mut List, + pub elsif_list: *mut List, + pub else_body: *mut List, +} +impl Default for PLpgSQL_stmt_if { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_if_elsif { + pub lineno: ::std::os::raw::c_int, + pub cond: *mut PLpgSQL_expr, + pub stmts: *mut List, +} +impl Default for PLpgSQL_if_elsif { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_case { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub t_expr: *mut PLpgSQL_expr, + pub t_varno: ::std::os::raw::c_int, + pub case_when_list: *mut List, + pub have_else: bool, + pub else_stmts: *mut List, +} +impl Default for PLpgSQL_stmt_case { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_case_when { + pub lineno: ::std::os::raw::c_int, + pub expr: *mut PLpgSQL_expr, + pub stmts: *mut List, +} +impl Default for PLpgSQL_case_when { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_loop { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub label: *mut ::std::os::raw::c_char, + pub body: *mut List, +} +impl Default for PLpgSQL_stmt_loop { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_while { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub label: *mut ::std::os::raw::c_char, + pub cond: *mut PLpgSQL_expr, + pub body: *mut List, +} +impl Default for PLpgSQL_stmt_while { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_fori { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub label: *mut ::std::os::raw::c_char, + pub var: *mut PLpgSQL_var, + pub lower: *mut PLpgSQL_expr, + pub upper: *mut PLpgSQL_expr, + pub step: *mut PLpgSQL_expr, + pub reverse: ::std::os::raw::c_int, + pub body: *mut List, +} +impl Default for PLpgSQL_stmt_fori { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_forq { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub label: *mut ::std::os::raw::c_char, + pub var: *mut PLpgSQL_variable, + pub body: *mut List, +} +impl Default for PLpgSQL_stmt_forq { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_fors { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub label: *mut ::std::os::raw::c_char, + pub var: *mut PLpgSQL_variable, + pub body: *mut List, + pub query: *mut PLpgSQL_expr, +} +impl Default for PLpgSQL_stmt_fors { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_forc { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub label: *mut ::std::os::raw::c_char, + pub var: *mut PLpgSQL_variable, + pub body: *mut List, + pub curvar: ::std::os::raw::c_int, + pub argquery: *mut PLpgSQL_expr, +} +impl Default for PLpgSQL_stmt_forc { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_dynfors { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub label: *mut ::std::os::raw::c_char, + pub var: *mut PLpgSQL_variable, + pub body: *mut List, + pub query: *mut PLpgSQL_expr, + pub params: *mut List, +} +impl Default for PLpgSQL_stmt_dynfors { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_foreach_a { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub label: *mut ::std::os::raw::c_char, + pub varno: ::std::os::raw::c_int, + pub slice: ::std::os::raw::c_int, + pub expr: *mut PLpgSQL_expr, + pub body: *mut List, +} +impl Default for PLpgSQL_stmt_foreach_a { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_open { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub curvar: ::std::os::raw::c_int, + pub cursor_options: ::std::os::raw::c_int, + pub argquery: *mut PLpgSQL_expr, + pub query: *mut PLpgSQL_expr, + pub dynquery: *mut PLpgSQL_expr, + pub params: *mut List, +} +impl Default for PLpgSQL_stmt_open { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_fetch { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub target: *mut PLpgSQL_variable, + pub curvar: ::std::os::raw::c_int, + pub direction: FetchDirection, + pub how_many: ::std::os::raw::c_long, + pub expr: *mut PLpgSQL_expr, + pub is_move: bool, + pub returns_multiple_rows: bool, +} +impl Default for PLpgSQL_stmt_fetch { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_close { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub curvar: ::std::os::raw::c_int, +} +impl Default for PLpgSQL_stmt_close { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_exit { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub is_exit: bool, + pub label: *mut ::std::os::raw::c_char, + pub cond: *mut PLpgSQL_expr, +} +impl Default for PLpgSQL_stmt_exit { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_return { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub expr: *mut PLpgSQL_expr, + pub retvarno: ::std::os::raw::c_int, +} +impl Default for PLpgSQL_stmt_return { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_return_next { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub expr: *mut PLpgSQL_expr, + pub retvarno: ::std::os::raw::c_int, +} +impl Default for PLpgSQL_stmt_return_next { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_return_query { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub query: *mut PLpgSQL_expr, + pub dynquery: *mut PLpgSQL_expr, + pub params: *mut List, +} +impl Default for PLpgSQL_stmt_return_query { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_raise { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub elog_level: ::std::os::raw::c_int, + pub condname: *mut ::std::os::raw::c_char, + pub message: *mut ::std::os::raw::c_char, + pub params: *mut List, + pub options: *mut List, +} +impl Default for PLpgSQL_stmt_raise { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_raise_option { + pub opt_type: PLpgSQL_raise_option_type, + pub expr: *mut PLpgSQL_expr, +} +impl Default for PLpgSQL_raise_option { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_assert { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub cond: *mut PLpgSQL_expr, + pub message: *mut PLpgSQL_expr, +} +impl Default for PLpgSQL_stmt_assert { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_execsql { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub sqlstmt: *mut PLpgSQL_expr, + pub mod_stmt: bool, + pub mod_stmt_set: bool, + pub into: bool, + pub strict: bool, + pub target: *mut PLpgSQL_variable, +} +impl Default for PLpgSQL_stmt_execsql { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_stmt_dynexecute { + pub cmd_type: PLpgSQL_stmt_type, + pub lineno: ::std::os::raw::c_int, + pub stmtid: ::std::os::raw::c_uint, + pub query: *mut PLpgSQL_expr, + pub into: bool, + pub strict: bool, + pub target: *mut PLpgSQL_variable, + pub params: *mut List, +} +impl Default for PLpgSQL_stmt_dynexecute { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_func_hashkey { + pub funcOid: Oid, + pub isTrigger: bool, + pub isEventTrigger: bool, + pub trigOid: Oid, + pub inputCollation: Oid, + pub argtypes: [Oid; 100usize], +} +impl Default for PLpgSQL_func_hashkey { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const PLpgSQL_trigtype_PLPGSQL_DML_TRIGGER: PLpgSQL_trigtype = 0; +pub const PLpgSQL_trigtype_PLPGSQL_EVENT_TRIGGER: PLpgSQL_trigtype = 1; +pub const PLpgSQL_trigtype_PLPGSQL_NOT_TRIGGER: PLpgSQL_trigtype = 2; +pub type PLpgSQL_trigtype = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_function { + pub fn_signature: *mut ::std::os::raw::c_char, + pub fn_oid: Oid, + pub fn_xmin: TransactionId, + pub fn_tid: ItemPointerData, + pub fn_is_trigger: PLpgSQL_trigtype, + pub fn_input_collation: Oid, + pub fn_hashkey: *mut PLpgSQL_func_hashkey, + pub fn_cxt: MemoryContext, + pub fn_rettype: Oid, + pub fn_rettyplen: ::std::os::raw::c_int, + pub fn_retbyval: bool, + pub fn_retistuple: bool, + pub fn_retisdomain: bool, + pub fn_retset: bool, + pub fn_readonly: bool, + pub fn_prokind: ::std::os::raw::c_char, + pub fn_nargs: ::std::os::raw::c_int, + pub fn_argvarnos: [::std::os::raw::c_int; 100usize], + pub out_param_varno: ::std::os::raw::c_int, + pub found_varno: ::std::os::raw::c_int, + pub new_varno: ::std::os::raw::c_int, + pub old_varno: ::std::os::raw::c_int, + pub resolve_option: PLpgSQL_resolve_option, + pub print_strict_params: bool, + pub extra_warnings: ::std::os::raw::c_int, + pub extra_errors: ::std::os::raw::c_int, + pub ndatums: ::std::os::raw::c_int, + pub datums: *mut *mut PLpgSQL_datum, + pub copiable_size: Size, + pub action: *mut PLpgSQL_stmt_block, + pub nstatements: ::std::os::raw::c_uint, + pub requires_procedure_resowner: bool, + pub cur_estate: *mut PLpgSQL_execstate, + pub use_count: ::std::os::raw::c_ulong, +} +impl Default for PLpgSQL_function { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLpgSQL_execstate { + pub func: *mut PLpgSQL_function, + pub trigdata: *mut TriggerData, + pub evtrigdata: *mut EventTriggerData, + pub retval: Datum, + pub retisnull: bool, + pub rettype: Oid, + pub fn_rettype: Oid, + pub retistuple: bool, + pub retisset: bool, + pub readonly_func: bool, + pub atomic: bool, + pub exitlabel: *mut ::std::os::raw::c_char, + pub cur_error: *mut ErrorData, + pub tuple_store: *mut Tuplestorestate, + pub tuple_store_desc: TupleDesc, + pub tuple_store_cxt: MemoryContext, + pub tuple_store_owner: ResourceOwner, + pub rsi: *mut ReturnSetInfo, + pub found_varno: ::std::os::raw::c_int, + pub ndatums: ::std::os::raw::c_int, + pub datums: *mut *mut PLpgSQL_datum, + pub datum_context: MemoryContext, + pub paramLI: ParamListInfo, + pub simple_eval_estate: *mut EState, + pub simple_eval_resowner: ResourceOwner, + pub procedure_resowner: ResourceOwner, + pub cast_hash: *mut HTAB, + pub stmt_mcontext: MemoryContext, + pub stmt_mcontext_parent: MemoryContext, + pub eval_tuptable: *mut SPITupleTable, + pub eval_processed: uint64, + pub eval_econtext: *mut ExprContext, + pub err_stmt: *mut PLpgSQL_stmt, + pub err_var: *mut PLpgSQL_variable, + pub err_text: *const ::std::os::raw::c_char, + pub plugin_info: *mut ::std::os::raw::c_void, +} +impl Default for PLpgSQL_execstate { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PLpgSQL_plugin { + pub func_setup: ::std::option::Option< + unsafe extern "C" fn(estate: *mut PLpgSQL_execstate, func: *mut PLpgSQL_function), + >, + pub func_beg: ::std::option::Option< + unsafe extern "C" fn(estate: *mut PLpgSQL_execstate, func: *mut PLpgSQL_function), + >, + pub func_end: ::std::option::Option< + unsafe extern "C" fn(estate: *mut PLpgSQL_execstate, func: *mut PLpgSQL_function), + >, + pub stmt_beg: ::std::option::Option< + unsafe extern "C" fn(estate: *mut PLpgSQL_execstate, stmt: *mut PLpgSQL_stmt), + >, + pub stmt_end: ::std::option::Option< + unsafe extern "C" fn(estate: *mut PLpgSQL_execstate, stmt: *mut PLpgSQL_stmt), + >, + pub error_callback: + ::std::option::Option, + pub assign_expr: ::std::option::Option< + unsafe extern "C" fn( + estate: *mut PLpgSQL_execstate, + target: *mut PLpgSQL_datum, + expr: *mut PLpgSQL_expr, + ), + >, + pub assign_value: ::std::option::Option< + unsafe extern "C" fn( + estate: *mut PLpgSQL_execstate, + target: *mut PLpgSQL_datum, + value: Datum, + isNull: bool, + valtype: Oid, + valtypmod: int32, + ), + >, + pub eval_datum: ::std::option::Option< + unsafe extern "C" fn( + estate: *mut PLpgSQL_execstate, + datum: *mut PLpgSQL_datum, + typeId: *mut Oid, + typetypmod: *mut int32, + value: *mut Datum, + isnull: *mut bool, + ), + >, + pub cast_value: ::std::option::Option< + unsafe extern "C" fn( + estate: *mut PLpgSQL_execstate, + value: Datum, + isnull: *mut bool, + valtype: Oid, + valtypmod: int32, + reqtype: Oid, + reqtypmod: int32, + ) -> Datum, + >, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLword { + pub ident: *mut ::std::os::raw::c_char, + pub quoted: bool, +} +impl Default for PLword { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLcword { + pub idents: *mut List, +} +impl Default for PLcword { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct PLwdatum { + pub datum: *mut PLpgSQL_datum, + pub ident: *mut ::std::os::raw::c_char, + pub quoted: bool, + pub idents: *mut List, +} +impl Default for PLwdatum { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const IdentifierLookup_IDENTIFIER_LOOKUP_NORMAL: IdentifierLookup = 0; +pub const IdentifierLookup_IDENTIFIER_LOOKUP_DECLARE: IdentifierLookup = 1; +pub const IdentifierLookup_IDENTIFIER_LOOKUP_EXPR: IdentifierLookup = 2; +#[doc = " Global variable declarations"] +pub type IdentifierLookup = ::std::os::raw::c_uint; +extern "C" { + pub static mut plpgsql_IdentifierLookup: IdentifierLookup; +} +extern "C" { + pub static mut plpgsql_variable_conflict: ::std::os::raw::c_int; +} +extern "C" { + pub static mut plpgsql_print_strict_params: bool; +} +extern "C" { + pub static mut plpgsql_check_asserts: bool; +} +extern "C" { + pub static mut plpgsql_extra_warnings: ::std::os::raw::c_int; +} +extern "C" { + pub static mut plpgsql_extra_errors: ::std::os::raw::c_int; +} +extern "C" { + pub static mut plpgsql_check_syntax: bool; +} +extern "C" { + pub static mut plpgsql_DumpExecTree: bool; +} +extern "C" { + pub static mut plpgsql_parse_result: *mut PLpgSQL_stmt_block; +} +extern "C" { + pub static mut plpgsql_nDatums: ::std::os::raw::c_int; +} +extern "C" { + pub static mut plpgsql_Datums: *mut *mut PLpgSQL_datum; +} +extern "C" { + pub static mut plpgsql_error_funcname: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut plpgsql_curr_compile: *mut PLpgSQL_function; +} +extern "C" { + pub static mut plpgsql_compile_tmp_cxt: MemoryContext; +} +extern "C" { + pub static mut plpgsql_plugin_ptr: *mut *mut PLpgSQL_plugin; +} +#[pgrx_macros::pg_guard] +extern "C" { + #[doc = " Function declarations"] + pub fn plpgsql_compile(fcinfo: FunctionCallInfo, forValidator: bool) -> *mut PLpgSQL_function; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_compile_inline( + proc_source: *mut ::std::os::raw::c_char, + ) -> *mut PLpgSQL_function; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_parser_setup(pstate: *mut ParseState, expr: *mut PLpgSQL_expr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_parse_word( + word1: *mut ::std::os::raw::c_char, + yytxt: *const ::std::os::raw::c_char, + lookup: bool, + wdatum: *mut PLwdatum, + word: *mut PLword, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_parse_dblword( + word1: *mut ::std::os::raw::c_char, + word2: *mut ::std::os::raw::c_char, + wdatum: *mut PLwdatum, + cword: *mut PLcword, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_parse_tripword( + word1: *mut ::std::os::raw::c_char, + word2: *mut ::std::os::raw::c_char, + word3: *mut ::std::os::raw::c_char, + wdatum: *mut PLwdatum, + cword: *mut PLcword, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_parse_wordtype(ident: *mut ::std::os::raw::c_char) -> *mut PLpgSQL_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_parse_cwordtype(idents: *mut List) -> *mut PLpgSQL_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_parse_wordrowtype(ident: *mut ::std::os::raw::c_char) -> *mut PLpgSQL_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_parse_cwordrowtype(idents: *mut List) -> *mut PLpgSQL_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_build_datatype( + typeOid: Oid, + typmod: int32, + collation: Oid, + origtypname: *mut TypeName, + ) -> *mut PLpgSQL_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_build_variable( + refname: *const ::std::os::raw::c_char, + lineno: ::std::os::raw::c_int, + dtype: *mut PLpgSQL_type, + add2namespace: bool, + ) -> *mut PLpgSQL_variable; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_build_record( + refname: *const ::std::os::raw::c_char, + lineno: ::std::os::raw::c_int, + dtype: *mut PLpgSQL_type, + rectypeid: Oid, + add2namespace: bool, + ) -> *mut PLpgSQL_rec; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_build_recfield( + rec: *mut PLpgSQL_rec, + fldname: *const ::std::os::raw::c_char, + ) -> *mut PLpgSQL_recfield; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_recognize_err_condition( + condname: *const ::std::os::raw::c_char, + allow_sqlstate: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_parse_err_condition( + condname: *mut ::std::os::raw::c_char, + ) -> *mut PLpgSQL_condition; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_adddatum(newdatum: *mut PLpgSQL_datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_add_initdatums(varnos: *mut *mut ::std::os::raw::c_int) + -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_HashTableInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_exec_function( + func: *mut PLpgSQL_function, + fcinfo: FunctionCallInfo, + simple_eval_estate: *mut EState, + simple_eval_resowner: ResourceOwner, + procedure_resowner: ResourceOwner, + atomic: bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_exec_trigger( + func: *mut PLpgSQL_function, + trigdata: *mut TriggerData, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_exec_event_trigger(func: *mut PLpgSQL_function, trigdata: *mut EventTriggerData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_xact_cb(event: XactEvent, arg: *mut ::std::os::raw::c_void); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_subxact_cb( + event: SubXactEvent, + mySubid: SubTransactionId, + parentSubid: SubTransactionId, + arg: *mut ::std::os::raw::c_void, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_exec_get_datum_type( + estate: *mut PLpgSQL_execstate, + datum: *mut PLpgSQL_datum, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_exec_get_datum_type_info( + estate: *mut PLpgSQL_execstate, + datum: *mut PLpgSQL_datum, + typeId: *mut Oid, + typMod: *mut int32, + collation: *mut Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_ns_init(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_ns_push(label: *const ::std::os::raw::c_char, label_type: PLpgSQL_label_type); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_ns_pop(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_ns_top() -> *mut PLpgSQL_nsitem; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_ns_additem( + itemtype: PLpgSQL_nsitem_type, + itemno: ::std::os::raw::c_int, + name: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_ns_lookup( + ns_cur: *mut PLpgSQL_nsitem, + localmode: bool, + name1: *const ::std::os::raw::c_char, + name2: *const ::std::os::raw::c_char, + name3: *const ::std::os::raw::c_char, + names_used: *mut ::std::os::raw::c_int, + ) -> *mut PLpgSQL_nsitem; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_ns_lookup_label( + ns_cur: *mut PLpgSQL_nsitem, + name: *const ::std::os::raw::c_char, + ) -> *mut PLpgSQL_nsitem; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_ns_find_nearest_loop(ns_cur: *mut PLpgSQL_nsitem) -> *mut PLpgSQL_nsitem; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_stmt_typename(stmt: *mut PLpgSQL_stmt) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_getdiag_kindname(kind: PLpgSQL_getdiag_kind) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_free_function_memory(func: *mut PLpgSQL_function); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_dumptree(func: *mut PLpgSQL_function); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_base_yylex() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_yylex() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_push_back_token(token: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_token_is_unreserved_keyword(token: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_append_source_text( + buf: StringInfo, + startlocation: ::std::os::raw::c_int, + endlocation: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_peek() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_peek2( + tok1_p: *mut ::std::os::raw::c_int, + tok2_p: *mut ::std::os::raw::c_int, + tok1_loc: *mut ::std::os::raw::c_int, + tok2_loc: *mut ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_scanner_errposition(location: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_yyerror(message: *const ::std::os::raw::c_char) -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_location_to_lineno(location: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_latest_lineno() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_scanner_init(str_: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_scanner_finish(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plpgsql_yyparse() -> ::std::os::raw::c_int; +} +extern "C" { + pub static mut logical_decoding_work_mem: ::std::os::raw::c_int; +} +extern "C" { + pub static mut logical_replication_mode: ::std::os::raw::c_int; +} +pub const LogicalRepMode_LOGICAL_REP_MODE_BUFFERED: LogicalRepMode = 0; +pub const LogicalRepMode_LOGICAL_REP_MODE_IMMEDIATE: LogicalRepMode = 1; +pub type LogicalRepMode = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReorderBufferTupleBuf { + pub node: slist_node, + pub tuple: HeapTupleData, + pub alloc_tuple_size: Size, +} +impl Default for ReorderBufferTupleBuf { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INSERT: ReorderBufferChangeType = 0; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_UPDATE: ReorderBufferChangeType = 1; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_DELETE: ReorderBufferChangeType = 2; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_MESSAGE: ReorderBufferChangeType = 3; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INVALIDATION: ReorderBufferChangeType = 4; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_SNAPSHOT: ReorderBufferChangeType = + 5; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_COMMAND_ID: + ReorderBufferChangeType = 6; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_TUPLECID: ReorderBufferChangeType = + 7; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_SPEC_INSERT: + ReorderBufferChangeType = 8; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_SPEC_CONFIRM: + ReorderBufferChangeType = 9; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_SPEC_ABORT: + ReorderBufferChangeType = 10; +pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_TRUNCATE: ReorderBufferChangeType = 11; +pub type ReorderBufferChangeType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ReorderBufferChange { + pub lsn: XLogRecPtr, + pub action: ReorderBufferChangeType, + pub txn: *mut ReorderBufferTXN, + pub origin_id: RepOriginId, + pub data: ReorderBufferChange__bindgen_ty_1, + pub node: dlist_node, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ReorderBufferChange__bindgen_ty_1 { + pub tp: ReorderBufferChange__bindgen_ty_1__bindgen_ty_1, + pub truncate: ReorderBufferChange__bindgen_ty_1__bindgen_ty_2, + pub msg: ReorderBufferChange__bindgen_ty_1__bindgen_ty_3, + pub snapshot: Snapshot, + pub command_id: CommandId, + pub tuplecid: ReorderBufferChange__bindgen_ty_1__bindgen_ty_4, + pub inval: ReorderBufferChange__bindgen_ty_1__bindgen_ty_5, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReorderBufferChange__bindgen_ty_1__bindgen_ty_1 { + pub rlocator: RelFileLocator, + pub clear_toast_afterwards: bool, + pub oldtuple: *mut ReorderBufferTupleBuf, + pub newtuple: *mut ReorderBufferTupleBuf, +} +impl Default for ReorderBufferChange__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReorderBufferChange__bindgen_ty_1__bindgen_ty_2 { + pub nrelids: Size, + pub cascade: bool, + pub restart_seqs: bool, + pub relids: *mut Oid, +} +impl Default for ReorderBufferChange__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReorderBufferChange__bindgen_ty_1__bindgen_ty_3 { + pub prefix: *mut ::std::os::raw::c_char, + pub message_size: Size, + pub message: *mut ::std::os::raw::c_char, +} +impl Default for ReorderBufferChange__bindgen_ty_1__bindgen_ty_3 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReorderBufferChange__bindgen_ty_1__bindgen_ty_4 { + pub locator: RelFileLocator, + pub tid: ItemPointerData, + pub cmin: CommandId, + pub cmax: CommandId, + pub combocid: CommandId, +} +impl Default for ReorderBufferChange__bindgen_ty_1__bindgen_ty_4 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReorderBufferChange__bindgen_ty_1__bindgen_ty_5 { + pub ninvalidations: uint32, + pub invalidations: *mut SharedInvalidationMessage, +} +impl Default for ReorderBufferChange__bindgen_ty_1__bindgen_ty_5 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for ReorderBufferChange__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for ReorderBufferChange { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ReorderBufferTXN { + pub txn_flags: bits32, + pub xid: TransactionId, + pub toplevel_xid: TransactionId, + pub gid: *mut ::std::os::raw::c_char, + pub first_lsn: XLogRecPtr, + pub final_lsn: XLogRecPtr, + pub end_lsn: XLogRecPtr, + pub toptxn: *mut ReorderBufferTXN, + pub restart_decoding_lsn: XLogRecPtr, + pub origin_id: RepOriginId, + pub origin_lsn: XLogRecPtr, + pub xact_time: ReorderBufferTXN__bindgen_ty_1, + pub base_snapshot: Snapshot, + pub base_snapshot_lsn: XLogRecPtr, + pub base_snapshot_node: dlist_node, + pub snapshot_now: Snapshot, + pub command_id: CommandId, + pub nentries: uint64, + pub nentries_mem: uint64, + pub changes: dlist_head, + pub tuplecids: dlist_head, + pub ntuplecids: uint64, + pub tuplecid_hash: *mut HTAB, + pub toast_hash: *mut HTAB, + pub subtxns: dlist_head, + pub nsubtxns: uint32, + pub ninvalidations: uint32, + pub invalidations: *mut SharedInvalidationMessage, + pub node: dlist_node, + pub catchange_node: dlist_node, + pub size: Size, + pub total_size: Size, + pub concurrent_abort: bool, + pub output_plugin_private: *mut ::std::os::raw::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ReorderBufferTXN__bindgen_ty_1 { + pub commit_time: TimestampTz, + pub prepare_time: TimestampTz, + pub abort_time: TimestampTz, +} +impl Default for ReorderBufferTXN__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for ReorderBufferTXN { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ReorderBufferApplyChangeCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + relation: Relation, + change: *mut ReorderBufferChange, + ), +>; +pub type ReorderBufferApplyTruncateCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + nrelations: ::std::os::raw::c_int, + relations: *mut Relation, + change: *mut ReorderBufferChange, + ), +>; +pub type ReorderBufferBeginCB = + ::std::option::Option; +pub type ReorderBufferCommitCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + commit_lsn: XLogRecPtr, + ), +>; +pub type ReorderBufferMessageCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + message_lsn: XLogRecPtr, + transactional: bool, + prefix: *const ::std::os::raw::c_char, + sz: Size, + message: *const ::std::os::raw::c_char, + ), +>; +pub type ReorderBufferBeginPrepareCB = + ::std::option::Option; +pub type ReorderBufferPrepareCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + prepare_lsn: XLogRecPtr, + ), +>; +pub type ReorderBufferCommitPreparedCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + commit_lsn: XLogRecPtr, + ), +>; +pub type ReorderBufferRollbackPreparedCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + prepare_end_lsn: XLogRecPtr, + prepare_time: TimestampTz, + ), +>; +pub type ReorderBufferStreamStartCB = ::std::option::Option< + unsafe extern "C" fn(rb: *mut ReorderBuffer, txn: *mut ReorderBufferTXN, first_lsn: XLogRecPtr), +>; +pub type ReorderBufferStreamStopCB = ::std::option::Option< + unsafe extern "C" fn(rb: *mut ReorderBuffer, txn: *mut ReorderBufferTXN, last_lsn: XLogRecPtr), +>; +pub type ReorderBufferStreamAbortCB = ::std::option::Option< + unsafe extern "C" fn(rb: *mut ReorderBuffer, txn: *mut ReorderBufferTXN, abort_lsn: XLogRecPtr), +>; +pub type ReorderBufferStreamPrepareCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + prepare_lsn: XLogRecPtr, + ), +>; +pub type ReorderBufferStreamCommitCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + commit_lsn: XLogRecPtr, + ), +>; +pub type ReorderBufferStreamChangeCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + relation: Relation, + change: *mut ReorderBufferChange, + ), +>; +pub type ReorderBufferStreamMessageCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + message_lsn: XLogRecPtr, + transactional: bool, + prefix: *const ::std::os::raw::c_char, + sz: Size, + message: *const ::std::os::raw::c_char, + ), +>; +pub type ReorderBufferStreamTruncateCB = ::std::option::Option< + unsafe extern "C" fn( + rb: *mut ReorderBuffer, + txn: *mut ReorderBufferTXN, + nrelations: ::std::os::raw::c_int, + relations: *mut Relation, + change: *mut ReorderBufferChange, + ), +>; +pub type ReorderBufferUpdateProgressTxnCB = ::std::option::Option< + unsafe extern "C" fn(rb: *mut ReorderBuffer, txn: *mut ReorderBufferTXN, lsn: XLogRecPtr), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReorderBuffer { + pub by_txn: *mut HTAB, + pub toplevel_by_lsn: dlist_head, + pub txns_by_base_snapshot_lsn: dlist_head, + pub catchange_txns: dclist_head, + pub by_txn_last_xid: TransactionId, + pub by_txn_last_txn: *mut ReorderBufferTXN, + pub begin: ReorderBufferBeginCB, + pub apply_change: ReorderBufferApplyChangeCB, + pub apply_truncate: ReorderBufferApplyTruncateCB, + pub commit: ReorderBufferCommitCB, + pub message: ReorderBufferMessageCB, + pub begin_prepare: ReorderBufferBeginCB, + pub prepare: ReorderBufferPrepareCB, + pub commit_prepared: ReorderBufferCommitPreparedCB, + pub rollback_prepared: ReorderBufferRollbackPreparedCB, + pub stream_start: ReorderBufferStreamStartCB, + pub stream_stop: ReorderBufferStreamStopCB, + pub stream_abort: ReorderBufferStreamAbortCB, + pub stream_prepare: ReorderBufferStreamPrepareCB, + pub stream_commit: ReorderBufferStreamCommitCB, + pub stream_change: ReorderBufferStreamChangeCB, + pub stream_message: ReorderBufferStreamMessageCB, + pub stream_truncate: ReorderBufferStreamTruncateCB, + pub update_progress_txn: ReorderBufferUpdateProgressTxnCB, + pub private_data: *mut ::std::os::raw::c_void, + pub output_rewrites: bool, + pub context: MemoryContext, + pub change_context: MemoryContext, + pub txn_context: MemoryContext, + pub tup_context: MemoryContext, + pub current_restart_decoding_lsn: XLogRecPtr, + pub outbuf: *mut ::std::os::raw::c_char, + pub outbufsize: Size, + pub size: Size, + pub spillTxns: int64, + pub spillCount: int64, + pub spillBytes: int64, + pub streamTxns: int64, + pub streamCount: int64, + pub streamBytes: int64, + pub totalTxns: int64, + pub totalBytes: int64, +} +impl Default for ReorderBuffer { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferAllocate() -> *mut ReorderBuffer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferFree(rb: *mut ReorderBuffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferGetTupleBuf( + rb: *mut ReorderBuffer, + tuple_len: Size, + ) -> *mut ReorderBufferTupleBuf; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferReturnTupleBuf(rb: *mut ReorderBuffer, tuple: *mut ReorderBufferTupleBuf); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferGetChange(rb: *mut ReorderBuffer) -> *mut ReorderBufferChange; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferReturnChange( + rb: *mut ReorderBuffer, + change: *mut ReorderBufferChange, + upd_mem: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferGetRelids( + rb: *mut ReorderBuffer, + nrelids: ::std::os::raw::c_int, + ) -> *mut Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferReturnRelids(rb: *mut ReorderBuffer, relids: *mut Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferQueueChange( + rb: *mut ReorderBuffer, + xid: TransactionId, + lsn: XLogRecPtr, + change: *mut ReorderBufferChange, + toast_insert: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferQueueMessage( + rb: *mut ReorderBuffer, + xid: TransactionId, + snap: Snapshot, + lsn: XLogRecPtr, + transactional: bool, + prefix: *const ::std::os::raw::c_char, + message_size: Size, + message: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferCommit( + rb: *mut ReorderBuffer, + xid: TransactionId, + commit_lsn: XLogRecPtr, + end_lsn: XLogRecPtr, + commit_time: TimestampTz, + origin_id: RepOriginId, + origin_lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferFinishPrepared( + rb: *mut ReorderBuffer, + xid: TransactionId, + commit_lsn: XLogRecPtr, + end_lsn: XLogRecPtr, + two_phase_at: XLogRecPtr, + commit_time: TimestampTz, + origin_id: RepOriginId, + origin_lsn: XLogRecPtr, + gid: *mut ::std::os::raw::c_char, + is_commit: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferAssignChild( + rb: *mut ReorderBuffer, + xid: TransactionId, + subxid: TransactionId, + lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferCommitChild( + rb: *mut ReorderBuffer, + xid: TransactionId, + subxid: TransactionId, + commit_lsn: XLogRecPtr, + end_lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferAbort( + rb: *mut ReorderBuffer, + xid: TransactionId, + lsn: XLogRecPtr, + abort_time: TimestampTz, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferAbortOld(rb: *mut ReorderBuffer, oldestRunningXid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferForget(rb: *mut ReorderBuffer, xid: TransactionId, lsn: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferInvalidate(rb: *mut ReorderBuffer, xid: TransactionId, lsn: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferSetBaseSnapshot( + rb: *mut ReorderBuffer, + xid: TransactionId, + lsn: XLogRecPtr, + snap: Snapshot, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferAddSnapshot( + rb: *mut ReorderBuffer, + xid: TransactionId, + lsn: XLogRecPtr, + snap: Snapshot, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferAddNewCommandId( + rb: *mut ReorderBuffer, + xid: TransactionId, + lsn: XLogRecPtr, + cid: CommandId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferAddNewTupleCids( + rb: *mut ReorderBuffer, + xid: TransactionId, + lsn: XLogRecPtr, + locator: RelFileLocator, + tid: ItemPointerData, + cmin: CommandId, + cmax: CommandId, + combocid: CommandId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferAddInvalidations( + rb: *mut ReorderBuffer, + xid: TransactionId, + lsn: XLogRecPtr, + nmsgs: Size, + msgs: *mut SharedInvalidationMessage, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferImmediateInvalidation( + rb: *mut ReorderBuffer, + ninvalidations: uint32, + invalidations: *mut SharedInvalidationMessage, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferProcessXid(rb: *mut ReorderBuffer, xid: TransactionId, lsn: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferXidSetCatalogChanges( + rb: *mut ReorderBuffer, + xid: TransactionId, + lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferXidHasCatalogChanges(rb: *mut ReorderBuffer, xid: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferXidHasBaseSnapshot(rb: *mut ReorderBuffer, xid: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferRememberPrepareInfo( + rb: *mut ReorderBuffer, + xid: TransactionId, + prepare_lsn: XLogRecPtr, + end_lsn: XLogRecPtr, + prepare_time: TimestampTz, + origin_id: RepOriginId, + origin_lsn: XLogRecPtr, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferSkipPrepare(rb: *mut ReorderBuffer, xid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferPrepare( + rb: *mut ReorderBuffer, + xid: TransactionId, + gid: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferGetOldestTXN(rb: *mut ReorderBuffer) -> *mut ReorderBufferTXN; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferGetOldestXmin(rb: *mut ReorderBuffer) -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferGetCatalogChangesXacts(rb: *mut ReorderBuffer) -> *mut TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReorderBufferSetRestartPoint(rb: *mut ReorderBuffer, ptr: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StartupReorderBuffer(); +} +pub const OutputPluginOutputType_OUTPUT_PLUGIN_BINARY_OUTPUT: OutputPluginOutputType = 0; +pub const OutputPluginOutputType_OUTPUT_PLUGIN_TEXTUAL_OUTPUT: OutputPluginOutputType = 1; +pub type OutputPluginOutputType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct OutputPluginOptions { + pub output_type: OutputPluginOutputType, + pub receive_rewrites: bool, +} +impl Default for OutputPluginOptions { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type LogicalOutputPluginInit = + ::std::option::Option; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn _PG_output_plugin_init(cb: *mut OutputPluginCallbacks); +} +pub type LogicalDecodeStartupCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + options: *mut OutputPluginOptions, + is_init: bool, + ), +>; +pub type LogicalDecodeBeginCB = ::std::option::Option< + unsafe extern "C" fn(ctx: *mut LogicalDecodingContext, txn: *mut ReorderBufferTXN), +>; +pub type LogicalDecodeChangeCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + relation: Relation, + change: *mut ReorderBufferChange, + ), +>; +pub type LogicalDecodeTruncateCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + nrelations: ::std::os::raw::c_int, + relations: *mut Relation, + change: *mut ReorderBufferChange, + ), +>; +pub type LogicalDecodeCommitCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + commit_lsn: XLogRecPtr, + ), +>; +pub type LogicalDecodeMessageCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + message_lsn: XLogRecPtr, + transactional: bool, + prefix: *const ::std::os::raw::c_char, + message_size: Size, + message: *const ::std::os::raw::c_char, + ), +>; +pub type LogicalDecodeFilterByOriginCB = ::std::option::Option< + unsafe extern "C" fn(ctx: *mut LogicalDecodingContext, origin_id: RepOriginId) -> bool, +>; +pub type LogicalDecodeShutdownCB = + ::std::option::Option; +pub type LogicalDecodeFilterPrepareCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + xid: TransactionId, + gid: *const ::std::os::raw::c_char, + ) -> bool, +>; +pub type LogicalDecodeBeginPrepareCB = ::std::option::Option< + unsafe extern "C" fn(ctx: *mut LogicalDecodingContext, txn: *mut ReorderBufferTXN), +>; +pub type LogicalDecodePrepareCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + prepare_lsn: XLogRecPtr, + ), +>; +pub type LogicalDecodeCommitPreparedCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + commit_lsn: XLogRecPtr, + ), +>; +pub type LogicalDecodeRollbackPreparedCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + prepare_end_lsn: XLogRecPtr, + prepare_time: TimestampTz, + ), +>; +pub type LogicalDecodeStreamStartCB = ::std::option::Option< + unsafe extern "C" fn(ctx: *mut LogicalDecodingContext, txn: *mut ReorderBufferTXN), +>; +pub type LogicalDecodeStreamStopCB = ::std::option::Option< + unsafe extern "C" fn(ctx: *mut LogicalDecodingContext, txn: *mut ReorderBufferTXN), +>; +pub type LogicalDecodeStreamAbortCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + abort_lsn: XLogRecPtr, + ), +>; +pub type LogicalDecodeStreamPrepareCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + prepare_lsn: XLogRecPtr, + ), +>; +pub type LogicalDecodeStreamCommitCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + commit_lsn: XLogRecPtr, + ), +>; +pub type LogicalDecodeStreamChangeCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + relation: Relation, + change: *mut ReorderBufferChange, + ), +>; +pub type LogicalDecodeStreamMessageCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + message_lsn: XLogRecPtr, + transactional: bool, + prefix: *const ::std::os::raw::c_char, + message_size: Size, + message: *const ::std::os::raw::c_char, + ), +>; +pub type LogicalDecodeStreamTruncateCB = ::std::option::Option< + unsafe extern "C" fn( + ctx: *mut LogicalDecodingContext, + txn: *mut ReorderBufferTXN, + nrelations: ::std::os::raw::c_int, + relations: *mut Relation, + change: *mut ReorderBufferChange, + ), +>; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct OutputPluginCallbacks { + pub startup_cb: LogicalDecodeStartupCB, + pub begin_cb: LogicalDecodeBeginCB, + pub change_cb: LogicalDecodeChangeCB, + pub truncate_cb: LogicalDecodeTruncateCB, + pub commit_cb: LogicalDecodeCommitCB, + pub message_cb: LogicalDecodeMessageCB, + pub filter_by_origin_cb: LogicalDecodeFilterByOriginCB, + pub shutdown_cb: LogicalDecodeShutdownCB, + pub filter_prepare_cb: LogicalDecodeFilterPrepareCB, + pub begin_prepare_cb: LogicalDecodeBeginPrepareCB, + pub prepare_cb: LogicalDecodePrepareCB, + pub commit_prepared_cb: LogicalDecodeCommitPreparedCB, + pub rollback_prepared_cb: LogicalDecodeRollbackPreparedCB, + pub stream_start_cb: LogicalDecodeStreamStartCB, + pub stream_stop_cb: LogicalDecodeStreamStopCB, + pub stream_abort_cb: LogicalDecodeStreamAbortCB, + pub stream_prepare_cb: LogicalDecodeStreamPrepareCB, + pub stream_commit_cb: LogicalDecodeStreamCommitCB, + pub stream_change_cb: LogicalDecodeStreamChangeCB, + pub stream_message_cb: LogicalDecodeStreamMessageCB, + pub stream_truncate_cb: LogicalDecodeStreamTruncateCB, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OutputPluginPrepareWrite(ctx: *mut LogicalDecodingContext, last_write: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OutputPluginWrite(ctx: *mut LogicalDecodingContext, last_write: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn OutputPluginUpdateProgress(ctx: *mut LogicalDecodingContext, skipped_xact: bool); +} +pub const LogicalRepMsgType_LOGICAL_REP_MSG_BEGIN: LogicalRepMsgType = 66; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_COMMIT: LogicalRepMsgType = 67; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_ORIGIN: LogicalRepMsgType = 79; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_INSERT: LogicalRepMsgType = 73; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_UPDATE: LogicalRepMsgType = 85; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_DELETE: LogicalRepMsgType = 68; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_TRUNCATE: LogicalRepMsgType = 84; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_RELATION: LogicalRepMsgType = 82; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_TYPE: LogicalRepMsgType = 89; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_MESSAGE: LogicalRepMsgType = 77; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_BEGIN_PREPARE: LogicalRepMsgType = 98; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_PREPARE: LogicalRepMsgType = 80; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_COMMIT_PREPARED: LogicalRepMsgType = 75; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_ROLLBACK_PREPARED: LogicalRepMsgType = 114; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_STREAM_START: LogicalRepMsgType = 83; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_STREAM_STOP: LogicalRepMsgType = 69; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_STREAM_COMMIT: LogicalRepMsgType = 99; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_STREAM_ABORT: LogicalRepMsgType = 65; +pub const LogicalRepMsgType_LOGICAL_REP_MSG_STREAM_PREPARE: LogicalRepMsgType = 112; +pub type LogicalRepMsgType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LogicalRepTupleData { + pub colvalues: *mut StringInfoData, + pub colstatus: *mut ::std::os::raw::c_char, + pub ncols: ::std::os::raw::c_int, +} +impl Default for LogicalRepTupleData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type LogicalRepRelId = uint32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LogicalRepRelation { + pub remoteid: LogicalRepRelId, + pub nspname: *mut ::std::os::raw::c_char, + pub relname: *mut ::std::os::raw::c_char, + pub natts: ::std::os::raw::c_int, + pub attnames: *mut *mut ::std::os::raw::c_char, + pub atttyps: *mut Oid, + pub replident: ::std::os::raw::c_char, + pub relkind: ::std::os::raw::c_char, + pub attkeys: *mut Bitmapset, +} +impl Default for LogicalRepRelation { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LogicalRepTyp { + pub remoteid: Oid, + pub nspname: *mut ::std::os::raw::c_char, + pub typname: *mut ::std::os::raw::c_char, +} +impl Default for LogicalRepTyp { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LogicalRepBeginData { + pub final_lsn: XLogRecPtr, + pub committime: TimestampTz, + pub xid: TransactionId, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LogicalRepCommitData { + pub commit_lsn: XLogRecPtr, + pub end_lsn: XLogRecPtr, + pub committime: TimestampTz, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LogicalRepPreparedTxnData { + pub prepare_lsn: XLogRecPtr, + pub end_lsn: XLogRecPtr, + pub prepare_time: TimestampTz, + pub xid: TransactionId, + pub gid: [::std::os::raw::c_char; 200usize], +} +impl Default for LogicalRepPreparedTxnData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LogicalRepCommitPreparedTxnData { + pub commit_lsn: XLogRecPtr, + pub end_lsn: XLogRecPtr, + pub commit_time: TimestampTz, + pub xid: TransactionId, + pub gid: [::std::os::raw::c_char; 200usize], +} +impl Default for LogicalRepCommitPreparedTxnData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LogicalRepRollbackPreparedTxnData { + pub prepare_end_lsn: XLogRecPtr, + pub rollback_end_lsn: XLogRecPtr, + pub prepare_time: TimestampTz, + pub rollback_time: TimestampTz, + pub xid: TransactionId, + pub gid: [::std::os::raw::c_char; 200usize], +} +impl Default for LogicalRepRollbackPreparedTxnData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LogicalRepStreamAbortData { + pub xid: TransactionId, + pub subxid: TransactionId, + pub abort_lsn: XLogRecPtr, + pub abort_time: TimestampTz, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_begin(out: StringInfo, txn: *mut ReorderBufferTXN); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_begin(in_: StringInfo, begin_data: *mut LogicalRepBeginData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_commit( + out: StringInfo, + txn: *mut ReorderBufferTXN, + commit_lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_commit(in_: StringInfo, commit_data: *mut LogicalRepCommitData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_begin_prepare(out: StringInfo, txn: *mut ReorderBufferTXN); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_begin_prepare( + in_: StringInfo, + begin_data: *mut LogicalRepPreparedTxnData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_prepare( + out: StringInfo, + txn: *mut ReorderBufferTXN, + prepare_lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_prepare(in_: StringInfo, prepare_data: *mut LogicalRepPreparedTxnData); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_commit_prepared( + out: StringInfo, + txn: *mut ReorderBufferTXN, + commit_lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_commit_prepared( + in_: StringInfo, + prepare_data: *mut LogicalRepCommitPreparedTxnData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_rollback_prepared( + out: StringInfo, + txn: *mut ReorderBufferTXN, + prepare_end_lsn: XLogRecPtr, + prepare_time: TimestampTz, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_rollback_prepared( + in_: StringInfo, + rollback_data: *mut LogicalRepRollbackPreparedTxnData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_stream_prepare( + out: StringInfo, + txn: *mut ReorderBufferTXN, + prepare_lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_stream_prepare( + in_: StringInfo, + prepare_data: *mut LogicalRepPreparedTxnData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_origin( + out: StringInfo, + origin: *const ::std::os::raw::c_char, + origin_lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_origin( + in_: StringInfo, + origin_lsn: *mut XLogRecPtr, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_insert( + out: StringInfo, + xid: TransactionId, + rel: Relation, + newslot: *mut TupleTableSlot, + binary: bool, + columns: *mut Bitmapset, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_insert( + in_: StringInfo, + newtup: *mut LogicalRepTupleData, + ) -> LogicalRepRelId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_update( + out: StringInfo, + xid: TransactionId, + rel: Relation, + oldslot: *mut TupleTableSlot, + newslot: *mut TupleTableSlot, + binary: bool, + columns: *mut Bitmapset, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_update( + in_: StringInfo, + has_oldtuple: *mut bool, + oldtup: *mut LogicalRepTupleData, + newtup: *mut LogicalRepTupleData, + ) -> LogicalRepRelId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_delete( + out: StringInfo, + xid: TransactionId, + rel: Relation, + oldslot: *mut TupleTableSlot, + binary: bool, + columns: *mut Bitmapset, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_delete( + in_: StringInfo, + oldtup: *mut LogicalRepTupleData, + ) -> LogicalRepRelId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_truncate( + out: StringInfo, + xid: TransactionId, + nrelids: ::std::os::raw::c_int, + relids: *mut Oid, + cascade: bool, + restart_seqs: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_truncate( + in_: StringInfo, + cascade: *mut bool, + restart_seqs: *mut bool, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_message( + out: StringInfo, + xid: TransactionId, + lsn: XLogRecPtr, + transactional: bool, + prefix: *const ::std::os::raw::c_char, + sz: Size, + message: *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_rel( + out: StringInfo, + xid: TransactionId, + rel: Relation, + columns: *mut Bitmapset, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_rel(in_: StringInfo) -> *mut LogicalRepRelation; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_typ(out: StringInfo, xid: TransactionId, typoid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_typ(in_: StringInfo, ltyp: *mut LogicalRepTyp); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_stream_start(out: StringInfo, xid: TransactionId, first_segment: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_stream_start(in_: StringInfo, first_segment: *mut bool) + -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_stream_stop(out: StringInfo); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_stream_commit( + out: StringInfo, + txn: *mut ReorderBufferTXN, + commit_lsn: XLogRecPtr, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_stream_commit( + in_: StringInfo, + commit_data: *mut LogicalRepCommitData, + ) -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_write_stream_abort( + out: StringInfo, + xid: TransactionId, + subxid: TransactionId, + abort_lsn: XLogRecPtr, + abort_time: TimestampTz, + write_abort_info: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_read_stream_abort( + in_: StringInfo, + abort_data: *mut LogicalRepStreamAbortData, + read_abort_info: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn logicalrep_message_type(action: LogicalRepMsgType) -> *mut ::std::os::raw::c_char; +} +pub const CRSSnapshotAction_CRS_EXPORT_SNAPSHOT: CRSSnapshotAction = 0; +pub const CRSSnapshotAction_CRS_NOEXPORT_SNAPSHOT: CRSSnapshotAction = 1; +pub const CRSSnapshotAction_CRS_USE_SNAPSHOT: CRSSnapshotAction = 2; +pub type CRSSnapshotAction = ::std::os::raw::c_uint; +extern "C" { + pub static mut am_walsender: bool; +} +extern "C" { + pub static mut am_cascading_walsender: bool; +} +extern "C" { + pub static mut am_db_walsender: bool; +} +extern "C" { + pub static mut wake_wal_senders: bool; +} +extern "C" { + pub static mut max_wal_senders: ::std::os::raw::c_int; +} +extern "C" { + pub static mut wal_sender_timeout: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_replication_commands: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitWalSender(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn exec_replication_command(cmd_string: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalSndErrorCleanup(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalSndResourceCleanup(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalSndSignals(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalSndShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalSndShmemInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalSndWakeup(physical: bool, logical: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalSndInitStopping(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalSndWaitStopping(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HandleWalSndInitStopping(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalSndRqstFileReload(); +} +extern "C" { + pub static mut wal_receiver_status_interval: ::std::os::raw::c_int; +} +extern "C" { + pub static mut wal_receiver_timeout: ::std::os::raw::c_int; +} +extern "C" { + pub static mut hot_standby_feedback: bool; +} +pub const WalRcvState_WALRCV_STOPPED: WalRcvState = 0; +pub const WalRcvState_WALRCV_STARTING: WalRcvState = 1; +pub const WalRcvState_WALRCV_STREAMING: WalRcvState = 2; +pub const WalRcvState_WALRCV_WAITING: WalRcvState = 3; +pub const WalRcvState_WALRCV_RESTARTING: WalRcvState = 4; +pub const WalRcvState_WALRCV_STOPPING: WalRcvState = 5; +pub type WalRcvState = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WalRcvData { + pub pid: pid_t, + pub walRcvState: WalRcvState, + pub walRcvStoppedCV: ConditionVariable, + pub startTime: pg_time_t, + pub receiveStart: XLogRecPtr, + pub receiveStartTLI: TimeLineID, + pub flushedUpto: XLogRecPtr, + pub receivedTLI: TimeLineID, + pub latestChunkStart: XLogRecPtr, + pub lastMsgSendTime: TimestampTz, + pub lastMsgReceiptTime: TimestampTz, + pub latestWalEnd: XLogRecPtr, + pub latestWalEndTime: TimestampTz, + pub conninfo: [::std::os::raw::c_char; 1024usize], + pub sender_host: [::std::os::raw::c_char; 1025usize], + pub sender_port: ::std::os::raw::c_int, + pub slotname: [::std::os::raw::c_char; 64usize], + pub is_temp_slot: bool, + pub ready_to_display: bool, + pub latch: *mut Latch, + pub mutex: slock_t, + pub writtenUpto: pg_atomic_uint64, + pub force_reply: sig_atomic_t, +} +impl Default for WalRcvData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut WalRcv: *mut WalRcvData; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct WalRcvStreamOptions { + pub logical: bool, + pub slotname: *mut ::std::os::raw::c_char, + pub startpoint: XLogRecPtr, + pub proto: WalRcvStreamOptions__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union WalRcvStreamOptions__bindgen_ty_1 { + pub physical: WalRcvStreamOptions__bindgen_ty_1__bindgen_ty_1, + pub logical: WalRcvStreamOptions__bindgen_ty_1__bindgen_ty_2, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct WalRcvStreamOptions__bindgen_ty_1__bindgen_ty_1 { + pub startpointTLI: TimeLineID, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WalRcvStreamOptions__bindgen_ty_1__bindgen_ty_2 { + pub proto_version: uint32, + pub publication_names: *mut List, + pub binary: bool, + pub streaming_str: *mut ::std::os::raw::c_char, + pub twophase: bool, + pub origin: *mut ::std::os::raw::c_char, +} +impl Default for WalRcvStreamOptions__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for WalRcvStreamOptions__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for WalRcvStreamOptions { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WalReceiverConn { + _unused: [u8; 0], +} +pub const WalRcvExecStatus_WALRCV_ERROR: WalRcvExecStatus = 0; +pub const WalRcvExecStatus_WALRCV_OK_COMMAND: WalRcvExecStatus = 1; +pub const WalRcvExecStatus_WALRCV_OK_TUPLES: WalRcvExecStatus = 2; +pub const WalRcvExecStatus_WALRCV_OK_COPY_IN: WalRcvExecStatus = 3; +pub const WalRcvExecStatus_WALRCV_OK_COPY_OUT: WalRcvExecStatus = 4; +pub const WalRcvExecStatus_WALRCV_OK_COPY_BOTH: WalRcvExecStatus = 5; +pub type WalRcvExecStatus = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WalRcvExecResult { + pub status: WalRcvExecStatus, + pub sqlstate: ::std::os::raw::c_int, + pub err: *mut ::std::os::raw::c_char, + pub tuplestore: *mut Tuplestorestate, + pub tupledesc: TupleDesc, +} +impl Default for WalRcvExecResult { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type walrcv_connect_fn = ::std::option::Option< + unsafe extern "C" fn( + conninfo: *const ::std::os::raw::c_char, + logical: bool, + must_use_password: bool, + appname: *const ::std::os::raw::c_char, + err: *mut *mut ::std::os::raw::c_char, + ) -> *mut WalReceiverConn, +>; +pub type walrcv_check_conninfo_fn = ::std::option::Option< + unsafe extern "C" fn(conninfo: *const ::std::os::raw::c_char, must_use_password: bool), +>; +pub type walrcv_get_conninfo_fn = ::std::option::Option< + unsafe extern "C" fn(conn: *mut WalReceiverConn) -> *mut ::std::os::raw::c_char, +>; +pub type walrcv_get_senderinfo_fn = ::std::option::Option< + unsafe extern "C" fn( + conn: *mut WalReceiverConn, + sender_host: *mut *mut ::std::os::raw::c_char, + sender_port: *mut ::std::os::raw::c_int, + ), +>; +pub type walrcv_identify_system_fn = ::std::option::Option< + unsafe extern "C" fn( + conn: *mut WalReceiverConn, + primary_tli: *mut TimeLineID, + ) -> *mut ::std::os::raw::c_char, +>; +pub type walrcv_server_version_fn = ::std::option::Option< + unsafe extern "C" fn(conn: *mut WalReceiverConn) -> ::std::os::raw::c_int, +>; +pub type walrcv_readtimelinehistoryfile_fn = ::std::option::Option< + unsafe extern "C" fn( + conn: *mut WalReceiverConn, + tli: TimeLineID, + filename: *mut *mut ::std::os::raw::c_char, + content: *mut *mut ::std::os::raw::c_char, + size: *mut ::std::os::raw::c_int, + ), +>; +pub type walrcv_startstreaming_fn = ::std::option::Option< + unsafe extern "C" fn(conn: *mut WalReceiverConn, options: *const WalRcvStreamOptions) -> bool, +>; +pub type walrcv_endstreaming_fn = ::std::option::Option< + unsafe extern "C" fn(conn: *mut WalReceiverConn, next_tli: *mut TimeLineID), +>; +pub type walrcv_receive_fn = ::std::option::Option< + unsafe extern "C" fn( + conn: *mut WalReceiverConn, + buffer: *mut *mut ::std::os::raw::c_char, + wait_fd: *mut pgsocket, + ) -> ::std::os::raw::c_int, +>; +pub type walrcv_send_fn = ::std::option::Option< + unsafe extern "C" fn( + conn: *mut WalReceiverConn, + buffer: *const ::std::os::raw::c_char, + nbytes: ::std::os::raw::c_int, + ), +>; +pub type walrcv_create_slot_fn = ::std::option::Option< + unsafe extern "C" fn( + conn: *mut WalReceiverConn, + slotname: *const ::std::os::raw::c_char, + temporary: bool, + two_phase: bool, + snapshot_action: CRSSnapshotAction, + lsn: *mut XLogRecPtr, + ) -> *mut ::std::os::raw::c_char, +>; +pub type walrcv_get_backend_pid_fn = + ::std::option::Option pid_t>; +pub type walrcv_exec_fn = ::std::option::Option< + unsafe extern "C" fn( + conn: *mut WalReceiverConn, + query: *const ::std::os::raw::c_char, + nRetTypes: ::std::os::raw::c_int, + retTypes: *const Oid, + ) -> *mut WalRcvExecResult, +>; +pub type walrcv_disconnect_fn = + ::std::option::Option; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct WalReceiverFunctionsType { + pub walrcv_connect: walrcv_connect_fn, + pub walrcv_check_conninfo: walrcv_check_conninfo_fn, + pub walrcv_get_conninfo: walrcv_get_conninfo_fn, + pub walrcv_get_senderinfo: walrcv_get_senderinfo_fn, + pub walrcv_identify_system: walrcv_identify_system_fn, + pub walrcv_server_version: walrcv_server_version_fn, + pub walrcv_readtimelinehistoryfile: walrcv_readtimelinehistoryfile_fn, + pub walrcv_startstreaming: walrcv_startstreaming_fn, + pub walrcv_endstreaming: walrcv_endstreaming_fn, + pub walrcv_receive: walrcv_receive_fn, + pub walrcv_send: walrcv_send_fn, + pub walrcv_create_slot: walrcv_create_slot_fn, + pub walrcv_get_backend_pid: walrcv_get_backend_pid_fn, + pub walrcv_exec: walrcv_exec_fn, + pub walrcv_disconnect: walrcv_disconnect_fn, +} +extern "C" { + pub static mut WalReceiverFunctions: *mut WalReceiverFunctionsType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalReceiverMain() -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessWalRcvInterrupts(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalRcvForceReply(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalRcvShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalRcvShmemInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShutdownWalRcv(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalRcvStreaming() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WalRcvRunning() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RequestXLogStreaming( + tli: TimeLineID, + recptr: XLogRecPtr, + conninfo: *const ::std::os::raw::c_char, + slotname: *const ::std::os::raw::c_char, + create_temp_slot: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetWalRcvFlushRecPtr( + latestChunkStart: *mut XLogRecPtr, + receiveTLI: *mut TimeLineID, + ) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetWalRcvWriteRecPtr() -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetReplicationApplyDelay() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetReplicationTransferLatency() -> ::std::os::raw::c_int; +} +pub const ReplicationSlotPersistency_RS_PERSISTENT: ReplicationSlotPersistency = 0; +pub const ReplicationSlotPersistency_RS_EPHEMERAL: ReplicationSlotPersistency = 1; +pub const ReplicationSlotPersistency_RS_TEMPORARY: ReplicationSlotPersistency = 2; +pub type ReplicationSlotPersistency = ::std::os::raw::c_uint; +pub const ReplicationSlotInvalidationCause_RS_INVAL_NONE: ReplicationSlotInvalidationCause = 0; +pub const ReplicationSlotInvalidationCause_RS_INVAL_WAL_REMOVED: ReplicationSlotInvalidationCause = + 1; +pub const ReplicationSlotInvalidationCause_RS_INVAL_HORIZON: ReplicationSlotInvalidationCause = 2; +pub const ReplicationSlotInvalidationCause_RS_INVAL_WAL_LEVEL: ReplicationSlotInvalidationCause = 3; +pub type ReplicationSlotInvalidationCause = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReplicationSlotPersistentData { + pub name: NameData, + pub database: Oid, + pub persistency: ReplicationSlotPersistency, + pub xmin: TransactionId, + pub catalog_xmin: TransactionId, + pub restart_lsn: XLogRecPtr, + pub invalidated: ReplicationSlotInvalidationCause, + pub confirmed_flush: XLogRecPtr, + pub two_phase_at: XLogRecPtr, + pub two_phase: bool, + pub plugin: NameData, +} +impl Default for ReplicationSlotPersistentData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReplicationSlot { + pub mutex: slock_t, + pub in_use: bool, + pub active_pid: pid_t, + pub just_dirtied: bool, + pub dirty: bool, + pub effective_xmin: TransactionId, + pub effective_catalog_xmin: TransactionId, + pub data: ReplicationSlotPersistentData, + pub io_in_progress_lock: LWLock, + pub active_cv: ConditionVariable, + pub candidate_catalog_xmin: TransactionId, + pub candidate_xmin_lsn: XLogRecPtr, + pub candidate_restart_valid: XLogRecPtr, + pub candidate_restart_lsn: XLogRecPtr, +} +impl Default for ReplicationSlot { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ReplicationSlotCtlData { + pub replication_slots: [ReplicationSlot; 1usize], +} +impl Default for ReplicationSlotCtlData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut ReplicationSlotCtl: *mut ReplicationSlotCtlData; +} +extern "C" { + pub static mut MyReplicationSlot: *mut ReplicationSlot; +} +extern "C" { + pub static mut max_replication_slots: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotsShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotsShmemInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotCreate( + name: *const ::std::os::raw::c_char, + db_specific: bool, + persistency: ReplicationSlotPersistency, + two_phase: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotPersist(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotDrop(name: *const ::std::os::raw::c_char, nowait: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotAcquire(name: *const ::std::os::raw::c_char, nowait: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotRelease(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotCleanup(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotSave(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotMarkDirty(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotInitialize(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotValidateName( + name: *const ::std::os::raw::c_char, + elevel: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotReserveWal(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotsComputeRequiredXmin(already_locked: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotsComputeRequiredLSN(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotsComputeLogicalRestartLSN() -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotsCountDBSlots( + dboid: Oid, + nslots: *mut ::std::os::raw::c_int, + nactive: *mut ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotsDropDBSlots(dboid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InvalidateObsoleteReplicationSlots( + cause: ReplicationSlotInvalidationCause, + oldestSegno: XLogSegNo, + dboid: Oid, + snapshotConflictHorizon: TransactionId, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchNamedReplicationSlot( + name: *const ::std::os::raw::c_char, + need_lock: bool, + ) -> *mut ReplicationSlot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotIndex(slot: *mut ReplicationSlot) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotName(index: ::std::os::raw::c_int, name: Name) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotNameForTablesync( + suboid: Oid, + relid: Oid, + syncslotname: *mut ::std::os::raw::c_char, + szslot: Size, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReplicationSlotDropAtPubNode( + wrconn: *mut WalReceiverConn, + slotname: *mut ::std::os::raw::c_char, + missing_ok: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StartupReplicationSlots(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckPointReplicationSlots(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckSlotRequirements(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckSlotPermissions(); +} +pub type LogicalOutputPluginWriterWrite = ::std::option::Option< + unsafe extern "C" fn( + lr: *mut LogicalDecodingContext, + Ptr: XLogRecPtr, + xid: TransactionId, + last_write: bool, + ), +>; +pub type LogicalOutputPluginWriterPrepareWrite = LogicalOutputPluginWriterWrite; +pub type LogicalOutputPluginWriterUpdateProgress = ::std::option::Option< + unsafe extern "C" fn( + lr: *mut LogicalDecodingContext, + Ptr: XLogRecPtr, + xid: TransactionId, + skipped_xact: bool, + ), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LogicalDecodingContext { + pub context: MemoryContext, + pub slot: *mut ReplicationSlot, + pub reader: *mut XLogReaderState, + pub reorder: *mut ReorderBuffer, + pub snapshot_builder: *mut SnapBuild, + pub fast_forward: bool, + pub callbacks: OutputPluginCallbacks, + pub options: OutputPluginOptions, + pub output_plugin_options: *mut List, + pub prepare_write: LogicalOutputPluginWriterPrepareWrite, + pub write: LogicalOutputPluginWriterWrite, + pub update_progress: LogicalOutputPluginWriterUpdateProgress, + pub out: StringInfo, + pub output_plugin_private: *mut ::std::os::raw::c_void, + pub output_writer_private: *mut ::std::os::raw::c_void, + pub streaming: bool, + pub twophase: bool, + pub twophase_opt_given: bool, + pub accept_writes: bool, + pub prepared_write: bool, + pub write_location: XLogRecPtr, + pub write_xid: TransactionId, + pub end_xact: bool, +} +impl Default for LogicalDecodingContext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckLogicalDecodingRequirements(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateInitDecodingContext( + plugin: *const ::std::os::raw::c_char, + output_plugin_options: *mut List, + need_full_snapshot: bool, + restart_lsn: XLogRecPtr, + xl_routine: *mut XLogReaderRoutine, + prepare_write: LogicalOutputPluginWriterPrepareWrite, + do_write: LogicalOutputPluginWriterWrite, + update_progress: LogicalOutputPluginWriterUpdateProgress, + ) -> *mut LogicalDecodingContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateDecodingContext( + start_lsn: XLogRecPtr, + output_plugin_options: *mut List, + fast_forward: bool, + xl_routine: *mut XLogReaderRoutine, + prepare_write: LogicalOutputPluginWriterPrepareWrite, + do_write: LogicalOutputPluginWriterWrite, + update_progress: LogicalOutputPluginWriterUpdateProgress, + ) -> *mut LogicalDecodingContext; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodingContextFindStartpoint(ctx: *mut LogicalDecodingContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodingContextReady(ctx: *mut LogicalDecodingContext) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeDecodingContext(ctx: *mut LogicalDecodingContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalIncreaseXminForSlot(current_lsn: XLogRecPtr, xmin: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalIncreaseRestartDecodingForSlot(current_lsn: XLogRecPtr, restart_lsn: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogicalConfirmReceivedLocation(lsn: XLogRecPtr); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn filter_prepare_cb_wrapper( + ctx: *mut LogicalDecodingContext, + xid: TransactionId, + gid: *const ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn filter_by_origin_cb_wrapper( + ctx: *mut LogicalDecodingContext, + origin_id: RepOriginId, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResetLogicalStreamingState(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UpdateDecodingStats(ctx: *mut LogicalDecodingContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QueryRewrite(parsetree: *mut Query) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AcquireRewriteLocks(parsetree: *mut Query, forExecute: bool, forUpdatePushedDown: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn build_column_default(rel: Relation, attrno: ::std::os::raw::c_int) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_view_query(view: Relation) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn view_query_is_auto_updatable( + viewquery: *mut Query, + check_cols: bool, + ) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn relation_is_updatable( + reloid: Oid, + outer_reloids: *mut List, + include_triggers: bool, + include_cols: *mut Bitmapset, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RowSecurityPolicy { + pub policy_name: *mut ::std::os::raw::c_char, + pub polcmd: ::std::os::raw::c_char, + pub roles: *mut ArrayType, + pub permissive: bool, + pub qual: *mut Expr, + pub with_check_qual: *mut Expr, + pub hassublinks: bool, +} +impl Default for RowSecurityPolicy { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RowSecurityDesc { + pub rscxt: MemoryContext, + pub policies: *mut List, +} +impl Default for RowSecurityDesc { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type row_security_policy_hook_type = + ::std::option::Option *mut List>; +extern "C" { + pub static mut row_security_policy_hook_permissive: row_security_policy_hook_type; +} +extern "C" { + pub static mut row_security_policy_hook_restrictive: row_security_policy_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_row_security_policies( + root: *mut Query, + rte: *mut RangeTblEntry, + rt_index: ::std::os::raw::c_int, + securityQuals: *mut *mut List, + withCheckOptions: *mut *mut List, + hasRowSecurity: *mut bool, + hasSubLinks: *mut bool, + ); +} +extern "C" { + pub static mut old_snapshot_threshold: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SnapMgrShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SnapMgrInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSnapshotCurrentTimestamp() -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetOldSnapshotThresholdTimestamp() -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SnapshotTooOldMagicForTest(); +} +extern "C" { + pub static mut FirstSnapshotSet: bool; +} +extern "C" { + pub static mut TransactionXmin: TransactionId; +} +extern "C" { + pub static mut RecentXmin: TransactionId; +} +extern "C" { + pub static mut SnapshotSelfData: SnapshotData; +} +extern "C" { + pub static mut SnapshotAnyData: SnapshotData; +} +extern "C" { + pub static mut CatalogSnapshotData: SnapshotData; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetTransactionSnapshot() -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLatestSnapshot() -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SnapshotSetCommandId(curcid: CommandId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetOldestSnapshot() -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCatalogSnapshot(relid: Oid) -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetNonHistoricCatalogSnapshot(relid: Oid) -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InvalidateCatalogSnapshot(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InvalidateCatalogSnapshotConditionally(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PushActiveSnapshot(snapshot: Snapshot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PushActiveSnapshotWithLevel(snapshot: Snapshot, snap_level: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PushCopiedSnapshot(snapshot: Snapshot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UpdateActiveSnapshotCommandId(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PopActiveSnapshot(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetActiveSnapshot() -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ActiveSnapshotSet() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterSnapshot(snapshot: Snapshot) -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnregisterSnapshot(snapshot: Snapshot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RegisterSnapshotOnOwner(snapshot: Snapshot, owner: ResourceOwner) -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnregisterSnapshotFromOwner(snapshot: Snapshot, owner: ResourceOwner); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtSubCommit_Snapshot(level: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtSubAbort_Snapshot(level: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_Snapshot(isCommit: bool, resetXmin: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ImportSnapshot(idstr: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XactHasExportedSnapshots() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DeleteAllExportedSnapshotFiles(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitForOlderSnapshots(limitXmin: TransactionId, progress: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ThereAreNoPriorRegisteredSnapshots() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HaveRegisteredOrActiveSnapshot() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdLimitedForOldSnapshots( + recentXmin: TransactionId, + relation: Relation, + limit_xid: *mut TransactionId, + limit_ts: *mut TimestampTz, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetOldSnapshotThresholdTimestamp(ts: TimestampTz, xlimit: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MaintainOldSnapshotTimeMapping(whenTaken: TimestampTz, xmin: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExportSnapshot(snapshot: Snapshot) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GlobalVisTestFor(rel: Relation) -> *mut GlobalVisState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GlobalVisTestIsRemovableXid(state: *mut GlobalVisState, xid: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GlobalVisTestIsRemovableFullXid( + state: *mut GlobalVisState, + fxid: FullTransactionId, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GlobalVisTestNonRemovableFullHorizon(state: *mut GlobalVisState) -> FullTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GlobalVisTestNonRemovableHorizon(state: *mut GlobalVisState) -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GlobalVisCheckRemovableXid(rel: Relation, xid: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GlobalVisCheckRemovableFullXid(rel: Relation, fxid: FullTransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XidInMVCCSnapshot(xid: TransactionId, snapshot: Snapshot) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HistoricSnapshotGetTupleCids() -> *mut HTAB; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SetupHistoricSnapshot(historic_snapshot: Snapshot, tuplecids: *mut HTAB); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TeardownHistoricSnapshot(is_error: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HistoricSnapshotActive() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EstimateSnapshotSpace(snapshot: Snapshot) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SerializeSnapshot(snapshot: Snapshot, start_address: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreSnapshot(start_address: *mut ::std::os::raw::c_char) -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RestoreTransactionSnapshot( + snapshot: Snapshot, + source_pgproc: *mut ::std::os::raw::c_void, + ); +} +pub type Block = *mut ::std::os::raw::c_void; +pub const BufferAccessStrategyType_BAS_NORMAL: BufferAccessStrategyType = 0; +pub const BufferAccessStrategyType_BAS_BULKREAD: BufferAccessStrategyType = 1; +pub const BufferAccessStrategyType_BAS_BULKWRITE: BufferAccessStrategyType = 2; +pub const BufferAccessStrategyType_BAS_VACUUM: BufferAccessStrategyType = 3; +pub type BufferAccessStrategyType = ::std::os::raw::c_uint; +pub const ReadBufferMode_RBM_NORMAL: ReadBufferMode = 0; +pub const ReadBufferMode_RBM_ZERO_AND_LOCK: ReadBufferMode = 1; +pub const ReadBufferMode_RBM_ZERO_AND_CLEANUP_LOCK: ReadBufferMode = 2; +pub const ReadBufferMode_RBM_ZERO_ON_ERROR: ReadBufferMode = 3; +pub const ReadBufferMode_RBM_NORMAL_NO_LOG: ReadBufferMode = 4; +pub type ReadBufferMode = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PrefetchBufferResult { + pub recent_buffer: Buffer, + pub initiated_io: bool, +} +pub const ExtendBufferedFlags_EB_SKIP_EXTENSION_LOCK: ExtendBufferedFlags = 1; +pub const ExtendBufferedFlags_EB_PERFORMING_RECOVERY: ExtendBufferedFlags = 2; +pub const ExtendBufferedFlags_EB_CREATE_FORK_IF_NEEDED: ExtendBufferedFlags = 4; +pub const ExtendBufferedFlags_EB_LOCK_FIRST: ExtendBufferedFlags = 8; +pub const ExtendBufferedFlags_EB_CLEAR_SIZE_CACHE: ExtendBufferedFlags = 16; +pub const ExtendBufferedFlags_EB_LOCK_TARGET: ExtendBufferedFlags = 32; +pub type ExtendBufferedFlags = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExtendBufferedWhat { + pub rel: Relation, + pub smgr: *mut SMgrRelationData, + pub relpersistence: ::std::os::raw::c_char, +} +impl Default for ExtendBufferedWhat { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WritebackContext { + _unused: [u8; 0], +} +extern "C" { + pub static mut zero_damaged_pages: bool; +} +extern "C" { + pub static mut bgwriter_lru_maxpages: ::std::os::raw::c_int; +} +extern "C" { + pub static mut bgwriter_lru_multiplier: f64; +} +extern "C" { + pub static mut track_io_timing: bool; +} +extern "C" { + pub static mut effective_io_concurrency: ::std::os::raw::c_int; +} +extern "C" { + pub static mut maintenance_io_concurrency: ::std::os::raw::c_int; +} +extern "C" { + pub static mut checkpoint_flush_after: ::std::os::raw::c_int; +} +extern "C" { + pub static mut backend_flush_after: ::std::os::raw::c_int; +} +extern "C" { + pub static mut bgwriter_flush_after: ::std::os::raw::c_int; +} +extern "C" { + pub static mut BufferBlocks: *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut NLocBuffer: ::std::os::raw::c_int; +} +extern "C" { + pub static mut LocalBufferBlockPointers: *mut Block; +} +extern "C" { + pub static mut LocalRefCount: *mut int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrefetchSharedBuffer( + smgr_reln: *mut SMgrRelationData, + forkNum: ForkNumber, + blockNum: BlockNumber, + ) -> PrefetchBufferResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrefetchBuffer( + reln: Relation, + forkNum: ForkNumber, + blockNum: BlockNumber, + ) -> PrefetchBufferResult; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReadRecentBuffer( + rlocator: RelFileLocator, + forkNum: ForkNumber, + blockNum: BlockNumber, + recent_buffer: Buffer, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReadBuffer(reln: Relation, blockNum: BlockNumber) -> Buffer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReadBufferExtended( + reln: Relation, + forkNum: ForkNumber, + blockNum: BlockNumber, + mode: ReadBufferMode, + strategy: BufferAccessStrategy, + ) -> Buffer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReadBufferWithoutRelcache( + rlocator: RelFileLocator, + forkNum: ForkNumber, + blockNum: BlockNumber, + mode: ReadBufferMode, + strategy: BufferAccessStrategy, + permanent: bool, + ) -> Buffer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseBuffer(buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockReleaseBuffer(buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MarkBufferDirty(buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IncrBufferRefCount(buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckBufferIsPinnedOnce(buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseAndReadBuffer( + buffer: Buffer, + relation: Relation, + blockNum: BlockNumber, + ) -> Buffer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExtendBufferedRel( + eb: ExtendBufferedWhat, + forkNum: ForkNumber, + strategy: BufferAccessStrategy, + flags: uint32, + ) -> Buffer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExtendBufferedRelBy( + eb: ExtendBufferedWhat, + fork: ForkNumber, + strategy: BufferAccessStrategy, + flags: uint32, + extend_by: uint32, + buffers: *mut Buffer, + extended_by: *mut uint32, + ) -> BlockNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExtendBufferedRelTo( + eb: ExtendBufferedWhat, + fork: ForkNumber, + strategy: BufferAccessStrategy, + flags: uint32, + extend_to: BlockNumber, + mode: ReadBufferMode, + ) -> Buffer; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitBufferPoolAccess(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtEOXact_Buffers(isCommit: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PrintBufferLeakWarning(buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckPointBuffers(flags: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufferGetBlockNumber(buffer: Buffer) -> BlockNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationGetNumberOfBlocksInFork(relation: Relation, forkNum: ForkNumber) -> BlockNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FlushOneBuffer(buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FlushRelationBuffers(rel: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FlushRelationsAllBuffers( + smgrs: *mut *mut SMgrRelationData, + nrels: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateAndCopyRelationData( + src_rlocator: RelFileLocator, + dst_rlocator: RelFileLocator, + permanent: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FlushDatabaseBuffers(dbid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DropRelationBuffers( + smgr_reln: *mut SMgrRelationData, + forkNum: *mut ForkNumber, + nforks: ::std::os::raw::c_int, + firstDelBlock: *mut BlockNumber, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DropRelationsAllBuffers( + smgr_reln: *mut *mut SMgrRelationData, + nlocators: ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DropDatabaseBuffers(dbid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufferIsPermanent(buffer: Buffer) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufferGetLSNAtomic(buffer: Buffer) -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufferGetTag( + buffer: Buffer, + rlocator: *mut RelFileLocator, + forknum: *mut ForkNumber, + blknum: *mut BlockNumber, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MarkBufferDirtyHint(buffer: Buffer, buffer_std: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockBuffers(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockBuffer(buffer: Buffer, mode: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionalLockBuffer(buffer: Buffer) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockBufferForCleanup(buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionalLockBufferForCleanup(buffer: Buffer) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsBufferCleanupOK(buffer: Buffer) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HoldingBufferPinThatDelaysRecovery() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AbortBufferIO(buffer: Buffer); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BgBufferSync(wb_context: *mut WritebackContext) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TestForOldSnapshot_impl(snapshot: Snapshot, relation: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitBufferPool(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufferShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AtProcExit_LocalBuffers(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetAccessStrategy(btype: BufferAccessStrategyType) -> BufferAccessStrategy; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetAccessStrategyWithSize( + btype: BufferAccessStrategyType, + ring_size_kb: ::std::os::raw::c_int, + ) -> BufferAccessStrategy; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetAccessStrategyBufferCount(strategy: BufferAccessStrategy) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FreeAccessStrategy(strategy: BufferAccessStrategy); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct BufFile { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileCreateTemp(interXact: bool) -> *mut BufFile; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileClose(file: *mut BufFile); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileRead(file: *mut BufFile, ptr: *mut ::std::os::raw::c_void, size: usize) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileReadExact(file: *mut BufFile, ptr: *mut ::std::os::raw::c_void, size: usize); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileReadMaybeEOF( + file: *mut BufFile, + ptr: *mut ::std::os::raw::c_void, + size: usize, + eofOK: bool, + ) -> usize; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileWrite(file: *mut BufFile, ptr: *const ::std::os::raw::c_void, size: usize); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileSeek( + file: *mut BufFile, + fileno: ::std::os::raw::c_int, + offset: off_t, + whence: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileTell(file: *mut BufFile, fileno: *mut ::std::os::raw::c_int, offset: *mut off_t); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileSeekBlock( + file: *mut BufFile, + blknum: ::std::os::raw::c_long, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileSize(file: *mut BufFile) -> int64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileAppend(target: *mut BufFile, source: *mut BufFile) -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileCreateFileSet( + fileset: *mut FileSet, + name: *const ::std::os::raw::c_char, + ) -> *mut BufFile; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileExportFileSet(file: *mut BufFile); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileOpenFileSet( + fileset: *mut FileSet, + name: *const ::std::os::raw::c_char, + mode: ::std::os::raw::c_int, + missing_ok: bool, + ) -> *mut BufFile; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileDeleteFileSet( + fileset: *mut FileSet, + name: *const ::std::os::raw::c_char, + missing_ok: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BufFileTruncateFileSet(file: *mut BufFile, fileno: ::std::os::raw::c_int, offset: off_t); +} +pub type pg_on_exit_callback = + ::std::option::Option; +pub type shmem_startup_hook_type = ::std::option::Option; +extern "C" { + pub static mut proc_exit_inprogress: bool; +} +extern "C" { + pub static mut shmem_exit_inprogress: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn proc_exit(code: ::std::os::raw::c_int) -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shmem_exit(code: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_proc_exit(function: pg_on_exit_callback, arg: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_shmem_exit(function: pg_on_exit_callback, arg: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn before_shmem_exit(function: pg_on_exit_callback, arg: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cancel_before_shmem_exit(function: pg_on_exit_callback, arg: Datum); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_exit_reset(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_on_shmem_exit_lists_are_empty(); +} +extern "C" { + pub static mut shmem_startup_hook: shmem_startup_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CalculateShmemSize(num_semaphores: *mut ::std::os::raw::c_int) -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateSharedMemoryAndSemaphores(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitializeShmemGUCs(); +} +pub const XLTW_Oper_XLTW_None: XLTW_Oper = 0; +pub const XLTW_Oper_XLTW_Update: XLTW_Oper = 1; +pub const XLTW_Oper_XLTW_Delete: XLTW_Oper = 2; +pub const XLTW_Oper_XLTW_Lock: XLTW_Oper = 3; +pub const XLTW_Oper_XLTW_LockUpdated: XLTW_Oper = 4; +pub const XLTW_Oper_XLTW_InsertIndex: XLTW_Oper = 5; +pub const XLTW_Oper_XLTW_InsertIndexUnique: XLTW_Oper = 6; +pub const XLTW_Oper_XLTW_FetchUpdated: XLTW_Oper = 7; +pub const XLTW_Oper_XLTW_RecheckExclusionConstr: XLTW_Oper = 8; +pub type XLTW_Oper = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationInitLockInfo(relation: Relation); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockRelationOid(relid: Oid, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockRelationId(relid: *mut LockRelId, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionalLockRelationOid(relid: Oid, lockmode: LOCKMODE) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockRelationId(relid: *mut LockRelId, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockRelationOid(relid: Oid, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockRelation(relation: Relation, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionalLockRelation(relation: Relation, lockmode: LOCKMODE) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockRelation(relation: Relation, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckRelationLockedByMe( + relation: Relation, + lockmode: LOCKMODE, + orstronger: bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockHasWaitersRelation(relation: Relation, lockmode: LOCKMODE) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockRelationIdForSession(relid: *mut LockRelId, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockRelationIdForSession(relid: *mut LockRelId, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockRelationForExtension(relation: Relation, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockRelationForExtension(relation: Relation, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionalLockRelationForExtension(relation: Relation, lockmode: LOCKMODE) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationExtensionLockWaiterCount(relation: Relation) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockDatabaseFrozenIds(lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockPage(relation: Relation, blkno: BlockNumber, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionalLockPage(relation: Relation, blkno: BlockNumber, lockmode: LOCKMODE) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockPage(relation: Relation, blkno: BlockNumber, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockTuple(relation: Relation, tid: ItemPointer, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionalLockTuple(relation: Relation, tid: ItemPointer, lockmode: LOCKMODE) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockTuple(relation: Relation, tid: ItemPointer, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XactLockTableInsert(xid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XactLockTableDelete(xid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XactLockTableWait(xid: TransactionId, rel: Relation, ctid: ItemPointer, oper: XLTW_Oper); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConditionalXactLockTableWait(xid: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitForLockers(heaplocktag: LOCKTAG, lockmode: LOCKMODE, progress: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitForLockersMultiple(locktags: *mut List, lockmode: LOCKMODE, progress: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SpeculativeInsertionLockAcquire(xid: TransactionId) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SpeculativeInsertionLockRelease(xid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SpeculativeInsertionWait(xid: TransactionId, token: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockDatabaseObject(classid: Oid, objid: Oid, objsubid: uint16, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockDatabaseObject(classid: Oid, objid: Oid, objsubid: uint16, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockSharedObject(classid: Oid, objid: Oid, objsubid: uint16, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockSharedObject(classid: Oid, objid: Oid, objsubid: uint16, lockmode: LOCKMODE); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockSharedObjectForSession( + classid: Oid, + objid: Oid, + objsubid: uint16, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockSharedObjectForSession( + classid: Oid, + objid: Oid, + objsubid: uint16, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LockApplyTransactionForSession( + suboid: Oid, + xid: TransactionId, + objid: uint16, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UnlockApplyTransactionForSession( + suboid: Oid, + xid: TransactionId, + objid: uint16, + lockmode: LOCKMODE, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DescribeLockTag(buf: StringInfo, tag: *const LOCKTAG); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetLockNameFromTagType(locktag_type: uint16) -> *const ::std::os::raw::c_char; +} +pub const ProcSignalReason_PROCSIG_CATCHUP_INTERRUPT: ProcSignalReason = 0; +pub const ProcSignalReason_PROCSIG_NOTIFY_INTERRUPT: ProcSignalReason = 1; +pub const ProcSignalReason_PROCSIG_PARALLEL_MESSAGE: ProcSignalReason = 2; +pub const ProcSignalReason_PROCSIG_WALSND_INIT_STOPPING: ProcSignalReason = 3; +pub const ProcSignalReason_PROCSIG_BARRIER: ProcSignalReason = 4; +pub const ProcSignalReason_PROCSIG_LOG_MEMORY_CONTEXT: ProcSignalReason = 5; +pub const ProcSignalReason_PROCSIG_PARALLEL_APPLY_MESSAGE: ProcSignalReason = 6; +pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_DATABASE: ProcSignalReason = 7; +pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_TABLESPACE: ProcSignalReason = 8; +pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_LOCK: ProcSignalReason = 9; +pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_SNAPSHOT: ProcSignalReason = 10; +pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_LOGICALSLOT: ProcSignalReason = 11; +pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_BUFFERPIN: ProcSignalReason = 12; +pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK: ProcSignalReason = 13; +pub const ProcSignalReason_NUM_PROCSIGNALS: ProcSignalReason = 14; +pub type ProcSignalReason = ::std::os::raw::c_uint; +pub const ProcSignalBarrierType_PROCSIGNAL_BARRIER_SMGRRELEASE: ProcSignalBarrierType = 0; +pub type ProcSignalBarrierType = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcSignalShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcSignalShmemInit(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcSignalInit(pss_idx: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SendProcSignal( + pid: pid_t, + reason: ProcSignalReason, + backendId: BackendId, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EmitProcSignalBarrier(type_: ProcSignalBarrierType) -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn WaitForProcSignalBarrier(generation: uint64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessProcSignalBarrier(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn procsignal_sigusr1_handler(postgres_signal_arg: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standby_redo(record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standby_desc(buf: StringInfo, record: *mut XLogReaderState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standby_identify(info: uint8) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standby_desc_invalidations( + buf: StringInfo, + nmsgs: ::std::os::raw::c_int, + msgs: *mut SharedInvalidationMessage, + dbId: Oid, + tsId: Oid, + relcacheInitFileInval: bool, + ); +} +#[repr(C)] +#[derive(Debug)] +pub struct xl_standby_locks { + pub nlocks: ::std::os::raw::c_int, + pub locks: __IncompleteArrayField, +} +impl Default for xl_standby_locks { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct xl_running_xacts { + pub xcnt: ::std::os::raw::c_int, + pub subxcnt: ::std::os::raw::c_int, + pub subxid_overflow: bool, + pub nextXid: TransactionId, + pub oldestRunningXid: TransactionId, + pub latestCompletedXid: TransactionId, + pub xids: __IncompleteArrayField, +} +#[repr(C)] +pub struct xl_invalidations { + pub dbId: Oid, + pub tsId: Oid, + pub relcacheInitFileInval: bool, + pub nmsgs: ::std::os::raw::c_int, + pub msgs: __IncompleteArrayField, +} +impl Default for xl_invalidations { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static mut max_standby_archive_delay: ::std::os::raw::c_int; +} +extern "C" { + pub static mut max_standby_streaming_delay: ::std::os::raw::c_int; +} +extern "C" { + pub static mut log_recovery_conflict_waits: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitRecoveryTransactionEnvironment(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShutdownRecoveryTransactionEnvironment(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResolveRecoveryConflictWithSnapshot( + snapshotConflictHorizon: TransactionId, + isCatalogRel: bool, + locator: RelFileLocator, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResolveRecoveryConflictWithSnapshotFullXid( + snapshotConflictHorizon: FullTransactionId, + isCatalogRel: bool, + locator: RelFileLocator, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResolveRecoveryConflictWithTablespace(tsid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResolveRecoveryConflictWithDatabase(dbid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResolveRecoveryConflictWithLock(locktag: LOCKTAG, logging_conflict: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResolveRecoveryConflictWithBufferPin(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckRecoveryConflictDeadlock(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StandbyDeadLockHandler(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StandbyTimeoutHandler(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StandbyLockTimeoutHandler(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogRecoveryConflict( + reason: ProcSignalReason, + wait_start: TimestampTz, + now: TimestampTz, + wait_list: *mut VirtualTransactionId, + still_waiting: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StandbyAcquireAccessExclusiveLock(xid: TransactionId, dbOid: Oid, relOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StandbyReleaseLockTree( + xid: TransactionId, + nsubxids: ::std::os::raw::c_int, + subxids: *mut TransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StandbyReleaseAllLocks(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StandbyReleaseOldLocks(oldxid: TransactionId); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RunningTransactionsData { + pub xcnt: ::std::os::raw::c_int, + pub subxcnt: ::std::os::raw::c_int, + pub subxid_overflow: bool, + pub nextXid: TransactionId, + pub oldestRunningXid: TransactionId, + pub latestCompletedXid: TransactionId, + pub xids: *mut TransactionId, +} +impl Default for RunningTransactionsData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type RunningTransactions = *mut RunningTransactionsData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogAccessExclusiveLock(dbOid: Oid, relOid: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogAccessExclusiveLockPrepare(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogStandbySnapshot() -> XLogRecPtr; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn LogStandbyInvalidations( + nmsgs: ::std::os::raw::c_int, + msgs: *mut SharedInvalidationMessage, + relcacheInitFileInval: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayShmemSize() -> Size; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateSharedProcArray(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayAdd(proc_: *mut PGPROC); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayRemove(proc_: *mut PGPROC, latestXid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayEndTransaction(proc_: *mut PGPROC, latestXid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayClearTransaction(proc_: *mut PGPROC); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayInitRecovery(initializedUptoXID: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayApplyRecoveryInfo(running: RunningTransactions); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayApplyXidAssignment( + topxid: TransactionId, + nsubxids: ::std::os::raw::c_int, + subxids: *mut TransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RecordKnownAssignedTransactionIds(xid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExpireTreeKnownAssignedTransactionIds( + xid: TransactionId, + nsubxids: ::std::os::raw::c_int, + subxids: *mut TransactionId, + max_xid: TransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExpireAllKnownAssignedTransactionIds(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ExpireOldKnownAssignedTransactionIds(xid: TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn KnownAssignedTransactionIdsIdleMaintenance(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetMaxSnapshotXidCount() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetMaxSnapshotSubxidCount() -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSnapshotData(snapshot: Snapshot) -> Snapshot; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayInstallImportedXmin( + xmin: TransactionId, + sourcevxid: *mut VirtualTransactionId, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayInstallRestoredXmin(xmin: TransactionId, proc_: *mut PGPROC) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetRunningTransactionData() -> RunningTransactions; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdIsInProgress(xid: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TransactionIdIsActive(xid: TransactionId) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetOldestNonRemovableTransactionId(rel: Relation) -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetOldestTransactionIdConsideredRunning() -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetOldestActiveTransactionId() -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetOldestSafeDecodingTransactionId(catalogOnly: bool) -> TransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetReplicationHorizons(xmin: *mut TransactionId, catalog_xmin: *mut TransactionId); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetVirtualXIDsDelayingChkpt( + nvxids: *mut ::std::os::raw::c_int, + type_: ::std::os::raw::c_int, + ) -> *mut VirtualTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn HaveVirtualXIDsDelayingChkpt( + vxids: *mut VirtualTransactionId, + nvxids: ::std::os::raw::c_int, + type_: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BackendPidGetProc(pid: ::std::os::raw::c_int) -> *mut PGPROC; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BackendPidGetProcWithLock(pid: ::std::os::raw::c_int) -> *mut PGPROC; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BackendXidGetPid(xid: TransactionId) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn IsBackendPid(pid: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentVirtualXIDs( + limitXmin: TransactionId, + excludeXmin0: bool, + allDbs: bool, + excludeVacuum: ::std::os::raw::c_int, + nvxids: *mut ::std::os::raw::c_int, + ) -> *mut VirtualTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetConflictingVirtualXIDs( + limitXmin: TransactionId, + dbOid: Oid, + ) -> *mut VirtualTransactionId; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CancelVirtualTransaction(vxid: VirtualTransactionId, sigmode: ProcSignalReason) + -> pid_t; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SignalVirtualTransaction( + vxid: VirtualTransactionId, + sigmode: ProcSignalReason, + conflictPending: bool, + ) -> pid_t; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn MinimumActiveBackends(min: ::std::os::raw::c_int) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CountDBBackends(databaseid: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CountDBConnections(databaseid: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CancelDBBackends(databaseid: Oid, sigmode: ProcSignalReason, conflictPending: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CountUserBackends(roleid: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CountOtherDBBackends( + databaseId: Oid, + nbackends: *mut ::std::os::raw::c_int, + nprepared: *mut ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TerminateOtherDBBackends(databaseId: Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn XidCacheRemoveRunningXids( + xid: TransactionId, + nxids: ::std::os::raw::c_int, + xids: *const TransactionId, + latestXid: TransactionId, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArraySetReplicationSlotXmin( + xmin: TransactionId, + catalog_xmin: TransactionId, + already_locked: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcArrayGetReplicationSlotXmin( + xmin: *mut TransactionId, + catalog_xmin: *mut TransactionId, + ); +} +extern "C" { + pub static mut whereToSendOutput: CommandDest; +} +extern "C" { + pub static mut debug_query_string: *const ::std::os::raw::c_char; +} +extern "C" { + pub static mut max_stack_depth: ::std::os::raw::c_int; +} +extern "C" { + pub static mut PostAuthDelay: ::std::os::raw::c_int; +} +extern "C" { + pub static mut client_connection_check_interval: ::std::os::raw::c_int; +} +pub const LogStmtLevel_LOGSTMT_NONE: LogStmtLevel = 0; +pub const LogStmtLevel_LOGSTMT_DDL: LogStmtLevel = 1; +pub const LogStmtLevel_LOGSTMT_MOD: LogStmtLevel = 2; +pub const LogStmtLevel_LOGSTMT_ALL: LogStmtLevel = 3; +pub type LogStmtLevel = ::std::os::raw::c_uint; +extern "C" { + pub static mut log_statement: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_parse_query(query_string: *const ::std::os::raw::c_char) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_rewrite_query(query: *mut Query) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_analyze_and_rewrite_fixedparams( + parsetree: *mut RawStmt, + query_string: *const ::std::os::raw::c_char, + paramTypes: *const Oid, + numParams: ::std::os::raw::c_int, + queryEnv: *mut QueryEnvironment, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_analyze_and_rewrite_varparams( + parsetree: *mut RawStmt, + query_string: *const ::std::os::raw::c_char, + paramTypes: *mut *mut Oid, + numParams: *mut ::std::os::raw::c_int, + queryEnv: *mut QueryEnvironment, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_analyze_and_rewrite_withcb( + parsetree: *mut RawStmt, + query_string: *const ::std::os::raw::c_char, + parserSetup: ParserSetupHook, + parserSetupArg: *mut ::std::os::raw::c_void, + queryEnv: *mut QueryEnvironment, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_plan_query( + querytree: *mut Query, + query_string: *const ::std::os::raw::c_char, + cursorOptions: ::std::os::raw::c_int, + boundParams: ParamListInfo, + ) -> *mut PlannedStmt; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_plan_queries( + querytrees: *mut List, + query_string: *const ::std::os::raw::c_char, + cursorOptions: ::std::os::raw::c_int, + boundParams: ParamListInfo, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn die(postgres_signal_arg: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn quickdie(postgres_signal_arg: ::std::os::raw::c_int) -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn StatementCancelHandler(postgres_signal_arg: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn FloatExceptionHandler(postgres_signal_arg: ::std::os::raw::c_int) -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RecoveryConflictInterrupt(reason: ProcSignalReason); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessClientReadInterrupt(blocked: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessClientWriteInterrupt(blocked: bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn process_postgres_switches( + argc: ::std::os::raw::c_int, + argv: *mut *mut ::std::os::raw::c_char, + ctx: GucContext, + dbname: *mut *const ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PostgresSingleUserMain( + argc: ::std::os::raw::c_int, + argv: *mut *mut ::std::os::raw::c_char, + username: *const ::std::os::raw::c_char, + ) -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PostgresMain( + dbname: *const ::std::os::raw::c_char, + username: *const ::std::os::raw::c_char, + ) -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_stack_depth_rlimit() -> ::std::os::raw::c_long; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ResetUsage(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ShowUsage(title: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn check_log_duration( + msec_str: *mut ::std::os::raw::c_char, + was_logged: bool, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_debug_options( + debug_flag: ::std::os::raw::c_int, + context: GucContext, + source: GucSource, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_plan_disabling_options( + arg: *const ::std::os::raw::c_char, + context: GucContext, + source: GucSource, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_stats_option_name( + arg: *const ::std::os::raw::c_char, + ) -> *const ::std::os::raw::c_char; +} +pub const ProcessUtilityContext_PROCESS_UTILITY_TOPLEVEL: ProcessUtilityContext = 0; +pub const ProcessUtilityContext_PROCESS_UTILITY_QUERY: ProcessUtilityContext = 1; +pub const ProcessUtilityContext_PROCESS_UTILITY_QUERY_NONATOMIC: ProcessUtilityContext = 2; +pub const ProcessUtilityContext_PROCESS_UTILITY_SUBCOMMAND: ProcessUtilityContext = 3; +pub type ProcessUtilityContext = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AlterTableUtilityContext { + pub pstmt: *mut PlannedStmt, + pub queryString: *const ::std::os::raw::c_char, + pub relid: Oid, + pub params: ParamListInfo, + pub queryEnv: *mut QueryEnvironment, +} +impl Default for AlterTableUtilityContext { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ProcessUtility_hook_type = ::std::option::Option< + unsafe extern "C" fn( + pstmt: *mut PlannedStmt, + queryString: *const ::std::os::raw::c_char, + readOnlyTree: bool, + context: ProcessUtilityContext, + params: ParamListInfo, + queryEnv: *mut QueryEnvironment, + dest: *mut DestReceiver, + qc: *mut QueryCompletion, + ), +>; +extern "C" { + pub static mut ProcessUtility_hook: ProcessUtility_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessUtility( + pstmt: *mut PlannedStmt, + queryString: *const ::std::os::raw::c_char, + readOnlyTree: bool, + context: ProcessUtilityContext, + params: ParamListInfo, + queryEnv: *mut QueryEnvironment, + dest: *mut DestReceiver, + qc: *mut QueryCompletion, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn standard_ProcessUtility( + pstmt: *mut PlannedStmt, + queryString: *const ::std::os::raw::c_char, + readOnlyTree: bool, + context: ProcessUtilityContext, + params: ParamListInfo, + queryEnv: *mut QueryEnvironment, + dest: *mut DestReceiver, + qc: *mut QueryCompletion, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ProcessUtilityForAlterTable(stmt: *mut Node, context: *mut AlterTableUtilityContext); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UtilityReturnsTuples(parsetree: *mut Node) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UtilityTupleDescriptor(parsetree: *mut Node) -> TupleDesc; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn UtilityContainsQuery(parsetree: *mut Node) -> *mut Query; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CreateCommandTag(parsetree: *mut Node) -> CommandTag; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCommandLogLevel(parsetree: *mut Node) -> LogStmtLevel; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CommandIsReadOnly(pstmt: *mut PlannedStmt) -> bool; +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Default, Copy, Clone)] +pub struct WordEntry { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl WordEntry { + #[inline] + pub fn haspos(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_haspos(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn len(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 11u8) as u32) } + } + #[inline] + pub fn set_len(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 11u8, val as u64) + } + } + #[inline] + pub fn pos(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) } + } + #[inline] + pub fn set_pos(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(12usize, 20u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + haspos: uint32, + len: uint32, + pos: uint32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let haspos: u32 = unsafe { ::std::mem::transmute(haspos) }; + haspos as u64 + }); + __bindgen_bitfield_unit.set(1usize, 11u8, { + let len: u32 = unsafe { ::std::mem::transmute(len) }; + len as u64 + }); + __bindgen_bitfield_unit.set(12usize, 20u8, { + let pos: u32 = unsafe { ::std::mem::transmute(pos) }; + pos as u64 + }); + __bindgen_bitfield_unit + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compareWordEntryPos( + a: *const ::std::os::raw::c_void, + b: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +pub type WordEntryPos = uint16; +#[repr(C)] +#[derive(Debug, Default)] +pub struct WordEntryPosVector { + pub npos: uint16, + pub pos: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct WordEntryPosVector1 { + pub npos: uint16, + pub pos: [WordEntryPos; 1usize], +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct TSVectorData { + pub vl_len_: int32, + pub size: int32, + pub entries: __IncompleteArrayField, +} +pub type TSVector = *mut TSVectorData; +pub type QueryItemType = int8; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct QueryOperand { + pub type_: QueryItemType, + pub weight: uint8, + pub prefix: bool, + pub valcrc: int32, + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +impl QueryOperand { + #[inline] + pub fn length(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 12u8) as u32) } + } + #[inline] + pub fn set_length(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 12u8, val as u64) + } + } + #[inline] + pub fn distance(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) } + } + #[inline] + pub fn set_distance(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(12usize, 20u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(length: uint32, distance: uint32) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 12u8, { + let length: u32 = unsafe { ::std::mem::transmute(length) }; + length as u64 + }); + __bindgen_bitfield_unit.set(12usize, 20u8, { + let distance: u32 = unsafe { ::std::mem::transmute(distance) }; + distance as u64 + }); + __bindgen_bitfield_unit + } +} +extern "C" { + pub static tsearch_op_priority: [::std::os::raw::c_int; 4usize]; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct QueryOperator { + pub type_: QueryItemType, + pub oper: int8, + pub distance: int16, + pub left: uint32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union QueryItem { + pub type_: QueryItemType, + pub qoperator: QueryOperator, + pub qoperand: QueryOperand, +} +impl Default for QueryItem { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct TSQueryData { + pub vl_len_: int32, + pub size: int32, + pub data: __IncompleteArrayField<::std::os::raw::c_char>, +} +pub type TSQuery = *mut TSQueryData; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct LexDescr { + pub lexid: ::std::os::raw::c_int, + pub alias: *mut ::std::os::raw::c_char, + pub descr: *mut ::std::os::raw::c_char, +} +impl Default for LexDescr { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HeadlineWordEntry { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, + pub pos: WordEntryPos, + pub word: *mut ::std::os::raw::c_char, + pub item: *mut QueryOperand, +} +impl Default for HeadlineWordEntry { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl HeadlineWordEntry { + #[inline] + pub fn selected(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_selected(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn in_(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_in(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn replace(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_replace(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn repeated(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_repeated(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn skip(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_skip(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn unused(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u32) } + } + #[inline] + pub fn set_unused(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 3u8, val as u64) + } + } + #[inline] + pub fn type_(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) } + } + #[inline] + pub fn set_type(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(8usize, 8u8, val as u64) + } + } + #[inline] + pub fn len(&self) -> uint32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) } + } + #[inline] + pub fn set_len(&mut self, val: uint32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(16usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + selected: uint32, + in_: uint32, + replace: uint32, + repeated: uint32, + skip: uint32, + unused: uint32, + type_: uint32, + len: uint32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let selected: u32 = unsafe { ::std::mem::transmute(selected) }; + selected as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let in_: u32 = unsafe { ::std::mem::transmute(in_) }; + in_ as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let replace: u32 = unsafe { ::std::mem::transmute(replace) }; + replace as u64 + }); + __bindgen_bitfield_unit.set(3usize, 1u8, { + let repeated: u32 = unsafe { ::std::mem::transmute(repeated) }; + repeated as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let skip: u32 = unsafe { ::std::mem::transmute(skip) }; + skip as u64 + }); + __bindgen_bitfield_unit.set(5usize, 3u8, { + let unused: u32 = unsafe { ::std::mem::transmute(unused) }; + unused as u64 + }); + __bindgen_bitfield_unit.set(8usize, 8u8, { + let type_: u32 = unsafe { ::std::mem::transmute(type_) }; + type_ as u64 + }); + __bindgen_bitfield_unit.set(16usize, 16u8, { + let len: u32 = unsafe { ::std::mem::transmute(len) }; + len as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct HeadlineParsedText { + pub words: *mut HeadlineWordEntry, + pub lenwords: int32, + pub curwords: int32, + pub vectorpos: int32, + pub startsel: *mut ::std::os::raw::c_char, + pub stopsel: *mut ::std::os::raw::c_char, + pub fragdelim: *mut ::std::os::raw::c_char, + pub startsellen: int16, + pub stopsellen: int16, + pub fragdelimlen: int16, +} +impl Default for HeadlineParsedText { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_tsearch_config_filename( + basename: *const ::std::os::raw::c_char, + extension: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StopList { + pub len: ::std::os::raw::c_int, + pub stop: *mut *mut ::std::os::raw::c_char, +} +impl Default for StopList { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn readstoplist( + fname: *const ::std::os::raw::c_char, + s: *mut StopList, + wordop: ::std::option::Option< + unsafe extern "C" fn( + arg1: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char, + >, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn searchstoplist(s: *mut StopList, key: *mut ::std::os::raw::c_char) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TSLexeme { + pub nvariant: uint16, + pub flags: uint16, + pub lexeme: *mut ::std::os::raw::c_char, +} +impl Default for TSLexeme { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DictSubState { + pub isend: bool, + pub getnext: bool, + pub private_state: *mut ::std::os::raw::c_void, +} +impl Default for DictSubState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TSVectorParseStateData { + _unused: [u8; 0], +} +pub type TSVectorParseState = *mut TSVectorParseStateData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn init_tsvector_parser( + input: *mut ::std::os::raw::c_char, + flags: ::std::os::raw::c_int, + escontext: *mut Node, + ) -> TSVectorParseState; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reset_tsvector_parser(state: TSVectorParseState, input: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gettoken_tsvector( + state: TSVectorParseState, + strval: *mut *mut ::std::os::raw::c_char, + lenval: *mut ::std::os::raw::c_int, + pos_ptr: *mut *mut WordEntryPos, + poslen: *mut ::std::os::raw::c_int, + endptr: *mut *mut ::std::os::raw::c_char, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn close_tsvector_parser(state: TSVectorParseState); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TSQueryParserStateData { + _unused: [u8; 0], +} +pub type TSQueryParserState = *mut TSQueryParserStateData; +pub type PushFunction = ::std::option::Option< + unsafe extern "C" fn( + opaque: Datum, + state: TSQueryParserState, + token: *mut ::std::os::raw::c_char, + tokenlen: ::std::os::raw::c_int, + tokenweights: int16, + prefix: bool, + ), +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_tsquery( + buf: *mut ::std::os::raw::c_char, + pushval: PushFunction, + opaque: Datum, + flags: ::std::os::raw::c_int, + escontext: *mut Node, + ) -> TSQuery; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pushValue( + state: TSQueryParserState, + strval: *mut ::std::os::raw::c_char, + lenval: ::std::os::raw::c_int, + weight: int16, + prefix: bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pushStop(state: TSQueryParserState); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pushOperator(state: TSQueryParserState, oper: int8, distance: int16); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ParsedWord { + pub len: uint16, + pub nvariant: uint16, + pub pos: ParsedWord__bindgen_ty_1, + pub flags: uint16, + pub word: *mut ::std::os::raw::c_char, + pub alen: uint32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union ParsedWord__bindgen_ty_1 { + pub pos: uint16, + pub apos: *mut uint16, +} +impl Default for ParsedWord__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for ParsedWord { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ParsedText { + pub words: *mut ParsedWord, + pub lenwords: int32, + pub curwords: int32, + pub pos: int32, +} +impl Default for ParsedText { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parsetext( + cfgId: Oid, + prs: *mut ParsedText, + buf: *mut ::std::os::raw::c_char, + buflen: int32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hlparsetext( + cfgId: Oid, + prs: *mut HeadlineParsedText, + query: TSQuery, + buf: *mut ::std::os::raw::c_char, + buflen: int32, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generateHeadline(prs: *mut HeadlineParsedText) -> *mut text; +} +pub const TSTernaryValue_TS_NO: TSTernaryValue = 0; +pub const TSTernaryValue_TS_YES: TSTernaryValue = 1; +pub const TSTernaryValue_TS_MAYBE: TSTernaryValue = 2; +pub type TSTernaryValue = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ExecPhraseData { + pub npos: ::std::os::raw::c_int, + pub allocated: bool, + pub negate: bool, + pub pos: *mut WordEntryPos, + pub width: ::std::os::raw::c_int, +} +impl Default for ExecPhraseData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type TSExecuteCallback = ::std::option::Option< + unsafe extern "C" fn( + arg: *mut ::std::os::raw::c_void, + val: *mut QueryOperand, + data: *mut ExecPhraseData, + ) -> TSTernaryValue, +>; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TS_execute( + curitem: *mut QueryItem, + arg: *mut ::std::os::raw::c_void, + flags: uint32, + chkcond: TSExecuteCallback, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TS_execute_ternary( + curitem: *mut QueryItem, + arg: *mut ::std::os::raw::c_void, + flags: uint32, + chkcond: TSExecuteCallback, + ) -> TSTernaryValue; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TS_execute_locations( + curitem: *mut QueryItem, + arg: *mut ::std::os::raw::c_void, + flags: uint32, + chkcond: TSExecuteCallback, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_requires_match(curitem: *mut QueryItem) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_tsvector(prs: *mut ParsedText) -> TSVector; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsCompareString( + a: *mut ::std::os::raw::c_char, + lena: ::std::os::raw::c_int, + b: *mut ::std::os::raw::c_char, + lenb: ::std::os::raw::c_int, + prefix: bool, + ) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clean_NOT(ptr: *mut QueryItem, len: *mut int32) -> *mut QueryItem; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cleanup_tsquery_stopwords(in_: TSQuery, noisy: bool) -> TSQuery; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct QTNode { + pub valnode: *mut QueryItem, + pub flags: uint32, + pub nchild: int32, + pub word: *mut ::std::os::raw::c_char, + pub sign: uint32, + pub child: *mut *mut QTNode, +} +impl Default for QTNode { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type TSQuerySign = uint64; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QT2QTN(in_: *mut QueryItem, operand: *mut ::std::os::raw::c_char) -> *mut QTNode; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QTN2QT(in_: *mut QTNode) -> TSQuery; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QTNFree(in_: *mut QTNode); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QTNSort(in_: *mut QTNode); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QTNTernary(in_: *mut QTNode); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QTNBinary(in_: *mut QTNode); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QTNodeCompare(an: *mut QTNode, bn: *mut QTNode) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QTNCopy(in_: *mut QTNode) -> *mut QTNode; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QTNClearFlags(in_: *mut QTNode, flags: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn QTNEq(a: *mut QTNode, b: *mut QTNode) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeTSQuerySign(a: TSQuery) -> TSQuerySign; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn findsubquery( + root: *mut QTNode, + ex: *mut QTNode, + subs: *mut QTNode, + isfind: *mut bool, + ) -> *mut QTNode; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn heap_tableam_handler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteaout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn charout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namein(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2vectorin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2vectorout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regprocin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regprocout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xidin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xidout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectorin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectorout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boollt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolgt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn booleq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn chareq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameeq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn texteq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xideq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cideq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn charne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn charle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn chargt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn charge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn chartoi4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i4tochar(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameregexeq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ddl_command_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ddl_command_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ddl_command_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pgsql_version(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ddl_command_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn eqsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn neqsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalarltsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalargtsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn eqjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn neqjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalarltjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalargtjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unknownin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unknownout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_above_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_below_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_overlap(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_above(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_left(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_right(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_below(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_pb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_ppath(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_center(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn areasel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn areajoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2mod(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4mod(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int24mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int42mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oideq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_same(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_contain(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_left(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_overleft(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_overright(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_right(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_contained(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_contain_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_node_tree_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_node_tree_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_node_tree_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_node_tree_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4um(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4abs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4um(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2um(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8um(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8abs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_center(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_center(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dround(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dtrunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsqrt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dcbrt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dpow(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dexp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dlog1(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i2tod(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i2tof(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dtoi2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ftoi2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameeqtext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namelttext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameletext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namegetext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namegttext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namenetext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btnametextcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn texteqname(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textltname(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textlename(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textgename(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textgtname(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textnename(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bttextnamecmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameconcatoid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_am_handler_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_am_handler_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timeofday(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_nextoid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inter_sl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inter_lb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float48ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float84ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ftod(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dtof(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i2toi4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i4toi2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_jit_available(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i4tod(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dtoi4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i4tof(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ftoi4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn width_bucket_float8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_am_handler_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_am_handler_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashmacaddr8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_aclitem(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bthandler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashhandler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gisthandler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ginhandler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spghandler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brinhandler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalarlesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalargesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn amvalidate(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_same(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_contain(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_left(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_overleft(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_overright(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_right(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_contained(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_overlap(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint2cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint4cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btfloat4cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btfloat8cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btoidcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_bp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btcharcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btnamecmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bttextcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_interpt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_ps(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_pb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_sb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn close_ps(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn close_pb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn close_sb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_ps(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_ppath(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_sb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inter_sb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_to_array_null(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_append(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_prepend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_sp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_bs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btarraycmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_cat(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_to_text_null(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalarlejoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_to_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_to_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalargejoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashmacaddr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashtext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn rtrim1(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btoidvectorcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn name_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn name_bpchar(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchar_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_pathp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashinet(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashint4extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_num_nulls(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_num_nonnulls(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashint2extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashint8extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashfloat4extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashfloat8extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashoidextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashcharextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashnameextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashtextextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashint2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashint4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashfloat4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashfloat8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashoid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashchar(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashname(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashvarlena(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashoidvector(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8um(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i8tod(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dtoi8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_abbrev(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidr_abbrev(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_set_masklen(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectorne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidr_set_masklen(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_indexam_has_property(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_index_has_property(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_index_column_has_property(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i8tof(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ftoi8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namelt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namele(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namegt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namege(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namene(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchar(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varchar(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_indexam_progress_phasename(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectorlt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectorle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectoreq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectorge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectorgt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_network(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_netmask(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_masklen(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_broadcast(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_host(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_lp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_ls(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn current_user(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_family(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_create(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidlt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteaoctetlen(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteaGetByte(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteaSetByte(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteaGetBit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteaSetBit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_sl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_cpoly(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_show(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn session_user(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_dims(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_ndims(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteaoverlay(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteaoverlay_no_len(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_trunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_import(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_export(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4inc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_import_with_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashvarlenaextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashoidvectorextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_aclitem_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashmacaddrextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashinetextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_numeric_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashmacaddr8extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_array_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_polyc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_client_encoding(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn current_query(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint8cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_mul_flt4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_div_flt4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn flt4_mul_cash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textpos(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textlike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textnlike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namelike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namenlike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn char_bpchar(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn current_database(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_mul_cash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2_mul_cash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_mul_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_div_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_mul_int2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_div_int2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lower(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn upper(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn initcap(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lpad(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn rpad(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ltrim(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn rtrim(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_substr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn translate(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ltrim1(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_substr_no_len(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btrim(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btrim1(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_mul_flt8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_div_flt8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cashlarger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cashsmaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn flt8_mul_cash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_sub(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_subeq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_sup(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_supeq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_words(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8mod(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn char_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashint8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_open(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_close(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_loread(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lowrite(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_lseek(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_creat(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_tell(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn on_sl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn close_pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_unlink(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashbpcharextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_inter(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_area(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_width(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_height(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_area(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_intersect(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_diagonal(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_n_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_n_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_n_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_n_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_n_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_length(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_vert(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_horiz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_slope(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_construct(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_intersect(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_parallel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_perp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_vertical(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_horizontal(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_truncate(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textlike_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn texticregexeq_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn texticlike_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_izone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_point_compress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclitemin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclitemout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclinsert(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclremove(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclcontains(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getdatabaseencoding(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varcharin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varcharout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchareq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharlt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchargt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclitem_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchar_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchar_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prepared_xact(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_step_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_step_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_regclass(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashbpchar(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn format_type(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_wal(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_wal_replay_pause_state(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_pli(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_mii(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_add_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_sub_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_mul_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_div_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_zone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_um(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_part(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_part(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_subset_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_justify_hours(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_exists_tz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_query_tz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_query_array_tz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid_age(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_pl_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_mi_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_subscripts(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_subscripts_nodir(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_fill(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dlog10(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_age(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_scale(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_trunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_trunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8inc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8abs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn texticregexeq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn texticregexne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameicregexeq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameicregexne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteain(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn charin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn charlt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unique_key_recheck(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4abs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameregexne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2abs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textregexeq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textregexne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textlen(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textcat(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PG_char_to_encoding(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidr_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_ident(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_column_size(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn overlaps_timetz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn datetime_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_part(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int84div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48pl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int48div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn quote_ident(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn quote_literal(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_trunc_zone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_fill_with_lower_bounds(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn i8tooid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidtoi8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn quote_nullable(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn suppress_redundant_updates_trigger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tideq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_unnest(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn currtid_byrelname(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_justify_days(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn datetimetz_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn now(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn positionsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn positionjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn contjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn overlaps_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn overlaps_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharlen(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectortypes(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_hostmask(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textregexeq_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn makeaclitem(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lock_status(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_finite(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textoctetlen(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharoctetlen(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_fac(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_part(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_constraintdef(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_timetz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_finite(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_finite(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_start(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_client_addr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_client_port(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn current_schema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn current_schemas(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textoverlay(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textoverlay_no_len(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_parallel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_perp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_vertical(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_horizontal(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_center(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn points_box(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_add(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_sub(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidr_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_contain_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pt_contained_poly(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_isclosed(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_isopen(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_npoints(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_close(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_open(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_add(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_add_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_sub_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_mul_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_div_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn construct_point(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_add(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_sub(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_npoints(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_box(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_path(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_poly(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_poly(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_same(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_contain(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_left(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_overleft(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_overright(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_right(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_contained(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_overlap(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_below(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_above(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_area(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_diameter(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_radius(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cr_circle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_circle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_poly(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_pc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_contain_pt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pt_contained_circle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_circle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_box(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_length(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn close_ls(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn close_lseg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_construct_pp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_interpt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_intersect(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bit_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bit_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_ruledef(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nextval_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn currval_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn setval_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varbit_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varbit_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn biteq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitgt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitlt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn PG_encoding_to_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn drandom(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn setseed(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dasin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dacos(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn datan(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn datan2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dcos(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dtan(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dcot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn degrees(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn radians(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dpi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_typeof(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ascii(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn chr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn repeat(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn similar_escape(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mul_d_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn texticlike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn texticnlike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameiclike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nameicnlike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn like_escape(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidgt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_viewdef_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_viewdef(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_userbyid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_indexdef(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_check_ins(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_check_upd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_cascade_del(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_cascade_upd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_restrict_del(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_restrict_upd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_setnull_del(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_setnull_upd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_setdefault_del(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_setdefault_upd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_noaction_del(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RI_FKey_noaction_upd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_triggerdef(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_serial_sequence(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bit_and(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bit_or(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitxor(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitnot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitshiftleft(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitshiftright(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitcat(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitsubstr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitlength(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitoctetlength(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitfromint4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bittoint4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_keywords(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varbit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_hash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn aclexplode(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_mi_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btboolcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_hash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_hash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitposition(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitsubstr_no_len(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_abs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_sign(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_round(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_trunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_ceil(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_floor(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn length_in_encoding(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_convert_from(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_to_cidr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_expr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_convert_to(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_add(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_sub(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_mul(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_div(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_mod(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_sqrt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_exp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_ln(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_log(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_power(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_float4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_float8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_pl_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_mi_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_pl_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_mi_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_inc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn setval3_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_to_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_to_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_uminus(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_to_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_to_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_to_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4_to_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_to_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_to_number(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_int2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_convert(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn iclikesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn icnlikesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn iclikejoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn icnlikejoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexeqsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn likesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn icregexeqsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexnesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nlikesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn icregexnesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexeqjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn likejoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn icregexeqjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexnejoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nlikejoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn icregexnejoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_avg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_var_samp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_stddev_samp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_avg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_var_samp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_stddev_samp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2_sum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_sum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_sum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_avg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_ascii_default(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_ascii_enc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_ascii_encname(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int28ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int82ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2and(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2or(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2xor(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2not(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2shl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2shr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4and(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4or(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4xor(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4not(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4shl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4shr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8and(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8or(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8xor(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8not(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8shl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8shr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8up(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2up(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4up(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4up(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8up(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_uplus(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_table_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_table_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_table_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_table_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_table_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_table_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_numscans(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_tuples_returned(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_tuples_fetched(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_tuples_inserted(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_tuples_updated(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_tuples_deleted(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_blocks_fetched(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_blocks_hit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_idset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_pid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_dbid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_userid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_activity(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_numbackends(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_xact_commit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_xact_rollback(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_blocks_fetched(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_blocks_hit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_encode(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_decode(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteaeq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytealt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteale(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteagt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteage(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteane(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteacmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_scale(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2_avg_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_avg_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_avg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidlarger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidsmaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_scale(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_scale(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_scale(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_tuples_hot_updated(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_div_trunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn similar_to_escape_2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn similar_to_escape_1(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytealike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteanlike(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn like_escape_bytea(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteacat(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytea_substr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytea_substr_no_len(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteapos(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteatrim(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_trunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_part(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_activity(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_query_first_tz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_backend_pid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_match_tz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_pl_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_mi_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_conf_load_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_zone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_izone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_hash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_timetz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_to_char(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_age(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_zone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_izone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_pl_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_mi_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textregexsubstr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitfromint8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bittoint8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn show_config_by_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn set_config_by_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_table_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_type_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_function_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_operator_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_opclass_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn show_all_settings(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn replace_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn split_part(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_hex32(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_hex64(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_lower(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_upper(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_conversion_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_activity_start(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_terminate_backend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_functiondef(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_column_compression(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_force_next_flush(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_pattern_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_pattern_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_function_arguments(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_pattern_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_pattern_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_function_result(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bttext_pattern_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_database_size_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn width_bucket_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_cancel_backend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_backup_start(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchar_pattern_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchar_pattern_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_length(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchar_pattern_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchar_pattern_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_point_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btbpchar_pattern_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_sequence_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_sequence_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_sequence_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_sequence_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_sequence_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_sequence_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint48cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint84cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint24cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint42cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint28cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint82cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btfloat48cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btfloat84cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_client_addr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_client_port(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_server_addr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_server_port(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regprocedurein(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regprocedureout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regoperin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regoperout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regoperatorin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regoperatorout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regclassin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regclassout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regtypein(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regtypeout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_clear_snapshot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_function_identity_arguments(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashtid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashtidextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fmgr_internal_validator(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fmgr_c_validator(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fmgr_sql_validator(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_database_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_database_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_database_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_database_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_database_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_database_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_function_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_function_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_function_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_function_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_function_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_function_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_language_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_language_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_language_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_language_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_language_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_language_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_schema_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_schema_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_schema_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_schema_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_schema_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_schema_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_reset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_backend_memory_contexts(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textregexreplace_noopt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textregexreplace(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_total_relation_size(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_size_pretty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_options_to_table(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cstring_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cstring_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn any_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn any_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyarray_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyarray_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn void_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn void_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn trigger_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn trigger_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn language_handler_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn language_handler_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn internal_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn internal_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_slru(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_reset_slru(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dceil(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dfloor(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsign(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn md5_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyelement_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyelement_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn postgresql_fdw_validator(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_encoding_max_length_sql(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn md5_bytea(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tablespace_size_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tablespace_size_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_database_size_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_unnest(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_relation_size(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_lt_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_le_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_eq_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_gt_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_ge_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_ne_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_cmp_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_lt_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_le_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_eq_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_gt_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_ge_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_ne_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_cmp_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_lt_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_le_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_eq_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_gt_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_ge_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_ne_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_cmp_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_lt_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_le_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_eq_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_gt_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_ge_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_ne_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_cmp_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_tablespace_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_tablespace_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_tablespace_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_tablespace_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_tablespace_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_tablespace_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shell_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn shell_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2vectorrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2vectorsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytearecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteasend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unknownrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unknownsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectorrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidvectorsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namerecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namesend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpcharsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varcharrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varcharsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn charrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn charsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xidrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xidsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regprocrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regprocsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regprocedurerecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regproceduresend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regoperrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regopersend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regoperatorrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regoperatorsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regclassrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regclasssend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regtyperecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regtypesend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bit_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bit_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varbit_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varbit_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsinh(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dcosh(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dtanh(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dasinh(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dacosh(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn datanh(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lseg_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn path_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn line_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidr_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cidr_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cstring_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cstring_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyarray_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyarray_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_ruledef_ext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_viewdef_name_ext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_viewdef_ext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_indexdef_ext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_constraintdef_ext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_expr_ext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prepared_statement(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_cursor(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_var_pop(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_stddev_pop(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_var_pop(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn booland_statefunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolor_statefunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_lt_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_le_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_eq_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_gt_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_ge_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_ne_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_cmp_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_lt_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_le_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_eq_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_gt_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_ge_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_ne_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_cmp_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tablespace_databases(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_bool(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bool_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn lastval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_postmaster_start_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_blocking_pids(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_below(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_overbelow(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_overabove(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn box_above(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_below(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_overbelow(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_overabove(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn poly_above(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_box_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_float8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_box_penalty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_box_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_box_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_box_same(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_poly_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_poly_compress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_overbelow(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn circle_overabove(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_circle_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_circle_compress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_stddev_pop(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn domain_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn domain_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_timezone_abbrevs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xmlexists(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_reload_conf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_rotate_logfile_v2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_file_1arg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_read_file_off_len(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_dir_1arg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_sleep(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inetnot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inetand(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inetor(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inetpl(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inetmi_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inetmi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn statement_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clock_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_cmp_prefix(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_has_role_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_has_role_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_has_role_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_has_role_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_has_role_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_has_role_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_justify_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_triggerdef_ext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dasind(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dacosd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn datand(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn datan2d(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsind(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dcosd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dtand(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dcotd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_backup_stop(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_avg_serialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_avg_deserialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ginarrayextract(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ginarrayconsistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_avg_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn arrayoverlap(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn arraycontains(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn arraycontained(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_tuples_returned(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_tuples_fetched(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_tuples_inserted(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_tuples_updated(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_tuples_deleted(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_matches_no_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_matches(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_split_to_table_no_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_split_to_table(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_split_to_array_no_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_split_to_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_bgwriter_timed_checkpoints(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_bgwriter_requested_checkpoints(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_bgwriter_buf_written_checkpoints(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_bgwriter_buf_written_clean(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_bgwriter_maxwritten_clean(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ginqueryarrayextract(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_buf_written_backend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anynonarray_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anynonarray_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_last_vacuum_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_last_autovacuum_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_last_analyze_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_last_autoanalyze_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_avg_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_avg_serialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_avg_deserialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_wait_event_type(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidgt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidlt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bttidcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidlarger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tidsmaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8inc_any(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8inc_float8_float8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_sxx(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_syy(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_sxy(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_avgx(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_avgy(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_r2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_slope(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_intercept(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_covar_pop(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_covar_samp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_corr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_blk_read_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_blk_write_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_switch_wal(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_current_wal_lsn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_walfile_name_offset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_walfile_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_current_wal_insert_lsn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_wait_event(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_my_temp_schema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_is_other_temp_schema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_timezone_names(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_xact_start(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_avg_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_buf_alloc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_live_tuples(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_dead_tuples(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_lock_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_lock_shared_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_try_advisory_lock_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_try_advisory_lock_shared_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_unlock_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_unlock_shared_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_lock_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_lock_shared_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_try_advisory_lock_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_try_advisory_lock_shared_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_unlock_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_unlock_shared_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_unlock_all(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xml_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xml_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xmlcomment(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn texttoxml(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xmlvalidate(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xml_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xml_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xmlconcat2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varbittypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn intervaltypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn intervaltypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptztypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptztypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetztypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetztypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchartypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchartypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varchartypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varchartypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numerictypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numerictypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bittypmodin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bittypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varbittypmodout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xmltotext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_to_xml(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_to_xml(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cursor_to_xml(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cursor_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn table_to_xml_and_xmlschema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn query_to_xml_and_xmlschema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xpath(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn schema_to_xml(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn schema_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn schema_to_xml_and_xmlschema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn database_to_xml(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn database_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn database_to_xml_and_xmlschema(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_snapshot_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_snapshot_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_snapshot_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_snapshot_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_current_xact_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_current_snapshot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_snapshot_xmin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_snapshot_xmax(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_snapshot_xip(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_visible_in_snapshot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_hash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn booltext(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_function_calls(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_function_total_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_function_self_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btrecordcmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_table_size(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_indexes_size(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_relation_filenode(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_foreign_data_wrapper_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_foreign_data_wrapper_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_foreign_data_wrapper_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_foreign_data_wrapper_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_foreign_data_wrapper_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_foreign_data_wrapper_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_server_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_server_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_server_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_server_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_server_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_server_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_name_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_name_name_attnum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_name_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_name_id_attnum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_id_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_id_name_attnum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_id_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_id_id_attnum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_name_attnum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_column_privilege_id_attnum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_any_column_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_any_column_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_any_column_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_any_column_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_any_column_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_any_column_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitoverlay(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitoverlay_no_len(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitgetbit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bitsetbit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_relation_filepath(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_listening_channels(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_notify(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_numscans(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_tuples_returned(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_tuples_fetched(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_tuples_inserted(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_tuples_updated(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_tuples_deleted(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_tuples_hot_updated(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_blocks_fetched(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_blocks_hit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_function_calls(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_function_total_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_function_self_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xpath_exists(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xml_is_well_formed(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xml_is_well_formed_document(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xml_is_well_formed_content(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_vacuum_count(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_autovacuum_count(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_analyze_count(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_autoanalyze_count(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_concat(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_concat_ws(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_left(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_right(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_reverse(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_buf_fsync_backend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_point_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_conflict_tablespace(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_conflict_lock(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_conflict_snapshot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_conflict_bufferpin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_conflict_startup_deadlock(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_conflict_all(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_wal_replay_pause(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_wal_replay_resume(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_is_wal_replay_paused(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_stat_reset_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_bgwriter_stat_reset_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ginarrayextract_2args(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_extract_tsvector_2args(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_sequence_parameters(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_available_extensions(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_available_extension_versions(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_extension_update_paths(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_extension_config_dump(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_extract_tsquery_5args(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_tsquery_consistent_6args(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_xact_lock_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_xact_lock_shared_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_try_advisory_xact_lock_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_try_advisory_xact_lock_shared_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_xact_lock_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_advisory_xact_lock_shared_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_try_advisory_xact_lock_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_try_advisory_xact_lock_shared_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varchar_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_create_restore_point(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_wal_senders(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_row_number(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_rank(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_dense_rank(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_percent_rank(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_cume_dist(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_ntile(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_lag(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_lag_with_offset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_lag_with_offset_and_default(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_lead(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_lead_with_offset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_lead_with_offset_and_default(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_first_value(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_last_value(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_nth_value(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fdw_handler_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn fdw_handler_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn void_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn void_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint2sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint4sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btint8sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btfloat4sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btfloat8sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btoidsortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btnamesortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_type_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_type_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_type_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_type_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_type_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_type_privilege_id(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_not(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_and(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_or(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_temp_files(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_temp_bytes(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_deadlocks(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_to_json(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_to_json_pretty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn row_to_json(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn row_to_json_pretty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn varbit_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_viewdef_wrap(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_checkpoint_write_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_checkpoint_sync_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_collation_for(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_trigger_depth(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_wal_lsn_diff(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_size_pretty_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_remove(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_replace(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn rangesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_lseek64(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_tell64(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_truncate64(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_json(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_mod_since_analyze(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_sum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_cardinality(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_image_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_image_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_image_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_image_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_image_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn record_image_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btrecordimagecmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_archiver(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_build_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_build_array_noargs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_build_object(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_build_object_noargs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object_two_arg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_to_record(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_to_recordset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_array_length(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_each(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_populate_record(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_typeof(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object_field_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_array_element(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_array_element_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_extract_path(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn width_bucket_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_array_elements(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_mi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_hash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bttextsortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_step_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_strip_nulls(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_strip_nulls(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object_two_arg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_build_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_build_array_noargs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_build_object(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_build_object_noargs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_ppoly(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_position(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_position_start(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_positions(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_circle_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_scale(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_point_fetch(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_poly_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_cpoint(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dist_polyp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_read_file_off_len_missing(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn show_config_by_name_missing_ok(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_read_binary_file_off_len_missing(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_notification_queue_usage(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_dir(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn row_security_active(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn row_security_active_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_concat(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_delete(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_delete_idx(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_delete_path(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_set(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_pretty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_file(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xidneq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsm_handler_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsm_handler_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsm_bernoulli_handler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsm_system_handler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_wal_receiver(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_progress_info(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_filter(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_setweight_by_filter(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_delete_str(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_unnest(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_delete_arr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_avg_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_to_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_to_tsvector(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchar_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn show_all_file_settings(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_current_wal_flush_lsn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytea_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bttext_pattern_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btbpchar_pattern_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_size_bytes(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_serialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_deserialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_avg_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_poly_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_poly_serialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_poly_deserialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_regr_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_delete_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_mul_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_div_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_current_xact_id_if_assigned(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_partkeydef(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_logdir(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_waldir(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ndistinct_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ndistinct_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ndistinct_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ndistinct_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_xact_status(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_safe_snapshot_blocking_pids(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_isolation_test_session_is_blocked(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_identify_object_as_address(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_opcinfo(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_add_value(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_avg_accum_inv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_poly_sum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_poly_avg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_poly_var_pop(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_poly_var_samp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_poly_stddev_pop(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_poly_stddev_samp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_match_no_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_match(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_mul_cash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_config(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_hba_file_rules(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_statistics_obj_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_dependencies_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_dependencies_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_dependencies_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_dependencies_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_partition_constraintdef(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_hash_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz_hash_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_hash_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uuid_hash_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_hash_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashenumextended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_statisticsobjdef(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_hash_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_range_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_hash_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sha224_bytea(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sha256_bytea(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sha384_bytea(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sha512_bytea(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_partition_tree(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_partition_root(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_partition_ancestors(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_checksum_failures(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stats_ext_mcvlist_items(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_checksum_last_failure(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gen_random_uuid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvector_options(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_point_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_promote(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn prefixsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn prefixjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_control_system(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_control_checkpoint(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_control_recovery(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_control_init(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_import_system_collations(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_collation_actual_version(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_int2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_float4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_filenode_relation(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_from_bytea(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_get(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_get_fragment(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn be_lo_put(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_timestamptz_at_timezone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_array_elements_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_range_quad_config(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_range_quad_choose(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_range_quad_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_range_quad_inner_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_range_quad_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_populate_recordset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_regoperator(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object_field(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_regprocedure(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_compare_jsonb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_extract_jsonb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_extract_jsonb_query(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_consistent_jsonb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_extract_jsonb_path(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_extract_jsonb_query_path(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_consistent_jsonb_path(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_triconsistent_jsonb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_triconsistent_jsonb_path(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_to_record(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_to_recordset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_regoper(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_regtype(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_regproc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_regclass(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bool_accum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bool_accum_inv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bool_alltrue(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bool_anytrue(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyenum_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyenum_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hashenum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_first(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_last(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_range_bounds(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_range_all(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn enum_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn string_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn string_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_describe_object(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_format(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_format_nv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytea_string_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytea_string_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8dec(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8dec_any(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_accum_inv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_accum_inv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_overlap(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_gist_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_gist_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_gist_compress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_bool(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_gist_penalty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_gist_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_gist_same(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn networksel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn networkjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_event_trigger_dropped_objects(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2_accum_inv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_accum_inv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_accum_inv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2_avg_accum_inv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_avg_accum_inv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int2int4_sum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_gist_fetch(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_logical_emit_message_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_logical_emit_message_bytea(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_insert(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_xact_commit_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_pg_type_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_last_committed_xact(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_array_pg_type_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_heap_pg_class_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_index_pg_class_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_toast_pg_class_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_pg_enum_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_pg_authid_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_create_empty_extension(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn event_trigger_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn event_trigger_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvectorin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvectorout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsqueryin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsqueryout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_strip(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_setweight(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_concat(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_match_vq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_match_qv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvectorsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvectorrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquerysend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsqueryrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvectorin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvectorout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvector_compress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvector_decompress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvector_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvector_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvector_same(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvector_penalty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvector_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_extract_tsvector(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_extract_tsquery(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_tsquery_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_and(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_or(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_not(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_numnode(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquerytree(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_rewrite(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_rewrite_query(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsmatchsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsmatchjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_typanalyze(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_stat1(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_stat2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsq_mcontains(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsq_mcontained(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsquery_compress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_starts_with(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsquery_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsquery_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsquery_same(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsquery_penalty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsquery_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_rank_wttf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_rank_wtt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_rank_ttf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_rank_tt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_rankcd_wttf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_rankcd_wtt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_rankcd_ttf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_rankcd_tt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_length(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_token_type_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_token_type_byname(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_parse_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_parse_byname(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn prsd_start(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn prsd_nexttoken(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn prsd_end(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn prsd_headline(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn prsd_lextype(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_lexize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_cmp_tslexeme(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsimple_init(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsimple_lexize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsynonym_init(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dsynonym_lexize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dispell_init(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn dispell_lexize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regconfigin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regconfigout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regconfigrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regconfigsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn thesaurus_init(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn thesaurus_lexize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_byid_opt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_tsquery_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plainto_tsquery_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_tsvector(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_tsquery(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn plainto_tsquery(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_update_trigger_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsvector_update_trigger_bycolumn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_opt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ts_parser_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ts_dict_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ts_config_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_current_ts_config(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_match_tt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_match_tq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ts_template_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regdictionaryin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regdictionaryout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regdictionaryrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regdictionarysend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_reset_shared(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_reset_single_table_counters(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_reset_single_function_counters(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_tablespace_location(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_create_physical_replication_slot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_drop_replication_slot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_replication_slots(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_logical_slot_get_changes(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_logical_slot_get_binary_changes(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_logical_slot_peek_changes(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_logical_slot_peek_binary_changes(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_create_logical_replication_slot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_jsonb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_snapshot_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_clean_pending_list(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsvector_consistent_oldsig(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_extract_tsquery_oldsig(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_tsquery_consistent_oldsig(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gtsquery_consistent_oldsig(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_spg_config(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_spg_choose(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_spg_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_spg_inner_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_spg_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_current_logfile(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_current_logfile_1arg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_function_arg_default(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_export_snapshot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_is_in_recovery(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4_cash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8_cash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_collation_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_typanalyze(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn arraycontsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn arraycontjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_multixact_members(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_last_wal_receive_lsn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_last_wal_replay_lsn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_div_cash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cash_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_cash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_read_file_all(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_read_binary_file_off_len(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_read_binary_file_all(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_opfamily_is_visible(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_last_xact_replay_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyrange_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anyrange_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_identify_object(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_constructor2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_constructor3(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_relation_is_updatable(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_column_is_updatable(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_lower(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_upper(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_empty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_lower_inc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_upper_inc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_lower_inf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_upper_inf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_overlaps(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_contains_elem(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_contains(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn elem_contained_by_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_contained_by(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_adjacent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_before(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_after(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_overleft(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_overright(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_intersect(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_minus(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_gist_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_gist_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_slot_advance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_gist_penalty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_gist_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_gist_same(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4range_canonical(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn daterange_canonical(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_typanalyze(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn interval_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ginarraytriconsistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gin_tsquery_triconsistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4range_subdiff(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8range_subdiff(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numrange_subdiff(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn daterange_subdiff(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8range_canonical(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsrange_subdiff(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tstzrange_subdiff(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object_keys(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_each_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mxid_age(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_extract_path_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn acldefault_sql(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object_field(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object_field_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_array_element(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_array_element_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_extract_path(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_summarize_new_values(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_extract_path_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_object_address(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_array_elements(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_array_length(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object_keys(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_each(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_each_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_populate_record(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_populate_recordset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_typeof(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_array_elements_text(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ordered_set_transition(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ordered_set_transition_multi(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn percentile_disc_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn percentile_cont_float8_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn percentile_cont_interval_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn percentile_disc_multi_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn percentile_cont_float8_multi_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn percentile_cont_interval_multi_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mode_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hypothetical_rank_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hypothetical_percent_rank_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hypothetical_cume_dist_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hypothetical_dense_rank_final(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_int4_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_int8_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_unnest_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn gist_box_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_summarize_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonpath_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonpath_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonpath_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonpath_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_exists(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_query(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_query_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_query_first(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_match(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_exists_opr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_path_match_opr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_desummarize_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_quad_config(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_quad_choose(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_quad_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_quad_inner_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_quad_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_kd_config(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_kd_choose(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_kd_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_kd_inner_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_text_config(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_text_choose(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_text_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_text_inner_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_text_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_sequence_last_value(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_hash(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_contains(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_exists(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_exists_any(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_exists_all(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_contained(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_array_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_array_finalfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_merge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_merge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boxes_bound_box(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn inet_same_family(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_record_init_privs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regnamespacein(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regnamespaceout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_regnamespace(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regnamespacerecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regnamespacesend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn point_box(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regroleout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_regrole(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regrolerecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regrolesend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regrolein(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_rotate_logfile(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_read_file(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_missing_value(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_inclusion_opcinfo(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_inclusion_add_value(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_inclusion_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_inclusion_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_trunc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_not(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_and(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_or(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddrtomacaddr8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8tomacaddr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn macaddr8_set7bit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_int8_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_int4_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_int4_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_int4_int2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_int2_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_int2_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_int2_int2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_date_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_timestamp_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_timestamptz_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_interval_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_time_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_timetz_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_float8_float8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_float4_float8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn in_range_numeric_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regcollationin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regcollationout(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_regcollation(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regcollationrecv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regcollationsend(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_jsonb_byid_opt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_jsonb_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_jsonb_opt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_jsonb(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_json_byid_opt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_json_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_json_opt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ts_headline_json(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_string_to_tsvector(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_string_to_tsvector(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_string_to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_string_to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_to_tsvector(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_to_tsvector(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_copy_physical_replication_slot_a(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_copy_physical_replication_slot_b(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_copy_logical_replication_slot_a(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_copy_logical_replication_slot_b(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_copy_logical_replication_slot_c(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblemultirange_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblemultirange_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_merge_from_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anymultirange_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anymultirange_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_lower(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_upper(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_empty(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_lower_inc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_upper_inc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_lower_inf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_upper_inf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_typanalyze(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirangesel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_overlaps_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_overlaps_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_overlaps_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_contains_elem(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_contains_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_contains_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn elem_contained_by_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_contained_by_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_contained_by_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_adjacent_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_adjacent_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_adjacent_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_before_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_before_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_before_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_after_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_after_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_after_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_overleft_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_overleft_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_overleft_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_overright_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_overright_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_overright_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_minus(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_intersect(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_multirange_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_constructor0(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_constructor1(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_constructor2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unicode_normalize_func(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unicode_is_normalized(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_intersect_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_multirange_pg_type_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_multirange_array_pg_type_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_intersect_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_contains_multirange(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_contained_by_range(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_log_backend_memory_contexts(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_heap_relfilenode(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_index_relfilenode(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_toast_relfilenode(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn binary_upgrade_set_next_pg_tablespace_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_event_trigger_table_rewrite_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_event_trigger_table_rewrite_reason(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_event_trigger_ddl_commands(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_bloom_opcinfo(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_bloom_add_value(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_bloom_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_bloom_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_bloom_options(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_bloom_summary_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_bloom_summary_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_bloom_summary_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_bloom_summary_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_opcinfo(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_add_value(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_union(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_options(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_int2(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_int4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_int8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_float4(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_float8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_numeric(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_tid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_uuid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_timetz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_pg_lsn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_macaddr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_macaddr8(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_inet(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_distance_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_summary_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_summary_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_summary_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn brin_minmax_multi_summary_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn phraseto_tsquery(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_phrase(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tsquery_phrase_distance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn phraseto_tsquery_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn websearch_to_tsquery_byid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn websearch_to_tsquery(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_bbox_quad_config(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_poly_quad_compress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_box_quad_config(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_box_quad_choose(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_box_quad_picksplit(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_box_quad_inner_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn spg_box_quad_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mcv_list_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mcv_list_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mcv_list_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_mcv_list_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_pli(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lsn_mii(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn satisfies_hash_partition(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_tmpdir_noargs(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_tmpdir_1arg(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_archive_statusdir(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_sortsupport(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8lt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8gt(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8le(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8ge(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn matchingsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn matchingjoinsel(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_min_scale(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_trim_scale(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4gcd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8gcd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int4lcm(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8lcm(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_gcd(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_lcm(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btvarstrequalimage(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn btequalimage(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_shmem_allocations(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_ins_since_vacuum(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_set_lax(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8toxid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8eq(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8ne(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatible_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatible_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblearray_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblearray_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblearray_recv(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblearray_send(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblenonarray_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblenonarray_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblerange_in(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anycompatiblerange_out(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8cmp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8_larger(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xid8_smaller(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_create(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_drop(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_oid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_session_setup(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_session_reset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_session_is_setup(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_session_progress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_xact_setup(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_xact_reset(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_advance(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_replication_origin_progress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_show_replication_origin_status(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_subscript_handler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_pg_lsn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_backend_subxact(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_subscription(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_publication_tables(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_replica_identity_index(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_relation_is_publishable(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_gist_consistent(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_gist_compress(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_catalog_foreign_keys(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_to_table(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_to_table_null(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bit_bit_count(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytea_bit_count(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_xact_commit_timestamp_origin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_replication_slot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_reset_replication_slot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn trim_array(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_statisticsobjdef_expressions(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_statisticsobjdef_columns(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamp_bin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_bin(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_subscript_handler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn raw_array_subscript_handler(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_session_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_active_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_idle_in_transaction_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_sessions(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_sessions_abandoned(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_sessions_fatal(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_sessions_killed(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_record(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hash_record_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bytealtrim(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn byteartrim(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_function_sqlbody(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn unistr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_date(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_time(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_timetz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_timestamp(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_timestamptz(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn extract_interval(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_parameter_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_parameter_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn has_parameter_privilege_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_read_file_all_missing(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_read_binary_file_all_missing(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_input_is_valid(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_input_error_info(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn drandom_normal(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_split_walfile_name(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_io(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_shuffle(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_sample(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_tuples_newpage_updated(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_xact_tuples_newpage_updated(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn derf(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn derfc(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_pl_interval_at_zone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_get_wal_resource_managers(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn multirange_agg_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_have_stats(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_subscription_stats(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_reset_subscription_stats(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_row_number_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_rank_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_dense_rank_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int8inc_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_settings_get_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stop_making_pinned_objects(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_starts_with_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_recovery_prefetch(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_database_collation_actual_version(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ident_file_mappings(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textregexreplace_extended(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textregexreplace_extended_no_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn textregexreplace_extended_no_n(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_count_no_start(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_count_no_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_count(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_instr_no_start(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_instr_no_n(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_instr_no_endoption(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_instr_no_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_instr_no_subexpr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_instr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_like_no_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_like(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_substr_no_start(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_substr_no_n(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_substr_no_flags(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_substr_no_subexpr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_substr(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_logicalsnapdir(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_logicalmapdir(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ls_replslotdir(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timestamptz_mi_interval_at_zone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_series_timestamptz_at_zone(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_agg_strict_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object_agg_strict_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object_agg_unique_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_object_agg_unique_strict_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_agg_strict_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object_agg_strict_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object_agg_unique_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_object_agg_unique_strict_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn any_value_transfn(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_serialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_deserialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_array_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_array_serialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn array_agg_array_deserialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn string_agg_combine(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn string_agg_serialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn string_agg_deserialize(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_log_standby_snapshot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_percent_rank_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_cume_dist_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn window_ntile_support(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_db_conflict_logicalslot(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_stat_get_lastscan(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn system_user(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_bool(value: *const ::std::os::raw::c_char, result: *mut bool) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn parse_bool_with_len( + value: *const ::std::os::raw::c_char, + len: usize, + result: *mut bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn domain_check( + value: Datum, + isnull: bool, + domainType: Oid, + extra: *mut *mut ::std::os::raw::c_void, + mcxt: MemoryContext, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errdatatype(datatypeOid: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn errdomainconstraint( + datatypeOid: Oid, + conname: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hex_encode( + src: *const ::std::os::raw::c_char, + len: usize, + dst: *mut ::std::os::raw::c_char, + ) -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hex_decode( + src: *const ::std::os::raw::c_char, + len: usize, + dst: *mut ::std::os::raw::c_char, + ) -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn hex_decode_safe( + src: *const ::std::os::raw::c_char, + len: usize, + dst: *mut ::std::os::raw::c_char, + escontext: *mut Node, + ) -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn buildint2vector(int2s: *const int16, n: ::std::os::raw::c_int) -> *mut int2vector; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namestrcpy(name: Name, str_: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn namestrcmp(name: Name, str_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strtoint16(s: *const ::std::os::raw::c_char) -> int16; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strtoint16_safe(s: *const ::std::os::raw::c_char, escontext: *mut Node) -> int16; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strtoint32(s: *const ::std::os::raw::c_char) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strtoint32_safe(s: *const ::std::os::raw::c_char, escontext: *mut Node) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strtoint64(s: *const ::std::os::raw::c_char) -> int64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_strtoint64_safe(s: *const ::std::os::raw::c_char, escontext: *mut Node) -> int64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uint32in_subr( + s: *const ::std::os::raw::c_char, + endloc: *mut *mut ::std::os::raw::c_char, + typname: *const ::std::os::raw::c_char, + escontext: *mut Node, + ) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn uint64in_subr( + s: *const ::std::os::raw::c_char, + endloc: *mut *mut ::std::os::raw::c_char, + typname: *const ::std::os::raw::c_char, + escontext: *mut Node, + ) -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_itoa(i: int16, a: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ultoa_n(value: uint32, a: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ulltoa_n(value: uint64, a: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ltoa(value: int32, a: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_lltoa(value: int64, a: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ultostr_zeropad( + str_: *mut ::std::os::raw::c_char, + value: uint32, + minwidth: int32, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_ultostr( + str_: *mut ::std::os::raw::c_char, + value: uint32, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn buildoidvector(oids: *const Oid, n: ::std::os::raw::c_int) -> *mut oidvector; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oidparse(node: *mut Node) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn oid_cmp( + p1: *const ::std::os::raw::c_void, + p2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn regexp_fixed_prefix( + text_re: *mut text, + case_insensitive: bool, + collation: Oid, + exact: *mut bool, + ) -> *mut ::std::os::raw::c_char; +} +extern "C" { + pub static mut quote_all_identifiers: bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn quote_identifier(ident: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn quote_qualified_identifier( + qualifier: *const ::std::os::raw::c_char, + ident: *const ::std::os::raw::c_char, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generate_operator_clause( + buf: fmStringInfo, + leftop: *const ::std::os::raw::c_char, + leftoptype: Oid, + opoid: Oid, + rightop: *const ::std::os::raw::c_char, + rightoptype: Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bpchartruelen( + s: *mut ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cstring_to_text(s: *const ::std::os::raw::c_char) -> *mut text; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn cstring_to_text_with_len( + s: *const ::std::os::raw::c_char, + len: ::std::os::raw::c_int, + ) -> *mut text; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_to_cstring(t: *const text) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn text_to_cstring_buffer( + src: *const text, + dst: *mut ::std::os::raw::c_char, + dst_len: usize, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xidComparator( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn xidLogicalComparator( + arg1: *const ::std::os::raw::c_void, + arg2: *const ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_inet_cidr_ntop( + af: ::std::os::raw::c_int, + src: *const ::std::os::raw::c_void, + bits: ::std::os::raw::c_int, + dst: *mut ::std::os::raw::c_char, + size: usize, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_inet_net_pton( + af: ::std::os::raw::c_int, + src: *const ::std::os::raw::c_char, + dst: *mut ::std::os::raw::c_void, + size: usize, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn convert_network_to_scalar(value: Datum, typid: Oid, failure: *mut bool) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_scan_first(in_: Datum) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn network_scan_last(in_: Datum) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn clean_ipv6_addr(addr_family: ::std::os::raw::c_int, addr: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_float8_no_overflow(fcinfo: FunctionCallInfo) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn format_type_extended( + type_oid: Oid, + typemod: int32, + flags: bits16, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn format_type_be(type_oid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn format_type_be_qualified(type_oid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn format_type_with_typemod(type_oid: Oid, typemod: int32) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn type_maximum_size(type_oid: Oid, typemod: int32) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn quote_literal_cstr(rawstr: *const ::std::os::raw::c_char) + -> *mut ::std::os::raw::c_char; +} +pub type DateADT = int32; +pub type TimeADT = int64; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TimeTzADT { + pub time: TimeADT, + pub zone: int32, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn anytime_typmod_check(istz: bool, typmod: int32) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date2timestamp_no_overflow(dateVal: DateADT) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date2timestamp_opt_overflow( + dateVal: DateADT, + overflow: *mut ::std::os::raw::c_int, + ) -> Timestamp; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date2timestamptz_opt_overflow( + dateVal: DateADT, + overflow: *mut ::std::os::raw::c_int, + ) -> TimestampTz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_cmp_timestamp_internal(dateVal: DateADT, dt2: Timestamp) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date_cmp_timestamptz_internal(dateVal: DateADT, dt2: TimestampTz) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EncodeSpecialDate(dt: DateADT, str_: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSQLCurrentDate() -> DateADT; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSQLCurrentTime(typmod: int32) -> *mut TimeTzADT; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSQLLocalTime(typmod: int32) -> TimeADT; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time2tm(time: TimeADT, tm: *mut pg_tm, fsec: *mut fsec_t) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn timetz2tm( + time: *mut TimeTzADT, + tm: *mut pg_tm, + fsec: *mut fsec_t, + tzp: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tm2time(tm: *mut pg_tm, fsec: fsec_t, result: *mut TimeADT) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn tm2timetz( + tm: *mut pg_tm, + fsec: fsec_t, + tz: ::std::os::raw::c_int, + result: *mut TimeTzADT, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn time_overflows( + hour: ::std::os::raw::c_int, + min: ::std::os::raw::c_int, + sec: ::std::os::raw::c_int, + fsec: fsec_t, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float_time_overflows( + hour: ::std::os::raw::c_int, + min: ::std::os::raw::c_int, + sec: f64, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AdjustTimeForTypmod(time: *mut TimeADT, typmod: int32); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tzEntry { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct datetkn { + pub token: [::std::os::raw::c_char; 11usize], + pub type_: ::std::os::raw::c_char, + pub value: int32, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct TimeZoneAbbrevTable { + pub tblsize: Size, + pub numabbrevs: ::std::os::raw::c_int, + pub abbrevs: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug)] +pub struct DynamicZoneAbbrev { + pub tz: *mut pg_tz, + pub zone: __IncompleteArrayField<::std::os::raw::c_char>, +} +impl Default for DynamicZoneAbbrev { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +extern "C" { + pub static months: [*const ::std::os::raw::c_char; 0usize]; +} +extern "C" { + pub static days: [*const ::std::os::raw::c_char; 0usize]; +} +extern "C" { + pub static mut day_tab: [[::std::os::raw::c_int; 13usize]; 2usize]; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct DateTimeErrorExtra { + pub dtee_timezone: *const ::std::os::raw::c_char, + pub dtee_abbrev: *const ::std::os::raw::c_char, +} +impl Default for DateTimeErrorExtra { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentDateTime(tm: *mut pg_tm); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetCurrentTimeUsec(tm: *mut pg_tm, fsec: *mut fsec_t, tzp: *mut ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn j2date( + jd: ::std::os::raw::c_int, + year: *mut ::std::os::raw::c_int, + month: *mut ::std::os::raw::c_int, + day: *mut ::std::os::raw::c_int, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn date2j( + year: ::std::os::raw::c_int, + month: ::std::os::raw::c_int, + day: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ParseDateTime( + timestr: *const ::std::os::raw::c_char, + workbuf: *mut ::std::os::raw::c_char, + buflen: usize, + field: *mut *mut ::std::os::raw::c_char, + ftype: *mut ::std::os::raw::c_int, + maxfields: ::std::os::raw::c_int, + numfields: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeDateTime( + field: *mut *mut ::std::os::raw::c_char, + ftype: *mut ::std::os::raw::c_int, + nf: ::std::os::raw::c_int, + dtype: *mut ::std::os::raw::c_int, + tm: *mut pg_tm, + fsec: *mut fsec_t, + tzp: *mut ::std::os::raw::c_int, + extra: *mut DateTimeErrorExtra, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeTimezone( + str_: *const ::std::os::raw::c_char, + tzp: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeTimeOnly( + field: *mut *mut ::std::os::raw::c_char, + ftype: *mut ::std::os::raw::c_int, + nf: ::std::os::raw::c_int, + dtype: *mut ::std::os::raw::c_int, + tm: *mut pg_tm, + fsec: *mut fsec_t, + tzp: *mut ::std::os::raw::c_int, + extra: *mut DateTimeErrorExtra, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeInterval( + field: *mut *mut ::std::os::raw::c_char, + ftype: *mut ::std::os::raw::c_int, + nf: ::std::os::raw::c_int, + range: ::std::os::raw::c_int, + dtype: *mut ::std::os::raw::c_int, + itm_in: *mut pg_itm_in, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeISO8601Interval( + str_: *mut ::std::os::raw::c_char, + dtype: *mut ::std::os::raw::c_int, + itm_in: *mut pg_itm_in, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DateTimeParseError( + dterr: ::std::os::raw::c_int, + extra: *mut DateTimeErrorExtra, + str_: *const ::std::os::raw::c_char, + datatype: *const ::std::os::raw::c_char, + escontext: *mut Node, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DetermineTimeZoneOffset(tm: *mut pg_tm, tzp: *mut pg_tz) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DetermineTimeZoneAbbrevOffset( + tm: *mut pg_tm, + abbr: *const ::std::os::raw::c_char, + tzp: *mut pg_tz, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DetermineTimeZoneAbbrevOffsetTS( + ts: TimestampTz, + abbr: *const ::std::os::raw::c_char, + tzp: *mut pg_tz, + isdst: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EncodeDateOnly( + tm: *mut pg_tm, + style: ::std::os::raw::c_int, + str_: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EncodeTimeOnly( + tm: *mut pg_tm, + fsec: fsec_t, + print_tz: bool, + tz: ::std::os::raw::c_int, + style: ::std::os::raw::c_int, + str_: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EncodeDateTime( + tm: *mut pg_tm, + fsec: fsec_t, + print_tz: bool, + tz: ::std::os::raw::c_int, + tzn: *const ::std::os::raw::c_char, + style: ::std::os::raw::c_int, + str_: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EncodeInterval( + itm: *mut pg_itm, + style: ::std::os::raw::c_int, + str_: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn EncodeSpecialTimestamp(dt: Timestamp, str_: *mut ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ValidateDate( + fmask: ::std::os::raw::c_int, + isjulian: bool, + is2digits: bool, + bc: bool, + tm: *mut pg_tm, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeTimezoneAbbrev( + field: ::std::os::raw::c_int, + lowtoken: *const ::std::os::raw::c_char, + ftype: *mut ::std::os::raw::c_int, + offset: *mut ::std::os::raw::c_int, + tz: *mut *mut pg_tz, + extra: *mut DateTimeErrorExtra, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeSpecial( + field: ::std::os::raw::c_int, + lowtoken: *const ::std::os::raw::c_char, + val: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeUnits( + field: ::std::os::raw::c_int, + lowtoken: *const ::std::os::raw::c_char, + val: *mut ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeTimezoneName( + tzname: *const ::std::os::raw::c_char, + offset: *mut ::std::os::raw::c_int, + tz: *mut *mut pg_tz, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn DecodeTimezoneNameToTz(tzname: *const ::std::os::raw::c_char) -> *mut pg_tz; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn j2day(date: ::std::os::raw::c_int) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn TemporalSimplify(max_precis: int32, node: *mut Node) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn CheckDateTokenTables() -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ConvertTimeZoneAbbrevs( + abbrevs: *mut tzEntry, + n: ::std::os::raw::c_int, + ) -> *mut TimeZoneAbbrevTable; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InstallTimeZoneAbbrevs(tbl: *mut TimeZoneAbbrevTable); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn AdjustTimestampForTypmod( + time: *mut Timestamp, + typmod: int32, + escontext: *mut Node, + ) -> bool; +} +extern "C" { + pub static mut extra_float_digits: ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float_overflow_error() -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float_underflow_error() -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float_zero_divide_error() -> !; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn is_infinite(val: float8) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8in_internal( + num: *mut ::std::os::raw::c_char, + endptr_p: *mut *mut ::std::os::raw::c_char, + type_name: *const ::std::os::raw::c_char, + orig_string: *const ::std::os::raw::c_char, + escontext: *mut Node, + ) -> float8; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4in_internal( + num: *mut ::std::os::raw::c_char, + endptr_p: *mut *mut ::std::os::raw::c_char, + type_name: *const ::std::os::raw::c_char, + orig_string: *const ::std::os::raw::c_char, + escontext: *mut Node, + ) -> float4; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8out_internal(num: float8) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float4_cmp_internal(a: float4, b: float4) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn float8_cmp_internal(a: float8, b: float8) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct Point { + pub x: float8, + pub y: float8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LSEG { + pub p: [Point; 2usize], +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct PATH { + pub vl_len_: int32, + pub npts: int32, + pub closed: int32, + pub dummy: int32, + pub p: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct LINE { + pub A: float8, + pub B: float8, + pub C: float8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct BOX { + pub high: Point, + pub low: Point, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct POLYGON { + pub vl_len_: int32, + pub npts: int32, + pub boundbox: BOX, + pub p: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct CIRCLE { + pub center: Point, + pub radius: float8, +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_hypot(x: float8, y: float8) -> float8; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn escape_json(buf: StringInfo, str_: *const ::std::os::raw::c_char); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonEncodeDateTime( + buf: *mut ::std::os::raw::c_char, + value: Datum, + typid: Oid, + tzp: *const ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_json_is_immutable(typoid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_build_object_worker( + nargs: ::std::os::raw::c_int, + args: *mut Datum, + nulls: *mut bool, + types: *mut Oid, + absent_on_null: bool, + unique_keys: bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_build_array_worker( + nargs: ::std::os::raw::c_int, + args: *mut Datum, + nulls: *mut bool, + types: *mut Oid, + absent_on_null: bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn json_validate(json: *mut text, check_unique_keys: bool, throw_error: bool) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct NumericData { + _unused: [u8; 0], +} +pub type Numeric = *mut NumericData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_is_nan(num: Numeric) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_is_inf(num: Numeric) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_maximum_size(typmod: int32) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_out_sci( + num: Numeric, + scale: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_normalize(num: Numeric) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int64_to_numeric(val: int64) -> Numeric; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn int64_div_fast_to_numeric(val1: int64, log10val2: ::std::os::raw::c_int) -> Numeric; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_add_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_sub_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_mul_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_div_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_mod_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn numeric_int4_opt_error(num: Numeric, have_error: *mut bool) -> int32; +} +pub const JsonbIteratorToken_WJB_DONE: JsonbIteratorToken = 0; +pub const JsonbIteratorToken_WJB_KEY: JsonbIteratorToken = 1; +pub const JsonbIteratorToken_WJB_VALUE: JsonbIteratorToken = 2; +pub const JsonbIteratorToken_WJB_ELEM: JsonbIteratorToken = 3; +pub const JsonbIteratorToken_WJB_BEGIN_ARRAY: JsonbIteratorToken = 4; +pub const JsonbIteratorToken_WJB_END_ARRAY: JsonbIteratorToken = 5; +pub const JsonbIteratorToken_WJB_BEGIN_OBJECT: JsonbIteratorToken = 6; +pub const JsonbIteratorToken_WJB_END_OBJECT: JsonbIteratorToken = 7; +pub type JsonbIteratorToken = ::std::os::raw::c_uint; +pub type JEntry = uint32; +#[repr(C)] +#[derive(Debug, Default)] +pub struct JsonbContainer { + pub header: uint32, + pub children: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Default)] +pub struct Jsonb { + pub vl_len_: int32, + pub root: JsonbContainer, +} +pub const jbvType_jbvNull: jbvType = 0; +pub const jbvType_jbvString: jbvType = 1; +pub const jbvType_jbvNumeric: jbvType = 2; +pub const jbvType_jbvBool: jbvType = 3; +pub const jbvType_jbvArray: jbvType = 16; +pub const jbvType_jbvObject: jbvType = 17; +pub const jbvType_jbvBinary: jbvType = 18; +pub const jbvType_jbvDatetime: jbvType = 32; +pub type jbvType = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct JsonbValue { + pub type_: jbvType, + pub val: JsonbValue__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union JsonbValue__bindgen_ty_1 { + pub numeric: Numeric, + pub boolean: bool, + pub string: JsonbValue__bindgen_ty_1__bindgen_ty_1, + pub array: JsonbValue__bindgen_ty_1__bindgen_ty_2, + pub object: JsonbValue__bindgen_ty_1__bindgen_ty_3, + pub binary: JsonbValue__bindgen_ty_1__bindgen_ty_4, + pub datetime: JsonbValue__bindgen_ty_1__bindgen_ty_5, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonbValue__bindgen_ty_1__bindgen_ty_1 { + pub len: ::std::os::raw::c_int, + pub val: *mut ::std::os::raw::c_char, +} +impl Default for JsonbValue__bindgen_ty_1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonbValue__bindgen_ty_1__bindgen_ty_2 { + pub nElems: ::std::os::raw::c_int, + pub elems: *mut JsonbValue, + pub rawScalar: bool, +} +impl Default for JsonbValue__bindgen_ty_1__bindgen_ty_2 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonbValue__bindgen_ty_1__bindgen_ty_3 { + pub nPairs: ::std::os::raw::c_int, + pub pairs: *mut JsonbPair, +} +impl Default for JsonbValue__bindgen_ty_1__bindgen_ty_3 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonbValue__bindgen_ty_1__bindgen_ty_4 { + pub len: ::std::os::raw::c_int, + pub data: *mut JsonbContainer, +} +impl Default for JsonbValue__bindgen_ty_1__bindgen_ty_4 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonbValue__bindgen_ty_1__bindgen_ty_5 { + pub value: Datum, + pub typid: Oid, + pub typmod: int32, + pub tz: ::std::os::raw::c_int, +} +impl Default for JsonbValue__bindgen_ty_1__bindgen_ty_5 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for JsonbValue__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl Default for JsonbValue { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct JsonbPair { + pub key: JsonbValue, + pub value: JsonbValue, + pub order: uint32, +} +impl Default for JsonbPair { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct JsonbParseState { + pub contVal: JsonbValue, + pub size: Size, + pub next: *mut JsonbParseState, + pub unique_keys: bool, + pub skip_nulls: bool, +} +impl Default for JsonbParseState { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const JsonbIterState_JBI_ARRAY_START: JsonbIterState = 0; +pub const JsonbIterState_JBI_ARRAY_ELEM: JsonbIterState = 1; +pub const JsonbIterState_JBI_OBJECT_START: JsonbIterState = 2; +pub const JsonbIterState_JBI_OBJECT_KEY: JsonbIterState = 3; +pub const JsonbIterState_JBI_OBJECT_VALUE: JsonbIterState = 4; +pub type JsonbIterState = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct JsonbIterator { + pub container: *mut JsonbContainer, + pub nElems: uint32, + pub isScalar: bool, + pub children: *mut JEntry, + pub dataProper: *mut ::std::os::raw::c_char, + pub curIndex: ::std::os::raw::c_int, + pub curDataOffset: uint32, + pub curValueOffset: uint32, + pub state: JsonbIterState, + pub parent: *mut JsonbIterator, +} +impl Default for JsonbIterator { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getJsonbOffset(jc: *const JsonbContainer, index: ::std::os::raw::c_int) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getJsonbLength(jc: *const JsonbContainer, index: ::std::os::raw::c_int) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn compareJsonbContainers( + a: *mut JsonbContainer, + b: *mut JsonbContainer, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn findJsonbValueFromContainer( + container: *mut JsonbContainer, + flags: uint32, + key: *mut JsonbValue, + ) -> *mut JsonbValue; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getKeyJsonValueFromContainer( + container: *mut JsonbContainer, + keyVal: *const ::std::os::raw::c_char, + keyLen: ::std::os::raw::c_int, + res: *mut JsonbValue, + ) -> *mut JsonbValue; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getIthJsonbValueFromContainer( + container: *mut JsonbContainer, + i: uint32, + ) -> *mut JsonbValue; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pushJsonbValue( + pstate: *mut *mut JsonbParseState, + seq: JsonbIteratorToken, + jbval: *mut JsonbValue, + ) -> *mut JsonbValue; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbIteratorInit(container: *mut JsonbContainer) -> *mut JsonbIterator; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbIteratorNext( + it: *mut *mut JsonbIterator, + val: *mut JsonbValue, + skipNested: bool, + ) -> JsonbIteratorToken; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbToJsonbValue(jsonb: *mut Jsonb, val: *mut JsonbValue); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbValueToJsonb(val: *mut JsonbValue) -> *mut Jsonb; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbDeepContains( + val: *mut *mut JsonbIterator, + mContained: *mut *mut JsonbIterator, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbHashScalarValue(scalarVal: *const JsonbValue, hash: *mut uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbHashScalarValueExtended( + scalarVal: *const JsonbValue, + hash: *mut uint64, + seed: uint64, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbToCString( + out: StringInfo, + in_: *mut JsonbContainer, + estimated_len: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbToCStringIndent( + out: StringInfo, + in_: *mut JsonbContainer, + estimated_len: ::std::os::raw::c_int, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbExtractScalar(jbc: *mut JsonbContainer, res: *mut JsonbValue) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn JsonbTypeName(val: *mut JsonbValue) -> *const ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_set_element( + jb: *mut Jsonb, + path: *mut Datum, + path_len: ::std::os::raw::c_int, + newval: *mut JsonbValue, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_get_element( + jb: *mut Jsonb, + path: *mut Datum, + npath: ::std::os::raw::c_int, + isnull: *mut bool, + as_text: bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn to_jsonb_is_immutable(typoid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_build_object_worker( + nargs: ::std::os::raw::c_int, + args: *mut Datum, + nulls: *mut bool, + types: *mut Oid, + absent_on_null: bool, + unique_keys: bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn jsonb_build_array_worker( + nargs: ::std::os::raw::c_int, + args: *mut Datum, + nulls: *mut bool, + types: *mut Oid, + absent_on_null: bool, + ) -> Datum; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SubscriptRoutines { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct OpBtreeInterpretation { + pub opfamily_id: Oid, + pub strategy: ::std::os::raw::c_int, + pub oplefttype: Oid, + pub oprighttype: Oid, +} +impl Default for OpBtreeInterpretation { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const IOFuncSelector_IOFunc_input: IOFuncSelector = 0; +pub const IOFuncSelector_IOFunc_output: IOFuncSelector = 1; +pub const IOFuncSelector_IOFunc_receive: IOFuncSelector = 2; +pub const IOFuncSelector_IOFunc_send: IOFuncSelector = 3; +pub type IOFuncSelector = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct AttStatsSlot { + pub staop: Oid, + pub stacoll: Oid, + pub valuetype: Oid, + pub values: *mut Datum, + pub nvalues: ::std::os::raw::c_int, + pub numbers: *mut float4, + pub nnumbers: ::std::os::raw::c_int, + pub values_arr: *mut ::std::os::raw::c_void, + pub numbers_arr: *mut ::std::os::raw::c_void, +} +impl Default for AttStatsSlot { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type get_attavgwidth_hook_type = + ::std::option::Option int32>; +extern "C" { + pub static mut get_attavgwidth_hook: get_attavgwidth_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn op_in_opfamily(opno: Oid, opfamily: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_op_opfamily_strategy(opno: Oid, opfamily: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_op_opfamily_sortfamily(opno: Oid, opfamily: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_op_opfamily_properties( + opno: Oid, + opfamily: Oid, + ordering_op: bool, + strategy: *mut ::std::os::raw::c_int, + lefttype: *mut Oid, + righttype: *mut Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_opfamily_member( + opfamily: Oid, + lefttype: Oid, + righttype: Oid, + strategy: int16, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_ordering_op_properties( + opno: Oid, + opfamily: *mut Oid, + opcintype: *mut Oid, + strategy: *mut int16, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_equality_op_for_ordering_op(opno: Oid, reverse: *mut bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_ordering_op_for_equality_op(opno: Oid, use_lhs_type: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_mergejoin_opfamilies(opno: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_compatible_hash_operators(opno: Oid, lhs_opno: *mut Oid, rhs_opno: *mut Oid) + -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_op_hash_functions( + opno: Oid, + lhs_procno: *mut RegProcedure, + rhs_procno: *mut RegProcedure, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_op_btree_interpretation(opno: Oid) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn equality_ops_are_compatible(opno1: Oid, opno2: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn comparison_ops_are_compatible(opno1: Oid, opno2: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_opfamily_proc(opfamily: Oid, lefttype: Oid, righttype: Oid, procnum: int16) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_attname( + relid: Oid, + attnum: AttrNumber, + missing_ok: bool, + ) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_attnum(relid: Oid, attname: *const ::std::os::raw::c_char) -> AttrNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_attstattarget(relid: Oid, attnum: AttrNumber) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_attgenerated(relid: Oid, attnum: AttrNumber) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_atttype(relid: Oid, attnum: AttrNumber) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_atttypetypmodcoll( + relid: Oid, + attnum: AttrNumber, + typid: *mut Oid, + typmod: *mut int32, + collid: *mut Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_attoptions(relid: Oid, attnum: int16) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_cast_oid(sourcetypeid: Oid, targettypeid: Oid, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_collation_name(colloid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_collation_isdeterministic(colloid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_constraint_name(conoid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_constraint_index(conoid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_language_name(langoid: Oid, missing_ok: bool) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_opclass_family(opclass: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_opclass_input_type(opclass: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_opclass_opfamily_and_input_type( + opclass: Oid, + opfamily: *mut Oid, + opcintype: *mut Oid, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_opcode(opno: Oid) -> RegProcedure; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_opname(opno: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_op_rettype(opno: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn op_input_types(opno: Oid, lefttype: *mut Oid, righttype: *mut Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn op_mergejoinable(opno: Oid, inputtype: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn op_hashjoinable(opno: Oid, inputtype: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn op_strict(opno: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn op_volatile(opno: Oid) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_commutator(opno: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_negator(opno: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_oprrest(opno: Oid) -> RegProcedure; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_oprjoin(opno: Oid) -> RegProcedure; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_name(funcid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_namespace(funcid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_rettype(funcid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_nargs(funcid: Oid) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_signature( + funcid: Oid, + argtypes: *mut *mut Oid, + nargs: *mut ::std::os::raw::c_int, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_variadictype(funcid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_retset(funcid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn func_strict(funcid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn func_volatile(funcid: Oid) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn func_parallel(funcid: Oid) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_prokind(funcid: Oid) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_leakproof(funcid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_func_support(funcid: Oid) -> RegProcedure; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_relname_relid(relname: *const ::std::os::raw::c_char, relnamespace: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rel_name(relid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rel_namespace(relid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rel_type_id(relid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rel_relkind(relid: Oid) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rel_relispartition(relid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rel_tablespace(relid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_rel_persistence(relid: Oid) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_transform_fromsql(typid: Oid, langid: Oid, trftypes: *mut List) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_transform_tosql(typid: Oid, langid: Oid, trftypes: *mut List) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typisdefined(typid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typlen(typid: Oid) -> int16; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typbyval(typid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typlenbyval(typid: Oid, typlen: *mut int16, typbyval: *mut bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typlenbyvalalign( + typid: Oid, + typlen: *mut int16, + typbyval: *mut bool, + typalign: *mut ::std::os::raw::c_char, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getTypeIOParam(typeTuple: HeapTuple) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_type_io_data( + typid: Oid, + which_func: IOFuncSelector, + typlen: *mut int16, + typbyval: *mut bool, + typalign: *mut ::std::os::raw::c_char, + typdelim: *mut ::std::os::raw::c_char, + typioparam: *mut Oid, + func: *mut Oid, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typstorage(typid: Oid) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typdefault(typid: Oid) -> *mut Node; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typtype(typid: Oid) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn type_is_rowtype(typid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn type_is_enum(typid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn type_is_range(typid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn type_is_multirange(typid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_type_category_preferred( + typid: Oid, + typcategory: *mut ::std::os::raw::c_char, + typispreferred: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typ_typrelid(typid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_element_type(typid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_array_type(typid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_promoted_array_type(typid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_base_element_type(typid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getTypeInputInfo(type_: Oid, typInput: *mut Oid, typIOParam: *mut Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getTypeOutputInfo(type_: Oid, typOutput: *mut Oid, typIsVarlena: *mut bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getTypeBinaryInputInfo(type_: Oid, typReceive: *mut Oid, typIOParam: *mut Oid); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getTypeBinaryOutputInfo(type_: Oid, typSend: *mut Oid, typIsVarlena: *mut bool); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typmodin(typid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typcollation(typid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn type_is_collatable(typid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typsubscript(typid: Oid, typelemp: *mut Oid) -> RegProcedure; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getSubscriptingRoutines(typid: Oid, typelemp: *mut Oid) -> *const SubscriptRoutines; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getBaseType(typid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn getBaseTypeAndTypmod(typid: Oid, typmod: *mut int32) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_typavgwidth(typid: Oid, typmod: int32) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_attavgwidth(relid: Oid, attnum: AttrNumber) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_attstatsslot( + sslot: *mut AttStatsSlot, + statstuple: HeapTuple, + reqkind: ::std::os::raw::c_int, + reqop: Oid, + flags: ::std::os::raw::c_int, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn free_attstatsslot(sslot: *mut AttStatsSlot); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_namespace_name(nspid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_namespace_name_or_temp(nspid: Oid) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_range_subtype(rangeOid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_range_collation(rangeOid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_range_multirange(rangeOid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_multirange_range(multirangeOid: Oid) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_index_column_opclass(index_oid: Oid, attno: ::std::os::raw::c_int) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_index_isreplident(index_oid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_index_isvalid(index_oid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_index_isclustered(index_oid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_publication_oid(pubname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_publication_name(pubid: Oid, missing_ok: bool) -> *mut ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_subscription_oid(subname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_subscription_name(subid: Oid, missing_ok: bool) -> *mut ::std::os::raw::c_char; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct pg_prng_state { + pub s0: uint64, + pub s1: uint64, +} +extern "C" { + pub static mut pg_global_prng_state: pg_prng_state; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_seed(state: *mut pg_prng_state, seed: uint64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_fseed(state: *mut pg_prng_state, fseed: f64); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_seed_check(state: *mut pg_prng_state) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_uint64(state: *mut pg_prng_state) -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_uint64_range(state: *mut pg_prng_state, rmin: uint64, rmax: uint64) -> uint64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_int64(state: *mut pg_prng_state) -> int64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_int64p(state: *mut pg_prng_state) -> int64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_uint32(state: *mut pg_prng_state) -> uint32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_int32(state: *mut pg_prng_state) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_int32p(state: *mut pg_prng_state) -> int32; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_double(state: *mut pg_prng_state) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_double_normal(state: *mut pg_prng_state) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn pg_prng_bool(state: *mut pg_prng_state) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sampler_random_init_state(seed: uint32, randstate: *mut pg_prng_state); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn sampler_random_fract(randstate: *mut pg_prng_state) -> f64; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct BlockSamplerData { + pub N: BlockNumber, + pub n: ::std::os::raw::c_int, + pub t: BlockNumber, + pub m: ::std::os::raw::c_int, + pub randstate: pg_prng_state, +} +pub type BlockSampler = *mut BlockSamplerData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BlockSampler_Init( + bs: BlockSampler, + nblocks: BlockNumber, + samplesize: ::std::os::raw::c_int, + randseed: uint32, + ) -> BlockNumber; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BlockSampler_HasMore(bs: BlockSampler) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn BlockSampler_Next(bs: BlockSampler) -> BlockNumber; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ReservoirStateData { + pub W: f64, + pub randstate: pg_prng_state, +} +pub type ReservoirState = *mut ReservoirStateData; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reservoir_init_selection_state(rs: ReservoirState, n: ::std::os::raw::c_int); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn reservoir_get_next_S(rs: ReservoirState, t: f64, n: ::std::os::raw::c_int) -> f64; +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct EstimationInfo { + pub flags: uint32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct VariableStatData { + pub var: *mut Node, + pub rel: *mut RelOptInfo, + pub statsTuple: HeapTuple, + pub freefunc: ::std::option::Option, + pub vartype: Oid, + pub atttype: Oid, + pub atttypmod: int32, + pub isunique: bool, + pub acl_ok: bool, +} +impl Default for VariableStatData { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct GenericCosts { + pub indexStartupCost: Cost, + pub indexTotalCost: Cost, + pub indexSelectivity: Selectivity, + pub indexCorrelation: f64, + pub numIndexPages: f64, + pub numIndexTuples: f64, + pub spc_random_page_cost: f64, + pub num_sa_scans: f64, +} +pub type get_relation_stats_hook_type = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + rte: *mut RangeTblEntry, + attnum: AttrNumber, + vardata: *mut VariableStatData, + ) -> bool, +>; +extern "C" { + pub static mut get_relation_stats_hook: get_relation_stats_hook_type; +} +pub type get_index_stats_hook_type = ::std::option::Option< + unsafe extern "C" fn( + root: *mut PlannerInfo, + indexOid: Oid, + indexattnum: AttrNumber, + vardata: *mut VariableStatData, + ) -> bool, +>; +extern "C" { + pub static mut get_index_stats_hook: get_index_stats_hook_type; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn examine_variable( + root: *mut PlannerInfo, + node: *mut Node, + varRelid: ::std::os::raw::c_int, + vardata: *mut VariableStatData, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn statistic_proc_security_check(vardata: *mut VariableStatData, func_oid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_restriction_variable( + root: *mut PlannerInfo, + args: *mut List, + varRelid: ::std::os::raw::c_int, + vardata: *mut VariableStatData, + other: *mut *mut Node, + varonleft: *mut bool, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_join_variables( + root: *mut PlannerInfo, + args: *mut List, + sjinfo: *mut SpecialJoinInfo, + vardata1: *mut VariableStatData, + vardata2: *mut VariableStatData, + join_is_reversed: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_variable_numdistinct(vardata: *mut VariableStatData, isdefault: *mut bool) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mcv_selectivity( + vardata: *mut VariableStatData, + opproc: *mut FmgrInfo, + collation: Oid, + constval: Datum, + varonleft: bool, + sumcommonp: *mut f64, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn histogram_selectivity( + vardata: *mut VariableStatData, + opproc: *mut FmgrInfo, + collation: Oid, + constval: Datum, + varonleft: bool, + min_hist_size: ::std::os::raw::c_int, + n_skip: ::std::os::raw::c_int, + hist_size: *mut ::std::os::raw::c_int, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn generic_restriction_selectivity( + root: *mut PlannerInfo, + oproid: Oid, + collation: Oid, + args: *mut List, + varRelid: ::std::os::raw::c_int, + default_selectivity: f64, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ineq_histogram_selectivity( + root: *mut PlannerInfo, + vardata: *mut VariableStatData, + opoid: Oid, + opproc: *mut FmgrInfo, + isgt: bool, + iseq: bool, + collation: Oid, + constval: Datum, + consttype: Oid, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn var_eq_const( + vardata: *mut VariableStatData, + oproid: Oid, + collation: Oid, + constval: Datum, + constisnull: bool, + varonleft: bool, + negate: bool, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn var_eq_non_const( + vardata: *mut VariableStatData, + oproid: Oid, + collation: Oid, + other: *mut Node, + varonleft: bool, + negate: bool, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn boolvarsel( + root: *mut PlannerInfo, + arg: *mut Node, + varRelid: ::std::os::raw::c_int, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn booltestsel( + root: *mut PlannerInfo, + booltesttype: BoolTestType, + arg: *mut Node, + varRelid: ::std::os::raw::c_int, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn nulltestsel( + root: *mut PlannerInfo, + nulltesttype: NullTestType, + arg: *mut Node, + varRelid: ::std::os::raw::c_int, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalararraysel( + root: *mut PlannerInfo, + clause: *mut ScalarArrayOpExpr, + is_join_clause: bool, + varRelid: ::std::os::raw::c_int, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn estimate_array_length(arrayexpr: *mut Node) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn rowcomparesel( + root: *mut PlannerInfo, + clause: *mut RowCompareExpr, + varRelid: ::std::os::raw::c_int, + jointype: JoinType, + sjinfo: *mut SpecialJoinInfo, + ) -> Selectivity; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn mergejoinscansel( + root: *mut PlannerInfo, + clause: *mut Node, + opfamily: Oid, + strategy: ::std::os::raw::c_int, + nulls_first: bool, + leftstart: *mut Selectivity, + leftend: *mut Selectivity, + rightstart: *mut Selectivity, + rightend: *mut Selectivity, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn estimate_num_groups( + root: *mut PlannerInfo, + groupExprs: *mut List, + input_rows: f64, + pgset: *mut *mut List, + estinfo: *mut EstimationInfo, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn estimate_hash_bucket_stats( + root: *mut PlannerInfo, + hashkey: *mut Node, + nbuckets: f64, + mcv_freq: *mut Selectivity, + bucketsize_frac: *mut Selectivity, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn estimate_hashagg_tablesize( + root: *mut PlannerInfo, + path: *mut Path, + agg_costs: *const AggClauseCosts, + dNumGroups: f64, + ) -> f64; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn get_quals_from_indexclauses(indexclauses: *mut List) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn index_other_operands_eval_cost(root: *mut PlannerInfo, indexquals: *mut List) -> Cost; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn add_predicate_to_index_quals( + index: *mut IndexOptInfo, + indexQuals: *mut List, + ) -> *mut List; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn genericcostestimate( + root: *mut PlannerInfo, + path: *mut IndexPath, + loop_count: f64, + costs: *mut GenericCosts, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn scalararraysel_containment( + root: *mut PlannerInfo, + leftop: *mut Node, + rightop: *mut Node, + elemtype: Oid, + isEquality: bool, + useOr: bool, + varRelid: ::std::os::raw::c_int, + ) -> Selectivity; +} +pub const SysCacheIdentifier_AGGFNOID: SysCacheIdentifier = 0; +pub const SysCacheIdentifier_AMNAME: SysCacheIdentifier = 1; +pub const SysCacheIdentifier_AMOID: SysCacheIdentifier = 2; +pub const SysCacheIdentifier_AMOPOPID: SysCacheIdentifier = 3; +pub const SysCacheIdentifier_AMOPSTRATEGY: SysCacheIdentifier = 4; +pub const SysCacheIdentifier_AMPROCNUM: SysCacheIdentifier = 5; +pub const SysCacheIdentifier_ATTNAME: SysCacheIdentifier = 6; +pub const SysCacheIdentifier_ATTNUM: SysCacheIdentifier = 7; +pub const SysCacheIdentifier_AUTHMEMMEMROLE: SysCacheIdentifier = 8; +pub const SysCacheIdentifier_AUTHMEMROLEMEM: SysCacheIdentifier = 9; +pub const SysCacheIdentifier_AUTHNAME: SysCacheIdentifier = 10; +pub const SysCacheIdentifier_AUTHOID: SysCacheIdentifier = 11; +pub const SysCacheIdentifier_CASTSOURCETARGET: SysCacheIdentifier = 12; +pub const SysCacheIdentifier_CLAAMNAMENSP: SysCacheIdentifier = 13; +pub const SysCacheIdentifier_CLAOID: SysCacheIdentifier = 14; +pub const SysCacheIdentifier_COLLNAMEENCNSP: SysCacheIdentifier = 15; +pub const SysCacheIdentifier_COLLOID: SysCacheIdentifier = 16; +pub const SysCacheIdentifier_CONDEFAULT: SysCacheIdentifier = 17; +pub const SysCacheIdentifier_CONNAMENSP: SysCacheIdentifier = 18; +pub const SysCacheIdentifier_CONSTROID: SysCacheIdentifier = 19; +pub const SysCacheIdentifier_CONVOID: SysCacheIdentifier = 20; +pub const SysCacheIdentifier_DATABASEOID: SysCacheIdentifier = 21; +pub const SysCacheIdentifier_DEFACLROLENSPOBJ: SysCacheIdentifier = 22; +pub const SysCacheIdentifier_ENUMOID: SysCacheIdentifier = 23; +pub const SysCacheIdentifier_ENUMTYPOIDNAME: SysCacheIdentifier = 24; +pub const SysCacheIdentifier_EVENTTRIGGERNAME: SysCacheIdentifier = 25; +pub const SysCacheIdentifier_EVENTTRIGGEROID: SysCacheIdentifier = 26; +pub const SysCacheIdentifier_FOREIGNDATAWRAPPERNAME: SysCacheIdentifier = 27; +pub const SysCacheIdentifier_FOREIGNDATAWRAPPEROID: SysCacheIdentifier = 28; +pub const SysCacheIdentifier_FOREIGNSERVERNAME: SysCacheIdentifier = 29; +pub const SysCacheIdentifier_FOREIGNSERVEROID: SysCacheIdentifier = 30; +pub const SysCacheIdentifier_FOREIGNTABLEREL: SysCacheIdentifier = 31; +pub const SysCacheIdentifier_INDEXRELID: SysCacheIdentifier = 32; +pub const SysCacheIdentifier_LANGNAME: SysCacheIdentifier = 33; +pub const SysCacheIdentifier_LANGOID: SysCacheIdentifier = 34; +pub const SysCacheIdentifier_NAMESPACENAME: SysCacheIdentifier = 35; +pub const SysCacheIdentifier_NAMESPACEOID: SysCacheIdentifier = 36; +pub const SysCacheIdentifier_OPERNAMENSP: SysCacheIdentifier = 37; +pub const SysCacheIdentifier_OPEROID: SysCacheIdentifier = 38; +pub const SysCacheIdentifier_OPFAMILYAMNAMENSP: SysCacheIdentifier = 39; +pub const SysCacheIdentifier_OPFAMILYOID: SysCacheIdentifier = 40; +pub const SysCacheIdentifier_PARAMETERACLNAME: SysCacheIdentifier = 41; +pub const SysCacheIdentifier_PARAMETERACLOID: SysCacheIdentifier = 42; +pub const SysCacheIdentifier_PARTRELID: SysCacheIdentifier = 43; +pub const SysCacheIdentifier_PROCNAMEARGSNSP: SysCacheIdentifier = 44; +pub const SysCacheIdentifier_PROCOID: SysCacheIdentifier = 45; +pub const SysCacheIdentifier_PUBLICATIONNAME: SysCacheIdentifier = 46; +pub const SysCacheIdentifier_PUBLICATIONNAMESPACE: SysCacheIdentifier = 47; +pub const SysCacheIdentifier_PUBLICATIONNAMESPACEMAP: SysCacheIdentifier = 48; +pub const SysCacheIdentifier_PUBLICATIONOID: SysCacheIdentifier = 49; +pub const SysCacheIdentifier_PUBLICATIONREL: SysCacheIdentifier = 50; +pub const SysCacheIdentifier_PUBLICATIONRELMAP: SysCacheIdentifier = 51; +pub const SysCacheIdentifier_RANGEMULTIRANGE: SysCacheIdentifier = 52; +pub const SysCacheIdentifier_RANGETYPE: SysCacheIdentifier = 53; +pub const SysCacheIdentifier_RELNAMENSP: SysCacheIdentifier = 54; +pub const SysCacheIdentifier_RELOID: SysCacheIdentifier = 55; +pub const SysCacheIdentifier_REPLORIGIDENT: SysCacheIdentifier = 56; +pub const SysCacheIdentifier_REPLORIGNAME: SysCacheIdentifier = 57; +pub const SysCacheIdentifier_RULERELNAME: SysCacheIdentifier = 58; +pub const SysCacheIdentifier_SEQRELID: SysCacheIdentifier = 59; +pub const SysCacheIdentifier_STATEXTDATASTXOID: SysCacheIdentifier = 60; +pub const SysCacheIdentifier_STATEXTNAMENSP: SysCacheIdentifier = 61; +pub const SysCacheIdentifier_STATEXTOID: SysCacheIdentifier = 62; +pub const SysCacheIdentifier_STATRELATTINH: SysCacheIdentifier = 63; +pub const SysCacheIdentifier_SUBSCRIPTIONNAME: SysCacheIdentifier = 64; +pub const SysCacheIdentifier_SUBSCRIPTIONOID: SysCacheIdentifier = 65; +pub const SysCacheIdentifier_SUBSCRIPTIONRELMAP: SysCacheIdentifier = 66; +pub const SysCacheIdentifier_TABLESPACEOID: SysCacheIdentifier = 67; +pub const SysCacheIdentifier_TRFOID: SysCacheIdentifier = 68; +pub const SysCacheIdentifier_TRFTYPELANG: SysCacheIdentifier = 69; +pub const SysCacheIdentifier_TSCONFIGMAP: SysCacheIdentifier = 70; +pub const SysCacheIdentifier_TSCONFIGNAMENSP: SysCacheIdentifier = 71; +pub const SysCacheIdentifier_TSCONFIGOID: SysCacheIdentifier = 72; +pub const SysCacheIdentifier_TSDICTNAMENSP: SysCacheIdentifier = 73; +pub const SysCacheIdentifier_TSDICTOID: SysCacheIdentifier = 74; +pub const SysCacheIdentifier_TSPARSERNAMENSP: SysCacheIdentifier = 75; +pub const SysCacheIdentifier_TSPARSEROID: SysCacheIdentifier = 76; +pub const SysCacheIdentifier_TSTEMPLATENAMENSP: SysCacheIdentifier = 77; +pub const SysCacheIdentifier_TSTEMPLATEOID: SysCacheIdentifier = 78; +pub const SysCacheIdentifier_TYPENAMENSP: SysCacheIdentifier = 79; +pub const SysCacheIdentifier_TYPEOID: SysCacheIdentifier = 80; +pub const SysCacheIdentifier_USERMAPPINGOID: SysCacheIdentifier = 81; +pub const SysCacheIdentifier_USERMAPPINGUSERSERVER: SysCacheIdentifier = 82; +pub type SysCacheIdentifier = ::std::os::raw::c_uint; +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitCatalogCache(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn InitCatalogCachePhase2(); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCache( + cacheId: ::std::os::raw::c_int, + key1: Datum, + key2: Datum, + key3: Datum, + key4: Datum, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCache1(cacheId: ::std::os::raw::c_int, key1: Datum) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCache2(cacheId: ::std::os::raw::c_int, key1: Datum, key2: Datum) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCache3( + cacheId: ::std::os::raw::c_int, + key1: Datum, + key2: Datum, + key3: Datum, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCache4( + cacheId: ::std::os::raw::c_int, + key1: Datum, + key2: Datum, + key3: Datum, + key4: Datum, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn ReleaseSysCache(tuple: HeapTuple); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCacheCopy( + cacheId: ::std::os::raw::c_int, + key1: Datum, + key2: Datum, + key3: Datum, + key4: Datum, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCacheExists( + cacheId: ::std::os::raw::c_int, + key1: Datum, + key2: Datum, + key3: Datum, + key4: Datum, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSysCacheOid( + cacheId: ::std::os::raw::c_int, + oidcol: AttrNumber, + key1: Datum, + key2: Datum, + key3: Datum, + key4: Datum, + ) -> Oid; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCacheAttName(relid: Oid, attname: *const ::std::os::raw::c_char) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCacheCopyAttName( + relid: Oid, + attname: *const ::std::os::raw::c_char, + ) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCacheExistsAttName(relid: Oid, attname: *const ::std::os::raw::c_char) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCacheAttNum(relid: Oid, attnum: int16) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCacheCopyAttNum(relid: Oid, attnum: int16) -> HeapTuple; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SysCacheGetAttr( + cacheId: ::std::os::raw::c_int, + tup: HeapTuple, + attributeNumber: AttrNumber, + isNull: *mut bool, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SysCacheGetAttrNotNull( + cacheId: ::std::os::raw::c_int, + tup: HeapTuple, + attributeNumber: AttrNumber, + ) -> Datum; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn GetSysCacheHashValue( + cacheId: ::std::os::raw::c_int, + key1: Datum, + key2: Datum, + key3: Datum, + key4: Datum, + ) -> uint32; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct catclist { + _unused: [u8; 0], +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SearchSysCacheList( + cacheId: ::std::os::raw::c_int, + nkeys: ::std::os::raw::c_int, + key1: Datum, + key2: Datum, + key3: Datum, + ) -> *mut catclist; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn SysCacheInvalidate(cacheId: ::std::os::raw::c_int, hashValue: uint32); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationInvalidatesSnapshotsOnly(relid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationHasSysCache(relid: Oid) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn RelationSupportsSysCache(relid: Oid) -> bool; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeType { + pub vl_len_: int32, + pub rangetypid: Oid, +} +impl Default for RangeType { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RangeBound { + pub val: Datum, + pub infinite: bool, + pub inclusive: bool, + pub lower: bool, +} +impl Default for RangeBound { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_contains_elem_internal( + typcache: *mut TypeCacheEntry, + r: *const RangeType, + val: Datum, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_eq_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_ne_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_contains_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_contained_by_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_before_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_after_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_adjacent_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_overlaps_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_overleft_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_overright_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_union_internal( + typcache: *mut TypeCacheEntry, + r1: *mut RangeType, + r2: *mut RangeType, + strict: bool, + ) -> *mut RangeType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_minus_internal( + typcache: *mut TypeCacheEntry, + r1: *mut RangeType, + r2: *mut RangeType, + ) -> *mut RangeType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_intersect_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + ) -> *mut RangeType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_get_typcache(fcinfo: FunctionCallInfo, rngtypid: Oid) -> *mut TypeCacheEntry; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_serialize( + typcache: *mut TypeCacheEntry, + lower: *mut RangeBound, + upper: *mut RangeBound, + empty: bool, + escontext: *mut Node, + ) -> *mut RangeType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_deserialize( + typcache: *mut TypeCacheEntry, + range: *const RangeType, + lower: *mut RangeBound, + upper: *mut RangeBound, + empty: *mut bool, + ); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_get_flags(range: *const RangeType) -> ::std::os::raw::c_char; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_set_contain_empty(range: *mut RangeType); +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_range( + typcache: *mut TypeCacheEntry, + lower: *mut RangeBound, + upper: *mut RangeBound, + empty: bool, + escontext: *mut Node, + ) -> *mut RangeType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_cmp_bounds( + typcache: *mut TypeCacheEntry, + b1: *const RangeBound, + b2: *const RangeBound, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_cmp_bound_values( + typcache: *mut TypeCacheEntry, + b1: *const RangeBound, + b2: *const RangeBound, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_compare( + key1: *const ::std::os::raw::c_void, + key2: *const ::std::os::raw::c_void, + arg: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn bounds_adjacent( + typcache: *mut TypeCacheEntry, + boundA: RangeBound, + boundB: RangeBound, + ) -> bool; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn make_empty_range(typcache: *mut TypeCacheEntry) -> *mut RangeType; +} +#[pgrx_macros::pg_guard] +extern "C" { + pub fn range_split_internal( + typcache: *mut TypeCacheEntry, + r1: *const RangeType, + r2: *const RangeType, + output1: *mut *mut RangeType, + output2: *mut *mut RangeType, + ) -> bool; +} +pub type __builtin_va_list = [__va_list_tag; 1usize]; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __va_list_tag { + pub gp_offset: ::std::os::raw::c_uint, + pub fp_offset: ::std::os::raw::c_uint, + pub overflow_arg_area: *mut ::std::os::raw::c_void, + pub reg_save_area: *mut ::std::os::raw::c_void, +} +impl Default for __va_list_tag { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct __locale_data { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct AttrMissing { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct JitContext { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct JitInstrumentation { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct SharedJitInstrumentation { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct PartitionTupleRouting { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct WaitEventSet { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct binaryheap { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TsmRoutine { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TableFuncRoutine { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct memoize_hash { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct HashAggSpill { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct WindowObjectData { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ParallelExecutorInfo { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct TupleQueueReader { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct _MdfdVec { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct ResourceOwnerData { + pub _address: u8, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone)] +pub struct SnapBuild { + pub _address: u8, +} +impl pg_sys::seal::Sealed for A_ArrayExpr {} +impl pg_sys::PgNode for A_ArrayExpr {} +impl std::fmt::Display for A_ArrayExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for A_Const {} +impl pg_sys::PgNode for A_Const {} +impl std::fmt::Display for A_Const { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for A_Expr {} +impl pg_sys::PgNode for A_Expr {} +impl std::fmt::Display for A_Expr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for A_Indices {} +impl pg_sys::PgNode for A_Indices {} +impl std::fmt::Display for A_Indices { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for A_Indirection {} +impl pg_sys::PgNode for A_Indirection {} +impl std::fmt::Display for A_Indirection { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for A_Star {} +impl pg_sys::PgNode for A_Star {} +impl std::fmt::Display for A_Star { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AccessPriv {} +impl pg_sys::PgNode for AccessPriv {} +impl std::fmt::Display for AccessPriv { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Agg {} +impl pg_sys::PgNode for Agg {} +impl std::fmt::Display for Agg { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AggInfo {} +impl pg_sys::PgNode for AggInfo {} +impl std::fmt::Display for AggInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AggPath {} +impl pg_sys::PgNode for AggPath {} +impl std::fmt::Display for AggPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AggState {} +impl pg_sys::PgNode for AggState {} +impl std::fmt::Display for AggState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AggTransInfo {} +impl pg_sys::PgNode for AggTransInfo {} +impl std::fmt::Display for AggTransInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Aggref {} +impl pg_sys::PgNode for Aggref {} +impl std::fmt::Display for Aggref { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Alias {} +impl pg_sys::PgNode for Alias {} +impl std::fmt::Display for Alias { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterCollationStmt {} +impl pg_sys::PgNode for AlterCollationStmt {} +impl std::fmt::Display for AlterCollationStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterDatabaseRefreshCollStmt {} +impl pg_sys::PgNode for AlterDatabaseRefreshCollStmt {} +impl std::fmt::Display for AlterDatabaseRefreshCollStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterDatabaseSetStmt {} +impl pg_sys::PgNode for AlterDatabaseSetStmt {} +impl std::fmt::Display for AlterDatabaseSetStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterDatabaseStmt {} +impl pg_sys::PgNode for AlterDatabaseStmt {} +impl std::fmt::Display for AlterDatabaseStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterDefaultPrivilegesStmt {} +impl pg_sys::PgNode for AlterDefaultPrivilegesStmt {} +impl std::fmt::Display for AlterDefaultPrivilegesStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterDomainStmt {} +impl pg_sys::PgNode for AlterDomainStmt {} +impl std::fmt::Display for AlterDomainStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterEnumStmt {} +impl pg_sys::PgNode for AlterEnumStmt {} +impl std::fmt::Display for AlterEnumStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterEventTrigStmt {} +impl pg_sys::PgNode for AlterEventTrigStmt {} +impl std::fmt::Display for AlterEventTrigStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterExtensionContentsStmt {} +impl pg_sys::PgNode for AlterExtensionContentsStmt {} +impl std::fmt::Display for AlterExtensionContentsStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterExtensionStmt {} +impl pg_sys::PgNode for AlterExtensionStmt {} +impl std::fmt::Display for AlterExtensionStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterFdwStmt {} +impl pg_sys::PgNode for AlterFdwStmt {} +impl std::fmt::Display for AlterFdwStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterForeignServerStmt {} +impl pg_sys::PgNode for AlterForeignServerStmt {} +impl std::fmt::Display for AlterForeignServerStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterFunctionStmt {} +impl pg_sys::PgNode for AlterFunctionStmt {} +impl std::fmt::Display for AlterFunctionStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterObjectDependsStmt {} +impl pg_sys::PgNode for AlterObjectDependsStmt {} +impl std::fmt::Display for AlterObjectDependsStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterObjectSchemaStmt {} +impl pg_sys::PgNode for AlterObjectSchemaStmt {} +impl std::fmt::Display for AlterObjectSchemaStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterOpFamilyStmt {} +impl pg_sys::PgNode for AlterOpFamilyStmt {} +impl std::fmt::Display for AlterOpFamilyStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterOperatorStmt {} +impl pg_sys::PgNode for AlterOperatorStmt {} +impl std::fmt::Display for AlterOperatorStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterOwnerStmt {} +impl pg_sys::PgNode for AlterOwnerStmt {} +impl std::fmt::Display for AlterOwnerStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterPolicyStmt {} +impl pg_sys::PgNode for AlterPolicyStmt {} +impl std::fmt::Display for AlterPolicyStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterPublicationStmt {} +impl pg_sys::PgNode for AlterPublicationStmt {} +impl std::fmt::Display for AlterPublicationStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterRoleSetStmt {} +impl pg_sys::PgNode for AlterRoleSetStmt {} +impl std::fmt::Display for AlterRoleSetStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterRoleStmt {} +impl pg_sys::PgNode for AlterRoleStmt {} +impl std::fmt::Display for AlterRoleStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterSeqStmt {} +impl pg_sys::PgNode for AlterSeqStmt {} +impl std::fmt::Display for AlterSeqStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterStatsStmt {} +impl pg_sys::PgNode for AlterStatsStmt {} +impl std::fmt::Display for AlterStatsStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterSubscriptionStmt {} +impl pg_sys::PgNode for AlterSubscriptionStmt {} +impl std::fmt::Display for AlterSubscriptionStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterSystemStmt {} +impl pg_sys::PgNode for AlterSystemStmt {} +impl std::fmt::Display for AlterSystemStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterTSConfigurationStmt {} +impl pg_sys::PgNode for AlterTSConfigurationStmt {} +impl std::fmt::Display for AlterTSConfigurationStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterTSDictionaryStmt {} +impl pg_sys::PgNode for AlterTSDictionaryStmt {} +impl std::fmt::Display for AlterTSDictionaryStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterTableCmd {} +impl pg_sys::PgNode for AlterTableCmd {} +impl std::fmt::Display for AlterTableCmd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterTableMoveAllStmt {} +impl pg_sys::PgNode for AlterTableMoveAllStmt {} +impl std::fmt::Display for AlterTableMoveAllStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterTableSpaceOptionsStmt {} +impl pg_sys::PgNode for AlterTableSpaceOptionsStmt {} +impl std::fmt::Display for AlterTableSpaceOptionsStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterTableStmt {} +impl pg_sys::PgNode for AlterTableStmt {} +impl std::fmt::Display for AlterTableStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterTypeStmt {} +impl pg_sys::PgNode for AlterTypeStmt {} +impl std::fmt::Display for AlterTypeStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlterUserMappingStmt {} +impl pg_sys::PgNode for AlterUserMappingStmt {} +impl std::fmt::Display for AlterUserMappingStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AlternativeSubPlan {} +impl pg_sys::PgNode for AlternativeSubPlan {} +impl std::fmt::Display for AlternativeSubPlan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Append {} +impl pg_sys::PgNode for Append {} +impl std::fmt::Display for Append { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AppendPath {} +impl pg_sys::PgNode for AppendPath {} +impl std::fmt::Display for AppendPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AppendRelInfo {} +impl pg_sys::PgNode for AppendRelInfo {} +impl std::fmt::Display for AppendRelInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for AppendState {} +impl pg_sys::PgNode for AppendState {} +impl std::fmt::Display for AppendState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ArrayCoerceExpr {} +impl pg_sys::PgNode for ArrayCoerceExpr {} +impl std::fmt::Display for ArrayCoerceExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ArrayExpr {} +impl pg_sys::PgNode for ArrayExpr {} +impl std::fmt::Display for ArrayExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BaseBackupCmd {} +impl pg_sys::PgNode for BaseBackupCmd {} +impl std::fmt::Display for BaseBackupCmd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitString {} +impl pg_sys::PgNode for BitString {} +impl std::fmt::Display for BitString { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapAnd {} +impl pg_sys::PgNode for BitmapAnd {} +impl std::fmt::Display for BitmapAnd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapAndPath {} +impl pg_sys::PgNode for BitmapAndPath {} +impl std::fmt::Display for BitmapAndPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapAndState {} +impl pg_sys::PgNode for BitmapAndState {} +impl std::fmt::Display for BitmapAndState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapHeapPath {} +impl pg_sys::PgNode for BitmapHeapPath {} +impl std::fmt::Display for BitmapHeapPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapHeapScan {} +impl pg_sys::PgNode for BitmapHeapScan {} +impl std::fmt::Display for BitmapHeapScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapHeapScanState {} +impl pg_sys::PgNode for BitmapHeapScanState {} +impl std::fmt::Display for BitmapHeapScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapIndexScan {} +impl pg_sys::PgNode for BitmapIndexScan {} +impl std::fmt::Display for BitmapIndexScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapIndexScanState {} +impl pg_sys::PgNode for BitmapIndexScanState {} +impl std::fmt::Display for BitmapIndexScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapOr {} +impl pg_sys::PgNode for BitmapOr {} +impl std::fmt::Display for BitmapOr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapOrPath {} +impl pg_sys::PgNode for BitmapOrPath {} +impl std::fmt::Display for BitmapOrPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BitmapOrState {} +impl pg_sys::PgNode for BitmapOrState {} +impl std::fmt::Display for BitmapOrState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Bitmapset {} +impl pg_sys::PgNode for Bitmapset {} +impl std::fmt::Display for Bitmapset { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BoolExpr {} +impl pg_sys::PgNode for BoolExpr {} +impl std::fmt::Display for BoolExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Boolean {} +impl pg_sys::PgNode for Boolean {} +impl std::fmt::Display for Boolean { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BooleanTest {} +impl pg_sys::PgNode for BooleanTest {} +impl std::fmt::Display for BooleanTest { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for BufferHeapTupleTableSlot {} +impl pg_sys::PgNode for BufferHeapTupleTableSlot {} +impl std::fmt::Display for BufferHeapTupleTableSlot { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CTECycleClause {} +impl pg_sys::PgNode for CTECycleClause {} +impl std::fmt::Display for CTECycleClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CTESearchClause {} +impl pg_sys::PgNode for CTESearchClause {} +impl std::fmt::Display for CTESearchClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CallContext {} +impl pg_sys::PgNode for CallContext {} +impl std::fmt::Display for CallContext { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CallStmt {} +impl pg_sys::PgNode for CallStmt {} +impl std::fmt::Display for CallStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CaseExpr {} +impl pg_sys::PgNode for CaseExpr {} +impl std::fmt::Display for CaseExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CaseTestExpr {} +impl pg_sys::PgNode for CaseTestExpr {} +impl std::fmt::Display for CaseTestExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CaseWhen {} +impl pg_sys::PgNode for CaseWhen {} +impl std::fmt::Display for CaseWhen { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CheckPointStmt {} +impl pg_sys::PgNode for CheckPointStmt {} +impl std::fmt::Display for CheckPointStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ClosePortalStmt {} +impl pg_sys::PgNode for ClosePortalStmt {} +impl std::fmt::Display for ClosePortalStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ClusterStmt {} +impl pg_sys::PgNode for ClusterStmt {} +impl std::fmt::Display for ClusterStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CoalesceExpr {} +impl pg_sys::PgNode for CoalesceExpr {} +impl std::fmt::Display for CoalesceExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CoerceToDomain {} +impl pg_sys::PgNode for CoerceToDomain {} +impl std::fmt::Display for CoerceToDomain { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CoerceToDomainValue {} +impl pg_sys::PgNode for CoerceToDomainValue {} +impl std::fmt::Display for CoerceToDomainValue { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CoerceViaIO {} +impl pg_sys::PgNode for CoerceViaIO {} +impl std::fmt::Display for CoerceViaIO { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CollateClause {} +impl pg_sys::PgNode for CollateClause {} +impl std::fmt::Display for CollateClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CollateExpr {} +impl pg_sys::PgNode for CollateExpr {} +impl std::fmt::Display for CollateExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ColumnDef {} +impl pg_sys::PgNode for ColumnDef {} +impl std::fmt::Display for ColumnDef { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ColumnRef {} +impl pg_sys::PgNode for ColumnRef {} +impl std::fmt::Display for ColumnRef { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CommentStmt {} +impl pg_sys::PgNode for CommentStmt {} +impl std::fmt::Display for CommentStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CommonTableExpr {} +impl pg_sys::PgNode for CommonTableExpr {} +impl std::fmt::Display for CommonTableExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CompositeTypeStmt {} +impl pg_sys::PgNode for CompositeTypeStmt {} +impl std::fmt::Display for CompositeTypeStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Const {} +impl pg_sys::PgNode for Const {} +impl std::fmt::Display for Const { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Constraint {} +impl pg_sys::PgNode for Constraint {} +impl std::fmt::Display for Constraint { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ConstraintsSetStmt {} +impl pg_sys::PgNode for ConstraintsSetStmt {} +impl std::fmt::Display for ConstraintsSetStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ConvertRowtypeExpr {} +impl pg_sys::PgNode for ConvertRowtypeExpr {} +impl std::fmt::Display for ConvertRowtypeExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CopyStmt {} +impl pg_sys::PgNode for CopyStmt {} +impl std::fmt::Display for CopyStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateAmStmt {} +impl pg_sys::PgNode for CreateAmStmt {} +impl std::fmt::Display for CreateAmStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateCastStmt {} +impl pg_sys::PgNode for CreateCastStmt {} +impl std::fmt::Display for CreateCastStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateConversionStmt {} +impl pg_sys::PgNode for CreateConversionStmt {} +impl std::fmt::Display for CreateConversionStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateDomainStmt {} +impl pg_sys::PgNode for CreateDomainStmt {} +impl std::fmt::Display for CreateDomainStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateEnumStmt {} +impl pg_sys::PgNode for CreateEnumStmt {} +impl std::fmt::Display for CreateEnumStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateEventTrigStmt {} +impl pg_sys::PgNode for CreateEventTrigStmt {} +impl std::fmt::Display for CreateEventTrigStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateExtensionStmt {} +impl pg_sys::PgNode for CreateExtensionStmt {} +impl std::fmt::Display for CreateExtensionStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateFdwStmt {} +impl pg_sys::PgNode for CreateFdwStmt {} +impl std::fmt::Display for CreateFdwStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateForeignServerStmt {} +impl pg_sys::PgNode for CreateForeignServerStmt {} +impl std::fmt::Display for CreateForeignServerStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateForeignTableStmt {} +impl pg_sys::PgNode for CreateForeignTableStmt {} +impl std::fmt::Display for CreateForeignTableStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateFunctionStmt {} +impl pg_sys::PgNode for CreateFunctionStmt {} +impl std::fmt::Display for CreateFunctionStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateOpClassItem {} +impl pg_sys::PgNode for CreateOpClassItem {} +impl std::fmt::Display for CreateOpClassItem { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateOpClassStmt {} +impl pg_sys::PgNode for CreateOpClassStmt {} +impl std::fmt::Display for CreateOpClassStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateOpFamilyStmt {} +impl pg_sys::PgNode for CreateOpFamilyStmt {} +impl std::fmt::Display for CreateOpFamilyStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreatePLangStmt {} +impl pg_sys::PgNode for CreatePLangStmt {} +impl std::fmt::Display for CreatePLangStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreatePolicyStmt {} +impl pg_sys::PgNode for CreatePolicyStmt {} +impl std::fmt::Display for CreatePolicyStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreatePublicationStmt {} +impl pg_sys::PgNode for CreatePublicationStmt {} +impl std::fmt::Display for CreatePublicationStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateRangeStmt {} +impl pg_sys::PgNode for CreateRangeStmt {} +impl std::fmt::Display for CreateRangeStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateReplicationSlotCmd {} +impl pg_sys::PgNode for CreateReplicationSlotCmd {} +impl std::fmt::Display for CreateReplicationSlotCmd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateRoleStmt {} +impl pg_sys::PgNode for CreateRoleStmt {} +impl std::fmt::Display for CreateRoleStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateSchemaStmt {} +impl pg_sys::PgNode for CreateSchemaStmt {} +impl std::fmt::Display for CreateSchemaStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateSeqStmt {} +impl pg_sys::PgNode for CreateSeqStmt {} +impl std::fmt::Display for CreateSeqStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateStatsStmt {} +impl pg_sys::PgNode for CreateStatsStmt {} +impl std::fmt::Display for CreateStatsStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateStmt {} +impl pg_sys::PgNode for CreateStmt {} +impl std::fmt::Display for CreateStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateSubscriptionStmt {} +impl pg_sys::PgNode for CreateSubscriptionStmt {} +impl std::fmt::Display for CreateSubscriptionStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateTableAsStmt {} +impl pg_sys::PgNode for CreateTableAsStmt {} +impl std::fmt::Display for CreateTableAsStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateTableSpaceStmt {} +impl pg_sys::PgNode for CreateTableSpaceStmt {} +impl std::fmt::Display for CreateTableSpaceStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateTransformStmt {} +impl pg_sys::PgNode for CreateTransformStmt {} +impl std::fmt::Display for CreateTransformStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateTrigStmt {} +impl pg_sys::PgNode for CreateTrigStmt {} +impl std::fmt::Display for CreateTrigStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreateUserMappingStmt {} +impl pg_sys::PgNode for CreateUserMappingStmt {} +impl std::fmt::Display for CreateUserMappingStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CreatedbStmt {} +impl pg_sys::PgNode for CreatedbStmt {} +impl std::fmt::Display for CreatedbStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CteScan {} +impl pg_sys::PgNode for CteScan {} +impl std::fmt::Display for CteScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CteScanState {} +impl pg_sys::PgNode for CteScanState {} +impl std::fmt::Display for CteScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CurrentOfExpr {} +impl pg_sys::PgNode for CurrentOfExpr {} +impl std::fmt::Display for CurrentOfExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CustomPath {} +impl pg_sys::PgNode for CustomPath {} +impl std::fmt::Display for CustomPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CustomScan {} +impl pg_sys::PgNode for CustomScan {} +impl std::fmt::Display for CustomScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for CustomScanState {} +impl pg_sys::PgNode for CustomScanState {} +impl std::fmt::Display for CustomScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DeallocateStmt {} +impl pg_sys::PgNode for DeallocateStmt {} +impl std::fmt::Display for DeallocateStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DeclareCursorStmt {} +impl pg_sys::PgNode for DeclareCursorStmt {} +impl std::fmt::Display for DeclareCursorStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DefElem {} +impl pg_sys::PgNode for DefElem {} +impl std::fmt::Display for DefElem { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DefineStmt {} +impl pg_sys::PgNode for DefineStmt {} +impl std::fmt::Display for DefineStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DeleteStmt {} +impl pg_sys::PgNode for DeleteStmt {} +impl std::fmt::Display for DeleteStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DiscardStmt {} +impl pg_sys::PgNode for DiscardStmt {} +impl std::fmt::Display for DiscardStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DoStmt {} +impl pg_sys::PgNode for DoStmt {} +impl std::fmt::Display for DoStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DomainConstraintState {} +impl pg_sys::PgNode for DomainConstraintState {} +impl std::fmt::Display for DomainConstraintState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DropOwnedStmt {} +impl pg_sys::PgNode for DropOwnedStmt {} +impl std::fmt::Display for DropOwnedStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DropReplicationSlotCmd {} +impl pg_sys::PgNode for DropReplicationSlotCmd {} +impl std::fmt::Display for DropReplicationSlotCmd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DropRoleStmt {} +impl pg_sys::PgNode for DropRoleStmt {} +impl std::fmt::Display for DropRoleStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DropStmt {} +impl pg_sys::PgNode for DropStmt {} +impl std::fmt::Display for DropStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DropSubscriptionStmt {} +impl pg_sys::PgNode for DropSubscriptionStmt {} +impl std::fmt::Display for DropSubscriptionStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DropTableSpaceStmt {} +impl pg_sys::PgNode for DropTableSpaceStmt {} +impl std::fmt::Display for DropTableSpaceStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DropUserMappingStmt {} +impl pg_sys::PgNode for DropUserMappingStmt {} +impl std::fmt::Display for DropUserMappingStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for DropdbStmt {} +impl pg_sys::PgNode for DropdbStmt {} +impl std::fmt::Display for DropdbStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for EState {} +impl pg_sys::PgNode for EState {} +impl std::fmt::Display for EState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for EquivalenceClass {} +impl pg_sys::PgNode for EquivalenceClass {} +impl std::fmt::Display for EquivalenceClass { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for EquivalenceMember {} +impl pg_sys::PgNode for EquivalenceMember {} +impl std::fmt::Display for EquivalenceMember { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for EventTriggerData {} +impl pg_sys::PgNode for EventTriggerData {} +impl std::fmt::Display for EventTriggerData { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ExecuteStmt {} +impl pg_sys::PgNode for ExecuteStmt {} +impl std::fmt::Display for ExecuteStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ExplainStmt {} +impl pg_sys::PgNode for ExplainStmt {} +impl std::fmt::Display for ExplainStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Expr {} +impl pg_sys::PgNode for Expr {} +impl std::fmt::Display for Expr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ExprContext {} +impl pg_sys::PgNode for ExprContext {} +impl std::fmt::Display for ExprContext { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ExprState {} +impl pg_sys::PgNode for ExprState {} +impl std::fmt::Display for ExprState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ExtensibleNode {} +impl pg_sys::PgNode for ExtensibleNode {} +impl std::fmt::Display for ExtensibleNode { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FdwRoutine {} +impl pg_sys::PgNode for FdwRoutine {} +impl std::fmt::Display for FdwRoutine { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FetchStmt {} +impl pg_sys::PgNode for FetchStmt {} +impl std::fmt::Display for FetchStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FieldSelect {} +impl pg_sys::PgNode for FieldSelect {} +impl std::fmt::Display for FieldSelect { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FieldStore {} +impl pg_sys::PgNode for FieldStore {} +impl std::fmt::Display for FieldStore { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Float {} +impl pg_sys::PgNode for Float {} +impl std::fmt::Display for Float { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ForeignKeyCacheInfo {} +impl pg_sys::PgNode for ForeignKeyCacheInfo {} +impl std::fmt::Display for ForeignKeyCacheInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ForeignKeyOptInfo {} +impl pg_sys::PgNode for ForeignKeyOptInfo {} +impl std::fmt::Display for ForeignKeyOptInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ForeignPath {} +impl pg_sys::PgNode for ForeignPath {} +impl std::fmt::Display for ForeignPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ForeignScan {} +impl pg_sys::PgNode for ForeignScan {} +impl std::fmt::Display for ForeignScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ForeignScanState {} +impl pg_sys::PgNode for ForeignScanState {} +impl std::fmt::Display for ForeignScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FromExpr {} +impl pg_sys::PgNode for FromExpr {} +impl std::fmt::Display for FromExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FuncCall {} +impl pg_sys::PgNode for FuncCall {} +impl std::fmt::Display for FuncCall { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FuncExpr {} +impl pg_sys::PgNode for FuncExpr {} +impl std::fmt::Display for FuncExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FunctionParameter {} +impl pg_sys::PgNode for FunctionParameter {} +impl std::fmt::Display for FunctionParameter { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FunctionScan {} +impl pg_sys::PgNode for FunctionScan {} +impl std::fmt::Display for FunctionScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for FunctionScanState {} +impl pg_sys::PgNode for FunctionScanState {} +impl std::fmt::Display for FunctionScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Gather {} +impl pg_sys::PgNode for Gather {} +impl std::fmt::Display for Gather { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GatherMerge {} +impl pg_sys::PgNode for GatherMerge {} +impl std::fmt::Display for GatherMerge { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GatherMergePath {} +impl pg_sys::PgNode for GatherMergePath {} +impl std::fmt::Display for GatherMergePath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GatherMergeState {} +impl pg_sys::PgNode for GatherMergeState {} +impl std::fmt::Display for GatherMergeState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GatherPath {} +impl pg_sys::PgNode for GatherPath {} +impl std::fmt::Display for GatherPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GatherState {} +impl pg_sys::PgNode for GatherState {} +impl std::fmt::Display for GatherState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GrantRoleStmt {} +impl pg_sys::PgNode for GrantRoleStmt {} +impl std::fmt::Display for GrantRoleStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GrantStmt {} +impl pg_sys::PgNode for GrantStmt {} +impl std::fmt::Display for GrantStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Group {} +impl pg_sys::PgNode for Group {} +impl std::fmt::Display for Group { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GroupPath {} +impl pg_sys::PgNode for GroupPath {} +impl std::fmt::Display for GroupPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GroupResultPath {} +impl pg_sys::PgNode for GroupResultPath {} +impl std::fmt::Display for GroupResultPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GroupState {} +impl pg_sys::PgNode for GroupState {} +impl std::fmt::Display for GroupState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GroupingFunc {} +impl pg_sys::PgNode for GroupingFunc {} +impl std::fmt::Display for GroupingFunc { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GroupingSet {} +impl pg_sys::PgNode for GroupingSet {} +impl std::fmt::Display for GroupingSet { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GroupingSetData {} +impl pg_sys::PgNode for GroupingSetData {} +impl std::fmt::Display for GroupingSetData { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for GroupingSetsPath {} +impl pg_sys::PgNode for GroupingSetsPath {} +impl std::fmt::Display for GroupingSetsPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Hash {} +impl pg_sys::PgNode for Hash {} +impl std::fmt::Display for Hash { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for HashJoin {} +impl pg_sys::PgNode for HashJoin {} +impl std::fmt::Display for HashJoin { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for HashJoinState {} +impl pg_sys::PgNode for HashJoinState {} +impl std::fmt::Display for HashJoinState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for HashPath {} +impl pg_sys::PgNode for HashPath {} +impl std::fmt::Display for HashPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for HashState {} +impl pg_sys::PgNode for HashState {} +impl std::fmt::Display for HashState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for HeapTupleTableSlot {} +impl pg_sys::PgNode for HeapTupleTableSlot {} +impl std::fmt::Display for HeapTupleTableSlot { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IdentifySystemCmd {} +impl pg_sys::PgNode for IdentifySystemCmd {} +impl std::fmt::Display for IdentifySystemCmd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ImportForeignSchemaStmt {} +impl pg_sys::PgNode for ImportForeignSchemaStmt {} +impl std::fmt::Display for ImportForeignSchemaStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IncrementalSort {} +impl pg_sys::PgNode for IncrementalSort {} +impl std::fmt::Display for IncrementalSort { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IncrementalSortPath {} +impl pg_sys::PgNode for IncrementalSortPath {} +impl std::fmt::Display for IncrementalSortPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IncrementalSortState {} +impl pg_sys::PgNode for IncrementalSortState {} +impl std::fmt::Display for IncrementalSortState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexAmRoutine {} +impl pg_sys::PgNode for IndexAmRoutine {} +impl std::fmt::Display for IndexAmRoutine { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexClause {} +impl pg_sys::PgNode for IndexClause {} +impl std::fmt::Display for IndexClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexElem {} +impl pg_sys::PgNode for IndexElem {} +impl std::fmt::Display for IndexElem { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexInfo {} +impl pg_sys::PgNode for IndexInfo {} +impl std::fmt::Display for IndexInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexOnlyScan {} +impl pg_sys::PgNode for IndexOnlyScan {} +impl std::fmt::Display for IndexOnlyScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexOnlyScanState {} +impl pg_sys::PgNode for IndexOnlyScanState {} +impl std::fmt::Display for IndexOnlyScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexOptInfo {} +impl pg_sys::PgNode for IndexOptInfo {} +impl std::fmt::Display for IndexOptInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexPath {} +impl pg_sys::PgNode for IndexPath {} +impl std::fmt::Display for IndexPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexScan {} +impl pg_sys::PgNode for IndexScan {} +impl std::fmt::Display for IndexScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexScanState {} +impl pg_sys::PgNode for IndexScanState {} +impl std::fmt::Display for IndexScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IndexStmt {} +impl pg_sys::PgNode for IndexStmt {} +impl std::fmt::Display for IndexStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for InferClause {} +impl pg_sys::PgNode for InferClause {} +impl std::fmt::Display for InferClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for InferenceElem {} +impl pg_sys::PgNode for InferenceElem {} +impl std::fmt::Display for InferenceElem { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for InlineCodeBlock {} +impl pg_sys::PgNode for InlineCodeBlock {} +impl std::fmt::Display for InlineCodeBlock { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for InsertStmt {} +impl pg_sys::PgNode for InsertStmt {} +impl std::fmt::Display for InsertStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Integer {} +impl pg_sys::PgNode for Integer {} +impl std::fmt::Display for Integer { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for IntoClause {} +impl pg_sys::PgNode for IntoClause {} +impl std::fmt::Display for IntoClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Join {} +impl pg_sys::PgNode for Join {} +impl std::fmt::Display for Join { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JoinDomain {} +impl pg_sys::PgNode for JoinDomain {} +impl std::fmt::Display for JoinDomain { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JoinExpr {} +impl pg_sys::PgNode for JoinExpr {} +impl std::fmt::Display for JoinExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JoinPath {} +impl pg_sys::PgNode for JoinPath {} +impl std::fmt::Display for JoinPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JoinState {} +impl pg_sys::PgNode for JoinState {} +impl std::fmt::Display for JoinState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonAggConstructor {} +impl pg_sys::PgNode for JsonAggConstructor {} +impl std::fmt::Display for JsonAggConstructor { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonArrayAgg {} +impl pg_sys::PgNode for JsonArrayAgg {} +impl std::fmt::Display for JsonArrayAgg { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonArrayConstructor {} +impl pg_sys::PgNode for JsonArrayConstructor {} +impl std::fmt::Display for JsonArrayConstructor { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonArrayQueryConstructor {} +impl pg_sys::PgNode for JsonArrayQueryConstructor {} +impl std::fmt::Display for JsonArrayQueryConstructor { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonConstructorExpr {} +impl pg_sys::PgNode for JsonConstructorExpr {} +impl std::fmt::Display for JsonConstructorExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonFormat {} +impl pg_sys::PgNode for JsonFormat {} +impl std::fmt::Display for JsonFormat { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonIsPredicate {} +impl pg_sys::PgNode for JsonIsPredicate {} +impl std::fmt::Display for JsonIsPredicate { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonKeyValue {} +impl pg_sys::PgNode for JsonKeyValue {} +impl std::fmt::Display for JsonKeyValue { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonObjectAgg {} +impl pg_sys::PgNode for JsonObjectAgg {} +impl std::fmt::Display for JsonObjectAgg { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonObjectConstructor {} +impl pg_sys::PgNode for JsonObjectConstructor {} +impl std::fmt::Display for JsonObjectConstructor { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonOutput {} +impl pg_sys::PgNode for JsonOutput {} +impl std::fmt::Display for JsonOutput { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonReturning {} +impl pg_sys::PgNode for JsonReturning {} +impl std::fmt::Display for JsonReturning { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JsonValueExpr {} +impl pg_sys::PgNode for JsonValueExpr {} +impl std::fmt::Display for JsonValueExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for JunkFilter {} +impl pg_sys::PgNode for JunkFilter {} +impl std::fmt::Display for JunkFilter { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Limit {} +impl pg_sys::PgNode for Limit {} +impl std::fmt::Display for Limit { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for LimitPath {} +impl pg_sys::PgNode for LimitPath {} +impl std::fmt::Display for LimitPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for LimitState {} +impl pg_sys::PgNode for LimitState {} +impl std::fmt::Display for LimitState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for List {} +impl pg_sys::PgNode for List {} +impl std::fmt::Display for List { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ListenStmt {} +impl pg_sys::PgNode for ListenStmt {} +impl std::fmt::Display for ListenStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for LoadStmt {} +impl pg_sys::PgNode for LoadStmt {} +impl std::fmt::Display for LoadStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for LockRows {} +impl pg_sys::PgNode for LockRows {} +impl std::fmt::Display for LockRows { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for LockRowsPath {} +impl pg_sys::PgNode for LockRowsPath {} +impl std::fmt::Display for LockRowsPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for LockRowsState {} +impl pg_sys::PgNode for LockRowsState {} +impl std::fmt::Display for LockRowsState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for LockStmt {} +impl pg_sys::PgNode for LockStmt {} +impl std::fmt::Display for LockStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for LockingClause {} +impl pg_sys::PgNode for LockingClause {} +impl std::fmt::Display for LockingClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Material {} +impl pg_sys::PgNode for Material {} +impl std::fmt::Display for Material { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MaterialPath {} +impl pg_sys::PgNode for MaterialPath {} +impl std::fmt::Display for MaterialPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MaterialState {} +impl pg_sys::PgNode for MaterialState {} +impl std::fmt::Display for MaterialState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Memoize {} +impl pg_sys::PgNode for Memoize {} +impl std::fmt::Display for Memoize { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MemoizePath {} +impl pg_sys::PgNode for MemoizePath {} +impl std::fmt::Display for MemoizePath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MemoizeState {} +impl pg_sys::PgNode for MemoizeState {} +impl std::fmt::Display for MemoizeState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MemoryContextData {} +impl pg_sys::PgNode for MemoryContextData {} +impl std::fmt::Display for MemoryContextData { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergeAction {} +impl pg_sys::PgNode for MergeAction {} +impl std::fmt::Display for MergeAction { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergeActionState {} +impl pg_sys::PgNode for MergeActionState {} +impl std::fmt::Display for MergeActionState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergeAppend {} +impl pg_sys::PgNode for MergeAppend {} +impl std::fmt::Display for MergeAppend { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergeAppendPath {} +impl pg_sys::PgNode for MergeAppendPath {} +impl std::fmt::Display for MergeAppendPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergeAppendState {} +impl pg_sys::PgNode for MergeAppendState {} +impl std::fmt::Display for MergeAppendState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergeJoin {} +impl pg_sys::PgNode for MergeJoin {} +impl std::fmt::Display for MergeJoin { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergeJoinState {} +impl pg_sys::PgNode for MergeJoinState {} +impl std::fmt::Display for MergeJoinState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergePath {} +impl pg_sys::PgNode for MergePath {} +impl std::fmt::Display for MergePath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergeStmt {} +impl pg_sys::PgNode for MergeStmt {} +impl std::fmt::Display for MergeStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MergeWhenClause {} +impl pg_sys::PgNode for MergeWhenClause {} +impl std::fmt::Display for MergeWhenClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MinMaxAggInfo {} +impl pg_sys::PgNode for MinMaxAggInfo {} +impl std::fmt::Display for MinMaxAggInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MinMaxAggPath {} +impl pg_sys::PgNode for MinMaxAggPath {} +impl std::fmt::Display for MinMaxAggPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MinMaxExpr {} +impl pg_sys::PgNode for MinMaxExpr {} +impl std::fmt::Display for MinMaxExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MinimalTupleTableSlot {} +impl pg_sys::PgNode for MinimalTupleTableSlot {} +impl std::fmt::Display for MinimalTupleTableSlot { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ModifyTable {} +impl pg_sys::PgNode for ModifyTable {} +impl std::fmt::Display for ModifyTable { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ModifyTablePath {} +impl pg_sys::PgNode for ModifyTablePath {} +impl std::fmt::Display for ModifyTablePath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ModifyTableState {} +impl pg_sys::PgNode for ModifyTableState {} +impl std::fmt::Display for ModifyTableState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for MultiAssignRef {} +impl pg_sys::PgNode for MultiAssignRef {} +impl std::fmt::Display for MultiAssignRef { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NamedArgExpr {} +impl pg_sys::PgNode for NamedArgExpr {} +impl std::fmt::Display for NamedArgExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NamedTuplestoreScan {} +impl pg_sys::PgNode for NamedTuplestoreScan {} +impl std::fmt::Display for NamedTuplestoreScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NamedTuplestoreScanState {} +impl pg_sys::PgNode for NamedTuplestoreScanState {} +impl std::fmt::Display for NamedTuplestoreScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NestLoop {} +impl pg_sys::PgNode for NestLoop {} +impl std::fmt::Display for NestLoop { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NestLoopParam {} +impl pg_sys::PgNode for NestLoopParam {} +impl std::fmt::Display for NestLoopParam { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NestLoopState {} +impl pg_sys::PgNode for NestLoopState {} +impl std::fmt::Display for NestLoopState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NestPath {} +impl pg_sys::PgNode for NestPath {} +impl std::fmt::Display for NestPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NextValueExpr {} +impl pg_sys::PgNode for NextValueExpr {} +impl std::fmt::Display for NextValueExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Node {} +impl pg_sys::PgNode for Node {} +impl std::fmt::Display for Node { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NotifyStmt {} +impl pg_sys::PgNode for NotifyStmt {} +impl std::fmt::Display for NotifyStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for NullTest {} +impl pg_sys::PgNode for NullTest {} +impl std::fmt::Display for NullTest { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ObjectWithArgs {} +impl pg_sys::PgNode for ObjectWithArgs {} +impl std::fmt::Display for ObjectWithArgs { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for OnConflictClause {} +impl pg_sys::PgNode for OnConflictClause {} +impl std::fmt::Display for OnConflictClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for OnConflictExpr {} +impl pg_sys::PgNode for OnConflictExpr {} +impl std::fmt::Display for OnConflictExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for OnConflictSetState {} +impl pg_sys::PgNode for OnConflictSetState {} +impl std::fmt::Display for OnConflictSetState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for OpExpr {} +impl pg_sys::PgNode for OpExpr {} +impl std::fmt::Display for OpExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for OuterJoinClauseInfo {} +impl pg_sys::PgNode for OuterJoinClauseInfo {} +impl std::fmt::Display for OuterJoinClauseInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PLAssignStmt {} +impl pg_sys::PgNode for PLAssignStmt {} +impl std::fmt::Display for PLAssignStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Param {} +impl pg_sys::PgNode for Param {} +impl std::fmt::Display for Param { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ParamPathInfo {} +impl pg_sys::PgNode for ParamPathInfo {} +impl std::fmt::Display for ParamPathInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ParamRef {} +impl pg_sys::PgNode for ParamRef {} +impl std::fmt::Display for ParamRef { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionBoundSpec {} +impl pg_sys::PgNode for PartitionBoundSpec {} +impl std::fmt::Display for PartitionBoundSpec { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionCmd {} +impl pg_sys::PgNode for PartitionCmd {} +impl std::fmt::Display for PartitionCmd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionElem {} +impl pg_sys::PgNode for PartitionElem {} +impl std::fmt::Display for PartitionElem { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionPruneInfo {} +impl pg_sys::PgNode for PartitionPruneInfo {} +impl std::fmt::Display for PartitionPruneInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionPruneStep {} +impl pg_sys::PgNode for PartitionPruneStep {} +impl std::fmt::Display for PartitionPruneStep { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionPruneStepCombine {} +impl pg_sys::PgNode for PartitionPruneStepCombine {} +impl std::fmt::Display for PartitionPruneStepCombine { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionPruneStepOp {} +impl pg_sys::PgNode for PartitionPruneStepOp {} +impl std::fmt::Display for PartitionPruneStepOp { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionRangeDatum {} +impl pg_sys::PgNode for PartitionRangeDatum {} +impl std::fmt::Display for PartitionRangeDatum { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionSpec {} +impl pg_sys::PgNode for PartitionSpec {} +impl std::fmt::Display for PartitionSpec { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PartitionedRelPruneInfo {} +impl pg_sys::PgNode for PartitionedRelPruneInfo {} +impl std::fmt::Display for PartitionedRelPruneInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Path {} +impl pg_sys::PgNode for Path {} +impl std::fmt::Display for Path { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PathKey {} +impl pg_sys::PgNode for PathKey {} +impl std::fmt::Display for PathKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PathTarget {} +impl pg_sys::PgNode for PathTarget {} +impl std::fmt::Display for PathTarget { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PlaceHolderInfo {} +impl pg_sys::PgNode for PlaceHolderInfo {} +impl std::fmt::Display for PlaceHolderInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PlaceHolderVar {} +impl pg_sys::PgNode for PlaceHolderVar {} +impl std::fmt::Display for PlaceHolderVar { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Plan {} +impl pg_sys::PgNode for Plan {} +impl std::fmt::Display for Plan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PlanInvalItem {} +impl pg_sys::PgNode for PlanInvalItem {} +impl std::fmt::Display for PlanInvalItem { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PlanRowMark {} +impl pg_sys::PgNode for PlanRowMark {} +impl std::fmt::Display for PlanRowMark { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PlanState {} +impl pg_sys::PgNode for PlanState {} +impl std::fmt::Display for PlanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PlannedStmt {} +impl pg_sys::PgNode for PlannedStmt {} +impl std::fmt::Display for PlannedStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PlannerGlobal {} +impl pg_sys::PgNode for PlannerGlobal {} +impl std::fmt::Display for PlannerGlobal { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PlannerInfo {} +impl pg_sys::PgNode for PlannerInfo {} +impl std::fmt::Display for PlannerInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PlannerParamItem {} +impl pg_sys::PgNode for PlannerParamItem {} +impl std::fmt::Display for PlannerParamItem { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PrepareStmt {} +impl pg_sys::PgNode for PrepareStmt {} +impl std::fmt::Display for PrepareStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ProjectSet {} +impl pg_sys::PgNode for ProjectSet {} +impl std::fmt::Display for ProjectSet { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ProjectSetPath {} +impl pg_sys::PgNode for ProjectSetPath {} +impl std::fmt::Display for ProjectSetPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ProjectSetState {} +impl pg_sys::PgNode for ProjectSetState {} +impl std::fmt::Display for ProjectSetState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ProjectionInfo {} +impl pg_sys::PgNode for ProjectionInfo {} +impl std::fmt::Display for ProjectionInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ProjectionPath {} +impl pg_sys::PgNode for ProjectionPath {} +impl std::fmt::Display for ProjectionPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PublicationObjSpec {} +impl pg_sys::PgNode for PublicationObjSpec {} +impl std::fmt::Display for PublicationObjSpec { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for PublicationTable {} +impl pg_sys::PgNode for PublicationTable {} +impl std::fmt::Display for PublicationTable { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Query {} +impl pg_sys::PgNode for Query {} +impl std::fmt::Display for Query { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RTEPermissionInfo {} +impl pg_sys::PgNode for RTEPermissionInfo {} +impl std::fmt::Display for RTEPermissionInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RangeFunction {} +impl pg_sys::PgNode for RangeFunction {} +impl std::fmt::Display for RangeFunction { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RangeSubselect {} +impl pg_sys::PgNode for RangeSubselect {} +impl std::fmt::Display for RangeSubselect { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RangeTableFunc {} +impl pg_sys::PgNode for RangeTableFunc {} +impl std::fmt::Display for RangeTableFunc { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RangeTableFuncCol {} +impl pg_sys::PgNode for RangeTableFuncCol {} +impl std::fmt::Display for RangeTableFuncCol { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RangeTableSample {} +impl pg_sys::PgNode for RangeTableSample {} +impl std::fmt::Display for RangeTableSample { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RangeTblEntry {} +impl pg_sys::PgNode for RangeTblEntry {} +impl std::fmt::Display for RangeTblEntry { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RangeTblFunction {} +impl pg_sys::PgNode for RangeTblFunction {} +impl std::fmt::Display for RangeTblFunction { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RangeTblRef {} +impl pg_sys::PgNode for RangeTblRef {} +impl std::fmt::Display for RangeTblRef { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RangeVar {} +impl pg_sys::PgNode for RangeVar {} +impl std::fmt::Display for RangeVar { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RawStmt {} +impl pg_sys::PgNode for RawStmt {} +impl std::fmt::Display for RawStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ReadReplicationSlotCmd {} +impl pg_sys::PgNode for ReadReplicationSlotCmd {} +impl std::fmt::Display for ReadReplicationSlotCmd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ReassignOwnedStmt {} +impl pg_sys::PgNode for ReassignOwnedStmt {} +impl std::fmt::Display for ReassignOwnedStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RecursiveUnion {} +impl pg_sys::PgNode for RecursiveUnion {} +impl std::fmt::Display for RecursiveUnion { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RecursiveUnionPath {} +impl pg_sys::PgNode for RecursiveUnionPath {} +impl std::fmt::Display for RecursiveUnionPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RecursiveUnionState {} +impl pg_sys::PgNode for RecursiveUnionState {} +impl std::fmt::Display for RecursiveUnionState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RefreshMatViewStmt {} +impl pg_sys::PgNode for RefreshMatViewStmt {} +impl std::fmt::Display for RefreshMatViewStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ReindexStmt {} +impl pg_sys::PgNode for ReindexStmt {} +impl std::fmt::Display for ReindexStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RelOptInfo {} +impl pg_sys::PgNode for RelOptInfo {} +impl std::fmt::Display for RelOptInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RelabelType {} +impl pg_sys::PgNode for RelabelType {} +impl std::fmt::Display for RelabelType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RenameStmt {} +impl pg_sys::PgNode for RenameStmt {} +impl std::fmt::Display for RenameStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ReplicaIdentityStmt {} +impl pg_sys::PgNode for ReplicaIdentityStmt {} +impl std::fmt::Display for ReplicaIdentityStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ResTarget {} +impl pg_sys::PgNode for ResTarget {} +impl std::fmt::Display for ResTarget { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RestrictInfo {} +impl pg_sys::PgNode for RestrictInfo {} +impl std::fmt::Display for RestrictInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Result {} +impl pg_sys::PgNode for Result {} +impl std::fmt::Display for Result { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ResultRelInfo {} +impl pg_sys::PgNode for ResultRelInfo {} +impl std::fmt::Display for ResultRelInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ResultState {} +impl pg_sys::PgNode for ResultState {} +impl std::fmt::Display for ResultState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ReturnSetInfo {} +impl pg_sys::PgNode for ReturnSetInfo {} +impl std::fmt::Display for ReturnSetInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ReturnStmt {} +impl pg_sys::PgNode for ReturnStmt {} +impl std::fmt::Display for ReturnStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RoleSpec {} +impl pg_sys::PgNode for RoleSpec {} +impl std::fmt::Display for RoleSpec { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RollupData {} +impl pg_sys::PgNode for RollupData {} +impl std::fmt::Display for RollupData { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RowCompareExpr {} +impl pg_sys::PgNode for RowCompareExpr {} +impl std::fmt::Display for RowCompareExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RowExpr {} +impl pg_sys::PgNode for RowExpr {} +impl std::fmt::Display for RowExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RowIdentityVarInfo {} +impl pg_sys::PgNode for RowIdentityVarInfo {} +impl std::fmt::Display for RowIdentityVarInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RowMarkClause {} +impl pg_sys::PgNode for RowMarkClause {} +impl std::fmt::Display for RowMarkClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for RuleStmt {} +impl pg_sys::PgNode for RuleStmt {} +impl std::fmt::Display for RuleStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SQLValueFunction {} +impl pg_sys::PgNode for SQLValueFunction {} +impl std::fmt::Display for SQLValueFunction { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SampleScan {} +impl pg_sys::PgNode for SampleScan {} +impl std::fmt::Display for SampleScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SampleScanState {} +impl pg_sys::PgNode for SampleScanState {} +impl std::fmt::Display for SampleScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ScalarArrayOpExpr {} +impl pg_sys::PgNode for ScalarArrayOpExpr {} +impl std::fmt::Display for ScalarArrayOpExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Scan {} +impl pg_sys::PgNode for Scan {} +impl std::fmt::Display for Scan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ScanState {} +impl pg_sys::PgNode for ScanState {} +impl std::fmt::Display for ScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SecLabelStmt {} +impl pg_sys::PgNode for SecLabelStmt {} +impl std::fmt::Display for SecLabelStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SelectStmt {} +impl pg_sys::PgNode for SelectStmt {} +impl std::fmt::Display for SelectStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SeqScan {} +impl pg_sys::PgNode for SeqScan {} +impl std::fmt::Display for SeqScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SeqScanState {} +impl pg_sys::PgNode for SeqScanState {} +impl std::fmt::Display for SeqScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SetExprState {} +impl pg_sys::PgNode for SetExprState {} +impl std::fmt::Display for SetExprState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SetOp {} +impl pg_sys::PgNode for SetOp {} +impl std::fmt::Display for SetOp { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SetOpPath {} +impl pg_sys::PgNode for SetOpPath {} +impl std::fmt::Display for SetOpPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SetOpState {} +impl pg_sys::PgNode for SetOpState {} +impl std::fmt::Display for SetOpState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SetOperationStmt {} +impl pg_sys::PgNode for SetOperationStmt {} +impl std::fmt::Display for SetOperationStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SetToDefault {} +impl pg_sys::PgNode for SetToDefault {} +impl std::fmt::Display for SetToDefault { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Sort {} +impl pg_sys::PgNode for Sort {} +impl std::fmt::Display for Sort { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SortBy {} +impl pg_sys::PgNode for SortBy {} +impl std::fmt::Display for SortBy { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SortGroupClause {} +impl pg_sys::PgNode for SortGroupClause {} +impl std::fmt::Display for SortGroupClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SortPath {} +impl pg_sys::PgNode for SortPath {} +impl std::fmt::Display for SortPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SortState {} +impl pg_sys::PgNode for SortState {} +impl std::fmt::Display for SortState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SpecialJoinInfo {} +impl pg_sys::PgNode for SpecialJoinInfo {} +impl std::fmt::Display for SpecialJoinInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for StartReplicationCmd {} +impl pg_sys::PgNode for StartReplicationCmd {} +impl std::fmt::Display for StartReplicationCmd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for StatisticExtInfo {} +impl pg_sys::PgNode for StatisticExtInfo {} +impl std::fmt::Display for StatisticExtInfo { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for StatsElem {} +impl pg_sys::PgNode for StatsElem {} +impl std::fmt::Display for StatsElem { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for String {} +impl pg_sys::PgNode for String {} +impl std::fmt::Display for String { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SubLink {} +impl pg_sys::PgNode for SubLink {} +impl std::fmt::Display for SubLink { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SubPlan {} +impl pg_sys::PgNode for SubPlan {} +impl std::fmt::Display for SubPlan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SubPlanState {} +impl pg_sys::PgNode for SubPlanState {} +impl std::fmt::Display for SubPlanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SubqueryScan {} +impl pg_sys::PgNode for SubqueryScan {} +impl std::fmt::Display for SubqueryScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SubqueryScanPath {} +impl pg_sys::PgNode for SubqueryScanPath {} +impl std::fmt::Display for SubqueryScanPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SubqueryScanState {} +impl pg_sys::PgNode for SubqueryScanState {} +impl std::fmt::Display for SubqueryScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SubscriptingRef {} +impl pg_sys::PgNode for SubscriptingRef {} +impl std::fmt::Display for SubscriptingRef { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SupportRequestCost {} +impl pg_sys::PgNode for SupportRequestCost {} +impl std::fmt::Display for SupportRequestCost { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SupportRequestIndexCondition {} +impl pg_sys::PgNode for SupportRequestIndexCondition {} +impl std::fmt::Display for SupportRequestIndexCondition { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SupportRequestOptimizeWindowClause {} +impl pg_sys::PgNode for SupportRequestOptimizeWindowClause {} +impl std::fmt::Display for SupportRequestOptimizeWindowClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SupportRequestRows {} +impl pg_sys::PgNode for SupportRequestRows {} +impl std::fmt::Display for SupportRequestRows { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SupportRequestSelectivity {} +impl pg_sys::PgNode for SupportRequestSelectivity {} +impl std::fmt::Display for SupportRequestSelectivity { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SupportRequestSimplify {} +impl pg_sys::PgNode for SupportRequestSimplify {} +impl std::fmt::Display for SupportRequestSimplify { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for SupportRequestWFuncMonotonic {} +impl pg_sys::PgNode for SupportRequestWFuncMonotonic {} +impl std::fmt::Display for SupportRequestWFuncMonotonic { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TableAmRoutine {} +impl pg_sys::PgNode for TableAmRoutine {} +impl std::fmt::Display for TableAmRoutine { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TableFunc {} +impl pg_sys::PgNode for TableFunc {} +impl std::fmt::Display for TableFunc { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TableFuncScan {} +impl pg_sys::PgNode for TableFuncScan {} +impl std::fmt::Display for TableFuncScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TableFuncScanState {} +impl pg_sys::PgNode for TableFuncScanState {} +impl std::fmt::Display for TableFuncScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TableLikeClause {} +impl pg_sys::PgNode for TableLikeClause {} +impl std::fmt::Display for TableLikeClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TableSampleClause {} +impl pg_sys::PgNode for TableSampleClause {} +impl std::fmt::Display for TableSampleClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TargetEntry {} +impl pg_sys::PgNode for TargetEntry {} +impl std::fmt::Display for TargetEntry { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TidPath {} +impl pg_sys::PgNode for TidPath {} +impl std::fmt::Display for TidPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TidRangePath {} +impl pg_sys::PgNode for TidRangePath {} +impl std::fmt::Display for TidRangePath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TidRangeScan {} +impl pg_sys::PgNode for TidRangeScan {} +impl std::fmt::Display for TidRangeScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TidRangeScanState {} +impl pg_sys::PgNode for TidRangeScanState {} +impl std::fmt::Display for TidRangeScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TidScan {} +impl pg_sys::PgNode for TidScan {} +impl std::fmt::Display for TidScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TidScanState {} +impl pg_sys::PgNode for TidScanState {} +impl std::fmt::Display for TidScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TimeLineHistoryCmd {} +impl pg_sys::PgNode for TimeLineHistoryCmd {} +impl std::fmt::Display for TimeLineHistoryCmd { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TransactionStmt {} +impl pg_sys::PgNode for TransactionStmt {} +impl std::fmt::Display for TransactionStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TriggerData {} +impl pg_sys::PgNode for TriggerData {} +impl std::fmt::Display for TriggerData { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TriggerTransition {} +impl pg_sys::PgNode for TriggerTransition {} +impl std::fmt::Display for TriggerTransition { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TruncateStmt {} +impl pg_sys::PgNode for TruncateStmt {} +impl std::fmt::Display for TruncateStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TupleTableSlot {} +impl pg_sys::PgNode for TupleTableSlot {} +impl std::fmt::Display for TupleTableSlot { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TypeCast {} +impl pg_sys::PgNode for TypeCast {} +impl std::fmt::Display for TypeCast { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for TypeName {} +impl pg_sys::PgNode for TypeName {} +impl std::fmt::Display for TypeName { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Unique {} +impl pg_sys::PgNode for Unique {} +impl std::fmt::Display for Unique { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for UniquePath {} +impl pg_sys::PgNode for UniquePath {} +impl std::fmt::Display for UniquePath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for UniqueState {} +impl pg_sys::PgNode for UniqueState {} +impl std::fmt::Display for UniqueState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for UnlistenStmt {} +impl pg_sys::PgNode for UnlistenStmt {} +impl std::fmt::Display for UnlistenStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for UpdateStmt {} +impl pg_sys::PgNode for UpdateStmt {} +impl std::fmt::Display for UpdateStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for UpperUniquePath {} +impl pg_sys::PgNode for UpperUniquePath {} +impl std::fmt::Display for UpperUniquePath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for VacuumRelation {} +impl pg_sys::PgNode for VacuumRelation {} +impl std::fmt::Display for VacuumRelation { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for VacuumStmt {} +impl pg_sys::PgNode for VacuumStmt {} +impl std::fmt::Display for VacuumStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ValuesScan {} +impl pg_sys::PgNode for ValuesScan {} +impl std::fmt::Display for ValuesScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ValuesScanState {} +impl pg_sys::PgNode for ValuesScanState {} +impl std::fmt::Display for ValuesScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for Var {} +impl pg_sys::PgNode for Var {} +impl std::fmt::Display for Var { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for VariableSetStmt {} +impl pg_sys::PgNode for VariableSetStmt {} +impl std::fmt::Display for VariableSetStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for VariableShowStmt {} +impl pg_sys::PgNode for VariableShowStmt {} +impl std::fmt::Display for VariableShowStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for ViewStmt {} +impl pg_sys::PgNode for ViewStmt {} +impl std::fmt::Display for ViewStmt { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for VirtualTupleTableSlot {} +impl pg_sys::PgNode for VirtualTupleTableSlot {} +impl std::fmt::Display for VirtualTupleTableSlot { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WindowAgg {} +impl pg_sys::PgNode for WindowAgg {} +impl std::fmt::Display for WindowAgg { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WindowAggPath {} +impl pg_sys::PgNode for WindowAggPath {} +impl std::fmt::Display for WindowAggPath { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WindowAggState {} +impl pg_sys::PgNode for WindowAggState {} +impl std::fmt::Display for WindowAggState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WindowClause {} +impl pg_sys::PgNode for WindowClause {} +impl std::fmt::Display for WindowClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WindowDef {} +impl pg_sys::PgNode for WindowDef {} +impl std::fmt::Display for WindowDef { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WindowFunc {} +impl pg_sys::PgNode for WindowFunc {} +impl std::fmt::Display for WindowFunc { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WindowFuncExprState {} +impl pg_sys::PgNode for WindowFuncExprState {} +impl std::fmt::Display for WindowFuncExprState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WithCheckOption {} +impl pg_sys::PgNode for WithCheckOption {} +impl std::fmt::Display for WithCheckOption { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WithClause {} +impl pg_sys::PgNode for WithClause {} +impl std::fmt::Display for WithClause { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WorkTableScan {} +impl pg_sys::PgNode for WorkTableScan {} +impl std::fmt::Display for WorkTableScan { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for WorkTableScanState {} +impl pg_sys::PgNode for WorkTableScanState {} +impl std::fmt::Display for WorkTableScanState { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for XmlExpr {} +impl pg_sys::PgNode for XmlExpr {} +impl std::fmt::Display for XmlExpr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} +impl pg_sys::seal::Sealed for XmlSerialize {} +impl pg_sys::PgNode for XmlSerialize {} +impl std::fmt::Display for XmlSerialize { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.display_node()) + } +} diff --git a/pgrx-pg-sys/src/pg16_oids.rs b/pgrx-pg-sys/src/pg16_oids.rs new file mode 100644 index 000000000..1b1412cc4 --- /dev/null +++ b/pgrx-pg-sys/src/pg16_oids.rs @@ -0,0 +1,426 @@ +use crate::NotBuiltinOid; +#[derive(Copy, Clone, Eq, PartialEq, Hash, Ord, PartialOrd, Debug)] +pub enum BuiltinOid { + ACLITEMARRAYOID = 1034, + ACLITEMOID = 1033, + ANYARRAYOID = 2277, + ANYCOMPATIBLEARRAYOID = 5078, + ANYCOMPATIBLEMULTIRANGEOID = 4538, + ANYCOMPATIBLENONARRAYOID = 5079, + ANYCOMPATIBLEOID = 5077, + ANYCOMPATIBLERANGEOID = 5080, + ANYELEMENTOID = 2283, + ANYENUMOID = 3500, + ANYMULTIRANGEOID = 4537, + ANYNONARRAYOID = 2776, + ANYOID = 2276, + ANYRANGEOID = 3831, + AttributeRelationId = 1249, + AuthIdRelationId = 1260, + BITARRAYOID = 1561, + BITOID = 1560, + BOOLARRAYOID = 1000, + BOOLOID = 16, + BOXARRAYOID = 1020, + BOXOID = 603, + BPCHARARRAYOID = 1014, + BPCHAROID = 1042, + BYTEAARRAYOID = 1001, + BYTEAOID = 17, + CHARARRAYOID = 1002, + CHAROID = 18, + CIDARRAYOID = 1012, + CIDOID = 29, + CIDRARRAYOID = 651, + CIDROID = 650, + CIRCLEARRAYOID = 719, + CIRCLEOID = 718, + CSTRINGARRAYOID = 1263, + CSTRINGOID = 2275, + DATEARRAYOID = 1182, + DATEMULTIRANGEARRAYOID = 6155, + DATEMULTIRANGEOID = 4535, + DATEOID = 1082, + DATERANGEARRAYOID = 3913, + DATERANGEOID = 3912, + DEFAULTTABLESPACE_OID = 1663, + DatabaseRelationId = 1262, + EVENT_TRIGGEROID = 3838, + EnumRelationId = 3501, + EventTriggerRelationId = 3466, + ExtensionRelationId = 3079, + FDW_HANDLEROID = 3115, + FLOAT4ARRAYOID = 1021, + FLOAT4OID = 700, + FLOAT8ARRAYOID = 1022, + FLOAT8OID = 701, + GLOBALTABLESPACE_OID = 1664, + GTSVECTORARRAYOID = 3644, + GTSVECTOROID = 3642, + INDEX_AM_HANDLEROID = 325, + INETARRAYOID = 1041, + INETOID = 869, + INT2ARRAYOID = 1005, + INT2OID = 21, + INT2VECTORARRAYOID = 1006, + INT2VECTOROID = 22, + INT4ARRAYOID = 1007, + INT4MULTIRANGEARRAYOID = 6150, + INT4MULTIRANGEOID = 4451, + INT4OID = 23, + INT4RANGEARRAYOID = 3905, + INT4RANGEOID = 3904, + INT8ARRAYOID = 1016, + INT8MULTIRANGEARRAYOID = 6157, + INT8MULTIRANGEOID = 4536, + INT8OID = 20, + INT8RANGEARRAYOID = 3927, + INT8RANGEOID = 3926, + INTERNALOID = 2281, + INTERVALARRAYOID = 1187, + INTERVALOID = 1186, + IndexRelationId = 2610, + JSONARRAYOID = 199, + JSONBARRAYOID = 3807, + JSONBOID = 3802, + JSONOID = 114, + JSONPATHARRAYOID = 4073, + JSONPATHOID = 4072, + LANGUAGE_HANDLEROID = 2280, + LINEARRAYOID = 629, + LINEOID = 628, + LSEGARRAYOID = 1018, + LSEGOID = 601, + MACADDR8ARRAYOID = 775, + MACADDR8OID = 774, + MACADDRARRAYOID = 1040, + MACADDROID = 829, + MONEYARRAYOID = 791, + MONEYOID = 790, + NAMEARRAYOID = 1003, + NAMEOID = 19, + NUMERICARRAYOID = 1231, + NUMERICOID = 1700, + NUMMULTIRANGEARRAYOID = 6151, + NUMMULTIRANGEOID = 4532, + NUMRANGEARRAYOID = 3907, + NUMRANGEOID = 3906, + NamespaceRelationId = 2615, + OIDARRAYOID = 1028, + OIDOID = 26, + OIDVECTORARRAYOID = 1013, + OIDVECTOROID = 30, + OperatorRelationId = 2617, + PATHARRAYOID = 1019, + PATHOID = 602, + PG_ATTRIBUTEARRAYOID = 270, + PG_BRIN_BLOOM_SUMMARYOID = 4600, + PG_BRIN_MINMAX_MULTI_SUMMARYOID = 4601, + PG_CLASSARRAYOID = 273, + PG_DDL_COMMANDOID = 32, + PG_DEPENDENCIESOID = 3402, + PG_LSNARRAYOID = 3221, + PG_LSNOID = 3220, + PG_MCV_LISTOID = 5017, + PG_NDISTINCTOID = 3361, + PG_NODE_TREEOID = 194, + PG_PROCARRAYOID = 272, + PG_SNAPSHOTARRAYOID = 5039, + PG_SNAPSHOTOID = 5038, + PG_TYPEARRAYOID = 210, + POINTARRAYOID = 1017, + POINTOID = 600, + POLYGONARRAYOID = 1027, + POLYGONOID = 604, + ProcedureRelationId = 1255, + PublicationRelationId = 6104, + RECORDARRAYOID = 2287, + RECORDOID = 2249, + REFCURSORARRAYOID = 2201, + REFCURSOROID = 1790, + REGCLASSARRAYOID = 2210, + REGCLASSOID = 2205, + REGCOLLATIONARRAYOID = 4192, + REGCOLLATIONOID = 4191, + REGCONFIGARRAYOID = 3735, + REGCONFIGOID = 3734, + REGDICTIONARYARRAYOID = 3770, + REGDICTIONARYOID = 3769, + REGNAMESPACEARRAYOID = 4090, + REGNAMESPACEOID = 4089, + REGOPERARRAYOID = 2208, + REGOPERATORARRAYOID = 2209, + REGOPERATOROID = 2204, + REGOPEROID = 2203, + REGPROCARRAYOID = 1008, + REGPROCEDUREARRAYOID = 2207, + REGPROCEDUREOID = 2202, + REGPROCOID = 24, + REGROLEARRAYOID = 4097, + REGROLEOID = 4096, + REGTYPEARRAYOID = 2211, + REGTYPEOID = 2206, + RelationRelationId = 1259, + StatisticRelationId = 2619, + TABLE_AM_HANDLEROID = 269, + TEXTARRAYOID = 1009, + TEXTOID = 25, + TIDARRAYOID = 1010, + TIDOID = 27, + TIMEARRAYOID = 1183, + TIMEOID = 1083, + TIMESTAMPARRAYOID = 1115, + TIMESTAMPOID = 1114, + TIMESTAMPTZARRAYOID = 1185, + TIMESTAMPTZOID = 1184, + TIMETZARRAYOID = 1270, + TIMETZOID = 1266, + TRIGGEROID = 2279, + TSMULTIRANGEARRAYOID = 6152, + TSMULTIRANGEOID = 4533, + TSM_HANDLEROID = 3310, + TSQUERYARRAYOID = 3645, + TSQUERYOID = 3615, + TSRANGEARRAYOID = 3909, + TSRANGEOID = 3908, + TSTZMULTIRANGEARRAYOID = 6153, + TSTZMULTIRANGEOID = 4534, + TSTZRANGEARRAYOID = 3911, + TSTZRANGEOID = 3910, + TSVECTORARRAYOID = 3643, + TSVECTOROID = 3614, + TXID_SNAPSHOTARRAYOID = 2949, + TXID_SNAPSHOTOID = 2970, + TableSpaceRelationId = 1213, + TriggerRelationId = 2620, + TypeRelationId = 1247, + UNKNOWNOID = 705, + UUIDARRAYOID = 2951, + UUIDOID = 2950, + VARBITARRAYOID = 1563, + VARBITOID = 1562, + VARCHARARRAYOID = 1015, + VARCHAROID = 1043, + VOIDOID = 2278, + XID8ARRAYOID = 271, + XID8OID = 5069, + XIDARRAYOID = 1011, + XIDOID = 28, + XMLARRAYOID = 143, + XMLOID = 142, +} +impl BuiltinOid { + pub const fn from_u32(uint: u32) -> Result { + match uint { + 0 => Err(NotBuiltinOid::Invalid), + 1034 => Ok(BuiltinOid::ACLITEMARRAYOID), + 1033 => Ok(BuiltinOid::ACLITEMOID), + 2277 => Ok(BuiltinOid::ANYARRAYOID), + 5078 => Ok(BuiltinOid::ANYCOMPATIBLEARRAYOID), + 4538 => Ok(BuiltinOid::ANYCOMPATIBLEMULTIRANGEOID), + 5079 => Ok(BuiltinOid::ANYCOMPATIBLENONARRAYOID), + 5077 => Ok(BuiltinOid::ANYCOMPATIBLEOID), + 5080 => Ok(BuiltinOid::ANYCOMPATIBLERANGEOID), + 2283 => Ok(BuiltinOid::ANYELEMENTOID), + 3500 => Ok(BuiltinOid::ANYENUMOID), + 4537 => Ok(BuiltinOid::ANYMULTIRANGEOID), + 2776 => Ok(BuiltinOid::ANYNONARRAYOID), + 2276 => Ok(BuiltinOid::ANYOID), + 3831 => Ok(BuiltinOid::ANYRANGEOID), + 1249 => Ok(BuiltinOid::AttributeRelationId), + 1260 => Ok(BuiltinOid::AuthIdRelationId), + 1561 => Ok(BuiltinOid::BITARRAYOID), + 1560 => Ok(BuiltinOid::BITOID), + 1000 => Ok(BuiltinOid::BOOLARRAYOID), + 16 => Ok(BuiltinOid::BOOLOID), + 1020 => Ok(BuiltinOid::BOXARRAYOID), + 603 => Ok(BuiltinOid::BOXOID), + 1014 => Ok(BuiltinOid::BPCHARARRAYOID), + 1042 => Ok(BuiltinOid::BPCHAROID), + 1001 => Ok(BuiltinOid::BYTEAARRAYOID), + 17 => Ok(BuiltinOid::BYTEAOID), + 1002 => Ok(BuiltinOid::CHARARRAYOID), + 18 => Ok(BuiltinOid::CHAROID), + 1012 => Ok(BuiltinOid::CIDARRAYOID), + 29 => Ok(BuiltinOid::CIDOID), + 651 => Ok(BuiltinOid::CIDRARRAYOID), + 650 => Ok(BuiltinOid::CIDROID), + 719 => Ok(BuiltinOid::CIRCLEARRAYOID), + 718 => Ok(BuiltinOid::CIRCLEOID), + 1263 => Ok(BuiltinOid::CSTRINGARRAYOID), + 2275 => Ok(BuiltinOid::CSTRINGOID), + 1182 => Ok(BuiltinOid::DATEARRAYOID), + 6155 => Ok(BuiltinOid::DATEMULTIRANGEARRAYOID), + 4535 => Ok(BuiltinOid::DATEMULTIRANGEOID), + 1082 => Ok(BuiltinOid::DATEOID), + 3913 => Ok(BuiltinOid::DATERANGEARRAYOID), + 3912 => Ok(BuiltinOid::DATERANGEOID), + 1663 => Ok(BuiltinOid::DEFAULTTABLESPACE_OID), + 1262 => Ok(BuiltinOid::DatabaseRelationId), + 3838 => Ok(BuiltinOid::EVENT_TRIGGEROID), + 3501 => Ok(BuiltinOid::EnumRelationId), + 3466 => Ok(BuiltinOid::EventTriggerRelationId), + 3079 => Ok(BuiltinOid::ExtensionRelationId), + 3115 => Ok(BuiltinOid::FDW_HANDLEROID), + 1021 => Ok(BuiltinOid::FLOAT4ARRAYOID), + 700 => Ok(BuiltinOid::FLOAT4OID), + 1022 => Ok(BuiltinOid::FLOAT8ARRAYOID), + 701 => Ok(BuiltinOid::FLOAT8OID), + 1664 => Ok(BuiltinOid::GLOBALTABLESPACE_OID), + 3644 => Ok(BuiltinOid::GTSVECTORARRAYOID), + 3642 => Ok(BuiltinOid::GTSVECTOROID), + 325 => Ok(BuiltinOid::INDEX_AM_HANDLEROID), + 1041 => Ok(BuiltinOid::INETARRAYOID), + 869 => Ok(BuiltinOid::INETOID), + 1005 => Ok(BuiltinOid::INT2ARRAYOID), + 21 => Ok(BuiltinOid::INT2OID), + 1006 => Ok(BuiltinOid::INT2VECTORARRAYOID), + 22 => Ok(BuiltinOid::INT2VECTOROID), + 1007 => Ok(BuiltinOid::INT4ARRAYOID), + 6150 => Ok(BuiltinOid::INT4MULTIRANGEARRAYOID), + 4451 => Ok(BuiltinOid::INT4MULTIRANGEOID), + 23 => Ok(BuiltinOid::INT4OID), + 3905 => Ok(BuiltinOid::INT4RANGEARRAYOID), + 3904 => Ok(BuiltinOid::INT4RANGEOID), + 1016 => Ok(BuiltinOid::INT8ARRAYOID), + 6157 => Ok(BuiltinOid::INT8MULTIRANGEARRAYOID), + 4536 => Ok(BuiltinOid::INT8MULTIRANGEOID), + 20 => Ok(BuiltinOid::INT8OID), + 3927 => Ok(BuiltinOid::INT8RANGEARRAYOID), + 3926 => Ok(BuiltinOid::INT8RANGEOID), + 2281 => Ok(BuiltinOid::INTERNALOID), + 1187 => Ok(BuiltinOid::INTERVALARRAYOID), + 1186 => Ok(BuiltinOid::INTERVALOID), + 2610 => Ok(BuiltinOid::IndexRelationId), + 199 => Ok(BuiltinOid::JSONARRAYOID), + 3807 => Ok(BuiltinOid::JSONBARRAYOID), + 3802 => Ok(BuiltinOid::JSONBOID), + 114 => Ok(BuiltinOid::JSONOID), + 4073 => Ok(BuiltinOid::JSONPATHARRAYOID), + 4072 => Ok(BuiltinOid::JSONPATHOID), + 2280 => Ok(BuiltinOid::LANGUAGE_HANDLEROID), + 629 => Ok(BuiltinOid::LINEARRAYOID), + 628 => Ok(BuiltinOid::LINEOID), + 1018 => Ok(BuiltinOid::LSEGARRAYOID), + 601 => Ok(BuiltinOid::LSEGOID), + 775 => Ok(BuiltinOid::MACADDR8ARRAYOID), + 774 => Ok(BuiltinOid::MACADDR8OID), + 1040 => Ok(BuiltinOid::MACADDRARRAYOID), + 829 => Ok(BuiltinOid::MACADDROID), + 791 => Ok(BuiltinOid::MONEYARRAYOID), + 790 => Ok(BuiltinOid::MONEYOID), + 1003 => Ok(BuiltinOid::NAMEARRAYOID), + 19 => Ok(BuiltinOid::NAMEOID), + 1231 => Ok(BuiltinOid::NUMERICARRAYOID), + 1700 => Ok(BuiltinOid::NUMERICOID), + 6151 => Ok(BuiltinOid::NUMMULTIRANGEARRAYOID), + 4532 => Ok(BuiltinOid::NUMMULTIRANGEOID), + 3907 => Ok(BuiltinOid::NUMRANGEARRAYOID), + 3906 => Ok(BuiltinOid::NUMRANGEOID), + 2615 => Ok(BuiltinOid::NamespaceRelationId), + 1028 => Ok(BuiltinOid::OIDARRAYOID), + 26 => Ok(BuiltinOid::OIDOID), + 1013 => Ok(BuiltinOid::OIDVECTORARRAYOID), + 30 => Ok(BuiltinOid::OIDVECTOROID), + 2617 => Ok(BuiltinOid::OperatorRelationId), + 1019 => Ok(BuiltinOid::PATHARRAYOID), + 602 => Ok(BuiltinOid::PATHOID), + 270 => Ok(BuiltinOid::PG_ATTRIBUTEARRAYOID), + 4600 => Ok(BuiltinOid::PG_BRIN_BLOOM_SUMMARYOID), + 4601 => Ok(BuiltinOid::PG_BRIN_MINMAX_MULTI_SUMMARYOID), + 273 => Ok(BuiltinOid::PG_CLASSARRAYOID), + 32 => Ok(BuiltinOid::PG_DDL_COMMANDOID), + 3402 => Ok(BuiltinOid::PG_DEPENDENCIESOID), + 3221 => Ok(BuiltinOid::PG_LSNARRAYOID), + 3220 => Ok(BuiltinOid::PG_LSNOID), + 5017 => Ok(BuiltinOid::PG_MCV_LISTOID), + 3361 => Ok(BuiltinOid::PG_NDISTINCTOID), + 194 => Ok(BuiltinOid::PG_NODE_TREEOID), + 272 => Ok(BuiltinOid::PG_PROCARRAYOID), + 5039 => Ok(BuiltinOid::PG_SNAPSHOTARRAYOID), + 5038 => Ok(BuiltinOid::PG_SNAPSHOTOID), + 210 => Ok(BuiltinOid::PG_TYPEARRAYOID), + 1017 => Ok(BuiltinOid::POINTARRAYOID), + 600 => Ok(BuiltinOid::POINTOID), + 1027 => Ok(BuiltinOid::POLYGONARRAYOID), + 604 => Ok(BuiltinOid::POLYGONOID), + 1255 => Ok(BuiltinOid::ProcedureRelationId), + 6104 => Ok(BuiltinOid::PublicationRelationId), + 2287 => Ok(BuiltinOid::RECORDARRAYOID), + 2249 => Ok(BuiltinOid::RECORDOID), + 2201 => Ok(BuiltinOid::REFCURSORARRAYOID), + 1790 => Ok(BuiltinOid::REFCURSOROID), + 2210 => Ok(BuiltinOid::REGCLASSARRAYOID), + 2205 => Ok(BuiltinOid::REGCLASSOID), + 4192 => Ok(BuiltinOid::REGCOLLATIONARRAYOID), + 4191 => Ok(BuiltinOid::REGCOLLATIONOID), + 3735 => Ok(BuiltinOid::REGCONFIGARRAYOID), + 3734 => Ok(BuiltinOid::REGCONFIGOID), + 3770 => Ok(BuiltinOid::REGDICTIONARYARRAYOID), + 3769 => Ok(BuiltinOid::REGDICTIONARYOID), + 4090 => Ok(BuiltinOid::REGNAMESPACEARRAYOID), + 4089 => Ok(BuiltinOid::REGNAMESPACEOID), + 2208 => Ok(BuiltinOid::REGOPERARRAYOID), + 2209 => Ok(BuiltinOid::REGOPERATORARRAYOID), + 2204 => Ok(BuiltinOid::REGOPERATOROID), + 2203 => Ok(BuiltinOid::REGOPEROID), + 1008 => Ok(BuiltinOid::REGPROCARRAYOID), + 2207 => Ok(BuiltinOid::REGPROCEDUREARRAYOID), + 2202 => Ok(BuiltinOid::REGPROCEDUREOID), + 24 => Ok(BuiltinOid::REGPROCOID), + 4097 => Ok(BuiltinOid::REGROLEARRAYOID), + 4096 => Ok(BuiltinOid::REGROLEOID), + 2211 => Ok(BuiltinOid::REGTYPEARRAYOID), + 2206 => Ok(BuiltinOid::REGTYPEOID), + 1259 => Ok(BuiltinOid::RelationRelationId), + 2619 => Ok(BuiltinOid::StatisticRelationId), + 269 => Ok(BuiltinOid::TABLE_AM_HANDLEROID), + 1009 => Ok(BuiltinOid::TEXTARRAYOID), + 25 => Ok(BuiltinOid::TEXTOID), + 1010 => Ok(BuiltinOid::TIDARRAYOID), + 27 => Ok(BuiltinOid::TIDOID), + 1183 => Ok(BuiltinOid::TIMEARRAYOID), + 1083 => Ok(BuiltinOid::TIMEOID), + 1115 => Ok(BuiltinOid::TIMESTAMPARRAYOID), + 1114 => Ok(BuiltinOid::TIMESTAMPOID), + 1185 => Ok(BuiltinOid::TIMESTAMPTZARRAYOID), + 1184 => Ok(BuiltinOid::TIMESTAMPTZOID), + 1270 => Ok(BuiltinOid::TIMETZARRAYOID), + 1266 => Ok(BuiltinOid::TIMETZOID), + 2279 => Ok(BuiltinOid::TRIGGEROID), + 6152 => Ok(BuiltinOid::TSMULTIRANGEARRAYOID), + 4533 => Ok(BuiltinOid::TSMULTIRANGEOID), + 3310 => Ok(BuiltinOid::TSM_HANDLEROID), + 3645 => Ok(BuiltinOid::TSQUERYARRAYOID), + 3615 => Ok(BuiltinOid::TSQUERYOID), + 3909 => Ok(BuiltinOid::TSRANGEARRAYOID), + 3908 => Ok(BuiltinOid::TSRANGEOID), + 6153 => Ok(BuiltinOid::TSTZMULTIRANGEARRAYOID), + 4534 => Ok(BuiltinOid::TSTZMULTIRANGEOID), + 3911 => Ok(BuiltinOid::TSTZRANGEARRAYOID), + 3910 => Ok(BuiltinOid::TSTZRANGEOID), + 3643 => Ok(BuiltinOid::TSVECTORARRAYOID), + 3614 => Ok(BuiltinOid::TSVECTOROID), + 2949 => Ok(BuiltinOid::TXID_SNAPSHOTARRAYOID), + 2970 => Ok(BuiltinOid::TXID_SNAPSHOTOID), + 1213 => Ok(BuiltinOid::TableSpaceRelationId), + 2620 => Ok(BuiltinOid::TriggerRelationId), + 1247 => Ok(BuiltinOid::TypeRelationId), + 705 => Ok(BuiltinOid::UNKNOWNOID), + 2951 => Ok(BuiltinOid::UUIDARRAYOID), + 2950 => Ok(BuiltinOid::UUIDOID), + 1563 => Ok(BuiltinOid::VARBITARRAYOID), + 1562 => Ok(BuiltinOid::VARBITOID), + 1015 => Ok(BuiltinOid::VARCHARARRAYOID), + 1043 => Ok(BuiltinOid::VARCHAROID), + 2278 => Ok(BuiltinOid::VOIDOID), + 271 => Ok(BuiltinOid::XID8ARRAYOID), + 5069 => Ok(BuiltinOid::XID8OID), + 1011 => Ok(BuiltinOid::XIDARRAYOID), + 28 => Ok(BuiltinOid::XIDOID), + 143 => Ok(BuiltinOid::XMLARRAYOID), + 142 => Ok(BuiltinOid::XMLOID), + _ => Err(NotBuiltinOid::Ambiguous), + } + } +} diff --git a/pgrx-pg-sys/src/submodules/elog.rs b/pgrx-pg-sys/src/submodules/elog.rs index a4b3d5181..cebb3ce61 100644 --- a/pgrx-pg-sys/src/submodules/elog.rs +++ b/pgrx-pg-sys/src/submodules/elog.rs @@ -419,7 +419,13 @@ pub fn interrupt_pending() -> bool { crate::InterruptPending } - #[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" + ))] unsafe { crate::InterruptPending != 0 } @@ -438,7 +444,13 @@ macro_rules! check_for_interrupts { } } - #[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" + ))] #[allow(unused_unsafe)] unsafe { if $crate::InterruptPending != 0 { diff --git a/pgrx-pg-sys/src/submodules/mod.rs b/pgrx-pg-sys/src/submodules/mod.rs index a6702eaf9..c62f213eb 100644 --- a/pgrx-pg-sys/src/submodules/mod.rs +++ b/pgrx-pg-sys/src/submodules/mod.rs @@ -28,7 +28,13 @@ mod sql_translatable; pub use datum::Datum; // OnDrop(feature = "pg11"): remove this cfg if all supported versions of Postgres // now include NullableDatum. -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] pub use datum::NullableDatum; pub use oids::*; diff --git a/pgrx-pg-sys/src/submodules/panic.rs b/pgrx-pg-sys/src/submodules/panic.rs index d4984a3ca..dff49e58f 100644 --- a/pgrx-pg-sys/src/submodules/panic.rs +++ b/pgrx-pg-sys/src/submodules/panic.rs @@ -510,7 +510,7 @@ fn do_ereport(ereport: ErrorReportWithLevel) { /// In this case, we only allocate file, lineno and funcname if `errstart` returns true #[inline(always)] #[rustfmt::skip] // my opinion wins - #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] fn do_ereport_impl(ereport: ErrorReportWithLevel) { extern "C" { diff --git a/pgrx-pg-sys/src/submodules/sql_translatable.rs b/pgrx-pg-sys/src/submodules/sql_translatable.rs index 11ae227b0..684211982 100644 --- a/pgrx-pg-sys/src/submodules/sql_translatable.rs +++ b/pgrx-pg-sys/src/submodules/sql_translatable.rs @@ -2,7 +2,13 @@ use pgrx_sql_entity_graph::metadata::{ ArgumentError, Returns, ReturnsError, SqlMapping, SqlTranslatable, }; -#[cfg(any(feature = "pg15", feature = "pg14", feature = "pg13", feature = "pg12"))] +#[cfg(any( + feature = "pg16", + feature = "pg15", + feature = "pg14", + feature = "pg13", + feature = "pg12" +))] unsafe impl SqlTranslatable for crate::FunctionCallInfoBaseData { fn argument_sql() -> Result { Ok(SqlMapping::Skip) diff --git a/pgrx-tests/Cargo.toml b/pgrx-tests/Cargo.toml index 9bbbafc9b..10f2694f8 100644 --- a/pgrx-tests/Cargo.toml +++ b/pgrx-tests/Cargo.toml @@ -20,6 +20,7 @@ pg12 = [ "pgrx/pg12" ] pg13 = [ "pgrx/pg13" ] pg14 = [ "pgrx/pg14" ] pg15 = [ "pgrx/pg15" ] +pg16 = [ "pgrx/pg16" ] pg_test = [ ] cshim = [ "pgrx/cshim" ] no-schema-generation = [ "pgrx/no-schema-generation", "pgrx-macros/no-schema-generation" ] diff --git a/pgrx/Cargo.toml b/pgrx/Cargo.toml index 2b1bb982f..39dcedf95 100644 --- a/pgrx/Cargo.toml +++ b/pgrx/Cargo.toml @@ -23,6 +23,7 @@ pg12 = [ "pgrx-pg-sys/pg12" ] pg13 = [ "pgrx-pg-sys/pg13" ] pg14 = [ "pgrx-pg-sys/pg14" ] pg15 = [ "pgrx-pg-sys/pg15" ] +pg16 = [ "pgrx-pg-sys/pg16" ] no-schema-generation = ["pgrx-macros/no-schema-generation", "pgrx-sql-entity-graph/no-schema-generation"] unsafe-postgres = [] # when trying to compile against something that looks like Postgres but claims to be diffent diff --git a/pgrx/src/bgworkers.rs b/pgrx/src/bgworkers.rs index 37503b4d7..eb58ff5be 100644 --- a/pgrx/src/bgworkers.rs +++ b/pgrx/src/bgworkers.rs @@ -74,7 +74,8 @@ impl BackgroundWorker { feature = "pg12", feature = "pg13", feature = "pg14", - feature = "pg15" + feature = "pg15", + feature = "pg16" ))] const LEN: usize = 96; @@ -163,7 +164,8 @@ impl BackgroundWorker { feature = "pg12", feature = "pg13", feature = "pg14", - feature = "pg15" + feature = "pg15", + feature = "pg16" ))] pg_sys::BackgroundWorkerInitializeConnection(db, user, 0); }; @@ -569,7 +571,8 @@ impl<'a> Into for &'a BackgroundWorkerBuilder { feature = "pg12", feature = "pg13", feature = "pg14", - feature = "pg15" + feature = "pg15", + feature = "pg16" ))] let bgw = pg_sys::BackgroundWorker { bgw_name: RpgffiChar::from(&self.bgw_name[..]).0, @@ -611,7 +614,8 @@ fn wait_latch(timeout: libc::c_long, wakeup_flags: WLflags) -> i32 { feature = "pg12", feature = "pg13", feature = "pg14", - feature = "pg15" + feature = "pg15", + feature = "pg16" ))] type RpgffiChar = RpgffiChar96; diff --git a/pgrx/src/datum/datetime_support/mod.rs b/pgrx/src/datum/datetime_support/mod.rs index c6ca09393..082a58c6f 100644 --- a/pgrx/src/datum/datetime_support/mod.rs +++ b/pgrx/src/datum/datetime_support/mod.rs @@ -195,7 +195,7 @@ pub trait HasExtractableParts: Clone + IntoDatum + seal::DateTimeType { Self::EXTRACT_FUNCTION, &[field_datum, self.clone().into_datum()], ); - #[cfg(any(feature = "pg14", feature = "pg15"))] + #[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] let field_value: Option = direct_function_call( Self::EXTRACT_FUNCTION, &[field_datum, self.clone().into_datum()], @@ -226,7 +226,7 @@ pub trait ToIsoString: IntoDatum + Sized + Display + seal::DateTimeType { self.into_datum().unwrap(), Self::type_oid(), ); - #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] let jsonb = pg_sys::JsonEncodeDateTime( std::ptr::null_mut(), self.into_datum().unwrap(), @@ -248,7 +248,7 @@ pub trait ToIsoString: IntoDatum + Sized + Display + seal::DateTimeType { /// # Notes /// /// This function is only available on Postgres v13 and greater - #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] fn to_iso_string_with_timezone>( self, timezone: Tz, @@ -413,7 +413,7 @@ mod pg11_13 { } } -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] const DATE_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::extract_date; impl_wrappers!( @@ -429,7 +429,7 @@ impl_wrappers!( #[cfg(any(feature = "pg11", feature = "pg12", feature = "pg13"))] const TIME_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::time_part; -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] const TIME_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::extract_time; @@ -446,7 +446,7 @@ impl_wrappers!( #[cfg(any(feature = "pg11", feature = "pg12", feature = "pg13"))] const TIMETZ_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::timetz_part; -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] const TIMETZ_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::extract_timetz; @@ -463,7 +463,7 @@ impl_wrappers!( #[cfg(any(feature = "pg11", feature = "pg12", feature = "pg13"))] const TIMESTAMP_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::timestamp_part; -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] const TIMESTAMP_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::extract_timestamp; @@ -480,7 +480,7 @@ impl_wrappers!( #[cfg(any(feature = "pg11", feature = "pg12", feature = "pg13"))] const TIMESTAMPTZ_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::timestamptz_part; -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] const TIMESTAMPTZ_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::extract_timestamptz; @@ -497,7 +497,7 @@ impl_wrappers!( #[cfg(any(feature = "pg11", feature = "pg12", feature = "pg13"))] const INTERVAL_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::interval_part; -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] const INTERVAL_EXTRACT: unsafe fn(fcinfo: pg_sys::FunctionCallInfo) -> pg_sys::Datum = pg_sys::extract_interval; @@ -540,7 +540,26 @@ pub fn get_timezone_offset>(zone: Tz) -> Result pg_sys::Oid { } } -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] unsafe fn extract_enum_oid(tup: *mut pg_sys::HeapTupleData) -> pg_sys::Oid { let en = { // SAFETY: the caller has assured us that `tup` is a valid HeapTupleData pointer diff --git a/pgrx/src/fcinfo.rs b/pgrx/src/fcinfo.rs index 7278722f3..e914b8f20 100644 --- a/pgrx/src/fcinfo.rs +++ b/pgrx/src/fcinfo.rs @@ -192,7 +192,13 @@ mod pg_11 { } } -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] mod pg_12_13_14_15 { use crate::{pg_sys, FromDatum}; @@ -321,7 +327,13 @@ mod pg_12_13_14_15 { #[cfg(any(feature = "pg11"))] pub use pg_11::*; -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] pub use pg_12_13_14_15::*; /// Get a numbered argument for a `PG_FUNCTION_INFO_V1` function as raw pointer to a Rust type `T`. diff --git a/pgrx/src/guc.rs b/pgrx/src/guc.rs index 7bc9c7bfc..5be41426c 100644 --- a/pgrx/src/guc.rs +++ b/pgrx/src/guc.rs @@ -94,7 +94,7 @@ bitflags! { /// Include in `EXPLAIN` output #[cfg(not(feature = "pg11"))] const EXPLAIN = pg_sys::GUC_EXPLAIN as i32; - #[cfg(feature = "pg15")] + #[cfg(any(feature = "pg15", feature = "pg16"))] /// `RUNTIME_COMPUTED` is intended for runtime-computed GUCs that are only available via /// `postgres -C` if the server is not running const RUNTIME_COMPUTED = pg_sys::GUC_RUNTIME_COMPUTED as i32; diff --git a/pgrx/src/hooks.rs b/pgrx/src/hooks.rs index a99f994e1..02aae23d5 100644 --- a/pgrx/src/hooks.rs +++ b/pgrx/src/hooks.rs @@ -20,7 +20,7 @@ use std::ops::Deref; // that option will always be set to None at runtime. pub struct JumbleState {} -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] pub use pg_sys::JumbleState; pub struct HookResult { @@ -379,7 +379,7 @@ unsafe extern "C" fn pgrx_process_utility( ) .inner } -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] #[pg_guard] unsafe extern "C" fn pgrx_process_utility( pstmt: *mut pg_sys::PlannedStmt, @@ -440,7 +440,7 @@ unsafe extern "C" fn pgrx_planner( pgrx_planner_impl(parse, std::ptr::null(), cursor_options, bound_params) } -#[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] #[pg_guard] unsafe extern "C" fn pgrx_planner( parse: *mut pg_sys::Query, @@ -474,7 +474,7 @@ unsafe extern "C" fn pgrx_planner_impl( ) } - #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] { (HOOKS.as_mut().unwrap().prev_planner_hook.as_ref().unwrap())( parse.into_pg(), @@ -519,7 +519,7 @@ unsafe extern "C" fn pgrx_post_parse_analyze( hook.post_parse_analyze(PgBox::from_pg(parse_state), PgBox::from_pg(query), None, prev).inner } -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] #[pg_guard] unsafe extern "C" fn pgrx_post_parse_analyze( parse_state: *mut pg_sys::ParseState, @@ -624,7 +624,7 @@ unsafe extern "C" fn pgrx_standard_process_utility_wrapper( ) } -#[cfg(any(feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg14", feature = "pg15", feature = "pg16"))] #[pg_guard] unsafe extern "C" fn pgrx_standard_process_utility_wrapper( pstmt: *mut pg_sys::PlannedStmt, @@ -658,7 +658,7 @@ unsafe extern "C" fn pgrx_standard_planner_wrapper( pg_sys::standard_planner(parse, cursor_options, bound_params) } -#[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] #[pg_guard] unsafe extern "C" fn pgrx_standard_planner_wrapper( parse: *mut pg_sys::Query, diff --git a/pgrx/src/lib.rs b/pgrx/src/lib.rs index 24366d14d..0a1755ea3 100644 --- a/pgrx/src/lib.rs +++ b/pgrx/src/lib.rs @@ -130,12 +130,12 @@ pub use pg_sys::{ #[doc(hidden)] pub use pgrx_sql_entity_graph; -// Postgres v15 has the concept of an ABI "name". The default is `b"PostgreSQL\0"` and this is the +// Postgres v15+ has the concept of an ABI "name". The default is `b"PostgreSQL\0"` and this is the // ABI that pgrx extensions expect to be running under. We will refuse to compile if it is detected // that we're trying to be built against some other kind of "postgres" that has its own ABI name. // // Unless the compiling user explicitly told us that they're aware of this via `--features unsafe-postgres`. -#[cfg(all(feature = "pg15", not(feature = "unsafe-postgres")))] +#[cfg(all(any(feature = "pg15", feature = "pg16"), not(feature = "unsafe-postgres")))] const _: () = { // to appease `const` const fn same_slice(a: &[u8], b: &[u8]) -> bool { @@ -240,7 +240,7 @@ macro_rules! pg_magic_func { float8byval: cfg!(target_pointer_width = "64") as i32, }; - #[cfg(any(feature = "pg15"))] + #[cfg(any(feature = "pg15", feature = "pg16"))] const MY_MAGIC: pgrx::pg_sys::Pg_magic_struct = pgrx::pg_sys::Pg_magic_struct { len: size_of::() as i32, version: pgrx::pg_sys::PG_VERSION_NUM as i32 / 100, diff --git a/pgrx/src/list.rs b/pgrx/src/list.rs index 3792fb032..f93f3919a 100644 --- a/pgrx/src/list.rs +++ b/pgrx/src/list.rs @@ -131,7 +131,7 @@ impl PgList { cell.as_mut().expect("cell is null").data.ptr_value = with as void_mut_ptr; } - #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] #[inline] pub unsafe fn replace_ptr(&mut self, i: usize, with: *mut T) { let cell = pg_sys::pgrx_list_nth_cell(self.list, i as i32); @@ -147,7 +147,7 @@ impl PgList { } } - #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] #[inline] pub fn replace_int(&mut self, i: usize, with: i32) { unsafe { @@ -165,7 +165,7 @@ impl PgList { } } - #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15"))] + #[cfg(any(feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16"))] #[inline] pub fn replace_oid(&mut self, i: usize, with: pg_sys::Oid) { unsafe { diff --git a/pgrx/src/namespace.rs b/pgrx/src/namespace.rs index 211461131..260997b7f 100644 --- a/pgrx/src/namespace.rs +++ b/pgrx/src/namespace.rs @@ -15,9 +15,9 @@ use pgrx_pg_sys::AsPgCStr; /// A helper struct for creating a Postgres `List` of `String`s to qualify an object name pub struct PgQualifiedNameBuilder { - #[cfg(feature = "pg15")] + #[cfg(any(feature = "pg15", feature = "pg16"))] list: PgList, - #[cfg(not(feature = "pg15"))] + #[cfg(not(any(feature = "pg15", feature = "pg16")))] list: PgList, } @@ -30,9 +30,9 @@ impl Default for PgQualifiedNameBuilder { impl PgQualifiedNameBuilder { pub fn new() -> PgQualifiedNameBuilder { PgQualifiedNameBuilder { - #[cfg(feature = "pg15")] + #[cfg(any(feature = "pg15", feature = "pg16"))] list: PgList::::new(), - #[cfg(not(feature = "pg15"))] + #[cfg(not(any(feature = "pg15", feature = "pg16")))] list: PgList::::new(), } } diff --git a/pgrx/src/shmem.rs b/pgrx/src/shmem.rs index 0a898d0e0..6b4ec243a 100644 --- a/pgrx/src/shmem.rs +++ b/pgrx/src/shmem.rs @@ -47,7 +47,7 @@ pub unsafe trait PGRXSharedMemory {} /// pg_shmem_init!(ATOMIC); /// } /// ``` -#[cfg(not(feature = "pg15"))] +#[cfg(not(any(feature = "pg15", feature = "pg16")))] #[macro_export] macro_rules! pg_shmem_init { ($thing:expr) => { @@ -71,7 +71,7 @@ macro_rules! pg_shmem_init { }; } -#[cfg(feature = "pg15")] +#[cfg(any(feature = "pg15", feature = "pg16"))] #[macro_export] macro_rules! pg_shmem_init { ($thing:expr) => { diff --git a/pgrx/src/stringinfo.rs b/pgrx/src/stringinfo.rs index d78b0eb1d..4ee6afa08 100644 --- a/pgrx/src/stringinfo.rs +++ b/pgrx/src/stringinfo.rs @@ -161,7 +161,7 @@ impl StringInfo { unsafe { // SAFETY: self.inner will always be a valid StringInfoData pointer // and the caller gets to decide if `ptr` and `len` line up - pg_sys::appendBinaryStringInfo(self.inner.as_ptr(), ptr, len) + pg_sys::appendBinaryStringInfo(self.inner.as_ptr(), ptr.cast(), len) } } diff --git a/pgrx/src/tupdesc.rs b/pgrx/src/tupdesc.rs index c46e8805a..42c1fc74b 100644 --- a/pgrx/src/tupdesc.rs +++ b/pgrx/src/tupdesc.rs @@ -10,8 +10,10 @@ Use of this source code is governed by the MIT license that can be found in the //! Provides a safe wrapper around Postgres' `pg_sys::TupleDescData` struct use crate::{pg_sys, void_mut_ptr, PgBox, PgRelation}; -use pgrx_pg_sys::AsPgCStr; +use pgrx_pg_sys::errcodes::PgSqlErrorCode; +use pgrx_pg_sys::{AsPgCStr, PgTryBuilder}; use std::ops::Deref; +use std::panic::AssertUnwindSafe; /// This struct is passed around within the backend to describe the structure /// of tuples. For tuples coming from on-disk relations, the information is @@ -177,8 +179,25 @@ impl<'a> PgTupleDesc<'a> { unsafe { let mut typoid = pg_sys::Oid::INVALID; let mut typmod = 0; + + #[cfg(not(feature = "pg16"))] pg_sys::parseTypeString(name.as_pg_cstr(), &mut typoid, &mut typmod, true); + #[cfg(feature = "pg16")] + if PgTryBuilder::new(AssertUnwindSafe(|| { + pg_sys::parseTypeString( + name.as_pg_cstr(), + &mut typoid, + &mut typmod, + std::ptr::null_mut(), + ) + })) + .catch_when(PgSqlErrorCode::ERRCODE_UNDEFINED_OBJECT, |_| false) + .execute() + { + return None; + } + Self::for_composite_type_by_oid(typoid) } } @@ -294,7 +313,8 @@ pub unsafe fn release_tupdesc(ptr: pg_sys::TupleDesc) { feature = "pg12", feature = "pg13", feature = "pg14", - feature = "pg15" + feature = "pg15", + feature = "pg16" ))] #[inline] fn tupdesc_get_attr( diff --git a/pgrx/src/xid.rs b/pgrx/src/xid.rs index 323b5a7c9..87bdeefb7 100644 --- a/pgrx/src/xid.rs +++ b/pgrx/src/xid.rs @@ -22,7 +22,13 @@ pub fn xid_to_64bit(xid: pg_sys::TransactionId) -> u64 { convert_xid_common(xid, last_xid, epoch) } -#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))] +#[cfg(any( + feature = "pg12", + feature = "pg13", + feature = "pg14", + feature = "pg15", + feature = "pg16" +))] #[inline] pub fn xid_to_64bit(xid: pg_sys::TransactionId) -> u64 { let full_xid = unsafe { pg_sys::ReadNextFullTransactionId() }; From 79a8410c741061c95f911d6ba060c6bab75e7d95 Mon Sep 17 00:00:00 2001 From: "Eric B. Ridge" Date: Thu, 15 Jun 2023 16:32:07 -0400 Subject: [PATCH 03/20] Fix all test failures for pg16 - re-implement `GucSetting` to use an opaque usize, so that it can be compatible with all pg version. 16 requires the setting pointer value to be the same as the "boot_value" when defining a new GUC -- older versions didn't care about that. - with the above, string `GucSetting`s are now `GucSetting>` instead of `&str` because they're actually CStrings. - pg16 exposes the previously private `GetMemoryChunkContext()` function, so we use it in our backwards named `GetMemoryContextChunk()` function. :/ - Use our existing `regtypein()` function instead of `parseTypeString()` - Add a version of `get_timezone_offset()` for pg16 - pg16 got rid of the `postmaster` symlink, so use `postgres` in that case -- we could just use that for everything but I decided to be explicit that it changed --- pgrx-pg-config/src/lib.rs | 7 +- pgrx-pg-sys/src/lib.rs | 55 +++++++----- pgrx-tests/src/tests/guc_tests.rs | 27 +++--- pgrx/src/datum/datetime_support/mod.rs | 45 ++++++++++ pgrx/src/guc.rs | 115 +++++++++++++------------ pgrx/src/tupdesc.rs | 32 ++----- 6 files changed, 167 insertions(+), 114 deletions(-) diff --git a/pgrx-pg-config/src/lib.rs b/pgrx-pg-config/src/lib.rs index 45605f0fc..89ea0975b 100644 --- a/pgrx-pg-config/src/lib.rs +++ b/pgrx-pg-config/src/lib.rs @@ -326,7 +326,12 @@ impl PgConfig { pub fn postmaster_path(&self) -> eyre::Result { let mut path = self.bin_dir()?; - path.push("postmaster"); + + if self.major_version()? > 15 { + path.push("postgres") + } else { + path.push("postmaster"); + } Ok(path) } diff --git a/pgrx-pg-sys/src/lib.rs b/pgrx-pg-sys/src/lib.rs index 54b3c1714..c19fad791 100644 --- a/pgrx-pg-sys/src/lib.rs +++ b/pgrx-pg-sys/src/lib.rs @@ -383,30 +383,39 @@ mod all_versions { pub unsafe fn GetMemoryContextChunk( pointer: *mut std::os::raw::c_void, ) -> pg_sys::MemoryContext { - /* - * Try to detect bogus pointers handed to us, poorly though we can. - * Presumably, a pointer that isn't MAXALIGNED isn't pointing at an - * allocated chunk. - */ - assert!(!pointer.is_null()); - assert_eq!(pointer, MAXALIGN(pointer as usize) as *mut ::std::os::raw::c_void); - - /* - * OK, it's probably safe to look at the context. - */ - // context = *(MemoryContext *) (((char *) pointer) - sizeof(void *)); - let context = unsafe { - // SAFETY: the caller has assured us that `pointer` points to palloc'd memory, which - // means it'll have this header before it - *(pointer - .cast::<::std::os::raw::c_char>() - .sub(std::mem::size_of::<*mut ::std::os::raw::c_void>()) - .cast()) - }; - - assert!(MemoryContextIsValid(context)); + // Postgres versions <16 don't export the "GetMemoryChunkContext" function. It's a "static inline" + // function in `memutils.h`, so we port it to Rust right here + #[cfg(not(feature = "pg16"))] + { + /* + * Try to detect bogus pointers handed to us, poorly though we can. + * Presumably, a pointer that isn't MAXALIGNED isn't pointing at an + * allocated chunk. + */ + assert!(!pointer.is_null()); + assert_eq!(pointer, MAXALIGN(pointer as usize) as *mut ::std::os::raw::c_void); + + /* + * OK, it's probably safe to look at the context. + */ + // context = *(MemoryContext *) (((char *) pointer) - sizeof(void *)); + let context = unsafe { + // SAFETY: the caller has assured us that `pointer` points to palloc'd memory, which + // means it'll have this header before it + *(pointer + .cast::<::std::os::raw::c_char>() + .sub(std::mem::size_of::<*mut ::std::os::raw::c_void>()) + .cast()) + }; + + assert!(MemoryContextIsValid(context)); + + context + } - context + // Postgres 16 does **and** it's implemented different, so we'll just call it now that we can + #[cfg(feature = "pg16")] + pg_sys::GetMemoryChunkContext(pointer) } /// Returns true if memory context is valid, as Postgres determines such a thing. diff --git a/pgrx-tests/src/tests/guc_tests.rs b/pgrx-tests/src/tests/guc_tests.rs index 01876cf4b..ad20c3337 100644 --- a/pgrx-tests/src/tests/guc_tests.rs +++ b/pgrx-tests/src/tests/guc_tests.rs @@ -12,13 +12,14 @@ Use of this source code is governed by the MIT license that can be found in the mod tests { #[allow(unused_imports)] use crate as pgrx_tests; + use std::ffi::CStr; use pgrx::guc::*; use pgrx::prelude::*; #[pg_test] fn test_bool_guc() { - static GUC: GucSetting = GucSetting::new(true); + static GUC: GucSetting = GucSetting::::new(true); GucRegistry::define_bool_guc( "test.bool", "test bool gucs", @@ -38,7 +39,7 @@ mod tests { #[pg_test] fn test_int_guc() { - static GUC: GucSetting = GucSetting::new(42); + static GUC: GucSetting = GucSetting::::new(42); GucRegistry::define_int_guc( "test.int", "test int guc", @@ -60,7 +61,7 @@ mod tests { #[pg_test] fn test_mb_guc() { - static GUC: GucSetting = GucSetting::new(42); + static GUC: GucSetting = GucSetting::::new(42); GucRegistry::define_int_guc( "test.megabytes", "test megabytes guc", @@ -79,7 +80,7 @@ mod tests { #[pg_test] fn test_float_guc() { - static GUC: GucSetting = GucSetting::new(42.42); + static GUC: GucSetting = GucSetting::::new(42.42); GucRegistry::define_float_guc( "test.float", "test float guc", @@ -104,7 +105,10 @@ mod tests { #[pg_test] fn test_string_guc() { - static GUC: GucSetting> = GucSetting::new(Some("this is a test")); + static GUC: GucSetting> = + GucSetting::>::new(Some(unsafe { + CStr::from_bytes_with_nul_unchecked(b"this is a test\0") + })); GucRegistry::define_string_guc( "test.string", "test string guc", @@ -114,18 +118,19 @@ mod tests { GucFlags::default(), ); assert!(GUC.get().is_some()); - assert_eq!(GUC.get().unwrap(), "this is a test"); + assert_eq!(GUC.get().unwrap().to_str().unwrap(), "this is a test"); Spi::run("SET test.string = 'foo'").expect("SPI failed"); - assert_eq!(GUC.get().unwrap(), "foo"); + assert_eq!(GUC.get().unwrap().to_str().unwrap(), "foo"); Spi::run("SET test.string = DEFAULT").expect("SPI failed"); - assert_eq!(GUC.get().unwrap(), "this is a test"); + assert_eq!(GUC.get().unwrap().to_str().unwrap(), "this is a test"); } #[pg_test] fn test_string_guc_null_default() { - static GUC: GucSetting> = GucSetting::new(None); + static GUC: GucSetting> = + GucSetting::>::new(None); GucRegistry::define_string_guc( "test.string", "test string guc", @@ -137,7 +142,7 @@ mod tests { assert!(GUC.get().is_none()); Spi::run("SET test.string = 'foo'").expect("SPI failed"); - assert_eq!(GUC.get().unwrap(), "foo"); + assert_eq!(GUC.get().unwrap().to_str().unwrap(), "foo"); Spi::run("SET test.string = DEFAULT").expect("SPI failed"); assert!(GUC.get().is_none()); @@ -151,7 +156,7 @@ mod tests { Two, Three, } - static GUC: GucSetting = GucSetting::new(TestEnum::Two); + static GUC: GucSetting = GucSetting::::new(TestEnum::Two); GucRegistry::define_enum_guc( "test.enum", "test enum guc", diff --git a/pgrx/src/datum/datetime_support/mod.rs b/pgrx/src/datum/datetime_support/mod.rs index 082a58c6f..dce16ccda 100644 --- a/pgrx/src/datum/datetime_support/mod.rs +++ b/pgrx/src/datum/datetime_support/mod.rs @@ -520,6 +520,50 @@ impl_wrappers!( /// ## Errors /// /// Returns a [`DateTimeConversionError`] if the specified timezone is unknown to Postgres + +#[cfg(feature = "pg16")] +pub fn get_timezone_offset>(zone: Tz) -> Result { + let zone = zone.as_ref(); + PgTryBuilder::new(|| { + unsafe { + let tzname = alloc::ffi::CString::new(zone).unwrap(); + let mut tz = 0; + let mut val = 0; + let mut tzp: *mut pg_tz = 0 as _; + + let tztype = pg_sys::DecodeTimezoneName(tzname.as_ptr(), &mut val, &mut tzp); + + if tztype == pg_sys::TZNAME_FIXED_OFFSET as i32 { + /* fixed-offset abbreviation */ + tz = -val; + } else if tztype == pg_sys::TZNAME_DYNTZ as i32 { + /* dynamic-offset abbreviation, resolve using transaction start time */ + let now = pg_sys::GetCurrentTransactionStartTimestamp(); + let mut isdst = 0; + + tz = pg_sys::DetermineTimeZoneAbbrevOffsetTS(now, tzname.as_ptr(), tzp, &mut isdst); + } else { + /* Get the offset-from-GMT that is valid now for the zone name */ + let now = pg_sys::GetCurrentTransactionStartTimestamp(); + let mut tm = Default::default(); + let mut fsec = 0; + + if pg_sys::timestamp2tm(now, &mut tz, &mut tm, &mut fsec, std::ptr::null_mut(), tzp) + != 0 + { + return Err(DateTimeConversionError::FieldOverflow); + } + } + Ok(-tz) + } + }) + .catch_when(PgSqlErrorCode::ERRCODE_INVALID_PARAMETER_VALUE, |_| { + Err(DateTimeConversionError::UnknownTimezone(zone.to_string())) + }) + .execute() +} + +#[cfg(not(feature = "pg16"))] pub fn get_timezone_offset>(zone: Tz) -> Result { /* * Look up the requested timezone. First we look in the timezone @@ -573,6 +617,7 @@ pub fn get_timezone_offset>(zone: Tz) -> Result where T: Copy, @@ -114,72 +114,78 @@ where /// A safe wrapper around a global variable that can be edited through a GUC pub struct GucSetting { - value: Cell, - char_p: Cell<*mut std::os::raw::c_char>, - enum_o: Cell, -} - -impl GucSetting { - pub const fn new(value: T) -> Self { - GucSetting { - value: Cell::new(value), - char_p: Cell::new(std::ptr::null_mut()), - enum_o: Cell::new(0), - } - } + value: Cell, + boot_val: T, } unsafe impl Sync for GucSetting {} impl GucSetting { + pub const fn new(value: bool) -> Self { + GucSetting { value: Cell::new(value as usize), boot_val: value } + } + pub fn get(&self) -> bool { - self.value.get() + self.value.get() == 1 } - unsafe fn as_ptr(&self) -> *mut bool { - self.value.as_ptr() + fn as_ptr(&self) -> *mut bool { + self.value.as_ptr() as *mut _ } } unsafe impl Sync for GucSetting {} impl GucSetting { + pub const fn new(value: i32) -> Self { + GucSetting { value: Cell::new(value as usize), boot_val: value } + } + pub fn get(&self) -> i32 { - self.value.get() + self.value.get() as i32 } - unsafe fn as_ptr(&self) -> *mut i32 { - self.value.as_ptr() + fn as_ptr(&self) -> *mut i32 { + self.value.as_ptr() as *mut _ } } unsafe impl Sync for GucSetting {} impl GucSetting { + pub const fn new(value: f64) -> Self { + unsafe { + GucSetting { + value: Cell::new(std::mem::transmute::(value) as usize), + boot_val: value, + } + } + } + pub fn get(&self) -> f64 { - self.value.get() + f64::from_bits(self.value.get() as u64) } - unsafe fn as_ptr(&self) -> *mut f64 { - self.value.as_ptr() + fn as_ptr(&self) -> *mut f64 { + self.value.as_ptr() as *mut _ } } -unsafe impl Sync for GucSetting> {} -impl GucSetting> { - pub fn get(&self) -> Option { - let ptr = self.get_char_ptr(); - if ptr.is_null() { - None - } else { - let cstr = unsafe { CStr::from_ptr(ptr) }; - Some(cstr.to_str().unwrap().to_owned()) - } +unsafe impl Sync for GucSetting> {} +impl GucSetting> { + pub const fn new(value: Option<&'static CStr>) -> Self { + GucSetting { value: Cell::new(0), boot_val: value } } - pub fn get_char_ptr(&self) -> *mut std::os::raw::c_char { - unsafe { *self.char_p.as_ptr() } + pub fn get(&self) -> Option<&CStr> { + unsafe { + if self.value.get() == 0 { + None + } else { + Some(CStr::from_ptr(self.value.get() as *const _)) + } + } } - unsafe fn as_ptr(&self) -> *mut *mut std::os::raw::c_char { - self.char_p.as_ptr() + fn as_ptr(&self) -> *mut *mut std::os::raw::c_char { + self.value.as_ptr() as *mut std::os::raw::c_char as *mut _ } } @@ -188,12 +194,16 @@ impl GucSetting where T: GucEnum + Copy, { + pub const fn new(value: T) -> Self { + GucSetting { value: Cell::new(0), boot_val: value } + } + pub fn get(&self) -> T { - T::from_ordinal(self.enum_o.get()) + T::from_ordinal(self.value.get() as _) } pub fn as_ptr(&self) -> *mut i32 { - self.enum_o.as_ptr() + self.value.as_ptr() as *mut _ } } @@ -220,7 +230,7 @@ impl GucRegistry { None, None, None, - ) + ); } } @@ -256,28 +266,25 @@ impl GucRegistry { name: &str, short_description: &str, long_description: &str, - setting: &GucSetting>, + setting: &GucSetting>, context: GucContext, flags: GucFlags, ) { unsafe { - let boot_value = match setting.value.get() { - Some(s) => PgMemoryContexts::TopMemoryContext.pstrdup(s), - None => std::ptr::null_mut(), - }; - + let boot_val = setting.boot_val.map_or(std::ptr::null(), |s| s.as_ptr()); + *setting.as_ptr() = boot_val as *mut _; pg_sys::DefineCustomStringVariable( PgMemoryContexts::TopMemoryContext.pstrdup(name), PgMemoryContexts::TopMemoryContext.pstrdup(short_description), PgMemoryContexts::TopMemoryContext.pstrdup(long_description), setting.as_ptr(), - boot_value, + boot_val, context as isize as u32, flags.bits(), None, None, None, - ) + ); } } @@ -297,7 +304,7 @@ impl GucRegistry { PgMemoryContexts::TopMemoryContext.pstrdup(short_description), PgMemoryContexts::TopMemoryContext.pstrdup(long_description), setting.as_ptr(), - setting.get(), + setting.boot_val, min_value, max_value, context as isize as u32, @@ -305,7 +312,7 @@ impl GucRegistry { None, None, None, - ) + ); } } @@ -320,19 +327,21 @@ impl GucRegistry { T: GucEnum + Copy, { unsafe { + let boot_val = setting.boot_val.to_ordinal(); + (*setting.as_ptr()) = boot_val; pg_sys::DefineCustomEnumVariable( PgMemoryContexts::TopMemoryContext.pstrdup(name), PgMemoryContexts::TopMemoryContext.pstrdup(short_description), PgMemoryContexts::TopMemoryContext.pstrdup(long_description), setting.as_ptr(), - setting.value.get().to_ordinal(), - setting.value.get().config_matrix(), + boot_val, + setting.get().config_matrix(), context as isize as u32, flags.bits(), None, None, None, - ) + ); } } } diff --git a/pgrx/src/tupdesc.rs b/pgrx/src/tupdesc.rs index 42c1fc74b..ae7c2999c 100644 --- a/pgrx/src/tupdesc.rs +++ b/pgrx/src/tupdesc.rs @@ -8,12 +8,11 @@ Use of this source code is governed by the MIT license that can be found in the */ //! Provides a safe wrapper around Postgres' `pg_sys::TupleDescData` struct -use crate::{pg_sys, void_mut_ptr, PgBox, PgRelation}; +use crate::{pg_sys, regtypein, void_mut_ptr, PgBox, PgRelation}; use pgrx_pg_sys::errcodes::PgSqlErrorCode; -use pgrx_pg_sys::{AsPgCStr, PgTryBuilder}; +use pgrx_pg_sys::PgTryBuilder; use std::ops::Deref; -use std::panic::AssertUnwindSafe; /// This struct is passed around within the backend to describe the structure /// of tuples. For tuples coming from on-disk relations, the information is @@ -176,30 +175,11 @@ impl<'a> PgTupleDesc<'a> { ``` */ pub fn for_composite_type(name: &str) -> Option> { - unsafe { - let mut typoid = pg_sys::Oid::INVALID; - let mut typmod = 0; - - #[cfg(not(feature = "pg16"))] - pg_sys::parseTypeString(name.as_pg_cstr(), &mut typoid, &mut typmod, true); - - #[cfg(feature = "pg16")] - if PgTryBuilder::new(AssertUnwindSafe(|| { - pg_sys::parseTypeString( - name.as_pg_cstr(), - &mut typoid, - &mut typmod, - std::ptr::null_mut(), - ) - })) - .catch_when(PgSqlErrorCode::ERRCODE_UNDEFINED_OBJECT, |_| false) - .execute() - { - return None; - } + let typoid = PgTryBuilder::new(|| Some(regtypein(name))) + .catch_when(PgSqlErrorCode::ERRCODE_UNDEFINED_OBJECT, |_| None) + .execute()?; - Self::for_composite_type_by_oid(typoid) - } + Self::for_composite_type_by_oid(typoid) } /// Similar to [`PgTupleDesc::for_composite_type()`] but using the type's [`pg_sys::Oid`] instead From 1a9214fd21c1c9033022a2be0c3089f5c32fc21d Mon Sep 17 00:00:00 2001 From: "Eric B. Ridge" Date: Thu, 15 Jun 2023 16:42:10 -0400 Subject: [PATCH 04/20] trying to get postgres 16 into CI. --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1845419d1..70c0de83e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -29,7 +29,7 @@ jobs: strategy: matrix: - version: ["postgres-11", "postgres-12", "postgres-13", "postgres-14", "postgres-15"] + version: ["postgres-11", "postgres-12", "postgres-13", "postgres-14", "postgres-15", "postgres-16"] os: ["ubuntu-20.04"] steps: From 37100fee62fa49aba4da361acbd7809aa1a7c1ac Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Thu, 15 Jun 2023 17:00:11 -0400 Subject: [PATCH 05/20] Sets up development vs. release versionf of PostgresSQL --- .github/workflows/tests.yml | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 70c0de83e..853363492 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -59,13 +59,6 @@ jobs: sudo apt remove -y '^postgres.*' '^libpq.*' echo "" - echo "----- Set up PostgreSQL Apt repository -----" - sudo apt-get install -y wget gnupg - sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' - wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - - sudo apt-get update -y -qq --fix-missing - echo "" - echo "----- Install system dependencies and PostgreSQL version $PG_VER -----" sudo apt-get install -y \ clang-10 \ @@ -104,6 +97,35 @@ jobs: cargo --version echo "" + - name: Install release version of PostgreSQL + if: matrix.target != 'postgres-16' + run: | + echo "----- Set up PostgreSQL Apt repository -----" + sudo apt-get install -y wget gnupg + sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - + sudo apt-get update -y -qq --fix-missing + echo "" + + sudo apt-get install -y \ + postgresql-$PG_VER \ + postgresql-server-dev-$PG_VER + + + - name: Install develoment version of PostgreSQL + if: matrix.target == 'postgres-16' + run: | + echo "----- Set up PostgreSQL Apt repository -----" + sudo apt-get install -y wget gnupg + sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg-snapshot main" > /etc/apt/sources.list.d/pgdg.list' + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - + sudo apt-get update -y -qq --fix-missing + echo "" + + sudo apt-get install -y \ + postgresql-$PG_VER \ + postgresql-server-dev-$PG_VER + - name: Cache cargo registry uses: actions/cache@v3 continue-on-error: false From d20102c97a258d75c6ff756f628fd7ca3d9455d8 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Thu, 15 Jun 2023 17:04:38 -0400 Subject: [PATCH 06/20] Remove incorrect apt installs for Postgres --- .github/workflows/tests.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 853363492..1dff5382d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -71,9 +71,7 @@ jobs: zlib1g-dev \ strace \ libssl-dev \ - pkg-config \ - postgresql-$PG_VER \ - postgresql-server-dev-$PG_VER + pkg-config echo "----- Set up cross compilation -----" sudo apt-get install -y crossbuild-essential-arm64 @@ -83,10 +81,7 @@ jobs: # TODO: not all of these should be needed, but for now it's likely fine. echo 'BINDGEN_EXTRA_CLANG_ARGS_aarch64-unknown-linux-gnu=-target aarch64-unknown-linux-gnu -isystem /usr/aarch64-linux-gnu/include/ -ccc-gcc-name aarch64-linux-gnu-gcc' >> $GITHUB_ENV - echo "" - echo "----- Set up Postgres permissions -----" - sudo chmod a+rwx `/usr/lib/postgresql/$PG_VER/bin/pg_config --pkglibdir` `/usr/lib/postgresql/$PG_VER/bin/pg_config --sharedir`/extension /var/run/postgresql/ echo "" echo "----- Print env -----" @@ -126,6 +121,9 @@ jobs: postgresql-$PG_VER \ postgresql-server-dev-$PG_VER + - name: Set up PostgreSQL permissions + run: sudo chmod a+rwx `/usr/lib/postgresql/$PG_VER/bin/pg_config --pkglibdir` `/usr/lib/postgresql/$PG_VER/bin/pg_config --sharedir`/extension /var/run/postgresql/ + - name: Cache cargo registry uses: actions/cache@v3 continue-on-error: false From 9499b2b2d8400e32ed0aeb6a1d869eef77977525 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Thu, 15 Jun 2023 17:13:55 -0400 Subject: [PATCH 07/20] Disable crossbuilds for now --- .github/workflows/tests.yml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1dff5382d..6cf768e00 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -73,16 +73,13 @@ jobs: libssl-dev \ pkg-config - echo "----- Set up cross compilation -----" - sudo apt-get install -y crossbuild-essential-arm64 - rustup target add aarch64-unknown-linux-gnu + # echo "----- Set up cross compilation -----" + # sudo apt-get install -y crossbuild-essential-arm64 + # rustup target add aarch64-unknown-linux-gnu - echo 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc' >> $GITHUB_ENV - # TODO: not all of these should be needed, but for now it's likely fine. - echo 'BINDGEN_EXTRA_CLANG_ARGS_aarch64-unknown-linux-gnu=-target aarch64-unknown-linux-gnu -isystem /usr/aarch64-linux-gnu/include/ -ccc-gcc-name aarch64-linux-gnu-gcc' >> $GITHUB_ENV - - echo "----- Set up Postgres permissions -----" - echo "" + # echo 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc' >> $GITHUB_ENV + # # TODO: not all of these should be needed, but for now it's likely fine. + # echo 'BINDGEN_EXTRA_CLANG_ARGS_aarch64-unknown-linux-gnu=-target aarch64-unknown-linux-gnu -isystem /usr/aarch64-linux-gnu/include/ -ccc-gcc-name aarch64-linux-gnu-gcc' >> $GITHUB_ENV echo "----- Print env -----" env From 45a13106684e5bb4ea3a04d839cb5b26c17f5095 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Thu, 15 Jun 2023 17:19:54 -0400 Subject: [PATCH 08/20] I do not have autocomplete to save me --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6cf768e00..88c3dcd37 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -90,7 +90,7 @@ jobs: echo "" - name: Install release version of PostgreSQL - if: matrix.target != 'postgres-16' + if: matrix.version != 'postgres-16' run: | echo "----- Set up PostgreSQL Apt repository -----" sudo apt-get install -y wget gnupg @@ -105,7 +105,7 @@ jobs: - name: Install develoment version of PostgreSQL - if: matrix.target == 'postgres-16' + if: matrix.version == 'postgres-16' run: | echo "----- Set up PostgreSQL Apt repository -----" sudo apt-get install -y wget gnupg From 7772560cef2cc5fb014937a371a36e97f27e6979 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Thu, 15 Jun 2023 17:22:35 -0400 Subject: [PATCH 09/20] Find out exactly what is installable --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 88c3dcd37..a99440209 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -114,6 +114,8 @@ jobs: sudo apt-get update -y -qq --fix-missing echo "" + sudo apt search postgresql + sudo apt-get install -y \ postgresql-$PG_VER \ postgresql-server-dev-$PG_VER From 588dec32e9781513e974da324e60e6f9638abea2 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Thu, 15 Jun 2023 17:30:02 -0400 Subject: [PATCH 10/20] Add repository the correct way --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a99440209..3d8ce1ad2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -109,7 +109,7 @@ jobs: run: | echo "----- Set up PostgreSQL Apt repository -----" sudo apt-get install -y wget gnupg - sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg-snapshot main" > /etc/apt/sources.list.d/pgdg.list' + sudo add-apt-repository "deb https://apt.postgresql.org/pub/repos/apt/ $(lsb_release -s -c)-pgdg-snapshot main 16" wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update -y -qq --fix-missing echo "" From 557cf010af9dd742694ecd36813bd2c5e388def0 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Thu, 15 Jun 2023 17:37:01 -0400 Subject: [PATCH 11/20] Add keys --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3d8ce1ad2..791b97e97 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -109,6 +109,7 @@ jobs: run: | echo "----- Set up PostgreSQL Apt repository -----" sudo apt-get install -y wget gnupg + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7FCC7D46ACCC4CF8 sudo add-apt-repository "deb https://apt.postgresql.org/pub/repos/apt/ $(lsb_release -s -c)-pgdg-snapshot main 16" wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update -y -qq --fix-missing From 631e45bb3c9f45914db7203e6257c1a3ba60e333 Mon Sep 17 00:00:00 2001 From: "Eric B. Ridge" Date: Fri, 16 Jun 2023 10:17:19 -0400 Subject: [PATCH 12/20] Address code review issues raised by @workingjubilee --- cargo-pgrx/src/command/init.rs | 2 +- cargo-pgrx/src/command/version.rs | 4 ++-- pgrx-pg-config/src/lib.rs | 16 +++------------- pgrx-pg-sys/src/lib.rs | 4 +--- pgrx/src/datum/range.rs | 28 ++++++++++++---------------- pgrx/src/guc.rs | 2 +- 6 files changed, 20 insertions(+), 36 deletions(-) diff --git a/cargo-pgrx/src/command/init.rs b/cargo-pgrx/src/command/init.rs index ef764d250..9380e75d1 100644 --- a/cargo-pgrx/src/command/init.rs +++ b/cargo-pgrx/src/command/init.rs @@ -231,7 +231,7 @@ fn download_postgres( fn untar(bytes: &[u8], pgrxdir: &PathBuf, pg_config: &PgConfig) -> eyre::Result { let mut pgdir = pgrxdir.clone(); - pgdir.push(format!("{}", pg_config.version()?)); + pgdir.push(&pg_config.version()?); if pgdir.exists() { // delete everything at this path if it already exists println!("{} {}", " Removing".bold().green(), pgdir.display()); diff --git a/cargo-pgrx/src/command/version.rs b/cargo-pgrx/src/command/version.rs index a4dca1fa7..39c42bbdc 100644 --- a/cargo-pgrx/src/command/version.rs +++ b/cargo-pgrx/src/command/version.rs @@ -23,7 +23,7 @@ mod rss { pub(super) struct PostgreSQLVersionRss; impl PostgreSQLVersionRss { - pub(super) fn new(supported_verions: &[PgVersion]) -> eyre::Result> { + pub(super) fn new(supported_versions: &[PgVersion]) -> eyre::Result> { static VERSIONS_RSS_URL: &str = "https://www.postgresql.org/versions.rss"; let http_client = build_agent_for_url(VERSIONS_RSS_URL)?; @@ -38,7 +38,7 @@ mod rss { }; let mut versions: BTreeMap = BTreeMap::from_iter( - supported_verions.iter().map(|pgver| (pgver.major, pgver.clone())), + supported_versions.iter().map(|pgver| (pgver.major, pgver.clone())), ); for item in rss.channel.item { diff --git a/pgrx-pg-config/src/lib.rs b/pgrx-pg-config/src/lib.rs index 89ea0975b..95c8c294d 100644 --- a/pgrx-pg-config/src/lib.rs +++ b/pgrx-pg-config/src/lib.rs @@ -241,7 +241,7 @@ impl PgConfig { version = first.split("beta").collect(); } else if first.contains("rc") { rc = true; - version = first.split("beta").collect(); + version = first.split("rc").collect(); } else { return Err(eyre!("invalid version string: {}", version_str)); } @@ -326,12 +326,8 @@ impl PgConfig { pub fn postmaster_path(&self) -> eyre::Result { let mut path = self.bin_dir()?; + path.push("postgres"); - if self.major_version()? > 15 { - path.push("postgres") - } else { - path.push("postmaster"); - } Ok(path) } @@ -671,13 +667,7 @@ pub fn SUPPORTED_VERSIONS() -> Vec { } pub fn is_supported_major_version(v: u16) -> bool { - for pgver in SUPPORTED_VERSIONS() { - if v == pgver.major { - return true; - } - } - - false + SUPPORTED_VERSIONS().into_iter().any(|pgver| pgver.major == v) } pub fn createdb( diff --git a/pgrx-pg-sys/src/lib.rs b/pgrx-pg-sys/src/lib.rs index c19fad791..77f2e9423 100644 --- a/pgrx-pg-sys/src/lib.rs +++ b/pgrx-pg-sys/src/lib.rs @@ -24,9 +24,7 @@ Use of this source code is governed by the MIT license that can be found in the // no features at all will cause problems not(any(feature = "pg11", feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15", feature = "pg16")), ))] -std::compile_error!( - "exactly one one feature must be provided (pg11, pg12, pg13, pg14, pg15, pg16)" -); +std::compile_error!("exactly one feature must be provided (pg11, pg12, pg13, pg14, pg15, pg16)"); pub mod submodules; diff --git a/pgrx/src/datum/range.rs b/pgrx/src/datum/range.rs index e08bfd735..bd75f5588 100644 --- a/pgrx/src/datum/range.rs +++ b/pgrx/src/datum/range.rs @@ -385,22 +385,18 @@ where lower_bound.lower = true; // PG will serialize these lower/upper RangeBounds to a *RangeType ptr/datum - let range_type = { - #[cfg(not(feature = "pg16"))] - { - pg_sys::make_range(typecache, &mut lower_bound, &mut upper_bound, is_empty) - } - #[cfg(feature = "pg16")] - { - pg_sys::make_range( - typecache, - &mut lower_bound, - &mut upper_bound, - is_empty, - std::ptr::null_mut(), - ) - } - }; + #[cfg(not(feature = "pg16"))] + let range_type = + pg_sys::make_range(typecache, &mut lower_bound, &mut upper_bound, is_empty); + + #[cfg(feature = "pg16")] + let range_type = pg_sys::make_range( + typecache, + &mut lower_bound, + &mut upper_bound, + is_empty, + std::ptr::null_mut(), + ); // *RangeType into Datum Some(pg_sys::Datum::from(range_type)) diff --git a/pgrx/src/guc.rs b/pgrx/src/guc.rs index 5f97e13e4..ceb90744b 100644 --- a/pgrx/src/guc.rs +++ b/pgrx/src/guc.rs @@ -185,7 +185,7 @@ impl GucSetting> { } fn as_ptr(&self) -> *mut *mut std::os::raw::c_char { - self.value.as_ptr() as *mut std::os::raw::c_char as *mut _ + self.value.as_ptr() as *mut *mut std::os::raw::c_char } } From 6561325083053b127129e13dd62bda7197c8a1a6 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Fri, 16 Jun 2023 10:55:54 -0400 Subject: [PATCH 13/20] Add regular pgdg repo --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 791b97e97..da904017f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -111,6 +111,7 @@ jobs: sudo apt-get install -y wget gnupg sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7FCC7D46ACCC4CF8 sudo add-apt-repository "deb https://apt.postgresql.org/pub/repos/apt/ $(lsb_release -s -c)-pgdg-snapshot main 16" + sudo add-apt-repository "deb https://apt.postgresql.org/pub/repos/apt/ $(lsb_release -s -c)-pgdg main 16" wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update -y -qq --fix-missing echo "" From dbcd87766bb4b08fc39e6491727706c54282cf5e Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Fri, 16 Jun 2023 11:24:02 -0400 Subject: [PATCH 14/20] Adds pg16 support to pgrx init --- cargo-pgrx/src/command/init.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cargo-pgrx/src/command/init.rs b/cargo-pgrx/src/command/init.rs index 9380e75d1..e852423e1 100644 --- a/cargo-pgrx/src/command/init.rs +++ b/cargo-pgrx/src/command/init.rs @@ -59,6 +59,9 @@ pub(crate) struct Init { /// If installed locally, the path to PG15's `pgconfig` tool, or `download` to have pgrx download/compile/install it #[clap(env = "PG15_PG_CONFIG", long)] pg15: Option, + /// If installed locally, the path to PG16's `pgconfig` tool, or `download` to have pgrx download/compile/install it + #[clap(env = "PG16_PG_CONFIG", long)] + pg16: Option, #[clap(from_global, action = ArgAction::Count)] verbose: u8, #[clap(long, help = "Base port number")] @@ -89,6 +92,9 @@ impl CommandExecute for Init { if let Some(ref version) = self.pg15 { versions.insert("pg15", version.clone()); } + if let Some(ref version) = self.pg16 { + versions.insert("pg16", version.clone()); + } if versions.is_empty() { // no arguments specified, so we'll just install our defaults From 64918c4037539a2716a4f43a32e3df67e375102f Mon Sep 17 00:00:00 2001 From: "Eric B. Ridge" Date: Fri, 16 Jun 2023 12:07:16 -0400 Subject: [PATCH 15/20] more pg16 changes --- pgrx-tests/src/tests/hooks_tests.rs | 9 +++- pgrx-tests/src/tests/pg_try_tests.rs | 12 ++++-- pgrx/src/hooks.rs | 63 +++++++++++++++++++++++++--- 3 files changed, 73 insertions(+), 11 deletions(-) diff --git a/pgrx-tests/src/tests/hooks_tests.rs b/pgrx-tests/src/tests/hooks_tests.rs index 01bca49cc..083b42e91 100644 --- a/pgrx-tests/src/tests/hooks_tests.rs +++ b/pgrx-tests/src/tests/hooks_tests.rs @@ -78,11 +78,16 @@ mod tests { fn executor_check_perms( &mut self, range_table: PgList<*mut RangeTblEntry>, + rte_perm_infos: Option<*mut pg_sys::List>, ereport_on_violation: bool, - prev_hook: fn(PgList<*mut RangeTblEntry>, bool) -> HookResult, + prev_hook: fn( + PgList<*mut RangeTblEntry>, + Option<*mut pg_sys::List>, + bool, + ) -> HookResult, ) -> HookResult { self.events += 1; - prev_hook(range_table, ereport_on_violation) + prev_hook(range_table, rte_perm_infos, ereport_on_violation) } fn planner( diff --git a/pgrx-tests/src/tests/pg_try_tests.rs b/pgrx-tests/src/tests/pg_try_tests.rs index 968b497e6..ebfcb3b2f 100644 --- a/pgrx-tests/src/tests/pg_try_tests.rs +++ b/pgrx-tests/src/tests/pg_try_tests.rs @@ -16,16 +16,20 @@ fn crash() { #[cfg(feature = "cshim")] { use pgrx::PgList; - unsafe { - let mut node = PgList::::new(); - node.push(PgList::::new().into_pg() as *mut pg_sys::Node); + let mut node = PgList::::new(); + node.push(PgList::::new().into_pg() as *mut pg_sys::Node); + #[cfg(not(feature = "pg16"))] + unsafe { pg_sys::raw_expression_tree_walker( node.into_pg() as *mut pg_sys::Node, Some(walker), std::ptr::null_mut(), ); } + + #[cfg(feature = "pg16")] + error!("panic in walker"); } #[cfg(not(feature = "cshim"))] @@ -39,7 +43,7 @@ fn walker() -> bool { panic!("panic in walker"); } -#[cfg(feature = "cshim")] +#[cfg(all(feature = "cshim", not(feature = "pg16")))] #[pg_guard] extern "C" fn walker() -> bool { panic!("panic in walker"); diff --git a/pgrx/src/hooks.rs b/pgrx/src/hooks.rs index 02aae23d5..2c87c4057 100644 --- a/pgrx/src/hooks.rs +++ b/pgrx/src/hooks.rs @@ -100,13 +100,15 @@ pub trait PgHooks { fn executor_check_perms( &mut self, range_table: PgList<*mut pg_sys::RangeTblEntry>, + rte_perm_infos: Option<*mut pg_sys::List>, ereport_on_violation: bool, prev_hook: fn( range_table: PgList<*mut pg_sys::RangeTblEntry>, + rte_perm_infos: Option<*mut pg_sys::List>, ereport_on_violation: bool, ) -> HookResult, ) -> HookResult { - prev_hook(range_table, ereport_on_violation) + prev_hook(range_table, rte_perm_infos, ereport_on_violation) } /// Hook for plugins to get control in `ProcessUtility()` @@ -201,6 +203,16 @@ pub unsafe fn register_hook(hook: &'static mut (dyn PgHooks)) { if HOOKS.is_some() { panic!("PgHook instance already registered"); } + #[cfg(not(feature = "pg16"))] + let prev_executor_check_perms_hook = pg_sys::ExecutorCheckPerms_hook + .replace(pgrx_executor_check_perms) + .or(Some(pgrx_standard_executor_check_perms_wrapper)); + + #[cfg(feature = "pg16")] + let prev_executor_check_perms_hook = pg_sys::ExecutorCheckPerms_hook + .replace(pgrx_executor_check_perms) + .or(Some(pgrx_standard_executor_check_perms_wrapper)); + HOOKS = Some(Hooks { current_hook: Box::new(hook), prev_executor_start_hook: pg_sys::ExecutorStart_hook @@ -215,9 +227,7 @@ pub unsafe fn register_hook(hook: &'static mut (dyn PgHooks)) { prev_executor_end_hook: pg_sys::ExecutorEnd_hook .replace(pgrx_executor_end) .or(Some(pgrx_standard_executor_end_wrapper)), - prev_executor_check_perms_hook: pg_sys::ExecutorCheckPerms_hook - .replace(pgrx_executor_check_perms) - .or(Some(pgrx_standard_executor_check_perms_wrapper)), + prev_executor_check_perms_hook, prev_process_utility_hook: pg_sys::ProcessUtility_hook .replace(pgrx_process_utility) .or(Some(pgrx_standard_process_utility_wrapper)), @@ -311,24 +321,56 @@ unsafe extern "C" fn pgrx_executor_end(query_desc: *mut pg_sys::QueryDesc) { hook.executor_end(PgBox::from_pg(query_desc), prev); } +#[cfg(not(feature = "pg16"))] +#[pg_guard] +unsafe extern "C" fn pgrx_executor_check_perms( + range_table: *mut pg_sys::List, + ereport_on_violation: bool, +) -> bool { + fn prev( + range_table: PgList<*mut pg_sys::RangeTblEntry>, + _rte_perm_infos: Option<*mut pg_sys::List>, + ereport_on_violation: bool, + ) -> HookResult { + HookResult::new(unsafe { + (HOOKS.as_mut().unwrap().prev_executor_check_perms_hook.as_ref().unwrap())( + range_table.into_pg(), + ereport_on_violation, + ) + }) + } + let hook = &mut HOOKS.as_mut().unwrap().current_hook; + hook.executor_check_perms(PgList::from_pg(range_table), None, ereport_on_violation, prev).inner +} + +#[cfg(feature = "pg16")] #[pg_guard] unsafe extern "C" fn pgrx_executor_check_perms( range_table: *mut pg_sys::List, + rte_perm_infos: *mut pg_sys::List, ereport_on_violation: bool, ) -> bool { fn prev( range_table: PgList<*mut pg_sys::RangeTblEntry>, + rte_perm_infos: Option<*mut pg_sys::List>, ereport_on_violation: bool, ) -> HookResult { HookResult::new(unsafe { (HOOKS.as_mut().unwrap().prev_executor_check_perms_hook.as_ref().unwrap())( range_table.into_pg(), + rte_perm_infos.unwrap_or(std::ptr::null_mut()), ereport_on_violation, ) }) } let hook = &mut HOOKS.as_mut().unwrap().current_hook; - hook.executor_check_perms(PgList::from_pg(range_table), ereport_on_violation, prev).inner + hook.executor_check_perms( + PgList::from_pg(range_table), + Some(rte_perm_infos), + ereport_on_violation, + prev, + ) + .inner } #[cfg(any(feature = "pg11", feature = "pg12", feature = "pg13"))] @@ -594,9 +636,20 @@ unsafe extern "C" fn pgrx_standard_executor_end_wrapper(query_desc: *mut pg_sys: pg_sys::standard_ExecutorEnd(query_desc) } +#[cfg(not(feature = "pg16"))] +#[pg_guard] +unsafe extern "C" fn pgrx_standard_executor_check_perms_wrapper( + _range_table: *mut pg_sys::List, + _ereport_on_violation: bool, +) -> bool { + true +} + +#[cfg(feature = "pg16")] #[pg_guard] unsafe extern "C" fn pgrx_standard_executor_check_perms_wrapper( _range_table: *mut pg_sys::List, + _rte_perm_infos: *mut pg_sys::List, _ereport_on_violation: bool, ) -> bool { true From 5be300f1f8d507afaa9e228d7b029bf21007e561 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Fri, 16 Jun 2023 12:22:08 -0400 Subject: [PATCH 16/20] re-add cross-compile --- .github/workflows/tests.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index da904017f..d662e7901 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -73,13 +73,13 @@ jobs: libssl-dev \ pkg-config - # echo "----- Set up cross compilation -----" - # sudo apt-get install -y crossbuild-essential-arm64 - # rustup target add aarch64-unknown-linux-gnu + echo "----- Set up cross compilation -----" + sudo apt-get install -y crossbuild-essential-arm64 + rustup target add aarch64-unknown-linux-gnu - # echo 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc' >> $GITHUB_ENV - # # TODO: not all of these should be needed, but for now it's likely fine. - # echo 'BINDGEN_EXTRA_CLANG_ARGS_aarch64-unknown-linux-gnu=-target aarch64-unknown-linux-gnu -isystem /usr/aarch64-linux-gnu/include/ -ccc-gcc-name aarch64-linux-gnu-gcc' >> $GITHUB_ENV + echo 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc' >> $GITHUB_ENV + # TODO: not all of these should be needed, but for now it's likely fine. + echo 'BINDGEN_EXTRA_CLANG_ARGS_aarch64-unknown-linux-gnu=-target aarch64-unknown-linux-gnu -isystem /usr/aarch64-linux-gnu/include/ -ccc-gcc-name aarch64-linux-gnu-gcc' >> $GITHUB_ENV echo "----- Print env -----" env From edd7071d7b4b97ba7785a9e4b768ae22c367d54c Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Fri, 16 Jun 2023 12:25:22 -0400 Subject: [PATCH 17/20] trying out --fix-missing --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d662e7901..e3cf0f34f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -74,7 +74,7 @@ jobs: pkg-config echo "----- Set up cross compilation -----" - sudo apt-get install -y crossbuild-essential-arm64 + sudo apt-get install -y --fix-missing crossbuild-essential-arm64 rustup target add aarch64-unknown-linux-gnu echo 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc' >> $GITHUB_ENV From 3d56009f77c8fc7186548e0eef37058d103d1463 Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Fri, 16 Jun 2023 12:30:04 -0400 Subject: [PATCH 18/20] Update apt --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e3cf0f34f..0b254db1a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -59,8 +59,8 @@ jobs: sudo apt remove -y '^postgres.*' '^libpq.*' echo "" - echo "----- Install system dependencies and PostgreSQL version $PG_VER -----" - sudo apt-get install -y \ + echo "----- Install system dependencies -----" + sudo apt-get update && apt-get install -y \ clang-10 \ llvm-10 \ clang \ From 7544296af772acb1b7b2a0c085c087fe5f7e124c Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Fri, 16 Jun 2023 12:33:20 -0400 Subject: [PATCH 19/20] Forgot sudo --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0b254db1a..7051c5270 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -60,7 +60,7 @@ jobs: echo "" echo "----- Install system dependencies -----" - sudo apt-get update && apt-get install -y \ + sudo apt-get update && sudo apt-get install -y \ clang-10 \ llvm-10 \ clang \ From bd68ff0e3c2172ebf58192d751bed424a60e039a Mon Sep 17 00:00:00 2001 From: Brady Bonnette Date: Fri, 16 Jun 2023 13:12:26 -0400 Subject: [PATCH 20/20] Remove useless apt search --- .github/workflows/tests.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7051c5270..9f73ed2ad 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -116,8 +116,6 @@ jobs: sudo apt-get update -y -qq --fix-missing echo "" - sudo apt search postgresql - sudo apt-get install -y \ postgresql-$PG_VER \ postgresql-server-dev-$PG_VER