pgx-pg-sys 0.7.0

Generated Rust bindings for Postgres internals, for use with 'pgx'
Documentation
use crate as pg_sys;
#[cfg(any(feature = "pg12", feature = "pg13", feature = "pg14", feature = "pg15"))]
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: Storage,
}
impl<Storage> __BindgenBitfieldUnit<Storage> {
    #[inline]
    pub const fn new(storage: Storage) -> Self {
        Self { storage }
    }
}
impl<Storage> __BindgenBitfieldUnit<Storage>
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<T>(::std::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
    #[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<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_str("__IncompleteArrayField")
    }
}
#[repr(C)]
pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
impl<T> __BindgenUnionField<T> {
    #[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<T> ::std::default::Default for __BindgenUnionField<T> {
    #[inline]
    fn default() -> Self {
        Self::new()
    }
}
impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
    #[inline]
    fn clone(&self) -> Self {
        Self::new()
    }
}
impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_str("__BindgenUnionField")
    }
}
impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
    fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
}
impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
    fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
        true
    }
}
impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
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 DEF_PGPORT: u32 = 28812;
pub const DEF_PGPORT_STR: &[u8; 6usize] = b"28812\0";
pub const ENABLE_THREAD_SAFETY: u32 = 1;
pub const HAVE_ATOMICS: u32 = 1;
pub const HAVE_CBRT: u32 = 1;
pub const HAVE_CLOCK_GETTIME: u32 = 1;
pub const HAVE_COMPUTED_GOTO: u32 = 1;
pub const HAVE_COPYFILE: u32 = 1;
pub const HAVE_COPYFILE_H: u32 = 1;
pub const HAVE_CRYPT: u32 = 1;
pub const HAVE_DECL_FDATASYNC: u32 = 0;
pub const HAVE_DECL_F_FULLFSYNC: u32 = 1;
pub const HAVE_DECL_POSIX_FADVISE: u32 = 0;
pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1;
pub const HAVE_DECL_RTLD_NOW: u32 = 1;
pub const HAVE_DECL_STRLCAT: u32 = 1;
pub const HAVE_DECL_STRLCPY: u32 = 1;
pub const HAVE_DECL_STRNLEN: u32 = 1;
pub const HAVE_DECL_STRTOLL: u32 = 1;
pub const HAVE_DECL_STRTOULL: u32 = 1;
pub const HAVE_DLOPEN: u32 = 1;
pub const HAVE_FDATASYNC: u32 = 1;
pub const HAVE_FLS: u32 = 1;
pub const HAVE_FSEEKO: u32 = 1;
pub const HAVE_FUNCNAME__FUNC: 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_GETADDRINFO: 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_GETPEEREID: u32 = 1;
pub const HAVE_GETPWUID_R: u32 = 1;
pub const HAVE_GETRLIMIT: u32 = 1;
pub const HAVE_GETRUSAGE: 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_INTPTR_T: u32 = 1;
pub const HAVE_INTTYPES_H: u32 = 1;
pub const HAVE_INT_OPTERR: u32 = 1;
pub const HAVE_INT_OPTRESET: u32 = 1;
pub const HAVE_INT_TIMEZONE: u32 = 1;
pub const HAVE_IPV6: u32 = 1;
pub const HAVE_ISINF: 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_LONG_LONG_INT: u32 = 1;
pub const HAVE_MBSTOWCS_L: u32 = 1;
pub const HAVE_MEMMOVE: u32 = 1;
pub const HAVE_MEMORY_H: u32 = 1;
pub const HAVE_MKDTEMP: u32 = 1;
pub const HAVE_NETINET_TCP_H: u32 = 1;
pub const HAVE_NET_IF_H: u32 = 1;
pub const HAVE_POLL: u32 = 1;
pub const HAVE_POLL_H: u32 = 1;
pub const HAVE_PREAD: u32 = 1;
pub const HAVE_PTHREAD: u32 = 1;
pub const HAVE_PTHREAD_IS_THREADED_NP: u32 = 1;
pub const HAVE_PTHREAD_PRIO_INHERIT: u32 = 1;
pub const HAVE_PWRITE: u32 = 1;
pub const HAVE_RANDOM: u32 = 1;
pub const HAVE_READLINE_HISTORY_H: u32 = 1;
pub const HAVE_READLINE_READLINE_H: u32 = 1;
pub const HAVE_READLINK: u32 = 1;
pub const HAVE_RINT: u32 = 1;
pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1;
pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1;
pub const HAVE_RL_FILENAME_COMPLETION_FUNCTION: u32 = 1;
pub const HAVE_SETENV: u32 = 1;
pub const HAVE_SETSID: u32 = 1;
pub const HAVE_SHM_OPEN: u32 = 1;
pub const HAVE_SPINLOCKS: u32 = 1;
pub const HAVE_SRANDOM: 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_STRERROR_R: u32 = 1;
pub const HAVE_STRINGS_H: u32 = 1;
pub const HAVE_STRING_H: u32 = 1;
pub const HAVE_STRLCAT: u32 = 1;
pub const HAVE_STRLCPY: u32 = 1;
pub const HAVE_STRNLEN: u32 = 1;
pub const HAVE_STRSIGNAL: u32 = 1;
pub const HAVE_STRTOF: u32 = 1;
pub const HAVE_STRTOLL: u32 = 1;
pub const HAVE_STRTOULL: u32 = 1;
pub const HAVE_STRUCT_ADDRINFO: u32 = 1;
pub const HAVE_STRUCT_OPTION: u32 = 1;
pub const HAVE_STRUCT_SOCKADDR_SA_LEN: u32 = 1;
pub const HAVE_STRUCT_SOCKADDR_STORAGE: u32 = 1;
pub const HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY: u32 = 1;
pub const HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN: u32 = 1;
pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1;
pub const HAVE_SYMLINK: u32 = 1;
pub const HAVE_SYSLOG: u32 = 1;
pub const HAVE_SYS_IPC_H: u32 = 1;
pub const HAVE_SYS_RESOURCE_H: u32 = 1;
pub const HAVE_SYS_SELECT_H: u32 = 1;
pub const HAVE_SYS_SEM_H: u32 = 1;
pub const HAVE_SYS_SHM_H: u32 = 1;
pub const HAVE_SYS_SOCKIO_H: u32 = 1;
pub const HAVE_SYS_STAT_H: u32 = 1;
pub const HAVE_SYS_TYPES_H: u32 = 1;
pub const HAVE_SYS_UCRED_H: u32 = 1;
pub const HAVE_SYS_UN_H: u32 = 1;
pub const HAVE_TERMIOS_H: u32 = 1;
pub const HAVE_TM_ZONE: u32 = 1;
pub const HAVE_TYPEOF: u32 = 1;
pub const HAVE_TZNAME: u32 = 1;
pub const HAVE_UINTPTR_T: u32 = 1;
pub const HAVE_UNION_SEMUN: u32 = 1;
pub const HAVE_UNISTD_H: u32 = 1;
pub const HAVE_UNIX_SOCKETS: u32 = 1;
pub const HAVE_UNSETENV: u32 = 1;
pub const HAVE_UNSIGNED_LONG_LONG_INT: u32 = 1;
pub const HAVE_USELOCALE: u32 = 1;
pub const HAVE_UTIME: u32 = 1;
pub const HAVE_UTIMES: u32 = 1;
pub const HAVE_UTIME_H: u32 = 1;
pub const HAVE_WCHAR_H: u32 = 1;
pub const HAVE_WCSTOMBS_L: u32 = 1;
pub const HAVE_WCTYPE_H: 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__STATIC_ASSERT: u32 = 1;
pub const INT64_MODIFIER: &[u8; 2usize] = b"l\0";
pub const LOCALE_T_IN_XLOCALE: u32 = 1;
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; 17usize] = b"PostgreSQL 12.13\0";
pub const PACKAGE_TARNAME: &[u8; 11usize] = b"postgresql\0";
pub const PACKAGE_URL: &[u8; 1usize] = b"\0";
pub const PACKAGE_VERSION: &[u8; 6usize] = b"12.13\0";
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.13\0";
pub const PG_VERSION_NUM: u32 = 120013;
pub const PG_VERSION_STR : & [u8 ; 113usize] = b"PostgreSQL 12.13 on arm-apple-darwin22.2.0, compiled by Apple clang version 14.0.0 (clang-1400.0.29.202), 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 STRERROR_R_INT: u32 = 1;
pub const USE_ARMV8_CRC32C: u32 = 1;
pub const USE_ASSERT_CHECKING: u32 = 1;
pub const USE_DEV_URANDOM: u32 = 1;
pub const USE_FLOAT4_BYVAL: u32 = 1;
pub const USE_FLOAT8_BYVAL: u32 = 1;
pub const USE_SYSV_SEMAPHORES: u32 = 1;
pub const USE_SYSV_SHARED_MEMORY: u32 = 1;
pub const WCSTOMBS_L_IN_XLOCALE: 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 INDEX_MAX_KEYS: u32 = 32;
pub const PARTITION_MAX_KEYS: u32 = 32;
pub const NUM_SPINLOCK_SEMAPHORES: u32 = 128;
pub const NUM_ATOMICS_SEMAPHORES: u32 = 64;
pub const MAXPGPATH: u32 = 1024;
pub const PG_SOMAXCONN: u32 = 10000;
pub const BITS_PER_BYTE: u32 = 8;
pub const ALIGNOF_BUFFER: u32 = 32;
pub const HAVE_WORKING_LINK: u32 = 1;
pub const DEFAULT_BACKEND_FLUSH_AFTER: u32 = 0;
pub const DEFAULT_BGWRITER_FLUSH_AFTER: u32 = 0;
pub const DEFAULT_CHECKPOINT_FLUSH_AFTER: u32 = 0;
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 TRACE_SORT: u32 = 1;
pub const __darwin__: u32 = 1;
pub const __DARWIN_ONLY_64_BIT_INO_T: u32 = 1;
pub const __DARWIN_ONLY_UNIX_CONFORMANCE: u32 = 1;
pub const __DARWIN_ONLY_VERS_1050: u32 = 1;
pub const __DARWIN_UNIX03: u32 = 1;
pub const __DARWIN_64_BIT_INO_T: u32 = 1;
pub const __DARWIN_VERS_1050: u32 = 1;
pub const __DARWIN_NON_CANCELABLE: u32 = 0;
pub const __DARWIN_SUF_EXTSN: &[u8; 14usize] = b"$DARWIN_EXTSN\0";
pub const __DARWIN_C_ANSI: u32 = 4096;
pub const __DARWIN_C_FULL: u32 = 900000;
pub const __DARWIN_C_LEVEL: u32 = 900000;
pub const __STDC_WANT_LIB_EXT1__: u32 = 1;
pub const __DARWIN_NO_LONG_LONG: u32 = 0;
pub const _DARWIN_FEATURE_64_BIT_INODE: u32 = 1;
pub const _DARWIN_FEATURE_ONLY_64_BIT_INODE: u32 = 1;
pub const _DARWIN_FEATURE_ONLY_VERS_1050: u32 = 1;
pub const _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE: u32 = 1;
pub const _DARWIN_FEATURE_UNIX_CONFORMANCE: u32 = 3;
pub const __has_ptrcheck: u32 = 0;
pub const __API_TO_BE_DEPRECATED: u32 = 100000;
pub const __API_TO_BE_DEPRECATED_MACOS: u32 = 100000;
pub const __API_TO_BE_DEPRECATED_IOS: u32 = 100000;
pub const __API_TO_BE_DEPRECATED_TVOS: u32 = 100000;
pub const __API_TO_BE_DEPRECATED_WATCHOS: u32 = 100000;
pub const __API_TO_BE_DEPRECATED_MACCATALYST: u32 = 100000;
pub const __API_TO_BE_DEPRECATED_DRIVERKIT: u32 = 100000;
pub const __MAC_10_0: u32 = 1000;
pub const __MAC_10_1: u32 = 1010;
pub const __MAC_10_2: u32 = 1020;
pub const __MAC_10_3: u32 = 1030;
pub const __MAC_10_4: u32 = 1040;
pub const __MAC_10_5: u32 = 1050;
pub const __MAC_10_6: u32 = 1060;
pub const __MAC_10_7: u32 = 1070;
pub const __MAC_10_8: u32 = 1080;
pub const __MAC_10_9: u32 = 1090;
pub const __MAC_10_10: u32 = 101000;
pub const __MAC_10_10_2: u32 = 101002;
pub const __MAC_10_10_3: u32 = 101003;
pub const __MAC_10_11: u32 = 101100;
pub const __MAC_10_11_2: u32 = 101102;
pub const __MAC_10_11_3: u32 = 101103;
pub const __MAC_10_11_4: u32 = 101104;
pub const __MAC_10_12: u32 = 101200;
pub const __MAC_10_12_1: u32 = 101201;
pub const __MAC_10_12_2: u32 = 101202;
pub const __MAC_10_12_4: u32 = 101204;
pub const __MAC_10_13: u32 = 101300;
pub const __MAC_10_13_1: u32 = 101301;
pub const __MAC_10_13_2: u32 = 101302;
pub const __MAC_10_13_4: u32 = 101304;
pub const __MAC_10_14: u32 = 101400;
pub const __MAC_10_14_1: u32 = 101401;
pub const __MAC_10_14_4: u32 = 101404;
pub const __MAC_10_14_6: u32 = 101406;
pub const __MAC_10_15: u32 = 101500;
pub const __MAC_10_15_1: u32 = 101501;
pub const __MAC_10_15_4: u32 = 101504;
pub const __MAC_10_16: u32 = 101600;
pub const __MAC_11_0: u32 = 110000;
pub const __MAC_11_1: u32 = 110100;
pub const __MAC_11_3: u32 = 110300;
pub const __MAC_11_4: u32 = 110400;
pub const __MAC_11_5: u32 = 110500;
pub const __MAC_11_6: u32 = 110600;
pub const __MAC_12_0: u32 = 120000;
pub const __MAC_12_1: u32 = 120100;
pub const __MAC_12_2: u32 = 120200;
pub const __MAC_12_3: u32 = 120300;
pub const __MAC_13_0: u32 = 130000;
pub const __MAC_13_1: u32 = 130100;
pub const __IPHONE_2_0: u32 = 20000;
pub const __IPHONE_2_1: u32 = 20100;
pub const __IPHONE_2_2: u32 = 20200;
pub const __IPHONE_3_0: u32 = 30000;
pub const __IPHONE_3_1: u32 = 30100;
pub const __IPHONE_3_2: u32 = 30200;
pub const __IPHONE_4_0: u32 = 40000;
pub const __IPHONE_4_1: u32 = 40100;
pub const __IPHONE_4_2: u32 = 40200;
pub const __IPHONE_4_3: u32 = 40300;
pub const __IPHONE_5_0: u32 = 50000;
pub const __IPHONE_5_1: u32 = 50100;
pub const __IPHONE_6_0: u32 = 60000;
pub const __IPHONE_6_1: u32 = 60100;
pub const __IPHONE_7_0: u32 = 70000;
pub const __IPHONE_7_1: u32 = 70100;
pub const __IPHONE_8_0: u32 = 80000;
pub const __IPHONE_8_1: u32 = 80100;
pub const __IPHONE_8_2: u32 = 80200;
pub const __IPHONE_8_3: u32 = 80300;
pub const __IPHONE_8_4: u32 = 80400;
pub const __IPHONE_9_0: u32 = 90000;
pub const __IPHONE_9_1: u32 = 90100;
pub const __IPHONE_9_2: u32 = 90200;
pub const __IPHONE_9_3: u32 = 90300;
pub const __IPHONE_10_0: u32 = 100000;
pub const __IPHONE_10_1: u32 = 100100;
pub const __IPHONE_10_2: u32 = 100200;
pub const __IPHONE_10_3: u32 = 100300;
pub const __IPHONE_11_0: u32 = 110000;
pub const __IPHONE_11_1: u32 = 110100;
pub const __IPHONE_11_2: u32 = 110200;
pub const __IPHONE_11_3: u32 = 110300;
pub const __IPHONE_11_4: u32 = 110400;
pub const __IPHONE_12_0: u32 = 120000;
pub const __IPHONE_12_1: u32 = 120100;
pub const __IPHONE_12_2: u32 = 120200;
pub const __IPHONE_12_3: u32 = 120300;
pub const __IPHONE_12_4: u32 = 120400;
pub const __IPHONE_13_0: u32 = 130000;
pub const __IPHONE_13_1: u32 = 130100;
pub const __IPHONE_13_2: u32 = 130200;
pub const __IPHONE_13_3: u32 = 130300;
pub const __IPHONE_13_4: u32 = 130400;
pub const __IPHONE_13_5: u32 = 130500;
pub const __IPHONE_13_6: u32 = 130600;
pub const __IPHONE_13_7: u32 = 130700;
pub const __IPHONE_14_0: u32 = 140000;
pub const __IPHONE_14_1: u32 = 140100;
pub const __IPHONE_14_2: u32 = 140200;
pub const __IPHONE_14_3: u32 = 140300;
pub const __IPHONE_14_5: u32 = 140500;
pub const __IPHONE_14_6: u32 = 140600;
pub const __IPHONE_14_7: u32 = 140700;
pub const __IPHONE_14_8: u32 = 140800;
pub const __IPHONE_15_0: u32 = 150000;
pub const __IPHONE_15_1: u32 = 150100;
pub const __IPHONE_15_2: u32 = 150200;
pub const __IPHONE_15_3: u32 = 150300;
pub const __IPHONE_15_4: u32 = 150400;
pub const __IPHONE_16_0: u32 = 160000;
pub const __IPHONE_16_1: u32 = 160100;
pub const __IPHONE_16_2: u32 = 160200;
pub const __TVOS_9_0: u32 = 90000;
pub const __TVOS_9_1: u32 = 90100;
pub const __TVOS_9_2: u32 = 90200;
pub const __TVOS_10_0: u32 = 100000;
pub const __TVOS_10_0_1: u32 = 100001;
pub const __TVOS_10_1: u32 = 100100;
pub const __TVOS_10_2: u32 = 100200;
pub const __TVOS_11_0: u32 = 110000;
pub const __TVOS_11_1: u32 = 110100;
pub const __TVOS_11_2: u32 = 110200;
pub const __TVOS_11_3: u32 = 110300;
pub const __TVOS_11_4: u32 = 110400;
pub const __TVOS_12_0: u32 = 120000;
pub const __TVOS_12_1: u32 = 120100;
pub const __TVOS_12_2: u32 = 120200;
pub const __TVOS_12_3: u32 = 120300;
pub const __TVOS_12_4: u32 = 120400;
pub const __TVOS_13_0: u32 = 130000;
pub const __TVOS_13_2: u32 = 130200;
pub const __TVOS_13_3: u32 = 130300;
pub const __TVOS_13_4: u32 = 130400;
pub const __TVOS_14_0: u32 = 140000;
pub const __TVOS_14_1: u32 = 140100;
pub const __TVOS_14_2: u32 = 140200;
pub const __TVOS_14_3: u32 = 140300;
pub const __TVOS_14_5: u32 = 140500;
pub const __TVOS_14_6: u32 = 140600;
pub const __TVOS_14_7: u32 = 140700;
pub const __TVOS_15_0: u32 = 150000;
pub const __TVOS_15_1: u32 = 150100;
pub const __TVOS_15_2: u32 = 150200;
pub const __TVOS_15_3: u32 = 150300;
pub const __TVOS_15_4: u32 = 150400;
pub const __TVOS_16_0: u32 = 160000;
pub const __TVOS_16_1: u32 = 160100;
pub const __TVOS_16_2: u32 = 160200;
pub const __WATCHOS_1_0: u32 = 10000;
pub const __WATCHOS_2_0: u32 = 20000;
pub const __WATCHOS_2_1: u32 = 20100;
pub const __WATCHOS_2_2: u32 = 20200;
pub const __WATCHOS_3_0: u32 = 30000;
pub const __WATCHOS_3_1: u32 = 30100;
pub const __WATCHOS_3_1_1: u32 = 30101;
pub const __WATCHOS_3_2: u32 = 30200;
pub const __WATCHOS_4_0: u32 = 40000;
pub const __WATCHOS_4_1: u32 = 40100;
pub const __WATCHOS_4_2: u32 = 40200;
pub const __WATCHOS_4_3: u32 = 40300;
pub const __WATCHOS_5_0: u32 = 50000;
pub const __WATCHOS_5_1: u32 = 50100;
pub const __WATCHOS_5_2: u32 = 50200;
pub const __WATCHOS_5_3: u32 = 50300;
pub const __WATCHOS_6_0: u32 = 60000;
pub const __WATCHOS_6_1: u32 = 60100;
pub const __WATCHOS_6_2: u32 = 60200;
pub const __WATCHOS_7_0: u32 = 70000;
pub const __WATCHOS_7_1: u32 = 70100;
pub const __WATCHOS_7_2: u32 = 70200;
pub const __WATCHOS_7_3: u32 = 70300;
pub const __WATCHOS_7_4: u32 = 70400;
pub const __WATCHOS_7_5: u32 = 70500;
pub const __WATCHOS_7_6: u32 = 70600;
pub const __WATCHOS_8_0: u32 = 80000;
pub const __WATCHOS_8_1: u32 = 80100;
pub const __WATCHOS_8_3: u32 = 80300;
pub const __WATCHOS_8_4: u32 = 80400;
pub const __WATCHOS_8_5: u32 = 80500;
pub const __WATCHOS_9_0: u32 = 90000;
pub const __WATCHOS_9_1: u32 = 90100;
pub const __WATCHOS_9_2: u32 = 90200;
pub const MAC_OS_X_VERSION_10_0: u32 = 1000;
pub const MAC_OS_X_VERSION_10_1: u32 = 1010;
pub const MAC_OS_X_VERSION_10_2: u32 = 1020;
pub const MAC_OS_X_VERSION_10_3: u32 = 1030;
pub const MAC_OS_X_VERSION_10_4: u32 = 1040;
pub const MAC_OS_X_VERSION_10_5: u32 = 1050;
pub const MAC_OS_X_VERSION_10_6: u32 = 1060;
pub const MAC_OS_X_VERSION_10_7: u32 = 1070;
pub const MAC_OS_X_VERSION_10_8: u32 = 1080;
pub const MAC_OS_X_VERSION_10_9: u32 = 1090;
pub const MAC_OS_X_VERSION_10_10: u32 = 101000;
pub const MAC_OS_X_VERSION_10_10_2: u32 = 101002;
pub const MAC_OS_X_VERSION_10_10_3: u32 = 101003;
pub const MAC_OS_X_VERSION_10_11: u32 = 101100;
pub const MAC_OS_X_VERSION_10_11_2: u32 = 101102;
pub const MAC_OS_X_VERSION_10_11_3: u32 = 101103;
pub const MAC_OS_X_VERSION_10_11_4: u32 = 101104;
pub const MAC_OS_X_VERSION_10_12: u32 = 101200;
pub const MAC_OS_X_VERSION_10_12_1: u32 = 101201;
pub const MAC_OS_X_VERSION_10_12_2: u32 = 101202;
pub const MAC_OS_X_VERSION_10_12_4: u32 = 101204;
pub const MAC_OS_X_VERSION_10_13: u32 = 101300;
pub const MAC_OS_X_VERSION_10_13_1: u32 = 101301;
pub const MAC_OS_X_VERSION_10_13_2: u32 = 101302;
pub const MAC_OS_X_VERSION_10_13_4: u32 = 101304;
pub const MAC_OS_X_VERSION_10_14: u32 = 101400;
pub const MAC_OS_X_VERSION_10_14_1: u32 = 101401;
pub const MAC_OS_X_VERSION_10_14_4: u32 = 101404;
pub const MAC_OS_X_VERSION_10_14_6: u32 = 101406;
pub const MAC_OS_X_VERSION_10_15: u32 = 101500;
pub const MAC_OS_X_VERSION_10_15_1: u32 = 101501;
pub const MAC_OS_X_VERSION_10_16: u32 = 101600;
pub const MAC_OS_VERSION_11_0: u32 = 110000;
pub const MAC_OS_VERSION_12_0: u32 = 120000;
pub const MAC_OS_VERSION_13_0: u32 = 130000;
pub const __DRIVERKIT_19_0: u32 = 190000;
pub const __DRIVERKIT_20_0: u32 = 200000;
pub const __DRIVERKIT_21_0: u32 = 210000;
pub const __MAC_OS_X_VERSION_MAX_ALLOWED: u32 = 130100;
pub const __ENABLE_LEGACY_MAC_AVAILABILITY: u32 = 1;
pub const __PTHREAD_SIZE__: u32 = 8176;
pub const __PTHREAD_ATTR_SIZE__: u32 = 56;
pub const __PTHREAD_MUTEXATTR_SIZE__: u32 = 8;
pub const __PTHREAD_MUTEX_SIZE__: u32 = 56;
pub const __PTHREAD_CONDATTR_SIZE__: u32 = 8;
pub const __PTHREAD_COND_SIZE__: u32 = 40;
pub const __PTHREAD_ONCE_SIZE__: u32 = 8;
pub const __PTHREAD_RWLOCK_SIZE__: u32 = 192;
pub const __PTHREAD_RWLOCKATTR_SIZE__: u32 = 16;
pub const __DARWIN_WCHAR_MIN: i32 = -2147483648;
pub const _FORTIFY_SOURCE: u32 = 2;
pub const RENAME_SECLUDE: u32 = 1;
pub const RENAME_SWAP: u32 = 2;
pub const RENAME_EXCL: u32 = 4;
pub const RENAME_RESERVED1: u32 = 8;
pub const RENAME_NOFOLLOW_ANY: u32 = 16;
pub const __SLBF: u32 = 1;
pub const __SNBF: u32 = 2;
pub const __SRD: u32 = 4;
pub const __SWR: u32 = 8;
pub const __SRW: u32 = 16;
pub const __SEOF: u32 = 32;
pub const __SERR: u32 = 64;
pub const __SMBF: u32 = 128;
pub const __SAPP: u32 = 256;
pub const __SSTR: u32 = 512;
pub const __SOPT: u32 = 1024;
pub const __SNPT: u32 = 2048;
pub const __SOFF: u32 = 4096;
pub const __SMOD: u32 = 8192;
pub const __SALC: u32 = 16384;
pub const __SIGN: u32 = 32768;
pub const _IOFBF: u32 = 0;
pub const _IOLBF: u32 = 1;
pub const _IONBF: u32 = 2;
pub const BUFSIZ: u32 = 1024;
pub const EOF: i32 = -1;
pub const FOPEN_MAX: u32 = 20;
pub const FILENAME_MAX: u32 = 1024;
pub const P_tmpdir: &[u8; 10usize] = b"/var/tmp/\0";
pub const L_tmpnam: u32 = 1024;
pub const TMP_MAX: u32 = 308915776;
pub const SEEK_SET: u32 = 0;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const L_ctermid: u32 = 1024;
pub const _USE_FORTIFY_LEVEL: u32 = 2;
pub const __DARWIN_NSIG: u32 = 32;
pub const NSIG: u32 = 32;
pub const _ARM_SIGNAL_: u32 = 1;
pub const SIGHUP: u32 = 1;
pub const SIGINT: u32 = 2;
pub const SIGQUIT: u32 = 3;
pub const SIGILL: u32 = 4;
pub const SIGTRAP: u32 = 5;
pub const SIGABRT: u32 = 6;
pub const SIGIOT: u32 = 6;
pub const SIGEMT: u32 = 7;
pub const SIGFPE: u32 = 8;
pub const SIGKILL: u32 = 9;
pub const SIGBUS: u32 = 10;
pub const SIGSEGV: u32 = 11;
pub const SIGSYS: u32 = 12;
pub const SIGPIPE: u32 = 13;
pub const SIGALRM: u32 = 14;
pub const SIGTERM: u32 = 15;
pub const SIGURG: u32 = 16;
pub const SIGSTOP: u32 = 17;
pub const SIGTSTP: u32 = 18;
pub const SIGCONT: u32 = 19;
pub const SIGCHLD: u32 = 20;
pub const SIGTTIN: u32 = 21;
pub const SIGTTOU: u32 = 22;
pub const SIGIO: u32 = 23;
pub const SIGXCPU: u32 = 24;
pub const SIGXFSZ: u32 = 25;
pub const SIGVTALRM: u32 = 26;
pub const SIGPROF: u32 = 27;
pub const SIGWINCH: u32 = 28;
pub const SIGINFO: u32 = 29;
pub const SIGUSR1: u32 = 30;
pub const SIGUSR2: u32 = 31;
pub const __DARWIN_OPAQUE_ARM_THREAD_STATE64: u32 = 0;
pub const SIGEV_NONE: u32 = 0;
pub const SIGEV_SIGNAL: u32 = 1;
pub const SIGEV_THREAD: u32 = 3;
pub const ILL_NOOP: u32 = 0;
pub const ILL_ILLOPC: u32 = 1;
pub const ILL_ILLTRP: u32 = 2;
pub const ILL_PRVOPC: u32 = 3;
pub const ILL_ILLOPN: u32 = 4;
pub const ILL_ILLADR: u32 = 5;
pub const ILL_PRVREG: u32 = 6;
pub const ILL_COPROC: u32 = 7;
pub const ILL_BADSTK: u32 = 8;
pub const FPE_NOOP: u32 = 0;
pub const FPE_FLTDIV: u32 = 1;
pub const FPE_FLTOVF: u32 = 2;
pub const FPE_FLTUND: u32 = 3;
pub const FPE_FLTRES: u32 = 4;
pub const FPE_FLTINV: u32 = 5;
pub const FPE_FLTSUB: u32 = 6;
pub const FPE_INTDIV: u32 = 7;
pub const FPE_INTOVF: u32 = 8;
pub const SEGV_NOOP: u32 = 0;
pub const SEGV_MAPERR: u32 = 1;
pub const SEGV_ACCERR: u32 = 2;
pub const BUS_NOOP: u32 = 0;
pub const BUS_ADRALN: u32 = 1;
pub const BUS_ADRERR: u32 = 2;
pub const BUS_OBJERR: u32 = 3;
pub const TRAP_BRKPT: u32 = 1;
pub const TRAP_TRACE: u32 = 2;
pub const CLD_NOOP: u32 = 0;
pub const CLD_EXITED: u32 = 1;
pub const CLD_KILLED: u32 = 2;
pub const CLD_DUMPED: u32 = 3;
pub const CLD_TRAPPED: u32 = 4;
pub const CLD_STOPPED: u32 = 5;
pub const CLD_CONTINUED: u32 = 6;
pub const POLL_IN: u32 = 1;
pub const POLL_OUT: u32 = 2;
pub const POLL_MSG: u32 = 3;
pub const POLL_ERR: u32 = 4;
pub const POLL_PRI: u32 = 5;
pub const POLL_HUP: u32 = 6;
pub const SA_ONSTACK: u32 = 1;
pub const SA_RESTART: u32 = 2;
pub const SA_RESETHAND: u32 = 4;
pub const SA_NOCLDSTOP: u32 = 8;
pub const SA_NODEFER: u32 = 16;
pub const SA_NOCLDWAIT: u32 = 32;
pub const SA_SIGINFO: u32 = 64;
pub const SA_USERTRAMP: u32 = 256;
pub const SA_64REGSET: u32 = 512;
pub const SA_USERSPACE_MASK: u32 = 127;
pub const SIG_BLOCK: u32 = 1;
pub const SIG_UNBLOCK: u32 = 2;
pub const SIG_SETMASK: u32 = 3;
pub const SI_USER: u32 = 65537;
pub const SI_QUEUE: u32 = 65538;
pub const SI_TIMER: u32 = 65539;
pub const SI_ASYNCIO: u32 = 65540;
pub const SI_MESGQ: u32 = 65541;
pub const SS_ONSTACK: u32 = 1;
pub const SS_DISABLE: u32 = 4;
pub const MINSIGSTKSZ: u32 = 32768;
pub const SIGSTKSZ: u32 = 131072;
pub const SV_ONSTACK: u32 = 1;
pub const SV_INTERRUPT: u32 = 2;
pub const SV_RESETHAND: u32 = 4;
pub const SV_NODEFER: u32 = 16;
pub const SV_NOCLDSTOP: u32 = 8;
pub const SV_SIGINFO: u32 = 64;
pub const __WORDSIZE: u32 = 64;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const INT64_MAX: u64 = 9223372036854775807;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT64_MIN: i64 = -9223372036854775808;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const UINT64_MAX: i32 = -1;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST64_MIN: i64 = -9223372036854775808;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const INT_LEAST64_MAX: u64 = 9223372036854775807;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const UINT_LEAST64_MAX: i32 = -1;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i32 = -32768;
pub const INT_FAST32_MIN: i32 = -2147483648;
pub const INT_FAST64_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u32 = 32767;
pub const INT_FAST32_MAX: u32 = 2147483647;
pub const INT_FAST64_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: u32 = 65535;
pub const UINT_FAST32_MAX: u32 = 4294967295;
pub const UINT_FAST64_MAX: i32 = -1;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const UINTPTR_MAX: i32 = -1;
pub const SIZE_MAX: i32 = -1;
pub const RSIZE_MAX: i32 = -1;
pub const WINT_MIN: i32 = -2147483648;
pub const WINT_MAX: u32 = 2147483647;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const PRIO_PROCESS: u32 = 0;
pub const PRIO_PGRP: u32 = 1;
pub const PRIO_USER: u32 = 2;
pub const PRIO_DARWIN_THREAD: u32 = 3;
pub const PRIO_DARWIN_PROCESS: u32 = 4;
pub const PRIO_MIN: i32 = -20;
pub const PRIO_MAX: u32 = 20;
pub const PRIO_DARWIN_BG: u32 = 4096;
pub const PRIO_DARWIN_NONUI: u32 = 4097;
pub const RUSAGE_SELF: u32 = 0;
pub const RUSAGE_CHILDREN: i32 = -1;
pub const RUSAGE_INFO_V0: u32 = 0;
pub const RUSAGE_INFO_V1: u32 = 1;
pub const RUSAGE_INFO_V2: u32 = 2;
pub const RUSAGE_INFO_V3: u32 = 3;
pub const RUSAGE_INFO_V4: u32 = 4;
pub const RUSAGE_INFO_V5: u32 = 5;
pub const RUSAGE_INFO_V6: u32 = 6;
pub const RUSAGE_INFO_CURRENT: u32 = 6;
pub const RU_PROC_RUNS_RESLIDE: u32 = 1;
pub const RLIMIT_CPU: u32 = 0;
pub const RLIMIT_FSIZE: u32 = 1;
pub const RLIMIT_DATA: u32 = 2;
pub const RLIMIT_STACK: u32 = 3;
pub const RLIMIT_CORE: u32 = 4;
pub const RLIMIT_AS: u32 = 5;
pub const RLIMIT_RSS: u32 = 5;
pub const RLIMIT_MEMLOCK: u32 = 6;
pub const RLIMIT_NPROC: u32 = 7;
pub const RLIMIT_NOFILE: u32 = 8;
pub const RLIM_NLIMITS: u32 = 9;
pub const _RLIMIT_POSIX_FLAG: u32 = 4096;
pub const RLIMIT_WAKEUPS_MONITOR: u32 = 1;
pub const RLIMIT_CPU_USAGE_MONITOR: u32 = 2;
pub const RLIMIT_THREAD_CPULIMITS: u32 = 3;
pub const RLIMIT_FOOTPRINT_INTERVAL: u32 = 4;
pub const WAKEMON_ENABLE: u32 = 1;
pub const WAKEMON_DISABLE: u32 = 2;
pub const WAKEMON_GET_PARAMS: u32 = 4;
pub const WAKEMON_SET_DEFAULTS: u32 = 8;
pub const WAKEMON_MAKE_FATAL: u32 = 16;
pub const CPUMON_MAKE_FATAL: u32 = 4096;
pub const FOOTPRINT_INTERVAL_RESET: u32 = 1;
pub const IOPOL_TYPE_DISK: u32 = 0;
pub const IOPOL_TYPE_VFS_ATIME_UPDATES: u32 = 2;
pub const IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES: u32 = 3;
pub const IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME: u32 = 4;
pub const IOPOL_TYPE_VFS_TRIGGER_RESOLVE: u32 = 5;
pub const IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION: u32 = 6;
pub const IOPOL_TYPE_VFS_IGNORE_PERMISSIONS: u32 = 7;
pub const IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE: u32 = 8;
pub const IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES: u32 = 9;
pub const IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY: u32 = 10;
pub const IOPOL_SCOPE_PROCESS: u32 = 0;
pub const IOPOL_SCOPE_THREAD: u32 = 1;
pub const IOPOL_SCOPE_DARWIN_BG: u32 = 2;
pub const IOPOL_DEFAULT: u32 = 0;
pub const IOPOL_IMPORTANT: u32 = 1;
pub const IOPOL_PASSIVE: u32 = 2;
pub const IOPOL_THROTTLE: u32 = 3;
pub const IOPOL_UTILITY: u32 = 4;
pub const IOPOL_STANDARD: u32 = 5;
pub const IOPOL_APPLICATION: u32 = 5;
pub const IOPOL_NORMAL: u32 = 1;
pub const IOPOL_ATIME_UPDATES_DEFAULT: u32 = 0;
pub const IOPOL_ATIME_UPDATES_OFF: u32 = 1;
pub const IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT: u32 = 0;
pub const IOPOL_MATERIALIZE_DATALESS_FILES_OFF: u32 = 1;
pub const IOPOL_MATERIALIZE_DATALESS_FILES_ON: u32 = 2;
pub const IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT: u32 = 0;
pub const IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME: u32 = 1;
pub const IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT: u32 = 0;
pub const IOPOL_VFS_TRIGGER_RESOLVE_OFF: u32 = 1;
pub const IOPOL_VFS_CONTENT_PROTECTION_DEFAULT: u32 = 0;
pub const IOPOL_VFS_CONTENT_PROTECTION_IGNORE: u32 = 1;
pub const IOPOL_VFS_IGNORE_PERMISSIONS_OFF: u32 = 0;
pub const IOPOL_VFS_IGNORE_PERMISSIONS_ON: u32 = 1;
pub const IOPOL_VFS_SKIP_MTIME_UPDATE_OFF: u32 = 0;
pub const IOPOL_VFS_SKIP_MTIME_UPDATE_ON: u32 = 1;
pub const IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF: u32 = 0;
pub const IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON: u32 = 1;
pub const IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT: u32 = 0;
pub const IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON: u32 = 1;
pub const WNOHANG: u32 = 1;
pub const WUNTRACED: u32 = 2;
pub const WCOREFLAG: u32 = 128;
pub const _WSTOPPED: u32 = 127;
pub const WEXITED: u32 = 4;
pub const WSTOPPED: u32 = 8;
pub const WCONTINUED: u32 = 16;
pub const WNOWAIT: u32 = 32;
pub const WAIT_ANY: i32 = -1;
pub const WAIT_MYPGRP: u32 = 0;
pub const _QUAD_HIGHWORD: u32 = 1;
pub const _QUAD_LOWWORD: u32 = 0;
pub const __DARWIN_LITTLE_ENDIAN: u32 = 1234;
pub const __DARWIN_BIG_ENDIAN: u32 = 4321;
pub const __DARWIN_PDP_ENDIAN: u32 = 3412;
pub const __DARWIN_BYTE_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 EXIT_FAILURE: u32 = 1;
pub const EXIT_SUCCESS: u32 = 0;
pub const RAND_MAX: u32 = 2147483647;
pub const __HAS_FIXED_CHK_PROTOTYPES: u32 = 1;
pub const __GNUC_VA_LIST: u32 = 1;
pub const __DARWIN_FD_SETSIZE: u32 = 1024;
pub const __DARWIN_NBBY: u32 = 8;
pub const NBBY: u32 = 8;
pub const FD_SETSIZE: u32 = 1024;
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 EDEADLK: 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 EAGAIN: u32 = 35;
pub const EWOULDBLOCK: u32 = 35;
pub const EINPROGRESS: u32 = 36;
pub const EALREADY: u32 = 37;
pub const ENOTSOCK: u32 = 38;
pub const EDESTADDRREQ: u32 = 39;
pub const EMSGSIZE: u32 = 40;
pub const EPROTOTYPE: u32 = 41;
pub const ENOPROTOOPT: u32 = 42;
pub const EPROTONOSUPPORT: u32 = 43;
pub const ESOCKTNOSUPPORT: u32 = 44;
pub const ENOTSUP: u32 = 45;
pub const EPFNOSUPPORT: u32 = 46;
pub const EAFNOSUPPORT: u32 = 47;
pub const EADDRINUSE: u32 = 48;
pub const EADDRNOTAVAIL: u32 = 49;
pub const ENETDOWN: u32 = 50;
pub const ENETUNREACH: u32 = 51;
pub const ENETRESET: u32 = 52;
pub const ECONNABORTED: u32 = 53;
pub const ECONNRESET: u32 = 54;
pub const ENOBUFS: u32 = 55;
pub const EISCONN: u32 = 56;
pub const ENOTCONN: u32 = 57;
pub const ESHUTDOWN: u32 = 58;
pub const ETOOMANYREFS: u32 = 59;
pub const ETIMEDOUT: u32 = 60;
pub const ECONNREFUSED: u32 = 61;
pub const ELOOP: u32 = 62;
pub const ENAMETOOLONG: u32 = 63;
pub const EHOSTDOWN: u32 = 64;
pub const EHOSTUNREACH: u32 = 65;
pub const ENOTEMPTY: u32 = 66;
pub const EPROCLIM: u32 = 67;
pub const EUSERS: u32 = 68;
pub const EDQUOT: u32 = 69;
pub const ESTALE: u32 = 70;
pub const EREMOTE: u32 = 71;
pub const EBADRPC: u32 = 72;
pub const ERPCMISMATCH: u32 = 73;
pub const EPROGUNAVAIL: u32 = 74;
pub const EPROGMISMATCH: u32 = 75;
pub const EPROCUNAVAIL: u32 = 76;
pub const ENOLCK: u32 = 77;
pub const ENOSYS: u32 = 78;
pub const EFTYPE: u32 = 79;
pub const EAUTH: u32 = 80;
pub const ENEEDAUTH: u32 = 81;
pub const EPWROFF: u32 = 82;
pub const EDEVERR: u32 = 83;
pub const EOVERFLOW: u32 = 84;
pub const EBADEXEC: u32 = 85;
pub const EBADARCH: u32 = 86;
pub const ESHLIBVERS: u32 = 87;
pub const EBADMACHO: u32 = 88;
pub const ECANCELED: u32 = 89;
pub const EIDRM: u32 = 90;
pub const ENOMSG: u32 = 91;
pub const EILSEQ: u32 = 92;
pub const ENOATTR: u32 = 93;
pub const EBADMSG: u32 = 94;
pub const EMULTIHOP: u32 = 95;
pub const ENODATA: u32 = 96;
pub const ENOLINK: u32 = 97;
pub const ENOSR: u32 = 98;
pub const ENOSTR: u32 = 99;
pub const EPROTO: u32 = 100;
pub const ETIME: u32 = 101;
pub const EOPNOTSUPP: u32 = 102;
pub const ENOPOLICY: u32 = 103;
pub const ENOTRECOVERABLE: u32 = 104;
pub const EOWNERDEAD: u32 = 105;
pub const EQFULL: u32 = 106;
pub const ELAST: u32 = 106;
pub const LC_ALL: u32 = 0;
pub const LC_COLLATE: u32 = 1;
pub const LC_CTYPE: u32 = 2;
pub const LC_MONETARY: u32 = 3;
pub const LC_NUMERIC: u32 = 4;
pub const LC_TIME: u32 = 5;
pub const LC_MESSAGES: u32 = 6;
pub const _LC_LAST: u32 = 7;
pub const HAVE_PG_ATTRIBUTE_NORETURN: u32 = 1;
pub const __bool_true_false_are_defined: u32 = 1;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const USE_STDBOOL: 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 MAXDIM: u32 = 6;
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 STATUS_FOUND: u32 = 1;
pub const STATUS_WAITING: u32 = 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 _CACHED_RUNES: u32 = 256;
pub const _CRMASK: i32 = -256;
pub const _RUNE_MAGIC_A: &[u8; 9usize] = b"RuneMagA\0";
pub const _CTYPE_A: u32 = 256;
pub const _CTYPE_C: u32 = 512;
pub const _CTYPE_D: u32 = 1024;
pub const _CTYPE_G: u32 = 2048;
pub const _CTYPE_L: u32 = 4096;
pub const _CTYPE_P: u32 = 8192;
pub const _CTYPE_S: u32 = 16384;
pub const _CTYPE_U: u32 = 32768;
pub const _CTYPE_X: u32 = 65536;
pub const _CTYPE_B: u32 = 131072;
pub const _CTYPE_R: u32 = 262144;
pub const _CTYPE_I: u32 = 524288;
pub const _CTYPE_T: u32 = 1048576;
pub const _CTYPE_Q: u32 = 2097152;
pub const _CTYPE_SW0: u32 = 536870912;
pub const _CTYPE_SW1: u32 = 1073741824;
pub const _CTYPE_SW2: u32 = 2147483648;
pub const _CTYPE_SW3: u32 = 3221225472;
pub const _CTYPE_SWM: u32 = 3758096384;
pub const _CTYPE_SWS: u32 = 30;
pub const KEV_INET_SUBCLASS: u32 = 1;
pub const KEV_INET_NEW_ADDR: u32 = 1;
pub const KEV_INET_CHANGED_ADDR: u32 = 2;
pub const KEV_INET_ADDR_DELETED: u32 = 3;
pub const KEV_INET_SIFDSTADDR: u32 = 4;
pub const KEV_INET_SIFBRDADDR: u32 = 5;
pub const KEV_INET_SIFNETMASK: u32 = 6;
pub const KEV_INET_ARPCOLLISION: u32 = 7;
pub const KEV_INET_PORTINUSE: u32 = 8;
pub const KEV_INET_ARPRTRFAILURE: u32 = 9;
pub const KEV_INET_ARPRTRALIVE: u32 = 10;
pub const KEV_DL_SUBCLASS: u32 = 2;
pub const KEV_DL_SIFFLAGS: u32 = 1;
pub const KEV_DL_SIFMETRICS: u32 = 2;
pub const KEV_DL_SIFMTU: u32 = 3;
pub const KEV_DL_SIFPHYS: u32 = 4;
pub const KEV_DL_SIFMEDIA: u32 = 5;
pub const KEV_DL_SIFGENERIC: u32 = 6;
pub const KEV_DL_ADDMULTI: u32 = 7;
pub const KEV_DL_DELMULTI: u32 = 8;
pub const KEV_DL_IF_ATTACHED: u32 = 9;
pub const KEV_DL_IF_DETACHING: u32 = 10;
pub const KEV_DL_IF_DETACHED: u32 = 11;
pub const KEV_DL_LINK_OFF: u32 = 12;
pub const KEV_DL_LINK_ON: u32 = 13;
pub const KEV_DL_PROTO_ATTACHED: u32 = 14;
pub const KEV_DL_PROTO_DETACHED: u32 = 15;
pub const KEV_DL_LINK_ADDRESS_CHANGED: u32 = 16;
pub const KEV_DL_WAKEFLAGS_CHANGED: u32 = 17;
pub const KEV_DL_IF_IDLE_ROUTE_REFCNT: u32 = 18;
pub const KEV_DL_IFCAP_CHANGED: u32 = 19;
pub const KEV_DL_LINK_QUALITY_METRIC_CHANGED: u32 = 20;
pub const KEV_DL_NODE_PRESENCE: u32 = 21;
pub const KEV_DL_NODE_ABSENCE: u32 = 22;
pub const KEV_DL_PRIMARY_ELECTED: u32 = 23;
pub const KEV_DL_ISSUES: u32 = 24;
pub const KEV_DL_IFDELEGATE_CHANGED: u32 = 25;
pub const KEV_DL_AWDL_RESTRICTED: u32 = 26;
pub const KEV_DL_AWDL_UNRESTRICTED: u32 = 27;
pub const KEV_DL_RRC_STATE_CHANGED: u32 = 28;
pub const KEV_DL_QOS_MODE_CHANGED: u32 = 29;
pub const KEV_DL_LOW_POWER_MODE_CHANGED: u32 = 30;
pub const KEV_INET6_SUBCLASS: u32 = 6;
pub const KEV_INET6_NEW_USER_ADDR: u32 = 1;
pub const KEV_INET6_CHANGED_ADDR: u32 = 2;
pub const KEV_INET6_ADDR_DELETED: u32 = 3;
pub const KEV_INET6_NEW_LL_ADDR: u32 = 4;
pub const KEV_INET6_NEW_RTADV_ADDR: u32 = 5;
pub const KEV_INET6_DEFROUTER: u32 = 6;
pub const KEV_INET6_REQUEST_NAT64_PREFIX: u32 = 7;
pub const SOCK_STREAM: u32 = 1;
pub const SOCK_DGRAM: u32 = 2;
pub const SOCK_RAW: u32 = 3;
pub const SOCK_RDM: u32 = 4;
pub const SOCK_SEQPACKET: u32 = 5;
pub const SO_DEBUG: u32 = 1;
pub const SO_ACCEPTCONN: u32 = 2;
pub const SO_REUSEADDR: u32 = 4;
pub const SO_KEEPALIVE: u32 = 8;
pub const SO_DONTROUTE: u32 = 16;
pub const SO_BROADCAST: u32 = 32;
pub const SO_USELOOPBACK: u32 = 64;
pub const SO_LINGER: u32 = 128;
pub const SO_LINGER_SEC: u32 = 4224;
pub const SO_OOBINLINE: u32 = 256;
pub const SO_REUSEPORT: u32 = 512;
pub const SO_TIMESTAMP: u32 = 1024;
pub const SO_TIMESTAMP_MONOTONIC: u32 = 2048;
pub const SO_DONTTRUNC: u32 = 8192;
pub const SO_WANTMORE: u32 = 16384;
pub const SO_WANTOOBFLAG: u32 = 32768;
pub const SO_SNDBUF: u32 = 4097;
pub const SO_RCVBUF: u32 = 4098;
pub const SO_SNDLOWAT: u32 = 4099;
pub const SO_RCVLOWAT: u32 = 4100;
pub const SO_SNDTIMEO: u32 = 4101;
pub const SO_RCVTIMEO: u32 = 4102;
pub const SO_ERROR: u32 = 4103;
pub const SO_TYPE: u32 = 4104;
pub const SO_LABEL: u32 = 4112;
pub const SO_PEERLABEL: u32 = 4113;
pub const SO_NREAD: u32 = 4128;
pub const SO_NKE: u32 = 4129;
pub const SO_NOSIGPIPE: u32 = 4130;
pub const SO_NOADDRERR: u32 = 4131;
pub const SO_NWRITE: u32 = 4132;
pub const SO_REUSESHAREUID: u32 = 4133;
pub const SO_NOTIFYCONFLICT: u32 = 4134;
pub const SO_UPCALLCLOSEWAIT: u32 = 4135;
pub const SO_RANDOMPORT: u32 = 4226;
pub const SO_NP_EXTENSIONS: u32 = 4227;
pub const SO_NUMRCVPKT: u32 = 4370;
pub const SO_NET_SERVICE_TYPE: u32 = 4374;
pub const SO_NETSVC_MARKING_LEVEL: u32 = 4377;
pub const SO_RESOLVER_SIGNATURE: u32 = 4401;
pub const NET_SERVICE_TYPE_BE: u32 = 0;
pub const NET_SERVICE_TYPE_BK: u32 = 1;
pub const NET_SERVICE_TYPE_SIG: u32 = 2;
pub const NET_SERVICE_TYPE_VI: u32 = 3;
pub const NET_SERVICE_TYPE_VO: u32 = 4;
pub const NET_SERVICE_TYPE_RV: u32 = 5;
pub const NET_SERVICE_TYPE_AV: u32 = 6;
pub const NET_SERVICE_TYPE_OAM: u32 = 7;
pub const NET_SERVICE_TYPE_RD: u32 = 8;
pub const NETSVC_MRKNG_UNKNOWN: u32 = 0;
pub const NETSVC_MRKNG_LVL_L2: u32 = 1;
pub const NETSVC_MRKNG_LVL_L3L2_ALL: u32 = 2;
pub const NETSVC_MRKNG_LVL_L3L2_BK: u32 = 3;
pub const SAE_ASSOCID_ANY: u32 = 0;
pub const SAE_CONNID_ANY: u32 = 0;
pub const CONNECT_RESUME_ON_READ_WRITE: u32 = 1;
pub const CONNECT_DATA_IDEMPOTENT: u32 = 2;
pub const CONNECT_DATA_AUTHENTICATED: u32 = 4;
pub const SONPX_SETOPTSHUT: u32 = 1;
pub const SOL_SOCKET: u32 = 65535;
pub const AF_UNSPEC: u32 = 0;
pub const AF_UNIX: u32 = 1;
pub const AF_LOCAL: u32 = 1;
pub const AF_INET: u32 = 2;
pub const AF_IMPLINK: u32 = 3;
pub const AF_PUP: u32 = 4;
pub const AF_CHAOS: u32 = 5;
pub const AF_NS: u32 = 6;
pub const AF_ISO: u32 = 7;
pub const AF_OSI: u32 = 7;
pub const AF_ECMA: u32 = 8;
pub const AF_DATAKIT: u32 = 9;
pub const AF_CCITT: u32 = 10;
pub const AF_SNA: u32 = 11;
pub const AF_DECnet: u32 = 12;
pub const AF_DLI: u32 = 13;
pub const AF_LAT: u32 = 14;
pub const AF_HYLINK: u32 = 15;
pub const AF_APPLETALK: u32 = 16;
pub const AF_ROUTE: u32 = 17;
pub const AF_LINK: u32 = 18;
pub const pseudo_AF_XTP: u32 = 19;
pub const AF_COIP: u32 = 20;
pub const AF_CNT: u32 = 21;
pub const pseudo_AF_RTIP: u32 = 22;
pub const AF_IPX: u32 = 23;
pub const AF_SIP: u32 = 24;
pub const pseudo_AF_PIP: u32 = 25;
pub const AF_NDRV: u32 = 27;
pub const AF_ISDN: u32 = 28;
pub const AF_E164: u32 = 28;
pub const pseudo_AF_KEY: u32 = 29;
pub const AF_INET6: u32 = 30;
pub const AF_NATM: u32 = 31;
pub const AF_SYSTEM: u32 = 32;
pub const AF_NETBIOS: u32 = 33;
pub const AF_PPP: u32 = 34;
pub const pseudo_AF_HDRCMPLT: u32 = 35;
pub const AF_RESERVED_36: u32 = 36;
pub const AF_IEEE80211: u32 = 37;
pub const AF_UTUN: u32 = 38;
pub const AF_VSOCK: u32 = 40;
pub const AF_MAX: u32 = 41;
pub const SOCK_MAXADDRLEN: u32 = 255;
pub const _SS_MAXSIZE: u32 = 128;
pub const PF_UNSPEC: u32 = 0;
pub const PF_LOCAL: u32 = 1;
pub const PF_UNIX: u32 = 1;
pub const PF_INET: u32 = 2;
pub const PF_IMPLINK: u32 = 3;
pub const PF_PUP: u32 = 4;
pub const PF_CHAOS: u32 = 5;
pub const PF_NS: u32 = 6;
pub const PF_ISO: u32 = 7;
pub const PF_OSI: u32 = 7;
pub const PF_ECMA: u32 = 8;
pub const PF_DATAKIT: u32 = 9;
pub const PF_CCITT: u32 = 10;
pub const PF_SNA: u32 = 11;
pub const PF_DECnet: u32 = 12;
pub const PF_DLI: u32 = 13;
pub const PF_LAT: u32 = 14;
pub const PF_HYLINK: u32 = 15;
pub const PF_APPLETALK: u32 = 16;
pub const PF_ROUTE: u32 = 17;
pub const PF_LINK: u32 = 18;
pub const PF_XTP: u32 = 19;
pub const PF_COIP: u32 = 20;
pub const PF_CNT: u32 = 21;
pub const PF_SIP: u32 = 24;
pub const PF_IPX: u32 = 23;
pub const PF_RTIP: u32 = 22;
pub const PF_PIP: u32 = 25;
pub const PF_NDRV: u32 = 27;
pub const PF_ISDN: u32 = 28;
pub const PF_KEY: u32 = 29;
pub const PF_INET6: u32 = 30;
pub const PF_NATM: u32 = 31;
pub const PF_SYSTEM: u32 = 32;
pub const PF_NETBIOS: u32 = 33;
pub const PF_PPP: u32 = 34;
pub const PF_RESERVED_36: u32 = 36;
pub const PF_UTUN: u32 = 38;
pub const PF_VSOCK: u32 = 40;
pub const PF_MAX: u32 = 41;
pub const NET_MAXID: u32 = 41;
pub const NET_RT_DUMP: u32 = 1;
pub const NET_RT_FLAGS: u32 = 2;
pub const NET_RT_IFLIST: u32 = 3;
pub const NET_RT_STAT: u32 = 4;
pub const NET_RT_TRASH: u32 = 5;
pub const NET_RT_IFLIST2: u32 = 6;
pub const NET_RT_DUMP2: u32 = 7;
pub const NET_RT_FLAGS_PRIV: u32 = 10;
pub const NET_RT_MAXID: u32 = 11;
pub const SOMAXCONN: u32 = 128;
pub const MSG_OOB: u32 = 1;
pub const MSG_PEEK: u32 = 2;
pub const MSG_DONTROUTE: u32 = 4;
pub const MSG_EOR: u32 = 8;
pub const MSG_TRUNC: u32 = 16;
pub const MSG_CTRUNC: u32 = 32;
pub const MSG_WAITALL: u32 = 64;
pub const MSG_DONTWAIT: u32 = 128;
pub const MSG_EOF: u32 = 256;
pub const MSG_WAITSTREAM: u32 = 512;
pub const MSG_FLUSH: u32 = 1024;
pub const MSG_HOLD: u32 = 2048;
pub const MSG_SEND: u32 = 4096;
pub const MSG_HAVEMORE: u32 = 8192;
pub const MSG_RCVMORE: u32 = 16384;
pub const MSG_NEEDSA: u32 = 65536;
pub const MSG_NOSIGNAL: u32 = 524288;
pub const SCM_RIGHTS: u32 = 1;
pub const SCM_TIMESTAMP: u32 = 2;
pub const SCM_CREDS: u32 = 3;
pub const SCM_TIMESTAMP_MONOTONIC: u32 = 4;
pub const SHUT_RD: u32 = 0;
pub const SHUT_WR: u32 = 1;
pub const SHUT_RDWR: u32 = 2;
pub const IPPROTO_IP: u32 = 0;
pub const IPPROTO_HOPOPTS: u32 = 0;
pub const IPPROTO_ICMP: u32 = 1;
pub const IPPROTO_IGMP: u32 = 2;
pub const IPPROTO_GGP: u32 = 3;
pub const IPPROTO_IPV4: u32 = 4;
pub const IPPROTO_IPIP: u32 = 4;
pub const IPPROTO_TCP: u32 = 6;
pub const IPPROTO_ST: u32 = 7;
pub const IPPROTO_EGP: u32 = 8;
pub const IPPROTO_PIGP: u32 = 9;
pub const IPPROTO_RCCMON: u32 = 10;
pub const IPPROTO_NVPII: u32 = 11;
pub const IPPROTO_PUP: u32 = 12;
pub const IPPROTO_ARGUS: u32 = 13;
pub const IPPROTO_EMCON: u32 = 14;
pub const IPPROTO_XNET: u32 = 15;
pub const IPPROTO_CHAOS: u32 = 16;
pub const IPPROTO_UDP: u32 = 17;
pub const IPPROTO_MUX: u32 = 18;
pub const IPPROTO_MEAS: u32 = 19;
pub const IPPROTO_HMP: u32 = 20;
pub const IPPROTO_PRM: u32 = 21;
pub const IPPROTO_IDP: u32 = 22;
pub const IPPROTO_TRUNK1: u32 = 23;
pub const IPPROTO_TRUNK2: u32 = 24;
pub const IPPROTO_LEAF1: u32 = 25;
pub const IPPROTO_LEAF2: u32 = 26;
pub const IPPROTO_RDP: u32 = 27;
pub const IPPROTO_IRTP: u32 = 28;
pub const IPPROTO_TP: u32 = 29;
pub const IPPROTO_BLT: u32 = 30;
pub const IPPROTO_NSP: u32 = 31;
pub const IPPROTO_INP: u32 = 32;
pub const IPPROTO_SEP: u32 = 33;
pub const IPPROTO_3PC: u32 = 34;
pub const IPPROTO_IDPR: u32 = 35;
pub const IPPROTO_XTP: u32 = 36;
pub const IPPROTO_DDP: u32 = 37;
pub const IPPROTO_CMTP: u32 = 38;
pub const IPPROTO_TPXX: u32 = 39;
pub const IPPROTO_IL: u32 = 40;
pub const IPPROTO_IPV6: u32 = 41;
pub const IPPROTO_SDRP: u32 = 42;
pub const IPPROTO_ROUTING: u32 = 43;
pub const IPPROTO_FRAGMENT: u32 = 44;
pub const IPPROTO_IDRP: u32 = 45;
pub const IPPROTO_RSVP: u32 = 46;
pub const IPPROTO_GRE: u32 = 47;
pub const IPPROTO_MHRP: u32 = 48;
pub const IPPROTO_BHA: u32 = 49;
pub const IPPROTO_ESP: u32 = 50;
pub const IPPROTO_AH: u32 = 51;
pub const IPPROTO_INLSP: u32 = 52;
pub const IPPROTO_SWIPE: u32 = 53;
pub const IPPROTO_NHRP: u32 = 54;
pub const IPPROTO_ICMPV6: u32 = 58;
pub const IPPROTO_NONE: u32 = 59;
pub const IPPROTO_DSTOPTS: u32 = 60;
pub const IPPROTO_AHIP: u32 = 61;
pub const IPPROTO_CFTP: u32 = 62;
pub const IPPROTO_HELLO: u32 = 63;
pub const IPPROTO_SATEXPAK: u32 = 64;
pub const IPPROTO_KRYPTOLAN: u32 = 65;
pub const IPPROTO_RVD: u32 = 66;
pub const IPPROTO_IPPC: u32 = 67;
pub const IPPROTO_ADFS: u32 = 68;
pub const IPPROTO_SATMON: u32 = 69;
pub const IPPROTO_VISA: u32 = 70;
pub const IPPROTO_IPCV: u32 = 71;
pub const IPPROTO_CPNX: u32 = 72;
pub const IPPROTO_CPHB: u32 = 73;
pub const IPPROTO_WSN: u32 = 74;
pub const IPPROTO_PVP: u32 = 75;
pub const IPPROTO_BRSATMON: u32 = 76;
pub const IPPROTO_ND: u32 = 77;
pub const IPPROTO_WBMON: u32 = 78;
pub const IPPROTO_WBEXPAK: u32 = 79;
pub const IPPROTO_EON: u32 = 80;
pub const IPPROTO_VMTP: u32 = 81;
pub const IPPROTO_SVMTP: u32 = 82;
pub const IPPROTO_VINES: u32 = 83;
pub const IPPROTO_TTP: u32 = 84;
pub const IPPROTO_IGP: u32 = 85;
pub const IPPROTO_DGP: u32 = 86;
pub const IPPROTO_TCF: u32 = 87;
pub const IPPROTO_IGRP: u32 = 88;
pub const IPPROTO_OSPFIGP: u32 = 89;
pub const IPPROTO_SRPC: u32 = 90;
pub const IPPROTO_LARP: u32 = 91;
pub const IPPROTO_MTP: u32 = 92;
pub const IPPROTO_AX25: u32 = 93;
pub const IPPROTO_IPEIP: u32 = 94;
pub const IPPROTO_MICP: u32 = 95;
pub const IPPROTO_SCCSP: u32 = 96;
pub const IPPROTO_ETHERIP: u32 = 97;
pub const IPPROTO_ENCAP: u32 = 98;
pub const IPPROTO_APES: u32 = 99;
pub const IPPROTO_GMTP: u32 = 100;
pub const IPPROTO_PIM: u32 = 103;
pub const IPPROTO_IPCOMP: u32 = 108;
pub const IPPROTO_PGM: u32 = 113;
pub const IPPROTO_SCTP: u32 = 132;
pub const IPPROTO_DIVERT: u32 = 254;
pub const IPPROTO_RAW: u32 = 255;
pub const IPPROTO_MAX: u32 = 256;
pub const IPPROTO_DONE: u32 = 257;
pub const __DARWIN_IPPORT_RESERVED: u32 = 1024;
pub const IPPORT_USERRESERVED: u32 = 5000;
pub const IPPORT_HIFIRSTAUTO: u32 = 49152;
pub const IPPORT_HILASTAUTO: u32 = 65535;
pub const IPPORT_RESERVEDSTART: u32 = 600;
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_CLASSD_NET: u32 = 4026531840;
pub const IN_CLASSD_NSHIFT: u32 = 28;
pub const IN_CLASSD_HOST: u32 = 268435455;
pub const INADDR_NONE: u32 = 4294967295;
pub const IN_LOOPBACKNET: u32 = 127;
pub const INET_ADDRSTRLEN: u32 = 16;
pub const IP_OPTIONS: u32 = 1;
pub const IP_HDRINCL: u32 = 2;
pub const IP_TOS: u32 = 3;
pub const IP_TTL: u32 = 4;
pub const IP_RECVOPTS: u32 = 5;
pub const IP_RECVRETOPTS: u32 = 6;
pub const IP_RECVDSTADDR: u32 = 7;
pub const IP_RETOPTS: u32 = 8;
pub const IP_MULTICAST_IF: u32 = 9;
pub const IP_MULTICAST_TTL: u32 = 10;
pub const IP_MULTICAST_LOOP: u32 = 11;
pub const IP_ADD_MEMBERSHIP: u32 = 12;
pub const IP_DROP_MEMBERSHIP: u32 = 13;
pub const IP_MULTICAST_VIF: u32 = 14;
pub const IP_RSVP_ON: u32 = 15;
pub const IP_RSVP_OFF: u32 = 16;
pub const IP_RSVP_VIF_ON: u32 = 17;
pub const IP_RSVP_VIF_OFF: u32 = 18;
pub const IP_PORTRANGE: u32 = 19;
pub const IP_RECVIF: u32 = 20;
pub const IP_IPSEC_POLICY: u32 = 21;
pub const IP_FAITH: u32 = 22;
pub const IP_STRIPHDR: u32 = 23;
pub const IP_RECVTTL: u32 = 24;
pub const IP_BOUND_IF: u32 = 25;
pub const IP_PKTINFO: u32 = 26;
pub const IP_RECVPKTINFO: u32 = 26;
pub const IP_RECVTOS: u32 = 27;
pub const IP_DONTFRAG: u32 = 28;
pub const IP_FW_ADD: u32 = 40;
pub const IP_FW_DEL: u32 = 41;
pub const IP_FW_FLUSH: u32 = 42;
pub const IP_FW_ZERO: u32 = 43;
pub const IP_FW_GET: u32 = 44;
pub const IP_FW_RESETLOG: u32 = 45;
pub const IP_OLD_FW_ADD: u32 = 50;
pub const IP_OLD_FW_DEL: u32 = 51;
pub const IP_OLD_FW_FLUSH: u32 = 52;
pub const IP_OLD_FW_ZERO: u32 = 53;
pub const IP_OLD_FW_GET: u32 = 54;
pub const IP_NAT__XXX: u32 = 55;
pub const IP_OLD_FW_RESETLOG: u32 = 56;
pub const IP_DUMMYNET_CONFIGURE: u32 = 60;
pub const IP_DUMMYNET_DEL: u32 = 61;
pub const IP_DUMMYNET_FLUSH: u32 = 62;
pub const IP_DUMMYNET_GET: u32 = 64;
pub const IP_TRAFFIC_MGT_BACKGROUND: u32 = 65;
pub const IP_MULTICAST_IFINDEX: u32 = 66;
pub const IP_ADD_SOURCE_MEMBERSHIP: u32 = 70;
pub const IP_DROP_SOURCE_MEMBERSHIP: u32 = 71;
pub const IP_BLOCK_SOURCE: u32 = 72;
pub const IP_UNBLOCK_SOURCE: u32 = 73;
pub const IP_MSFILTER: u32 = 74;
pub const MCAST_JOIN_GROUP: u32 = 80;
pub const MCAST_LEAVE_GROUP: u32 = 81;
pub const MCAST_JOIN_SOURCE_GROUP: u32 = 82;
pub const MCAST_LEAVE_SOURCE_GROUP: u32 = 83;
pub const MCAST_BLOCK_SOURCE: u32 = 84;
pub const MCAST_UNBLOCK_SOURCE: u32 = 85;
pub const IP_DEFAULT_MULTICAST_TTL: u32 = 1;
pub const IP_DEFAULT_MULTICAST_LOOP: u32 = 1;
pub const IP_MIN_MEMBERSHIPS: u32 = 31;
pub const IP_MAX_MEMBERSHIPS: u32 = 4095;
pub const IP_MAX_GROUP_SRC_FILTER: u32 = 512;
pub const IP_MAX_SOCK_SRC_FILTER: u32 = 128;
pub const IP_MAX_SOCK_MUTE_FILTER: u32 = 128;
pub const MCAST_UNDEFINED: u32 = 0;
pub const MCAST_INCLUDE: u32 = 1;
pub const MCAST_EXCLUDE: u32 = 2;
pub const IP_PORTRANGE_DEFAULT: u32 = 0;
pub const IP_PORTRANGE_HIGH: u32 = 1;
pub const IP_PORTRANGE_LOW: u32 = 2;
pub const IPPROTO_MAXID: u32 = 52;
pub const IPCTL_FORWARDING: u32 = 1;
pub const IPCTL_SENDREDIRECTS: u32 = 2;
pub const IPCTL_DEFTTL: u32 = 3;
pub const IPCTL_RTEXPIRE: u32 = 5;
pub const IPCTL_RTMINEXPIRE: u32 = 6;
pub const IPCTL_RTMAXCACHE: u32 = 7;
pub const IPCTL_SOURCEROUTE: u32 = 8;
pub const IPCTL_DIRECTEDBROADCAST: u32 = 9;
pub const IPCTL_INTRQMAXLEN: u32 = 10;
pub const IPCTL_INTRQDROPS: u32 = 11;
pub const IPCTL_STATS: u32 = 12;
pub const IPCTL_ACCEPTSOURCEROUTE: u32 = 13;
pub const IPCTL_FASTFORWARDING: u32 = 14;
pub const IPCTL_KEEPFAITH: u32 = 15;
pub const IPCTL_GIF_TTL: u32 = 16;
pub const IPCTL_MAXID: u32 = 17;
pub const __KAME_VERSION: &[u8; 18usize] = b"2009/apple-darwin\0";
pub const IPV6PORT_RESERVED: u32 = 1024;
pub const IPV6PORT_ANONMIN: u32 = 49152;
pub const IPV6PORT_ANONMAX: u32 = 65535;
pub const IPV6PORT_RESERVEDMIN: u32 = 600;
pub const IPV6PORT_RESERVEDMAX: u32 = 1023;
pub const INET6_ADDRSTRLEN: u32 = 46;
pub const __IPV6_ADDR_SCOPE_NODELOCAL: u32 = 1;
pub const __IPV6_ADDR_SCOPE_INTFACELOCAL: u32 = 1;
pub const __IPV6_ADDR_SCOPE_LINKLOCAL: u32 = 2;
pub const __IPV6_ADDR_SCOPE_SITELOCAL: u32 = 5;
pub const __IPV6_ADDR_SCOPE_ORGLOCAL: u32 = 8;
pub const __IPV6_ADDR_SCOPE_GLOBAL: u32 = 14;
pub const IPV6_ADDR_MC_FLAGS_TRANSIENT: u32 = 16;
pub const IPV6_ADDR_MC_FLAGS_PREFIX: u32 = 32;
pub const IPV6_ADDR_MC_FLAGS_UNICAST_BASED: u32 = 48;
pub const IPV6_SOCKOPT_RESERVED1: u32 = 3;
pub const IPV6_UNICAST_HOPS: u32 = 4;
pub const IPV6_MULTICAST_IF: u32 = 9;
pub const IPV6_MULTICAST_HOPS: u32 = 10;
pub const IPV6_MULTICAST_LOOP: u32 = 11;
pub const IPV6_JOIN_GROUP: u32 = 12;
pub const IPV6_LEAVE_GROUP: u32 = 13;
pub const IPV6_PORTRANGE: u32 = 14;
pub const ICMP6_FILTER: u32 = 18;
pub const IPV6_2292PKTINFO: u32 = 19;
pub const IPV6_2292HOPLIMIT: u32 = 20;
pub const IPV6_2292NEXTHOP: u32 = 21;
pub const IPV6_2292HOPOPTS: u32 = 22;
pub const IPV6_2292DSTOPTS: u32 = 23;
pub const IPV6_2292RTHDR: u32 = 24;
pub const IPV6_2292PKTOPTIONS: u32 = 25;
pub const IPV6_CHECKSUM: u32 = 26;
pub const IPV6_V6ONLY: u32 = 27;
pub const IPV6_BINDV6ONLY: u32 = 27;
pub const IPV6_IPSEC_POLICY: u32 = 28;
pub const IPV6_FAITH: u32 = 29;
pub const IPV6_FW_ADD: u32 = 30;
pub const IPV6_FW_DEL: u32 = 31;
pub const IPV6_FW_FLUSH: u32 = 32;
pub const IPV6_FW_ZERO: u32 = 33;
pub const IPV6_FW_GET: u32 = 34;
pub const IPV6_RECVTCLASS: u32 = 35;
pub const IPV6_TCLASS: u32 = 36;
pub const IPV6_BOUND_IF: u32 = 125;
pub const IPV6_RTHDR_LOOSE: u32 = 0;
pub const IPV6_RTHDR_STRICT: u32 = 1;
pub const IPV6_RTHDR_TYPE_0: u32 = 0;
pub const IPV6_DEFAULT_MULTICAST_HOPS: u32 = 1;
pub const IPV6_DEFAULT_MULTICAST_LOOP: u32 = 1;
pub const IPV6_MIN_MEMBERSHIPS: u32 = 31;
pub const IPV6_MAX_MEMBERSHIPS: u32 = 4095;
pub const IPV6_MAX_GROUP_SRC_FILTER: u32 = 512;
pub const IPV6_MAX_SOCK_SRC_FILTER: u32 = 128;
pub const IPV6_PORTRANGE_DEFAULT: u32 = 0;
pub const IPV6_PORTRANGE_HIGH: u32 = 1;
pub const IPV6_PORTRANGE_LOW: u32 = 2;
pub const IPV6PROTO_MAXID: u32 = 104;
pub const IPV6CTL_FORWARDING: u32 = 1;
pub const IPV6CTL_SENDREDIRECTS: u32 = 2;
pub const IPV6CTL_DEFHLIM: u32 = 3;
pub const IPV6CTL_FORWSRCRT: u32 = 5;
pub const IPV6CTL_STATS: u32 = 6;
pub const IPV6CTL_MRTSTATS: u32 = 7;
pub const IPV6CTL_MRTPROTO: u32 = 8;
pub const IPV6CTL_MAXFRAGPACKETS: u32 = 9;
pub const IPV6CTL_SOURCECHECK: u32 = 10;
pub const IPV6CTL_SOURCECHECK_LOGINT: u32 = 11;
pub const IPV6CTL_ACCEPT_RTADV: u32 = 12;
pub const IPV6CTL_KEEPFAITH: u32 = 13;
pub const IPV6CTL_LOG_INTERVAL: u32 = 14;
pub const IPV6CTL_HDRNESTLIMIT: u32 = 15;
pub const IPV6CTL_DAD_COUNT: u32 = 16;
pub const IPV6CTL_AUTO_FLOWLABEL: u32 = 17;
pub const IPV6CTL_DEFMCASTHLIM: u32 = 18;
pub const IPV6CTL_GIF_HLIM: u32 = 19;
pub const IPV6CTL_KAME_VERSION: u32 = 20;
pub const IPV6CTL_USE_DEPRECATED: u32 = 21;
pub const IPV6CTL_RR_PRUNE: u32 = 22;
pub const IPV6CTL_V6ONLY: u32 = 24;
pub const IPV6CTL_RTEXPIRE: u32 = 25;
pub const IPV6CTL_RTMINEXPIRE: u32 = 26;
pub const IPV6CTL_RTMAXCACHE: u32 = 27;
pub const IPV6CTL_USETEMPADDR: u32 = 32;
pub const IPV6CTL_TEMPPLTIME: u32 = 33;
pub const IPV6CTL_TEMPVLTIME: u32 = 34;
pub const IPV6CTL_AUTO_LINKLOCAL: u32 = 35;
pub const IPV6CTL_RIP6STATS: u32 = 36;
pub const IPV6CTL_PREFER_TEMPADDR: u32 = 37;
pub const IPV6CTL_ADDRCTLPOLICY: u32 = 38;
pub const IPV6CTL_USE_DEFAULTZONE: u32 = 39;
pub const IPV6CTL_MAXFRAGS: u32 = 41;
pub const IPV6CTL_MCAST_PMTU: u32 = 44;
pub const IPV6CTL_NEIGHBORGCTHRESH: u32 = 46;
pub const IPV6CTL_MAXIFPREFIXES: u32 = 47;
pub const IPV6CTL_MAXIFDEFROUTERS: u32 = 48;
pub const IPV6CTL_MAXDYNROUTES: u32 = 49;
pub const ICMPV6CTL_ND6_ONLINKNSRFC4861: u32 = 50;
pub const IPV6CTL_ULA_USETEMPADDR: u32 = 51;
pub const IPV6CTL_MAXID: u32 = 51;
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_PROTOCOLS: &[u8; 15usize] = b"/etc/protocols\0";
pub const _PATH_SERVICES: &[u8; 14usize] = b"/etc/services\0";
pub const NETDB_INTERNAL: i32 = -1;
pub const NETDB_SUCCESS: u32 = 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 NO_ADDRESS: u32 = 4;
pub const EAI_ADDRFAMILY: u32 = 1;
pub const EAI_AGAIN: u32 = 2;
pub const EAI_BADFLAGS: u32 = 3;
pub const EAI_FAIL: u32 = 4;
pub const EAI_FAMILY: u32 = 5;
pub const EAI_MEMORY: u32 = 6;
pub const EAI_NODATA: u32 = 7;
pub const EAI_NONAME: u32 = 8;
pub const EAI_SERVICE: u32 = 9;
pub const EAI_SOCKTYPE: u32 = 10;
pub const EAI_SYSTEM: u32 = 11;
pub const EAI_BADHINTS: u32 = 12;
pub const EAI_PROTOCOL: u32 = 13;
pub const EAI_OVERFLOW: u32 = 14;
pub const EAI_MAX: u32 = 15;
pub const AI_PASSIVE: u32 = 1;
pub const AI_CANONNAME: u32 = 2;
pub const AI_NUMERICHOST: u32 = 4;
pub const AI_NUMERICSERV: u32 = 4096;
pub const AI_ALL: u32 = 256;
pub const AI_V4MAPPED_CFG: u32 = 512;
pub const AI_ADDRCONFIG: u32 = 1024;
pub const AI_V4MAPPED: u32 = 2048;
pub const AI_DEFAULT: u32 = 1536;
pub const AI_UNUSABLE: u32 = 268435456;
pub const NI_MAXHOST: u32 = 1025;
pub const NI_MAXSERV: u32 = 32;
pub const NI_NOFQDN: u32 = 1;
pub const NI_NUMERICHOST: u32 = 2;
pub const NI_NAMEREQD: u32 = 4;
pub const NI_NUMERICSERV: u32 = 8;
pub const NI_NUMERICSCOPE: u32 = 256;
pub const NI_DGRAM: u32 = 16;
pub const NI_WITHSCOPEID: u32 = 32;
pub const SCOPE_DELIMITER: u8 = 37u8;
pub const _PATH_PWD: &[u8; 5usize] = b"/etc\0";
pub const _PATH_PASSWD: &[u8; 12usize] = b"/etc/passwd\0";
pub const _PASSWD: &[u8; 7usize] = b"passwd\0";
pub const _PATH_MASTERPASSWD: &[u8; 19usize] = b"/etc/master.passwd\0";
pub const _PATH_MASTERPASSWD_LOCK: &[u8; 10usize] = b"/etc/ptmp\0";
pub const _MASTERPASSWD: &[u8; 14usize] = b"master.passwd\0";
pub const _PATH_MP_DB: &[u8; 12usize] = b"/etc/pwd.db\0";
pub const _MP_DB: &[u8; 7usize] = b"pwd.db\0";
pub const _PATH_SMP_DB: &[u8; 13usize] = b"/etc/spwd.db\0";
pub const _SMP_DB: &[u8; 8usize] = b"spwd.db\0";
pub const _PATH_PWD_MKDB: &[u8; 19usize] = b"/usr/sbin/pwd_mkdb\0";
pub const _PW_KEYBYNAME: u8 = 49u8;
pub const _PW_KEYBYNUM: u8 = 50u8;
pub const _PW_KEYBYUID: u8 = 51u8;
pub const _PASSWORD_EFMT1: u8 = 95u8;
pub const _PASSWORD_LEN: u32 = 128;
pub const _PASSWORD_NOUID: u32 = 1;
pub const _PASSWORD_NOGID: u32 = 2;
pub const _PASSWORD_NOCHG: u32 = 4;
pub const _PASSWORD_NOEXP: u32 = 8;
pub const _PASSWORD_WARNDAYS: u32 = 14;
pub const _PASSWORD_CHGNOW: i32 = -1;
pub const PGINVALID_SOCKET: i32 = -1;
pub const PG_BACKEND_VERSIONSTR: &[u8; 29usize] = b"postgres (PostgreSQL) 12.13\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 FP_SUPERNORMAL: u32 = 6;
pub const FP_FAST_FMA: u32 = 1;
pub const FP_FAST_FMAF: u32 = 1;
pub const FP_FAST_FMAL: u32 = 1;
pub const FP_ILOGB0: i32 = -2147483648;
pub const FP_ILOGBNAN: i32 = -2147483648;
pub const MATH_ERRNO: u32 = 1;
pub const MATH_ERREXCEPT: u32 = 2;
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 DOMAIN: u32 = 1;
pub const SING: u32 = 2;
pub const OVERFLOW: u32 = 3;
pub const UNDERFLOW: u32 = 4;
pub const TLOSS: u32 = 5;
pub const PLOSS: u32 = 6;
pub const _JBLEN: u32 = 48;
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 ERROR: u32 = 20;
pub const FATAL: u32 = 21;
pub const PANIC: u32 = 22;
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 MCXT_ALLOC_HUGE: u32 = 1;
pub const MCXT_ALLOC_NO_OOM: u32 = 2;
pub const MCXT_ALLOC_ZERO: u32 = 4;
pub const VARATT_SHORT_MAX: u32 = 127;
pub const FIELDNO_NULLABLE_DATUM_DATUM: u32 = 0;
pub const FIELDNO_NULLABLE_DATUM_ISNULL: u32 = 1;
pub const SIZEOF_DATUM: u32 = 8;
pub const FLOAT4PASSBYVAL: u32 = 1;
pub const FLOAT8PASSBYVAL: 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 InvalidAttrNumber: u32 = 0;
pub const MaxAttrNumber: u32 = 32767;
pub const AttributeRelationId: Oid = Oid(1249);
pub const AttributeRelation_Rowtype_Id: u32 = 75;
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_attstattarget: u32 = 4;
pub const Anum_pg_attribute_attlen: u32 = 5;
pub const Anum_pg_attribute_attnum: u32 = 6;
pub const Anum_pg_attribute_attndims: u32 = 7;
pub const Anum_pg_attribute_attcacheoff: u32 = 8;
pub const Anum_pg_attribute_atttypmod: u32 = 9;
pub const Anum_pg_attribute_attbyval: u32 = 10;
pub const Anum_pg_attribute_attstorage: u32 = 11;
pub const Anum_pg_attribute_attalign: 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_attcollation: u32 = 21;
pub const Anum_pg_attribute_attacl: u32 = 22;
pub const Anum_pg_attribute_attoptions: u32 = 23;
pub const Anum_pg_attribute_attfdwoptions: u32 = 24;
pub const Anum_pg_attribute_attmissingval: u32 = 25;
pub const Natts_pg_attribute: u32 = 25;
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 OffsetNumberMask: u32 = 65535;
pub const SpecTokenOffsetNumber: u32 = 65534;
pub const MovedPartitionsOffsetNumber: u32 = 65533;
pub const FIELDNO_HEAPTUPLEDATA_DATA: u32 = 3;
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 O_RDONLY: u32 = 0;
pub const O_WRONLY: u32 = 1;
pub const O_RDWR: u32 = 2;
pub const O_ACCMODE: u32 = 3;
pub const FREAD: u32 = 1;
pub const FWRITE: u32 = 2;
pub const O_NONBLOCK: u32 = 4;
pub const O_APPEND: u32 = 8;
pub const O_SYNC: u32 = 128;
pub const O_SHLOCK: u32 = 16;
pub const O_EXLOCK: u32 = 32;
pub const O_ASYNC: u32 = 64;
pub const O_FSYNC: u32 = 128;
pub const O_NOFOLLOW: u32 = 256;
pub const O_CREAT: u32 = 512;
pub const O_TRUNC: u32 = 1024;
pub const O_EXCL: u32 = 2048;
pub const O_EVTONLY: u32 = 32768;
pub const O_NOCTTY: u32 = 131072;
pub const O_DIRECTORY: u32 = 1048576;
pub const O_SYMLINK: u32 = 2097152;
pub const O_DSYNC: u32 = 4194304;
pub const O_CLOEXEC: u32 = 16777216;
pub const O_NOFOLLOW_ANY: u32 = 536870912;
pub const O_EXEC: u32 = 1073741824;
pub const O_SEARCH: u32 = 1074790400;
pub const AT_FDCWD: i32 = -2;
pub const AT_EACCESS: u32 = 16;
pub const AT_SYMLINK_NOFOLLOW: u32 = 32;
pub const AT_SYMLINK_FOLLOW: u32 = 64;
pub const AT_REMOVEDIR: u32 = 128;
pub const AT_REALDEV: u32 = 512;
pub const AT_FDONLY: u32 = 1024;
pub const AT_SYMLINK_NOFOLLOW_ANY: u32 = 2048;
pub const O_DP_GETRAWENCRYPTED: u32 = 1;
pub const O_DP_GETRAWUNENCRYPTED: u32 = 2;
pub const O_DP_AUTHENTICATE: u32 = 4;
pub const AUTH_OPEN_NOAUTHFD: i32 = -1;
pub const FAPPEND: u32 = 8;
pub const FASYNC: u32 = 64;
pub const FFSYNC: u32 = 128;
pub const FFDSYNC: u32 = 4194304;
pub const FNONBLOCK: u32 = 4;
pub const FNDELAY: u32 = 4;
pub const O_NDELAY: u32 = 4;
pub const CPF_OVERWRITE: u32 = 1;
pub const CPF_IGNORE_MODE: u32 = 2;
pub const CPF_MASK: u32 = 3;
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_GETOWN: u32 = 5;
pub const F_SETOWN: u32 = 6;
pub const F_GETLK: u32 = 7;
pub const F_SETLK: u32 = 8;
pub const F_SETLKW: u32 = 9;
pub const F_SETLKWTIMEOUT: u32 = 10;
pub const F_FLUSH_DATA: u32 = 40;
pub const F_CHKCLEAN: u32 = 41;
pub const F_PREALLOCATE: u32 = 42;
pub const F_SETSIZE: u32 = 43;
pub const F_RDADVISE: u32 = 44;
pub const F_RDAHEAD: u32 = 45;
pub const F_NOCACHE: u32 = 48;
pub const F_LOG2PHYS: u32 = 49;
pub const F_GETPATH: u32 = 50;
pub const F_FULLFSYNC: u32 = 51;
pub const F_PATHPKG_CHECK: u32 = 52;
pub const F_FREEZE_FS: u32 = 53;
pub const F_THAW_FS: u32 = 54;
pub const F_GLOBAL_NOCACHE: u32 = 55;
pub const F_ADDSIGS: u32 = 59;
pub const F_ADDFILESIGS: u32 = 61;
pub const F_NODIRECT: u32 = 62;
pub const F_GETPROTECTIONCLASS: u32 = 63;
pub const F_SETPROTECTIONCLASS: u32 = 64;
pub const F_LOG2PHYS_EXT: u32 = 65;
pub const F_GETLKPID: u32 = 66;
pub const F_SETBACKINGSTORE: u32 = 70;
pub const F_GETPATH_MTMINFO: u32 = 71;
pub const F_GETCODEDIR: u32 = 72;
pub const F_SETNOSIGPIPE: u32 = 73;
pub const F_GETNOSIGPIPE: u32 = 74;
pub const F_TRANSCODEKEY: u32 = 75;
pub const F_SINGLE_WRITER: u32 = 76;
pub const F_GETPROTECTIONLEVEL: u32 = 77;
pub const F_FINDSIGS: u32 = 78;
pub const F_ADDFILESIGS_FOR_DYLD_SIM: u32 = 83;
pub const F_BARRIERFSYNC: u32 = 85;
pub const F_ADDFILESIGS_RETURN: u32 = 97;
pub const F_CHECK_LV: u32 = 98;
pub const F_PUNCHHOLE: u32 = 99;
pub const F_TRIM_ACTIVE_FILE: u32 = 100;
pub const F_SPECULATIVE_READ: u32 = 101;
pub const F_GETPATH_NOFIRMLINK: u32 = 102;
pub const F_ADDFILESIGS_INFO: u32 = 103;
pub const F_ADDFILESUPPL: u32 = 104;
pub const F_GETSIGSINFO: u32 = 105;
pub const F_SETLEASE: u32 = 106;
pub const F_GETLEASE: u32 = 107;
pub const F_TRANSFEREXTENTS: u32 = 110;
pub const FCNTL_FS_SPECIFIC_BASE: u32 = 65536;
pub const F_DUPFD_CLOEXEC: u32 = 67;
pub const FD_CLOEXEC: u32 = 1;
pub const F_RDLCK: u32 = 1;
pub const F_UNLCK: u32 = 2;
pub const F_WRLCK: u32 = 3;
pub const SEEK_HOLE: u32 = 3;
pub const SEEK_DATA: u32 = 4;
pub const S_IFMT: u32 = 61440;
pub const S_IFIFO: u32 = 4096;
pub const S_IFCHR: u32 = 8192;
pub const S_IFDIR: u32 = 16384;
pub const S_IFBLK: u32 = 24576;
pub const S_IFREG: u32 = 32768;
pub const S_IFLNK: u32 = 40960;
pub const S_IFSOCK: u32 = 49152;
pub const S_IFWHT: u32 = 57344;
pub const S_IRWXU: u32 = 448;
pub const S_IRUSR: u32 = 256;
pub const S_IWUSR: u32 = 128;
pub const S_IXUSR: u32 = 64;
pub const S_IRWXG: u32 = 56;
pub const S_IRGRP: u32 = 32;
pub const S_IWGRP: u32 = 16;
pub const S_IXGRP: u32 = 8;
pub const S_IRWXO: u32 = 7;
pub const S_IROTH: u32 = 4;
pub const S_IWOTH: u32 = 2;
pub const S_IXOTH: u32 = 1;
pub const S_ISUID: u32 = 2048;
pub const S_ISGID: u32 = 1024;
pub const S_ISVTX: u32 = 512;
pub const S_ISTXT: u32 = 512;
pub const S_IREAD: u32 = 256;
pub const S_IWRITE: u32 = 128;
pub const S_IEXEC: u32 = 64;
pub const F_ALLOCATECONTIG: u32 = 2;
pub const F_ALLOCATEALL: u32 = 4;
pub const F_ALLOCATEPERSIST: u32 = 8;
pub const F_PEOFPOSMODE: u32 = 3;
pub const F_VOLPOSMODE: u32 = 4;
pub const USER_FSIGNATURES_CDHASH_LEN: u32 = 20;
pub const GETSIGSINFO_PLATFORM_BINARY: u32 = 1;
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 O_POPUP: u32 = 2147483648;
pub const O_ALERT: u32 = 536870912;
pub const InvalidXLogRecPtr: u32 = 0;
pub const PG_O_DIRECT: u32 = 0;
pub const OPEN_SYNC_FLAG: u32 = 128;
pub const OPEN_DATASYNC_FLAG: u32 = 4194304;
pub const FirstGenbkiObjectId: u32 = 10000;
pub const FirstBootstrapObjectId: u32 = 12000;
pub const FirstNormalObjectId: u32 = 16384;
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 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 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_UTC: u32 = 1;
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 RTMaxStrategyNumber: u32 = 28;
pub const INNER_VAR: u32 = 65000;
pub const OUTER_VAR: u32 = 65001;
pub const INDEX_VAR: u32 = 65002;
pub const PRS2_OLD_VARNO: u32 = 1;
pub const PRS2_NEW_VARNO: u32 = 2;
pub const HASH_PARTITION: u32 = 1;
pub const HASH_SEGMENT: u32 = 2;
pub const HASH_DIRSIZE: u32 = 4;
pub const HASH_FFACTOR: u32 = 8;
pub const HASH_ELEM: 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 __DARWIN_MAXNAMLEN: u32 = 255;
pub const __DARWIN_MAXPATHLEN: u32 = 1024;
pub const MAXNAMLEN: u32 = 255;
pub const DT_UNKNOWN: u32 = 0;
pub const DT_FIFO: u32 = 1;
pub const DT_CHR: u32 = 2;
pub const DT_DIR: u32 = 4;
pub const DT_BLK: u32 = 6;
pub const DT_REG: u32 = 8;
pub const DT_LNK: u32 = 10;
pub const DT_SOCK: u32 = 12;
pub const DT_WHT: u32 = 14;
pub const DIRBLKSIZ: u32 = 1024;
pub const DTF_HIDEW: u32 = 1;
pub const DTF_NODUP: u32 = 2;
pub const DTF_REWIND: u32 = 4;
pub const __DTF_READALL: u32 = 8;
pub const __DTF_SKIPREAD: u32 = 16;
pub const __DTF_ATEND: u32 = 32;
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 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 DSM_HANDLE_INVALID: u32 = 0;
pub const DEFAULT_SPINS_PER_DELAY: u32 = 100;
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 __DARWIN_CLK_TCK: u32 = 100;
pub const CHAR_BIT: u32 = 8;
pub const MB_LEN_MAX: u32 = 6;
pub const CLK_TCK: u32 = 100;
pub const SCHAR_MAX: u32 = 127;
pub const SCHAR_MIN: i32 = -128;
pub const UCHAR_MAX: u32 = 255;
pub const CHAR_MAX: u32 = 127;
pub const CHAR_MIN: i32 = -128;
pub const USHRT_MAX: u32 = 65535;
pub const SHRT_MAX: u32 = 32767;
pub const SHRT_MIN: i32 = -32768;
pub const UINT_MAX: u32 = 4294967295;
pub const INT_MAX: u32 = 2147483647;
pub const INT_MIN: i32 = -2147483648;
pub const ULONG_MAX: i32 = -1;
pub const LONG_MAX: u64 = 9223372036854775807;
pub const LONG_MIN: i64 = -9223372036854775808;
pub const ULLONG_MAX: i32 = -1;
pub const LLONG_MAX: u64 = 9223372036854775807;
pub const LLONG_MIN: i64 = -9223372036854775808;
pub const LONG_BIT: u32 = 64;
pub const SSIZE_MAX: u64 = 9223372036854775807;
pub const WORD_BIT: u32 = 32;
pub const SIZE_T_MAX: i32 = -1;
pub const UQUAD_MAX: i32 = -1;
pub const QUAD_MAX: u64 = 9223372036854775807;
pub const QUAD_MIN: i64 = -9223372036854775808;
pub const ARG_MAX: u32 = 1048576;
pub const CHILD_MAX: u32 = 266;
pub const GID_MAX: u32 = 2147483647;
pub const LINK_MAX: u32 = 32767;
pub const MAX_CANON: u32 = 1024;
pub const MAX_INPUT: u32 = 1024;
pub const NAME_MAX: u32 = 255;
pub const NGROUPS_MAX: u32 = 16;
pub const UID_MAX: u32 = 2147483647;
pub const OPEN_MAX: u32 = 10240;
pub const PATH_MAX: u32 = 1024;
pub const PIPE_BUF: u32 = 512;
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 CHARCLASS_NAME_MAX: u32 = 14;
pub const COLL_WEIGHTS_MAX: u32 = 2;
pub const EQUIV_CLASS_MAX: u32 = 2;
pub const EXPR_NEST_MAX: u32 = 32;
pub const LINE_MAX: u32 = 2048;
pub const RE_DUP_MAX: u32 = 255;
pub const NZERO: u32 = 20;
pub const _POSIX_ARG_MAX: u32 = 4096;
pub const _POSIX_CHILD_MAX: u32 = 25;
pub const _POSIX_LINK_MAX: u32 = 8;
pub const _POSIX_MAX_CANON: u32 = 255;
pub const _POSIX_MAX_INPUT: u32 = 255;
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_SSIZE_MAX: u32 = 32767;
pub const _POSIX_STREAM_MAX: u32 = 8;
pub const _POSIX_TZNAME_MAX: u32 = 6;
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_EQUIV_CLASS_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 _POSIX_AIO_LISTIO_MAX: u32 = 2;
pub const _POSIX_AIO_MAX: u32 = 1;
pub const _POSIX_DELAYTIMER_MAX: u32 = 32;
pub const _POSIX_MQ_OPEN_MAX: u32 = 8;
pub const _POSIX_MQ_PRIO_MAX: u32 = 32;
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_TIMER_MAX: u32 = 32;
pub const _POSIX_CLOCKRES_MIN: u32 = 20000000;
pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
pub const _POSIX_THREAD_KEYS_MAX: u32 = 128;
pub const _POSIX_THREAD_THREADS_MAX: u32 = 64;
pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
pub const PTHREAD_KEYS_MAX: u32 = 512;
pub const PTHREAD_STACK_MIN: u32 = 16384;
pub const _POSIX_HOST_NAME_MAX: u32 = 255;
pub const _POSIX_LOGIN_NAME_MAX: u32 = 9;
pub const _POSIX_SS_REPL_MAX: u32 = 4;
pub const _POSIX_SYMLINK_MAX: u32 = 255;
pub const _POSIX_SYMLOOP_MAX: u32 = 8;
pub const _POSIX_TRACE_EVENT_NAME_MAX: u32 = 30;
pub const _POSIX_TRACE_NAME_MAX: u32 = 8;
pub const _POSIX_TRACE_SYS_MAX: u32 = 8;
pub const _POSIX_TRACE_USER_EVENT_MAX: u32 = 32;
pub const _POSIX_TTY_NAME_MAX: u32 = 9;
pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14;
pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2;
pub const _POSIX_RE_DUP_MAX: u32 = 255;
pub const OFF_MIN: i64 = -9223372036854775808;
pub const OFF_MAX: u64 = 9223372036854775807;
pub const PASS_MAX: u32 = 128;
pub const NL_ARGMAX: u32 = 9;
pub const NL_LANGMAX: u32 = 14;
pub const NL_MSGMAX: u32 = 32767;
pub const NL_NMAX: u32 = 1;
pub const NL_SETMAX: u32 = 255;
pub const NL_TEXTMAX: u32 = 2048;
pub const _XOPEN_IOV_MAX: u32 = 16;
pub const IOV_MAX: u32 = 1024;
pub const _XOPEN_NAME_MAX: u32 = 255;
pub const _XOPEN_PATH_MAX: u32 = 1024;
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 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_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 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 = 34;
pub const COMPLETION_TAG_BUFSIZE: u32 = 64;
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 N_ACL_RIGHTS: u32 = 12;
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 PARTITION_STRATEGY_HASH: u8 = 104u8;
pub const PARTITION_STRATEGY_LIST: u8 = 108u8;
pub const PARTITION_STRATEGY_RANGE: u8 = 114u8;
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_HOLD: u32 = 16;
pub const CURSOR_OPT_FAST_PLAN: u32 = 32;
pub const CURSOR_OPT_GENERIC_PLAN: u32 = 64;
pub const CURSOR_OPT_CUSTOM_PLAN: u32 = 128;
pub const CURSOR_OPT_PARALLEL_OK: u32 = 256;
pub const FETCH_ALL: u64 = 9223372036854775807;
pub const REINDEXOPT_VERBOSE: u32 = 1;
pub const REINDEXOPT_REPORT_PROGRESS: u32 = 2;
pub const MaxAllocHugeSize: u32 = 0;
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_REWIND: u32 = 2;
pub const EXEC_FLAG_BACKWARD: u32 = 4;
pub const EXEC_FLAG_MARK: u32 = 8;
pub const EXEC_FLAG_SKIP_TRIGGERS: u32 = 16;
pub const EXEC_FLAG_WITH_NO_DATA: u32 = 32;
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 SECURITY_LOCAL_USERID_CHANGE: u32 = 1;
pub const SECURITY_RESTRICTED_OPERATION: u32 = 2;
pub const SECURITY_NOFORCE_RLS: u32 = 4;
pub const SOL_LOCAL: u32 = 0;
pub const LOCAL_PEERCRED: u32 = 1;
pub const LOCAL_PEERPID: u32 = 2;
pub const LOCAL_PEEREPID: u32 = 3;
pub const LOCAL_PEERUUID: u32 = 4;
pub const LOCAL_PEEREUUID: u32 = 5;
pub const LOCAL_PEERTOKEN: u32 = 6;
pub const SM_DATABASE: u32 = 64;
pub const SM_USER: u32 = 32;
pub const SM_DATABASE_USER: u32 = 97;
pub const SM_OPTIONS: u32 = 64;
pub const SM_UNUSED: u32 = 64;
pub const SM_TTY: u32 = 64;
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_SCM_CREDS: u32 = 6;
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 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 CATALOG_VERSION_NO: u32 = 201909212;
pub const OIDCHARS: u32 = 10;
pub const FORKNAMECHARS: u32 = 4;
pub const InvalidBackendId: i32 = -1;
pub const XLR_INFO_MASK: u32 = 15;
pub const XLR_RMGR_INFO_MASK: u32 = 240;
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_IS_COMPRESSED: u32 = 2;
pub const BKPIMAGE_APPLY: u32 = 4;
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 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_MASK: u32 = 6;
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 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 SHMEM_INDEX_KEYSIZE: u32 = 48;
pub const SHMEM_INDEX_SIZE: u32 = 64;
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 PGPROC_MAX_CACHED_SUBXIDS: u32 = 64;
pub const PROC_IS_AUTOVACUUM: u32 = 1;
pub const PROC_IN_VACUUM: u32 = 2;
pub const PROC_IN_ANALYZE: u32 = 4;
pub const PROC_VACUUM_FOR_WRAPAROUND: u32 = 8;
pub const PROC_IN_LOGICAL_DECODING: u32 = 16;
pub const PROC_RESERVED: u32 = 32;
pub const PROC_VACUUM_STATE_MASK: u32 = 14;
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 = 4;
pub const PGSTAT_STAT_PERMANENT_DIRECTORY: &[u8; 8usize] = b"pg_stat\0";
pub const PGSTAT_STAT_PERMANENT_FILENAME: &[u8; 20usize] = b"pg_stat/global.stat\0";
pub const PGSTAT_STAT_PERMANENT_TMPFILE: &[u8; 19usize] = b"pg_stat/global.tmp\0";
pub const PG_STAT_TMP_DIR: &[u8; 12usize] = b"pg_stat_tmp\0";
pub const PGSTAT_MAX_MSG_SIZE: u32 = 1000;
pub const PGSTAT_FILE_FORMAT_ID: u32 = 27638941;
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_NUM_PROGRESS_PARAM: u32 = 20;
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 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 GINNProcs: u32 = 6;
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 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 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 FALLBACK_PROMOTE_SIGNAL_FILE: &[u8; 17usize] = b"fallback_promote\0";
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 GISTNProcs: u32 = 9;
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 EOH_HEADER_MAGIC: i32 = -1;
pub const EA_MAGIC: u32 = 689375833;
pub const MAX_KILOBYTES: u32 = 2147483647;
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_ALL: u32 = 8;
pub const GUC_REPORT: u32 = 16;
pub const GUC_NOT_IN_SAMPLE: u32 = 32;
pub const GUC_DISALLOW_IN_FILE: u32 = 64;
pub const GUC_CUSTOM_PLACEHOLDER: u32 = 128;
pub const GUC_SUPERUSER_ONLY: u32 = 256;
pub const GUC_IS_NAME: u32 = 512;
pub const GUC_NOT_WHILE_SEC_REST: u32 = 1024;
pub const GUC_DISALLOW_IN_AUTO_FILE: u32 = 2048;
pub const GUC_UNIT_KB: u32 = 4096;
pub const GUC_UNIT_BLOCKS: u32 = 8192;
pub const GUC_UNIT_XBLOCKS: u32 = 12288;
pub const GUC_UNIT_MB: u32 = 16384;
pub const GUC_UNIT_BYTE: u32 = 32768;
pub const GUC_UNIT_MEMORY: u32 = 61440;
pub const GUC_UNIT_MS: u32 = 65536;
pub const GUC_UNIT_S: u32 = 131072;
pub const GUC_UNIT_MIN: u32 = 196608;
pub const GUC_UNIT_TIME: u32 = 983040;
pub const GUC_EXPLAIN: u32 = 1048576;
pub const GUC_UNIT: u32 = 1044480;
pub const RelationRelationId: Oid = Oid(1259);
pub const RelationRelation_Rowtype_Id: u32 = 83;
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 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_indisprimary: u32 = 6;
pub const Anum_pg_index_indisexclusion: u32 = 7;
pub const Anum_pg_index_indimmediate: u32 = 8;
pub const Anum_pg_index_indisclustered: u32 = 9;
pub const Anum_pg_index_indisvalid: u32 = 10;
pub const Anum_pg_index_indcheckxmin: u32 = 11;
pub const Anum_pg_index_indisready: u32 = 12;
pub const Anum_pg_index_indislive: u32 = 13;
pub const Anum_pg_index_indisreplident: u32 = 14;
pub const Anum_pg_index_indkey: u32 = 15;
pub const Anum_pg_index_indcollation: u32 = 16;
pub const Anum_pg_index_indclass: u32 = 17;
pub const Anum_pg_index_indoption: u32 = 18;
pub const Anum_pg_index_indexprs: u32 = 19;
pub const Anum_pg_index_indpred: u32 = 20;
pub const Natts_pg_index: u32 = 20;
pub const INDOPTION_DESC: u32 = 1;
pub const INDOPTION_NULLS_FIRST: u32 = 2;
pub const PublicationRelationId: Oid = Oid(6104);
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 Natts_pg_publication: u32 = 8;
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_ALL_RIGHTS_STR: &[u8; 13usize] = b"arwdDxtXUCTc\0";
pub const ACL_ALL_RIGHTS_COLUMN: u32 = 39;
pub const ACL_ALL_RIGHTS_RELATION: u32 = 127;
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_SCHEMA: u32 = 768;
pub const ACL_ALL_RIGHTS_TABLESPACE: u32 = 512;
pub const ACL_ALL_RIGHTS_TYPE: u32 = 256;
pub const HEAP_MIN_FILLFACTOR: u32 = 10;
pub const HEAP_DEFAULT_FILLFACTOR: u32 = 100;
pub const DEFAULT_TABLE_ACCESS_METHOD: &[u8; 5usize] = b"heap\0";
pub const TABLE_INSERT_SKIP_WAL: u32 = 1;
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 HEAP_INSERT_SKIP_WAL: u32 = 1;
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 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 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 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 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 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_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_RELFILENODES: 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_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 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 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 AggregateFnoidIndexId: u32 = 2650;
pub const AmNameIndexId: u32 = 2651;
pub const AmOidIndexId: u32 = 2652;
pub const AccessMethodStrategyIndexId: u32 = 2653;
pub const AccessMethodOperatorIndexId: u32 = 2654;
pub const AccessMethodOperatorOidIndexId: u32 = 2756;
pub const AccessMethodProcedureIndexId: u32 = 2655;
pub const AccessMethodProcedureOidIndexId: u32 = 2757;
pub const AttrDefaultIndexId: u32 = 2656;
pub const AttrDefaultOidIndexId: u32 = 2657;
pub const AttributeRelidNameIndexId: u32 = 2658;
pub const AttributeRelidNumIndexId: u32 = 2659;
pub const AuthIdRolnameIndexId: u32 = 2676;
pub const AuthIdOidIndexId: u32 = 2677;
pub const AuthMemRoleMemIndexId: u32 = 2694;
pub const AuthMemMemRoleIndexId: u32 = 2695;
pub const CastOidIndexId: u32 = 2660;
pub const CastSourceTargetIndexId: u32 = 2661;
pub const ClassOidIndexId: u32 = 2662;
pub const ClassNameNspIndexId: u32 = 2663;
pub const ClassTblspcRelfilenodeIndexId: u32 = 3455;
pub const CollationNameEncNspIndexId: u32 = 3164;
pub const CollationOidIndexId: u32 = 3085;
pub const ConstraintNameNspIndexId: u32 = 2664;
pub const ConstraintRelidTypidNameIndexId: u32 = 2665;
pub const ConstraintTypidIndexId: u32 = 2666;
pub const ConstraintOidIndexId: u32 = 2667;
pub const ConstraintParentIndexId: u32 = 2579;
pub const ConversionDefaultIndexId: u32 = 2668;
pub const ConversionNameNspIndexId: u32 = 2669;
pub const ConversionOidIndexId: u32 = 2670;
pub const DatabaseNameIndexId: u32 = 2671;
pub const DatabaseOidIndexId: u32 = 2672;
pub const DependDependerIndexId: u32 = 2673;
pub const DependReferenceIndexId: u32 = 2674;
pub const DescriptionObjIndexId: u32 = 2675;
pub const SharedDescriptionObjIndexId: u32 = 2397;
pub const EnumOidIndexId: u32 = 3502;
pub const EnumTypIdLabelIndexId: u32 = 3503;
pub const EnumTypIdSortOrderIndexId: u32 = 3534;
pub const IndexIndrelidIndexId: u32 = 2678;
pub const IndexRelidIndexId: u32 = 2679;
pub const InheritsRelidSeqnoIndexId: u32 = 2680;
pub const InheritsParentIndexId: u32 = 2187;
pub const InitPrivsObjIndexId: u32 = 3395;
pub const LanguageNameIndexId: u32 = 2681;
pub const LanguageOidIndexId: u32 = 2682;
pub const LargeObjectLOidPNIndexId: u32 = 2683;
pub const LargeObjectMetadataOidIndexId: u32 = 2996;
pub const NamespaceNameIndexId: u32 = 2684;
pub const NamespaceOidIndexId: u32 = 2685;
pub const OpclassAmNameNspIndexId: u32 = 2686;
pub const OpclassOidIndexId: u32 = 2687;
pub const OperatorOidIndexId: u32 = 2688;
pub const OperatorNameNspIndexId: u32 = 2689;
pub const OpfamilyAmNameNspIndexId: u32 = 2754;
pub const OpfamilyOidIndexId: u32 = 2755;
pub const PLTemplateNameIndexId: u32 = 1137;
pub const ProcedureOidIndexId: u32 = 2690;
pub const ProcedureNameArgsNspIndexId: u32 = 2691;
pub const RewriteOidIndexId: u32 = 2692;
pub const RewriteRelRulenameIndexId: u32 = 2693;
pub const SequenceRelidIndexId: u32 = 5002;
pub const SharedDependDependerIndexId: u32 = 1232;
pub const SharedDependReferenceIndexId: u32 = 1233;
pub const StatisticRelidAttnumInhIndexId: u32 = 2696;
pub const StatisticExtOidIndexId: u32 = 3380;
pub const StatisticExtNameIndexId: u32 = 3997;
pub const StatisticExtRelidIndexId: u32 = 3379;
pub const StatisticExtDataStxoidIndexId: u32 = 3433;
pub const TablespaceOidIndexId: u32 = 2697;
pub const TablespaceNameIndexId: u32 = 2698;
pub const TransformOidIndexId: u32 = 3574;
pub const TransformTypeLangIndexId: u32 = 3575;
pub const TriggerConstraintIndexId: u32 = 2699;
pub const TriggerRelidNameIndexId: u32 = 2701;
pub const TriggerOidIndexId: u32 = 2702;
pub const EventTriggerNameIndexId: u32 = 3467;
pub const EventTriggerOidIndexId: u32 = 3468;
pub const TSConfigNameNspIndexId: u32 = 3608;
pub const TSConfigOidIndexId: u32 = 3712;
pub const TSConfigMapIndexId: u32 = 3609;
pub const TSDictionaryNameNspIndexId: u32 = 3604;
pub const TSDictionaryOidIndexId: u32 = 3605;
pub const TSParserNameNspIndexId: u32 = 3606;
pub const TSParserOidIndexId: u32 = 3607;
pub const TSTemplateNameNspIndexId: u32 = 3766;
pub const TSTemplateOidIndexId: u32 = 3767;
pub const TypeOidIndexId: u32 = 2703;
pub const TypeNameNspIndexId: u32 = 2704;
pub const ForeignDataWrapperOidIndexId: u32 = 112;
pub const ForeignDataWrapperNameIndexId: u32 = 548;
pub const ForeignServerOidIndexId: u32 = 113;
pub const ForeignServerNameIndexId: u32 = 549;
pub const UserMappingOidIndexId: u32 = 174;
pub const UserMappingUserServerIndexId: u32 = 175;
pub const ForeignTableRelidIndexId: u32 = 3119;
pub const DefaultAclRoleNspObjIndexId: u32 = 827;
pub const DefaultAclOidIndexId: u32 = 828;
pub const DbRoleSettingDatidRolidIndexId: u32 = 2965;
pub const SecLabelObjectIndexId: u32 = 3597;
pub const SharedSecLabelObjectIndexId: u32 = 3593;
pub const ExtensionOidIndexId: u32 = 3080;
pub const ExtensionNameIndexId: u32 = 3081;
pub const RangeTypidIndexId: u32 = 3542;
pub const PolicyOidIndexId: u32 = 3257;
pub const PolicyPolrelidPolnameIndexId: u32 = 3258;
pub const ReplicationOriginIdentIndex: u32 = 6001;
pub const ReplicationOriginNameIndex: u32 = 6002;
pub const PartitionedRelidIndexId: u32 = 3351;
pub const PublicationObjectIndexId: u32 = 6110;
pub const PublicationNameIndexId: u32 = 6111;
pub const PublicationRelObjectIndexId: u32 = 6112;
pub const PublicationRelPrrelidPrpubidIndexId: u32 = 6113;
pub const SubscriptionObjectIndexId: u32 = 6114;
pub const SubscriptionNameIndexId: u32 = 6115;
pub const SubscriptionRelSrrelidSrsubidIndexId: u32 = 6117;
pub const AuthIdRelationId: Oid = Oid(1260);
pub const AuthIdRelation_Rowtype_Id: u32 = 2842;
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 DEFAULT_ROLE_MONITOR: u32 = 3373;
pub const DEFAULT_ROLE_READ_ALL_SETTINGS: u32 = 3374;
pub const DEFAULT_ROLE_READ_ALL_STATS: u32 = 3375;
pub const DEFAULT_ROLE_STAT_SCAN_TABLES: u32 = 3377;
pub const DEFAULT_ROLE_READ_SERVER_FILES: u32 = 4569;
pub const DEFAULT_ROLE_WRITE_SERVER_FILES: u32 = 4570;
pub const DEFAULT_ROLE_EXECUTE_SERVER_PROGRAM: u32 = 4571;
pub const DEFAULT_ROLE_SIGNAL_BACKENDID: u32 = 4200;
pub const DatabaseRelationId: Oid = Oid(1262);
pub const DatabaseRelation_Rowtype_Id: u32 = 1248;
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_datcollate: u32 = 5;
pub const Anum_pg_database_datctype: u32 = 6;
pub const Anum_pg_database_datistemplate: u32 = 7;
pub const Anum_pg_database_datallowconn: u32 = 8;
pub const Anum_pg_database_datconnlimit: u32 = 9;
pub const Anum_pg_database_datlastsysoid: u32 = 10;
pub const Anum_pg_database_datfrozenxid: u32 = 11;
pub const Anum_pg_database_datminmxid: u32 = 12;
pub const Anum_pg_database_dattablespace: u32 = 13;
pub const Anum_pg_database_datacl: u32 = 14;
pub const Natts_pg_database: u32 = 14;
pub const TemplateDbOid: Oid = Oid(1);
pub const EnumRelationId: Oid = Oid(3501);
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 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 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 TIDEqualOperator: u32 = 387;
pub const TIDLessOperator: u32 = 2799;
pub const Int8LessOperator: u32 = 412;
pub const OID_NAME_REGEXEQ_OP: u32 = 639;
pub const OID_TEXT_REGEXEQ_OP: u32 = 641;
pub const Float8LessOperator: u32 = 672;
pub const OID_BPCHAR_REGEXEQ_OP: u32 = 1055;
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 OID_BYTEA_LIKE_OP: u32 = 2016;
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 ProcedureRelationId: Oid = Oid(1255);
pub const ProcedureRelation_Rowtype_Id: u32 = 81;
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_proconfig: u32 = 28;
pub const Anum_pg_proc_proacl: u32 = 29;
pub const Natts_pg_proc: u32 = 29;
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 HEAP_TABLE_AM_HANDLER_OID: Oid = Oid(3);
pub const NamespaceRelationId: Oid = Oid(2615);
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 TableSpaceRelationId: Oid = Oid(1213);
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 Anum_pg_trigger_oid: u32 = 1;
pub const Anum_pg_trigger_tgrelid: u32 = 2;
pub const Anum_pg_trigger_tgname: u32 = 3;
pub const Anum_pg_trigger_tgfoid: u32 = 4;
pub const Anum_pg_trigger_tgtype: u32 = 5;
pub const Anum_pg_trigger_tgenabled: u32 = 6;
pub const Anum_pg_trigger_tgisinternal: u32 = 7;
pub const Anum_pg_trigger_tgconstrrelid: u32 = 8;
pub const Anum_pg_trigger_tgconstrindid: u32 = 9;
pub const Anum_pg_trigger_tgconstraint: u32 = 10;
pub const Anum_pg_trigger_tgdeferrable: u32 = 11;
pub const Anum_pg_trigger_tginitdeferred: u32 = 12;
pub const Anum_pg_trigger_tgnargs: u32 = 13;
pub const Anum_pg_trigger_tgattr: u32 = 14;
pub const Anum_pg_trigger_tgargs: u32 = 15;
pub const Anum_pg_trigger_tgqual: u32 = 16;
pub const Anum_pg_trigger_tgoldtable: u32 = 17;
pub const Anum_pg_trigger_tgnewtable: u32 = 18;
pub const Natts_pg_trigger: u32 = 18;
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 TypeRelationId: Oid = Oid(1247);
pub const TypeRelation_Rowtype_Id: u32 = 71;
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_typelem: u32 = 13;
pub const Anum_pg_type_typarray: u32 = 14;
pub const Anum_pg_type_typinput: u32 = 15;
pub const Anum_pg_type_typoutput: u32 = 16;
pub const Anum_pg_type_typreceive: u32 = 17;
pub const Anum_pg_type_typsend: u32 = 18;
pub const Anum_pg_type_typmodin: u32 = 19;
pub const Anum_pg_type_typmodout: u32 = 20;
pub const Anum_pg_type_typanalyze: u32 = 21;
pub const Anum_pg_type_typalign: u32 = 22;
pub const Anum_pg_type_typstorage: u32 = 23;
pub const Anum_pg_type_typnotnull: u32 = 24;
pub const Anum_pg_type_typbasetype: u32 = 25;
pub const Anum_pg_type_typtypmod: u32 = 26;
pub const Anum_pg_type_typndims: u32 = 27;
pub const Anum_pg_type_typcollation: u32 = 28;
pub const Anum_pg_type_typdefaultbin: u32 = 29;
pub const Anum_pg_type_typdefault: u32 = 30;
pub const Anum_pg_type_typacl: u32 = 31;
pub const Natts_pg_type: u32 = 31;
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_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 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 PGNODETREEOID: Oid = Oid(194);
pub const PGNDISTINCTOID: Oid = Oid(3361);
pub const PGDEPENDENCIESOID: Oid = Oid(3402);
pub const PGMCVLISTOID: Oid = Oid(5017);
pub const PGDDLCOMMANDOID: Oid = Oid(32);
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 CASHOID: 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 REGTYPEOID: Oid = Oid(2206);
pub const REGROLEOID: Oid = Oid(4096);
pub const REGNAMESPACEOID: Oid = Oid(4089);
pub const UUIDOID: Oid = Oid(2950);
pub const 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 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 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 EVTTRIGGEROID: Oid = Oid(3838);
pub const LANGUAGE_HANDLEROID: Oid = Oid(2280);
pub const INTERNALOID: Oid = Oid(2281);
pub const OPAQUEOID: Oid = Oid(2282);
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 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 JSONARRAYOID: Oid = Oid(199);
pub const XMLARRAYOID: Oid = Oid(143);
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 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 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 CSTRINGARRAYOID: Oid = Oid(1263);
pub const EventTriggerRelationId: Oid = Oid(3466);
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 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 StatisticRelationId: Oid = Oid(2619);
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 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_OPT_NONATOMIC: u32 = 1;
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 HAVE_PLANNERINFO_TYPEDEF: 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 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 EXTNODENAME_MAX_LEN: u32 = 64;
pub const CUSTOMPATH_SUPPORT_BACKWARD_SCAN: u32 = 1;
pub const CUSTOMPATH_SUPPORT_MARK_RESTORE: u32 = 2;
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_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 OLD_SNAPSHOT_PADDING_ENTRIES: 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 PROCARRAY_VACUUM_FLAG: u32 = 2;
pub const PROCARRAY_ANALYZE_FLAG: u32 = 4;
pub const PROCARRAY_LOGICAL_DECODING_FLAG: u32 = 16;
pub const PROCARRAY_SLOTS_XMIN: u32 = 32;
pub const PROCARRAY_PROC_FLAGS_MASK: u32 = 22;
pub const PROCARRAY_FLAGS_DEFAULT: u32 = 16;
pub const PROCARRAY_FLAGS_VACUUM: u32 = 18;
pub const PROCARRAY_FLAGS_ANALYZE: u32 = 20;
pub const PROCARRAY_FLAGS_VACUUM_ANALYZE: u32 = 22;
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_CALC_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 STACK_DEPTH_SLOP: u32 = 524288;
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 MAX_TIME_PRECISION: u32 = 6;
pub const RADIANS_PER_DEGREE: f64 = 0.017453292519943295;
pub const NUMERIC_MAX_PRECISION: 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_MATCH_SEL: f64 = 0.005;
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 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 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 __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_longlong;
pub type __uint64_t = ::std::os::raw::c_ulonglong;
pub type __darwin_intptr_t = ::std::os::raw::c_long;
pub type __darwin_natural_t = ::std::os::raw::c_uint;
pub type __darwin_ct_rune_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union __mbstate_t {
    pub __mbstate8: [::std::os::raw::c_char; 128usize],
    pub _mbstateL: ::std::os::raw::c_longlong,
}
impl Default for __mbstate_t {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type __darwin_mbstate_t = __mbstate_t;
pub type __darwin_ptrdiff_t = ::std::os::raw::c_long;
pub type __darwin_size_t = ::std::os::raw::c_ulong;
pub type __darwin_va_list = __builtin_va_list;
pub type __darwin_wchar_t = ::std::os::raw::c_int;
pub type __darwin_rune_t = __darwin_wchar_t;
pub type __darwin_wint_t = ::std::os::raw::c_int;
pub type __darwin_clock_t = ::std::os::raw::c_ulong;
pub type __darwin_socklen_t = __uint32_t;
pub type __darwin_ssize_t = ::std::os::raw::c_long;
pub type __darwin_time_t = ::std::os::raw::c_long;
pub type __darwin_blkcnt_t = __int64_t;
pub type __darwin_blksize_t = __int32_t;
pub type __darwin_dev_t = __int32_t;
pub type __darwin_fsblkcnt_t = ::std::os::raw::c_uint;
pub type __darwin_fsfilcnt_t = ::std::os::raw::c_uint;
pub type __darwin_gid_t = __uint32_t;
pub type __darwin_id_t = __uint32_t;
pub type __darwin_ino64_t = __uint64_t;
pub type __darwin_ino_t = __darwin_ino64_t;
pub type __darwin_mach_port_name_t = __darwin_natural_t;
pub type __darwin_mach_port_t = __darwin_mach_port_name_t;
pub type __darwin_mode_t = __uint16_t;
pub type __darwin_off_t = __int64_t;
pub type __darwin_pid_t = __int32_t;
pub type __darwin_sigset_t = __uint32_t;
pub type __darwin_suseconds_t = __int32_t;
pub type __darwin_uid_t = __uint32_t;
pub type __darwin_useconds_t = __uint32_t;
pub type __darwin_uuid_t = [::std::os::raw::c_uchar; 16usize];
pub type __darwin_uuid_string_t = [::std::os::raw::c_char; 37usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __darwin_pthread_handler_rec {
    pub __routine: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub __arg: *mut ::std::os::raw::c_void,
    pub __next: *mut __darwin_pthread_handler_rec,
}
impl Default for __darwin_pthread_handler_rec {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _opaque_pthread_attr_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 56usize],
}
impl Default for _opaque_pthread_attr_t {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _opaque_pthread_cond_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 40usize],
}
impl Default for _opaque_pthread_cond_t {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _opaque_pthread_condattr_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _opaque_pthread_mutex_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 56usize],
}
impl Default for _opaque_pthread_mutex_t {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _opaque_pthread_mutexattr_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 8usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _opaque_pthread_once_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _opaque_pthread_rwlock_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 192usize],
}
impl Default for _opaque_pthread_rwlock_t {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _opaque_pthread_rwlockattr_t {
    pub __sig: ::std::os::raw::c_long,
    pub __opaque: [::std::os::raw::c_char; 16usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _opaque_pthread_t {
    pub __sig: ::std::os::raw::c_long,
    pub __cleanup_stack: *mut __darwin_pthread_handler_rec,
    pub __opaque: [::std::os::raw::c_char; 8176usize],
}
impl Default for _opaque_pthread_t {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type __darwin_pthread_attr_t = _opaque_pthread_attr_t;
pub type __darwin_pthread_cond_t = _opaque_pthread_cond_t;
pub type __darwin_pthread_condattr_t = _opaque_pthread_condattr_t;
pub type __darwin_pthread_key_t = ::std::os::raw::c_ulong;
pub type __darwin_pthread_mutex_t = _opaque_pthread_mutex_t;
pub type __darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t;
pub type __darwin_pthread_once_t = _opaque_pthread_once_t;
pub type __darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t;
pub type __darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t;
pub type __darwin_pthread_t = *mut _opaque_pthread_t;
pub type __darwin_nl_item = ::std::os::raw::c_int;
pub type __darwin_wctrans_t = ::std::os::raw::c_int;
pub type __darwin_wctype_t = __uint32_t;
pub type u_int8_t = ::std::os::raw::c_uchar;
pub type u_int16_t = ::std::os::raw::c_ushort;
pub type u_int32_t = ::std::os::raw::c_uint;
pub type u_int64_t = ::std::os::raw::c_ulonglong;
pub type register_t = i64;
pub type user_addr_t = u_int64_t;
pub type user_size_t = u_int64_t;
pub type user_ssize_t = i64;
pub type user_long_t = i64;
pub type user_ulong_t = u_int64_t;
pub type user_time_t = i64;
pub type user_off_t = i64;
pub type syscall_arg_t = u_int64_t;
pub type va_list = __darwin_va_list;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn renamex_np(
        arg1: *const ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn renameatx_np(
        arg1: ::std::os::raw::c_int,
        arg2: *const ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
        arg4: *const ::std::os::raw::c_char,
        arg5: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
pub type fpos_t = __darwin_off_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sbuf {
    pub _base: *mut ::std::os::raw::c_uchar,
    pub _size: ::std::os::raw::c_int,
}
impl Default for __sbuf {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sFILEX {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sFILE {
    pub _p: *mut ::std::os::raw::c_uchar,
    pub _r: ::std::os::raw::c_int,
    pub _w: ::std::os::raw::c_int,
    pub _flags: ::std::os::raw::c_short,
    pub _file: ::std::os::raw::c_short,
    pub _bf: __sbuf,
    pub _lbfsize: ::std::os::raw::c_int,
    pub _cookie: *mut ::std::os::raw::c_void,
    pub _close: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
    >,
    pub _read: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut ::std::os::raw::c_void,
            arg2: *mut ::std::os::raw::c_char,
            arg3: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub _seek: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut ::std::os::raw::c_void,
            arg2: fpos_t,
            arg3: ::std::os::raw::c_int,
        ) -> fpos_t,
    >,
    pub _write: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut ::std::os::raw::c_void,
            arg2: *const ::std::os::raw::c_char,
            arg3: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub _ub: __sbuf,
    pub _extra: *mut __sFILEX,
    pub _ur: ::std::os::raw::c_int,
    pub _ubuf: [::std::os::raw::c_uchar; 3usize],
    pub _nbuf: [::std::os::raw::c_uchar; 1usize],
    pub _lb: __sbuf,
    pub _blksize: ::std::os::raw::c_int,
    pub _offset: fpos_t,
}
impl Default for __sFILE {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type FILE = __sFILE;
extern "C" {
    pub static mut __stdinp: *mut FILE;
}
extern "C" {
    pub static mut __stdoutp: *mut FILE;
}
extern "C" {
    pub static mut __stderrp: *mut FILE;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __srget(arg1: *mut FILE) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __svfscanf(
        arg1: *mut FILE,
        arg2: *const ::std::os::raw::c_char,
        arg3: va_list,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __swbuf(arg1: ::std::os::raw::c_int, arg2: *mut FILE) -> ::std::os::raw::c_int;
}
pub type off_t = __darwin_off_t;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ctermid_r(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fgetln(arg1: *mut FILE, arg2: *mut usize) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fmtcheck(
        arg1: *const ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fpurge(arg1: *mut FILE) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn funopen(
        arg1: *const ::std::os::raw::c_void,
        arg2: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *mut ::std::os::raw::c_char,
                arg3: ::std::os::raw::c_int,
            ) -> ::std::os::raw::c_int,
        >,
        arg3: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *const ::std::os::raw::c_char,
                arg3: ::std::os::raw::c_int,
            ) -> ::std::os::raw::c_int,
        >,
        arg4: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: fpos_t,
                arg3: ::std::os::raw::c_int,
            ) -> fpos_t,
        >,
        arg5: ::std::option::Option<
            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
        >,
    ) -> *mut FILE;
}
pub const idtype_t_P_ALL: idtype_t = 0;
pub const idtype_t_P_PID: idtype_t = 1;
pub const idtype_t_P_PGID: idtype_t = 2;
pub type idtype_t = ::std::os::raw::c_uint;
pub type pid_t = __darwin_pid_t;
pub type id_t = __darwin_id_t;
pub type sig_atomic_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_arm_exception_state {
    pub __exception: __uint32_t,
    pub __fsr: __uint32_t,
    pub __far: __uint32_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_arm_exception_state64 {
    pub __far: __uint64_t,
    pub __esr: __uint32_t,
    pub __exception: __uint32_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_arm_thread_state {
    pub __r: [__uint32_t; 13usize],
    pub __sp: __uint32_t,
    pub __lr: __uint32_t,
    pub __pc: __uint32_t,
    pub __cpsr: __uint32_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_arm_thread_state64 {
    pub __x: [__uint64_t; 29usize],
    pub __fp: __uint64_t,
    pub __lr: __uint64_t,
    pub __sp: __uint64_t,
    pub __pc: __uint64_t,
    pub __cpsr: __uint32_t,
    pub __pad: __uint32_t,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __darwin_arm_vfp_state {
    pub __r: [__uint32_t; 64usize],
    pub __fpscr: __uint32_t,
}
impl Default for __darwin_arm_vfp_state {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_arm_neon_state64 {
    pub __v: [__uint128_t; 32usize],
    pub __fpsr: __uint32_t,
    pub __fpcr: __uint32_t,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_arm_neon_state {
    pub __v: [__uint128_t; 16usize],
    pub __fpsr: __uint32_t,
    pub __fpcr: __uint32_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __arm_pagein_state {
    pub __pagein_error: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __arm_legacy_debug_state {
    pub __bvr: [__uint32_t; 16usize],
    pub __bcr: [__uint32_t; 16usize],
    pub __wvr: [__uint32_t; 16usize],
    pub __wcr: [__uint32_t; 16usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_arm_debug_state32 {
    pub __bvr: [__uint32_t; 16usize],
    pub __bcr: [__uint32_t; 16usize],
    pub __wvr: [__uint32_t; 16usize],
    pub __wcr: [__uint32_t; 16usize],
    pub __mdscr_el1: __uint64_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_arm_debug_state64 {
    pub __bvr: [__uint64_t; 16usize],
    pub __bcr: [__uint64_t; 16usize],
    pub __wvr: [__uint64_t; 16usize],
    pub __wcr: [__uint64_t; 16usize],
    pub __mdscr_el1: __uint64_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_arm_cpmu_state64 {
    pub __ctrs: [__uint64_t; 16usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __darwin_mcontext32 {
    pub __es: __darwin_arm_exception_state,
    pub __ss: __darwin_arm_thread_state,
    pub __fs: __darwin_arm_vfp_state,
}
impl Default for __darwin_mcontext32 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Default, Copy, Clone)]
pub struct __darwin_mcontext64 {
    pub __es: __darwin_arm_exception_state64,
    pub __ss: __darwin_arm_thread_state64,
    pub __ns: __darwin_arm_neon_state64,
}
pub type mcontext_t = *mut __darwin_mcontext64;
pub type pthread_attr_t = __darwin_pthread_attr_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __darwin_sigaltstack {
    pub ss_sp: *mut ::std::os::raw::c_void,
    pub ss_size: __darwin_size_t,
    pub ss_flags: ::std::os::raw::c_int,
}
impl Default for __darwin_sigaltstack {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type stack_t = __darwin_sigaltstack;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __darwin_ucontext {
    pub uc_onstack: ::std::os::raw::c_int,
    pub uc_sigmask: __darwin_sigset_t,
    pub uc_stack: __darwin_sigaltstack,
    pub uc_link: *mut __darwin_ucontext,
    pub uc_mcsize: __darwin_size_t,
    pub uc_mcontext: *mut __darwin_mcontext64,
}
impl Default for __darwin_ucontext {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ucontext_t = __darwin_ucontext;
pub type sigset_t = __darwin_sigset_t;
pub type uid_t = __darwin_uid_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct sigevent {
    pub sigev_notify: ::std::os::raw::c_int,
    pub sigev_signo: ::std::os::raw::c_int,
    pub sigev_value: sigval,
    pub sigev_notify_function: ::std::option::Option<unsafe extern "C" fn(arg1: sigval)>,
    pub sigev_notify_attributes: *mut pthread_attr_t,
}
impl Default for sigevent {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __siginfo {
    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 si_pid: pid_t,
    pub si_uid: uid_t,
    pub si_status: ::std::os::raw::c_int,
    pub si_addr: *mut ::std::os::raw::c_void,
    pub si_value: sigval,
    pub si_band: ::std::os::raw::c_long,
    pub __pad: [::std::os::raw::c_ulong; 7usize],
}
impl Default for __siginfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type siginfo_t = __siginfo;
#[repr(C)]
#[derive(Copy, Clone)]
pub union __sigaction_u {
    pub __sa_handler: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
    pub __sa_sigaction: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: ::std::os::raw::c_int,
            arg2: *mut __siginfo,
            arg3: *mut ::std::os::raw::c_void,
        ),
    >,
}
impl Default for __sigaction_u {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __sigaction {
    pub __sigaction_u: __sigaction_u,
    pub sa_tramp: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut ::std::os::raw::c_void,
            arg2: ::std::os::raw::c_int,
            arg3: ::std::os::raw::c_int,
            arg4: *mut siginfo_t,
            arg5: *mut ::std::os::raw::c_void,
        ),
    >,
    pub sa_mask: sigset_t,
    pub sa_flags: ::std::os::raw::c_int,
}
impl Default for __sigaction {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct sigaction {
    pub __sigaction_u: __sigaction_u,
    pub sa_mask: sigset_t,
    pub sa_flags: ::std::os::raw::c_int,
}
impl Default for sigaction {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type sig_t = ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct sigvec {
    pub sv_handler: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
    pub sv_mask: ::std::os::raw::c_int,
    pub sv_flags: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sigstack {
    pub ss_sp: *mut ::std::os::raw::c_char,
    pub ss_onstack: ::std::os::raw::c_int,
}
impl Default for sigstack {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type int_least8_t = i8;
pub type int_least16_t = i16;
pub type int_least32_t = i32;
pub type int_least64_t = i64;
pub type uint_least8_t = u8;
pub type uint_least16_t = u16;
pub type uint_least32_t = u32;
pub type uint_least64_t = u64;
pub type int_fast8_t = i8;
pub type int_fast16_t = i16;
pub type int_fast32_t = i32;
pub type int_fast64_t = i64;
pub type uint_fast8_t = u8;
pub type uint_fast16_t = u16;
pub type uint_fast32_t = u32;
pub type uint_fast64_t = u64;
pub type intmax_t = ::std::os::raw::c_long;
pub type uintmax_t = ::std::os::raw::c_ulong;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct timeval {
    pub tv_sec: __darwin_time_t,
    pub tv_usec: __darwin_suseconds_t,
}
pub type rlim_t = __uint64_t;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct rusage {
    pub ru_utime: timeval,
    pub ru_stime: timeval,
    pub ru_maxrss: ::std::os::raw::c_long,
    pub ru_ixrss: ::std::os::raw::c_long,
    pub ru_idrss: ::std::os::raw::c_long,
    pub ru_isrss: ::std::os::raw::c_long,
    pub ru_minflt: ::std::os::raw::c_long,
    pub ru_majflt: ::std::os::raw::c_long,
    pub ru_nswap: ::std::os::raw::c_long,
    pub ru_inblock: ::std::os::raw::c_long,
    pub ru_oublock: ::std::os::raw::c_long,
    pub ru_msgsnd: ::std::os::raw::c_long,
    pub ru_msgrcv: ::std::os::raw::c_long,
    pub ru_nsignals: ::std::os::raw::c_long,
    pub ru_nvcsw: ::std::os::raw::c_long,
    pub ru_nivcsw: ::std::os::raw::c_long,
}
pub type rusage_info_t = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct rusage_info_v0 {
    pub ri_uuid: [u8; 16usize],
    pub ri_user_time: u64,
    pub ri_system_time: u64,
    pub ri_pkg_idle_wkups: u64,
    pub ri_interrupt_wkups: u64,
    pub ri_pageins: u64,
    pub ri_wired_size: u64,
    pub ri_resident_size: u64,
    pub ri_phys_footprint: u64,
    pub ri_proc_start_abstime: u64,
    pub ri_proc_exit_abstime: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct rusage_info_v1 {
    pub ri_uuid: [u8; 16usize],
    pub ri_user_time: u64,
    pub ri_system_time: u64,
    pub ri_pkg_idle_wkups: u64,
    pub ri_interrupt_wkups: u64,
    pub ri_pageins: u64,
    pub ri_wired_size: u64,
    pub ri_resident_size: u64,
    pub ri_phys_footprint: u64,
    pub ri_proc_start_abstime: u64,
    pub ri_proc_exit_abstime: u64,
    pub ri_child_user_time: u64,
    pub ri_child_system_time: u64,
    pub ri_child_pkg_idle_wkups: u64,
    pub ri_child_interrupt_wkups: u64,
    pub ri_child_pageins: u64,
    pub ri_child_elapsed_abstime: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct rusage_info_v2 {
    pub ri_uuid: [u8; 16usize],
    pub ri_user_time: u64,
    pub ri_system_time: u64,
    pub ri_pkg_idle_wkups: u64,
    pub ri_interrupt_wkups: u64,
    pub ri_pageins: u64,
    pub ri_wired_size: u64,
    pub ri_resident_size: u64,
    pub ri_phys_footprint: u64,
    pub ri_proc_start_abstime: u64,
    pub ri_proc_exit_abstime: u64,
    pub ri_child_user_time: u64,
    pub ri_child_system_time: u64,
    pub ri_child_pkg_idle_wkups: u64,
    pub ri_child_interrupt_wkups: u64,
    pub ri_child_pageins: u64,
    pub ri_child_elapsed_abstime: u64,
    pub ri_diskio_bytesread: u64,
    pub ri_diskio_byteswritten: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct rusage_info_v3 {
    pub ri_uuid: [u8; 16usize],
    pub ri_user_time: u64,
    pub ri_system_time: u64,
    pub ri_pkg_idle_wkups: u64,
    pub ri_interrupt_wkups: u64,
    pub ri_pageins: u64,
    pub ri_wired_size: u64,
    pub ri_resident_size: u64,
    pub ri_phys_footprint: u64,
    pub ri_proc_start_abstime: u64,
    pub ri_proc_exit_abstime: u64,
    pub ri_child_user_time: u64,
    pub ri_child_system_time: u64,
    pub ri_child_pkg_idle_wkups: u64,
    pub ri_child_interrupt_wkups: u64,
    pub ri_child_pageins: u64,
    pub ri_child_elapsed_abstime: u64,
    pub ri_diskio_bytesread: u64,
    pub ri_diskio_byteswritten: u64,
    pub ri_cpu_time_qos_default: u64,
    pub ri_cpu_time_qos_maintenance: u64,
    pub ri_cpu_time_qos_background: u64,
    pub ri_cpu_time_qos_utility: u64,
    pub ri_cpu_time_qos_legacy: u64,
    pub ri_cpu_time_qos_user_initiated: u64,
    pub ri_cpu_time_qos_user_interactive: u64,
    pub ri_billed_system_time: u64,
    pub ri_serviced_system_time: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct rusage_info_v4 {
    pub ri_uuid: [u8; 16usize],
    pub ri_user_time: u64,
    pub ri_system_time: u64,
    pub ri_pkg_idle_wkups: u64,
    pub ri_interrupt_wkups: u64,
    pub ri_pageins: u64,
    pub ri_wired_size: u64,
    pub ri_resident_size: u64,
    pub ri_phys_footprint: u64,
    pub ri_proc_start_abstime: u64,
    pub ri_proc_exit_abstime: u64,
    pub ri_child_user_time: u64,
    pub ri_child_system_time: u64,
    pub ri_child_pkg_idle_wkups: u64,
    pub ri_child_interrupt_wkups: u64,
    pub ri_child_pageins: u64,
    pub ri_child_elapsed_abstime: u64,
    pub ri_diskio_bytesread: u64,
    pub ri_diskio_byteswritten: u64,
    pub ri_cpu_time_qos_default: u64,
    pub ri_cpu_time_qos_maintenance: u64,
    pub ri_cpu_time_qos_background: u64,
    pub ri_cpu_time_qos_utility: u64,
    pub ri_cpu_time_qos_legacy: u64,
    pub ri_cpu_time_qos_user_initiated: u64,
    pub ri_cpu_time_qos_user_interactive: u64,
    pub ri_billed_system_time: u64,
    pub ri_serviced_system_time: u64,
    pub ri_logical_writes: u64,
    pub ri_lifetime_max_phys_footprint: u64,
    pub ri_instructions: u64,
    pub ri_cycles: u64,
    pub ri_billed_energy: u64,
    pub ri_serviced_energy: u64,
    pub ri_interval_max_phys_footprint: u64,
    pub ri_runnable_time: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct rusage_info_v5 {
    pub ri_uuid: [u8; 16usize],
    pub ri_user_time: u64,
    pub ri_system_time: u64,
    pub ri_pkg_idle_wkups: u64,
    pub ri_interrupt_wkups: u64,
    pub ri_pageins: u64,
    pub ri_wired_size: u64,
    pub ri_resident_size: u64,
    pub ri_phys_footprint: u64,
    pub ri_proc_start_abstime: u64,
    pub ri_proc_exit_abstime: u64,
    pub ri_child_user_time: u64,
    pub ri_child_system_time: u64,
    pub ri_child_pkg_idle_wkups: u64,
    pub ri_child_interrupt_wkups: u64,
    pub ri_child_pageins: u64,
    pub ri_child_elapsed_abstime: u64,
    pub ri_diskio_bytesread: u64,
    pub ri_diskio_byteswritten: u64,
    pub ri_cpu_time_qos_default: u64,
    pub ri_cpu_time_qos_maintenance: u64,
    pub ri_cpu_time_qos_background: u64,
    pub ri_cpu_time_qos_utility: u64,
    pub ri_cpu_time_qos_legacy: u64,
    pub ri_cpu_time_qos_user_initiated: u64,
    pub ri_cpu_time_qos_user_interactive: u64,
    pub ri_billed_system_time: u64,
    pub ri_serviced_system_time: u64,
    pub ri_logical_writes: u64,
    pub ri_lifetime_max_phys_footprint: u64,
    pub ri_instructions: u64,
    pub ri_cycles: u64,
    pub ri_billed_energy: u64,
    pub ri_serviced_energy: u64,
    pub ri_interval_max_phys_footprint: u64,
    pub ri_runnable_time: u64,
    pub ri_flags: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct rusage_info_v6 {
    pub ri_uuid: [u8; 16usize],
    pub ri_user_time: u64,
    pub ri_system_time: u64,
    pub ri_pkg_idle_wkups: u64,
    pub ri_interrupt_wkups: u64,
    pub ri_pageins: u64,
    pub ri_wired_size: u64,
    pub ri_resident_size: u64,
    pub ri_phys_footprint: u64,
    pub ri_proc_start_abstime: u64,
    pub ri_proc_exit_abstime: u64,
    pub ri_child_user_time: u64,
    pub ri_child_system_time: u64,
    pub ri_child_pkg_idle_wkups: u64,
    pub ri_child_interrupt_wkups: u64,
    pub ri_child_pageins: u64,
    pub ri_child_elapsed_abstime: u64,
    pub ri_diskio_bytesread: u64,
    pub ri_diskio_byteswritten: u64,
    pub ri_cpu_time_qos_default: u64,
    pub ri_cpu_time_qos_maintenance: u64,
    pub ri_cpu_time_qos_background: u64,
    pub ri_cpu_time_qos_utility: u64,
    pub ri_cpu_time_qos_legacy: u64,
    pub ri_cpu_time_qos_user_initiated: u64,
    pub ri_cpu_time_qos_user_interactive: u64,
    pub ri_billed_system_time: u64,
    pub ri_serviced_system_time: u64,
    pub ri_logical_writes: u64,
    pub ri_lifetime_max_phys_footprint: u64,
    pub ri_instructions: u64,
    pub ri_cycles: u64,
    pub ri_billed_energy: u64,
    pub ri_serviced_energy: u64,
    pub ri_interval_max_phys_footprint: u64,
    pub ri_runnable_time: u64,
    pub ri_flags: u64,
    pub ri_user_ptime: u64,
    pub ri_system_ptime: u64,
    pub ri_pinstructions: u64,
    pub ri_pcycles: u64,
    pub ri_energy_nj: u64,
    pub ri_penergy_nj: u64,
    pub ri_reserved: [u64; 14usize],
}
pub type rusage_info_current = rusage_info_v6;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct rlimit {
    pub rlim_cur: rlim_t,
    pub rlim_max: rlim_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct proc_rlimit_control_wakeupmon {
    pub wm_flags: u32,
    pub wm_rate: i32,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getiopolicy_np(
        arg1: ::std::os::raw::c_int,
        arg2: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setiopolicy_np(
        arg1: ::std::os::raw::c_int,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[repr(C, packed)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _OSUnalignedU16 {
    pub __val: u16,
}
#[repr(C, packed)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _OSUnalignedU32 {
    pub __val: u32,
}
#[repr(C, packed)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _OSUnalignedU64 {
    pub __val: u64,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union wait {
    pub w_status: ::std::os::raw::c_int,
    pub w_T: wait__bindgen_ty_1,
    pub w_S: wait__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Default, Copy, Clone)]
pub struct wait__bindgen_ty_1 {
    pub _bitfield_align_1: [u16; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
}
impl wait__bindgen_ty_1 {
    #[inline]
    pub fn w_Termsig(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 7u8) as u32) }
    }
    #[inline]
    pub fn set_w_Termsig(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 7u8, val as u64)
        }
    }
    #[inline]
    pub fn w_Coredump(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_w_Coredump(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(7usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn w_Retcode(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_w_Retcode(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn w_Filler(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_w_Filler(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        w_Termsig: ::std::os::raw::c_uint,
        w_Coredump: ::std::os::raw::c_uint,
        w_Retcode: ::std::os::raw::c_uint,
        w_Filler: ::std::os::raw::c_uint,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 7u8, {
            let w_Termsig: u32 = unsafe { ::std::mem::transmute(w_Termsig) };
            w_Termsig as u64
        });
        __bindgen_bitfield_unit.set(7usize, 1u8, {
            let w_Coredump: u32 = unsafe { ::std::mem::transmute(w_Coredump) };
            w_Coredump as u64
        });
        __bindgen_bitfield_unit.set(8usize, 8u8, {
            let w_Retcode: u32 = unsafe { ::std::mem::transmute(w_Retcode) };
            w_Retcode as u64
        });
        __bindgen_bitfield_unit.set(16usize, 16u8, {
            let w_Filler: u32 = unsafe { ::std::mem::transmute(w_Filler) };
            w_Filler as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Default, Copy, Clone)]
pub struct wait__bindgen_ty_2 {
    pub _bitfield_align_1: [u16; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
}
impl wait__bindgen_ty_2 {
    #[inline]
    pub fn w_Stopval(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_w_Stopval(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn w_Stopsig(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_w_Stopsig(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn w_Filler(&self) -> ::std::os::raw::c_uint {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_w_Filler(&mut self, val: ::std::os::raw::c_uint) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        w_Stopval: ::std::os::raw::c_uint,
        w_Stopsig: ::std::os::raw::c_uint,
        w_Filler: ::std::os::raw::c_uint,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let w_Stopval: u32 = unsafe { ::std::mem::transmute(w_Stopval) };
            w_Stopval as u64
        });
        __bindgen_bitfield_unit.set(8usize, 8u8, {
            let w_Stopsig: u32 = unsafe { ::std::mem::transmute(w_Stopsig) };
            w_Stopsig as u64
        });
        __bindgen_bitfield_unit.set(16usize, 16u8, {
            let w_Filler: u32 = unsafe { ::std::mem::transmute(w_Filler) };
            w_Filler as u64
        });
        __bindgen_bitfield_unit
    }
}
impl Default for wait {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn alloca(arg1: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
}
pub type ct_rune_t = __darwin_ct_rune_t;
pub type rune_t = __darwin_rune_t;
pub type wchar_t = __darwin_wchar_t;
#[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,
}
extern "C" {
    pub static mut __mb_cur_max: ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn atexit(arg1: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setkey(arg1: *const ::std::os::raw::c_char);
}
pub type dev_t = __darwin_dev_t;
pub type mode_t = __darwin_mode_t;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arc4random() -> u32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arc4random_addrandom(arg1: *mut ::std::os::raw::c_uchar, arg2: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __nbytes: usize);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arc4random_stir();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arc4random_uniform(__upper_bound: u32) -> u32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn atexit_b(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bsearch_b(
        __key: *const ::std::os::raw::c_void,
        __base: *const ::std::os::raw::c_void,
        __nel: usize,
        __width: usize,
        __compar: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetcap(
        arg1: *mut ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetclose() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetent(
        arg1: *mut *mut ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
        arg3: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetfirst(
        arg1: *mut *mut ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetmatch(
        arg1: *const ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetnext(
        arg1: *mut *mut ::std::os::raw::c_char,
        arg2: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetnum(
        arg1: *mut ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        arg3: *mut ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetset(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetstr(
        arg1: *mut ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        arg3: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cgetustr(
        arg1: *mut ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        arg3: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn devname(arg1: dev_t, arg2: mode_t) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn devname_r(
        arg1: dev_t,
        arg2: mode_t,
        buf: *mut ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getbsize(
        arg1: *mut ::std::os::raw::c_int,
        arg2: *mut ::std::os::raw::c_long,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getprogname() -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setprogname(arg1: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heapsort(
        __base: *mut ::std::os::raw::c_void,
        __nel: usize,
        __width: usize,
        __compar: ::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,
        >,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heapsort_b(
        __base: *mut ::std::os::raw::c_void,
        __nel: usize,
        __width: usize,
        __compar: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mergesort(
        __base: *mut ::std::os::raw::c_void,
        __nel: usize,
        __width: usize,
        __compar: ::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,
        >,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mergesort_b(
        __base: *mut ::std::os::raw::c_void,
        __nel: usize,
        __width: usize,
        __compar: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn psort(
        __base: *mut ::std::os::raw::c_void,
        __nel: usize,
        __width: usize,
        __compar: ::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,
        >,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn psort_b(
        __base: *mut ::std::os::raw::c_void,
        __nel: usize,
        __width: usize,
        __compar: *mut ::std::os::raw::c_void,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn psort_r(
        __base: *mut ::std::os::raw::c_void,
        __nel: usize,
        __width: usize,
        arg1: *mut ::std::os::raw::c_void,
        __compar: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *const ::std::os::raw::c_void,
                arg3: *const ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn qsort_b(
        __base: *mut ::std::os::raw::c_void,
        __nel: usize,
        __width: usize,
        __compar: *mut ::std::os::raw::c_void,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn radixsort(
        __base: *mut *const ::std::os::raw::c_uchar,
        __nel: ::std::os::raw::c_int,
        __table: *const ::std::os::raw::c_uchar,
        __endbyte: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sradixsort(
        __base: *mut *const ::std::os::raw::c_uchar,
        __nel: ::std::os::raw::c_int,
        __table: *const ::std::os::raw::c_uchar,
        __endbyte: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sranddev();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn srandomdev();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reallocf(
        __ptr: *mut ::std::os::raw::c_void,
        __size: usize,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn strtonum(
        __numstr: *const ::std::os::raw::c_char,
        __minval: ::std::os::raw::c_longlong,
        __maxval: ::std::os::raw::c_longlong,
        __errstrp: *mut *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub static mut suboptarg: *mut ::std::os::raw::c_char;
}
pub type rsize_t = __darwin_size_t;
pub type errno_t = ::std::os::raw::c_int;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn memset_s(
        __s: *mut ::std::os::raw::c_void,
        __smax: rsize_t,
        __c: ::std::os::raw::c_int,
        __n: rsize_t,
    ) -> errno_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn memset_pattern4(
        __b: *mut ::std::os::raw::c_void,
        __pattern4: *const ::std::os::raw::c_void,
        __len: usize,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn memset_pattern8(
        __b: *mut ::std::os::raw::c_void,
        __pattern8: *const ::std::os::raw::c_void,
        __len: usize,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn memset_pattern16(
        __b: *mut ::std::os::raw::c_void,
        __pattern16: *const ::std::os::raw::c_void,
        __len: usize,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn strnstr(
        __big: *const ::std::os::raw::c_char,
        __little: *const ::std::os::raw::c_char,
        __len: usize,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn strlcat(
        __dst: *mut ::std::os::raw::c_char,
        __source: *const ::std::os::raw::c_char,
        __size: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_ulong;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn strlcpy(
        __dst: *mut ::std::os::raw::c_char,
        __source: *const ::std::os::raw::c_char,
        __size: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_ulong;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn strmode(__mode: ::std::os::raw::c_int, __bp: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timingsafe_bcmp(
        __b1: *const ::std::os::raw::c_void,
        __b2: *const ::std::os::raw::c_void,
        __len: usize,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn strsignal_r(
        __sig: ::std::os::raw::c_int,
        __strsignalbuf: *mut ::std::os::raw::c_char,
        __buflen: usize,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fls(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn flsl(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn flsll(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
}
pub type max_align_t = f64;
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 ushort = ::std::os::raw::c_ushort;
pub type uint = ::std::os::raw::c_uint;
pub type u_quad_t = u_int64_t;
pub type quad_t = i64;
pub type qaddr_t = *mut quad_t;
pub type caddr_t = *mut ::std::os::raw::c_char;
pub type daddr_t = i32;
pub type fixpt_t = u_int32_t;
pub type blkcnt_t = __darwin_blkcnt_t;
pub type blksize_t = __darwin_blksize_t;
pub type gid_t = __darwin_gid_t;
pub type in_addr_t = __uint32_t;
pub type in_port_t = __uint16_t;
pub type ino_t = __darwin_ino_t;
pub type ino64_t = __darwin_ino64_t;
pub type key_t = __int32_t;
pub type nlink_t = __uint16_t;
pub type segsz_t = i32;
pub type swblk_t = i32;
pub type clock_t = __darwin_clock_t;
pub type time_t = __darwin_time_t;
pub type useconds_t = __darwin_useconds_t;
pub type suseconds_t = __darwin_suseconds_t;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct fd_set {
    pub fds_bits: [__int32_t; 32usize],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __darwin_check_fd_set_overflow(
        arg1: ::std::os::raw::c_int,
        arg2: *const ::std::os::raw::c_void,
        arg3: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
pub type fd_mask = __int32_t;
pub type pthread_cond_t = __darwin_pthread_cond_t;
pub type pthread_condattr_t = __darwin_pthread_condattr_t;
pub type pthread_mutex_t = __darwin_pthread_mutex_t;
pub type pthread_mutexattr_t = __darwin_pthread_mutexattr_t;
pub type pthread_once_t = __darwin_pthread_once_t;
pub type pthread_rwlock_t = __darwin_pthread_rwlock_t;
pub type pthread_rwlockattr_t = __darwin_pthread_rwlockattr_t;
pub type pthread_t = __darwin_pthread_t;
pub type pthread_key_t = __darwin_pthread_key_t;
pub type fsblkcnt_t = __darwin_fsblkcnt_t;
pub type fsfilcnt_t = __darwin_fsfilcnt_t;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __error() -> *mut ::std::os::raw::c_int;
}
#[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_n_cs_precedes: ::std::os::raw::c_char,
    pub int_p_sep_by_space: ::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
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, Copy, Clone)]
pub struct IntArray {
    pub indx: [::std::os::raw::c_int; 6usize],
}
#[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<int16>,
}
impl Default for int2vector {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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<Oid>,
}
impl Default for oidvector {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type NameData = nameData;
pub type Name = *mut NameData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExceptionalCondition(
        conditionName: *const ::std::os::raw::c_char,
        errorType: *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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type wint_t = __darwin_wint_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RuneEntry {
    pub __min: __darwin_rune_t,
    pub __max: __darwin_rune_t,
    pub __map: __darwin_rune_t,
    pub __types: *mut __uint32_t,
}
impl Default for _RuneEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RuneRange {
    pub __nranges: ::std::os::raw::c_int,
    pub __ranges: *mut _RuneEntry,
}
impl Default for _RuneRange {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct _RuneCharClass {
    pub __name: [::std::os::raw::c_char; 14usize],
    pub __mask: __uint32_t,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RuneLocale {
    pub __magic: [::std::os::raw::c_char; 8usize],
    pub __encoding: [::std::os::raw::c_char; 32usize],
    pub __sgetrune: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *const ::std::os::raw::c_char,
            arg2: __darwin_size_t,
            arg3: *mut *const ::std::os::raw::c_char,
        ) -> __darwin_rune_t,
    >,
    pub __sputrune: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: __darwin_rune_t,
            arg2: *mut ::std::os::raw::c_char,
            arg3: __darwin_size_t,
            arg4: *mut *mut ::std::os::raw::c_char,
        ) -> ::std::os::raw::c_int,
    >,
    pub __invalid_rune: __darwin_rune_t,
    pub __runetype: [__uint32_t; 256usize],
    pub __maplower: [__darwin_rune_t; 256usize],
    pub __mapupper: [__darwin_rune_t; 256usize],
    pub __runetype_ext: _RuneRange,
    pub __maplower_ext: _RuneRange,
    pub __mapupper_ext: _RuneRange,
    pub __variable: *mut ::std::os::raw::c_void,
    pub __variable_len: ::std::os::raw::c_int,
    pub __ncharclasses: ::std::os::raw::c_int,
    pub __charclasses: *mut _RuneCharClass,
}
impl Default for _RuneLocale {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static mut _DefaultRuneLocale: _RuneLocale;
}
extern "C" {
    pub static mut _CurrentRuneLocale: *mut _RuneLocale;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ___runetype(arg1: __darwin_ct_rune_t) -> ::std::os::raw::c_ulong;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ___tolower(arg1: __darwin_ct_rune_t) -> __darwin_ct_rune_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ___toupper(arg1: __darwin_ct_rune_t) -> __darwin_ct_rune_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __maskrune(
        arg1: __darwin_ct_rune_t,
        arg2: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __toupper(arg1: __darwin_ct_rune_t) -> __darwin_ct_rune_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __tolower(arg1: __darwin_ct_rune_t) -> __darwin_ct_rune_t;
}
pub type socklen_t = __darwin_socklen_t;
pub type sa_family_t = __uint8_t;
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type sae_associd_t = __uint32_t;
pub type sae_connid_t = __uint32_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sa_endpoints {
    pub sae_srcif: ::std::os::raw::c_uint,
    pub sae_srcaddr: *const sockaddr,
    pub sae_srcaddrlen: socklen_t,
    pub sae_dstaddr: *const sockaddr,
    pub sae_dstaddrlen: socklen_t,
}
impl Default for sa_endpoints {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type sa_endpoints_t = sa_endpoints;
#[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 so_np_extensions {
    pub npx_flags: u_int32_t,
    pub npx_mask: u_int32_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct sockaddr {
    pub sa_len: __uint8_t,
    pub sa_family: sa_family_t,
    pub sa_data: [::std::os::raw::c_char; 14usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __sockaddr_header {
    pub sa_len: __uint8_t,
    pub sa_family: sa_family_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct sockproto {
    pub sp_family: __uint16_t,
    pub sp_protocol: __uint16_t,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sockaddr_storage {
    pub ss_len: __uint8_t,
    pub ss_family: sa_family_t,
    pub __ss_pad1: [::std::os::raw::c_char; 6usize],
    pub __ss_align: __int64_t,
    pub __ss_pad2: [::std::os::raw::c_char; 112usize],
}
impl Default for sockaddr_storage {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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: ::std::os::raw::c_int,
    pub msg_control: *mut ::std::os::raw::c_void,
    pub msg_controllen: socklen_t,
    pub msg_flags: ::std::os::raw::c_int,
}
impl Default for msghdr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct cmsghdr {
    pub cmsg_len: socklen_t,
    pub cmsg_level: ::std::os::raw::c_int,
    pub cmsg_type: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sf_hdtr {
    pub headers: *mut iovec,
    pub hdr_cnt: ::std::os::raw::c_int,
    pub trailers: *mut iovec,
    pub trl_cnt: ::std::os::raw::c_int,
}
impl Default for sf_hdtr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pfctlinput(arg1: ::std::os::raw::c_int, arg2: *mut sockaddr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn connectx(
        arg1: ::std::os::raw::c_int,
        arg2: *const sa_endpoints_t,
        arg3: sae_associd_t,
        arg4: ::std::os::raw::c_uint,
        arg5: *const iovec,
        arg6: ::std::os::raw::c_uint,
        arg7: *mut usize,
        arg8: *mut sae_connid_t,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn disconnectx(
        arg1: ::std::os::raw::c_int,
        arg2: sae_associd_t,
        arg3: sae_connid_t,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct in_addr {
    pub s_addr: in_addr_t,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct sockaddr_in {
    pub sin_len: __uint8_t,
    pub sin_family: sa_family_t,
    pub sin_port: in_port_t,
    pub sin_addr: in_addr,
    pub sin_zero: [::std::os::raw::c_char; 8usize],
}
#[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::<Self>::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_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 ip_mreq_source {
    pub imr_multiaddr: in_addr,
    pub imr_sourceaddr: in_addr,
    pub imr_interface: in_addr,
}
#[repr(C, packed(4))]
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C, packed(4))]
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C, packed(4))]
#[derive(Debug, Copy, Clone)]
pub struct __msfilterreq {
    pub msfr_ifindex: u32,
    pub msfr_fmode: u32,
    pub msfr_nsrcs: u32,
    pub __msfr_align: u32,
    pub msfr_group: sockaddr_storage,
    pub msfr_srcs: *mut sockaddr_storage,
}
impl Default for __msfilterreq {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct in_pktinfo {
    pub ipi_ifindex: ::std::os::raw::c_uint,
    pub ipi_spec_dst: in_addr,
    pub ipi_addr: in_addr,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct in6_addr {
    pub __u6_addr: in6_addr__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union in6_addr__bindgen_ty_1 {
    pub __u6_addr8: [__uint8_t; 16usize],
    pub __u6_addr16: [__uint16_t; 8usize],
    pub __u6_addr32: [__uint32_t; 4usize],
}
impl Default for in6_addr__bindgen_ty_1 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type in6_addr_t = in6_addr;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct sockaddr_in6 {
    pub sin6_len: __uint8_t,
    pub sin6_family: sa_family_t,
    pub sin6_port: in_port_t,
    pub sin6_flowinfo: __uint32_t,
    pub sin6_addr: in6_addr,
    pub sin6_scope_id: __uint32_t,
}
impl Default for sockaddr_in6 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static in6addr_nodelocal_allnodes: in6_addr;
}
extern "C" {
    pub static in6addr_linklocal_allnodes: in6_addr;
}
extern "C" {
    pub static in6addr_linklocal_allrouters: in6_addr;
}
extern "C" {
    pub static in6addr_linklocal_allv2routers: in6_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct in6_pktinfo {
    pub ipi6_addr: in6_addr,
    pub ipi6_ifindex: ::std::os::raw::c_uint,
}
impl Default for in6_pktinfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ip6_mtuinfo {
    pub ip6m_addr: sockaddr_in6,
    pub ip6m_mtu: u32,
}
impl Default for ip6_mtuinfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet6_rthdr_space(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int) -> usize;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet6_rthdr_init(
        arg1: *mut ::std::os::raw::c_void,
        arg2: ::std::os::raw::c_int,
    ) -> *mut cmsghdr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet6_rthdr_add(
        arg1: *mut cmsghdr,
        arg2: *const in6_addr,
        arg3: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet6_rthdr_lasthop(
        arg1: *mut cmsghdr,
        arg2: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet6_rthdr_segments(arg1: *const cmsghdr) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet6_rthdr_getaddr(arg1: *mut cmsghdr, arg2: ::std::os::raw::c_int) -> *mut in6_addr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet6_rthdr_getflags(
        arg1: *const cmsghdr,
        arg2: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bindresvport_sa(
        arg1: ::std::os::raw::c_int,
        arg2: *mut sockaddr,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut h_errno: ::std::os::raw::c_int;
}
#[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::<Self>::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::<Self>::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::<Self>::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::<Self>::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_canonname: *mut ::std::os::raw::c_char,
    pub ai_addr: *mut sockaddr,
    pub ai_next: *mut addrinfo,
}
impl Default for addrinfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn freehostent(arg1: *mut hostent);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getipnodebyaddr(
        arg1: *const ::std::os::raw::c_void,
        arg2: usize,
        arg3: ::std::os::raw::c_int,
        arg4: *mut ::std::os::raw::c_int,
    ) -> *mut hostent;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getipnodebyname(
        arg1: *const ::std::os::raw::c_char,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::os::raw::c_int,
        arg4: *mut ::std::os::raw::c_int,
    ) -> *mut hostent;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct passwd {
    pub pw_name: *mut ::std::os::raw::c_char,
    pub pw_passwd: *mut ::std::os::raw::c_char,
    pub pw_uid: uid_t,
    pub pw_gid: gid_t,
    pub pw_change: __darwin_time_t,
    pub pw_class: *mut ::std::os::raw::c_char,
    pub pw_gecos: *mut ::std::os::raw::c_char,
    pub pw_dir: *mut ::std::os::raw::c_char,
    pub pw_shell: *mut ::std::os::raw::c_char,
    pub pw_expire: __darwin_time_t,
}
impl Default for passwd {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type uuid_t = __darwin_uuid_t;
pub type uuid_string_t = __darwin_uuid_string_t;
extern "C" {
    pub static UUID_NULL: uuid_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_clear(uu: *mut ::std::os::raw::c_uchar);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_compare(
        uu1: *mut ::std::os::raw::c_uchar,
        uu2: *mut ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_copy(dst: *mut ::std::os::raw::c_uchar, src: *mut ::std::os::raw::c_uchar);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_generate(out: *mut ::std::os::raw::c_uchar);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_generate_random(out: *mut ::std::os::raw::c_uchar);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_generate_time(out: *mut ::std::os::raw::c_uchar);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_is_null(uu: *mut ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_parse(
        in_: *mut ::std::os::raw::c_char,
        uu: *mut ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_unparse(uu: *mut ::std::os::raw::c_uchar, out: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_unparse_lower(uu: *mut ::std::os::raw::c_uchar, out: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_unparse_upper(uu: *mut ::std::os::raw::c_uchar, out: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setpassent(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn user_from_uid(arg1: uid_t, arg2: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getpwuuid(arg1: *mut ::std::os::raw::c_uchar) -> *mut passwd;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getpwuuid_r(
        arg1: *mut ::std::os::raw::c_uchar,
        arg2: *mut passwd,
        arg3: *mut ::std::os::raw::c_char,
        arg4: usize,
        arg5: *mut *mut passwd,
    ) -> ::std::os::raw::c_int;
}
pub type pgsocket = ::std::os::raw::c_int;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_set_noblock(sock: pgsocket) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_set_block(sock: pgsocket) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_drive_prefix(filename: *const ::std::os::raw::c_char) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn first_dir_separator(
        filename: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn last_dir_separator(
        filename: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn first_path_var_separator(
        pathlist: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn canonicalize_path(path: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_native_path(path: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cleanup_path(path: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_contains_parent_reference(path: *const ::std::os::raw::c_char) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_is_relative_and_below_cwd(path: *const ::std::os::raw::c_char) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_absolute_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_progname(argv0: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_home_path(ret_path: *mut ::std::os::raw::c_char) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_parent_directory(path: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgfnames(path: *const ::std::os::raw::c_char) -> *mut *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgfnames_cleanup(filenames: *mut *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_pglocale_pgservice(
        argv0: *const ::std::os::raw::c_char,
        app: *const ::std::os::raw::c_char,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_usleep(microsec: ::std::os::raw::c_long);
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_toupper(ch: ::std::os::raw::c_uchar) -> ::std::os::raw::c_uchar;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tolower(ch: ::std::os::raw::c_uchar) -> ::std::os::raw::c_uchar;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ascii_toupper(ch: ::std::os::raw::c_uchar) -> ::std::os::raw::c_uchar;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ascii_tolower(ch: ::std::os::raw::c_uchar) -> ::std::os::raw::c_uchar;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_fprintf(
        stream: *mut FILE,
        fmt: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_printf(fmt: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_strerror(errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_strsignal(signum: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn simple_prompt(
        prompt: *const ::std::os::raw::c_char,
        destination: *mut ::std::os::raw::c_char,
        destlen: usize,
        echo: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pclose_check(stream: *mut FILE) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn rmtree(path: *const ::std::os::raw::c_char, rmtopdir: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_erand48(xseed: *mut ::std::os::raw::c_ushort) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lrand48() -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_jrand48(xseed: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_srand48(seed: ::std::os::raw::c_long);
}
pub type float_t = f32;
pub type double_t = f64;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __math_errhandling() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __fpclassifyd(arg1: f64) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __exp10f(arg1: f32) -> f32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __exp10(arg1: f64) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __cospif(arg1: f32) -> f32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __cospi(arg1: f64) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __sinpif(arg1: f32) -> f32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __sinpi(arg1: f64) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __tanpif(arg1: f32) -> f32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __tanpi(arg1: f64) -> f64;
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __float2 {
    pub __sinval: f32,
    pub __cosval: f32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __double2 {
    pub __sinval: f64,
    pub __cosval: f64,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __sincosf_stret(arg1: f32) -> __float2;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __sincos_stret(arg1: f64) -> __double2;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __sincospif_stret(arg1: f32) -> __float2;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __sincospi_stret(arg1: f64) -> __double2;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct exception {
    pub type_: ::std::os::raw::c_int,
    pub name: *mut ::std::os::raw::c_char,
    pub arg1: f64,
    pub arg2: f64,
    pub retval: f64,
}
impl Default for exception {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_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,
        >,
    );
}
#[pgx_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,
>;
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_strong_random(buf: *mut ::std::os::raw::c_void, len: usize) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_check_dir(dir: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_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<unsafe extern "C" fn(signo: ::std::os::raw::c_int)>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pqsignal(signo: ::std::os::raw::c_int, func: pqsigfunc) -> pqsigfunc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn escape_single_quotes_ascii(
        src: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn wait_result_to_str(exit_status: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
#[pgx_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;
}
#[pgx_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;
}
pub type jmp_buf = [::std::os::raw::c_int; 48usize];
pub type sigjmp_buf = [::std::os::raw::c_int; 49usize];
#[pgx_macros::pg_guard]
extern "C" {
    pub fn longjmperror();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errcode_for_file_access() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errcode_for_socket_access() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errmsg_internal(fmt: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errdetail_internal(fmt: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errdetail_log(fmt: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_errcontext_domain(domain: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errhidestmt(hide_stmt: bool) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errhidecontext(hide_ctx: bool) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errfunction(funcname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errposition(cursorpos: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn internalerrposition(cursorpos: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn internalerrquery(query: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn geterrcode() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn geterrposition() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getinternalerrposition() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn elog_start(
        filename: *const ::std::os::raw::c_char,
        lineno: ::std::os::raw::c_int,
        funcname: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn elog_finish(elevel: ::std::os::raw::c_int, fmt: *const ::std::os::raw::c_char, ...);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pre_format_elog_string(
        errnumber: ::std::os::raw::c_int,
        domain: *const ::std::os::raw::c_char,
    );
}
#[pgx_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<unsafe extern "C" fn(arg: *mut ::std::os::raw::c_void)>,
    pub arg: *mut ::std::os::raw::c_void,
}
impl Default for ErrorContextCallback {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 show_funcname: 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 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EmitErrorReport();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CopyErrorData() -> *mut ErrorData;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeErrorData(edata: *mut ErrorData);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FlushErrorState();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReThrowError(edata: *mut ErrorData);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ThrowErrorData(edata: *mut ErrorData);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetErrorContextStack() -> *mut ::std::os::raw::c_char;
}
pub type emit_log_hook_type = ::std::option::Option<unsafe extern "C" fn(edata: *mut ErrorData)>;
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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DebugFileOpen();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn unpack_sql_state(sql_state: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_error_recursion_trouble() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_syslog_parameters(
        ident: *const ::std::os::raw::c_char,
        facility: ::std::os::raw::c_int,
    );
}
#[pgx_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<unsafe extern "C" fn(arg: *mut ::std::os::raw::c_void)>;
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static mut CurrentMemoryContext: MemoryContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextAlloc(context: MemoryContext, size: Size) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextAllocZero(
        context: MemoryContext,
        size: Size,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextAllocZeroAligned(
        context: MemoryContext,
        size: Size,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextAllocExtended(
        context: MemoryContext,
        size: Size,
        flags: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn palloc(size: Size) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn palloc0(size: Size) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn palloc_extended(size: Size, flags: ::std::os::raw::c_int)
        -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn repalloc(
        pointer: *mut ::std::os::raw::c_void,
        size: Size,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pfree(pointer: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextAllocHuge(
        context: MemoryContext,
        size: Size,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn repalloc_huge(
        pointer: *mut ::std::os::raw::c_void,
        size: Size,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextRegisterResetCallback(
        context: MemoryContext,
        cb: *mut MemoryContextCallback,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextStrdup(
        context: MemoryContext,
        string: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pstrdup(in_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pnstrdup(in_: *const ::std::os::raw::c_char, len: Size) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pchomp(in_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn psprintf(fmt: *const ::std::os::raw::c_char, ...) -> *mut ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct varatt_external {
    pub va_rawsize: int32,
    pub va_extsize: int32,
    pub va_valueid: Oid,
    pub va_toastrelid: Oid,
}
impl Default for varatt_external {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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<varattrib_4b__bindgen_ty_1>,
    pub va_compressed: __BindgenUnionField<varattrib_4b__bindgen_ty_2>,
    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_rawsize: uint32,
    pub va_data: __IncompleteArrayField<::std::os::raw::c_char>,
}
impl Default for varattrib_4b {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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>,
}
pub type fmNodePtr = *mut Node;
pub type fmAggrefPtr = *mut Aggref;
pub type fmExprContextCallbackFunction = ::std::option::Option<unsafe extern "C" fn(arg: Datum)>;
pub type fmStringInfo = *mut StringInfoData;
pub type FunctionCallInfo = *mut FunctionCallInfoBaseData;
pub type PGFunction =
    ::std::option::Option<unsafe extern "C" fn(fcinfo: FunctionCallInfo) -> 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::<Self>::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<NullableDatum>,
}
impl Default for FunctionCallInfoBaseData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fmgr_info(functionId: Oid, finfo: *mut FmgrInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fmgr_info_cxt(functionId: Oid, finfo: *mut FmgrInfo, mcxt: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fmgr_info_copy(dstinfo: *mut FmgrInfo, srcinfo: *mut FmgrInfo, destcxt: MemoryContext);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_detoast_datum(datum: *mut varlena) -> *mut varlena;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_detoast_datum_copy(datum: *mut varlena) -> *mut varlena;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_detoast_datum_slice(datum: *mut varlena, first: int32, count: int32) -> *mut varlena;
}
#[pgx_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<unsafe extern "C" fn() -> *const Pg_finfo_record>;
#[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 float4byval: ::std::os::raw::c_int,
    pub float8byval: ::std::os::raw::c_int,
}
pub type PGModuleMagicFunction =
    ::std::option::Option<unsafe extern "C" fn() -> *const Pg_magic_struct>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DirectFunctionCall1Coll(func: PGFunction, collation: Oid, arg1: Datum) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DirectFunctionCall2Coll(
        func: PGFunction,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DirectFunctionCall3Coll(
        func: PGFunction,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
        arg3: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DirectFunctionCall4Coll(
        func: PGFunction,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
        arg3: Datum,
        arg4: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DirectFunctionCall5Coll(
        func: PGFunction,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
        arg3: Datum,
        arg4: Datum,
        arg5: Datum,
    ) -> Datum;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CallerFInfoFunctionCall1(
        func: PGFunction,
        flinfo: *mut FmgrInfo,
        collation: Oid,
        arg1: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CallerFInfoFunctionCall2(
        func: PGFunction,
        flinfo: *mut FmgrInfo,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FunctionCall0Coll(flinfo: *mut FmgrInfo, collation: Oid) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FunctionCall1Coll(flinfo: *mut FmgrInfo, collation: Oid, arg1: Datum) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FunctionCall2Coll(
        flinfo: *mut FmgrInfo,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FunctionCall3Coll(
        flinfo: *mut FmgrInfo,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
        arg3: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FunctionCall4Coll(
        flinfo: *mut FmgrInfo,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
        arg3: Datum,
        arg4: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FunctionCall5Coll(
        flinfo: *mut FmgrInfo,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
        arg3: Datum,
        arg4: Datum,
        arg5: Datum,
    ) -> Datum;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidFunctionCall0Coll(functionId: Oid, collation: Oid) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidFunctionCall1Coll(functionId: Oid, collation: Oid, arg1: Datum) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidFunctionCall2Coll(functionId: Oid, collation: Oid, arg1: Datum, arg2: Datum)
        -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidFunctionCall3Coll(
        functionId: Oid,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
        arg3: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidFunctionCall4Coll(
        functionId: Oid,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
        arg3: Datum,
        arg4: Datum,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidFunctionCall5Coll(
        functionId: Oid,
        collation: Oid,
        arg1: Datum,
        arg2: Datum,
        arg3: Datum,
        arg4: Datum,
        arg5: Datum,
    ) -> Datum;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InputFunctionCall(
        flinfo: *mut FmgrInfo,
        str_: *mut ::std::os::raw::c_char,
        typioparam: Oid,
        typmod: int32,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidInputFunctionCall(
        functionId: Oid,
        str_: *mut ::std::os::raw::c_char,
        typioparam: Oid,
        typmod: int32,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OutputFunctionCall(flinfo: *mut FmgrInfo, val: Datum) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidOutputFunctionCall(functionId: Oid, val: Datum) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReceiveFunctionCall(
        flinfo: *mut FmgrInfo,
        buf: fmStringInfo,
        typioparam: Oid,
        typmod: int32,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidReceiveFunctionCall(
        functionId: Oid,
        buf: fmStringInfo,
        typioparam: Oid,
        typmod: int32,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SendFunctionCall(flinfo: *mut FmgrInfo, val: Datum) -> *mut bytea;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OidSendFunctionCall(functionId: Oid, val: Datum) -> *mut bytea;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clear_external_function_hash(filehandle: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fmgr_internal_function(proname: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_fn_expr_rettype(flinfo: *mut FmgrInfo) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_fn_expr_argtype(flinfo: *mut FmgrInfo, argnum: ::std::os::raw::c_int) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_call_expr_argtype(expr: fmNodePtr, argnum: ::std::os::raw::c_int) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_fn_expr_arg_stable(flinfo: *mut FmgrInfo, argnum: ::std::os::raw::c_int) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_call_expr_arg_stable(expr: fmNodePtr, argnum: ::std::os::raw::c_int) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_fn_expr_variadic(flinfo: *mut FmgrInfo) -> bool;
}
#[pgx_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;
}
#[pgx_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,
    ) -> PGFunction;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lookup_external_function(
        filehandle: *mut ::std::os::raw::c_void,
        funcname: *const ::std::os::raw::c_char,
    ) -> PGFunction;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn load_file(filename: *const ::std::os::raw::c_char, restricted: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_rendezvous_variable(
        varName: *const ::std::os::raw::c_char,
    ) -> *mut *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EstimateLibraryStateSpace() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SerializeLibraryState(maxsize: Size, start_address: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RestoreLibraryState(start_address: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AggCheckCallContext(
        fcinfo: FunctionCallInfo,
        aggcontext: *mut MemoryContext,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AggGetAggref(fcinfo: FunctionCallInfo) -> fmAggrefPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AggGetTempMemoryContext(fcinfo: FunctionCallInfo) -> MemoryContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AggStateIsShared(fcinfo: FunctionCallInfo) -> bool;
}
#[pgx_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<unsafe extern "C" fn(fn_oid: Oid) -> 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;
}
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 attstattarget: int32,
    pub attlen: int16,
    pub attnum: int16,
    pub attndims: int32,
    pub attcacheoff: int32,
    pub atttypmod: int32,
    pub attbyval: bool,
    pub attstorage: ::std::os::raw::c_char,
    pub attalign: ::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: int32,
    pub attcollation: Oid,
}
impl Default for FormData_pg_attribute {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type Form_pg_attribute = *mut FormData_pg_attribute;
pub const NodeTag_T_Invalid: NodeTag = 0;
pub const NodeTag_T_IndexInfo: NodeTag = 1;
pub const NodeTag_T_ExprContext: NodeTag = 2;
pub const NodeTag_T_ProjectionInfo: NodeTag = 3;
pub const NodeTag_T_JunkFilter: NodeTag = 4;
pub const NodeTag_T_OnConflictSetState: NodeTag = 5;
pub const NodeTag_T_ResultRelInfo: NodeTag = 6;
pub const NodeTag_T_EState: NodeTag = 7;
pub const NodeTag_T_TupleTableSlot: NodeTag = 8;
pub const NodeTag_T_Plan: NodeTag = 9;
pub const NodeTag_T_Result: NodeTag = 10;
pub const NodeTag_T_ProjectSet: NodeTag = 11;
pub const NodeTag_T_ModifyTable: NodeTag = 12;
pub const NodeTag_T_Append: NodeTag = 13;
pub const NodeTag_T_MergeAppend: NodeTag = 14;
pub const NodeTag_T_RecursiveUnion: NodeTag = 15;
pub const NodeTag_T_BitmapAnd: NodeTag = 16;
pub const NodeTag_T_BitmapOr: NodeTag = 17;
pub const NodeTag_T_Scan: NodeTag = 18;
pub const NodeTag_T_SeqScan: NodeTag = 19;
pub const NodeTag_T_SampleScan: NodeTag = 20;
pub const NodeTag_T_IndexScan: NodeTag = 21;
pub const NodeTag_T_IndexOnlyScan: NodeTag = 22;
pub const NodeTag_T_BitmapIndexScan: NodeTag = 23;
pub const NodeTag_T_BitmapHeapScan: NodeTag = 24;
pub const NodeTag_T_TidScan: NodeTag = 25;
pub const NodeTag_T_SubqueryScan: NodeTag = 26;
pub const NodeTag_T_FunctionScan: NodeTag = 27;
pub const NodeTag_T_ValuesScan: NodeTag = 28;
pub const NodeTag_T_TableFuncScan: NodeTag = 29;
pub const NodeTag_T_CteScan: NodeTag = 30;
pub const NodeTag_T_NamedTuplestoreScan: NodeTag = 31;
pub const NodeTag_T_WorkTableScan: NodeTag = 32;
pub const NodeTag_T_ForeignScan: NodeTag = 33;
pub const NodeTag_T_CustomScan: NodeTag = 34;
pub const NodeTag_T_Join: NodeTag = 35;
pub const NodeTag_T_NestLoop: NodeTag = 36;
pub const NodeTag_T_MergeJoin: NodeTag = 37;
pub const NodeTag_T_HashJoin: NodeTag = 38;
pub const NodeTag_T_Material: NodeTag = 39;
pub const NodeTag_T_Sort: NodeTag = 40;
pub const NodeTag_T_Group: NodeTag = 41;
pub const NodeTag_T_Agg: NodeTag = 42;
pub const NodeTag_T_WindowAgg: NodeTag = 43;
pub const NodeTag_T_Unique: NodeTag = 44;
pub const NodeTag_T_Gather: NodeTag = 45;
pub const NodeTag_T_GatherMerge: NodeTag = 46;
pub const NodeTag_T_Hash: NodeTag = 47;
pub const NodeTag_T_SetOp: NodeTag = 48;
pub const NodeTag_T_LockRows: NodeTag = 49;
pub const NodeTag_T_Limit: NodeTag = 50;
pub const NodeTag_T_NestLoopParam: NodeTag = 51;
pub const NodeTag_T_PlanRowMark: NodeTag = 52;
pub const NodeTag_T_PartitionPruneInfo: NodeTag = 53;
pub const NodeTag_T_PartitionedRelPruneInfo: NodeTag = 54;
pub const NodeTag_T_PartitionPruneStepOp: NodeTag = 55;
pub const NodeTag_T_PartitionPruneStepCombine: NodeTag = 56;
pub const NodeTag_T_PlanInvalItem: NodeTag = 57;
pub const NodeTag_T_PlanState: NodeTag = 58;
pub const NodeTag_T_ResultState: NodeTag = 59;
pub const NodeTag_T_ProjectSetState: NodeTag = 60;
pub const NodeTag_T_ModifyTableState: NodeTag = 61;
pub const NodeTag_T_AppendState: NodeTag = 62;
pub const NodeTag_T_MergeAppendState: NodeTag = 63;
pub const NodeTag_T_RecursiveUnionState: NodeTag = 64;
pub const NodeTag_T_BitmapAndState: NodeTag = 65;
pub const NodeTag_T_BitmapOrState: NodeTag = 66;
pub const NodeTag_T_ScanState: NodeTag = 67;
pub const NodeTag_T_SeqScanState: NodeTag = 68;
pub const NodeTag_T_SampleScanState: NodeTag = 69;
pub const NodeTag_T_IndexScanState: NodeTag = 70;
pub const NodeTag_T_IndexOnlyScanState: NodeTag = 71;
pub const NodeTag_T_BitmapIndexScanState: NodeTag = 72;
pub const NodeTag_T_BitmapHeapScanState: NodeTag = 73;
pub const NodeTag_T_TidScanState: NodeTag = 74;
pub const NodeTag_T_SubqueryScanState: NodeTag = 75;
pub const NodeTag_T_FunctionScanState: NodeTag = 76;
pub const NodeTag_T_TableFuncScanState: NodeTag = 77;
pub const NodeTag_T_ValuesScanState: NodeTag = 78;
pub const NodeTag_T_CteScanState: NodeTag = 79;
pub const NodeTag_T_NamedTuplestoreScanState: NodeTag = 80;
pub const NodeTag_T_WorkTableScanState: NodeTag = 81;
pub const NodeTag_T_ForeignScanState: NodeTag = 82;
pub const NodeTag_T_CustomScanState: NodeTag = 83;
pub const NodeTag_T_JoinState: NodeTag = 84;
pub const NodeTag_T_NestLoopState: NodeTag = 85;
pub const NodeTag_T_MergeJoinState: NodeTag = 86;
pub const NodeTag_T_HashJoinState: NodeTag = 87;
pub const NodeTag_T_MaterialState: NodeTag = 88;
pub const NodeTag_T_SortState: NodeTag = 89;
pub const NodeTag_T_GroupState: NodeTag = 90;
pub const NodeTag_T_AggState: NodeTag = 91;
pub const NodeTag_T_WindowAggState: NodeTag = 92;
pub const NodeTag_T_UniqueState: NodeTag = 93;
pub const NodeTag_T_GatherState: NodeTag = 94;
pub const NodeTag_T_GatherMergeState: NodeTag = 95;
pub const NodeTag_T_HashState: NodeTag = 96;
pub const NodeTag_T_SetOpState: NodeTag = 97;
pub const NodeTag_T_LockRowsState: NodeTag = 98;
pub const NodeTag_T_LimitState: NodeTag = 99;
pub const NodeTag_T_Alias: NodeTag = 100;
pub const NodeTag_T_RangeVar: NodeTag = 101;
pub const NodeTag_T_TableFunc: NodeTag = 102;
pub const NodeTag_T_Expr: NodeTag = 103;
pub const NodeTag_T_Var: NodeTag = 104;
pub const NodeTag_T_Const: NodeTag = 105;
pub const NodeTag_T_Param: NodeTag = 106;
pub const NodeTag_T_Aggref: NodeTag = 107;
pub const NodeTag_T_GroupingFunc: NodeTag = 108;
pub const NodeTag_T_WindowFunc: NodeTag = 109;
pub const NodeTag_T_SubscriptingRef: NodeTag = 110;
pub const NodeTag_T_FuncExpr: NodeTag = 111;
pub const NodeTag_T_NamedArgExpr: NodeTag = 112;
pub const NodeTag_T_OpExpr: NodeTag = 113;
pub const NodeTag_T_DistinctExpr: NodeTag = 114;
pub const NodeTag_T_NullIfExpr: NodeTag = 115;
pub const NodeTag_T_ScalarArrayOpExpr: NodeTag = 116;
pub const NodeTag_T_BoolExpr: NodeTag = 117;
pub const NodeTag_T_SubLink: NodeTag = 118;
pub const NodeTag_T_SubPlan: NodeTag = 119;
pub const NodeTag_T_AlternativeSubPlan: NodeTag = 120;
pub const NodeTag_T_FieldSelect: NodeTag = 121;
pub const NodeTag_T_FieldStore: NodeTag = 122;
pub const NodeTag_T_RelabelType: NodeTag = 123;
pub const NodeTag_T_CoerceViaIO: NodeTag = 124;
pub const NodeTag_T_ArrayCoerceExpr: NodeTag = 125;
pub const NodeTag_T_ConvertRowtypeExpr: NodeTag = 126;
pub const NodeTag_T_CollateExpr: NodeTag = 127;
pub const NodeTag_T_CaseExpr: NodeTag = 128;
pub const NodeTag_T_CaseWhen: NodeTag = 129;
pub const NodeTag_T_CaseTestExpr: NodeTag = 130;
pub const NodeTag_T_ArrayExpr: NodeTag = 131;
pub const NodeTag_T_RowExpr: NodeTag = 132;
pub const NodeTag_T_RowCompareExpr: NodeTag = 133;
pub const NodeTag_T_CoalesceExpr: NodeTag = 134;
pub const NodeTag_T_MinMaxExpr: NodeTag = 135;
pub const NodeTag_T_SQLValueFunction: NodeTag = 136;
pub const NodeTag_T_XmlExpr: NodeTag = 137;
pub const NodeTag_T_NullTest: NodeTag = 138;
pub const NodeTag_T_BooleanTest: NodeTag = 139;
pub const NodeTag_T_CoerceToDomain: NodeTag = 140;
pub const NodeTag_T_CoerceToDomainValue: NodeTag = 141;
pub const NodeTag_T_SetToDefault: NodeTag = 142;
pub const NodeTag_T_CurrentOfExpr: NodeTag = 143;
pub const NodeTag_T_NextValueExpr: NodeTag = 144;
pub const NodeTag_T_InferenceElem: NodeTag = 145;
pub const NodeTag_T_TargetEntry: NodeTag = 146;
pub const NodeTag_T_RangeTblRef: NodeTag = 147;
pub const NodeTag_T_JoinExpr: NodeTag = 148;
pub const NodeTag_T_FromExpr: NodeTag = 149;
pub const NodeTag_T_OnConflictExpr: NodeTag = 150;
pub const NodeTag_T_IntoClause: NodeTag = 151;
pub const NodeTag_T_ExprState: NodeTag = 152;
pub const NodeTag_T_AggrefExprState: NodeTag = 153;
pub const NodeTag_T_WindowFuncExprState: NodeTag = 154;
pub const NodeTag_T_SetExprState: NodeTag = 155;
pub const NodeTag_T_SubPlanState: NodeTag = 156;
pub const NodeTag_T_AlternativeSubPlanState: NodeTag = 157;
pub const NodeTag_T_DomainConstraintState: NodeTag = 158;
pub const NodeTag_T_PlannerInfo: NodeTag = 159;
pub const NodeTag_T_PlannerGlobal: NodeTag = 160;
pub const NodeTag_T_RelOptInfo: NodeTag = 161;
pub const NodeTag_T_IndexOptInfo: NodeTag = 162;
pub const NodeTag_T_ForeignKeyOptInfo: NodeTag = 163;
pub const NodeTag_T_ParamPathInfo: NodeTag = 164;
pub const NodeTag_T_Path: NodeTag = 165;
pub const NodeTag_T_IndexPath: NodeTag = 166;
pub const NodeTag_T_BitmapHeapPath: NodeTag = 167;
pub const NodeTag_T_BitmapAndPath: NodeTag = 168;
pub const NodeTag_T_BitmapOrPath: NodeTag = 169;
pub const NodeTag_T_TidPath: NodeTag = 170;
pub const NodeTag_T_SubqueryScanPath: NodeTag = 171;
pub const NodeTag_T_ForeignPath: NodeTag = 172;
pub const NodeTag_T_CustomPath: NodeTag = 173;
pub const NodeTag_T_NestPath: NodeTag = 174;
pub const NodeTag_T_MergePath: NodeTag = 175;
pub const NodeTag_T_HashPath: NodeTag = 176;
pub const NodeTag_T_AppendPath: NodeTag = 177;
pub const NodeTag_T_MergeAppendPath: NodeTag = 178;
pub const NodeTag_T_GroupResultPath: NodeTag = 179;
pub const NodeTag_T_MaterialPath: NodeTag = 180;
pub const NodeTag_T_UniquePath: NodeTag = 181;
pub const NodeTag_T_GatherPath: NodeTag = 182;
pub const NodeTag_T_GatherMergePath: NodeTag = 183;
pub const NodeTag_T_ProjectionPath: NodeTag = 184;
pub const NodeTag_T_ProjectSetPath: NodeTag = 185;
pub const NodeTag_T_SortPath: NodeTag = 186;
pub const NodeTag_T_GroupPath: NodeTag = 187;
pub const NodeTag_T_UpperUniquePath: NodeTag = 188;
pub const NodeTag_T_AggPath: NodeTag = 189;
pub const NodeTag_T_GroupingSetsPath: NodeTag = 190;
pub const NodeTag_T_MinMaxAggPath: NodeTag = 191;
pub const NodeTag_T_WindowAggPath: NodeTag = 192;
pub const NodeTag_T_SetOpPath: NodeTag = 193;
pub const NodeTag_T_RecursiveUnionPath: NodeTag = 194;
pub const NodeTag_T_LockRowsPath: NodeTag = 195;
pub const NodeTag_T_ModifyTablePath: NodeTag = 196;
pub const NodeTag_T_LimitPath: NodeTag = 197;
pub const NodeTag_T_EquivalenceClass: NodeTag = 198;
pub const NodeTag_T_EquivalenceMember: NodeTag = 199;
pub const NodeTag_T_PathKey: NodeTag = 200;
pub const NodeTag_T_PathTarget: NodeTag = 201;
pub const NodeTag_T_RestrictInfo: NodeTag = 202;
pub const NodeTag_T_IndexClause: NodeTag = 203;
pub const NodeTag_T_PlaceHolderVar: NodeTag = 204;
pub const NodeTag_T_SpecialJoinInfo: NodeTag = 205;
pub const NodeTag_T_AppendRelInfo: NodeTag = 206;
pub const NodeTag_T_PlaceHolderInfo: NodeTag = 207;
pub const NodeTag_T_MinMaxAggInfo: NodeTag = 208;
pub const NodeTag_T_PlannerParamItem: NodeTag = 209;
pub const NodeTag_T_RollupData: NodeTag = 210;
pub const NodeTag_T_GroupingSetData: NodeTag = 211;
pub const NodeTag_T_StatisticExtInfo: NodeTag = 212;
pub const NodeTag_T_MemoryContext: NodeTag = 213;
pub const NodeTag_T_AllocSetContext: NodeTag = 214;
pub const NodeTag_T_SlabContext: NodeTag = 215;
pub const NodeTag_T_GenerationContext: NodeTag = 216;
pub const NodeTag_T_Value: NodeTag = 217;
pub const NodeTag_T_Integer: NodeTag = 218;
pub const NodeTag_T_Float: NodeTag = 219;
pub const NodeTag_T_String: NodeTag = 220;
pub const NodeTag_T_BitString: NodeTag = 221;
pub const NodeTag_T_Null: NodeTag = 222;
pub const NodeTag_T_List: NodeTag = 223;
pub const NodeTag_T_IntList: NodeTag = 224;
pub const NodeTag_T_OidList: NodeTag = 225;
pub const NodeTag_T_ExtensibleNode: NodeTag = 226;
pub const NodeTag_T_RawStmt: NodeTag = 227;
pub const NodeTag_T_Query: NodeTag = 228;
pub const NodeTag_T_PlannedStmt: NodeTag = 229;
pub const NodeTag_T_InsertStmt: NodeTag = 230;
pub const NodeTag_T_DeleteStmt: NodeTag = 231;
pub const NodeTag_T_UpdateStmt: NodeTag = 232;
pub const NodeTag_T_SelectStmt: NodeTag = 233;
pub const NodeTag_T_AlterTableStmt: NodeTag = 234;
pub const NodeTag_T_AlterTableCmd: NodeTag = 235;
pub const NodeTag_T_AlterDomainStmt: NodeTag = 236;
pub const NodeTag_T_SetOperationStmt: NodeTag = 237;
pub const NodeTag_T_GrantStmt: NodeTag = 238;
pub const NodeTag_T_GrantRoleStmt: NodeTag = 239;
pub const NodeTag_T_AlterDefaultPrivilegesStmt: NodeTag = 240;
pub const NodeTag_T_ClosePortalStmt: NodeTag = 241;
pub const NodeTag_T_ClusterStmt: NodeTag = 242;
pub const NodeTag_T_CopyStmt: NodeTag = 243;
pub const NodeTag_T_CreateStmt: NodeTag = 244;
pub const NodeTag_T_DefineStmt: NodeTag = 245;
pub const NodeTag_T_DropStmt: NodeTag = 246;
pub const NodeTag_T_TruncateStmt: NodeTag = 247;
pub const NodeTag_T_CommentStmt: NodeTag = 248;
pub const NodeTag_T_FetchStmt: NodeTag = 249;
pub const NodeTag_T_IndexStmt: NodeTag = 250;
pub const NodeTag_T_CreateFunctionStmt: NodeTag = 251;
pub const NodeTag_T_AlterFunctionStmt: NodeTag = 252;
pub const NodeTag_T_DoStmt: NodeTag = 253;
pub const NodeTag_T_RenameStmt: NodeTag = 254;
pub const NodeTag_T_RuleStmt: NodeTag = 255;
pub const NodeTag_T_NotifyStmt: NodeTag = 256;
pub const NodeTag_T_ListenStmt: NodeTag = 257;
pub const NodeTag_T_UnlistenStmt: NodeTag = 258;
pub const NodeTag_T_TransactionStmt: NodeTag = 259;
pub const NodeTag_T_ViewStmt: NodeTag = 260;
pub const NodeTag_T_LoadStmt: NodeTag = 261;
pub const NodeTag_T_CreateDomainStmt: NodeTag = 262;
pub const NodeTag_T_CreatedbStmt: NodeTag = 263;
pub const NodeTag_T_DropdbStmt: NodeTag = 264;
pub const NodeTag_T_VacuumStmt: NodeTag = 265;
pub const NodeTag_T_ExplainStmt: NodeTag = 266;
pub const NodeTag_T_CreateTableAsStmt: NodeTag = 267;
pub const NodeTag_T_CreateSeqStmt: NodeTag = 268;
pub const NodeTag_T_AlterSeqStmt: NodeTag = 269;
pub const NodeTag_T_VariableSetStmt: NodeTag = 270;
pub const NodeTag_T_VariableShowStmt: NodeTag = 271;
pub const NodeTag_T_DiscardStmt: NodeTag = 272;
pub const NodeTag_T_CreateTrigStmt: NodeTag = 273;
pub const NodeTag_T_CreatePLangStmt: NodeTag = 274;
pub const NodeTag_T_CreateRoleStmt: NodeTag = 275;
pub const NodeTag_T_AlterRoleStmt: NodeTag = 276;
pub const NodeTag_T_DropRoleStmt: NodeTag = 277;
pub const NodeTag_T_LockStmt: NodeTag = 278;
pub const NodeTag_T_ConstraintsSetStmt: NodeTag = 279;
pub const NodeTag_T_ReindexStmt: NodeTag = 280;
pub const NodeTag_T_CheckPointStmt: NodeTag = 281;
pub const NodeTag_T_CreateSchemaStmt: NodeTag = 282;
pub const NodeTag_T_AlterDatabaseStmt: NodeTag = 283;
pub const NodeTag_T_AlterDatabaseSetStmt: NodeTag = 284;
pub const NodeTag_T_AlterRoleSetStmt: NodeTag = 285;
pub const NodeTag_T_CreateConversionStmt: NodeTag = 286;
pub const NodeTag_T_CreateCastStmt: NodeTag = 287;
pub const NodeTag_T_CreateOpClassStmt: NodeTag = 288;
pub const NodeTag_T_CreateOpFamilyStmt: NodeTag = 289;
pub const NodeTag_T_AlterOpFamilyStmt: NodeTag = 290;
pub const NodeTag_T_PrepareStmt: NodeTag = 291;
pub const NodeTag_T_ExecuteStmt: NodeTag = 292;
pub const NodeTag_T_DeallocateStmt: NodeTag = 293;
pub const NodeTag_T_DeclareCursorStmt: NodeTag = 294;
pub const NodeTag_T_CreateTableSpaceStmt: NodeTag = 295;
pub const NodeTag_T_DropTableSpaceStmt: NodeTag = 296;
pub const NodeTag_T_AlterObjectDependsStmt: NodeTag = 297;
pub const NodeTag_T_AlterObjectSchemaStmt: NodeTag = 298;
pub const NodeTag_T_AlterOwnerStmt: NodeTag = 299;
pub const NodeTag_T_AlterOperatorStmt: NodeTag = 300;
pub const NodeTag_T_DropOwnedStmt: NodeTag = 301;
pub const NodeTag_T_ReassignOwnedStmt: NodeTag = 302;
pub const NodeTag_T_CompositeTypeStmt: NodeTag = 303;
pub const NodeTag_T_CreateEnumStmt: NodeTag = 304;
pub const NodeTag_T_CreateRangeStmt: NodeTag = 305;
pub const NodeTag_T_AlterEnumStmt: NodeTag = 306;
pub const NodeTag_T_AlterTSDictionaryStmt: NodeTag = 307;
pub const NodeTag_T_AlterTSConfigurationStmt: NodeTag = 308;
pub const NodeTag_T_CreateFdwStmt: NodeTag = 309;
pub const NodeTag_T_AlterFdwStmt: NodeTag = 310;
pub const NodeTag_T_CreateForeignServerStmt: NodeTag = 311;
pub const NodeTag_T_AlterForeignServerStmt: NodeTag = 312;
pub const NodeTag_T_CreateUserMappingStmt: NodeTag = 313;
pub const NodeTag_T_AlterUserMappingStmt: NodeTag = 314;
pub const NodeTag_T_DropUserMappingStmt: NodeTag = 315;
pub const NodeTag_T_AlterTableSpaceOptionsStmt: NodeTag = 316;
pub const NodeTag_T_AlterTableMoveAllStmt: NodeTag = 317;
pub const NodeTag_T_SecLabelStmt: NodeTag = 318;
pub const NodeTag_T_CreateForeignTableStmt: NodeTag = 319;
pub const NodeTag_T_ImportForeignSchemaStmt: NodeTag = 320;
pub const NodeTag_T_CreateExtensionStmt: NodeTag = 321;
pub const NodeTag_T_AlterExtensionStmt: NodeTag = 322;
pub const NodeTag_T_AlterExtensionContentsStmt: NodeTag = 323;
pub const NodeTag_T_CreateEventTrigStmt: NodeTag = 324;
pub const NodeTag_T_AlterEventTrigStmt: NodeTag = 325;
pub const NodeTag_T_RefreshMatViewStmt: NodeTag = 326;
pub const NodeTag_T_ReplicaIdentityStmt: NodeTag = 327;
pub const NodeTag_T_AlterSystemStmt: NodeTag = 328;
pub const NodeTag_T_CreatePolicyStmt: NodeTag = 329;
pub const NodeTag_T_AlterPolicyStmt: NodeTag = 330;
pub const NodeTag_T_CreateTransformStmt: NodeTag = 331;
pub const NodeTag_T_CreateAmStmt: NodeTag = 332;
pub const NodeTag_T_CreatePublicationStmt: NodeTag = 333;
pub const NodeTag_T_AlterPublicationStmt: NodeTag = 334;
pub const NodeTag_T_CreateSubscriptionStmt: NodeTag = 335;
pub const NodeTag_T_AlterSubscriptionStmt: NodeTag = 336;
pub const NodeTag_T_DropSubscriptionStmt: NodeTag = 337;
pub const NodeTag_T_CreateStatsStmt: NodeTag = 338;
pub const NodeTag_T_AlterCollationStmt: NodeTag = 339;
pub const NodeTag_T_CallStmt: NodeTag = 340;
pub const NodeTag_T_A_Expr: NodeTag = 341;
pub const NodeTag_T_ColumnRef: NodeTag = 342;
pub const NodeTag_T_ParamRef: NodeTag = 343;
pub const NodeTag_T_A_Const: NodeTag = 344;
pub const NodeTag_T_FuncCall: NodeTag = 345;
pub const NodeTag_T_A_Star: NodeTag = 346;
pub const NodeTag_T_A_Indices: NodeTag = 347;
pub const NodeTag_T_A_Indirection: NodeTag = 348;
pub const NodeTag_T_A_ArrayExpr: NodeTag = 349;
pub const NodeTag_T_ResTarget: NodeTag = 350;
pub const NodeTag_T_MultiAssignRef: NodeTag = 351;
pub const NodeTag_T_TypeCast: NodeTag = 352;
pub const NodeTag_T_CollateClause: NodeTag = 353;
pub const NodeTag_T_SortBy: NodeTag = 354;
pub const NodeTag_T_WindowDef: NodeTag = 355;
pub const NodeTag_T_RangeSubselect: NodeTag = 356;
pub const NodeTag_T_RangeFunction: NodeTag = 357;
pub const NodeTag_T_RangeTableSample: NodeTag = 358;
pub const NodeTag_T_RangeTableFunc: NodeTag = 359;
pub const NodeTag_T_RangeTableFuncCol: NodeTag = 360;
pub const NodeTag_T_TypeName: NodeTag = 361;
pub const NodeTag_T_ColumnDef: NodeTag = 362;
pub const NodeTag_T_IndexElem: NodeTag = 363;
pub const NodeTag_T_Constraint: NodeTag = 364;
pub const NodeTag_T_DefElem: NodeTag = 365;
pub const NodeTag_T_RangeTblEntry: NodeTag = 366;
pub const NodeTag_T_RangeTblFunction: NodeTag = 367;
pub const NodeTag_T_TableSampleClause: NodeTag = 368;
pub const NodeTag_T_WithCheckOption: NodeTag = 369;
pub const NodeTag_T_SortGroupClause: NodeTag = 370;
pub const NodeTag_T_GroupingSet: NodeTag = 371;
pub const NodeTag_T_WindowClause: NodeTag = 372;
pub const NodeTag_T_ObjectWithArgs: NodeTag = 373;
pub const NodeTag_T_AccessPriv: NodeTag = 374;
pub const NodeTag_T_CreateOpClassItem: NodeTag = 375;
pub const NodeTag_T_TableLikeClause: NodeTag = 376;
pub const NodeTag_T_FunctionParameter: NodeTag = 377;
pub const NodeTag_T_LockingClause: NodeTag = 378;
pub const NodeTag_T_RowMarkClause: NodeTag = 379;
pub const NodeTag_T_XmlSerialize: NodeTag = 380;
pub const NodeTag_T_WithClause: NodeTag = 381;
pub const NodeTag_T_InferClause: NodeTag = 382;
pub const NodeTag_T_OnConflictClause: NodeTag = 383;
pub const NodeTag_T_CommonTableExpr: NodeTag = 384;
pub const NodeTag_T_RoleSpec: NodeTag = 385;
pub const NodeTag_T_TriggerTransition: NodeTag = 386;
pub const NodeTag_T_PartitionElem: NodeTag = 387;
pub const NodeTag_T_PartitionSpec: NodeTag = 388;
pub const NodeTag_T_PartitionBoundSpec: NodeTag = 389;
pub const NodeTag_T_PartitionRangeDatum: NodeTag = 390;
pub const NodeTag_T_PartitionCmd: NodeTag = 391;
pub const NodeTag_T_VacuumRelation: NodeTag = 392;
pub const NodeTag_T_IdentifySystemCmd: NodeTag = 393;
pub const NodeTag_T_BaseBackupCmd: NodeTag = 394;
pub const NodeTag_T_CreateReplicationSlotCmd: NodeTag = 395;
pub const NodeTag_T_DropReplicationSlotCmd: NodeTag = 396;
pub const NodeTag_T_StartReplicationCmd: NodeTag = 397;
pub const NodeTag_T_TimeLineHistoryCmd: NodeTag = 398;
pub const NodeTag_T_SQLCmd: NodeTag = 399;
pub const NodeTag_T_TriggerData: NodeTag = 400;
pub const NodeTag_T_EventTriggerData: NodeTag = 401;
pub const NodeTag_T_ReturnSetInfo: NodeTag = 402;
pub const NodeTag_T_WindowObjectData: NodeTag = 403;
pub const NodeTag_T_TIDBitmap: NodeTag = 404;
pub const NodeTag_T_InlineCodeBlock: NodeTag = 405;
pub const NodeTag_T_FdwRoutine: NodeTag = 406;
pub const NodeTag_T_IndexAmRoutine: NodeTag = 407;
pub const NodeTag_T_TableAmRoutine: NodeTag = 408;
pub const NodeTag_T_TsmRoutine: NodeTag = 409;
pub const NodeTag_T_ForeignKeyCacheInfo: NodeTag = 410;
pub const NodeTag_T_CallContext: NodeTag = 411;
pub const NodeTag_T_SupportRequestSimplify: NodeTag = 412;
pub const NodeTag_T_SupportRequestSelectivity: NodeTag = 413;
pub const NodeTag_T_SupportRequestCost: NodeTag = 414;
pub const NodeTag_T_SupportRequestRows: NodeTag = 415;
pub const NodeTag_T_SupportRequestIndexCondition: NodeTag = 416;
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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn outNode(str_: *mut StringInfoData, obj: *const ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn outToken(str_: *mut StringInfoData, s: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn outBitmapset(str_: *mut StringInfoData, bms: *const Bitmapset);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn outDatum(
        str_: *mut StringInfoData,
        value: usize,
        typlen: ::std::os::raw::c_int,
        typbyval: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nodeToString(obj: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bmsToString(bms: *const Bitmapset) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn stringToNode(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn readBitmapset() -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn readDatum(typbyval: bool) -> usize;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn readBoolCols(numCols: ::std::os::raw::c_int) -> *mut bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn readIntCols(numCols: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn readOidCols(numCols: ::std::os::raw::c_int) -> *mut Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn readAttrNumberCols(numCols: ::std::os::raw::c_int) -> *mut int16;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn copyObjectImpl(obj: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void;
}
#[pgx_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 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_UTILITY: CmdType = 5;
pub const CmdType_CMD_NOTHING: CmdType = 6;
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_UNIQUE_OUTER: JoinType = 6;
pub const JoinType_JOIN_UNIQUE_INNER: JoinType = 7;
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;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct List {
    pub type_: NodeTag,
    pub length: ::std::os::raw::c_int,
    pub head: *mut ListCell,
    pub tail: *mut ListCell,
}
impl Default for List {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ListCell {
    pub data: ListCell__bindgen_ty_1,
    pub next: *mut ListCell,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ListCell__bindgen_ty_1 {
    pub ptr_value: *mut ::std::os::raw::c_void,
    pub int_value: ::std::os::raw::c_int,
    pub oid_value: Oid,
}
impl Default for ListCell__bindgen_ty_1 {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl Default for ListCell {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lappend(list: *mut List, datum: *mut ::std::os::raw::c_void) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lappend_int(list: *mut List, datum: ::std::os::raw::c_int) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lappend_oid(list: *mut List, datum: Oid) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lappend_cell(
        list: *mut List,
        prev: *mut ListCell,
        datum: *mut ::std::os::raw::c_void,
    ) -> *mut ListCell;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lappend_cell_int(
        list: *mut List,
        prev: *mut ListCell,
        datum: ::std::os::raw::c_int,
    ) -> *mut ListCell;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lappend_cell_oid(list: *mut List, prev: *mut ListCell, datum: Oid) -> *mut ListCell;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lcons(datum: *mut ::std::os::raw::c_void, list: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lcons_int(datum: ::std::os::raw::c_int, list: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lcons_oid(datum: Oid, list: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_concat(list1: *mut List, list2: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_truncate(list: *mut List, new_size: ::std::os::raw::c_int) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_nth_cell(list: *const List, n: ::std::os::raw::c_int) -> *mut ListCell;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_nth(list: *const List, n: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_nth_int(list: *const List, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_nth_oid(list: *const List, n: ::std::os::raw::c_int) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_member(list: *const List, datum: *const ::std::os::raw::c_void) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_member_ptr(list: *const List, datum: *const ::std::os::raw::c_void) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_member_int(list: *const List, datum: ::std::os::raw::c_int) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_member_oid(list: *const List, datum: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_delete(list: *mut List, datum: *mut ::std::os::raw::c_void) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_delete_ptr(list: *mut List, datum: *mut ::std::os::raw::c_void) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_delete_int(list: *mut List, datum: ::std::os::raw::c_int) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_delete_oid(list: *mut List, datum: Oid) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_delete_first(list: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_delete_cell(list: *mut List, cell: *mut ListCell, prev: *mut ListCell)
        -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_union(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_union_ptr(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_union_int(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_union_oid(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_intersection(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_intersection_int(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_difference(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_difference_ptr(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_difference_int(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_difference_oid(list1: *const List, list2: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_append_unique(list: *mut List, datum: *mut ::std::os::raw::c_void) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_append_unique_ptr(list: *mut List, datum: *mut ::std::os::raw::c_void)
        -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_append_unique_int(list: *mut List, datum: ::std::os::raw::c_int) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_append_unique_oid(list: *mut List, datum: Oid) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_concat_unique(list1: *mut List, list2: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_concat_unique_ptr(list1: *mut List, list2: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_concat_unique_int(list1: *mut List, list2: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_concat_unique_oid(list1: *mut List, list2: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_free(list: *mut List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_free_deep(list: *mut List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_copy(list: *const List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_copy_tail(list: *const List, nskip: ::std::os::raw::c_int) -> *mut List;
}
pub type list_qsort_comparator = ::std::option::Option<
    unsafe extern "C" fn(
        a: *const ::std::os::raw::c_void,
        b: *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int,
>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn list_qsort(list: *const List, cmp: list_qsort_comparator) -> *mut List;
}
#[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::<Self>::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::<Self>::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::<Self>::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<FormData_pg_attribute>,
}
impl Default for TupleDescData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type TupleDesc = *mut TupleDescData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateTemplateTupleDesc(natts: ::std::os::raw::c_int) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateTupleDesc(
        natts: ::std::os::raw::c_int,
        attrs: *mut Form_pg_attribute,
    ) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateTupleDescCopy(tupdesc: TupleDesc) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateTupleDescCopyConstr(tupdesc: TupleDesc) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TupleDescCopy(dst: TupleDesc, src: TupleDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TupleDescCopyEntry(
        dst: TupleDesc,
        dstAttno: AttrNumber,
        src: TupleDesc,
        srcAttno: AttrNumber,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeTupleDesc(tupdesc: TupleDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IncrTupleDescRefCount(tupdesc: TupleDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DecrTupleDescRefCount(tupdesc: TupleDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn equalTupleDescs(tupdesc1: TupleDesc, tupdesc2: TupleDesc) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashTupleDesc(tupdesc: TupleDesc) -> uint32;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TupleDescInitEntryCollation(
        desc: TupleDesc,
        attributeNumber: AttrNumber,
        collationid: Oid,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BuildDescForRelation(schema: *mut List) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BuildDescFromLists(
        names: *mut List,
        types: *mut List,
        typmods: *mut List,
        collations: *mut List,
    ) -> TupleDesc;
}
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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ItemPointerEquals(pointer1: ItemPointer, pointer2: ItemPointer) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ItemPointerCompare(arg1: ItemPointer, arg2: ItemPointer) -> int32;
}
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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type HeapTuple = *mut HeapTupleData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleHeaderGetCmin(tup: HeapTupleHeader) -> CommandId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleHeaderGetCmax(tup: HeapTupleHeader) -> CommandId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleHeaderAdjustCmax(
        tup: HeapTupleHeader,
        cmax: *mut CommandId,
        iscombo: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleGetUpdateXid(tuple: HeapTupleHeader) -> TransactionId;
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct flock {
    pub l_start: off_t,
    pub l_len: off_t,
    pub l_pid: pid_t,
    pub l_type: ::std::os::raw::c_short,
    pub l_whence: ::std::os::raw::c_short,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct timespec {
    pub tv_sec: __darwin_time_t,
    pub tv_nsec: ::std::os::raw::c_long,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct flocktimeout {
    pub fl: flock,
    pub timeout: timespec,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct radvisory {
    pub ra_offset: off_t,
    pub ra_count: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fsignatures {
    pub fs_file_start: off_t,
    pub fs_blob_start: *mut ::std::os::raw::c_void,
    pub fs_blob_size: usize,
    pub fs_fsignatures_size: usize,
    pub fs_cdhash: [::std::os::raw::c_char; 20usize],
    pub fs_hash_type: ::std::os::raw::c_int,
}
impl Default for fsignatures {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type fsignatures_t = fsignatures;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct fsupplement {
    pub fs_file_start: off_t,
    pub fs_blob_start: off_t,
    pub fs_blob_size: usize,
    pub fs_orig_fd: ::std::os::raw::c_int,
}
pub type fsupplement_t = fsupplement;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fchecklv {
    pub lv_file_start: off_t,
    pub lv_error_message_size: usize,
    pub lv_error_message: *mut ::std::os::raw::c_void,
}
impl Default for fchecklv {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type fchecklv_t = fchecklv;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct fgetsigsinfo {
    pub fg_file_start: off_t,
    pub fg_info_request: ::std::os::raw::c_int,
    pub fg_sig_is_platform: ::std::os::raw::c_int,
}
pub type fgetsigsinfo_t = fgetsigsinfo;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct fstore {
    pub fst_flags: ::std::os::raw::c_uint,
    pub fst_posmode: ::std::os::raw::c_int,
    pub fst_offset: off_t,
    pub fst_length: off_t,
    pub fst_bytesalloc: off_t,
}
pub type fstore_t = fstore;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct fpunchhole {
    pub fp_flags: ::std::os::raw::c_uint,
    pub reserved: ::std::os::raw::c_uint,
    pub fp_offset: off_t,
    pub fp_length: off_t,
}
pub type fpunchhole_t = fpunchhole;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct ftrimactivefile {
    pub fta_offset: off_t,
    pub fta_length: off_t,
}
pub type ftrimactivefile_t = ftrimactivefile;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct fspecread {
    pub fsr_flags: ::std::os::raw::c_uint,
    pub reserved: ::std::os::raw::c_uint,
    pub fsr_offset: off_t,
    pub fsr_length: off_t,
}
pub type fspecread_t = fspecread;
#[repr(C, packed(4))]
#[derive(Debug, Default, Copy, Clone)]
pub struct log2phys {
    pub l2p_flags: ::std::os::raw::c_uint,
    pub l2p_contigbytes: off_t,
    pub l2p_devoffset: off_t,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _filesec {
    _unused: [u8; 0],
}
pub type filesec_t = *mut _filesec;
pub const filesec_property_t_FILESEC_OWNER: filesec_property_t = 1;
pub const filesec_property_t_FILESEC_GROUP: filesec_property_t = 2;
pub const filesec_property_t_FILESEC_UUID: filesec_property_t = 3;
pub const filesec_property_t_FILESEC_MODE: filesec_property_t = 4;
pub const filesec_property_t_FILESEC_ACL: filesec_property_t = 5;
pub const filesec_property_t_FILESEC_GRPUUID: filesec_property_t = 6;
pub const filesec_property_t_FILESEC_ACL_RAW: filesec_property_t = 100;
pub const filesec_property_t_FILESEC_ACL_ALLOCSIZE: filesec_property_t = 101;
pub type filesec_property_t = ::std::os::raw::c_uint;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn openx_np(
        arg1: *const ::std::os::raw::c_char,
        arg2: ::std::os::raw::c_int,
        arg3: filesec_t,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn open_dprotected_np(
        arg1: *const ::std::os::raw::c_char,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::os::raw::c_int,
        ...
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn openat_dprotected_np(
        arg1: ::std::os::raw::c_int,
        arg2: *const ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::os::raw::c_int,
        arg5: ::std::os::raw::c_int,
        ...
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn openat_authenticated_np(
        arg1: ::std::os::raw::c_int,
        arg2: *const ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn filesec_init() -> filesec_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn filesec_dup(arg1: filesec_t) -> filesec_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn filesec_free(arg1: filesec_t);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn filesec_get_property(
        arg1: filesec_t,
        arg2: filesec_property_t,
        arg3: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn filesec_query_property(
        arg1: filesec_t,
        arg2: filesec_property_t,
        arg3: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn filesec_set_property(
        arg1: filesec_t,
        arg2: filesec_property_t,
        arg3: *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn filesec_unset_property(
        arg1: filesec_t,
        arg2: filesec_property_t,
    ) -> ::std::os::raw::c_int;
}
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 nextFullXid: 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: TransactionId,
    pub oldestClogXid: TransactionId,
}
impl Default for VariableCacheData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type VariableCache = *mut VariableCacheData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionStartedDuringRecovery() -> bool;
}
extern "C" {
    pub static mut ShmemVariableCache: VariableCache;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdDidCommit(transactionId: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdDidAbort(transactionId: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdIsKnownCompleted(transactionId: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdAbort(transactionId: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdCommitTree(
        xid: TransactionId,
        nxids: ::std::os::raw::c_int,
        xids: *mut TransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdAsyncCommitTree(
        xid: TransactionId,
        nxids: ::std::os::raw::c_int,
        xids: *mut TransactionId,
        lsn: XLogRecPtr,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdAbortTree(
        xid: TransactionId,
        nxids: ::std::os::raw::c_int,
        xids: *mut TransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdPrecedes(id1: TransactionId, id2: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdPrecedesOrEquals(id1: TransactionId, id2: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdFollows(id1: TransactionId, id2: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdFollowsOrEquals(id1: TransactionId, id2: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdLatest(
        mainxid: TransactionId,
        nxids: ::std::os::raw::c_int,
        xids: *const TransactionId,
    ) -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdGetCommitLSN(xid: TransactionId) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetNewTransactionId(isSubXact: bool) -> FullTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AdvanceNextFullTransactionIdPastXid(xid: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReadNextFullTransactionId() -> FullTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetTransactionIdLimit(oldest_datfrozenxid: TransactionId, oldest_datoid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AdvanceOldestClogXid(oldest_datfrozenxid: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ForceTransactionIdLimitUpdate() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetNewObjectId() -> Oid;
}
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<ItemIdData>,
}
pub type PageHeader = *mut PageHeaderData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageInit(page: Page, pageSize: Size, specialSize: Size);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageIsVerified(page: Page, blkno: BlockNumber) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageIsVerifiedExtended(
        page: Page,
        blkno: BlockNumber,
        flags: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageAddItemExtended(
        page: Page,
        item: Item,
        size: Size,
        offsetNumber: OffsetNumber,
        flags: ::std::os::raw::c_int,
    ) -> OffsetNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageGetTempPage(page: Page) -> Page;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageGetTempPageCopy(page: Page) -> Page;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageGetTempPageCopySpecial(page: Page) -> Page;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageRestoreTempPage(tempPage: Page, oldPage: Page);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageRepairFragmentation(page: Page);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageGetFreeSpace(page: Page) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageGetFreeSpaceForMultipleTuples(page: Page, ntups: ::std::os::raw::c_int) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageGetExactFreeSpace(page: Page) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageGetHeapFreeSpace(page: Page) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageIndexTupleDelete(page: Page, offset: OffsetNumber);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageIndexMultiDelete(
        page: Page,
        itemnos: *mut OffsetNumber,
        nitems: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageIndexTupleDeleteNoCompact(page: Page, offset: OffsetNumber);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageIndexTupleOverwrite(
        page: Page,
        offnum: OffsetNumber,
        newtup: Item,
        newsize: Size,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageSetChecksumCopy(page: Page, blkno: BlockNumber) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PageSetChecksumInplace(page: Page, blkno: BlockNumber);
}
#[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::<Self>::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::<Self>::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::<Self>::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<bits8>,
}
#[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::<Self>::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::<Self>::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<bits8>,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_compute_data_size(
        tupleDesc: TupleDesc,
        values: *mut Datum,
        isnull: *mut bool,
    ) -> Size;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_attisnull(
        tup: HeapTuple,
        attnum: ::std::os::raw::c_int,
        tupleDesc: TupleDesc,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nocachegetattr(tup: HeapTuple, attnum: ::std::os::raw::c_int, att: TupleDesc) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_getsysattr(
        tup: HeapTuple,
        attnum: ::std::os::raw::c_int,
        tupleDesc: TupleDesc,
        isnull: *mut bool,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getmissingattr(
        tupleDesc: TupleDesc,
        attnum: ::std::os::raw::c_int,
        isnull: *mut bool,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_copytuple(tuple: HeapTuple) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_copytuple_with_tuple(src: HeapTuple, dest: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_copy_tuple_as_datum(tuple: HeapTuple, tupleDesc: TupleDesc) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_form_tuple(
        tupleDescriptor: TupleDesc,
        values: *mut Datum,
        isnull: *mut bool,
    ) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_modify_tuple(
        tuple: HeapTuple,
        tupleDesc: TupleDesc,
        replValues: *mut Datum,
        replIsnull: *mut bool,
        doReplace: *mut bool,
    ) -> HeapTuple;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_deform_tuple(
        tuple: HeapTuple,
        tupleDesc: TupleDesc,
        values: *mut Datum,
        isnull: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_freetuple(htup: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_form_minimal_tuple(
        tupleDescriptor: TupleDesc,
        values: *mut Datum,
        isnull: *mut bool,
    ) -> MinimalTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_free_minimal_tuple(mtup: MinimalTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_copy_minimal_tuple(mtup: MinimalTuple) -> MinimalTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_tuple_from_minimal_tuple(mtup: MinimalTuple) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn minimal_tuple_from_heap_tuple(htup: HeapTuple) -> MinimalTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_expand_tuple(sourceTuple: HeapTuple, tupleDesc: TupleDesc) -> HeapTuple;
}
#[pgx_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::<Self>::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<unsafe extern "C" fn(slot: *mut TupleTableSlot)>,
    pub release: ::std::option::Option<unsafe extern "C" fn(slot: *mut TupleTableSlot)>,
    pub clear: ::std::option::Option<unsafe extern "C" fn(slot: *mut TupleTableSlot)>,
    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<unsafe extern "C" fn(slot: *mut TupleTableSlot)>,
    pub copyslot: ::std::option::Option<
        unsafe extern "C" fn(dstslot: *mut TupleTableSlot, srcslot: *mut TupleTableSlot),
    >,
    pub get_heap_tuple:
        ::std::option::Option<unsafe extern "C" fn(slot: *mut TupleTableSlot) -> HeapTuple>,
    pub get_minimal_tuple:
        ::std::option::Option<unsafe extern "C" fn(slot: *mut TupleTableSlot) -> MinimalTuple>,
    pub copy_heap_tuple:
        ::std::option::Option<unsafe extern "C" fn(slot: *mut TupleTableSlot) -> HeapTuple>,
    pub copy_minimal_tuple:
        ::std::option::Option<unsafe extern "C" fn(slot: *mut TupleTableSlot) -> 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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MakeTupleTableSlot(
        tupleDesc: TupleDesc,
        tts_ops: *const TupleTableSlotOps,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecAllocTableSlot(
        tupleTable: *mut *mut List,
        desc: TupleDesc,
        tts_ops: *const TupleTableSlotOps,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecResetTupleTable(tupleTable: *mut List, shouldFree: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MakeSingleTupleTableSlot(
        tupdesc: TupleDesc,
        tts_ops: *const TupleTableSlotOps,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecDropSingleTupleTableSlot(slot: *mut TupleTableSlot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecSetSlotDescriptor(slot: *mut TupleTableSlot, tupdesc: TupleDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecStoreHeapTuple(
        tuple: HeapTuple,
        slot: *mut TupleTableSlot,
        shouldFree: bool,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecForceStoreHeapTuple(tuple: HeapTuple, slot: *mut TupleTableSlot, shouldFree: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecStoreBufferHeapTuple(
        tuple: HeapTuple,
        slot: *mut TupleTableSlot,
        buffer: Buffer,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecStorePinnedBufferHeapTuple(
        tuple: HeapTuple,
        slot: *mut TupleTableSlot,
        buffer: Buffer,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecStoreMinimalTuple(
        mtup: MinimalTuple,
        slot: *mut TupleTableSlot,
        shouldFree: bool,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecForceStoreMinimalTuple(
        mtup: MinimalTuple,
        slot: *mut TupleTableSlot,
        shouldFree: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecStoreVirtualTuple(slot: *mut TupleTableSlot) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecStoreAllNullTuple(slot: *mut TupleTableSlot) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecStoreHeapTupleDatum(data: Datum, slot: *mut TupleTableSlot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecFetchSlotHeapTuple(
        slot: *mut TupleTableSlot,
        materialize: bool,
        shouldFree: *mut bool,
    ) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecFetchSlotMinimalTuple(
        slot: *mut TupleTableSlot,
        shouldFree: *mut bool,
    ) -> MinimalTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecFetchSlotHeapTupleDatum(slot: *mut TupleTableSlot) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn slot_getmissingattrs(
        slot: *mut TupleTableSlot,
        startAttNum: ::std::os::raw::c_int,
        lastAttNum: ::std::os::raw::c_int,
    );
}
#[pgx_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, Default)]
pub struct Bitmapset {
    pub nwords: ::std::os::raw::c_int,
    pub words: __IncompleteArrayField<bitmapword>,
}
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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_copy(a: *const Bitmapset) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_equal(a: *const Bitmapset, b: *const Bitmapset) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_compare(a: *const Bitmapset, b: *const Bitmapset) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_make_singleton(x: ::std::os::raw::c_int) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_free(a: *mut Bitmapset);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_union(a: *const Bitmapset, b: *const Bitmapset) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_intersect(a: *const Bitmapset, b: *const Bitmapset) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_difference(a: *const Bitmapset, b: *const Bitmapset) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_is_subset(a: *const Bitmapset, b: *const Bitmapset) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_subset_compare(a: *const Bitmapset, b: *const Bitmapset) -> BMS_Comparison;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_is_member(x: ::std::os::raw::c_int, a: *const Bitmapset) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_member_index(a: *mut Bitmapset, x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_overlap(a: *const Bitmapset, b: *const Bitmapset) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_overlap_list(a: *const Bitmapset, b: *const List) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_nonempty_difference(a: *const Bitmapset, b: *const Bitmapset) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_singleton_member(a: *const Bitmapset) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_get_singleton_member(
        a: *const Bitmapset,
        member: *mut ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_num_members(a: *const Bitmapset) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_membership(a: *const Bitmapset) -> BMS_Membership;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_is_empty(a: *const Bitmapset) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_add_member(a: *mut Bitmapset, x: ::std::os::raw::c_int) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_del_member(a: *mut Bitmapset, x: ::std::os::raw::c_int) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_add_members(a: *mut Bitmapset, b: *const Bitmapset) -> *mut Bitmapset;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_int_members(a: *mut Bitmapset, b: *const Bitmapset) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_del_members(a: *mut Bitmapset, b: *const Bitmapset) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_join(a: *mut Bitmapset, b: *mut Bitmapset) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_first_member(a: *mut Bitmapset) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_next_member(
        a: *const Bitmapset,
        prevbit: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_prev_member(
        a: *const Bitmapset,
        prevbit: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bms_hash_value(a: *const Bitmapset) -> uint32;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TupleConversionMap {
    pub indesc: TupleDesc,
    pub outdesc: TupleDesc,
    pub attrMap: *mut AttrNumber,
    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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn convert_tuples_by_position(
        indesc: TupleDesc,
        outdesc: TupleDesc,
        msg: *const ::std::os::raw::c_char,
    ) -> *mut TupleConversionMap;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn convert_tuples_by_name(
        indesc: TupleDesc,
        outdesc: TupleDesc,
        msg: *const ::std::os::raw::c_char,
    ) -> *mut TupleConversionMap;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn convert_tuples_by_name_map(
        indesc: TupleDesc,
        outdesc: TupleDesc,
        msg: *const ::std::os::raw::c_char,
    ) -> *mut AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn convert_tuples_by_name_map_if_req(
        indesc: TupleDesc,
        outdesc: TupleDesc,
        msg: *const ::std::os::raw::c_char,
    ) -> *mut AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn execute_attr_map_tuple(tuple: HeapTuple, map: *mut TupleConversionMap) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn execute_attr_map_slot(
        attrMap: *mut AttrNumber,
        in_slot: *mut TupleTableSlot,
        out_slot: *mut TupleTableSlot,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn execute_attr_map_cols(
        inbitmap: *mut Bitmapset,
        map: *mut TupleConversionMap,
    ) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn free_conversion_map(map: *mut TupleConversionMap);
}
#[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: *mut ::std::os::raw::c_char,
}
impl Default for tm {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn posix2time(arg1: time_t) -> time_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tzsetwall();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time2posix(arg1: time_t) -> time_t;
}
pub const clockid_t__CLOCK_REALTIME: clockid_t = 0;
pub const clockid_t__CLOCK_MONOTONIC: clockid_t = 6;
pub const clockid_t__CLOCK_MONOTONIC_RAW: clockid_t = 4;
pub const clockid_t__CLOCK_MONOTONIC_RAW_APPROX: clockid_t = 5;
pub const clockid_t__CLOCK_UPTIME_RAW: clockid_t = 8;
pub const clockid_t__CLOCK_UPTIME_RAW_APPROX: clockid_t = 9;
pub const clockid_t__CLOCK_PROCESS_CPUTIME_ID: clockid_t = 12;
pub const clockid_t__CLOCK_THREAD_CPUTIME_ID: clockid_t = 16;
pub type clockid_t = ::std::os::raw::c_uint;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clock_gettime_nsec_np(__clock_id: clockid_t) -> __uint64_t;
}
pub type instr_time = timespec;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct BufferUsage {
    pub shared_blks_hit: ::std::os::raw::c_long,
    pub shared_blks_read: ::std::os::raw::c_long,
    pub shared_blks_dirtied: ::std::os::raw::c_long,
    pub shared_blks_written: ::std::os::raw::c_long,
    pub local_blks_hit: ::std::os::raw::c_long,
    pub local_blks_read: ::std::os::raw::c_long,
    pub local_blks_dirtied: ::std::os::raw::c_long,
    pub local_blks_written: ::std::os::raw::c_long,
    pub temp_blks_read: ::std::os::raw::c_long,
    pub temp_blks_written: ::std::os::raw::c_long,
    pub blk_read_time: instr_time,
    pub blk_write_time: instr_time,
}
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_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 running: bool,
    pub starttime: instr_time,
    pub counter: instr_time,
    pub firsttuple: f64,
    pub tuplecount: f64,
    pub bufusage_start: BufferUsage,
    pub startup: f64,
    pub total: f64,
    pub ntuples: f64,
    pub ntuples2: f64,
    pub nloops: f64,
    pub nfiltered1: f64,
    pub nfiltered2: f64,
    pub bufusage: BufferUsage,
}
#[repr(C)]
#[derive(Debug, Default)]
pub struct WorkerInstrumentation {
    pub num_workers: ::std::os::raw::c_int,
    pub instrument: __IncompleteArrayField<Instrumentation>,
}
extern "C" {
    pub static mut pgBufferUsage: BufferUsage;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstrAlloc(
        n: ::std::os::raw::c_int,
        instrument_options: ::std::os::raw::c_int,
    ) -> *mut Instrumentation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstrInit(instr: *mut Instrumentation, instrument_options: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstrStartNode(instr: *mut Instrumentation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstrStopNode(instr: *mut Instrumentation, nTuples: f64);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstrEndLoop(instr: *mut Instrumentation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstrAggNode(dst: *mut Instrumentation, add: *mut Instrumentation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstrStartParallelQuery();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstrEndParallelQuery(result: *mut BufferUsage);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstrAccumParallelQuery(result: *mut BufferUsage);
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type StringInfo = *mut StringInfoData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeStringInfo() -> StringInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn initStringInfo(str_: StringInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn resetStringInfo(str_: StringInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn appendStringInfo(str_: StringInfo, fmt: *const ::std::os::raw::c_char, ...);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn appendStringInfoString(str_: StringInfo, s: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn appendStringInfoChar(str_: StringInfo, ch: ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn appendStringInfoSpaces(str_: StringInfo, count: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn appendBinaryStringInfo(
        str_: StringInfo,
        data: *const ::std::os::raw::c_char,
        datalen: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn appendBinaryStringInfoNT(
        str_: StringInfo,
        data: *const ::std::os::raw::c_char,
        datalen: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enlargeStringInfo(str_: StringInfo, needed: ::std::os::raw::c_int);
}
#[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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pairingheap_allocate(
        compare: pairingheap_comparator,
        arg: *mut ::std::os::raw::c_void,
    ) -> *mut pairingheap;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pairingheap_free(heap: *mut pairingheap);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pairingheap_add(heap: *mut pairingheap, node: *mut pairingheap_node);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pairingheap_first(heap: *mut pairingheap) -> *mut pairingheap_node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pairingheap_remove_first(heap: *mut pairingheap) -> *mut pairingheap_node;
}
#[pgx_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::<Self>::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 numParams: ::std::os::raw::c_int,
    pub params: __IncompleteArrayField<ParamExternData>,
}
impl Default for ParamListInfoData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeParamList(numParams: ::std::os::raw::c_int) -> ParamListInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn copyParamList(from: ParamListInfo) -> ParamListInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EstimateParamListSpace(paramLI: ParamListInfo) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SerializeParamList(
        paramLI: ParamListInfo,
        start_address: *mut *mut ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RestoreParamList(start_address: *mut *mut ::std::os::raw::c_char) -> ParamListInfo;
}
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 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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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: Index,
    pub varattno: AttrNumber,
    pub vartype: Oid,
    pub vartypmod: int32,
    pub varcollid: Oid,
    pub varlevelsup: Index,
    pub varnoold: Index,
    pub varoattno: AttrNumber,
    pub location: ::std::os::raw::c_int,
}
impl Default for Var {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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 agglevelsup: Index,
    pub aggsplit: AggSplit,
    pub location: ::std::os::raw::c_int,
}
impl Default for Aggref {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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 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::<Self>::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_EXPLICIT: CoercionContext = 2;
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 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::<Self>::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::<Self>::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::<Self>::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 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::<Self>::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::<Self>::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::<Self>::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,
    pub subLinkId: ::std::os::raw::c_int,
}
impl Default for SubPlan {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 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::<Self>::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::<Self>::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::<Self>::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 resultRelations: *mut List,
    pub rootResultRelations: *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::<Self>::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: f64,
    pub plan_width: ::std::os::raw::c_int,
    pub parallel_aware: bool,
    pub parallel_safe: 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::<Self>::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::<Self>::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::<Self>::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 resultRelIndex: ::std::os::raw::c_int,
    pub rootResultRelIndex: ::std::os::raw::c_int,
    pub plans: *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 onConflictWhere: *mut Node,
    pub exclRelRTI: Index,
    pub exclRelTlist: *mut List,
}
impl Default for ModifyTable {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 appendplans: *mut List,
    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::<Self>::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 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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type SeqScan = Scan;
#[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::<Self>::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::<Self>::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 indexorderby: *mut List,
    pub indextlist: *mut List,
    pub indexorderdir: ScanDirection,
    pub recheckqual: *mut List,
}
impl Default for IndexOnlyScan {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SubqueryScan {
    pub scan: Scan,
    pub subplan: *mut Plan,
}
impl Default for SubqueryScan {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 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 fsSystemCol: bool,
}
impl Default for ForeignScan {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 aggParams: *mut Bitmapset,
    pub groupingSets: *mut List,
    pub chain: *mut List,
}
impl Default for Agg {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 startInRangeFunc: Oid,
    pub endInRangeFunc: Oid,
    pub inRangeColl: Oid,
    pub inRangeAsc: bool,
    pub inRangeNullsFirst: bool,
}
impl Default for WindowAgg {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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: f64,
}
impl Default for Hash {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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,
}
impl Default for Limit {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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 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<unsafe extern "C" fn(request: Size) -> *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::<Self>::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 ffactor: ::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_create(
        tabname: *const ::std::os::raw::c_char,
        nelem: ::std::os::raw::c_long,
        info: *mut HASHCTL,
        flags: ::std::os::raw::c_int,
    ) -> *mut HTAB;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_destroy(hashp: *mut HTAB);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_stats(where_: *const ::std::os::raw::c_char, hashp: *mut HTAB);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_hash_value(hashp: *mut HTAB, keyPtr: *const ::std::os::raw::c_void) -> uint32;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_get_num_entries(hashp: *mut HTAB) -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_seq_init(status: *mut HASH_SEQ_STATUS, hashp: *mut HTAB);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_seq_search(status: *mut HASH_SEQ_STATUS) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_seq_term(status: *mut HASH_SEQ_STATUS);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_freeze(hashp: *mut HTAB);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_estimate_size(num_entries: ::std::os::raw::c_long, entrysize: Size) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_select_dirsize(num_entries: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_get_shared_size(info: *mut HASHCTL, flags: ::std::os::raw::c_int) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_HashTables(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOSubXact_HashTables(isCommit: bool, nestDepth: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn string_hash(key: *const ::std::os::raw::c_void, keysize: Size) -> uint32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tag_hash(key: *const ::std::os::raw::c_void, keysize: Size) -> uint32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uint32_hash(key: *const ::std::os::raw::c_void, keysize: Size) -> uint32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitmap_hash(key: *const ::std::os::raw::c_void, keysize: Size) -> uint32;
}
#[pgx_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;
}
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::<Self>::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::<Self>::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],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_queryEnv() -> *mut QueryEnvironment;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_visible_ENR_metadata(
        queryEnv: *mut QueryEnvironment,
        refname: *const ::std::os::raw::c_char,
    ) -> EphemeralNamedRelationMetadata;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn register_ENR(queryEnv: *mut QueryEnvironment, enr: EphemeralNamedRelation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn unregister_ENR(queryEnv: *mut QueryEnvironment, name: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_ENR(
        queryEnv: *mut QueryEnvironment,
        name: *const ::std::os::raw::c_char,
    ) -> EphemeralNamedRelation;
}
#[pgx_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 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::<Self>::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::<Self>::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: __uint64_t,
    pub d_seekoff: __uint64_t,
    pub d_reclen: __uint16_t,
    pub d_namlen: __uint16_t,
    pub d_type: __uint8_t,
    pub d_name: [::std::os::raw::c_char; 1024usize],
}
impl Default for dirent {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _telldir {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DIR {
    pub __dd_fd: ::std::os::raw::c_int,
    pub __dd_loc: ::std::os::raw::c_long,
    pub __dd_size: ::std::os::raw::c_long,
    pub __dd_buf: *mut ::std::os::raw::c_char,
    pub __dd_len: ::std::os::raw::c_int,
    pub __dd_seek: ::std::os::raw::c_long,
    pub __padding: ::std::os::raw::c_long,
    pub __dd_flags: ::std::os::raw::c_int,
    pub __dd_lock: __darwin_pthread_mutex_t,
    pub __dd_td: *mut _telldir,
}
impl Default for DIR {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn scandir_b(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut *mut *mut dirent,
        arg3: *mut ::std::os::raw::c_void,
        arg4: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn __opendir2(arg1: *const ::std::os::raw::c_char, arg2: ::std::os::raw::c_int)
        -> *mut DIR;
}
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 max_safe_fds: ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PathNameOpenFile(
        fileName: *const ::std::os::raw::c_char,
        fileFlags: ::std::os::raw::c_int,
    ) -> File;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OpenTemporaryFile(interXact: bool) -> File;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileClose(file: File);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FilePrefetch(
        file: File,
        offset: off_t,
        amount: ::std::os::raw::c_int,
        wait_event_info: uint32,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileRead(
        file: File,
        buffer: *mut ::std::os::raw::c_char,
        amount: ::std::os::raw::c_int,
        offset: off_t,
        wait_event_info: uint32,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileWrite(
        file: File,
        buffer: *mut ::std::os::raw::c_char,
        amount: ::std::os::raw::c_int,
        offset: off_t,
        wait_event_info: uint32,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileSync(file: File, wait_event_info: uint32) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileSize(file: File) -> off_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileTruncate(
        file: File,
        offset: off_t,
        wait_event_info: uint32,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileWriteback(file: File, offset: off_t, nbytes: off_t, wait_event_info: uint32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FilePathName(file: File) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileGetRawDesc(file: File) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileGetRawFlags(file: File) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FileGetRawMode(file: File) -> mode_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PathNameCreateTemporaryFile(
        name: *const ::std::os::raw::c_char,
        error_on_failure: bool,
    ) -> File;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PathNameOpenTemporaryFile(name: *const ::std::os::raw::c_char) -> File;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PathNameDeleteTemporaryFile(
        name: *const ::std::os::raw::c_char,
        error_on_failure: bool,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PathNameCreateTemporaryDir(
        base: *const ::std::os::raw::c_char,
        name: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PathNameDeleteTemporaryDir(name: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TempTablespacePath(path: *mut ::std::os::raw::c_char, tablespace: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AllocateFile(
        name: *const ::std::os::raw::c_char,
        mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeFile(file: *mut FILE) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OpenPipeStream(
        command: *const ::std::os::raw::c_char,
        mode: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ClosePipeStream(file: *mut FILE) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AllocateDir(dirname: *const ::std::os::raw::c_char) -> *mut DIR;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReadDir(dir: *mut DIR, dirname: *const ::std::os::raw::c_char) -> *mut dirent;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeDir(dir: *mut DIR) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CloseTransientFile(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MakePGDirectory(directoryName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitFileAccess();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_max_safe_fds();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn closeAllVfds();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetTempTablespaces(tableSpaces: *mut Oid, numSpaces: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TempTablespacesAreSet() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTempTablespaces(
        tableSpaces: *mut Oid,
        numSpaces: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetNextTempTableSpace() -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_Files(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOSubXact_Files(
        isCommit: bool,
        mySubid: SubTransactionId,
        parentSubid: SubTransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemovePgTempFiles();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn looks_like_temp_rel_name(name: *const ::std::os::raw::c_char) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_fsync(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_fsync_no_writethrough(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_fsync_writethrough(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_fdatasync(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_flush_data(fd: ::std::os::raw::c_int, offset: off_t, amount: off_t);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fsync_fname(fname: *const ::std::os::raw::c_char, isdir: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn durable_rename(
        oldfile: *const ::std::os::raw::c_char,
        newfile: *const ::std::os::raw::c_char,
        loglevel: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn durable_unlink(
        fname: *const ::std::os::raw::c_char,
        loglevel: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn durable_link_or_rename(
        oldfile: *const ::std::os::raw::c_char,
        newfile: *const ::std::os::raw::c_char,
        loglevel: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SyncDataDirectory();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn data_sync_elevel(elevel: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut dynamic_shared_memory_type: ::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;
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_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],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_cleanup_using_control_segment(old_control_handle: dsm_handle);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_postmaster_startup(arg1: *mut PGShmemHeader);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_backend_shutdown();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_detach_all();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_create(size: Size, flags: ::std::os::raw::c_int) -> *mut dsm_segment;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_attach(h: dsm_handle) -> *mut dsm_segment;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_detach(seg: *mut dsm_segment);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_pin_mapping(seg: *mut dsm_segment);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_unpin_mapping(seg: *mut dsm_segment);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_pin_segment(seg: *mut dsm_segment);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_unpin_segment(h: dsm_handle);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_find_mapping(h: dsm_handle) -> *mut dsm_segment;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_segment_address(seg: *mut dsm_segment) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsm_segment_map_length(seg: *mut dsm_segment) -> Size;
}
#[pgx_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<unsafe extern "C" fn(arg1: *mut dsm_segment, arg: Datum)>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_dsm_detach(seg: *mut dsm_segment, function: on_dsm_detach_callback, arg: Datum);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cancel_on_dsm_detach(
        seg: *mut dsm_segment,
        function: on_dsm_detach_callback,
        arg: Datum,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reset_on_dsm_detach();
}
pub type slock_t = ::std::os::raw::c_int;
extern "C" {
    pub static mut dummy_spinlock: slock_t;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_spins_per_delay(shared_spins_per_delay: ::std::os::raw::c_int);
}
#[pgx_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn perform_spin_delay(status: *mut SpinDelayStatus);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn finish_spin_delay(status: *mut SpinDelayStatus);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SpinlockSemas() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SpinlockSemaSize() -> Size;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SharedFileSet {
    pub creator_pid: pid_t,
    pub number: uint32,
    pub mutex: slock_t,
    pub refcnt: ::std::os::raw::c_int,
    pub ntablespaces: ::std::os::raw::c_int,
    pub tablespaces: [Oid; 8usize],
}
impl Default for SharedFileSet {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SharedFileSetInit(fileset: *mut SharedFileSet, seg: *mut dsm_segment);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SharedFileSetAttach(fileset: *mut SharedFileSet, seg: *mut dsm_segment);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SharedFileSetCreate(
        fileset: *mut SharedFileSet,
        name: *const ::std::os::raw::c_char,
    ) -> File;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SharedFileSetOpen(
        fileset: *mut SharedFileSet,
        name: *const ::std::os::raw::c_char,
    ) -> File;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SharedFileSetDelete(
        fileset: *mut SharedFileSet,
        name: *const ::std::os::raw::c_char,
        error_on_failure: bool,
    ) -> bool;
}
#[pgx_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],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sts_estimate(participants: ::std::os::raw::c_int) -> usize;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sts_end_write(accessor: *mut SharedTuplestoreAccessor);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sts_reinitialize(accessor: *mut SharedTuplestoreAccessor);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sts_begin_parallel_scan(accessor: *mut SharedTuplestoreAccessor);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sts_end_parallel_scan(accessor: *mut SharedTuplestoreAccessor);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sts_puttuple(
        accessor: *mut SharedTuplestoreAccessor,
        meta_data: *mut ::std::os::raw::c_void,
        tuple: MinimalTuple,
    );
}
#[pgx_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,
}
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 active_count: uint32,
    pub regd_count: uint32,
    pub ph_node: pairingheap_node,
    pub whenTaken: TimestampTz,
    pub lsn: XLogRecPtr,
}
impl Default for SnapshotData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationIdGetRelation(relationId: Oid) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationClose(relation: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetFKeyList(relation: Relation) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetIndexList(relation: Relation) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetStatExtList(relation: Relation) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetPrimaryKeyIndex(relation: Relation) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetReplicaIndex(relation: Relation) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetIndexExpressions(relation: Relation) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetDummyIndexExpressions(relation: Relation) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetIndexPredicate(relation: Relation) -> *mut List;
}
pub const IndexAttrBitmapKind_INDEX_ATTR_BITMAP_ALL: IndexAttrBitmapKind = 0;
pub const IndexAttrBitmapKind_INDEX_ATTR_BITMAP_KEY: IndexAttrBitmapKind = 1;
pub const IndexAttrBitmapKind_INDEX_ATTR_BITMAP_PRIMARY_KEY: IndexAttrBitmapKind = 2;
pub const IndexAttrBitmapKind_INDEX_ATTR_BITMAP_IDENTITY_KEY: IndexAttrBitmapKind = 3;
pub type IndexAttrBitmapKind = ::std::os::raw::c_uint;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetIndexAttrBitmap(
        relation: Relation,
        keyAttrs: IndexAttrBitmapKind,
    ) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetExclusionInfo(
        indexRelation: Relation,
        operators: *mut *mut Oid,
        procs: *mut *mut Oid,
        strategies: *mut *mut uint16,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationInitIndexAccessInfo(relation: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetRelationPublicationActions(relation: Relation) -> *mut PublicationActions;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationInitTableAccessMethod(relation: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errtable(rel: Relation) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errtablecol(rel: Relation, attnum: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errtablecolname(
        rel: Relation,
        colname: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errtableconstraint(
        rel: Relation,
        conname: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationCacheInitialize();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationCacheInitializePhase2();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationCacheInitializePhase3();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationBuildLocalRelation(
        relname: *const ::std::os::raw::c_char,
        relnamespace: Oid,
        tupDesc: TupleDesc,
        relid: Oid,
        accessmtd: Oid,
        relfilenode: Oid,
        reltablespace: Oid,
        shared_relation: bool,
        mapped_relation: bool,
        relpersistence: ::std::os::raw::c_char,
        relkind: ::std::os::raw::c_char,
    ) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationSetNewRelfilenode(relation: Relation, persistence: ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationForgetRelation(rid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationCacheInvalidateEntry(relationId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationCacheInvalidate(debug_discard: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationCloseSmgrByOid(relationId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_RelationCache(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOSubXact_RelationCache(
        isCommit: bool,
        mySubid: SubTransactionId,
        parentSubid: SubTransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationIdIsInInitFile(relationId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationCacheInitFilePreInvalidate();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationCacheInitFilePostInvalidate();
}
#[pgx_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<unsafe extern "C" fn(original: Datum, ssup: SortSupport) -> 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PrepareSortSupportComparisonShim(cmpFunc: Oid, ssup: SortSupport);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PrepareSortSupportFromOrderingOp(orderingOp: Oid, ssup: SortSupport);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PrepareSortSupportFromIndexRel(indexRel: Relation, strategy: int16, ssup: SortSupport);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Tuplestorestate {
    _unused: [u8; 0],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_begin_heap(
        randomAccess: bool,
        interXact: bool,
        maxKBytes: ::std::os::raw::c_int,
    ) -> *mut Tuplestorestate;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_set_eflags(state: *mut Tuplestorestate, eflags: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_puttupleslot(state: *mut Tuplestorestate, slot: *mut TupleTableSlot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_puttuple(state: *mut Tuplestorestate, tuple: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_putvalues(
        state: *mut Tuplestorestate,
        tdesc: TupleDesc,
        values: *mut Datum,
        isnull: *mut bool,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_select_read_pointer(state: *mut Tuplestorestate, ptr: ::std::os::raw::c_int);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_trim(state: *mut Tuplestorestate);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_in_memory(state: *mut Tuplestorestate) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_gettupleslot(
        state: *mut Tuplestorestate,
        forward: bool,
        copy: bool,
        slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_advance(state: *mut Tuplestorestate, forward: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_skiptuples(
        state: *mut Tuplestorestate,
        ntuples: int64,
        forward: bool,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_tuple_count(state: *mut Tuplestorestate) -> int64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_ateof(state: *mut Tuplestorestate) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_rescan(state: *mut Tuplestorestate);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_clear(state: *mut Tuplestorestate);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplestore_end(state: *mut Tuplestorestate);
}
#[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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_form_tuple(
        tupleDescriptor: TupleDesc,
        values: *mut Datum,
        isnull: *mut bool,
    ) -> IndexTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nocache_index_getattr(
        tup: IndexTuple,
        attnum: ::std::os::raw::c_int,
        tupleDesc: TupleDesc,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_deform_tuple(
        tup: IndexTuple,
        tupleDescriptor: TupleDesc,
        values: *mut Datum,
        isnull: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CopyIndexTuple(source: IndexTuple) -> IndexTuple;
}
#[pgx_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 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::<Self>::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 = 3;
pub const TuplesortMethod_SORT_TYPE_EXTERNAL_MERGE: TuplesortMethod = 4;
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: ::std::os::raw::c_long,
}
impl Default for TuplesortInstrumentation {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_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,
        randomAccess: bool,
    ) -> *mut Tuplesortstate;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_begin_cluster(
        tupDesc: TupleDesc,
        indexRel: Relation,
        workMem: ::std::os::raw::c_int,
        coordinate: SortCoordinate,
        randomAccess: bool,
    ) -> *mut Tuplesortstate;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_begin_index_btree(
        heapRel: Relation,
        indexRel: Relation,
        enforceUnique: bool,
        workMem: ::std::os::raw::c_int,
        coordinate: SortCoordinate,
        randomAccess: bool,
    ) -> *mut Tuplesortstate;
}
#[pgx_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,
        randomAccess: bool,
    ) -> *mut Tuplesortstate;
}
#[pgx_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,
        randomAccess: bool,
    ) -> *mut Tuplesortstate;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_set_bound(state: *mut Tuplesortstate, bound: int64);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_puttupleslot(state: *mut Tuplesortstate, slot: *mut TupleTableSlot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_putheaptuple(state: *mut Tuplesortstate, tup: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_putindextuplevalues(
        state: *mut Tuplesortstate,
        rel: Relation,
        self_: ItemPointer,
        values: *mut Datum,
        isnull: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_putdatum(state: *mut Tuplesortstate, val: Datum, isNull: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_performsort(state: *mut Tuplesortstate);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_gettupleslot(
        state: *mut Tuplesortstate,
        forward: bool,
        copy: bool,
        slot: *mut TupleTableSlot,
        abbrev: *mut Datum,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_getheaptuple(state: *mut Tuplesortstate, forward: bool) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_getindextuple(state: *mut Tuplesortstate, forward: bool) -> IndexTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_getdatum(
        state: *mut Tuplesortstate,
        forward: bool,
        val: *mut Datum,
        isNull: *mut bool,
        abbrev: *mut Datum,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_skiptuples(state: *mut Tuplesortstate, ntuples: int64, forward: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_end(state: *mut Tuplesortstate);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_get_stats(state: *mut Tuplesortstate, stats: *mut TuplesortInstrumentation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_method_name(m: TuplesortMethod) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_space_type_name(t: TuplesortSpaceType) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_merge_order(allowedMem: int64) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_estimate_shared(nworkers: ::std::os::raw::c_int) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_initialize_shared(
        shared: *mut Sharedsort,
        nWorkers: ::std::os::raw::c_int,
        seg: *mut dsm_segment,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_attach_shared(shared: *mut Sharedsort, seg: *mut dsm_segment);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_rescan(state: *mut Tuplesortstate);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_markpos(state: *mut Tuplesortstate);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplesort_restorepos(state: *mut Tuplesortstate);
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct pg_atomic_flag {
    pub value: ::std::os::raw::c_int,
}
#[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,
}
#[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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_startup();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_create(tranche_id: ::std::os::raw::c_int) -> *mut dsa_area;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_attach(handle: dsa_handle) -> *mut dsa_area;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_release_in_place(place: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_on_dsm_detach_release_in_place(arg1: *mut dsm_segment, arg2: Datum);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_on_shmem_exit_release_in_place(arg1: ::std::os::raw::c_int, arg2: Datum);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_pin_mapping(area: *mut dsa_area);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_detach(area: *mut dsa_area);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_pin(area: *mut dsa_area);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_unpin(area: *mut dsa_area);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_set_size_limit(area: *mut dsa_area, limit: usize);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_minimum_size() -> usize;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_get_handle(area: *mut dsa_area) -> dsa_handle;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_allocate_extended(
        area: *mut dsa_area,
        size: usize,
        flags: ::std::os::raw::c_int,
    ) -> dsa_pointer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_free(area: *mut dsa_area, dp: dsa_pointer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_get_address(area: *mut dsa_area, dp: dsa_pointer) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsa_trim(area: *mut dsa_area);
}
#[pgx_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<OffsetNumber>,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_create(maxbytes: ::std::os::raw::c_long, dsa: *mut dsa_area) -> *mut TIDBitmap;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_free(tbm: *mut TIDBitmap);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_free_shared_area(dsa: *mut dsa_area, dp: dsa_pointer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_add_tuples(
        tbm: *mut TIDBitmap,
        tids: ItemPointer,
        ntids: ::std::os::raw::c_int,
        recheck: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_add_page(tbm: *mut TIDBitmap, pageno: BlockNumber);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_union(a: *mut TIDBitmap, b: *const TIDBitmap);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_intersect(a: *mut TIDBitmap, b: *const TIDBitmap);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_is_empty(tbm: *const TIDBitmap) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_begin_iterate(tbm: *mut TIDBitmap) -> *mut TBMIterator;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_prepare_shared_iterate(tbm: *mut TIDBitmap) -> dsa_pointer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_iterate(iterator: *mut TBMIterator) -> *mut TBMIterateResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_shared_iterate(iterator: *mut TBMSharedIterator) -> *mut TBMIterateResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_end_iterate(iterator: *mut TBMIterator);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_end_shared_iterate(iterator: *mut TBMSharedIterator);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tbm_attach_shared_iterate(dsa: *mut dsa_area, dp: dsa_pointer)
        -> *mut TBMSharedIterator;
}
#[pgx_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,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct ConditionVariable {
    pub mutex: slock_t,
    pub wakeup: proclist_head,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConditionVariableInit(cv: *mut ConditionVariable);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConditionVariableSleep(cv: *mut ConditionVariable, wait_event_info: uint32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConditionVariableCancelSleep();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConditionVariablePrepareToSleep(cv: *mut ConditionVariable);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConditionVariableSignal(cv: *mut ConditionVariable);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConditionVariableBroadcast(cv: *mut ConditionVariable);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PartitionRoutingInfo {
    _unused: [u8; 0],
}
#[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 tag: Node,
    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::<Self>::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_Unique: bool,
    pub ii_ReadyForInserts: bool,
    pub ii_Concurrent: bool,
    pub ii_BrokenHotChain: 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ExprContextCallbackFunction = ::std::option::Option<unsafe extern "C" fn(arg: Datum)>;
#[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::<Self>::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::<Self>::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::<Self>::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::<Self>::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,
    pub jf_junkAttNo: AttrNumber,
}
impl Default for JunkFilter {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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_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_WithCheckOptions: *mut List,
    pub ri_WithCheckOptionExprs: *mut List,
    pub ri_ConstraintExprs: *mut *mut ExprState,
    pub ri_GeneratedExprs: *mut *mut ExprState,
    pub ri_junkFilter: *mut JunkFilter,
    pub ri_returningList: *mut List,
    pub ri_projectReturning: *mut ProjectionInfo,
    pub ri_onConflictArbiterIndexes: *mut List,
    pub ri_onConflict: *mut OnConflictSetState,
    pub ri_PartitionCheck: *mut List,
    pub ri_PartitionCheckExpr: *mut ExprState,
    pub ri_RootResultRelInfo: *mut ResultRelInfo,
    pub ri_PartitionInfo: *mut PartitionRoutingInfo,
    pub ri_CopyMultiInsertBuffer: *mut CopyMultiInsertBuffer,
}
impl Default for ResultRelInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_array: *mut *mut RangeTblEntry,
    pub es_range_table_size: Index,
    pub es_relations: *mut Relation,
    pub es_rowmarks: *mut *mut ExecRowMark,
    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 ResultRelInfo,
    pub es_num_result_relations: ::std::os::raw::c_int,
    pub es_result_relation_info: *mut ResultRelInfo,
    pub es_root_result_relations: *mut ResultRelInfo,
    pub es_num_root_result_relations: ::std::os::raw::c_int,
    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_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,
}
impl Default for EState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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::<Self>::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,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_create(
        ctx: MemoryContext,
        nelements: uint32,
        private_data: *mut ::std::os::raw::c_void,
    ) -> *mut tuplehash_hash;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_destroy(tb: *mut tuplehash_hash);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_reset(tb: *mut tuplehash_hash);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_grow(tb: *mut tuplehash_hash, newsize: uint64);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_insert(
        tb: *mut tuplehash_hash,
        key: MinimalTuple,
        found: *mut bool,
    ) -> *mut TupleHashEntryData;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_lookup(tb: *mut tuplehash_hash, key: MinimalTuple) -> *mut TupleHashEntryData;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_delete(tb: *mut tuplehash_hash, key: MinimalTuple) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_start_iterate(tb: *mut tuplehash_hash, iter: *mut tuplehash_iterator);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_start_iterate_at(
        tb: *mut tuplehash_hash,
        iter: *mut tuplehash_iterator,
        at: uint32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tuplehash_iterate(
        tb: *mut tuplehash_hash,
        iter: *mut tuplehash_iterator,
    ) -> *mut TupleHashEntryData;
}
#[pgx_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::<Self>::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 AggrefExprState {
    pub type_: NodeTag,
    pub aggref: *mut Aggref,
    pub aggno: ::std::os::raw::c_int,
}
impl Default for AggrefExprState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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::<Self>::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::<Self>::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 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,
    pub numCols: ::std::os::raw::c_int,
}
impl Default for SubPlanState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AlternativeSubPlanState {
    pub type_: NodeTag,
    pub subplan: *mut AlternativeSubPlan,
    pub subplans: *mut List,
    pub active: ::std::os::raw::c_int,
}
impl Default for AlternativeSubPlanState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ExecProcNodeMtd =
    ::std::option::Option<unsafe extern "C" fn(pstate: *mut PlanState) -> *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 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::<Self>::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 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 recheckplanstate: *mut PlanState,
}
impl Default for EPQState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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_plans: *mut *mut PlanState,
    pub mt_nplans: ::std::os::raw::c_int,
    pub mt_whichplan: ::std::os::raw::c_int,
    pub mt_scans: *mut *mut TupleTableSlot,
    pub resultRelInfo: *mut ResultRelInfo,
    pub rootResultRelInfo: *mut ResultRelInfo,
    pub mt_arowmarks: *mut *mut List,
    pub mt_epqstate: EPQState,
    pub fireBSTriggers: bool,
    pub mt_excludedtlist: *mut List,
    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_per_subplan_tupconv_maps: *mut *mut TupleConversionMap,
}
impl Default for ModifyTableState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_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: *mut Bitmapset,
    pub choose_next_subplan:
        ::std::option::Option<unsafe extern "C" fn(arg1: *mut AppendState) -> bool>,
}
impl Default for AppendState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_noopscan: 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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 array_len: ::std::os::raw::c_int,
    pub curr_idx: ::std::os::raw::c_int,
    pub exprstatelists: *mut *mut List,
}
impl Default for ValuesScanState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 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::<Self>::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,
}
impl Default for CustomScanState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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<TuplesortInstrumentation>,
}
impl Default for SharedSortInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 shared_info: *mut SharedSortInfo,
}
impl Default for SortState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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 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 perhash: AggStatePerHash,
    pub hash_pergroup: *mut AggStatePerGroup,
    pub all_pergroups: *mut AggStatePerGroup,
    pub combinedproj: *mut ProjectionInfo,
}
impl Default for AggState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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;
#[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 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 all_first: bool,
    pub all_done: 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::<Self>::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::<Self>::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::<Self>::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::<Self>::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: usize,
}
#[repr(C)]
#[derive(Debug, Default)]
pub struct SharedHashInfo {
    pub num_workers: ::std::os::raw::c_int,
    pub hinstrument: __IncompleteArrayField<HashInstrumentation>,
}
#[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::<Self>::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::<Self>::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::<Self>::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_SUBPLANEOF: LimitStateCond = 4;
pub const LimitStateCond_LIMIT_WINDOWEND: LimitStateCond = 5;
pub const LimitStateCond_LIMIT_WINDOWSTART: LimitStateCond = 6;
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 offset: int64,
    pub count: int64,
    pub noCount: bool,
    pub lstate: LimitStateCond,
    pub position: int64,
    pub subSlot: *mut TupleTableSlot,
}
impl Default for LimitState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
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<unsafe extern "C" fn(self_: *mut DestReceiver)>,
    pub rDestroy: ::std::option::Option<unsafe extern "C" fn(self_: *mut DestReceiver)>,
    pub mydest: CommandDest,
}
impl Default for _DestReceiver {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static mut None_Receiver: *mut DestReceiver;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BeginCommand(commandTag: *const ::std::os::raw::c_char, dest: CommandDest);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateDestReceiver(dest: CommandDest) -> *mut DestReceiver;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EndCommand(commandTag: *const ::std::os::raw::c_char, dest: CommandDest);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn NullCommand(dest: CommandDest);
}
#[pgx_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeQueryDesc(qdesc: *mut QueryDesc);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct Value {
    pub type_: NodeTag,
    pub val: Value_ValUnion,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union Value_ValUnion {
    pub ival: ::std::os::raw::c_int,
    pub str_: *mut ::std::os::raw::c_char,
}
impl Default for Value_ValUnion {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
impl Default for Value {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeInteger(i: ::std::os::raw::c_int) -> *mut Value;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeFloat(numericStr: *mut ::std::os::raw::c_char) -> *mut Value;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeString(str_: *mut ::std::os::raw::c_char) -> *mut Value;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeBitString(str_: *mut ::std::os::raw::c_char) -> *mut Value;
}
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 type AclMode = uint32;
#[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 cteList: *mut List,
    pub rtable: *mut List,
    pub jointree: *mut FromExpr,
    pub targetList: *mut List,
    pub override_: OverridingKind,
    pub onConflict: *mut OnConflictExpr,
    pub returningList: *mut List,
    pub groupClause: *mut List,
    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 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[doc = "\tSupporting data structures for Parse Trees"]
#[doc = ""]
#[doc = "\tMost of these node types appear in raw parsetrees output by the grammar,"]
#[doc = "\tand get transformed to something else by the analyzer.  A few of them"]
#[doc = "\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::<Self>::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::<Self>::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::<Self>::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_OF: A_Expr_Kind = 6;
pub const A_Expr_Kind_AEXPR_IN: A_Expr_Kind = 7;
pub const A_Expr_Kind_AEXPR_LIKE: A_Expr_Kind = 8;
pub const A_Expr_Kind_AEXPR_ILIKE: A_Expr_Kind = 9;
pub const A_Expr_Kind_AEXPR_SIMILAR: A_Expr_Kind = 10;
pub const A_Expr_Kind_AEXPR_BETWEEN: A_Expr_Kind = 11;
pub const A_Expr_Kind_AEXPR_NOT_BETWEEN: A_Expr_Kind = 12;
pub const A_Expr_Kind_AEXPR_BETWEEN_SYM: A_Expr_Kind = 13;
pub const A_Expr_Kind_AEXPR_NOT_BETWEEN_SYM: A_Expr_Kind = 14;
pub const A_Expr_Kind_AEXPR_PAREN: A_Expr_Kind = 15;
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::<Self>::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: Value,
    pub location: ::std::os::raw::c_int,
}
impl Default for A_Const {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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_USER: RoleSpecType = 1;
pub const RoleSpecType_ROLESPEC_SESSION_USER: RoleSpecType = 2;
pub const RoleSpecType_ROLESPEC_PUBLIC: RoleSpecType = 3;
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::<Self>::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 agg_within_group: bool,
    pub agg_star: bool,
    pub agg_distinct: bool,
    pub func_variadic: bool,
    pub over: *mut WindowDef,
    pub location: ::std::os::raw::c_int,
}
impl Default for FuncCall {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 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 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::<Self>::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::<Self>::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_CONSTRAINTS: TableLikeOption = 2;
pub const TableLikeOption_CREATE_TABLE_LIKE_DEFAULTS: TableLikeOption = 4;
pub const TableLikeOption_CREATE_TABLE_LIKE_GENERATED: TableLikeOption = 8;
pub const TableLikeOption_CREATE_TABLE_LIKE_IDENTITY: TableLikeOption = 16;
pub const TableLikeOption_CREATE_TABLE_LIKE_INDEXES: TableLikeOption = 32;
pub const TableLikeOption_CREATE_TABLE_LIKE_STATISTICS: TableLikeOption = 64;
pub const TableLikeOption_CREATE_TABLE_LIKE_STORAGE: TableLikeOption = 128;
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 ordering: SortByDir,
    pub nulls_ordering: SortByNulls,
}
impl Default for IndexElem {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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 location: ::std::os::raw::c_int,
}
impl Default for XmlSerialize {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PartitionSpec {
    pub type_: NodeTag,
    pub strategy: *mut ::std::os::raw::c_char,
    pub partParams: *mut List,
    pub location: ::std::os::raw::c_int,
}
impl Default for PartitionSpec {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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,
}
impl Default for PartitionCmd {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 subquery: *mut Query,
    pub security_barrier: bool,
    pub jointype: JoinType,
    pub joinaliasvars: *mut List,
    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: f64,
    pub alias: *mut Alias,
    pub eref: *mut Alias,
    pub lateral: bool,
    pub inh: bool,
    pub inFromCl: bool,
    pub requiredPerms: AclMode,
    pub checkAsUser: Oid,
    pub selectedCols: *mut Bitmapset,
    pub insertedCols: *mut Bitmapset,
    pub updatedCols: *mut Bitmapset,
    pub extraUpdatedCols: *mut Bitmapset,
    pub securityQuals: *mut List,
}
impl Default for RangeTblEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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 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::<Self>::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::<Self>::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::<Self>::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 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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 CommonTableExpr {
    pub type_: NodeTag,
    pub ctename: *mut ::std::os::raw::c_char,
    pub aliascolnames: *mut List,
    pub ctematerialized: CTEMaterialize,
    pub ctequery: *mut Node,
    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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 havingClause: *mut Node,
    pub windowClause: *mut List,
    pub valuesLists: *mut List,
    pub sortClause: *mut List,
    pub limitOffset: *mut Node,
    pub limitCount: *mut Node,
    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::<Self>::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::<Self>::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_POLICY: ObjectType = 27;
pub const ObjectType_OBJECT_PROCEDURE: ObjectType = 28;
pub const ObjectType_OBJECT_PUBLICATION: ObjectType = 29;
pub const ObjectType_OBJECT_PUBLICATION_REL: ObjectType = 30;
pub const ObjectType_OBJECT_ROLE: ObjectType = 31;
pub const ObjectType_OBJECT_ROUTINE: ObjectType = 32;
pub const ObjectType_OBJECT_RULE: ObjectType = 33;
pub const ObjectType_OBJECT_SCHEMA: ObjectType = 34;
pub const ObjectType_OBJECT_SEQUENCE: ObjectType = 35;
pub const ObjectType_OBJECT_SUBSCRIPTION: ObjectType = 36;
pub const ObjectType_OBJECT_STATISTIC_EXT: ObjectType = 37;
pub const ObjectType_OBJECT_TABCONSTRAINT: ObjectType = 38;
pub const ObjectType_OBJECT_TABLE: ObjectType = 39;
pub const ObjectType_OBJECT_TABLESPACE: ObjectType = 40;
pub const ObjectType_OBJECT_TRANSFORM: ObjectType = 41;
pub const ObjectType_OBJECT_TRIGGER: ObjectType = 42;
pub const ObjectType_OBJECT_TSCONFIGURATION: ObjectType = 43;
pub const ObjectType_OBJECT_TSDICTIONARY: ObjectType = 44;
pub const ObjectType_OBJECT_TSPARSER: ObjectType = 45;
pub const ObjectType_OBJECT_TSTEMPLATE: ObjectType = 46;
pub const ObjectType_OBJECT_TYPE: ObjectType = 47;
pub const ObjectType_OBJECT_USER_MAPPING: ObjectType = 48;
pub const ObjectType_OBJECT_VIEW: ObjectType = 49;
#[doc = "\t\tOther Statements (no optimizations required)"]
#[doc = ""]
#[doc = "\t\tThese are not touched by parser/analyze.c except to put them into"]
#[doc = "\t\tthe utilityStmt field of a Query.  This is eventually passed to"]
#[doc = "\t\tProcessUtility (by-passing rewriting and planning).  Some of the"]
#[doc = "\t\tstatements do need attention from parse analysis, and this is"]
#[doc = "\t\tdone by routines in parser/parse_utilcmd.c after ProcessUtility"]
#[doc = "\t\treceives the command for execution."]
#[doc = "\t\tDECLARE CURSOR, EXPLAIN, and CREATE TABLE AS are special cases:"]
#[doc = "\t\tthey contain optimizable statements, which get processed normally"]
#[doc = "\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::<Self>::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 relkind: ObjectType,
    pub missing_ok: bool,
}
impl Default for AlterTableStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_AddColumnRecurse: AlterTableType = 1;
pub const AlterTableType_AT_AddColumnToView: AlterTableType = 2;
pub const AlterTableType_AT_ColumnDefault: AlterTableType = 3;
pub const AlterTableType_AT_DropNotNull: AlterTableType = 4;
pub const AlterTableType_AT_SetNotNull: AlterTableType = 5;
pub const AlterTableType_AT_CheckNotNull: AlterTableType = 6;
pub const AlterTableType_AT_SetStatistics: AlterTableType = 7;
pub const AlterTableType_AT_SetOptions: AlterTableType = 8;
pub const AlterTableType_AT_ResetOptions: AlterTableType = 9;
pub const AlterTableType_AT_SetStorage: AlterTableType = 10;
pub const AlterTableType_AT_DropColumn: AlterTableType = 11;
pub const AlterTableType_AT_DropColumnRecurse: AlterTableType = 12;
pub const AlterTableType_AT_AddIndex: AlterTableType = 13;
pub const AlterTableType_AT_ReAddIndex: AlterTableType = 14;
pub const AlterTableType_AT_AddConstraint: AlterTableType = 15;
pub const AlterTableType_AT_AddConstraintRecurse: 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_ValidateConstraintRecurse: AlterTableType = 21;
pub const AlterTableType_AT_ProcessedConstraint: AlterTableType = 22;
pub const AlterTableType_AT_AddIndexConstraint: AlterTableType = 23;
pub const AlterTableType_AT_DropConstraint: AlterTableType = 24;
pub const AlterTableType_AT_DropConstraintRecurse: AlterTableType = 25;
pub const AlterTableType_AT_ReAddComment: AlterTableType = 26;
pub const AlterTableType_AT_AlterColumnType: AlterTableType = 27;
pub const AlterTableType_AT_AlterColumnGenericOptions: AlterTableType = 28;
pub const AlterTableType_AT_ChangeOwner: AlterTableType = 29;
pub const AlterTableType_AT_ClusterOn: AlterTableType = 30;
pub const AlterTableType_AT_DropCluster: AlterTableType = 31;
pub const AlterTableType_AT_SetLogged: AlterTableType = 32;
pub const AlterTableType_AT_SetUnLogged: AlterTableType = 33;
pub const AlterTableType_AT_DropOids: AlterTableType = 34;
pub const AlterTableType_AT_SetTableSpace: AlterTableType = 35;
pub const AlterTableType_AT_SetRelOptions: AlterTableType = 36;
pub const AlterTableType_AT_ResetRelOptions: AlterTableType = 37;
pub const AlterTableType_AT_ReplaceRelOptions: AlterTableType = 38;
pub const AlterTableType_AT_EnableTrig: AlterTableType = 39;
pub const AlterTableType_AT_EnableAlwaysTrig: AlterTableType = 40;
pub const AlterTableType_AT_EnableReplicaTrig: AlterTableType = 41;
pub const AlterTableType_AT_DisableTrig: AlterTableType = 42;
pub const AlterTableType_AT_EnableTrigAll: AlterTableType = 43;
pub const AlterTableType_AT_DisableTrigAll: AlterTableType = 44;
pub const AlterTableType_AT_EnableTrigUser: AlterTableType = 45;
pub const AlterTableType_AT_DisableTrigUser: AlterTableType = 46;
pub const AlterTableType_AT_EnableRule: AlterTableType = 47;
pub const AlterTableType_AT_EnableAlwaysRule: AlterTableType = 48;
pub const AlterTableType_AT_EnableReplicaRule: AlterTableType = 49;
pub const AlterTableType_AT_DisableRule: AlterTableType = 50;
pub const AlterTableType_AT_AddInherit: AlterTableType = 51;
pub const AlterTableType_AT_DropInherit: AlterTableType = 52;
pub const AlterTableType_AT_AddOf: AlterTableType = 53;
pub const AlterTableType_AT_DropOf: AlterTableType = 54;
pub const AlterTableType_AT_ReplicaIdentity: AlterTableType = 55;
pub const AlterTableType_AT_EnableRowSecurity: AlterTableType = 56;
pub const AlterTableType_AT_DisableRowSecurity: AlterTableType = 57;
pub const AlterTableType_AT_ForceRowSecurity: AlterTableType = 58;
pub const AlterTableType_AT_NoForceRowSecurity: AlterTableType = 59;
pub const AlterTableType_AT_GenericOptions: AlterTableType = 60;
pub const AlterTableType_AT_AttachPartition: AlterTableType = 61;
pub const AlterTableType_AT_DetachPartition: AlterTableType = 62;
pub const AlterTableType_AT_AddIdentity: AlterTableType = 63;
pub const AlterTableType_AT_SetIdentity: AlterTableType = 64;
pub const AlterTableType_AT_DropIdentity: AlterTableType = 65;
pub const AlterTableType_AT_CookedColumnDefault: AlterTableType = 66;
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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 behavior: DropBehavior,
}
impl Default for GrantStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 args_unspecified: bool,
}
impl Default for ObjectWithArgs {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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 admin_opt: bool,
    pub grantor: *mut RoleSpec,
    pub behavior: DropBehavior,
}
impl Default for GrantRoleStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 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 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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 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 isconstraint: bool,
    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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 oldNode: Oid,
    pub unique: 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::<Self>::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 if_not_exists: bool,
}
impl Default for CreateStatsStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
}
impl Default for CreateFunctionStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 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::<Self>::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::<Self>::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::<Self>::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::<Self>::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,
}
impl Default for CallStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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 Value,
}
impl Default for AlterObjectDependsStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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,
}
impl Default for DropdbStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const ClusterOption_CLUOPT_RECHECK: ClusterOption = 1;
pub const ClusterOption_CLUOPT_VERBOSE: ClusterOption = 2;
pub type ClusterOption = ::std::os::raw::c_uint;
#[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 options: ::std::os::raw::c_int,
}
impl Default for ClusterStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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 relkind: ObjectType,
    pub is_select_into: bool,
    pub if_not_exists: bool,
}
impl Default for CreateTableAsStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 options: ::std::os::raw::c_int,
    pub concurrent: bool,
}
impl Default for ReindexStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 tables: *mut List,
    pub for_all_tables: bool,
}
impl Default for CreatePublicationStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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 tables: *mut List,
    pub for_all_tables: bool,
    pub tableAction: DefElemAction,
}
impl Default for AlterPublicationStmt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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_PUBLICATION: AlterSubscriptionType = 2;
pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_REFRESH: AlterSubscriptionType = 3;
pub const AlterSubscriptionType_ALTER_SUBSCRIPTION_ENABLED: AlterSubscriptionType = 4;
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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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,
    ),
>;
#[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<
        unsafe extern "C" fn(context: MemoryContext, pointer: *mut ::std::os::raw::c_void),
    >,
    pub realloc: ::std::option::Option<
        unsafe extern "C" fn(
            context: MemoryContext,
            pointer: *mut ::std::os::raw::c_void,
            size: Size,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub reset: ::std::option::Option<unsafe extern "C" fn(context: MemoryContext)>,
    pub delete_context: ::std::option::Option<unsafe extern "C" fn(context: MemoryContext)>,
    pub get_chunk_space: ::std::option::Option<
        unsafe extern "C" fn(context: MemoryContext, pointer: *mut ::std::os::raw::c_void) -> Size,
    >,
    pub is_empty: ::std::option::Option<unsafe extern "C" fn(context: MemoryContext) -> bool>,
    pub stats: ::std::option::Option<
        unsafe extern "C" fn(
            context: MemoryContext,
            printfunc: MemoryStatsPrintFunc,
            passthru: *mut ::std::os::raw::c_void,
            totals: *mut MemoryContextCounters,
        ),
    >,
    pub check: ::std::option::Option<unsafe extern "C" fn(context: MemoryContext)>,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MemoryContextData {
    pub type_: NodeTag,
    pub isReset: bool,
    pub allowInCritSection: bool,
    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::<Self>::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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextInit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextReset(context: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextDelete(context: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextResetOnly(context: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextResetChildren(context: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextDeleteChildren(context: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextSetIdentifier(context: MemoryContext, id: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextSetParent(context: MemoryContext, new_parent: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetMemoryChunkSpace(pointer: *mut ::std::os::raw::c_void) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextGetParent(context: MemoryContext) -> MemoryContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextIsEmpty(context: MemoryContext) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextStats(context: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextStatsDetail(context: MemoryContext, max_children: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextAllowInCriticalSection(context: MemoryContext, allow: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextCheck(context: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextContains(
        context: MemoryContext,
        pointer: *mut ::std::os::raw::c_void,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MemoryContextCreate(
        node: MemoryContext,
        tag: NodeTag,
        methods: *const MemoryContextMethods,
        parent: MemoryContext,
        name: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AllocSetContextCreateInternal(
        parent: MemoryContext,
        name: *const ::std::os::raw::c_char,
        minContextSize: Size,
        initBlockSize: Size,
        maxBlockSize: Size,
    ) -> MemoryContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SlabContextCreate(
        parent: MemoryContext,
        name: *const ::std::os::raw::c_char,
        blockSize: Size,
        chunkSize: Size,
    ) -> MemoryContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GenerationContextCreate(
        parent: MemoryContext,
        name: *const ::std::os::raw::c_char,
        blockSize: 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<unsafe extern "C" fn(queryDesc: *mut QueryDesc)>;
extern "C" {
    pub static mut ExecutorFinish_hook: ExecutorFinish_hook_type;
}
pub type ExecutorEnd_hook_type =
    ::std::option::Option<unsafe extern "C" fn(queryDesc: *mut QueryDesc)>;
extern "C" {
    pub static mut ExecutorEnd_hook: ExecutorEnd_hook_type;
}
pub type ExecutorCheckPerms_hook_type =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut List, arg2: bool) -> bool>;
extern "C" {
    pub static mut ExecutorCheckPerms_hook: ExecutorCheckPerms_hook_type;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecReScan(node: *mut PlanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecMarkPos(node: *mut PlanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecRestrPos(node: *mut PlanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecSupportsMarkRestore(pathnode: *mut Path) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecSupportsBackwardScan(node: *mut Plan) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecMaterializesOutput(plantype: NodeTag) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn execCurrentOf(
        cexpr: *mut CurrentOfExpr,
        econtext: *mut ExprContext,
        table_oid: Oid,
        current_tid: ItemPointer,
    ) -> bool;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupTupleHashEntry(
        hashtable: TupleHashTable,
        slot: *mut TupleTableSlot,
        isnew: *mut bool,
    ) -> TupleHashEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FindTupleHashEntry(
        hashtable: TupleHashTable,
        slot: *mut TupleTableSlot,
        eqcomp: *mut ExprState,
        hashfunctions: *mut FmgrInfo,
    ) -> TupleHashEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResetTupleHashTable(hashtable: TupleHashTable);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitJunkFilter(targetList: *mut List, slot: *mut TupleTableSlot) -> *mut JunkFilter;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitJunkFilterInsertion(
        targetList: *mut List,
        cleanTupType: TupleDesc,
        slot: *mut TupleTableSlot,
    ) -> *mut JunkFilter;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitJunkFilterConversion(
        targetList: *mut List,
        cleanTupType: TupleDesc,
        slot: *mut TupleTableSlot,
    ) -> *mut JunkFilter;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecFindJunkAttribute(
        junkfilter: *mut JunkFilter,
        attrName: *const ::std::os::raw::c_char,
    ) -> AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecFindJunkAttributeInTlist(
        targetlist: *mut List,
        attrName: *const ::std::os::raw::c_char,
    ) -> AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetJunkAttribute(
        slot: *mut TupleTableSlot,
        attno: AttrNumber,
        isNull: *mut bool,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecFilterJunk(
        junkfilter: *mut JunkFilter,
        slot: *mut TupleTableSlot,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecutorStart(queryDesc: *mut QueryDesc, eflags: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn standard_ExecutorStart(queryDesc: *mut QueryDesc, eflags: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecutorRun(
        queryDesc: *mut QueryDesc,
        direction: ScanDirection,
        count: uint64,
        execute_once: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn standard_ExecutorRun(
        queryDesc: *mut QueryDesc,
        direction: ScanDirection,
        count: uint64,
        execute_once: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecutorFinish(queryDesc: *mut QueryDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn standard_ExecutorFinish(queryDesc: *mut QueryDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecutorEnd(queryDesc: *mut QueryDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn standard_ExecutorEnd(queryDesc: *mut QueryDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecutorRewind(queryDesc: *mut QueryDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecCheckRTPerms(rangeTable: *mut List, ereport_on_violation: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckValidResultRel(resultRelInfo: *mut ResultRelInfo, operation: CmdType);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetTriggerResultRel(estate: *mut EState, relid: Oid) -> *mut ResultRelInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecCleanUpTriggerState(estate: *mut EState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecConstraints(
        resultRelInfo: *mut ResultRelInfo,
        slot: *mut TupleTableSlot,
        estate: *mut EState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecPartitionCheck(
        resultRelInfo: *mut ResultRelInfo,
        slot: *mut TupleTableSlot,
        estate: *mut EState,
        emitError: bool,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecPartitionCheckEmitError(
        resultRelInfo: *mut ResultRelInfo,
        slot: *mut TupleTableSlot,
        estate: *mut EState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecWithCheckOptions(
        kind: WCOKind,
        resultRelInfo: *mut ResultRelInfo,
        slot: *mut TupleTableSlot,
        estate: *mut EState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecUpdateLockMode(estate: *mut EState, relinfo: *mut ResultRelInfo) -> LockTupleMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecFindRowMark(estate: *mut EState, rti: Index, missing_ok: bool) -> *mut ExecRowMark;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBuildAuxRowMark(erm: *mut ExecRowMark, targetlist: *mut List)
        -> *mut ExecAuxRowMark;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EvalPlanQual(
        epqstate: *mut EPQState,
        relation: Relation,
        rti: Index,
        testslot: *mut TupleTableSlot,
    ) -> *mut TupleTableSlot;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EvalPlanQualSetPlan(epqstate: *mut EPQState, subplan: *mut Plan, auxrowmarks: *mut List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EvalPlanQualSlot(
        epqstate: *mut EPQState,
        relation: Relation,
        rti: Index,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EvalPlanQualFetchRowMark(
        epqstate: *mut EPQState,
        rti: Index,
        slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EvalPlanQualNext(epqstate: *mut EPQState) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EvalPlanQualBegin(epqstate: *mut EPQState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EvalPlanQualEnd(epqstate: *mut EPQState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitNode(
        node: *mut Plan,
        estate: *mut EState,
        eflags: ::std::os::raw::c_int,
    ) -> *mut PlanState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecSetExecProcNode(node: *mut PlanState, function: ExecProcNodeMtd);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MultiExecProcNode(node: *mut PlanState) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecEndNode(node: *mut PlanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecShutdownNode(node: *mut PlanState) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecSetTupleBound(tuples_needed: int64, child_node: *mut PlanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitExpr(node: *mut Expr, parent: *mut PlanState) -> *mut ExprState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitExprWithParams(node: *mut Expr, ext_params: ParamListInfo) -> *mut ExprState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitQual(qual: *mut List, parent: *mut PlanState) -> *mut ExprState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitCheck(qual: *mut List, parent: *mut PlanState) -> *mut ExprState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitExprList(nodes: *mut List, parent: *mut PlanState) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBuildAggTrans(
        aggstate: *mut AggState,
        phase: *mut AggStatePerPhaseData,
        doSort: bool,
        doHash: bool,
    ) -> *mut ExprState;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBuildProjectionInfo(
        targetList: *mut List,
        econtext: *mut ExprContext,
        slot: *mut TupleTableSlot,
        parent: *mut PlanState,
        inputDesc: TupleDesc,
    ) -> *mut ProjectionInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBuildProjectionInfoExt(
        targetList: *mut List,
        econtext: *mut ExprContext,
        slot: *mut TupleTableSlot,
        assignJunkEntries: bool,
        parent: *mut PlanState,
        inputDesc: TupleDesc,
    ) -> *mut ProjectionInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecPrepareExpr(node: *mut Expr, estate: *mut EState) -> *mut ExprState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecPrepareQual(qual: *mut List, estate: *mut EState) -> *mut ExprState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecPrepareCheck(qual: *mut List, estate: *mut EState) -> *mut ExprState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecPrepareExprList(nodes: *mut List, estate: *mut EState) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecCheck(state: *mut ExprState, context: *mut ExprContext) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitTableFunctionResult(
        expr: *mut Expr,
        econtext: *mut ExprContext,
        parent: *mut PlanState,
    ) -> *mut SetExprState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecMakeTableFunctionResult(
        setexpr: *mut SetExprState,
        econtext: *mut ExprContext,
        argContext: MemoryContext,
        expectedDesc: TupleDesc,
        randomAccess: bool,
    ) -> *mut Tuplestorestate;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitFunctionResultSet(
        expr: *mut Expr,
        econtext: *mut ExprContext,
        parent: *mut PlanState,
    ) -> *mut SetExprState;
}
#[pgx_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<unsafe extern "C" fn(node: *mut ScanState) -> *mut TupleTableSlot>;
pub type ExecScanRecheckMtd = ::std::option::Option<
    unsafe extern "C" fn(node: *mut ScanState, slot: *mut TupleTableSlot) -> bool,
>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecScan(
        node: *mut ScanState,
        accessMtd: ExecScanAccessMtd,
        recheckMtd: ExecScanRecheckMtd,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecAssignScanProjectionInfo(node: *mut ScanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecAssignScanProjectionInfoWithVarno(node: *mut ScanState, varno: Index);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecScanReScan(node: *mut ScanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitResultTypeTL(planstate: *mut PlanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitResultSlot(planstate: *mut PlanState, tts_ops: *const TupleTableSlotOps);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitResultTupleSlotTL(planstate: *mut PlanState, tts_ops: *const TupleTableSlotOps);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitScanTupleSlot(
        estate: *mut EState,
        scanstate: *mut ScanState,
        tupleDesc: TupleDesc,
        tts_ops: *const TupleTableSlotOps,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitExtraTupleSlot(
        estate: *mut EState,
        tupledesc: TupleDesc,
        tts_ops: *const TupleTableSlotOps,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitNullTupleSlot(
        estate: *mut EState,
        tupType: TupleDesc,
        tts_ops: *const TupleTableSlotOps,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecTypeFromTL(targetList: *mut List) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecCleanTypeFromTL(targetList: *mut List) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecTypeFromExprList(exprList: *mut List) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecTypeSetColNames(typeInfo: TupleDesc, namesList: *mut List);
}
#[pgx_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn begin_tup_output_tupdesc(
        dest: *mut DestReceiver,
        tupdesc: TupleDesc,
        tts_ops: *const TupleTableSlotOps,
    ) -> *mut TupOutputState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn do_tup_output(tstate: *mut TupOutputState, values: *mut Datum, isnull: *mut bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn do_text_output_multiline(
        tstate: *mut TupOutputState,
        txt: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn end_tup_output(tstate: *mut TupOutputState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateExecutorState() -> *mut EState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeExecutorState(estate: *mut EState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateExprContext(estate: *mut EState) -> *mut ExprContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateStandaloneExprContext() -> *mut ExprContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeExprContext(econtext: *mut ExprContext, isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReScanExprContext(econtext: *mut ExprContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MakePerTupleExprContext(estate: *mut EState) -> *mut ExprContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecAssignExprContext(estate: *mut EState, planstate: *mut PlanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetResultType(planstate: *mut PlanState) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetResultSlotOps(
        planstate: *mut PlanState,
        isfixed: *mut bool,
    ) -> *const TupleTableSlotOps;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecAssignProjectionInfo(planstate: *mut PlanState, inputDesc: TupleDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecConditionalAssignProjectionInfo(
        planstate: *mut PlanState,
        inputDesc: TupleDesc,
        varno: Index,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecFreeExprContext(planstate: *mut PlanState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecAssignScanType(scanstate: *mut ScanState, tupDesc: TupleDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecCreateScanSlotFromOuterPlan(
        estate: *mut EState,
        scanstate: *mut ScanState,
        tts_ops: *const TupleTableSlotOps,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecRelationIsTargetRelation(estate: *mut EState, scanrelid: Index) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecOpenScanRelation(
        estate: *mut EState,
        scanrelid: Index,
        eflags: ::std::os::raw::c_int,
    ) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInitRangeTable(estate: *mut EState, rangeTable: *mut List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetRangeTableRelation(estate: *mut EState, rti: Index) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn executor_errposition(
        estate: *mut EState,
        location: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterExprContextCallback(
        econtext: *mut ExprContext,
        function: ExprContextCallbackFunction,
        arg: Datum,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UnregisterExprContextCallback(
        econtext: *mut ExprContext,
        function: ExprContextCallbackFunction,
        arg: Datum,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetAttributeByName(
        tuple: HeapTupleHeader,
        attname: *const ::std::os::raw::c_char,
        isNull: *mut bool,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetAttributeByNum(
        tuple: HeapTupleHeader,
        attrno: AttrNumber,
        isNull: *mut bool,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecTargetListLength(targetlist: *mut List) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecCleanTargetListLength(targetlist: *mut List) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetTriggerOldSlot(
        estate: *mut EState,
        relInfo: *mut ResultRelInfo,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetTriggerNewSlot(
        estate: *mut EState,
        relInfo: *mut ResultRelInfo,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetReturningSlot(
        estate: *mut EState,
        relInfo: *mut ResultRelInfo,
    ) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetInsertedCols(relinfo: *mut ResultRelInfo, estate: *mut EState) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetUpdatedCols(relinfo: *mut ResultRelInfo, estate: *mut EState) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetExtraUpdatedCols(
        relinfo: *mut ResultRelInfo,
        estate: *mut EState,
    ) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecGetAllUpdatedCols(
        relinfo: *mut ResultRelInfo,
        estate: *mut EState,
    ) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecOpenIndices(resultRelInfo: *mut ResultRelInfo, speculative: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecCloseIndices(resultRelInfo: *mut ResultRelInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecInsertIndexTuples(
        slot: *mut TupleTableSlot,
        estate: *mut EState,
        noDupErr: bool,
        specConflict: *mut bool,
        arbiterIndexes: *mut List,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecCheckIndexConstraints(
        slot: *mut TupleTableSlot,
        estate: *mut EState,
        conflictTid: ItemPointer,
        arbiterIndexes: *mut List,
    ) -> bool;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationFindReplTupleByIndex(
        rel: Relation,
        idxoid: Oid,
        lockmode: LockTupleMode,
        searchslot: *mut TupleTableSlot,
        outslot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationFindReplTupleSeq(
        rel: Relation,
        lockmode: LockTupleMode,
        searchslot: *mut TupleTableSlot,
        outslot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecSimpleRelationInsert(estate: *mut EState, slot: *mut TupleTableSlot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecSimpleRelationUpdate(
        estate: *mut EState,
        epqstate: *mut EPQState,
        searchslot: *mut TupleTableSlot,
        slot: *mut TupleTableSlot,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecSimpleRelationDelete(
        estate: *mut EState,
        epqstate: *mut EPQState,
        searchslot: *mut TupleTableSlot,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckCmdReplicaIdentity(rel: Relation, cmd: CmdType);
}
#[pgx_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,
    );
}
#[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::<Self>::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::<Self>::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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_call_result_type(
        fcinfo: FunctionCallInfo,
        resultTypeId: *mut Oid,
        resultTupleDesc: *mut TupleDesc,
    ) -> TypeFuncClass;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_expr_result_type(
        expr: *mut Node,
        resultTypeId: *mut Oid,
        resultTupleDesc: *mut TupleDesc,
    ) -> TypeFuncClass;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_result_type(
        functionId: Oid,
        resultTypeId: *mut Oid,
        resultTupleDesc: *mut TupleDesc,
    ) -> TypeFuncClass;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_expr_result_tupdesc(expr: *mut Node, noError: bool) -> TupleDesc;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_trftypes(
        procTup: HeapTuple,
        p_trftypes: *mut *mut Oid,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_result_name(functionId: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn build_function_result_tupdesc_t(procTuple: HeapTuple) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationNameGetTupleDesc(relname: *const ::std::os::raw::c_char) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TypeGetTupleDesc(typeoid: Oid, colaliases: *mut List) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BlessTupleDesc(tupdesc: TupleDesc) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TupleDescGetAttInMetadata(tupdesc: TupleDesc) -> *mut AttInMetadata;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BuildTupleFromCStrings(
        attinmeta: *mut AttInMetadata,
        values: *mut *mut ::std::os::raw::c_char,
    ) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleHeaderGetDatum(tuple: HeapTupleHeader) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn init_MultiFuncCall(fcinfo: FunctionCallInfo) -> *mut FuncCallContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn per_MultiFuncCall(fcinfo: FunctionCallInfo) -> *mut FuncCallContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn end_MultiFuncCall(fcinfo: FunctionCallInfo, funcctx: *mut FuncCallContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn extract_variadic_args(
        fcinfo: FunctionCallInfo,
        variadic_start: ::std::os::raw::c_int,
        convert_unknown: bool,
        values: *mut *mut Datum,
        types: *mut *mut Oid,
        nulls: *mut *mut bool,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static sys_signame: [*const ::std::os::raw::c_char; 32usize];
}
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::<Self>::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],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_localtime(timep: *const pg_time_t, tz: *const pg_tz) -> *mut pg_tm;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_gmtime(timep: *const pg_time_t) -> *mut pg_tm;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_timezone_offset(tz: *const pg_tz, gmtoff: *mut ::std::os::raw::c_long) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_timezone_name(tz: *mut pg_tz) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tz_acceptable(tz: *mut pg_tz) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_strftime(
        s: *mut ::std::os::raw::c_char,
        max: usize,
        format: *const ::std::os::raw::c_char,
        tm: *const pg_tm,
    ) -> usize;
}
extern "C" {
    pub static mut session_timezone: *mut pg_tz;
}
extern "C" {
    pub static mut log_timezone: *mut pg_tz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_timezone_initialize();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tzset(tzname: *const ::std::os::raw::c_char) -> *mut pg_tz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tzset_offset(gmtoffset: ::std::os::raw::c_long) -> *mut pg_tz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tzenumerate_start() -> *mut pg_tzenum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tzenumerate_next(dir: *mut pg_tzenum) -> *mut pg_tz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tzenumerate_end(dir: *mut pg_tzenum);
}
extern "C" {
    #[doc = "\t  System interrupt and critical section handling"]
    #[doc = ""]
    #[doc = " There are two types of interrupts that a running backend needs to accept"]
    #[doc = " without messing up its state: QueryCancel (SIGINT) and ProcDie (SIGTERM)."]
    #[doc = " In both cases, we need to be able to clean up the current transaction"]
    #[doc = " gracefully, so we can't respond to the interrupt instantaneously ---"]
    #[doc = " there's no guarantee that internal data structures would be self-consistent"]
    #[doc = " if the code is interrupted at an arbitrary instant.  Instead, the signal"]
    #[doc = " handlers set flags that are checked periodically during execution."]
    #[doc = ""]
    #[doc = " The CHECK_FOR_INTERRUPTS() macro is called at strategically located spots"]
    #[doc = " where it is normally safe to accept a cancel or die interrupt.  In some"]
    #[doc = " cases, we invoke CHECK_FOR_INTERRUPTS() inside low-level subroutines that"]
    #[doc = " might sometimes be called in contexts that do *not* want to allow a cancel"]
    #[doc = " or die interrupt.  The HOLD_INTERRUPTS() and RESUME_INTERRUPTS() macros"]
    #[doc = " allow code to ensure that no cancel or die interrupt will be accepted,"]
    #[doc = " even if CHECK_FOR_INTERRUPTS() gets called in a subroutine.  The interrupt"]
    #[doc = " will be held off until CHECK_FOR_INTERRUPTS() is done outside any"]
    #[doc = " HOLD_INTERRUPTS() ... RESUME_INTERRUPTS() section."]
    #[doc = ""]
    #[doc = " There is also a mechanism to prevent query cancel interrupts, while still"]
    #[doc = " allowing die interrupts: HOLD_CANCEL_INTERRUPTS() and"]
    #[doc = " RESUME_CANCEL_INTERRUPTS()."]
    #[doc = ""]
    #[doc = " Note that ProcessInterrupts() has also acquired a number of tasks that"]
    #[doc = " do not necessarily cause a query-cancel-or-die response.  Hence, it's"]
    #[doc = " possible that it will just clear InterruptPending and return."]
    #[doc = ""]
    #[doc = " INTERRUPTS_PENDING_CONDITION() can be checked to see whether an"]
    #[doc = " interrupt needs to be serviced, without trying to do so immediately."]
    #[doc = " Some callers are also interested in INTERRUPTS_CAN_BE_PROCESSED(),"]
    #[doc = " which tells whether ProcessInterrupts is sure to clear the interrupt."]
    #[doc = ""]
    #[doc = " Special mechanisms are used to let an interrupt be accepted when we are"]
    #[doc = " waiting for a lock or when we are waiting for command input (but, of"]
    #[doc = " course, only if the interrupt holdoff counter is zero).  See the"]
    #[doc = " related code for details."]
    #[doc = ""]
    #[doc = " A lost connection is handled similarly, although the loss of connection"]
    #[doc = " does not raise a signal, but is detected when we fail to write to the"]
    #[doc = " socket. If there was a signal for a broken connection, we could make use of"]
    #[doc = " it by setting ClientConnectionLost in the signal handler."]
    #[doc = ""]
    #[doc = " A related, but conceptually distinct, mechanism is the \"critical section\""]
    #[doc = " mechanism.  A critical section not only holds off cancel/die interrupts,"]
    #[doc = " but causes any ereport(ERROR) or ereport(FATAL) to become ereport(PANIC)"]
    #[doc = " --- that is, a system-wide reset is forced.  Needless to say, only really"]
    #[doc = " *critical* code should be marked as a critical section!\tCurrently, this"]
    #[doc = " mechanism is only used for XLOG-related code."]
    #[doc = ""]
    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 ConfigReloadPending: 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;
}
#[pgx_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 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 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: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut VacuumPageMiss: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut VacuumPageDirty: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut VacuumCostBalance: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut VacuumCostActive: bool;
}
extern "C" {
    pub static mut vacuum_cleanup_index_scale_factor: f64;
}
pub type pg_stack_base_t = *mut ::std::os::raw::c_char;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_stack_base() -> pg_stack_base_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn restore_stack_base(base: pg_stack_base_t);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_stack_depth();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn stack_is_too_deep() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PostgresSigHupHandler(postgres_signal_arg: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PreventCommandIfReadOnly(cmdname: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PreventCommandIfParallelMode(cmdname: *const ::std::os::raw::c_char);
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitPostmasterChild();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitStandaloneProcess(argv0: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetDatabasePath(path: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetUserNameFromId(roleid: Oid, noerr: bool) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetUserId() -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetOuterUserId() -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetSessionUserId() -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetAuthenticatedUserId() -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetUserIdAndSecContext(userid: *mut Oid, sec_context: *mut ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetUserIdAndSecContext(userid: Oid, sec_context: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InLocalUserIdChange() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InSecurityRestrictedOperation() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InNoForceRLSOperation() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetUserIdAndContext(userid: *mut Oid, sec_def_context: *mut bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetUserIdAndContext(userid: Oid, sec_def_context: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitializeSessionUserId(rolename: *const ::std::os::raw::c_char, useroid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitializeSessionUserIdStandalone();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetSessionAuthorization(userid: Oid, is_superuser: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentRoleId() -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetCurrentRoleId(roleid: Oid, is_superuser: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn checkDataDir();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetDataDir(dir: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ChangeToDataDir();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SwitchToSharedLatch();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SwitchBackToLocalLatch();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn superuser() -> bool;
}
#[pgx_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 *"]
#[doc = "\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_CheckerProcess: AuxProcType = 0;
pub const AuxProcType_BootstrapProcess: AuxProcType = 1;
pub const AuxProcType_StartupProcess: AuxProcType = 2;
pub const AuxProcType_BgWriterProcess: AuxProcType = 3;
pub const AuxProcType_CheckpointerProcess: AuxProcType = 4;
pub const AuxProcType_WalWriterProcess: AuxProcType = 5;
pub const AuxProcType_WalReceiverProcess: AuxProcType = 6;
pub const AuxProcType_NUM_AUXPROCTYPES: AuxProcType = 7;
pub type AuxProcType = ::std::os::raw::c_int;
extern "C" {
    pub static mut MyAuxProcType: AuxProcType;
}
#[pgx_macros::pg_guard]
extern "C" {
    #[doc = "\t  pinit.h --\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t *"]
    #[doc = "\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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitializeMaxBackends();
}
#[pgx_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,
        out_dbname: *mut ::std::os::raw::c_char,
        override_allow_connections: bool,
    );
}
#[pgx_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 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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateDataDirLockFile(amPostmaster: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateSocketLockFile(
        socketfile: *const ::std::os::raw::c_char,
        amPostmaster: bool,
        socketDir: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TouchSocketLockFiles();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AddToDataDirLockFile(
        target_line: ::std::os::raw::c_int,
        str_: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RecheckDataDirLockFile() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ValidatePgVersion(path: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn process_shared_preload_libraries();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn process_session_preload_libraries();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_bindtextdomain(domain: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_rolreplication(roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BackupInProgress() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CancelBackup();
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sockaddr_un {
    pub sun_len: ::std::os::raw::c_uchar,
    pub sun_family: sa_family_t,
    pub sun_path: [::std::os::raw::c_char; 104usize],
}
impl Default for sockaddr_un {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct StartupPacket {
    pub protoVersion: ProtocolVersion,
    pub database: [::std::os::raw::c_char; 64usize],
    pub user: [::std::os::raw::c_char; 32usize],
    pub options: [::std::os::raw::c_char; 64usize],
    pub unused: [::std::os::raw::c_char; 64usize],
    pub tty: [::std::os::raw::c_char; 64usize],
}
impl Default for StartupPacket {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
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,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgarch_start() -> ::std::os::raw::c_int;
}
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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_comp_crc32c_armv8(
        crc: pg_crc32c,
        data: *const ::std::os::raw::c_void,
        len: usize,
    ) -> pg_crc32c;
}
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 mut forkNames: [*const ::std::os::raw::c_char; 0usize];
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn forkname_to_number(forkName: *const ::std::os::raw::c_char) -> ForkNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn forkname_chars(
        str_: *const ::std::os::raw::c_char,
        fork: *mut ForkNumber,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetDatabasePath(dbNode: Oid, spcNode: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetRelationPath(
        dbNode: Oid,
        spcNode: Oid,
        relNode: Oid,
        backendId: ::std::os::raw::c_int,
        forkNumber: ForkNumber,
    ) -> *mut ::std::os::raw::c_char;
}
pub type BackendId = ::std::os::raw::c_int;
extern "C" {
    pub static mut MyBackendId: BackendId;
}
extern "C" {
    pub static mut ParallelMasterBackendId: BackendId;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RelFileNode {
    pub spcNode: Oid,
    pub dbNode: Oid,
    pub relNode: Oid,
}
impl Default for RelFileNode {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RelFileNodeBackend {
    pub node: RelFileNode,
    pub backend: BackendId,
}
impl Default for RelFileNodeBackend {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
}
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,
        pageTLI: *mut TimeLineID,
    ) -> ::std::os::raw::c_int,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DecodedBkpBlock {
    pub in_use: bool,
    pub rnode: RelFileNode,
    pub forknum: ForkNumber,
    pub blkno: BlockNumber,
    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::<Self>::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 wal_segment_size: ::std::os::raw::c_int,
    pub read_page: XLogPageReadCB,
    pub system_identifier: uint64,
    pub private_data: *mut ::std::os::raw::c_void,
    pub ReadRecPtr: XLogRecPtr,
    pub EndRecPtr: XLogRecPtr,
    pub decoded_record: *mut XLogRecord,
    pub main_data: *mut ::std::os::raw::c_char,
    pub main_data_len: uint32,
    pub main_data_bufsz: uint32,
    pub record_origin: RepOriginId,
    pub blocks: [DecodedBkpBlock; 33usize],
    pub max_block_id: ::std::os::raw::c_int,
    pub readBuf: *mut ::std::os::raw::c_char,
    pub readLen: uint32,
    pub readSegNo: XLogSegNo,
    pub readOff: uint32,
    pub readPageTLI: TimeLineID,
    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 abortedRecPtr: XLogRecPtr,
    pub missingContrecPtr: XLogRecPtr,
    pub overwrittenRecPtr: XLogRecPtr,
}
impl Default for XLogReaderState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogReaderAllocate(
        wal_segment_size: ::std::os::raw::c_int,
        pagereadfunc: XLogPageReadCB,
        private_data: *mut ::std::os::raw::c_void,
    ) -> *mut XLogReaderState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogReaderFree(state: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogReadRecord(
        state: *mut XLogReaderState,
        recptr: XLogRecPtr,
        errormsg: *mut *mut ::std::os::raw::c_char,
    ) -> *mut XLogRecord;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogReaderValidatePageHeader(
        state: *mut XLogReaderState,
        recptr: XLogRecPtr,
        phdr: *mut ::std::os::raw::c_char,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogReaderInvalReadState(state: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DecodeXLogRecord(
        state: *mut XLogReaderState,
        record: *mut XLogRecord,
        errmsg: *mut *mut ::std::os::raw::c_char,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RestoreBlockImage(
        recoder: *mut XLogReaderState,
        block_id: uint8,
        dst: *mut ::std::os::raw::c_char,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogRecGetBlockData(
        record: *mut XLogReaderState,
        block_id: uint8,
        len: *mut Size,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogRecGetBlockTag(
        record: *mut XLogReaderState,
        block_id: uint8,
        rnode: *mut RelFileNode,
        forknum: *mut ForkNumber,
        blknum: *mut BlockNumber,
    ) -> 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdSetTreeStatus(
        xid: TransactionId,
        nsubxids: ::std::os::raw::c_int,
        subxids: *mut TransactionId,
        status: XidStatus,
        lsn: XLogRecPtr,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdGetStatus(xid: TransactionId, lsn: *mut XLogRecPtr) -> XidStatus;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CLOGShmemBuffers() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CLOGShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CLOGShmemInit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BootStrapCLOG();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StartupCLOG();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TrimCLOG();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ShutdownCLOG();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckPointCLOG();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExtendCLOG(newestXact: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TruncateCLOG(oldestXact: TransactionId, oldestxid_datoid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clog_redo(record: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clog_desc(buf: StringInfo, record: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clog_identify(info: uint8) -> *const ::std::os::raw::c_char;
}
#[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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn slist_delete(head: *mut slist_head, node: *mut slist_node);
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct Latch {
    pub is_set: 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct WaitEventSet {
    _unused: [u8; 0],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitializeLatchSupport();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitLatch(latch: *mut Latch);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitSharedLatch(latch: *mut Latch);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OwnLatch(latch: *mut Latch);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DisownLatch(latch: *mut Latch);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetLatch(latch: *mut Latch);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResetLatch(latch: *mut Latch);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateWaitEventSet(
        context: MemoryContext,
        nevents: ::std::os::raw::c_int,
    ) -> *mut WaitEventSet;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeWaitEventSet(set: *mut WaitEventSet);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ModifyWaitEvent(
        set: *mut WaitEventSet,
        pos: ::std::os::raw::c_int,
        events: uint32,
        latch: *mut Latch,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn latch_sigusr1_handler();
}
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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union LWLockMinimallyPadded {
    pub lock: LWLock,
    pub pad: [::std::os::raw::c_char; 32usize],
}
impl Default for LWLockMinimallyPadded {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static mut MainLWLockArray: *mut LWLockPadded;
}
extern "C" {
    pub static mut MainLWLockNames: [*const ::std::os::raw::c_char; 0usize];
}
#[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::<Self>::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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockAcquire(lock: *mut LWLock, mode: LWLockMode) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockConditionalAcquire(lock: *mut LWLock, mode: LWLockMode) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockAcquireOrWait(lock: *mut LWLock, mode: LWLockMode) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockRelease(lock: *mut LWLock);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockReleaseClearVar(lock: *mut LWLock, valptr: *mut uint64, val: uint64);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockReleaseAll();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockHeldByMe(lock: *mut LWLock) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockAnyHeldByMe(
        lock: *mut LWLock,
        nlocks: ::std::os::raw::c_int,
        stride: usize,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockHeldByMeInMode(lock: *mut LWLock, mode: LWLockMode) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockWaitForVar(
        lock: *mut LWLock,
        valptr: *mut uint64,
        oldval: uint64,
        newval: *mut uint64,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockUpdateVar(lock: *mut LWLock, valptr: *mut uint64, value: uint64);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateLWLocks();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitLWLockAccess();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetLWLockIdentifier(classId: uint32, eventId: uint16) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RequestNamedLWLockTranche(
        tranche_name: *const ::std::os::raw::c_char,
        num_lwlocks: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetNamedLWLockTranche(tranche_name: *const ::std::os::raw::c_char) -> *mut LWLockPadded;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockNewTrancheId() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockRegisterTranche(
        tranche_id: ::std::os::raw::c_int,
        tranche_name: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LWLockInitialize(lock: *mut LWLock, tranche_id: ::std::os::raw::c_int);
}
pub const BuiltinTrancheIds_LWTRANCHE_CLOG_BUFFERS: BuiltinTrancheIds = 48;
pub const BuiltinTrancheIds_LWTRANCHE_COMMITTS_BUFFERS: BuiltinTrancheIds = 49;
pub const BuiltinTrancheIds_LWTRANCHE_SUBTRANS_BUFFERS: BuiltinTrancheIds = 50;
pub const BuiltinTrancheIds_LWTRANCHE_MXACTOFFSET_BUFFERS: BuiltinTrancheIds = 51;
pub const BuiltinTrancheIds_LWTRANCHE_MXACTMEMBER_BUFFERS: BuiltinTrancheIds = 52;
pub const BuiltinTrancheIds_LWTRANCHE_ASYNC_BUFFERS: BuiltinTrancheIds = 53;
pub const BuiltinTrancheIds_LWTRANCHE_OLDSERXID_BUFFERS: BuiltinTrancheIds = 54;
pub const BuiltinTrancheIds_LWTRANCHE_WAL_INSERT: BuiltinTrancheIds = 55;
pub const BuiltinTrancheIds_LWTRANCHE_BUFFER_CONTENT: BuiltinTrancheIds = 56;
pub const BuiltinTrancheIds_LWTRANCHE_BUFFER_IO_IN_PROGRESS: BuiltinTrancheIds = 57;
pub const BuiltinTrancheIds_LWTRANCHE_REPLICATION_ORIGIN: BuiltinTrancheIds = 58;
pub const BuiltinTrancheIds_LWTRANCHE_REPLICATION_SLOT_IO_IN_PROGRESS: BuiltinTrancheIds = 59;
pub const BuiltinTrancheIds_LWTRANCHE_PROC: BuiltinTrancheIds = 60;
pub const BuiltinTrancheIds_LWTRANCHE_BUFFER_MAPPING: BuiltinTrancheIds = 61;
pub const BuiltinTrancheIds_LWTRANCHE_LOCK_MANAGER: BuiltinTrancheIds = 62;
pub const BuiltinTrancheIds_LWTRANCHE_PREDICATE_LOCK_MANAGER: BuiltinTrancheIds = 63;
pub const BuiltinTrancheIds_LWTRANCHE_PARALLEL_HASH_JOIN: BuiltinTrancheIds = 64;
pub const BuiltinTrancheIds_LWTRANCHE_PARALLEL_QUERY_DSA: BuiltinTrancheIds = 65;
pub const BuiltinTrancheIds_LWTRANCHE_SESSION_DSA: BuiltinTrancheIds = 66;
pub const BuiltinTrancheIds_LWTRANCHE_SESSION_RECORD_TABLE: BuiltinTrancheIds = 67;
pub const BuiltinTrancheIds_LWTRANCHE_SESSION_TYPMOD_TABLE: BuiltinTrancheIds = 68;
pub const BuiltinTrancheIds_LWTRANCHE_SHARED_TUPLESTORE: BuiltinTrancheIds = 69;
pub const BuiltinTrancheIds_LWTRANCHE_TBM: BuiltinTrancheIds = 70;
pub const BuiltinTrancheIds_LWTRANCHE_PARALLEL_APPEND: BuiltinTrancheIds = 71;
pub const BuiltinTrancheIds_LWTRANCHE_SXACT: BuiltinTrancheIds = 72;
pub const BuiltinTrancheIds_LWTRANCHE_FIRST_USER_DEFINED: BuiltinTrancheIds = 73;
pub type BuiltinTrancheIds = ::std::os::raw::c_uint;
pub type LWLockId = *mut LWLock;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SHM_QUEUE {
    pub prev: *mut SHM_QUEUE,
    pub next: *mut SHM_QUEUE,
}
impl Default for SHM_QUEUE {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitShmemAccess(seghdr: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitShmemAllocation();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ShmemAlloc(size: Size) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ShmemAllocNoError(size: Size) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ShmemAllocUnlocked(size: Size) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ShmemAddrIsValid(addr: *const ::std::os::raw::c_void) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitShmemIndex();
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_size(s1: Size, s2: Size) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mul_size(s1: Size, s2: Size) -> Size;
}
#[pgx_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,
}
impl Default for ShmemIndexEnt {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SHMQueueInit(queue: *mut SHM_QUEUE);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SHMQueueElemInit(queue: *mut SHM_QUEUE);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SHMQueueDelete(queue: *mut SHM_QUEUE);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SHMQueueInsertBefore(queue: *mut SHM_QUEUE, elem: *mut SHM_QUEUE);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SHMQueueInsertAfter(queue: *mut SHM_QUEUE, elem: *mut SHM_QUEUE);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SHMQueueNext(
        queue: *const SHM_QUEUE,
        curElem: *const SHM_QUEUE,
        linkOffset: Size,
    ) -> Pointer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SHMQueuePrev(
        queue: *const SHM_QUEUE,
        curElem: *const SHM_QUEUE,
        linkOffset: Size,
    ) -> Pointer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SHMQueueEmpty(queue: *const SHM_QUEUE) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SHMQueueIsDetached(queue: *const SHM_QUEUE) -> bool;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PROC_QUEUE {
    pub links: SHM_QUEUE,
    pub size: ::std::os::raw::c_int,
}
impl Default for PROC_QUEUE {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
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::<Self>::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_PAGE: LockTagType = 2;
pub const LockTagType_LOCKTAG_TUPLE: LockTagType = 3;
pub const LockTagType_LOCKTAG_TRANSACTION: LockTagType = 4;
pub const LockTagType_LOCKTAG_VIRTUALTRANSACTION: LockTagType = 5;
pub const LockTagType_LOCKTAG_SPECULATIVE_TOKEN: LockTagType = 6;
pub const LockTagType_LOCKTAG_OBJECT: LockTagType = 7;
pub const LockTagType_LOCKTAG_USERLOCK: LockTagType = 8;
pub const LockTagType_LOCKTAG_ADVISORY: LockTagType = 9;
pub const LockTagType_LOCKTAG_DATABASE_FROZEN_IDS: LockTagType = 10;
pub type LockTagType = ::std::os::raw::c_uint;
extern "C" {
    pub static mut 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: SHM_QUEUE,
    pub waitProcs: PROC_QUEUE,
    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::<Self>::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::<Self>::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: SHM_QUEUE,
    pub procLink: SHM_QUEUE,
}
impl Default for PROCLOCK {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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 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::<Self>::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::<Self>::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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitLocks();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetLocksMethodTable(lock: *const LOCK) -> LockMethod;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetLockTagsMethodTable(locktag: *const LOCKTAG) -> LockMethod;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockTagHashCode(locktag: *const LOCKTAG) -> uint32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DoLockModesConflict(mode1: LOCKMODE, mode2: LOCKMODE) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockAcquire(
        locktag: *const LOCKTAG,
        lockmode: LOCKMODE,
        sessionLock: bool,
        dontWait: bool,
    ) -> LockAcquireResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockAcquireExtended(
        locktag: *const LOCKTAG,
        lockmode: LOCKMODE,
        sessionLock: bool,
        dontWait: bool,
        reportMemoryError: bool,
        locallockp: *mut *mut LOCALLOCK,
    ) -> LockAcquireResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AbortStrongLockAcquire();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MarkLockClear(locallock: *mut LOCALLOCK);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockRelease(locktag: *const LOCKTAG, lockmode: LOCKMODE, sessionLock: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockReleaseAll(lockmethodid: LOCKMETHODID, allLocks: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockReleaseSession(lockmethodid: LOCKMETHODID);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockReleaseCurrentOwner(locallocks: *mut *mut LOCALLOCK, nlocks: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockReassignCurrentOwner(locallocks: *mut *mut LOCALLOCK, nlocks: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockHeldByMe(locktag: *const LOCKTAG, lockmode: LOCKMODE) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockHasWaiters(locktag: *const LOCKTAG, lockmode: LOCKMODE, sessionLock: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetLockConflicts(
        locktag: *const LOCKTAG,
        lockmode: LOCKMODE,
        countp: *mut ::std::os::raw::c_int,
    ) -> *mut VirtualTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtPrepare_Locks();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PostPrepare_Locks(xid: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockCheckConflicts(
        lockMethodTable: LockMethod,
        lockmode: LOCKMODE,
        lock: *mut LOCK,
        proclock: *mut PROCLOCK,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GrantLock(lock: *mut LOCK, proclock: *mut PROCLOCK, lockmode: LOCKMODE);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GrantAwaitedLock();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveFromWaitQueue(proc_: *mut PGPROC, hashcode: uint32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetLockStatusData() -> *mut LockData;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetBlockerStatusData(blocked_pid: ::std::os::raw::c_int) -> *mut BlockedProcsData;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetRunningTransactionLocks(nlocks: *mut ::std::os::raw::c_int) -> *mut xl_standby_lock;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetLockmodeName(
        lockmethodid: LOCKMETHODID,
        mode: LOCKMODE,
    ) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lock_twophase_recover(
        xid: TransactionId,
        info: uint16,
        recdata: *mut ::std::os::raw::c_void,
        len: uint32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lock_twophase_postcommit(
        xid: TransactionId,
        info: uint16,
        recdata: *mut ::std::os::raw::c_void,
        len: uint32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lock_twophase_postabort(
        xid: TransactionId,
        info: uint16,
        recdata: *mut ::std::os::raw::c_void,
        len: uint32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lock_twophase_standby_recover(
        xid: TransactionId,
        info: uint16,
        recdata: *mut ::std::os::raw::c_void,
        len: uint32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DeadLockCheck(proc_: *mut PGPROC) -> DeadLockState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetBlockingAutoVacuumPgproc() -> *mut PGPROC;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DeadLockReport();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RememberSimpleDeadLock(
        proc1: *mut PGPROC,
        lockmode: LOCKMODE,
        lock: *mut LOCK,
        proc2: *mut PGPROC,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitDeadLockChecking();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockWaiterCount(locktag: *const LOCKTAG) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn VirtualXactLockTableInsert(vxid: VirtualTransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn VirtualXactLockTableCleanup();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn VirtualXactLock(vxid: VirtualTransactionId, wait: bool) -> bool;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PGSemaphoreData {
    _unused: [u8; 0],
}
pub type PGSemaphore = *mut PGSemaphoreData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PGSemaphoreShmemSize(maxSemas: ::std::os::raw::c_int) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PGReserveSemaphores(maxSemas: ::std::os::raw::c_int, port: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PGSemaphoreCreate() -> PGSemaphore;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PGSemaphoreReset(sema: PGSemaphore);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PGSemaphoreLock(sema: PGSemaphore);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PGSemaphoreUnlock(sema: PGSemaphore);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PGSemaphoreTryLock(sema: PGSemaphore) -> 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PGPROC {
    pub links: SHM_QUEUE,
    pub procgloballist: *mut *mut PGPROC,
    pub sem: PGSemaphore,
    pub waitStatus: ::std::os::raw::c_int,
    pub procLatch: Latch,
    pub lxid: LocalTransactionId,
    pub pid: ::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: bool,
    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 waitLSN: XLogRecPtr,
    pub syncRepState: ::std::os::raw::c_int,
    pub delayChkptEnd: bool,
    pub syncRepLinks: SHM_QUEUE,
    pub myProcLocks: [SHM_QUEUE; 16usize],
    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 backendLock: 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static mut MyProc: *mut PGPROC;
}
extern "C" {
    pub static mut MyPgXact: *mut PGXACT;
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct PGXACT {
    pub xid: TransactionId,
    pub xmin: TransactionId,
    pub vacuumFlags: uint8,
    pub overflowed: bool,
    pub delayChkpt: bool,
    pub nxids: uint8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PROC_HDR {
    pub allProcs: *mut PGPROC,
    pub allPgXact: *mut PGXACT,
    pub allProcCount: uint32,
    pub freeProcs: *mut PGPROC,
    pub autovacFreeProcs: *mut PGPROC,
    pub bgworkerFreeProcs: *mut PGPROC,
    pub walsenderFreeProcs: *mut PGPROC,
    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 startupProc: *mut PGPROC,
    pub startupProcPid: ::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::<Self>::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 log_lock_waits: bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcGlobalSemas() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcGlobalShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitProcGlobal();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitProcess();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitProcessPhase2();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitAuxiliaryProcess();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PublishStartupProcessInformation();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetStartupBufferPinWaitBufId(bufid: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetStartupBufferPinWaitBufId() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HaveNFreeProcs(n: ::std::os::raw::c_int) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcReleaseLocks(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcQueueInit(queue: *mut PROC_QUEUE);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcSleep(
        locallock: *mut LOCALLOCK,
        lockMethodTable: LockMethod,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcWakeup(proc_: *mut PGPROC, waitStatus: ::std::os::raw::c_int) -> *mut PGPROC;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcLockWakeup(lockMethodTable: LockMethod, lock: *mut LOCK);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckDeadLockAlert();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsWaitingForLock() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockErrorCleanup();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcWaitForSignal(wait_event_info: uint32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcSendSignal(pid: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AuxiliaryPidGetProc(pid: ::std::os::raw::c_int) -> *mut PGPROC;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BecomeLockGroupLeader();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BecomeLockGroupMember(leader: *mut PGPROC, pid: ::std::os::raw::c_int) -> bool;
}
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 StatMsgType_PGSTAT_MTYPE_DUMMY: StatMsgType = 0;
pub const StatMsgType_PGSTAT_MTYPE_INQUIRY: StatMsgType = 1;
pub const StatMsgType_PGSTAT_MTYPE_TABSTAT: StatMsgType = 2;
pub const StatMsgType_PGSTAT_MTYPE_TABPURGE: StatMsgType = 3;
pub const StatMsgType_PGSTAT_MTYPE_DROPDB: StatMsgType = 4;
pub const StatMsgType_PGSTAT_MTYPE_RESETCOUNTER: StatMsgType = 5;
pub const StatMsgType_PGSTAT_MTYPE_RESETSHAREDCOUNTER: StatMsgType = 6;
pub const StatMsgType_PGSTAT_MTYPE_RESETSINGLECOUNTER: StatMsgType = 7;
pub const StatMsgType_PGSTAT_MTYPE_AUTOVAC_START: StatMsgType = 8;
pub const StatMsgType_PGSTAT_MTYPE_VACUUM: StatMsgType = 9;
pub const StatMsgType_PGSTAT_MTYPE_ANALYZE: StatMsgType = 10;
pub const StatMsgType_PGSTAT_MTYPE_ARCHIVER: StatMsgType = 11;
pub const StatMsgType_PGSTAT_MTYPE_BGWRITER: StatMsgType = 12;
pub const StatMsgType_PGSTAT_MTYPE_FUNCSTAT: StatMsgType = 13;
pub const StatMsgType_PGSTAT_MTYPE_FUNCPURGE: StatMsgType = 14;
pub const StatMsgType_PGSTAT_MTYPE_RECOVERYCONFLICT: StatMsgType = 15;
pub const StatMsgType_PGSTAT_MTYPE_TEMPFILE: StatMsgType = 16;
pub const StatMsgType_PGSTAT_MTYPE_DEADLOCK: StatMsgType = 17;
pub const StatMsgType_PGSTAT_MTYPE_CHECKSUMFAILURE: StatMsgType = 18;
pub type StatMsgType = ::std::os::raw::c_uint;
pub type PgStat_Counter = int64;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct PgStat_TableCounts {
    pub t_numscans: PgStat_Counter,
    pub t_tuples_returned: PgStat_Counter,
    pub t_tuples_fetched: PgStat_Counter,
    pub t_tuples_inserted: PgStat_Counter,
    pub t_tuples_updated: PgStat_Counter,
    pub t_tuples_deleted: PgStat_Counter,
    pub t_tuples_hot_updated: PgStat_Counter,
    pub t_truncated: bool,
    pub t_delta_live_tuples: PgStat_Counter,
    pub t_delta_dead_tuples: PgStat_Counter,
    pub t_changed_tuples: PgStat_Counter,
    pub t_blocks_fetched: PgStat_Counter,
    pub t_blocks_hit: PgStat_Counter,
}
pub const PgStat_Shared_Reset_Target_RESET_ARCHIVER: PgStat_Shared_Reset_Target = 0;
pub const PgStat_Shared_Reset_Target_RESET_BGWRITER: PgStat_Shared_Reset_Target = 1;
pub type PgStat_Shared_Reset_Target = ::std::os::raw::c_uint;
pub const PgStat_Single_Reset_Type_RESET_TABLE: PgStat_Single_Reset_Type = 0;
pub const PgStat_Single_Reset_Type_RESET_FUNCTION: PgStat_Single_Reset_Type = 1;
pub type PgStat_Single_Reset_Type = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_TableStatus {
    pub t_id: Oid,
    pub t_shared: bool,
    pub trans: *mut PgStat_TableXactStatus,
    pub t_counts: PgStat_TableCounts,
}
impl Default for PgStat_TableStatus {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 truncated: bool,
    pub inserted_pre_trunc: PgStat_Counter,
    pub updated_pre_trunc: PgStat_Counter,
    pub deleted_pre_trunc: 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgHdr {
    pub m_type: StatMsgType,
    pub m_size: ::std::os::raw::c_int,
}
impl Default for PgStat_MsgHdr {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgDummy {
    pub m_hdr: PgStat_MsgHdr,
}
impl Default for PgStat_MsgDummy {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgInquiry {
    pub m_hdr: PgStat_MsgHdr,
    pub clock_time: TimestampTz,
    pub cutoff_time: TimestampTz,
    pub databaseid: Oid,
}
impl Default for PgStat_MsgInquiry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_TableEntry {
    pub t_id: Oid,
    pub t_counts: PgStat_TableCounts,
}
impl Default for PgStat_TableEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgTabstat {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_nentries: ::std::os::raw::c_int,
    pub m_xact_commit: ::std::os::raw::c_int,
    pub m_xact_rollback: ::std::os::raw::c_int,
    pub m_block_read_time: PgStat_Counter,
    pub m_block_write_time: PgStat_Counter,
    pub m_entry: [PgStat_TableEntry; 8usize],
}
impl Default for PgStat_MsgTabstat {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgTabpurge {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_nentries: ::std::os::raw::c_int,
    pub m_tableid: [Oid; 246usize],
}
impl Default for PgStat_MsgTabpurge {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgDropdb {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
}
impl Default for PgStat_MsgDropdb {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgResetcounter {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
}
impl Default for PgStat_MsgResetcounter {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgResetsharedcounter {
    pub m_hdr: PgStat_MsgHdr,
    pub m_resettarget: PgStat_Shared_Reset_Target,
}
impl Default for PgStat_MsgResetsharedcounter {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgResetsinglecounter {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_resettype: PgStat_Single_Reset_Type,
    pub m_objectid: Oid,
}
impl Default for PgStat_MsgResetsinglecounter {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgAutovacStart {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_start_time: TimestampTz,
}
impl Default for PgStat_MsgAutovacStart {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgVacuum {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_tableoid: Oid,
    pub m_autovacuum: bool,
    pub m_vacuumtime: TimestampTz,
    pub m_live_tuples: PgStat_Counter,
    pub m_dead_tuples: PgStat_Counter,
}
impl Default for PgStat_MsgVacuum {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgAnalyze {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_tableoid: Oid,
    pub m_autovacuum: bool,
    pub m_resetcounter: bool,
    pub m_analyzetime: TimestampTz,
    pub m_live_tuples: PgStat_Counter,
    pub m_dead_tuples: PgStat_Counter,
}
impl Default for PgStat_MsgAnalyze {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgArchiver {
    pub m_hdr: PgStat_MsgHdr,
    pub m_failed: bool,
    pub m_xlog: [::std::os::raw::c_char; 41usize],
    pub m_timestamp: TimestampTz,
}
impl Default for PgStat_MsgArchiver {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgBgWriter {
    pub m_hdr: PgStat_MsgHdr,
    pub m_timed_checkpoints: PgStat_Counter,
    pub m_requested_checkpoints: PgStat_Counter,
    pub m_buf_written_checkpoints: PgStat_Counter,
    pub m_buf_written_clean: PgStat_Counter,
    pub m_maxwritten_clean: PgStat_Counter,
    pub m_buf_written_backend: PgStat_Counter,
    pub m_buf_fsync_backend: PgStat_Counter,
    pub m_buf_alloc: PgStat_Counter,
    pub m_checkpoint_write_time: PgStat_Counter,
    pub m_checkpoint_sync_time: PgStat_Counter,
}
impl Default for PgStat_MsgBgWriter {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgRecoveryConflict {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_reason: ::std::os::raw::c_int,
}
impl Default for PgStat_MsgRecoveryConflict {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgTempFile {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_filesize: usize,
}
impl Default for PgStat_MsgTempFile {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_FunctionCounts {
    pub f_numcalls: PgStat_Counter,
    pub f_total_time: instr_time,
    pub f_self_time: instr_time,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_BackendFunctionEntry {
    pub f_id: Oid,
    pub f_counts: PgStat_FunctionCounts,
}
impl Default for PgStat_BackendFunctionEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_FunctionEntry {
    pub f_id: Oid,
    pub f_numcalls: PgStat_Counter,
    pub f_total_time: PgStat_Counter,
    pub f_self_time: PgStat_Counter,
}
impl Default for PgStat_FunctionEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgFuncstat {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_nentries: ::std::os::raw::c_int,
    pub m_entry: [PgStat_FunctionEntry; 30usize],
}
impl Default for PgStat_MsgFuncstat {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgFuncpurge {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_nentries: ::std::os::raw::c_int,
    pub m_functionid: [Oid; 246usize],
}
impl Default for PgStat_MsgFuncpurge {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgDeadlock {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
}
impl Default for PgStat_MsgDeadlock {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_MsgChecksumFailure {
    pub m_hdr: PgStat_MsgHdr,
    pub m_databaseid: Oid,
    pub m_failurecount: ::std::os::raw::c_int,
    pub m_failure_time: TimestampTz,
}
impl Default for PgStat_MsgChecksumFailure {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union PgStat_Msg {
    pub msg_hdr: PgStat_MsgHdr,
    pub msg_dummy: PgStat_MsgDummy,
    pub msg_inquiry: PgStat_MsgInquiry,
    pub msg_tabstat: PgStat_MsgTabstat,
    pub msg_tabpurge: PgStat_MsgTabpurge,
    pub msg_dropdb: PgStat_MsgDropdb,
    pub msg_resetcounter: PgStat_MsgResetcounter,
    pub msg_resetsharedcounter: PgStat_MsgResetsharedcounter,
    pub msg_resetsinglecounter: PgStat_MsgResetsinglecounter,
    pub msg_autovacuum_start: PgStat_MsgAutovacStart,
    pub msg_vacuum: PgStat_MsgVacuum,
    pub msg_analyze: PgStat_MsgAnalyze,
    pub msg_archiver: PgStat_MsgArchiver,
    pub msg_bgwriter: PgStat_MsgBgWriter,
    pub msg_funcstat: PgStat_MsgFuncstat,
    pub msg_funcpurge: PgStat_MsgFuncpurge,
    pub msg_recoveryconflict: PgStat_MsgRecoveryConflict,
    pub msg_deadlock: PgStat_MsgDeadlock,
    pub msg_tempfile: PgStat_MsgTempFile,
    pub msg_checksumfailure: PgStat_MsgChecksumFailure,
}
impl Default for PgStat_Msg {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_StatDBEntry {
    pub databaseid: Oid,
    pub n_xact_commit: PgStat_Counter,
    pub n_xact_rollback: PgStat_Counter,
    pub n_blocks_fetched: PgStat_Counter,
    pub n_blocks_hit: PgStat_Counter,
    pub n_tuples_returned: PgStat_Counter,
    pub n_tuples_fetched: PgStat_Counter,
    pub n_tuples_inserted: PgStat_Counter,
    pub n_tuples_updated: PgStat_Counter,
    pub n_tuples_deleted: PgStat_Counter,
    pub last_autovac_time: TimestampTz,
    pub n_conflict_tablespace: PgStat_Counter,
    pub n_conflict_lock: PgStat_Counter,
    pub n_conflict_snapshot: PgStat_Counter,
    pub n_conflict_bufferpin: PgStat_Counter,
    pub n_conflict_startup_deadlock: PgStat_Counter,
    pub n_temp_files: PgStat_Counter,
    pub n_temp_bytes: PgStat_Counter,
    pub n_deadlocks: PgStat_Counter,
    pub n_checksum_failures: PgStat_Counter,
    pub last_checksum_failure: TimestampTz,
    pub n_block_read_time: PgStat_Counter,
    pub n_block_write_time: PgStat_Counter,
    pub stat_reset_timestamp: TimestampTz,
    pub stats_timestamp: TimestampTz,
    pub tables: *mut HTAB,
    pub functions: *mut HTAB,
}
impl Default for PgStat_StatDBEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_StatTabEntry {
    pub tableid: Oid,
    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 n_live_tuples: PgStat_Counter,
    pub n_dead_tuples: PgStat_Counter,
    pub changes_since_analyze: PgStat_Counter,
    pub blocks_fetched: PgStat_Counter,
    pub blocks_hit: PgStat_Counter,
    pub vacuum_timestamp: TimestampTz,
    pub vacuum_count: PgStat_Counter,
    pub autovac_vacuum_timestamp: TimestampTz,
    pub autovac_vacuum_count: PgStat_Counter,
    pub analyze_timestamp: TimestampTz,
    pub analyze_count: PgStat_Counter,
    pub autovac_analyze_timestamp: TimestampTz,
    pub autovac_analyze_count: PgStat_Counter,
}
impl Default for PgStat_StatTabEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgStat_StatFuncEntry {
    pub functionid: Oid,
    pub f_numcalls: PgStat_Counter,
    pub f_total_time: PgStat_Counter,
    pub f_self_time: PgStat_Counter,
}
impl Default for PgStat_StatFuncEntry {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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_GlobalStats {
    pub stats_timestamp: TimestampTz,
    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_clean: PgStat_Counter,
    pub maxwritten_clean: PgStat_Counter,
    pub buf_written_backend: PgStat_Counter,
    pub buf_fsync_backend: PgStat_Counter,
    pub buf_alloc: PgStat_Counter,
    pub stat_reset_timestamp: TimestampTz,
}
pub const BackendType_B_AUTOVAC_LAUNCHER: BackendType = 0;
pub const BackendType_B_AUTOVAC_WORKER: BackendType = 1;
pub const BackendType_B_BACKEND: BackendType = 2;
pub const BackendType_B_BG_WORKER: BackendType = 3;
pub const BackendType_B_BG_WRITER: BackendType = 4;
pub const BackendType_B_CHECKPOINTER: BackendType = 5;
pub const BackendType_B_STARTUP: BackendType = 6;
pub const BackendType_B_WAL_RECEIVER: BackendType = 7;
pub const BackendType_B_WAL_SENDER: BackendType = 8;
pub const BackendType_B_WAL_WRITER: BackendType = 9;
pub type BackendType = ::std::os::raw::c_uint;
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;
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_PGSTAT_MAIN: WaitEventActivity = 83886087;
pub const WaitEventActivity_WAIT_EVENT_RECOVERY_WAL_ALL: WaitEventActivity = 83886088;
pub const WaitEventActivity_WAIT_EVENT_RECOVERY_WAL_STREAM: WaitEventActivity = 83886089;
pub const WaitEventActivity_WAIT_EVENT_SYSLOGGER_MAIN: WaitEventActivity = 83886090;
pub const WaitEventActivity_WAIT_EVENT_WAL_RECEIVER_MAIN: WaitEventActivity = 83886091;
pub const WaitEventActivity_WAIT_EVENT_WAL_SENDER_MAIN: WaitEventActivity = 83886092;
pub const WaitEventActivity_WAIT_EVENT_WAL_WRITER_MAIN: WaitEventActivity = 83886093;
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_LIBPQWALRECEIVER_CONNECT: WaitEventClient = 100663298;
pub const WaitEventClient_WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE: WaitEventClient = 100663299;
pub const WaitEventClient_WAIT_EVENT_SSL_OPEN_SERVER: WaitEventClient = 100663300;
pub const WaitEventClient_WAIT_EVENT_WAL_RECEIVER_WAIT_START: 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 const WaitEventClient_WAIT_EVENT_GSS_OPEN_SERVER: WaitEventClient = 100663304;
pub type WaitEventClient = ::std::os::raw::c_uint;
pub const WaitEventIPC_WAIT_EVENT_BGWORKER_SHUTDOWN: WaitEventIPC = 134217728;
pub const WaitEventIPC_WAIT_EVENT_BGWORKER_STARTUP: WaitEventIPC = 134217729;
pub const WaitEventIPC_WAIT_EVENT_BTREE_PAGE: WaitEventIPC = 134217730;
pub const WaitEventIPC_WAIT_EVENT_CLOG_GROUP_UPDATE: WaitEventIPC = 134217731;
pub const WaitEventIPC_WAIT_EVENT_CHECKPOINT_DONE: WaitEventIPC = 134217732;
pub const WaitEventIPC_WAIT_EVENT_CHECKPOINT_START: WaitEventIPC = 134217733;
pub const WaitEventIPC_WAIT_EVENT_EXECUTE_GATHER: WaitEventIPC = 134217734;
pub const WaitEventIPC_WAIT_EVENT_HASH_BATCH_ALLOCATING: WaitEventIPC = 134217735;
pub const WaitEventIPC_WAIT_EVENT_HASH_BATCH_ELECTING: WaitEventIPC = 134217736;
pub const WaitEventIPC_WAIT_EVENT_HASH_BATCH_LOADING: WaitEventIPC = 134217737;
pub const WaitEventIPC_WAIT_EVENT_HASH_BUILD_ALLOCATING: WaitEventIPC = 134217738;
pub const WaitEventIPC_WAIT_EVENT_HASH_BUILD_ELECTING: WaitEventIPC = 134217739;
pub const WaitEventIPC_WAIT_EVENT_HASH_BUILD_HASHING_INNER: WaitEventIPC = 134217740;
pub const WaitEventIPC_WAIT_EVENT_HASH_BUILD_HASHING_OUTER: WaitEventIPC = 134217741;
pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATING: WaitEventIPC = 134217742;
pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_DECIDING: WaitEventIPC = 134217743;
pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_ELECTING: WaitEventIPC = 134217744;
pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_FINISHING: WaitEventIPC = 134217745;
pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BATCHES_REPARTITIONING: WaitEventIPC = 134217746;
pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATING: WaitEventIPC = 134217747;
pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BUCKETS_ELECTING: WaitEventIPC = 134217748;
pub const WaitEventIPC_WAIT_EVENT_HASH_GROW_BUCKETS_REINSERTING: WaitEventIPC = 134217749;
pub const WaitEventIPC_WAIT_EVENT_LOGICAL_SYNC_DATA: WaitEventIPC = 134217750;
pub const WaitEventIPC_WAIT_EVENT_LOGICAL_SYNC_STATE_CHANGE: WaitEventIPC = 134217751;
pub const WaitEventIPC_WAIT_EVENT_MQ_INTERNAL: WaitEventIPC = 134217752;
pub const WaitEventIPC_WAIT_EVENT_MQ_PUT_MESSAGE: WaitEventIPC = 134217753;
pub const WaitEventIPC_WAIT_EVENT_MQ_RECEIVE: WaitEventIPC = 134217754;
pub const WaitEventIPC_WAIT_EVENT_MQ_SEND: WaitEventIPC = 134217755;
pub const WaitEventIPC_WAIT_EVENT_PARALLEL_BITMAP_SCAN: WaitEventIPC = 134217756;
pub const WaitEventIPC_WAIT_EVENT_PARALLEL_CREATE_INDEX_SCAN: WaitEventIPC = 134217757;
pub const WaitEventIPC_WAIT_EVENT_PARALLEL_FINISH: WaitEventIPC = 134217758;
pub const WaitEventIPC_WAIT_EVENT_PROCARRAY_GROUP_UPDATE: WaitEventIPC = 134217759;
pub const WaitEventIPC_WAIT_EVENT_PROMOTE: WaitEventIPC = 134217760;
pub const WaitEventIPC_WAIT_EVENT_REPLICATION_ORIGIN_DROP: WaitEventIPC = 134217761;
pub const WaitEventIPC_WAIT_EVENT_REPLICATION_SLOT_DROP: WaitEventIPC = 134217762;
pub const WaitEventIPC_WAIT_EVENT_SAFE_SNAPSHOT: WaitEventIPC = 134217763;
pub const WaitEventIPC_WAIT_EVENT_SYNC_REP: WaitEventIPC = 134217764;
pub type WaitEventIPC = ::std::os::raw::c_uint;
pub const WaitEventTimeout_WAIT_EVENT_BASE_BACKUP_THROTTLE: WaitEventTimeout = 150994944;
pub const WaitEventTimeout_WAIT_EVENT_PG_SLEEP: WaitEventTimeout = 150994945;
pub const WaitEventTimeout_WAIT_EVENT_RECOVERY_APPLY_DELAY: WaitEventTimeout = 150994946;
pub const WaitEventTimeout_WAIT_EVENT_REGISTER_SYNC_REQUEST: WaitEventTimeout = 150994947;
pub type WaitEventTimeout = ::std::os::raw::c_uint;
pub const WaitEventIO_WAIT_EVENT_BUFFILE_READ: WaitEventIO = 167772160;
pub const WaitEventIO_WAIT_EVENT_BUFFILE_WRITE: WaitEventIO = 167772161;
pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_READ: WaitEventIO = 167772162;
pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_SYNC: WaitEventIO = 167772163;
pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_SYNC_UPDATE: WaitEventIO = 167772164;
pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_WRITE: WaitEventIO = 167772165;
pub const WaitEventIO_WAIT_EVENT_CONTROL_FILE_WRITE_UPDATE: WaitEventIO = 167772166;
pub const WaitEventIO_WAIT_EVENT_COPY_FILE_READ: WaitEventIO = 167772167;
pub const WaitEventIO_WAIT_EVENT_COPY_FILE_WRITE: WaitEventIO = 167772168;
pub const WaitEventIO_WAIT_EVENT_DATA_FILE_EXTEND: WaitEventIO = 167772169;
pub const WaitEventIO_WAIT_EVENT_DATA_FILE_FLUSH: WaitEventIO = 167772170;
pub const WaitEventIO_WAIT_EVENT_DATA_FILE_IMMEDIATE_SYNC: WaitEventIO = 167772171;
pub const WaitEventIO_WAIT_EVENT_DATA_FILE_PREFETCH: WaitEventIO = 167772172;
pub const WaitEventIO_WAIT_EVENT_DATA_FILE_READ: WaitEventIO = 167772173;
pub const WaitEventIO_WAIT_EVENT_DATA_FILE_SYNC: WaitEventIO = 167772174;
pub const WaitEventIO_WAIT_EVENT_DATA_FILE_TRUNCATE: WaitEventIO = 167772175;
pub const WaitEventIO_WAIT_EVENT_DATA_FILE_WRITE: WaitEventIO = 167772176;
pub const WaitEventIO_WAIT_EVENT_DSM_FILL_ZERO_WRITE: WaitEventIO = 167772177;
pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ: WaitEventIO = 167772178;
pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC: WaitEventIO = 167772179;
pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_ADDTODATADIR_WRITE: WaitEventIO = 167772180;
pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_CREATE_READ: WaitEventIO = 167772181;
pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_CREATE_SYNC: WaitEventIO = 167772182;
pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_CREATE_WRITE: WaitEventIO = 167772183;
pub const WaitEventIO_WAIT_EVENT_LOCK_FILE_RECHECKDATADIR_READ: WaitEventIO = 167772184;
pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_CHECKPOINT_SYNC: WaitEventIO = 167772185;
pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_MAPPING_SYNC: WaitEventIO = 167772186;
pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_MAPPING_WRITE: WaitEventIO = 167772187;
pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_SYNC: WaitEventIO = 167772188;
pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_TRUNCATE: WaitEventIO = 167772189;
pub const WaitEventIO_WAIT_EVENT_LOGICAL_REWRITE_WRITE: WaitEventIO = 167772190;
pub const WaitEventIO_WAIT_EVENT_RELATION_MAP_READ: WaitEventIO = 167772191;
pub const WaitEventIO_WAIT_EVENT_RELATION_MAP_SYNC: WaitEventIO = 167772192;
pub const WaitEventIO_WAIT_EVENT_RELATION_MAP_WRITE: WaitEventIO = 167772193;
pub const WaitEventIO_WAIT_EVENT_REORDER_BUFFER_READ: WaitEventIO = 167772194;
pub const WaitEventIO_WAIT_EVENT_REORDER_BUFFER_WRITE: WaitEventIO = 167772195;
pub const WaitEventIO_WAIT_EVENT_REORDER_LOGICAL_MAPPING_READ: WaitEventIO = 167772196;
pub const WaitEventIO_WAIT_EVENT_REPLICATION_SLOT_READ: WaitEventIO = 167772197;
pub const WaitEventIO_WAIT_EVENT_REPLICATION_SLOT_RESTORE_SYNC: WaitEventIO = 167772198;
pub const WaitEventIO_WAIT_EVENT_REPLICATION_SLOT_SYNC: WaitEventIO = 167772199;
pub const WaitEventIO_WAIT_EVENT_REPLICATION_SLOT_WRITE: WaitEventIO = 167772200;
pub const WaitEventIO_WAIT_EVENT_SLRU_FLUSH_SYNC: WaitEventIO = 167772201;
pub const WaitEventIO_WAIT_EVENT_SLRU_READ: WaitEventIO = 167772202;
pub const WaitEventIO_WAIT_EVENT_SLRU_SYNC: WaitEventIO = 167772203;
pub const WaitEventIO_WAIT_EVENT_SLRU_WRITE: WaitEventIO = 167772204;
pub const WaitEventIO_WAIT_EVENT_SNAPBUILD_READ: WaitEventIO = 167772205;
pub const WaitEventIO_WAIT_EVENT_SNAPBUILD_SYNC: WaitEventIO = 167772206;
pub const WaitEventIO_WAIT_EVENT_SNAPBUILD_WRITE: WaitEventIO = 167772207;
pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_FILE_SYNC: WaitEventIO = 167772208;
pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_FILE_WRITE: WaitEventIO = 167772209;
pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_READ: WaitEventIO = 167772210;
pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_SYNC: WaitEventIO = 167772211;
pub const WaitEventIO_WAIT_EVENT_TIMELINE_HISTORY_WRITE: WaitEventIO = 167772212;
pub const WaitEventIO_WAIT_EVENT_TWOPHASE_FILE_READ: WaitEventIO = 167772213;
pub const WaitEventIO_WAIT_EVENT_TWOPHASE_FILE_SYNC: WaitEventIO = 167772214;
pub const WaitEventIO_WAIT_EVENT_TWOPHASE_FILE_WRITE: WaitEventIO = 167772215;
pub const WaitEventIO_WAIT_EVENT_WALSENDER_TIMELINE_HISTORY_READ: WaitEventIO = 167772216;
pub const WaitEventIO_WAIT_EVENT_WAL_BOOTSTRAP_SYNC: WaitEventIO = 167772217;
pub const WaitEventIO_WAIT_EVENT_WAL_BOOTSTRAP_WRITE: WaitEventIO = 167772218;
pub const WaitEventIO_WAIT_EVENT_WAL_COPY_READ: WaitEventIO = 167772219;
pub const WaitEventIO_WAIT_EVENT_WAL_COPY_SYNC: WaitEventIO = 167772220;
pub const WaitEventIO_WAIT_EVENT_WAL_COPY_WRITE: WaitEventIO = 167772221;
pub const WaitEventIO_WAIT_EVENT_WAL_INIT_SYNC: WaitEventIO = 167772222;
pub const WaitEventIO_WAIT_EVENT_WAL_INIT_WRITE: WaitEventIO = 167772223;
pub const WaitEventIO_WAIT_EVENT_WAL_READ: WaitEventIO = 167772224;
pub const WaitEventIO_WAIT_EVENT_WAL_SYNC: WaitEventIO = 167772225;
pub const WaitEventIO_WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN: WaitEventIO = 167772226;
pub const WaitEventIO_WAIT_EVENT_WAL_WRITE: WaitEventIO = 167772227;
pub type WaitEventIO = ::std::os::raw::c_uint;
pub const ProgressCommandType_PROGRESS_COMMAND_INVALID: ProgressCommandType = 0;
pub const ProgressCommandType_PROGRESS_COMMAND_VACUUM: ProgressCommandType = 1;
pub const ProgressCommandType_PROGRESS_COMMAND_CLUSTER: ProgressCommandType = 2;
pub const ProgressCommandType_PROGRESS_COMMAND_CREATE_INDEX: ProgressCommandType = 3;
pub type ProgressCommandType = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PgBackendSSLStatus {
    pub ssl_bits: ::std::os::raw::c_int,
    pub ssl_compression: bool,
    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::<Self>::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,
}
impl Default for PgBackendGSSStatus {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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],
}
impl Default for PgBackendStatus {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_xid: TransactionId,
    pub backend_xmin: TransactionId,
}
impl Default for LocalPgBackendStatus {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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 f_start: instr_time,
}
impl Default for PgStat_FunctionCallUsage {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_counts: bool;
}
extern "C" {
    pub static mut pgstat_track_functions: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut pgstat_track_activity_query_size: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut pgstat_stat_directory: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut pgstat_stat_tmpname: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut pgstat_stat_filename: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut BgWriterStats: PgStat_MsgBgWriter;
}
extern "C" {
    pub static mut pgStatBlockReadTime: PgStat_Counter;
}
extern "C" {
    pub static mut pgStatBlockWriteTime: PgStat_Counter;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BackendStatusShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateSharedBackendStatus();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_init();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_start() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_reset_all();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn allow_immediate_pgstat_restart();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_ping();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_stat(force: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_vacuum_stat();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_drop_database(databaseid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_clear_snapshot();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_reset_counters();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_reset_shared_counters(arg1: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_reset_single_counter(objectid: Oid, type_: PgStat_Single_Reset_Type);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_autovac(dboid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_vacuum(
        tableoid: Oid,
        shared: bool,
        livetuples: PgStat_Counter,
        deadtuples: PgStat_Counter,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_analyze(
        rel: Relation,
        livetuples: PgStat_Counter,
        deadtuples: PgStat_Counter,
        resetcounter: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_recovery_conflict(reason: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_deadlock();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_checksum_failures_in_db(dboid: Oid, failurecount: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_checksum_failure();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_initialize();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_bestart();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_activity(state: BackendState, cmd_str: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_tempfile(filesize: usize);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_appname(appname: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_report_xact_timestamp(tstamp: TimestampTz);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_get_wait_event(wait_event_info: uint32) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_get_wait_event_type(wait_event_info: uint32) -> *const ::std::os::raw::c_char;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_get_backend_desc(backendType: BackendType) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_progress_start_command(cmdtype: ProgressCommandType, relid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_progress_update_param(index: ::std::os::raw::c_int, val: int64);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_progress_end_command();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_tabstat_entry(rel_id: Oid) -> *mut PgStat_TableStatus;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_funcstat_entry(func_id: Oid) -> *mut PgStat_BackendFunctionEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_initstats(rel: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_clip_activity(
        raw_activity: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_count_heap_insert(rel: Relation, n: PgStat_Counter);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_count_heap_update(rel: Relation, hot: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_count_heap_delete(rel: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_count_truncate(rel: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_update_heap_dead_tuples(rel: Relation, delta: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_init_function_usage(fcinfo: FunctionCallInfo, fcu: *mut PgStat_FunctionCallUsage);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_end_function_usage(fcu: *mut PgStat_FunctionCallUsage, finalize: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_PgStat(isCommit: bool, parallel: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOSubXact_PgStat(isCommit: bool, nestDepth: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtPrepare_PgStat();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PostPrepare_PgStat();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_twophase_postcommit(
        xid: TransactionId,
        info: uint16,
        recdata: *mut ::std::os::raw::c_void,
        len: uint32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_twophase_postabort(
        xid: TransactionId,
        info: uint16,
        recdata: *mut ::std::os::raw::c_void,
        len: uint32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_send_archiver(xlog: *const ::std::os::raw::c_char, failed: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_send_bgwriter();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_fetch_stat_dbentry(dbid: Oid) -> *mut PgStat_StatDBEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_fetch_stat_tabentry(relid: Oid) -> *mut PgStat_StatTabEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_fetch_stat_beentry(beid: ::std::os::raw::c_int) -> *mut PgBackendStatus;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_fetch_stat_local_beentry(
        beid: ::std::os::raw::c_int,
    ) -> *mut LocalPgBackendStatus;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_fetch_stat_funcentry(funcid: Oid) -> *mut PgStat_StatFuncEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_fetch_stat_numbackends() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_fetch_stat_archiver() -> *mut PgStat_ArchiverStats;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgstat_fetch_global() -> *mut PgStat_GlobalStats;
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ScanKey = *mut ScanKeyData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ScanKeyInit(
        entry: ScanKey,
        attributeNumber: AttrNumber,
        strategy: StrategyNumber,
        procedure: RegProcedure,
        argument: Datum,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[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 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::<Self>::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 pages_removed: BlockNumber,
    pub estimated_count: bool,
    pub num_index_tuples: f64,
    pub tuples_removed: f64,
    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,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_open(relationId: Oid, lockmode: LOCKMODE) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_close(relation: Relation, lockmode: LOCKMODE);
}
#[pgx_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,
        indexInfo: *mut IndexInfo,
    ) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_beginscan_bitmap(
        indexRelation: Relation,
        snapshot: Snapshot,
        nkeys: ::std::os::raw::c_int,
    ) -> IndexScanDesc;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_endscan(scan: IndexScanDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_markpos(scan: IndexScanDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_restrpos(scan: IndexScanDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_parallelscan_estimate(indexrel: Relation, snapshot: Snapshot) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_parallelscan_initialize(
        heaprel: Relation,
        indexrel: Relation,
        snapshot: Snapshot,
        target: ParallelIndexScanDesc,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_parallelrescan(scan: IndexScanDesc);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_getnext_tid(scan: IndexScanDesc, direction: ScanDirection) -> ItemPointer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_fetch_heap(scan: IndexScanDesc, slot: *mut TupleTableSlot) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_getnext_slot(
        scan: IndexScanDesc,
        direction: ScanDirection,
        slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_getbitmap(scan: IndexScanDesc, bitmap: *mut TIDBitmap) -> int64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_bulk_delete(
        info: *mut IndexVacuumInfo,
        stats: *mut IndexBulkDeleteResult,
        callback: IndexBulkDeleteCallback,
        callback_state: *mut ::std::os::raw::c_void,
    ) -> *mut IndexBulkDeleteResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_vacuum_cleanup(
        info: *mut IndexVacuumInfo,
        stats: *mut IndexBulkDeleteResult,
    ) -> *mut IndexBulkDeleteResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_can_return(indexRelation: Relation, attno: ::std::os::raw::c_int) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_getprocid(irel: Relation, attnum: AttrNumber, procnum: uint16) -> RegProcedure;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_getprocinfo(irel: Relation, attnum: AttrNumber, procnum: uint16) -> *mut FmgrInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_store_float8_orderby_distances(
        scan: IndexScanDesc,
        orderByTypes: *mut Oid,
        distances: *mut IndexOrderByDistance,
        recheckOrderBy: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetIndexScan(
        indexRelation: Relation,
        nkeys: ::std::os::raw::c_int,
        norderbys: ::std::os::raw::c_int,
    ) -> IndexScanDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IndexScanEnd(scan: IndexScanDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BuildIndexValueDescription(
        indexRelation: Relation,
        values: *mut Datum,
        isnull: *mut bool,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn systable_getnext(sysscan: SysScanDesc) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn systable_recheck_tuple(sysscan: SysScanDesc, tup: HeapTuple) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn systable_endscan(sysscan: SysScanDesc);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn systable_getnext_ordered(sysscan: SysScanDesc, direction: ScanDirection) -> HeapTuple;
}
#[pgx_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;
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<unsafe extern "C" fn(indexRelation: Relation)>;
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,
        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<unsafe extern "C" fn(reloptions: Datum, validate: bool) -> *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<unsafe extern "C" fn(phasenum: int64) -> *mut ::std::os::raw::c_char>;
pub type amvalidate_function = ::std::option::Option<unsafe extern "C" fn(opclassoid: Oid) -> bool>;
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<unsafe extern "C" fn(scan: IndexScanDesc, tbm: *mut TIDBitmap) -> int64>;
pub type amendscan_function = ::std::option::Option<unsafe extern "C" fn(scan: IndexScanDesc)>;
pub type ammarkpos_function = ::std::option::Option<unsafe extern "C" fn(scan: IndexScanDesc)>;
pub type amrestrpos_function = ::std::option::Option<unsafe extern "C" fn(scan: IndexScanDesc)>;
pub type amestimateparallelscan_function = ::std::option::Option<unsafe extern "C" fn() -> Size>;
pub type aminitparallelscan_function =
    ::std::option::Option<unsafe extern "C" fn(target: *mut ::std::os::raw::c_void)>;
pub type amparallelrescan_function =
    ::std::option::Option<unsafe extern "C" fn(scan: IndexScanDesc)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IndexAmRoutine {
    pub type_: NodeTag,
    pub amstrategies: uint16,
    pub amsupport: 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 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 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetIndexAmRoutine(amhandler: Oid) -> *mut IndexAmRoutine;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetIndexAmRoutineByAmId(amoid: Oid, noerror: bool) -> *mut IndexAmRoutine;
}
#[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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ginGetStats(index: Relation, stats: *mut GinStatsData);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ginUpdateStats(index: Relation, stats: *const GinStatsData, is_build: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogBeginInsert();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogSetRecordFlags(flags: uint8);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogInsert(rmid: RmgrId, info: uint8) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogEnsureRecordSpace(nbuffers: ::std::os::raw::c_int, ndatas: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogRegisterData(data: *mut ::std::os::raw::c_char, len: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogRegisterBuffer(block_id: uint8, buffer: Buffer, flags: uint8);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogRegisterBlock(
        block_id: uint8,
        rnode: *mut RelFileNode,
        forknum: ForkNumber,
        blknum: BlockNumber,
        page: *mut ::std::os::raw::c_char,
        flags: uint8,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogRegisterBufData(
        block_id: uint8,
        data: *mut ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogResetInsertion();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogCheckBufferNeedsBackup(buffer: Buffer) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn log_newpage(
        rnode: *mut RelFileNode,
        forkNum: ForkNumber,
        blk: BlockNumber,
        page: *mut ::std::os::raw::c_char,
        page_std: bool,
    ) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn log_newpage_buffer(buffer: Buffer, page_std: bool) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn log_newpage_range(
        rel: Relation,
        forkNum: ForkNumber,
        startblk: BlockNumber,
        endblk: BlockNumber,
        page_std: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogSaveBufferForHint(buffer: Buffer, buffer_std: bool) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitXLogInsert();
}
extern "C" {
    pub static mut sync_method: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut ThisTimeLineID: TimeLineID;
}
extern "C" {
    pub static mut InRecovery: bool;
}
pub const HotStandbyState_STANDBY_DISABLED: HotStandbyState = 0;
pub const HotStandbyState_STANDBY_INITIALIZED: HotStandbyState = 1;
pub const HotStandbyState_STANDBY_SNAPSHOT_PENDING: HotStandbyState = 2;
pub const HotStandbyState_STANDBY_SNAPSHOT_READY: HotStandbyState = 3;
pub type HotStandbyState = ::std::os::raw::c_uint;
extern "C" {
    pub static mut standbyState: HotStandbyState;
}
pub const RecoveryTargetType_RECOVERY_TARGET_UNSET: RecoveryTargetType = 0;
pub const RecoveryTargetType_RECOVERY_TARGET_XID: RecoveryTargetType = 1;
pub const RecoveryTargetType_RECOVERY_TARGET_TIME: RecoveryTargetType = 2;
pub const RecoveryTargetType_RECOVERY_TARGET_NAME: RecoveryTargetType = 3;
pub const RecoveryTargetType_RECOVERY_TARGET_LSN: RecoveryTargetType = 4;
pub const RecoveryTargetType_RECOVERY_TARGET_IMMEDIATE: RecoveryTargetType = 5;
pub type RecoveryTargetType = ::std::os::raw::c_uint;
pub const RecoveryTargetTimeLineGoal_RECOVERY_TARGET_TIMELINE_CONTROLFILE:
    RecoveryTargetTimeLineGoal = 0;
pub const RecoveryTargetTimeLineGoal_RECOVERY_TARGET_TIMELINE_LATEST: RecoveryTargetTimeLineGoal =
    1;
pub const RecoveryTargetTimeLineGoal_RECOVERY_TARGET_TIMELINE_NUMERIC: RecoveryTargetTimeLineGoal =
    2;
pub type RecoveryTargetTimeLineGoal = ::std::os::raw::c_uint;
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 reachedConsistency: bool;
}
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_segments: ::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: bool;
}
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 recoveryRestoreCommand: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut recoveryEndCommand: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut archiveCleanupCommand: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut recoveryTargetInclusive: bool;
}
extern "C" {
    pub static mut recoveryTargetAction: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut recovery_min_apply_delay: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut PrimaryConnInfo: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut PrimarySlotName: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut recoveryTargetXid: TransactionId;
}
extern "C" {
    pub static mut recovery_target_time_string: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut recoveryTargetName: *const ::std::os::raw::c_char;
}
extern "C" {
    pub static mut recoveryTargetLSN: XLogRecPtr;
}
extern "C" {
    pub static mut recoveryTarget: RecoveryTargetType;
}
extern "C" {
    pub static mut PromoteTriggerFile: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut recoveryTargetTimeLineGoal: RecoveryTargetTimeLineGoal;
}
extern "C" {
    pub static mut recoveryTargetTLIRequested: TimeLineID;
}
extern "C" {
    pub static mut recoveryTargetTLI: TimeLineID;
}
extern "C" {
    pub static mut CheckPointSegments: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut StandbyModeRequested: bool;
}
extern "C" {
    pub static mut StandbyMode: bool;
}
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 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;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct XLogRecData {
    _unused: [u8; 0],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogInsertRecord(
        rdata: *mut XLogRecData,
        fpw_lsn: XLogRecPtr,
        flags: uint8,
    ) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogFlush(RecPtr: XLogRecPtr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogBackgroundFlush() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogNeedsFlush(RecPtr: XLogRecPtr) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogFileInit(
        segno: XLogSegNo,
        use_existent: *mut bool,
        use_lock: bool,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogFileOpen(segno: XLogSegNo) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckXLogRemoved(segno: XLogSegNo, tli: TimeLineID);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogGetLastRemovedSegno() -> XLogSegNo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogSetAsyncXactLSN(record: XLogRecPtr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogSetReplicationSlotMinimumLSN(lsn: XLogRecPtr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xlog_redo(record: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xlog_desc(buf: StringInfo, record: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xlog_identify(info: uint8) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn issue_xlog_fsync(fd: ::std::os::raw::c_int, segno: XLogSegNo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RecoveryInProgress() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetRecoveryState() -> RecoveryState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HotStandbyActive() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HotStandbyActiveInReplay() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogInsertAllowed() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetXLogReceiptTime(rtime: *mut TimestampTz, fromStream: *mut bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetXLogReplayRecPtr(replayTLI: *mut TimeLineID) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetXLogInsertRecPtr() -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetXLogWriteRecPtr() -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RecoveryIsPaused() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetRecoveryPause(recoveryPause: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetLatestXTime() -> TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentChunkReplayStartTime() -> TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogFileNameP(tli: TimeLineID, segno: XLogSegNo) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UpdateControlFile();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetSystemIdentifier() -> uint64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetMockAuthenticationNonce() -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DataChecksumsEnabled() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetFakeLSNForUnloggedRel() -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLOGShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLOGShmemInit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BootStrapXLOG();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LocalProcessControlFile(reset: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StartupXLOG();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ShutdownXLOG(code: ::std::os::raw::c_int, arg: Datum);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitXLOGAccess();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateCheckPoint(flags: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateRestartPoint(flags: ::std::os::raw::c_int) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogPutNextOid(nextOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogRestorePoint(rpName: *const ::std::os::raw::c_char) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UpdateFullPageWrites();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetFullPageWriteInfo(RedoRecPtr_p: *mut XLogRecPtr, doPageWrites_p: *mut bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetRedoRecPtr() -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetInsertRecPtr() -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetFlushRecPtr() -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetLastImportantRecPtr() -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemovePromoteSignalFiles();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckPromoteSignal() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn WakeupRecovery();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetWalWriterSleeping(sleeping: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XLogRequestWalReceiverReply();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn assign_max_wal_size(newval: ::std::os::raw::c_int, extra: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn assign_checkpoint_completion_target(newval: f64, extra: *mut ::std::os::raw::c_void);
}
pub const SessionBackupState_SESSION_BACKUP_NONE: SessionBackupState = 0;
pub const SessionBackupState_SESSION_BACKUP_EXCLUSIVE: SessionBackupState = 1;
pub const SessionBackupState_SESSION_BACKUP_NON_EXCLUSIVE: SessionBackupState = 2;
pub type SessionBackupState = ::std::os::raw::c_uint;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn do_pg_start_backup(
        backupidstr: *const ::std::os::raw::c_char,
        fast: bool,
        starttli_p: *mut TimeLineID,
        labelfile: StringInfo,
        tablespaces: *mut *mut List,
        tblspcmapfile: StringInfo,
        infotbssize: bool,
        needtblspcmapfile: bool,
    ) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn do_pg_stop_backup(
        labelfile: *mut ::std::os::raw::c_char,
        waitforarchive: bool,
        stoptli_p: *mut TimeLineID,
    ) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn do_pg_abort_backup(code: ::std::os::raw::c_int, arg: Datum);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn register_persistent_abort_backup_handler();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_backup_status() -> SessionBackupState;
}
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::<Self>::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::<Self>::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<GISTENTRY>,
}
impl Default for GistEntryVector {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn relation_open(relationId: Oid, lockmode: LOCKMODE) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn try_relation_open(relationId: Oid, lockmode: LOCKMODE) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn relation_openrv(relation: *const RangeVar, lockmode: LOCKMODE) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn relation_openrv_extended(
        relation: *const RangeVar,
        lockmode: LOCKMODE,
        missing_ok: bool,
    ) -> Relation;
}
#[pgx_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_flags: uint32,
    pub rs_parallel: *mut ParallelTableScanDescData,
}
impl Default for TableScanDescData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type ParallelBlockTableScanDesc = *mut ParallelBlockTableScanDescData;
#[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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_open(relationId: Oid, lockmode: LOCKMODE) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_openrv(relation: *const RangeVar, lockmode: LOCKMODE) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_openrv_extended(
        relation: *const RangeVar,
        lockmode: LOCKMODE,
        missing_ok: bool,
    ) -> Relation;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_close(relation: Relation, lockmode: LOCKMODE);
}
pub type EOM_get_flat_size_method =
    ::std::option::Option<unsafe extern "C" fn(eohptr: *mut ExpandedObjectHeader) -> 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DatumGetEOHP(d: Datum) -> *mut ExpandedObjectHeader;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EOH_init_header(
        eohptr: *mut ExpandedObjectHeader,
        methods: *const ExpandedObjectMethods,
        obj_context: MemoryContext,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EOH_get_flat_size(eohptr: *mut ExpandedObjectHeader) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EOH_flatten_into(
        eohptr: *mut ExpandedObjectHeader,
        result: *mut ::std::os::raw::c_void,
        allocated_size: Size,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MakeExpandedObjectReadOnlyInternal(d: Datum) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransferExpandedObject(d: Datum, new_parent: MemoryContext) -> Datum;
}
#[pgx_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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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;
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_map(
        arrayd: Datum,
        exprstate: *mut ExprState,
        econtext: *mut ExprContext,
        retType: Oid,
        amstate: *mut ArrayMapState,
    ) -> Datum;
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn construct_empty_array(elmtype: Oid) -> *mut ArrayType;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn construct_empty_expanded_array(
        element_type: Oid,
        parentcontext: MemoryContext,
        metacache: *mut ArrayMetaState,
    ) -> *mut ExpandedArrayHeader;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_contains_nulls(array: *mut ArrayType) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn initArrayResult(
        element_type: Oid,
        rcontext: MemoryContext,
        subcontext: bool,
    ) -> *mut ArrayBuildState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn accumArrayResult(
        astate: *mut ArrayBuildState,
        dvalue: Datum,
        disnull: bool,
        element_type: Oid,
        rcontext: MemoryContext,
    ) -> *mut ArrayBuildState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeArrayResult(astate: *mut ArrayBuildState, rcontext: MemoryContext) -> Datum;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn initArrayResultArr(
        array_type: Oid,
        element_type: Oid,
        rcontext: MemoryContext,
        subcontext: bool,
    ) -> *mut ArrayBuildStateArr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn accumArrayResultArr(
        astate: *mut ArrayBuildStateArr,
        dvalue: Datum,
        disnull: bool,
        array_type: Oid,
        rcontext: MemoryContext,
    ) -> *mut ArrayBuildStateArr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeArrayResultArr(
        astate: *mut ArrayBuildStateArr,
        rcontext: MemoryContext,
        release: bool,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn initArrayResultAny(
        input_type: Oid,
        rcontext: MemoryContext,
        subcontext: bool,
    ) -> *mut ArrayBuildStateAny;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn accumArrayResultAny(
        astate: *mut ArrayBuildStateAny,
        dvalue: Datum,
        disnull: bool,
        input_type: Oid,
        rcontext: MemoryContext,
    ) -> *mut ArrayBuildStateAny;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeArrayResultAny(
        astate: *mut ArrayBuildStateAny,
        rcontext: MemoryContext,
        release: bool,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_create_iterator(
        arr: *mut ArrayType,
        slice_ndim: ::std::os::raw::c_int,
        mstate: *mut ArrayMetaState,
    ) -> ArrayIterator;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_iterate(iterator: ArrayIterator, value: *mut Datum, isnull: *mut bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_free_iterator(iterator: ArrayIterator);
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ArrayGetIntegerTypmods(arr: *mut ArrayType, n: *mut ::std::os::raw::c_int)
        -> *mut int32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn expand_array(
        arraydatum: Datum,
        parentcontext: MemoryContext,
        metacache: *mut ArrayMetaState,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DatumGetExpandedArray(d: Datum) -> *mut ExpandedArrayHeader;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DatumGetExpandedArrayX(
        d: Datum,
        metacache: *mut ArrayMetaState,
    ) -> *mut ExpandedArrayHeader;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DatumGetAnyArrayP(d: Datum) -> *mut AnyArrayType;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn deconstruct_expanded_array(eah: *mut ExpandedArrayHeader);
}
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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeConfigVariables(list: *mut ConfigVariable);
}
#[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::<Self>::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<unsafe extern "C" fn(newval: bool, extra: *mut ::std::os::raw::c_void)>;
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<unsafe extern "C" fn(newval: f64, extra: *mut ::std::os::raw::c_void)>;
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<unsafe extern "C" fn() -> *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 log_duration: bool;
}
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_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_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_xact_sample_rate: f64;
}
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;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EmitWarningsOnPlaceholders(className: *const ::std::os::raw::c_char);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetConfigOptionResetString(
        name: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetConfigOptionFlags(
        name: *const ::std::os::raw::c_char,
        missing_ok: bool,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcessConfigFile(context: GucContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitializeGUCOptions();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SelectConfigFiles(
        userDoption: *const ::std::os::raw::c_char,
        progname: *const ::std::os::raw::c_char,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResetAllOptions();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtStart_GUC();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn NewGUCNestLevel() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_GUC(isCommit: bool, nestLevel: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BeginReportingGUCOptions();
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterSystemSetConfigFile(setstmt: *mut AlterSystemStmt);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetConfigOptionByNum(
        varnum: ::std::os::raw::c_int,
        values: *mut *const ::std::os::raw::c_char,
        noshow: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetNumConfigOptions() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetPGVariable(name: *const ::std::os::raw::c_char, args: *mut List, is_local: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetPGVariable(name: *const ::std::os::raw::c_char, dest: *mut DestReceiver);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetPGVariableResultDesc(name: *const ::std::os::raw::c_char) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecSetVariableStmt(stmt: *mut VariableSetStmt, isTopLevel: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExtractSetVariableArgs(stmt: *mut VariableSetStmt) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcessGUCArray(
        array: *mut ArrayType,
        context: GucContext,
        source: GucSource,
        action: GucAction,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GUCArrayDelete(
        array: *mut ArrayType,
        name: *const ::std::os::raw::c_char,
    ) -> *mut ArrayType;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GUCArrayReset(array: *mut ArrayType) -> *mut ArrayType;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EstimateGUCStateSpace() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SerializeGUCState(maxsize: Size, start_address: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RestoreGUCState(gucstate: *mut ::std::os::raw::c_void);
}
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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GUC_check_errcode(sqlerrcode: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_default_tablespace(
        newval: *mut *mut ::std::os::raw::c_char,
        extra: *mut *mut ::std::os::raw::c_void,
        source: GucSource,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_temp_tablespaces(
        newval: *mut *mut ::std::os::raw::c_char,
        extra: *mut *mut ::std::os::raw::c_void,
        source: GucSource,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn assign_temp_tablespaces(
        newval: *const ::std::os::raw::c_char,
        extra: *mut ::std::os::raw::c_void,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_search_path(
        newval: *mut *mut ::std::os::raw::c_char,
        extra: *mut *mut ::std::os::raw::c_void,
        source: GucSource,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn assign_search_path(
        newval: *const ::std::os::raw::c_char,
        extra: *mut ::std::os::raw::c_void,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_wal_buffers(
        newval: *mut ::std::os::raw::c_int,
        extra: *mut *mut ::std::os::raw::c_void,
        source: GucSource,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn assign_xlog_sync_method(
        new_sync_method: ::std::os::raw::c_int,
        extra: *mut ::std::os::raw::c_void,
    );
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type Form_pg_class = *mut FormData_pg_class;
#[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 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type Form_pg_index = *mut FormData_pg_index;
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_GROUP_BY: ParseExprKind = 18;
pub const ParseExprKind_EXPR_KIND_ORDER_BY: ParseExprKind = 19;
pub const ParseExprKind_EXPR_KIND_DISTINCT_ON: ParseExprKind = 20;
pub const ParseExprKind_EXPR_KIND_LIMIT: ParseExprKind = 21;
pub const ParseExprKind_EXPR_KIND_OFFSET: ParseExprKind = 22;
pub const ParseExprKind_EXPR_KIND_RETURNING: ParseExprKind = 23;
pub const ParseExprKind_EXPR_KIND_VALUES: ParseExprKind = 24;
pub const ParseExprKind_EXPR_KIND_VALUES_SINGLE: ParseExprKind = 25;
pub const ParseExprKind_EXPR_KIND_CHECK_CONSTRAINT: ParseExprKind = 26;
pub const ParseExprKind_EXPR_KIND_DOMAIN_CHECK: ParseExprKind = 27;
pub const ParseExprKind_EXPR_KIND_COLUMN_DEFAULT: ParseExprKind = 28;
pub const ParseExprKind_EXPR_KIND_FUNCTION_DEFAULT: ParseExprKind = 29;
pub const ParseExprKind_EXPR_KIND_INDEX_EXPRESSION: ParseExprKind = 30;
pub const ParseExprKind_EXPR_KIND_INDEX_PREDICATE: ParseExprKind = 31;
pub const ParseExprKind_EXPR_KIND_ALTER_COL_TRANSFORM: ParseExprKind = 32;
pub const ParseExprKind_EXPR_KIND_EXECUTE_PARAMETER: ParseExprKind = 33;
pub const ParseExprKind_EXPR_KIND_TRIGGER_WHEN: ParseExprKind = 34;
pub const ParseExprKind_EXPR_KIND_POLICY: ParseExprKind = 35;
pub const ParseExprKind_EXPR_KIND_PARTITION_BOUND: ParseExprKind = 36;
pub const ParseExprKind_EXPR_KIND_PARTITION_EXPRESSION: ParseExprKind = 37;
pub const ParseExprKind_EXPR_KIND_CALL_ARGUMENT: ParseExprKind = 38;
pub const ParseExprKind_EXPR_KIND_COPY_WHERE: ParseExprKind = 39;
pub const ParseExprKind_EXPR_KIND_GENERATED_COLUMN: ParseExprKind = 40;
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_joinexprs: *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_rangetblentry: *mut RangeTblEntry,
    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::<Self>::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_rte: *mut RangeTblEntry,
    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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_parsestate(parentParseState: *mut ParseState) -> *mut ParseState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn free_parsestate(pstate: *mut ParseState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn parser_errposition(
        pstate: *mut ParseState,
        location: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setup_parser_errposition_callback(
        pcbstate: *mut ParseCallbackState,
        pstate: *mut ParseState,
        location: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cancel_parser_errposition_callback(pcbstate: *mut ParseCallbackState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_var(
        pstate: *mut ParseState,
        rte: *mut RangeTblEntry,
        attrno: ::std::os::raw::c_int,
        location: ::std::os::raw::c_int,
    ) -> *mut Var;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn transformContainerType(containerType: *mut Oid, containerTypmod: *mut int32) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn transformContainerSubscripts(
        pstate: *mut ParseState,
        containerBase: *mut Node,
        containerType: Oid,
        elementType: Oid,
        containerTypMod: int32,
        indirection: *mut List,
        assignFrom: *mut Node,
    ) -> *mut SubscriptingRef;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_const(
        pstate: *mut ParseState,
        value: *mut Value,
        location: ::std::os::raw::c_int,
    ) -> *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::<Self>::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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn acldefault(objtype: ObjectType, ownerId: Oid) -> *mut Acl;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_user_default_acl(objtype: ObjectType, ownerId: Oid, nsp_oid: Oid) -> *mut Acl;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordDependencyOnNewAcl(
        classId: Oid,
        objectId: Oid,
        objsubId: int32,
        ownerId: Oid,
        acl: *mut Acl,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclnewowner(old_acl: *const Acl, oldOwnerId: Oid, newOwnerId: Oid) -> *mut Acl;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_empty_acl() -> *mut Acl;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclcopy(orig_acl: *const Acl) -> *mut Acl;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclconcat(left_acl: *const Acl, right_acl: *const Acl) -> *mut Acl;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclmerge(left_acl: *const Acl, right_acl: *const Acl, ownerId: Oid) -> *mut Acl;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclitemsort(acl: *mut Acl);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclequal(left_acl: *const Acl, right_acl: *const Acl) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclmask(
        acl: *const Acl,
        roleid: Oid,
        ownerId: Oid,
        mask: AclMode,
        how: AclMaskHow,
    ) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclmembers(acl: *const Acl, roleids: *mut *mut Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_privs_of_role(member: Oid, role: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_member_of_role(member: Oid, role: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_member_of_role_nosuper(member: Oid, role: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_admin_of_role(member: Oid, role: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_is_member_of_role(member: Oid, role: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_role_oid(rolename: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_role_oid_or_public(rolename: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rolespec_oid(role: *const RoleSpec, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_rolespec_name(role: *const RoleSpec, detail_msg: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rolespec_tuple(role: *const RoleSpec) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rolespec_name(role: *const RoleSpec) -> *mut ::std::os::raw::c_char;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn initialize_acl();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecuteGrantStmt(stmt: *mut GrantStmt);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecAlterDefaultPrivilegesStmt(
        pstate: *mut ParseState,
        stmt: *mut AlterDefaultPrivilegesStmt,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveRoleFromObjectACL(roleid: Oid, classid: Oid, objid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveDefaultACLById(defaclOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_attribute_aclmask(
        table_oid: Oid,
        attnum: AttrNumber,
        roleid: Oid,
        mask: AclMode,
        how: AclMaskHow,
    ) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_class_aclmask(table_oid: Oid, roleid: Oid, mask: AclMode, how: AclMaskHow)
        -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_database_aclmask(db_oid: Oid, roleid: Oid, mask: AclMode, how: AclMaskHow)
        -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_proc_aclmask(proc_oid: Oid, roleid: Oid, mask: AclMode, how: AclMaskHow) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_language_aclmask(
        lang_oid: Oid,
        roleid: Oid,
        mask: AclMode,
        how: AclMaskHow,
    ) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_largeobject_aclmask_snapshot(
        lobj_oid: Oid,
        roleid: Oid,
        mask: AclMode,
        how: AclMaskHow,
        snapshot: Snapshot,
    ) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_namespace_aclmask(
        nsp_oid: Oid,
        roleid: Oid,
        mask: AclMode,
        how: AclMaskHow,
    ) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tablespace_aclmask(
        spc_oid: Oid,
        roleid: Oid,
        mask: AclMode,
        how: AclMaskHow,
    ) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_foreign_data_wrapper_aclmask(
        fdw_oid: Oid,
        roleid: Oid,
        mask: AclMode,
        how: AclMaskHow,
    ) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_foreign_server_aclmask(
        srv_oid: Oid,
        roleid: Oid,
        mask: AclMode,
        how: AclMaskHow,
    ) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_type_aclmask(type_oid: Oid, roleid: Oid, mask: AclMode, how: AclMaskHow) -> AclMode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_attribute_aclcheck(
        table_oid: Oid,
        attnum: AttrNumber,
        roleid: Oid,
        mode: AclMode,
    ) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_attribute_aclcheck_all(
        table_oid: Oid,
        roleid: Oid,
        mode: AclMode,
        how: AclMaskHow,
    ) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_class_aclcheck(table_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_database_aclcheck(db_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_proc_aclcheck(proc_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_language_aclcheck(lang_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_largeobject_aclcheck_snapshot(
        lang_oid: Oid,
        roleid: Oid,
        mode: AclMode,
        snapshot: Snapshot,
    ) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_namespace_aclcheck(nsp_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tablespace_aclcheck(spc_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_foreign_data_wrapper_aclcheck(fdw_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_foreign_server_aclcheck(srv_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_type_aclcheck(type_oid: Oid, roleid: Oid, mode: AclMode) -> AclResult;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclcheck_error(
        aclerr: AclResult,
        objtype: ObjectType,
        objectname: *const ::std::os::raw::c_char,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclcheck_error_type(aclerr: AclResult, typeOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordExtObjInitPriv(objoid: Oid, classoid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn removeExtObjInitPriv(objoid: Oid, classoid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_class_ownercheck(class_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_type_ownercheck(type_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_oper_ownercheck(oper_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_proc_ownercheck(proc_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_language_ownercheck(lan_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_largeobject_ownercheck(lobj_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_namespace_ownercheck(nsp_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tablespace_ownercheck(spc_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_opclass_ownercheck(opc_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_opfamily_ownercheck(opf_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_database_ownercheck(db_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_collation_ownercheck(coll_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_conversion_ownercheck(conv_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ts_dict_ownercheck(dict_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ts_config_ownercheck(cfg_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_foreign_data_wrapper_ownercheck(srv_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_foreign_server_ownercheck(srv_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_event_trigger_ownercheck(et_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_extension_ownercheck(ext_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_publication_ownercheck(pub_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_subscription_ownercheck(sub_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_statistics_object_ownercheck(stat_oid: Oid, roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_createrole_privilege(roleid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_bypassrls_privilege(roleid: Oid) -> bool;
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static InvalidObjectAddress: ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_address(
        objtype: ObjectType,
        object: *mut Node,
        relp: *mut Relation,
        lockmode: LOCKMODE,
        missing_ok: bool,
    ) -> ObjectAddress;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_object_ownership(
        roleid: Oid,
        objtype: ObjectType,
        address: ObjectAddress,
        object: *mut Node,
        relation: Relation,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_namespace(address: *const ObjectAddress) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_objectclass_supported(class_id: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_oid_index(class_id: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_catcache_oid(class_id: Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_catcache_name(class_id: Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_attnum_oid(class_id: Oid) -> AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_attnum_name(class_id: Oid) -> AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_attnum_namespace(class_id: Oid) -> AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_attnum_owner(class_id: Oid) -> AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_attnum_acl(class_id: Oid) -> AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_type(class_id: Oid, object_id: Oid) -> ObjectType;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_object_namensp_unique(class_id: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_catalog_object_by_oid(
        catalog: Relation,
        oidcol: AttrNumber,
        objectId: Oid,
    ) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getObjectDescription(object: *const ObjectAddress) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getObjectDescriptionOids(classid: Oid, objid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn read_objtype_from_string(
        objtype: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getObjectTypeDescription(object: *const ObjectAddress) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getObjectIdentity(address: *const ObjectAddress) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getObjectIdentityParts(
        address: *const ObjectAddress,
        objname: *mut *mut List,
        objargs: *mut *mut List,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn strlist_to_textarray(list: *mut List) -> *mut ArrayType;
}
#[pgx_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,
}
impl Default for FormData_pg_publication {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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, Copy, Clone)]
pub struct Publication {
    pub oid: Oid,
    pub name: *mut ::std::os::raw::c_char,
    pub alltables: bool,
    pub pubactions: PublicationActions,
}
impl Default for Publication {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetPublication(pubid: Oid) -> *mut Publication;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetPublicationByName(
        pubname: *const ::std::os::raw::c_char,
        missing_ok: bool,
    ) -> *mut Publication;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetRelationPublications(relid: Oid) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetPublicationRelations(pubid: Oid) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetAllTablesPublications() -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetAllTablesPublicationRelations() -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_publishable_relation(rel: Relation) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn publication_add_relation(
        pubid: Oid,
        targetrel: Relation,
        if_not_exists: bool,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_publication_oid(pubname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_publication_name(pubid: Oid, missing_ok: bool) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_publication_tables(fcinfo: FunctionCallInfo) -> Datum;
}
#[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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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::<Self>::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::<Self>::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_node: RelFileNode,
    pub rd_smgr: *mut SMgrRelationData,
    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_newRelfilenodeSubid: 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: *mut PartitionKeyData,
    pub rd_partkeycxt: MemoryContext,
    pub rd_partdesc: *mut PartitionDescData,
    pub rd_pdcxt: MemoryContext,
    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_indexattr: *mut Bitmapset,
    pub rd_keyattr: *mut Bitmapset,
    pub rd_pkattr: *mut Bitmapset,
    pub rd_idattr: *mut Bitmapset,
    pub rd_pubactions: *mut PublicationActions,
    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_amcache: *mut ::std::os::raw::c_void,
    pub rd_fdwroutine: *mut FdwRoutine,
    pub rd_toastoid: Oid,
    pub pgstat_info: *mut PgStat_TableStatus,
}
impl Default for RelationData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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 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 analyze_scale_factor: float8,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct StdRdOptions {
    pub vl_len_: int32,
    pub fillfactor: ::std::os::raw::c_int,
    pub vacuum_cleanup_index_scale_factor: float8,
    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: bool,
    pub vacuum_truncate: bool,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct ViewOptions {
    pub vl_len_: int32,
    pub security_barrier: bool,
    pub check_option_offset: ::std::os::raw::c_int,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationIncrementReferenceCount(rel: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationDecrementReferenceCount(rel: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetRepsetList(rel: Relation) -> *mut List;
}
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_ANALYZE: ScanOptions = 8;
pub const ScanOptions_SO_TYPE_TIDSCAN: ScanOptions = 256;
pub const ScanOptions_SO_ALLOW_STRAT: ScanOptions = 16;
pub const ScanOptions_SO_ALLOW_SYNC: ScanOptions = 32;
pub const ScanOptions_SO_ALLOW_PAGEMODE: ScanOptions = 64;
pub const ScanOptions_SO_TEMP_SNAPSHOT: ScanOptions = 128;
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;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct TM_FailureData {
    pub ctid: ItemPointerData,
    pub xmax: TransactionId,
    pub cmax: CommandId,
    pub traversed: bool,
}
pub type IndexBuildCallback = ::std::option::Option<
    unsafe extern "C" fn(
        index: Relation,
        htup: HeapTuple,
        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<unsafe extern "C" fn(rel: Relation) -> *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<unsafe extern "C" fn(scan: TableScanDesc)>,
    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 parallelscan_estimate: ::std::option::Option<unsafe extern "C" fn(rel: Relation) -> Size>,
    pub parallelscan_initialize: ::std::option::Option<
        unsafe extern "C" fn(rel: Relation, pscan: ParallelTableScanDesc) -> Size,
    >,
    pub parallelscan_reinitialize:
        ::std::option::Option<unsafe extern "C" fn(rel: Relation, pscan: ParallelTableScanDesc)>,
    pub index_fetch_begin:
        ::std::option::Option<unsafe extern "C" fn(rel: Relation) -> *mut IndexFetchTableData>,
    pub index_fetch_reset:
        ::std::option::Option<unsafe extern "C" fn(data: *mut IndexFetchTableData)>,
    pub index_fetch_end:
        ::std::option::Option<unsafe extern "C" fn(data: *mut IndexFetchTableData)>,
    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<unsafe extern "C" fn(scan: TableScanDesc, tid: ItemPointer) -> bool>,
    pub tuple_get_latest_tid:
        ::std::option::Option<unsafe extern "C" fn(scan: TableScanDesc, tid: ItemPointer)>,
    pub tuple_satisfies_snapshot: ::std::option::Option<
        unsafe extern "C" fn(rel: Relation, slot: *mut TupleTableSlot, snapshot: Snapshot) -> bool,
    >,
    pub compute_xid_horizon_for_tuples: ::std::option::Option<
        unsafe extern "C" fn(
            rel: Relation,
            items: *mut ItemPointerData,
            nitems: ::std::os::raw::c_int,
        ) -> 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 bool,
        ) -> 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<unsafe extern "C" fn(rel: Relation, options: ::std::os::raw::c_int)>,
    pub relation_set_new_filenode: ::std::option::Option<
        unsafe extern "C" fn(
            rel: Relation,
            newrnode: *const RelFileNode,
            persistence: ::std::os::raw::c_char,
            freezeXid: *mut TransactionId,
            minmulti: *mut MultiXactId,
        ),
    >,
    pub relation_nontransactional_truncate:
        ::std::option::Option<unsafe extern "C" fn(rel: Relation)>,
    pub relation_copy_data:
        ::std::option::Option<unsafe extern "C" fn(rel: Relation, newrnode: *const RelFileNode)>,
    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(
            onerel: 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<unsafe extern "C" fn(rel: Relation) -> bool>,
    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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_slot_callbacks(rel: Relation) -> *const TupleTableSlotOps;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_slot_create(rel: Relation, reglist: *mut *mut List) -> *mut TupleTableSlot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_beginscan_catalog(
        rel: Relation,
        nkeys: ::std::os::raw::c_int,
        key: *mut ScanKeyData,
    ) -> TableScanDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_scan_update_snapshot(scan: TableScanDesc, snapshot: Snapshot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_parallelscan_estimate(rel: Relation, snapshot: Snapshot) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_parallelscan_initialize(
        rel: Relation,
        pscan: ParallelTableScanDesc,
        snapshot: Snapshot,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_beginscan_parallel(rel: Relation, pscan: ParallelTableScanDesc) -> TableScanDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_index_fetch_tuple_check(
        rel: Relation,
        tid: ItemPointer,
        snapshot: Snapshot,
        all_dead: *mut bool,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_tuple_get_latest_tid(scan: TableScanDesc, tid: ItemPointer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn simple_table_tuple_insert(rel: Relation, slot: *mut TupleTableSlot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn simple_table_tuple_delete(rel: Relation, tid: ItemPointer, snapshot: Snapshot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn simple_table_tuple_update(
        rel: Relation,
        otid: ItemPointer,
        slot: *mut TupleTableSlot,
        snapshot: Snapshot,
        update_indexes: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_block_parallelscan_estimate(rel: Relation) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_block_parallelscan_initialize(rel: Relation, pscan: ParallelTableScanDesc)
        -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_block_parallelscan_reinitialize(rel: Relation, pscan: ParallelTableScanDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_block_parallelscan_nextpage(
        rel: Relation,
        pbscan: ParallelBlockTableScanDesc,
    ) -> BlockNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_block_parallelscan_startblock_init(
        rel: Relation,
        pbscan: ParallelBlockTableScanDesc,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTableAmRoutine(amhandler: Oid) -> *const TableAmRoutine;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetHeapamTableAmRoutine() -> *const TableAmRoutine;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_default_table_access_method(
        newval: *mut *mut ::std::os::raw::c_char,
        extra: *mut *mut ::std::os::raw::c_void,
        source: GucSource,
    ) -> bool;
}
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_cblock: BlockNumber,
    pub rs_cbuf: Buffer,
    pub rs_strategy: BufferAccessStrategy,
    pub rs_ctup: HeapTupleData,
    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::<Self>::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::<Self>::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;
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_setscanlimits(scan: TableScanDesc, startBlk: BlockNumber, endBlk: BlockNumber);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heapgetpage(scan: TableScanDesc, page: BlockNumber);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_rescan(
        scan: TableScanDesc,
        key: ScanKey,
        set_params: bool,
        allow_strat: bool,
        allow_sync: bool,
        allow_pagemode: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_endscan(scan: TableScanDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_getnext(scan: TableScanDesc, direction: ScanDirection) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_getnextslot(
        sscan: TableScanDesc,
        direction: ScanDirection,
        slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_fetch(
        relation: Relation,
        snapshot: Snapshot,
        tuple: HeapTuple,
        userbuf: *mut Buffer,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_fetch_extended(
        relation: Relation,
        snapshot: Snapshot,
        tuple: HeapTuple,
        userbuf: *mut Buffer,
        keep_buf: bool,
    ) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_get_latest_tid(scan: TableScanDesc, tid: ItemPointer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setLastTid(tid: ItemPointer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetBulkInsertState() -> BulkInsertState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeBulkInsertState(arg1: BulkInsertState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReleaseBulkInsertStatePin(bistate: BulkInsertState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_insert(
        relation: Relation,
        tup: HeapTuple,
        cid: CommandId,
        options: ::std::os::raw::c_int,
        bistate: BulkInsertState,
    );
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_finish_speculative(relation: Relation, tid: ItemPointer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_abort_speculative(relation: Relation, tid: ItemPointer);
}
#[pgx_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,
    ) -> TM_Result;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_lock_tuple(
        relation: Relation,
        tuple: HeapTuple,
        cid: CommandId,
        mode: LockTupleMode,
        wait_policy: LockWaitPolicy,
        follow_update: bool,
        buffer: *mut Buffer,
        tmfd: *mut TM_FailureData,
    ) -> TM_Result;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_inplace_update(relation: Relation, tuple: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_freeze_tuple(
        tuple: HeapTupleHeader,
        relfrozenxid: TransactionId,
        relminmxid: TransactionId,
        cutoff_xid: TransactionId,
        cutoff_multi: TransactionId,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_tuple_needs_freeze(
        tuple: HeapTupleHeader,
        cutoff_xid: TransactionId,
        cutoff_multi: MultiXactId,
        buf: Buffer,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_tuple_needs_eventual_freeze(tuple: HeapTupleHeader) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn simple_heap_insert(relation: Relation, tup: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn simple_heap_delete(relation: Relation, tid: ItemPointer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn simple_heap_update(relation: Relation, otid: ItemPointer, tup: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_sync(relation: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_compute_xid_horizon_for_tuples(
        rel: Relation,
        items: *mut ItemPointerData,
        nitems: ::std::os::raw::c_int,
    ) -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_page_prune_opt(relation: Relation, buffer: Buffer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_page_prune(
        relation: Relation,
        buffer: Buffer,
        OldestXmin: TransactionId,
        report_stats: bool,
        latestRemovedXid: *mut TransactionId,
    ) -> ::std::os::raw::c_int;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_get_root_tuples(page: Page, root_offsets: *mut OffsetNumber);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ss_report_location(rel: Relation, location: BlockNumber);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ss_get_location(rel: Relation, relnblocks: BlockNumber) -> BlockNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SyncScanShmemInit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SyncScanShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_vacuum_rel(
        onerel: Relation,
        params: *mut VacuumParams,
        bstrategy: BufferAccessStrategy,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleSatisfiesVisibility(
        stup: HeapTuple,
        snapshot: Snapshot,
        buffer: Buffer,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleSatisfiesUpdate(
        stup: HeapTuple,
        curcid: CommandId,
        buffer: Buffer,
    ) -> TM_Result;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleSatisfiesVacuum(
        stup: HeapTuple,
        OldestXmin: TransactionId,
        buffer: Buffer,
    ) -> HTSV_Result;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleSetHintBits(
        tuple: HeapTupleHeader,
        buffer: Buffer,
        infomask: uint16,
        xid: TransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleHeaderIsOnlyLocked(tuple: HeapTupleHeader) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XidInMVCCSnapshot(xid: TransactionId, snapshot: Snapshot) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HeapTupleIsSurelyDead(htup: HeapTuple, OldestXmin: TransactionId) -> bool;
}
#[pgx_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;
}
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_STRING: relopt_type = 3;
pub type relopt_type = ::std::os::raw::c_uint;
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::<Self>::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 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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type validate_string_relopt =
    ::std::option::Option<unsafe extern "C" fn(value: *const ::std::os::raw::c_char)>;
#[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 default_val: *mut ::std::os::raw::c_char,
}
impl Default for relopt_string {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_reloption_kind() -> relopt_kind;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn untransformRelOptions(options: Datum) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn extractRelOptions(
        tuple: HeapTuple,
        tupdesc: TupleDesc,
        amoptions: amoptions_function,
    ) -> *mut bytea;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn parseRelOptions(
        options: Datum,
        validate: bool,
        kind: relopt_kind,
        numrelopts: *mut ::std::os::raw::c_int,
    ) -> *mut relopt_value;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn allocateReloptStruct(
        base: Size,
        options: *mut relopt_value,
        numoptions: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fillRelOptions(
        rdopts: *mut ::std::os::raw::c_void,
        basesize: Size,
        options: *mut relopt_value,
        numoptions: ::std::os::raw::c_int,
        validate: bool,
        elems: *const relopt_parse_elt,
        nelems: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn default_reloptions(reloptions: Datum, validate: bool, kind: relopt_kind) -> *mut bytea;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_reloptions(
        relkind: ::std::os::raw::c_char,
        reloptions: Datum,
        validate: bool,
    ) -> *mut bytea;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn view_reloptions(reloptions: Datum, validate: bool) -> *mut bytea;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_reloptions(
        amoptions: amoptions_function,
        reloptions: Datum,
        validate: bool,
    ) -> *mut bytea;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn attribute_reloptions(reloptions: Datum, validate: bool) -> *mut bytea;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tablespace_reloptions(reloptions: Datum, validate: bool) -> *mut bytea;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTableGetRelOptionsLockLevel(defList: *mut List) -> 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::<Self>::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::<Self>::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::<Self>::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 rnode: RelFileNode,
}
impl Default for SharedInvalSmgrMsg {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SendSharedInvalidMessages(
        msgs: *const SharedInvalidationMessage,
        n: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReceiveSharedInvalidMessages(
        invalFunction: ::std::option::Option<
            unsafe extern "C" fn(msg: *mut SharedInvalidationMessage),
        >,
        resetFunction: ::std::option::Option<unsafe extern "C" fn()>,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HandleCatchupInterrupt();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcessCatchupInterrupt();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xactGetCommittedInvalidationMessages(
        msgs: *mut *mut SharedInvalidationMessage,
        RelcacheInitFileInval: *mut bool,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcessCommittedInvalidationMessages(
        msgs: *mut SharedInvalidationMessage,
        nmsgs: ::std::os::raw::c_int,
        RelcacheInitFileInval: bool,
        dbid: Oid,
        tsid: Oid,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LocalExecuteInvalidationMessage(msg: *mut SharedInvalidationMessage);
}
extern "C" {
    pub static mut PgStartTime: TimestampTz;
}
extern "C" {
    pub static mut PgReloadTime: TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anytimestamp_typmod_check(istz: bool, typmod: int32) -> int32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentTimestamp() -> TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetSQLCurrentTimestamp(typmod: int32) -> TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetSQLLocalTimestamp(typmod: int32) -> Timestamp;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TimestampDifferenceMilliseconds(
        start_time: TimestampTz,
        stop_time: TimestampTz,
    ) -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TimestampDifferenceExceeds(
        start_time: TimestampTz,
        stop_time: TimestampTz,
        msec: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_t_to_timestamptz(tm: pg_time_t) -> TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_to_time_t(t: TimestampTz) -> pg_time_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_to_str(t: TimestampTz) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tm2timestamp(
        tm: *mut pg_tm,
        fsec: fsec_t,
        tzp: *mut ::std::os::raw::c_int,
        dt: *mut Timestamp,
    ) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dt2time(
        dt: 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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval2tm(span: Interval, tm: *mut pg_tm, fsec: *mut fsec_t) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tm2interval(tm: *mut pg_tm, fsec: fsec_t, span: *mut Interval) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetEpochTimestamp() -> Timestamp;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetEpochTime(tm: *mut pg_tm);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_cmp_internal(dt1: Timestamp, dt2: Timestamp) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TimestampTimestampTzRequiresRewrite() -> bool;
}
#[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<datetkn>,
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static mut months: [*const ::std::os::raw::c_char; 0usize];
}
extern "C" {
    pub static mut days: [*const ::std::os::raw::c_char; 0usize];
}
extern "C" {
    pub static mut day_tab: [[::std::os::raw::c_int; 13usize]; 2usize];
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentDateTime(tm: *mut pg_tm);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentTimeUsec(tm: *mut pg_tm, fsec: *mut fsec_t, tzp: *mut ::std::os::raw::c_int);
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DecodeTimezone(
        str_: *mut ::std::os::raw::c_char,
        tzp: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_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,
    ) -> ::std::os::raw::c_int;
}
#[pgx_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,
        tm: *mut pg_tm,
        fsec: *mut fsec_t,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DecodeISO8601Interval(
        str_: *mut ::std::os::raw::c_char,
        dtype: *mut ::std::os::raw::c_int,
        tm: *mut pg_tm,
        fsec: *mut fsec_t,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DateTimeParseError(
        dterr: ::std::os::raw::c_int,
        str_: *const ::std::os::raw::c_char,
        datatype: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DetermineTimeZoneOffset(tm: *mut pg_tm, tzp: *mut pg_tz) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EncodeInterval(
        tm: *mut pg_tm,
        fsec: fsec_t,
        style: ::std::os::raw::c_int,
        str_: *mut ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EncodeSpecialTimestamp(dt: Timestamp, str_: *mut ::std::os::raw::c_char);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DecodeTimezoneAbbrev(
        field: ::std::os::raw::c_int,
        lowtoken: *mut ::std::os::raw::c_char,
        offset: *mut ::std::os::raw::c_int,
        tz: *mut *mut pg_tz,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DecodeSpecial(
        field: ::std::os::raw::c_int,
        lowtoken: *mut ::std::os::raw::c_char,
        val: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DecodeUnits(
        field: ::std::os::raw::c_int,
        lowtoken: *mut ::std::os::raw::c_char,
        val: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn j2day(jd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TemporalSimplify(max_precis: int32, node: *mut Node) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckDateTokenTables() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConvertTimeZoneAbbrevs(
        abbrevs: *mut tzEntry,
        n: ::std::os::raw::c_int,
    ) -> *mut TimeZoneAbbrevTable;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InstallTimeZoneAbbrevs(tbl: *mut TimeZoneAbbrevTable);
}
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 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<unsafe extern "C" fn(event: XactEvent, arg: *mut ::std::os::raw::c_void)>;
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)]
pub struct xl_xact_assignment {
    pub xtop: TransactionId,
    pub nsubxacts: ::std::os::raw::c_int,
    pub xsub: __IncompleteArrayField<TransactionId>,
}
#[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::<Self>::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<TransactionId>,
}
#[repr(C)]
#[derive(Debug)]
pub struct xl_xact_relfilenodes {
    pub nrels: ::std::os::raw::c_int,
    pub xnodes: __IncompleteArrayField<RelFileNode>,
}
impl Default for xl_xact_relfilenodes {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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<SharedInvalidationMessage>,
}
impl Default for xl_xact_invals {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_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 xnodes: *mut RelFileNode,
    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 abortnodes: *mut RelFileNode,
    pub origin_lsn: XLogRecPtr,
    pub origin_timestamp: TimestampTz,
}
impl Default for xl_xact_parsed_commit {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 xnodes: *mut RelFileNode,
    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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsTransactionState() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsAbortedTransactionBlockState() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTopTransactionId() -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTopTransactionIdIfAny() -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentTransactionId() -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentTransactionIdIfAny() -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetStableLatestTransactionId() -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentSubTransactionId() -> SubTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTopFullTransactionId() -> FullTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTopFullTransactionIdIfAny() -> FullTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentFullTransactionId() -> FullTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentFullTransactionIdIfAny() -> FullTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MarkCurrentTransactionIdLoggedIfAny();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SubTransactionIsActive(subxid: SubTransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentCommandId(used: bool) -> CommandId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetParallelStartTimestamps(xact_ts: TimestampTz, stmt_ts: TimestampTz);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentTransactionStartTimestamp() -> TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentStatementStartTimestamp() -> TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentTransactionStopTimestamp() -> TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetCurrentStatementStartTimestamp();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCurrentTransactionNestLevel() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdIsCurrentTransactionId(xid: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CommandCounterIncrement();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ForceSyncCommit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StartTransactionCommand();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SaveTransactionCharacteristics();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RestoreTransactionCharacteristics();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CommitTransactionCommand();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AbortCurrentTransaction();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BeginTransactionBlock();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EndTransactionBlock(chain: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PrepareTransactionBlock(gid: *const ::std::os::raw::c_char) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UserAbortTransactionBlock(chain: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BeginImplicitTransactionBlock();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EndImplicitTransactionBlock();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReleaseSavepoint(name: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DefineSavepoint(name: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RollbackToSavepoint(name: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BeginInternalSubTransaction(name: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReleaseCurrentSubTransaction();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RollbackAndReleaseCurrentSubTransaction();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsSubTransaction() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EstimateTransactionStateSpace() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SerializeTransactionState(maxsize: Size, start_address: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StartParallelWorkerTransaction(tstatespace: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EndParallelWorkerTransaction();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsTransactionBlock() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsTransactionOrTransactionBlock() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionBlockStatusCode() -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AbortOutOfAnyTransaction();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PreventInTransactionBlock(isTopLevel: bool, stmtType: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RequireTransactionBlock(isTopLevel: bool, stmtType: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn WarnNoTransactionBlock(isTopLevel: bool, stmtType: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsInTransactionBlock(isTopLevel: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterXactCallback(callback: XactCallback, arg: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UnregisterXactCallback(callback: XactCallback, arg: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterSubXactCallback(callback: SubXactCallback, arg: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UnregisterSubXactCallback(callback: SubXactCallback, arg: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xactGetCommittedChildren(ptr: *mut *mut TransactionId) -> ::std::os::raw::c_int;
}
#[pgx_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 RelFileNode,
        nmsgs: ::std::os::raw::c_int,
        msgs: *mut SharedInvalidationMessage,
        relcacheInval: bool,
        forceSync: bool,
        xactflags: ::std::os::raw::c_int,
        twophase_xid: TransactionId,
        twophase_gid: *const ::std::os::raw::c_char,
    ) -> XLogRecPtr;
}
#[pgx_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 RelFileNode,
        xactflags: ::std::os::raw::c_int,
        twophase_xid: TransactionId,
        twophase_gid: *const ::std::os::raw::c_char,
    ) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xact_redo(record: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xact_desc(buf: StringInfo, record: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xact_identify(info: uint8) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ParseCommitRecord(
        info: uint8,
        xlrec: *mut xl_xact_commit,
        parsed: *mut xl_xact_parsed_commit,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ParseAbortRecord(
        info: uint8,
        xlrec: *mut xl_xact_abort,
        parsed: *mut xl_xact_parsed_abort,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EnterParallelMode();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExitParallelMode();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsInParallelMode() -> bool;
}
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 const DependencyType_DEPENDENCY_PIN: DependencyType = 112;
pub type DependencyType = ::std::os::raw::c_uint;
pub const SharedDependencyType_SHARED_DEPENDENCY_PIN: SharedDependencyType = 112;
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_DATABASE: ObjectClass = 25;
pub const ObjectClass_OCLASS_TBLSPACE: ObjectClass = 26;
pub const ObjectClass_OCLASS_FDW: ObjectClass = 27;
pub const ObjectClass_OCLASS_FOREIGN_SERVER: ObjectClass = 28;
pub const ObjectClass_OCLASS_USER_MAPPING: ObjectClass = 29;
pub const ObjectClass_OCLASS_DEFACL: ObjectClass = 30;
pub const ObjectClass_OCLASS_EXTENSION: ObjectClass = 31;
pub const ObjectClass_OCLASS_EVENT_TRIGGER: ObjectClass = 32;
pub const ObjectClass_OCLASS_POLICY: ObjectClass = 33;
pub const ObjectClass_OCLASS_PUBLICATION: ObjectClass = 34;
pub const ObjectClass_OCLASS_PUBLICATION_REL: ObjectClass = 35;
pub const ObjectClass_OCLASS_SUBSCRIPTION: ObjectClass = 36;
pub const ObjectClass_OCLASS_TRANSFORM: ObjectClass = 37;
pub type ObjectClass = ::std::os::raw::c_uint;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AcquireDeletionLock(object: *const ObjectAddress, flags: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReleaseDeletionLock(object: *const ObjectAddress);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn performDeletion(
        object: *const ObjectAddress,
        behavior: DropBehavior,
        flags: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn performMultipleDeletions(
        objects: *const ObjectAddresses,
        behavior: DropBehavior,
        flags: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordDependencyOnExpr(
        depender: *const ObjectAddress,
        expr: *mut Node,
        rtable: *mut List,
        behavior: DependencyType,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordDependencyOnSingleRelExpr(
        depender: *const ObjectAddress,
        expr: *mut Node,
        relId: Oid,
        behavior: DependencyType,
        self_behavior: DependencyType,
        reverse_self: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getObjectClass(object: *const ObjectAddress) -> ObjectClass;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn new_object_addresses() -> *mut ObjectAddresses;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_exact_object_address(object: *const ObjectAddress, addrs: *mut ObjectAddresses);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn object_address_present(
        object: *const ObjectAddress,
        addrs: *const ObjectAddresses,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_object_address_dependencies(
        depender: *const ObjectAddress,
        referenced: *mut ObjectAddresses,
        behavior: DependencyType,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sort_object_addresses(addrs: *mut ObjectAddresses);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn free_object_addresses(addrs: *mut ObjectAddresses);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordDependencyOn(
        depender: *const ObjectAddress,
        referenced: *const ObjectAddress,
        behavior: DependencyType,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordMultipleDependencies(
        depender: *const ObjectAddress,
        referenced: *const ObjectAddress,
        nreferenced: ::std::os::raw::c_int,
        behavior: DependencyType,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordDependencyOnCurrentExtension(object: *const ObjectAddress, isReplace: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn checkMembershipInCurrentExtension(object: *const ObjectAddress);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn deleteDependencyRecordsFor(
        classId: Oid,
        objectId: Oid,
        skipExtensionDeps: bool,
    ) -> ::std::os::raw::c_long;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn changeDependencyFor(
        classId: Oid,
        objectId: Oid,
        refClassId: Oid,
        oldRefObjectId: Oid,
        newRefObjectId: Oid,
    ) -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn changeDependenciesOf(
        classId: Oid,
        oldObjectId: Oid,
        newObjectId: Oid,
    ) -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn changeDependenciesOn(
        refClassId: Oid,
        oldRefObjectId: Oid,
        newRefObjectId: Oid,
    ) -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getExtensionOfObject(classId: Oid, objectId: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getAutoExtensionsOfObject(classId: Oid, objectId: Oid) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sequenceIsOwned(
        seqId: Oid,
        deptype: ::std::os::raw::c_char,
        tableId: *mut Oid,
        colId: *mut int32,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getOwnedSequences(relid: Oid, attnum: AttrNumber) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getOwnedSequence(relid: Oid, attnum: AttrNumber) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_constraint_index(constraintId: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_index_constraint(indexId: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_index_ref_constraints(indexId: Oid) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordSharedDependencyOn(
        depender: *mut ObjectAddress,
        referenced: *mut ObjectAddress,
        deptype: SharedDependencyType,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn deleteSharedDependencyRecordsFor(classId: Oid, objectId: Oid, objectSubId: int32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordDependencyOnOwner(classId: Oid, objectId: Oid, owner: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn changeDependencyOnOwner(classId: Oid, objectId: Oid, newOwnerId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn recordDependencyOnTablespace(classId: Oid, objectId: Oid, tablespace: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn changeDependencyOnTablespace(classId: Oid, objectId: Oid, newTablespaceId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn updateAclDependencies(
        classId: Oid,
        objectId: Oid,
        objectSubId: int32,
        ownerId: Oid,
        noldmembers: ::std::os::raw::c_int,
        oldmembers: *mut Oid,
        nnewmembers: ::std::os::raw::c_int,
        newmembers: *mut Oid,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shdepLockAndCheckObject(classId: Oid, objectId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn copyTemplateDependencies(templateDbId: Oid, newDbId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dropDatabaseDependencies(databaseId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shdepDropOwned(relids: *mut List, behavior: DropBehavior);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shdepReassignOwned(relids: *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 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_check_primary_key(
        heapRel: Relation,
        indexInfo: *mut IndexInfo,
        is_alter_table: bool,
        stmt: *mut IndexStmt,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_create(
        heapRelation: Relation,
        indexRelationName: *const ::std::os::raw::c_char,
        indexRelationId: Oid,
        parentIndexRelid: Oid,
        parentConstraintId: Oid,
        relFileNode: Oid,
        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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_concurrently_create_copy(
        heapRelation: Relation,
        oldIndexId: Oid,
        newName: *const ::std::os::raw::c_char,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_concurrently_build(heapRelationId: Oid, indexRelationId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_concurrently_swap(
        newIndexId: Oid,
        oldIndexId: Oid,
        oldName: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_concurrently_set_dead(heapId: Oid, indexId: Oid);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_drop(indexId: Oid, concurrent: bool, concurrent_lock_mode: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BuildIndexInfo(index: Relation) -> *mut IndexInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BuildDummyIndexInfo(index: Relation) -> *mut IndexInfo;
}
#[pgx_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 AttrNumber,
        maplen: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BuildSpeculativeIndexInfo(index: Relation, ii: *mut IndexInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FormIndexDatum(
        indexInfo: *mut IndexInfo,
        slot: *mut TupleTableSlot,
        estate: *mut EState,
        values: *mut Datum,
        isnull: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_build(
        heapRelation: Relation,
        indexRelation: Relation,
        indexInfo: *mut IndexInfo,
        isreindex: bool,
        parallel: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn validate_index(heapId: Oid, indexId: Oid, snapshot: Snapshot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_set_state_flags(indexId: Oid, action: IndexStateFlagsAction);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IndexGetRelation(indexId: Oid, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reindex_index(
        indexId: Oid,
        skip_constraint_checks: bool,
        relpersistence: ::std::os::raw::c_char,
        options: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reindex_relation(
        relid: Oid,
        flags: ::std::os::raw::c_int,
        options: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReindexIsProcessingHeap(heapOid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReindexIsProcessingIndex(indexOid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResetReindexState(nestLevel: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EstimateReindexStateSpace() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SerializeReindexState(maxsize: Size, start_address: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RestoreReindexState(reindexstate: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IndexSetParentIndex(idx: Relation, parentOid: Oid);
}
pub type CatalogIndexState = *mut ResultRelInfo;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CatalogOpenIndexes(heapRel: Relation) -> CatalogIndexState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CatalogCloseIndexes(indstate: CatalogIndexState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CatalogTupleInsert(heapRel: Relation, tup: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CatalogTupleInsertWithInfo(
        heapRel: Relation,
        tup: HeapTuple,
        indstate: CatalogIndexState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CatalogTupleUpdate(heapRel: Relation, otid: ItemPointer, tup: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CatalogTupleUpdateWithInfo(
        heapRel: Relation,
        otid: ItemPointer,
        tup: HeapTuple,
        indstate: CatalogIndexState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CatalogTupleDelete(heapRel: Relation, tid: ItemPointer);
}
extern "C" {
    pub static mut no_such_variable: ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug)]
pub struct _FuncCandidateList {
    pub next: *mut _FuncCandidateList,
    pub pathpos: ::std::os::raw::c_int,
    pub oid: Oid,
    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<Oid>,
}
impl Default for _FuncCandidateList {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
}
impl Default for OverrideSearchPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
    ),
>;
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RangeVarGetCreationNamespace(newRelation: *const RangeVar) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RangeVarGetAndCheckCreationNamespace(
        newRelation: *mut RangeVar,
        lockmode: LOCKMODE,
        existing_relation_id: *mut Oid,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RangeVarAdjustRelationPersistence(newRelation: *mut RangeVar, nspid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelnameGetRelid(relname: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationIsVisible(relid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TypenameGetTypid(typname: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TypenameGetTypidExtended(typname: *const ::std::os::raw::c_char, temp_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TypeIsVisible(typid: Oid) -> bool;
}
#[pgx_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,
        missing_ok: bool,
    ) -> FuncCandidateList;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FunctionIsVisible(funcid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OpernameGetOprid(names: *mut List, oprleft: Oid, oprright: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OpernameGetCandidates(
        names: *mut List,
        oprkind: ::std::os::raw::c_char,
        missing_schema_ok: bool,
    ) -> FuncCandidateList;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OperatorIsVisible(oprid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OpclassnameGetOpcid(amid: Oid, opcname: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OpclassIsVisible(opcid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OpfamilynameGetOpfid(amid: Oid, opfname: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OpfamilyIsVisible(opfid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CollationGetCollid(collname: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CollationIsVisible(collid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConversionGetConid(conname: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConversionIsVisible(conid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_statistics_object_oid(names: *mut List, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StatisticsObjIsVisible(stxid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_ts_parser_oid(names: *mut List, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TSParserIsVisible(prsId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_ts_dict_oid(names: *mut List, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TSDictionaryIsVisible(dictId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_ts_template_oid(names: *mut List, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TSTemplateIsVisible(tmplId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_ts_config_oid(names: *mut List, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TSConfigIsVisible(cfgid: Oid) -> bool;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupNamespaceNoError(nspname: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupExplicitNamespace(nspname: *const ::std::os::raw::c_char, missing_ok: bool)
        -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_namespace_oid(nspname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupCreationNamespace(nspname: *const ::std::os::raw::c_char) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckSetNamespace(oldNspOid: Oid, nspOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QualifiedNameGetCreationNamespace(
        names: *mut List,
        objname_p: *mut *mut ::std::os::raw::c_char,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeRangeVarFromNameList(names: *mut List) -> *mut RangeVar;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn NameListToString(names: *mut List) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn NameListToQuotedString(names: *mut List) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn isTempNamespace(namespaceId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn isTempToastNamespace(namespaceId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn isTempOrTempToastNamespace(namespaceId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn isAnyTempNamespace(namespaceId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn isOtherTempNamespace(namespaceId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn checkTempNamespaceStatus(namespaceId: Oid) -> TempNamespaceStatus;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn isTempNamespaceInUse(namespaceId: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTempNamespaceBackendId(namespaceId: Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTempToastNamespace() -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTempNamespaceState(tempNamespaceId: *mut Oid, tempToastNamespaceId: *mut Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetTempNamespaceState(tempNamespaceId: Oid, tempToastNamespaceId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResetTempTableNamespace();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetOverrideSearchPath(context: MemoryContext) -> *mut OverrideSearchPath;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CopyOverrideSearchPath(path: *mut OverrideSearchPath) -> *mut OverrideSearchPath;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OverrideSearchPathMatchesCurrent(path: *mut OverrideSearchPath) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PushOverrideSearchPath(newpath: *mut OverrideSearchPath);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PopOverrideSearchPath();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_collation_oid(collname: *mut List, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_conversion_oid(conname: *mut List, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FindDefaultConversionProc(for_encoding: int32, to_encoding: int32) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitializeSearchPath();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_Namespace(isCommit: bool, parallel: bool);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fetch_search_path(includeImplicit: bool) -> *mut List;
}
#[pgx_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;
}
#[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::<Self>::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 datcollate: NameData,
    pub datctype: NameData,
    pub datistemplate: bool,
    pub datallowconn: bool,
    pub datconnlimit: int32,
    pub datlastsysoid: Oid,
    pub datfrozenxid: TransactionId,
    pub datminmxid: TransactionId,
    pub dattablespace: Oid,
}
impl Default for FormData_pg_database {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type Form_pg_enum = *mut FormData_pg_enum;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EnumValuesCreate(enumTypeOid: Oid, vals: *mut List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EnumValuesDelete(enumTypeOid: Oid);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RenameEnumLabel(
        enumTypeOid: Oid,
        oldVal: *const ::std::os::raw::c_char,
        newVal: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EnumBlacklisted(enum_id: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EstimateEnumBlacklistSpace() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SerializeEnumBlacklist(space: *mut ::std::os::raw::c_void, size: Size);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RestoreEnumBlacklist(space: *mut ::std::os::raw::c_void);
}
#[pgx_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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type Form_pg_operator = *mut FormData_pg_operator;
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeOperatorDependencies(tuple: HeapTuple, isUpdate: bool) -> ObjectAddress;
}
#[pgx_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type Form_pg_proc = *mut FormData_pg_proc;
#[pgx_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,
        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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn function_parse_error_transpose(prosrc: *const ::std::os::raw::c_char) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oid_array_to_list(datum: Datum) -> *mut List;
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type Form_pg_namespace = *mut FormData_pg_namespace;
#[pgx_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::<Self>::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 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::<Self>::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 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type Form_pg_type = *mut FormData_pg_type;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TypeShellMake(
        typeName: *const ::std::os::raw::c_char,
        typeNamespace: Oid,
        ownerId: Oid,
    ) -> ObjectAddress;
}
#[pgx_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,
        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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GenerateTypeDependencies(
        typeObjectId: Oid,
        typeForm: Form_pg_type,
        defaultExpr: *mut Node,
        typacl: *mut ::std::os::raw::c_void,
        relationKind: ::std::os::raw::c_char,
        isImplicitArray: bool,
        isDependentType: bool,
        rebuild: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RenameTypeInternal(
        typeOid: Oid,
        newTypeName: *const ::std::os::raw::c_char,
        typeNamespace: Oid,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeArrayTypeName(
        typeName: *const ::std::os::raw::c_char,
        typeNamespace: Oid,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn moveArrayTypeName(
        typeOid: Oid,
        typeName: *const ::std::os::raw::c_char,
        typeNamespace: Oid,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CommentObject(stmt: *mut CommentStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DeleteComments(oid: Oid, classoid: Oid, subid: int32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateComments(
        oid: Oid,
        classoid: Oid,
        subid: int32,
        comment: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DeleteSharedComments(oid: Oid, classoid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateSharedComments(oid: Oid, classoid: Oid, comment: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetComment(oid: Oid, classoid: Oid, subid: int32) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn createdb(pstate: *mut ParseState, stmt: *const CreatedbStmt) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dropdb(dbname: *const ::std::os::raw::c_char, missing_ok: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RenameDatabase(
        oldname: *const ::std::os::raw::c_char,
        newname: *const ::std::os::raw::c_char,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterDatabase(
        pstate: *mut ParseState,
        stmt: *mut AlterDatabaseStmt,
        isTopLevel: bool,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterDatabaseSet(stmt: *mut AlterDatabaseSetStmt) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterDatabaseOwner(
        dbname: *const ::std::os::raw::c_char,
        newOwnerId: Oid,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_database_oid(dbname: *const ::std::os::raw::c_char, missingok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_database_name(dbid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveObjects(stmt: *mut DropStmt);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DefineIndex(
        relationId: Oid,
        stmt: *mut IndexStmt,
        indexRelationId: Oid,
        parentIndexId: Oid,
        parentConstraintId: Oid,
        is_alter_table: bool,
        check_rights: bool,
        check_not_in_use: bool,
        skip_build: bool,
        quiet: bool,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReindexIndex(
        indexRelation: *mut RangeVar,
        options: ::std::os::raw::c_int,
        concurrent: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReindexTable(
        relation: *mut RangeVar,
        options: ::std::os::raw::c_int,
        concurrent: bool,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReindexMultipleTables(
        objectName: *const ::std::os::raw::c_char,
        objectKind: ReindexObjectType,
        options: ::std::os::raw::c_int,
        concurrent: bool,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckIndexCompatible(
        oldId: Oid,
        accessMethodName: *const ::std::os::raw::c_char,
        attributeList: *mut List,
        exclusionOpNames: *mut List,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetDefaultOpClass(type_id: Oid, am_id: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResolveOpClass(
        opclass: *mut List,
        attrType: Oid,
        accessMethodName: *const ::std::os::raw::c_char,
        accessMethodId: Oid,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateFunction(pstate: *mut ParseState, stmt: *mut CreateFunctionStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveFunctionById(funcOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetFunctionReturnType(funcOid: Oid, newRetType: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetFunctionArgType(funcOid: Oid, argIndex: ::std::os::raw::c_int, newArgType: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterFunction(pstate: *mut ParseState, stmt: *mut AlterFunctionStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateCast(stmt: *mut CreateCastStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DropCastById(castOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateTransform(stmt: *mut CreateTransformStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DropTransformById(transformOid: Oid);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecuteDoStmt(stmt: *mut DoStmt, atomic: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecuteCallStmt(
        stmt: *mut CallStmt,
        params: ParamListInfo,
        atomic: bool,
        dest: *mut DestReceiver,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CallStmtResultDesc(stmt: *mut CallStmt) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_cast_oid(sourcetypeid: Oid, targettypeid: Oid, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_transform_oid(type_id: Oid, lang_id: Oid, missing_ok: bool) -> Oid;
}
#[pgx_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,
        allParameterTypes: *mut *mut ArrayType,
        parameterModes: *mut *mut ArrayType,
        parameterNames: *mut *mut ArrayType,
        parameterDefaults: *mut *mut List,
        variadicArgType: *mut Oid,
        requiredResultType: *mut Oid,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DefineOperator(names: *mut List, parameters: *mut List) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveOperatorById(operOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterOperator(stmt: *mut AlterOperatorStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateStatistics(stmt: *mut CreateStatsStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveStatisticsById(statsOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UpdateStatisticsForTypeChange(
        statsOid: Oid,
        relationOid: Oid,
        attnum: ::std::os::raw::c_int,
        oldColumnType: Oid,
        newColumnType: Oid,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DefineOpClass(stmt: *mut CreateOpClassStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DefineOpFamily(stmt: *mut CreateOpFamilyStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterOpFamily(stmt: *mut AlterOpFamilyStmt) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveOpClassById(opclassOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveOpFamilyById(opfamilyOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveAmOpEntryById(entryOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveAmProcEntryById(entryOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsThereOpClassInNamespace(
        opcname: *const ::std::os::raw::c_char,
        opcmethod: Oid,
        opcnamespace: Oid,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsThereOpFamilyInNamespace(
        opfname: *const ::std::os::raw::c_char,
        opfmethod: Oid,
        opfnamespace: Oid,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_opclass_oid(amID: Oid, opclassname: *mut List, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_opfamily_oid(amID: Oid, opfamilyname: *mut List, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DefineTSParser(names: *mut List, parameters: *mut List) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveTSParserById(prsId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DefineTSDictionary(names: *mut List, parameters: *mut List) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveTSDictionaryById(dictId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTSDictionary(stmt: *mut AlterTSDictionaryStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DefineTSTemplate(names: *mut List, parameters: *mut List) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveTSTemplateById(tmplId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DefineTSConfiguration(
        names: *mut List,
        parameters: *mut List,
        copied: *mut ObjectAddress,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveTSConfigurationById(cfgId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTSConfiguration(stmt: *mut AlterTSConfigurationStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn serialize_deflist(deflist: *mut List) -> *mut text;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn deserialize_deflist(txt: Datum) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterForeignServerOwner(
        name: *const ::std::os::raw::c_char,
        newOwnerId: Oid,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterForeignServerOwner_oid(arg1: Oid, newOwnerId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterForeignDataWrapperOwner(
        name: *const ::std::os::raw::c_char,
        newOwnerId: Oid,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterForeignDataWrapperOwner_oid(fwdId: Oid, newOwnerId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateForeignDataWrapper(stmt: *mut CreateFdwStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterForeignDataWrapper(stmt: *mut AlterFdwStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveForeignDataWrapperById(fdwId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateForeignServer(stmt: *mut CreateForeignServerStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterForeignServer(stmt: *mut AlterForeignServerStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveForeignServerById(srvId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateUserMapping(stmt: *mut CreateUserMappingStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterUserMapping(stmt: *mut AlterUserMappingStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveUserMapping(stmt: *mut DropUserMappingStmt) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveUserMappingById(umId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateForeignTable(stmt: *mut CreateForeignTableStmt, relid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ImportForeignSchema(stmt: *mut ImportForeignSchemaStmt);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn transformGenericOptions(
        catalogId: Oid,
        oldOptions: Datum,
        options: *mut List,
        fdwvalidator: Oid,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateAccessMethod(stmt: *mut CreateAmStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveAccessMethodById(amOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_index_am_oid(amname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_table_am_oid(amname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_am_oid(amname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_am_name(amOid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn defGetString(def: *mut DefElem) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn defGetNumeric(def: *mut DefElem) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn defGetBoolean(def: *mut DefElem) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn defGetInt32(def: *mut DefElem) -> int32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn defGetInt64(def: *mut DefElem) -> int64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn defGetQualifiedName(def: *mut DefElem) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn defGetTypeName(def: *mut DefElem) -> *mut TypeName;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn defGetTypeLength(def: *mut DefElem) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn defGetStringList(def: *mut DefElem) -> *mut List;
}
#[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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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: *const ::std::os::raw::c_char,
}
impl Default for EventTriggerData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateEventTrigger(stmt: *mut CreateEventTrigStmt) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveEventTriggerById(trigOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_event_trigger_oid(trigname: *const ::std::os::raw::c_char, missing_ok: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterEventTrigger(stmt: *mut AlterEventTrigStmt) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterEventTriggerOwner(
        name: *const ::std::os::raw::c_char,
        newOwnerId: Oid,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterEventTriggerOwner_oid(arg1: Oid, newOwnerId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerSupportsObjectType(obtype: ObjectType) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerSupportsObjectClass(objclass: ObjectClass) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerDDLCommandStart(parsetree: *mut Node);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerDDLCommandEnd(parsetree: *mut Node);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerSQLDrop(parsetree: *mut Node);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerTableRewrite(
        parsetree: *mut Node,
        tableOid: Oid,
        reason: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerBeginCompleteQuery() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerEndCompleteQuery();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn trackDroppedObjectsNeeded() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerSQLDropAddObject(object: *const ObjectAddress, original: bool, normal: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerInhibitCommandCollection();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerUndoInhibitCommandCollection();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerCollectSimpleCommand(
        address: ObjectAddress,
        secondaryObject: ObjectAddress,
        parsetree: *mut Node,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerAlterTableStart(parsetree: *mut Node);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerAlterTableRelid(objectId: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerCollectAlterTableSubcmd(subcmd: *mut Node, address: ObjectAddress);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerAlterTableEnd();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerCollectGrant(istmt: *mut InternalGrant);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerCollectAlterOpFam(
        stmt: *mut AlterOpFamilyStmt,
        opfamoid: Oid,
        operators: *mut List,
        procedures: *mut List,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerCollectCreateOpClass(
        stmt: *mut CreateOpClassStmt,
        opcoid: Oid,
        operators: *mut List,
        procedures: *mut List,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EventTriggerCollectAlterTSConfig(
        stmt: *mut AlterTSConfigurationStmt,
        cfgId: Oid,
        dictIds: *mut Oid,
        ndicts: ::std::os::raw::c_int,
    );
}
#[pgx_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 ExplainState {
    pub str_: StringInfo,
    pub verbose: bool,
    pub analyze: bool,
    pub costs: bool,
    pub buffers: bool,
    pub timing: bool,
    pub summary: bool,
    pub settings: 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,
}
impl Default for ExplainState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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<unsafe extern "C" fn(indexId: Oid) -> *const ::std::os::raw::c_char>;
extern "C" {
    pub static mut explain_get_index_name_hook: explain_get_index_name_hook_type;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainQuery(
        pstate: *mut ParseState,
        stmt: *mut ExplainStmt,
        queryString: *const ::std::os::raw::c_char,
        params: ParamListInfo,
        queryEnv: *mut QueryEnvironment,
        dest: *mut DestReceiver,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn NewExplainState() -> *mut ExplainState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainResultDesc(stmt: *mut ExplainStmt) -> TupleDesc;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainPrintPlan(es: *mut ExplainState, queryDesc: *mut QueryDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainPrintTriggers(es: *mut ExplainState, queryDesc: *mut QueryDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainPrintJITSummary(es: *mut ExplainState, queryDesc: *mut QueryDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainPrintJIT(
        es: *mut ExplainState,
        jit_flags: ::std::os::raw::c_int,
        jit_instr: *mut JitInstrumentation,
        worker_i: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainQueryText(es: *mut ExplainState, queryDesc: *mut QueryDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainBeginOutput(es: *mut ExplainState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainEndOutput(es: *mut ExplainState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainSeparatePlans(es: *mut ExplainState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainPropertyList(
        qlabel: *const ::std::os::raw::c_char,
        data: *mut List,
        es: *mut ExplainState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainPropertyListNested(
        qlabel: *const ::std::os::raw::c_char,
        data: *mut List,
        es: *mut ExplainState,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExplainPropertyBool(
        qlabel: *const ::std::os::raw::c_char,
        value: bool,
        es: *mut ExplainState,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateProceduralLanguage(stmt: *mut CreatePLangStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DropProceduralLanguageById(langOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PLTemplateExists(languageName: *const ::std::os::raw::c_char) -> bool;
}
#[pgx_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::<Self>::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::<Self>::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,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateTableSpace(stmt: *mut CreateTableSpaceStmt) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DropTableSpace(stmt: *mut DropTableSpaceStmt);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RenameTableSpace(
        oldname: *const ::std::os::raw::c_char,
        newname: *const ::std::os::raw::c_char,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTableSpaceOptions(stmt: *mut AlterTableSpaceOptionsStmt) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TablespaceCreateDbspace(spcNode: Oid, dbNode: Oid, isRedo: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetDefaultTablespace(relpersistence: ::std::os::raw::c_char, partitioned: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PrepareTempTablespaces();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_tablespace_oid(
        tablespacename: *const ::std::os::raw::c_char,
        missing_ok: bool,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_tablespace_name(spc_oid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn directory_is_empty(path: *const ::std::os::raw::c_char) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn remove_tablespace_symlink(linkloc: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tblspc_redo(rptr: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tblspc_desc(buf: StringInfo, rptr: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tblspc_identify(info: uint8) -> *const ::std::os::raw::c_char;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveRelations(drop: *mut DropStmt);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTableLookupRelation(stmt: *mut AlterTableStmt, lockmode: LOCKMODE) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTable(relid: Oid, lockmode: LOCKMODE, stmt: *mut AlterTableStmt);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTableGetLockLevel(cmds: *mut List) -> LOCKMODE;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ATExecChangeOwner(
        relationOid: Oid,
        newOwnerId: Oid,
        recursing: bool,
        lockmode: LOCKMODE,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTableInternal(relid: Oid, cmds: *mut List, recurse: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTableMoveAll(stmt: *mut AlterTableMoveAllStmt) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTableNamespace(
        stmt: *mut AlterObjectSchemaStmt,
        oldschema: *mut Oid,
    ) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterTableNamespaceInternal(
        rel: Relation,
        oldNspOid: Oid,
        nspOid: Oid,
        objsMoved: *mut ObjectAddresses,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AlterRelationNamespaceInternal(
        classRel: Relation,
        relOid: Oid,
        oldNspOid: Oid,
        newNspOid: Oid,
        hasDependEntry: bool,
        objsMoved: *mut ObjectAddresses,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckTableNotInUse(rel: Relation, stmt: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecuteTruncate(stmt: *mut TruncateStmt);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecuteTruncateGuts(
        explicit_rels: *mut List,
        relids: *mut List,
        relids_logged: *mut List,
        behavior: DropBehavior,
        restart_seqs: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetRelationHasSubclass(relationId: Oid, relhassubclass: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn renameatt(stmt: *mut RenameStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn renameatt_type(stmt: *mut RenameStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RenameConstraint(stmt: *mut RenameStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RenameRelation(stmt: *mut RenameStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RenameRelationInternal(
        myrelid: Oid,
        newrelname: *const ::std::os::raw::c_char,
        is_internal: bool,
        is_index: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResetRelRewrite(myrelid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_composite_type_dependencies(
        typeOid: Oid,
        origRelation: Relation,
        origTypeName: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_of_type(typetuple: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn register_on_commit_action(relid: Oid, action: OnCommitAction);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn remove_on_commit_action(relid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PreCommit_on_commit_actions();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_on_commit_actions(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOSubXact_on_commit_actions(
        isCommit: bool,
        mySubid: SubTransactionId,
        parentSubid: SubTransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RangeVarCallbackOwnsTable(
        relation: *const RangeVar,
        relId: Oid,
        oldRelId: Oid,
        arg: *mut ::std::os::raw::c_void,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RangeVarCallbackOwnsRelation(
        relation: *const RangeVar,
        relId: Oid,
        oldRelId: Oid,
        noCatalogs: *mut ::std::os::raw::c_void,
    );
}
#[pgx_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,
}
impl Default for TriggerData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_map: *mut TupleConversionMap,
    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::<Self>::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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RemoveTriggerById(trigOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_trigger_oid(
        relid: Oid,
        name: *const ::std::os::raw::c_char,
        missing_ok: bool,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn renametrig(stmt: *mut RenameStmt) -> ObjectAddress;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EnableDisableTriggerNew(
        rel: Relation,
        tgname: *const ::std::os::raw::c_char,
        fires_when: ::std::os::raw::c_char,
        skip_system: bool,
        recurse: bool,
        lockmode: LOCKMODE,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EnableDisableTrigger(
        rel: Relation,
        tgname: *const ::std::os::raw::c_char,
        fires_when: ::std::os::raw::c_char,
        skip_system: bool,
        lockmode: LOCKMODE,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationBuildTriggers(relation: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CopyTriggerDesc(trigdesc: *mut TriggerDesc) -> *mut TriggerDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FindTriggerIncompatibleWithInheritance(
        trigdesc: *mut TriggerDesc,
    ) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MakeTransitionCaptureState(
        trigdesc: *mut TriggerDesc,
        relid: Oid,
        cmdType: CmdType,
    ) -> *mut TransitionCaptureState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeTriggerDesc(trigdesc: *mut TriggerDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBSInsertTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecASInsertTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        transition_capture: *mut TransitionCaptureState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBRInsertTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecARInsertTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        slot: *mut TupleTableSlot,
        recheckIndexes: *mut List,
        transition_capture: *mut TransitionCaptureState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecIRInsertTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBSDeleteTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecASDeleteTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        transition_capture: *mut TransitionCaptureState,
    );
}
#[pgx_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,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecARDeleteTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        tupleid: ItemPointer,
        fdw_trigtuple: HeapTuple,
        transition_capture: *mut TransitionCaptureState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecIRDeleteTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        trigtuple: HeapTuple,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBSUpdateTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecASUpdateTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        transition_capture: *mut TransitionCaptureState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBRUpdateTriggers(
        estate: *mut EState,
        epqstate: *mut EPQState,
        relinfo: *mut ResultRelInfo,
        tupleid: ItemPointer,
        fdw_trigtuple: HeapTuple,
        slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecARUpdateTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        tupleid: ItemPointer,
        fdw_trigtuple: HeapTuple,
        slot: *mut TupleTableSlot,
        recheckIndexes: *mut List,
        transition_capture: *mut TransitionCaptureState,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecIRUpdateTriggers(
        estate: *mut EState,
        relinfo: *mut ResultRelInfo,
        trigtuple: HeapTuple,
        slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecBSTruncateTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecASTruncateTriggers(estate: *mut EState, relinfo: *mut ResultRelInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AfterTriggerBeginXact();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AfterTriggerBeginQuery();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AfterTriggerEndQuery(estate: *mut EState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AfterTriggerFireDeferred();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AfterTriggerEndXact(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AfterTriggerBeginSubXact();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AfterTriggerEndSubXact(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AfterTriggerSetState(stmt: *mut ConstraintsSetStmt);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AfterTriggerPendingOnRel(relid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_pk_upd_check_required(
        trigger: *mut Trigger,
        pk_rel: Relation,
        old_slot: *mut TupleTableSlot,
        new_slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_fk_upd_check_required(
        trigger: *mut Trigger,
        fk_rel: Relation,
        old_slot: *mut TupleTableSlot,
        new_slot: *mut TupleTableSlot,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_Initial_Check(trigger: *mut Trigger, fk_rel: Relation, pk_rel: Relation) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_PartitionRemove_Check(trigger: *mut Trigger, fk_rel: Relation, pk_rel: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_trigger_type(tgfoid: Oid) -> ::std::os::raw::c_int;
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type Form_pg_statistic = *mut FormData_pg_statistic;
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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub const VacuumOption_VACOPT_VACUUM: VacuumOption = 1;
pub const VacuumOption_VACOPT_ANALYZE: VacuumOption = 2;
pub const VacuumOption_VACOPT_VERBOSE: VacuumOption = 4;
pub const VacuumOption_VACOPT_FREEZE: VacuumOption = 8;
pub const VacuumOption_VACOPT_FULL: VacuumOption = 16;
pub const VacuumOption_VACOPT_SKIP_LOCKED: VacuumOption = 32;
pub const VacuumOption_VACOPT_SKIPTOAST: VacuumOption = 64;
pub const VacuumOption_VACOPT_DISABLE_PAGE_SKIPPING: VacuumOption = 128;
pub type VacuumOption = ::std::os::raw::c_uint;
pub const VacOptTernaryValue_VACOPT_TERNARY_DEFAULT: VacOptTernaryValue = 0;
pub const VacOptTernaryValue_VACOPT_TERNARY_DISABLED: VacOptTernaryValue = 1;
pub const VacOptTernaryValue_VACOPT_TERNARY_ENABLED: VacOptTernaryValue = 2;
pub type VacOptTernaryValue = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VacuumParams {
    pub options: ::std::os::raw::c_int,
    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: VacOptTernaryValue,
    pub truncate: VacOptTernaryValue,
}
impl Default for VacuumParams {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExecVacuum(pstate: *mut ParseState, vacstmt: *mut VacuumStmt, isTopLevel: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn vacuum(
        relations: *mut List,
        params: *mut VacuumParams,
        bstrategy: BufferAccessStrategy,
        isTopLevel: bool,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn vac_close_indexes(
        nindexes: ::std::os::raw::c_int,
        Irel: *mut Relation,
        lockmode: LOCKMODE,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn vac_estimate_reltuples(
        relation: Relation,
        total_pages: BlockNumber,
        scanned_pages: BlockNumber,
        scanned_tuples: f64,
    ) -> f64;
}
#[pgx_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,
        in_outer_xact: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn vacuum_set_xid_limits(
        rel: Relation,
        freeze_min_age: ::std::os::raw::c_int,
        freeze_table_age: ::std::os::raw::c_int,
        multixact_freeze_min_age: ::std::os::raw::c_int,
        multixact_freeze_table_age: ::std::os::raw::c_int,
        oldestXmin: *mut TransactionId,
        freezeLimit: *mut TransactionId,
        xidFullScanLimit: *mut TransactionId,
        multiXactCutoff: *mut MultiXactId,
        mxactFullScanLimit: *mut MultiXactId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn vac_update_datfrozenxid();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn vacuum_delay_point();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn vacuum_is_relation_owner(
        relid: Oid,
        reltuple: Form_pg_class,
        options: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn vacuum_open_relation(
        relid: Oid,
        relation: *mut RangeVar,
        options: ::std::os::raw::c_int,
        verbose: bool,
        lmode: LOCKMODE,
    ) -> Relation;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn std_typanalyze(stats: *mut VacAttrStats) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anl_random_fract() -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anl_init_selection_state(n: ::std::os::raw::c_int) -> f64;
}
#[pgx_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_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 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: *const ::std::os::raw::c_char,
    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: ::std::os::raw::c_int,
}
impl Default for CachedPlanSource {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitPlanCache();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResetPlanCache();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateCachedPlan(
        raw_parse_tree: *mut RawStmt,
        query_string: *const ::std::os::raw::c_char,
        commandTag: *const ::std::os::raw::c_char,
    ) -> *mut CachedPlanSource;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateOneShotCachedPlan(
        raw_parse_tree: *mut RawStmt,
        query_string: *const ::std::os::raw::c_char,
        commandTag: *const ::std::os::raw::c_char,
    ) -> *mut CachedPlanSource;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SaveCachedPlan(plansource: *mut CachedPlanSource);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DropCachedPlan(plansource: *mut CachedPlanSource);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CachedPlanSetParentContext(plansource: *mut CachedPlanSource, newcontext: MemoryContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CopyCachedPlan(plansource: *mut CachedPlanSource) -> *mut CachedPlanSource;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CachedPlanIsValid(plansource: *mut CachedPlanSource) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CachedPlanGetTargetList(
        plansource: *mut CachedPlanSource,
        queryEnv: *mut QueryEnvironment,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCachedPlan(
        plansource: *mut CachedPlanSource,
        boundParams: ParamListInfo,
        useResOwner: bool,
        queryEnv: *mut QueryEnvironment,
    ) -> *mut CachedPlan;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReleaseCachedPlan(plan: *mut CachedPlan, useResOwner: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCachedExpression(expr: *mut Node) -> *mut CachedExpression;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeCachedExpression(cexpr: *mut CachedExpression);
}
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,
    ),
>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResourceOwnerCreate(
        parent: ResourceOwner,
        name: *const ::std::os::raw::c_char,
    ) -> ResourceOwner;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResourceOwnerRelease(
        owner: ResourceOwner,
        phase: ResourceReleasePhase,
        isCommit: bool,
        isTopLevel: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResourceOwnerDelete(owner: ResourceOwner);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResourceOwnerGetParent(owner: ResourceOwner) -> ResourceOwner;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResourceOwnerNewParent(owner: ResourceOwner, newparent: ResourceOwner);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterResourceReleaseCallback(
        callback: ResourceReleaseCallback,
        arg: *mut ::std::os::raw::c_void,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UnregisterResourceReleaseCallback(
        callback: ResourceReleaseCallback,
        arg: *mut ::std::os::raw::c_void,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateAuxProcessResourceOwner();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReleaseAuxProcessResources(isCommit: bool);
}
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<unsafe extern "C" fn(portal: Portal)>,
    pub createSubid: SubTransactionId,
    pub activeSubid: SubTransactionId,
    pub sourceText: *const ::std::os::raw::c_char,
    pub commandTag: *const ::std::os::raw::c_char,
    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 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,
    pub portalSnapshot: Snapshot,
    pub createLevel: ::std::os::raw::c_int,
}
impl Default for PortalData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EnablePortalManager();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PreCommit_Portals(isPrepare: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtAbort_Portals();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtCleanup_Portals();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PortalErrorCleanup();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtSubCommit_Portals(
        mySubid: SubTransactionId,
        parentSubid: SubTransactionId,
        parentLevel: ::std::os::raw::c_int,
        parentXactOwner: ResourceOwner,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtSubAbort_Portals(
        mySubid: SubTransactionId,
        parentSubid: SubTransactionId,
        myXactOwner: ResourceOwner,
        parentXactOwner: ResourceOwner,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtSubCleanup_Portals(mySubid: SubTransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreatePortal(
        name: *const ::std::os::raw::c_char,
        allowDup: bool,
        dupSilent: bool,
    ) -> Portal;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateNewPortal() -> Portal;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PinPortal(portal: Portal);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UnpinPortal(portal: Portal);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MarkPortalActive(portal: Portal);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MarkPortalDone(portal: Portal);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MarkPortalFailed(portal: Portal);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PortalDrop(portal: Portal, isTopCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetPortalByName(name: *const ::std::os::raw::c_char) -> Portal;
}
#[pgx_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: *const ::std::os::raw::c_char,
        stmts: *mut List,
        cplan: *mut CachedPlan,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PortalGetPrimaryStmt(portal: Portal) -> *mut PlannedStmt;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PortalCreateHoldStore(portal: Portal);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PortalHashTableDeleteAll();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ThereAreNoReadyPortals() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HoldPinnedPortals();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ForgetPortalSnapshots();
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SPITupleTable {
    pub tuptabcxt: MemoryContext,
    pub alloced: uint64,
    pub free: uint64,
    pub tupdesc: TupleDesc,
    pub vals: *mut HeapTuple,
    pub next: slist_node,
    pub subid: SubTransactionId,
}
impl Default for SPITupleTable {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_connect() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_connect_ext(options: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_finish() -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_keepplan(plan: SPIPlanPtr) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_saveplan(plan: SPIPlanPtr) -> SPIPlanPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_freeplan(plan: SPIPlanPtr) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_getargtypeid(plan: SPIPlanPtr, argIndex: ::std::os::raw::c_int) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_getargcount(plan: SPIPlanPtr) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_is_cursor_plan(plan: SPIPlanPtr) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_plan_is_valid(plan: SPIPlanPtr) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_result_code_string(code: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_plan_get_plan_sources(plan: SPIPlanPtr) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_plan_get_cached_plan(plan: SPIPlanPtr) -> *mut CachedPlan;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_copytuple(tuple: HeapTuple) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_returntuple(tuple: HeapTuple, tupdesc: TupleDesc) -> HeapTupleHeader;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_fnumber(
        tupdesc: TupleDesc,
        fname: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_fname(
        tupdesc: TupleDesc,
        fnumber: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_getbinval(
        tuple: HeapTuple,
        tupdesc: TupleDesc,
        fnumber: ::std::os::raw::c_int,
        isnull: *mut bool,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_gettype(
        tupdesc: TupleDesc,
        fnumber: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_gettypeid(tupdesc: TupleDesc, fnumber: ::std::os::raw::c_int) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_getrelname(rel: Relation) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_getnspname(rel: Relation) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_palloc(size: Size) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_repalloc(
        pointer: *mut ::std::os::raw::c_void,
        size: Size,
    ) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_pfree(pointer: *mut ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_datumTransfer(value: Datum, typByVal: bool, typLen: ::std::os::raw::c_int) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_freetuple(pointer: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_freetuptable(tuptable: *mut SPITupleTable);
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_cursor_find(name: *const ::std::os::raw::c_char) -> Portal;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_cursor_fetch(portal: Portal, forward: bool, count: ::std::os::raw::c_long);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_cursor_move(portal: Portal, forward: bool, count: ::std::os::raw::c_long);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_scroll_cursor_fetch(
        arg1: Portal,
        direction: FetchDirection,
        count: ::std::os::raw::c_long,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_scroll_cursor_move(
        arg1: Portal,
        direction: FetchDirection,
        count: ::std::os::raw::c_long,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_cursor_close(portal: Portal);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_register_relation(enr: EphemeralNamedRelation) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_unregister_relation(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_register_trigger_data(tdata: *mut TriggerData) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_start_transaction();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_commit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_commit_and_chain();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_rollback();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_rollback_and_chain();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPICleanup();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_SPI(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOSubXact_SPI(isCommit: bool, mySubid: SubTransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SPI_inside_nonatomic_context() -> bool;
}
pub type bgworker_main_type = ::std::option::Option<unsafe extern "C" fn(main_arg: Datum)>;
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::<Self>::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],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterBackgroundWorker(worker: *mut BackgroundWorker);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterDynamicBackgroundWorker(
        worker: *mut BackgroundWorker,
        handle: *mut *mut BackgroundWorkerHandle,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetBackgroundWorkerPid(
        handle: *mut BackgroundWorkerHandle,
        pidp: *mut pid_t,
    ) -> BgwHandleStatus;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn WaitForBackgroundWorkerStartup(
        handle: *mut BackgroundWorkerHandle,
        pid: *mut pid_t,
    ) -> BgwHandleStatus;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn WaitForBackgroundWorkerShutdown(arg1: *mut BackgroundWorkerHandle) -> BgwHandleStatus;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetBackgroundWorkerTypeByPid(pid: pid_t) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TerminateBackgroundWorker(handle: *mut BackgroundWorkerHandle);
}
extern "C" {
    pub static mut MyBgworkerEntry: *mut BackgroundWorker;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BackgroundWorkerInitializeConnection(
        dbname: *const ::std::os::raw::c_char,
        username: *const ::std::os::raw::c_char,
        flags: uint32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BackgroundWorkerInitializeConnectionByOid(dboid: Oid, useroid: Oid, flags: uint32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BackgroundWorkerBlockSignals();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BackgroundWorkerUnblockSignals();
}
#[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::<Self>::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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_mq_create(address: *mut ::std::os::raw::c_void, size: Size) -> *mut shm_mq;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_mq_set_receiver(mq: *mut shm_mq, arg1: *mut PGPROC);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_mq_set_sender(mq: *mut shm_mq, arg1: *mut PGPROC);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_mq_get_receiver(arg1: *mut shm_mq) -> *mut PGPROC;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_mq_get_sender(arg1: *mut shm_mq) -> *mut PGPROC;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_mq_set_handle(arg1: *mut shm_mq_handle, arg2: *mut BackgroundWorkerHandle);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_mq_detach(mqh: *mut shm_mq_handle);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_mq_get_queue(mqh: *mut shm_mq_handle) -> *mut shm_mq;
}
#[pgx_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,
    ) -> shm_mq_result;
}
#[pgx_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,
    ) -> shm_mq_result;
}
#[pgx_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;
}
#[pgx_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;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct shm_toc {
    _unused: [u8; 0],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_toc_create(
        magic: uint64,
        address: *mut ::std::os::raw::c_void,
        nbytes: Size,
    ) -> *mut shm_toc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_toc_attach(magic: uint64, address: *mut ::std::os::raw::c_void) -> *mut shm_toc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_toc_allocate(toc: *mut shm_toc, nbytes: Size) -> *mut ::std::os::raw::c_void;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_toc_freespace(toc: *mut shm_toc) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_toc_insert(toc: *mut shm_toc, key: uint64, address: *mut ::std::os::raw::c_void);
}
#[pgx_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,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shm_toc_estimate(e: *mut shm_toc_estimator) -> Size;
}
pub type parallel_worker_main_type =
    ::std::option::Option<unsafe extern "C" fn(seg: *mut dsm_segment, toc: *mut shm_toc)>;
#[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::<Self>::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_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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static mut ParallelMessagePending: bool;
}
extern "C" {
    pub static mut ParallelWorkerNumber: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut InitializingParallelWorker: bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitializeParallelDSM(pcxt: *mut ParallelContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReinitializeParallelDSM(pcxt: *mut ParallelContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LaunchParallelWorkers(pcxt: *mut ParallelContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn WaitForParallelWorkersToAttach(pcxt: *mut ParallelContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn WaitForParallelWorkersToFinish(pcxt: *mut ParallelContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DestroyParallelContext(pcxt: *mut ParallelContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ParallelContextActive() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HandleParallelMessageInterrupt();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HandleParallelMessages();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_Parallel(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOSubXact_Parallel(isCommit: bool, mySubId: SubTransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ParallelWorkerReportLastRecEnd(last_xlog_end: XLogRecPtr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ParallelWorkerMain(main_arg: Datum);
}
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 numAggs: ::std::os::raw::c_int,
    pub numOrderedAggs: ::std::os::raw::c_int,
    pub hasNonPartial: bool,
    pub hasNonSerial: bool,
    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_DISTINCT: UpperRelationKind = 4;
pub const UpperRelationKind_UPPERREL_ORDERED: UpperRelationKind = 5;
pub const UpperRelationKind_UPPERREL_FINAL: UpperRelationKind = 6;
pub type UpperRelationKind = ::std::os::raw::c_uint;
pub const InheritanceKind_INHKIND_NONE: InheritanceKind = 0;
pub const InheritanceKind_INHKIND_INHERITED: InheritanceKind = 1;
pub const InheritanceKind_INHKIND_PARTITIONED: InheritanceKind = 2;
pub type InheritanceKind = ::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 finalrowmarks: *mut List,
    pub resultRelations: *mut List,
    pub rootResultRelations: *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::<Self>::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 nullable_baserels: 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 eq_classes: *mut List,
    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 append_rel_list: *mut List,
    pub rowMarks: *mut List,
    pub placeholder_list: *mut List,
    pub fkey_list: *mut List,
    pub query_pathkeys: *mut List,
    pub group_pathkeys: *mut List,
    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; 7usize],
    pub upper_targets: [*mut PathTarget; 7usize],
    pub processed_tlist: *mut List,
    pub grouping_map: *mut AttrNumber,
    pub minmax_aggs: *mut List,
    pub planner_cxt: MemoryContext,
    pub total_table_pages: f64,
    pub tuple_fraction: f64,
    pub limit_tuples: f64,
    pub qual_security_level: Index,
    pub inhTargetKind: InheritanceKind,
    pub hasJoinRTEs: bool,
    pub hasLateralRTEs: bool,
    pub hasHavingQual: bool,
    pub hasPseudoConstantQuals: bool,
    pub hasRecursion: bool,
    pub wt_param_id: ::std::os::raw::c_int,
    pub non_recursive_path: *mut Path,
    pub curOuterRels: Relids,
    pub curOuterParams: *mut List,
    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::<Self>::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::<Self>::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 const RelOptKind_RELOPT_DEADREL: RelOptKind = 6;
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: f64,
    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 lateral_vars: *mut List,
    pub lateral_referencers: Relids,
    pub indexlist: *mut List,
    pub statlist: *mut List,
    pub pages: BlockNumber,
    pub tuples: f64,
    pub allvisfrac: f64,
    pub subroot: *mut PlannerInfo,
    pub subplan_params: *mut List,
    pub rel_parallel_workers: ::std::os::raw::c_int,
    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 top_parent_relids: Relids,
    pub part_scheme: PartitionScheme,
    pub nparts: ::std::os::raw::c_int,
    pub boundinfo: *mut PartitionBoundInfoData,
    pub partition_qual: *mut List,
    pub part_rels: *mut *mut RelOptInfo,
    pub partexprs: *mut *mut List,
    pub nullable_partexprs: *mut *mut List,
    pub partitioned_child_rels: *mut List,
}
impl Default for RelOptInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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: f64,
    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 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<unsafe extern "C" fn()>,
}
impl Default for IndexOptInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 nmatched_rcols: ::std::os::raw::c_int,
    pub nmatched_ri: ::std::os::raw::c_int,
    pub eclass: [*mut EquivalenceClass; 32usize],
    pub rinfos: [*mut List; 32usize],
}
impl Default for ForeignKeyOptInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 rel: *mut RelOptInfo,
    pub kind: ::std::os::raw::c_char,
    pub keys: *mut Bitmapset,
}
impl Default for StatisticExtInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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_below_outer_join: 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::<Self>::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_nullable_relids: Relids,
    pub em_is_const: bool,
    pub em_is_child: bool,
    pub em_datatype: Oid,
}
impl Default for EquivalenceMember {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[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,
}
impl Default for PathTarget {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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: f64,
    pub ppi_clauses: *mut List,
}
impl Default for ParamPathInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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: f64,
    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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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 partitioned_rels: *mut List,
    pub subpaths: *mut List,
    pub first_partial_path: ::std::os::raw::c_int,
    pub limit_tuples: f64,
}
impl Default for AppendPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_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 partitioned_rels: *mut List,
    pub subpaths: *mut List,
    pub limit_tuples: f64,
}
impl Default for MergeAppendPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type NestPath = JoinPath;
#[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::<Self>::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: f64,
}
impl Default for HashPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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: f64,
    pub groupClause: *mut List,
    pub qual: *mut List,
}
impl Default for AggPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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: f64,
}
impl Default for GroupingSetData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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: f64,
    pub hashable: bool,
    pub is_hashed: bool,
}
impl Default for RollupData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
}
impl Default for GroupingSetsPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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,
}
impl Default for WindowAggPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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: f64,
}
impl Default for SetOpPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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: f64,
}
impl Default for RecursiveUnionPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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 operation: CmdType,
    pub canSetTag: bool,
    pub nominalRelation: Index,
    pub rootRelation: Index,
    pub partColsUpdated: bool,
    pub resultRelations: *mut List,
    pub subpaths: *mut List,
    pub subroots: *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,
}
impl Default for ModifyTablePath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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,
}
impl Default for LimitPath {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 outerjoin_delayed: bool,
    pub can_join: bool,
    pub pseudoconstant: bool,
    pub leakproof: bool,
    pub security_level: Index,
    pub clause_relids: Relids,
    pub required_relids: Relids,
    pub outer_relids: Relids,
    pub nullable_relids: Relids,
    pub left_relids: Relids,
    pub right_relids: Relids,
    pub orclause: *mut Expr,
    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,
}
impl Default for RestrictInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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 phid: Index,
    pub phlevelsup: Index,
}
impl Default for PlaceHolderVar {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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 lhs_strict: bool,
    pub delay_upper_joins: 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::<Self>::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 parent_reloid: Oid,
}
impl Default for AppendRelInfo {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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: f64,
    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: f64,
    pub inner_rows: f64,
    pub outer_skip_rows: f64,
    pub inner_skip_rows: f64,
    pub numbuckets: ::std::os::raw::c_int,
    pub numbatches: ::std::os::raw::c_int,
    pub inner_rows_total: f64,
}
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<unsafe extern "C" fn(node: *mut ForeignScanState) -> *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<unsafe extern "C" fn(node: *mut ForeignScanState)>;
pub type EndForeignScan_function =
    ::std::option::Option<unsafe extern "C" fn(node: *mut ForeignScanState)>;
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(
        parsetree: *mut Query,
        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 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<unsafe extern "C" fn(estate: *mut EState, rinfo: *mut ResultRelInfo)>;
pub type BeginForeignInsert_function = ::std::option::Option<
    unsafe extern "C" fn(mtstate: *mut ModifyTableState, rinfo: *mut ResultRelInfo),
>;
pub type EndForeignInsert_function =
    ::std::option::Option<unsafe extern "C" fn(estate: *mut EState, rinfo: *mut ResultRelInfo)>;
pub type IsForeignRelUpdatable_function =
    ::std::option::Option<unsafe extern "C" fn(rel: Relation) -> ::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<unsafe extern "C" fn(node: *mut ForeignScanState) -> *mut TupleTableSlot>;
pub type EndDirectModify_function =
    ::std::option::Option<unsafe extern "C" fn(node: *mut ForeignScanState)>;
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<unsafe extern "C" fn(node: *mut ForeignScanState, es: *mut ExplainState)>;
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<unsafe extern "C" fn(node: *mut ForeignScanState, es: *mut ExplainState)>;
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 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<unsafe extern "C" fn(node: *mut ForeignScanState)>;
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,
>;
#[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 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 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,
}
impl Default for FdwRoutine {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetFdwRoutine(fdwhandler: Oid) -> *mut FdwRoutine;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetForeignServerIdByRelId(relid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetFdwRoutineByServerId(serverid: Oid) -> *mut FdwRoutine;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetFdwRoutineByRelId(relid: Oid) -> *mut FdwRoutine;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetFdwRoutineForRelation(relation: Relation, makecopy: bool) -> *mut FdwRoutine;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsImportableForeignTable(
        tablename: *const ::std::os::raw::c_char,
        stmt: *mut ImportForeignSchemaStmt,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetExistingLocalJoinPath(joinrel: *mut RelOptInfo) -> *mut Path;
}
pub const GenericOptionFlags_ServerOpt: GenericOptionFlags = 1;
pub const GenericOptionFlags_UserMappingOpt: GenericOptionFlags = 2;
pub const GenericOptionFlags_FdwOpt: GenericOptionFlags = 4;
pub type GenericOptionFlags = ::std::os::raw::c_uint;
#[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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetForeignServer(serverid: Oid) -> *mut ForeignServer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetForeignServerExtended(serverid: Oid, flags: bits16) -> *mut ForeignServer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetForeignServerByName(
        name: *const ::std::os::raw::c_char,
        missing_ok: bool,
    ) -> *mut ForeignServer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetUserMapping(userid: Oid, serverid: Oid) -> *mut UserMapping;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetForeignDataWrapper(fdwid: Oid) -> *mut ForeignDataWrapper;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetForeignDataWrapperExtended(fdwid: Oid, flags: bits16) -> *mut ForeignDataWrapper;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetForeignDataWrapperByName(
        name: *const ::std::os::raw::c_char,
        missing_ok: bool,
    ) -> *mut ForeignDataWrapper;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetForeignTable(relid: Oid) -> *mut ForeignTable;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetForeignColumnOptions(relid: Oid, attnum: AttrNumber) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_foreign_data_wrapper_oid(
        fdwname: *const ::std::os::raw::c_char,
        missing_ok: bool,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_foreign_server_oid(
        servername: *const ::std::os::raw::c_char,
        missing_ok: bool,
    ) -> Oid;
}
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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static mut 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub static mut pg_enc2gettext_tbl: [pg_enc2gettext; 0usize];
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_encoding_supported_by_icu(encoding: ::std::os::raw::c_int) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_encoding_name_for_icu(
        encoding: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
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 mbverifier = ::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 mbverify: mbverifier,
    pub maxmblen: ::std::os::raw::c_int,
}
extern "C" {
    pub static mut 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::<Self>::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<unsafe extern "C" fn(code: uint32) -> uint32>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_char_to_encoding(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_encoding_to_char(encoding: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_valid_server_encoding_id(encoding: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_wchar_strlen(wstr: *const pg_wchar) -> usize;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mblen(mbstr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_dsplen(mbstr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_encoding_verifymb(
        encoding: ::std::os::raw::c_int,
        mbstr: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mule_mblen(mbstr: *const ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mic_mblen(mbstr: *const ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mbstrlen(mbstr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mbstrlen_with_len(
        mbstr: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mbcharcliplen(
        mbstr: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
        imit: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_encoding_max_length(encoding: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_database_encoding_max_length() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_database_encoding_character_incrementer() -> mbcharacter_incrementer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PrepareClientEncoding(encoding: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetClientEncoding(encoding: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitializeClientEncoding();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_client_encoding() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_client_encoding_name() -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetDatabaseEncoding(encoding: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetDatabaseEncoding() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetDatabaseEncodingName() -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetMessageEncoding(encoding: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetMessageEncoding() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_valid_client_encoding(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_valid_server_encoding(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn utf8_to_unicode(c: *const ::std::os::raw::c_uchar) -> pg_wchar;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_utf_mblen(arg1: *const ::std::os::raw::c_uchar) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ascii2mic(
        l: *const ::std::os::raw::c_uchar,
        p: *mut ::std::os::raw::c_uchar,
        len: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mic2ascii(
        mic: *const ::std::os::raw::c_uchar,
        p: *mut ::std::os::raw::c_uchar,
        len: ::std::os::raw::c_int,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_utf8_islegal(
        source: *const ::std::os::raw::c_uchar,
        length: ::std::os::raw::c_int,
    ) -> bool;
}
#[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::<Self>::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<unsafe extern "C" fn(node: *mut ExtensibleNode)>,
}
impl Default for ExtensibleNodeMethods {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterExtensibleNodeMethods(method: *const ExtensibleNodeMethods);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetExtensibleNodeMethods(
        name: *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::<Self>::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<unsafe extern "C" fn(cscan: *mut CustomScan) -> *mut Node>,
}
impl Default for CustomScanMethods {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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<unsafe extern "C" fn(node: *mut CustomScanState)>,
    pub ReScanCustomScan: ::std::option::Option<unsafe extern "C" fn(node: *mut CustomScanState)>,
    pub MarkPosCustomScan: ::std::option::Option<unsafe extern "C" fn(node: *mut CustomScanState)>,
    pub RestrPosCustomScan: ::std::option::Option<unsafe extern "C" fn(node: *mut CustomScanState)>,
    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<unsafe extern "C" fn(node: *mut CustomScanState)>,
    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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterCustomScanMethods(methods: *const CustomScanMethods);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCustomScanMethods(
        CustomName: *const ::std::os::raw::c_char,
        missing_ok: bool,
    ) -> *const CustomScanMethods;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeVar(
        varno: Index,
        varattno: AttrNumber,
        vartype: Oid,
        vartypmod: int32,
        varcollid: Oid,
        varlevelsup: Index,
    ) -> *mut Var;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeVarFromTargetEntry(varno: Index, tle: *mut TargetEntry) -> *mut Var;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeWholeRowVar(
        rte: *mut RangeTblEntry,
        varno: Index,
        varlevelsup: Index,
        allowScalar: bool,
    ) -> *mut Var;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeTargetEntry(
        expr: *mut Expr,
        resno: AttrNumber,
        resname: *mut ::std::os::raw::c_char,
        resjunk: bool,
    ) -> *mut TargetEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn flatCopyTargetEntry(src_tle: *mut TargetEntry) -> *mut TargetEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeFromExpr(fromlist: *mut List, quals: *mut Node) -> *mut FromExpr;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeNullConst(consttype: Oid, consttypmod: int32, constcollid: Oid) -> *mut Const;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeBoolConst(value: bool, isnull: bool) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeBoolExpr(
        boolop: BoolExprType,
        args: *mut List,
        location: ::std::os::raw::c_int,
    ) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeAlias(aliasname: *const ::std::os::raw::c_char, colnames: *mut List) -> *mut Alias;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeRelabelType(
        arg: *mut Expr,
        rtype: Oid,
        rtypmod: int32,
        rcollid: Oid,
        rformat: CoercionForm,
    ) -> *mut RelabelType;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeTypeName(typnam: *mut ::std::os::raw::c_char) -> *mut TypeName;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeTypeNameFromNameList(names: *mut List) -> *mut TypeName;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeTypeNameFromOid(typeOid: Oid, typmod: int32) -> *mut TypeName;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeColumnDef(
        colname: *const ::std::os::raw::c_char,
        typeOid: Oid,
        typmod: int32,
        collOid: Oid,
    ) -> *mut ColumnDef;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeFuncExpr(
        funcid: Oid,
        rettype: Oid,
        args: *mut List,
        funccollid: Oid,
        inputcollid: Oid,
        fformat: CoercionForm,
    ) -> *mut FuncExpr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeFuncCall(
        name: *mut List,
        args: *mut List,
        location: ::std::os::raw::c_int,
    ) -> *mut FuncCall;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_andclause(andclauses: *mut List) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_orclause(orclauses: *mut List) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_notclause(notclause: *mut Expr) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_and_qual(qual1: *mut Node, qual2: *mut Node) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_ands_explicit(andclauses: *mut List) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_ands_implicit(clause: *mut Expr) -> *mut List;
}
#[pgx_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,
        isready: bool,
        concurrent: bool,
    ) -> *mut IndexInfo;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeGroupingSet(
        kind: GroupingSetKind,
        content: *mut List,
        location: ::std::os::raw::c_int,
    ) -> *mut GroupingSet;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeVacuumRelation(
        relation: *mut RangeVar,
        oid: Oid,
        va_cols: *mut List,
    ) -> *mut VacuumRelation;
}
pub type check_function_callback = ::std::option::Option<
    unsafe extern "C" fn(func_id: Oid, context: *mut ::std::os::raw::c_void) -> bool,
>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn exprType(expr: *const Node) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn exprTypmod(expr: *const Node) -> int32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn exprIsLengthCoercion(expr: *const Node, coercedTypmod: *mut int32) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn relabel_to_typmod(expr: *mut Node, typmod: int32) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn strip_implicit_coercions(node: *mut Node) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn expression_returns_set(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn exprCollation(expr: *const Node) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn exprInputCollation(expr: *const Node) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn exprSetCollation(expr: *mut Node, collation: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn exprSetInputCollation(expr: *mut Node, inputcollation: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn exprLocation(expr: *const Node) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fix_opfuncids(node: *mut Node);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_opfuncid(opexpr: *mut OpExpr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_sa_opfuncid(opexpr: *mut ScalarArrayOpExpr);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn expression_tree_mutator(
        node: *mut Node,
        mutator: ::std::option::Option<unsafe extern "C" fn() -> *mut Node>,
        context: *mut ::std::os::raw::c_void,
    ) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn query_tree_mutator(
        query: *mut Query,
        mutator: ::std::option::Option<unsafe extern "C" fn() -> *mut Node>,
        context: *mut ::std::os::raw::c_void,
        flags: ::std::os::raw::c_int,
    ) -> *mut Query;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_table_walker(
        rtable: *mut List,
        walker: ::std::option::Option<unsafe extern "C" fn() -> bool>,
        context: *mut ::std::os::raw::c_void,
        flags: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_table_mutator(
        rtable: *mut List,
        mutator: ::std::option::Option<unsafe extern "C" fn() -> *mut Node>,
        context: *mut ::std::os::raw::c_void,
        flags: ::std::os::raw::c_int,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_table_entry_walker(
        rte: *mut RangeTblEntry,
        walker: ::std::option::Option<unsafe extern "C" fn() -> bool>,
        context: *mut ::std::os::raw::c_void,
        flags: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn query_or_expression_tree_walker(
        node: *mut Node,
        walker: ::std::option::Option<unsafe extern "C" fn() -> bool>,
        context: *mut ::std::os::raw::c_void,
        flags: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn query_or_expression_tree_mutator(
        node: *mut Node,
        mutator: ::std::option::Option<unsafe extern "C" fn() -> *mut Node>,
        context: *mut ::std::os::raw::c_void,
        flags: ::std::os::raw::c_int,
    ) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn raw_expression_tree_walker(
        node: *mut Node,
        walker: ::std::option::Option<unsafe extern "C" fn() -> bool>,
        context: *mut ::std::os::raw::c_void,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn planstate_tree_walker(
        planstate: *mut PlanState,
        walker: ::std::option::Option<unsafe extern "C" fn() -> bool>,
        context: *mut ::std::os::raw::c_void,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn print(obj: *const ::std::os::raw::c_void);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pprint(obj: *const ::std::os::raw::c_void);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn format_node_dump(dump: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pretty_format_node_dump(
        dump: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn print_rt(rtable: *const List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn print_expr(expr: *const Node, rtable: *const List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn print_pathkeys(pathkeys: *const List, rtable: *const List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn print_tl(tlist: *const List, rtable: *const List);
}
#[pgx_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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SQLCmd {
    pub type_: NodeTag,
}
impl Default for SQLCmd {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_append_rel_info(
        parentrel: Relation,
        childrel: Relation,
        parentRTindex: Index,
        childRTindex: Index,
    ) -> *mut AppendRelInfo;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn adjust_appendrel_attrs_multilevel(
        root: *mut PlannerInfo,
        node: *mut Node,
        child_relids: Relids,
        top_parent_relids: Relids,
    ) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn adjust_child_relids(
        relids: Relids,
        nappinfos: ::std::os::raw::c_int,
        appinfos: *mut *mut AppendRelInfo,
    ) -> Relids;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn adjust_child_relids_multilevel(
        root: *mut PlannerInfo,
        relids: Relids,
        child_relids: Relids,
        top_parent_relids: Relids,
    ) -> Relids;
}
#[pgx_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;
}
#[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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_agg_clause(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_agg_clause_costs(
        root: *mut PlannerInfo,
        clause: *mut Node,
        aggsplit: AggSplit,
        costs: *mut AggClauseCosts,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_window_function(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_window_functions(clause: *mut Node, maxWinRef: Index) -> *mut WindowFuncLists;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn expression_returns_set_rows(root: *mut PlannerInfo, clause: *mut Node) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_subplans(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn max_parallel_hazard(parse: *mut Query) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_parallel_safe(root: *mut PlannerInfo, node: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_nonstrict_functions(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_exec_param(clause: *mut Node, param_ids: *mut List) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_leaked_vars(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_nonnullable_rels(clause: *mut Node) -> Relids;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_nonnullable_vars(clause: *mut Node) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_forced_null_vars(clause: *mut Node) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_forced_null_var(clause: *mut Node) -> *mut Var;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_pseudo_constant_clause(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_pseudo_constant_clause_relids(clause: *mut Node, relids: Relids) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn NumRelids(clause: *mut Node) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn NumRelids_new(root: *mut PlannerInfo, clause: *mut Node) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CommuteOpExpr(clause: *mut OpExpr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inline_set_returning_function(
        root: *mut PlannerInfo,
        rte: *mut RangeTblEntry,
    ) -> *mut Query;
}
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_hashagg: bool;
}
extern "C" {
    pub static mut enable_nestloop: bool;
}
extern "C" {
    pub static mut enable_material: 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 constraint_exclusion: ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_pages_fetched(
        tuples_fetched: f64,
        pages: BlockNumber,
        index_pages: f64,
        root: *mut PlannerInfo,
    ) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_seqscan(
        path: *mut Path,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_samplescan(
        path: *mut Path,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_index(
        path: *mut IndexPath,
        root: *mut PlannerInfo,
        loop_count: f64,
        partial_path: bool,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_bitmap_and_node(path: *mut BitmapAndPath, root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_bitmap_or_node(path: *mut BitmapOrPath, root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_bitmap_tree_node(path: *mut Path, cost: *mut Cost, selec: *mut Selectivity);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_subqueryscan(
        path: *mut SubqueryScanPath,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_functionscan(
        path: *mut Path,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_valuesscan(
        path: *mut Path,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_tablefuncscan(
        path: *mut Path,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_ctescan(
        path: *mut Path,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_namedtuplestorescan(
        path: *mut Path,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_resultscan(
        path: *mut Path,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_recursive_union(runion: *mut Path, nrterm: *mut Path, rterm: *mut Path);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_append(path: *mut AppendPath);
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn final_cost_nestloop(
        root: *mut PlannerInfo,
        path: *mut NestPath,
        workspace: *mut JoinCostWorkspace,
        extra: *mut JoinPathExtraData,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn final_cost_mergejoin(
        root: *mut PlannerInfo,
        path: *mut MergePath,
        workspace: *mut JoinCostWorkspace,
        extra: *mut JoinPathExtraData,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn final_cost_hashjoin(
        root: *mut PlannerInfo,
        path: *mut HashPath,
        workspace: *mut JoinCostWorkspace,
        extra: *mut JoinPathExtraData,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_gather(
        path: *mut GatherPath,
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        param_info: *mut ParamPathInfo,
        rows: *mut f64,
    );
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_subplan(root: *mut PlannerInfo, subplan: *mut SubPlan, plan: *mut Plan);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_qual_eval(cost: *mut QualCost, quals: *mut List, root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cost_qual_eval_node(cost: *mut QualCost, qual: *mut Node, root: *mut PlannerInfo);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_baserel_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_parameterized_baserel_size(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        param_clauses: *mut List,
    ) -> f64;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_subquery_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_function_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_values_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_cte_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo, cte_rows: f64);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_tablefunc_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_namedtuplestore_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_result_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_foreign_size_estimates(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_pathtarget_cost_width(
        root: *mut PlannerInfo,
        target: *mut PathTarget,
    ) -> *mut PathTarget;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clauselist_selectivity_simple(
        root: *mut PlannerInfo,
        clauses: *mut List,
        varRelid: ::std::os::raw::c_int,
        jointype: JoinType,
        sjinfo: *mut SpecialJoinInfo,
        estimatedclauses: *mut Bitmapset,
    ) -> Selectivity;
}
#[pgx_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;
}
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 effective_cache_size: ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clamp_row_est(nrows: f64) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_pseudo_constant_for_index(expr: *mut Node, index: *mut IndexOptInfo) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_pseudo_constant_for_index_new(
        root: *mut PlannerInfo,
        expr: *mut Node,
        index: *mut IndexOptInfo,
    ) -> bool;
}
pub const ForceParallelMode_FORCE_PARALLEL_OFF: ForceParallelMode = 0;
pub const ForceParallelMode_FORCE_PARALLEL_ON: ForceParallelMode = 1;
pub const ForceParallelMode_FORCE_PARALLEL_REGRESS: ForceParallelMode = 2;
pub type ForceParallelMode = ::std::os::raw::c_uint;
extern "C" {
    pub static mut force_parallel_mode: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut parallel_leader_participation: bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn planner(
        parse: *mut Query,
        cursorOptions: ::std::os::raw::c_int,
        boundParams: *mut ParamListInfoData,
    ) -> *mut PlannedStmt;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn expression_planner(expr: *mut Expr) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn expression_planner_with_deps(
        expr: *mut Expr,
        relationOids: *mut *mut List,
        invalItems: *mut *mut List,
    ) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn plan_cluster_use_sort(tableOid: Oid, indexOid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn plan_create_index_workers(tableOid: Oid, indexOid: Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn extract_query_dependencies(
        query: *mut Node,
        relationOids: *mut *mut List,
        invalItems: *mut *mut List,
        hasRowSecurity: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn negate_clause(node: *mut Node) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn canonicalize_qual(qual: *mut Expr, is_check: bool) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_mutable_functions(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_volatile_functions(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_volatile_functions_not_nextval(clause: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn eval_const_expressions(root: *mut PlannerInfo, node: *mut Node) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn estimate_expression_value(root: *mut PlannerInfo, node: *mut Node) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn evaluate_expr(
        expr: *mut Expr,
        result_type: Oid,
        result_typmod: int32,
        result_collation: Oid,
    ) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn expand_function_arguments(
        args: *mut List,
        result_type: Oid,
        func_tuple: *mut HeapTupleData,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn predicate_implied_by(
        predicate_list: *mut List,
        clause_list: *mut List,
        weak: bool,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn predicate_refuted_by(
        predicate_list: *mut List,
        clause_list: *mut List,
        weak: bool,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn count_nonjunk_tlist_entries(tlist: *mut List) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_sortgroupref_tle(sortref: Index, targetList: *mut List) -> *mut TargetEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_sortgroupclause_tle(
        sgClause: *mut SortGroupClause,
        targetList: *mut List,
    ) -> *mut TargetEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_sortgroupclause_expr(
        sgClause: *mut SortGroupClause,
        targetList: *mut List,
    ) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_sortgrouplist_exprs(sgClauses: *mut List, targetList: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_sortgroupref_clause(sortref: Index, clauses: *mut List) -> *mut SortGroupClause;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_sortgroupref_clause_noerr(
        sortref: Index,
        clauses: *mut List,
    ) -> *mut SortGroupClause;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pull_varnos(node: *mut Node) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pull_varnos_of_level(node: *mut Node, levelsup: ::std::os::raw::c_int)
        -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pull_varnos_new(root: *mut PlannerInfo, node: *mut Node) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pull_varnos_of_level_new(
        root: *mut PlannerInfo,
        node: *mut Node,
        levelsup: ::std::os::raw::c_int,
    ) -> *mut Bitmapset;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pull_varattnos(node: *mut Node, varno: Index, varattnos: *mut *mut Bitmapset);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pull_vars_of_level(node: *mut Node, levelsup: ::std::os::raw::c_int) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_var_clause(node: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contain_vars_of_level(node: *mut Node, levelsup: ::std::os::raw::c_int) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pull_var_clause(node: *mut Node, flags: ::std::os::raw::c_int) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn flatten_join_alias_vars(query: *mut Query, node: *mut Node) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn compare_path_costs(
        path1: *mut Path,
        path2: *mut Path,
        criterion: CostSelector,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn compare_fractional_path_costs(
        path1: *mut Path,
        path2: *mut Path,
        fraction: f64,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_cheapest(parent_rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_path(parent_rel: *mut RelOptInfo, new_path: *mut Path);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_partial_path(parent_rel: *mut RelOptInfo, new_path: *mut Path);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_partial_path_precheck(
        parent_rel: *mut RelOptInfo,
        total_cost: Cost,
        pathkeys: *mut List,
    ) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_samplescan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        required_outer: Relids,
    ) -> *mut Path;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_bitmap_and_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        bitmapquals: *mut List,
    ) -> *mut BitmapAndPath;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_bitmap_or_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        bitmapquals: *mut List,
    ) -> *mut BitmapOrPath;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_tidscan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        tidquals: *mut List,
        required_outer: Relids,
    ) -> *mut TidPath;
}
#[pgx_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,
        partitioned_rels: *mut List,
        rows: f64,
    ) -> *mut AppendPath;
}
#[pgx_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,
        partitioned_rels: *mut List,
    ) -> *mut MergeAppendPath;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_material_path(rel: *mut RelOptInfo, subpath: *mut Path) -> *mut MaterialPath;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_unique_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        subpath: *mut Path,
        sjinfo: *mut SpecialJoinInfo,
    ) -> *mut UniquePath;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_subqueryscan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        subpath: *mut Path,
        pathkeys: *mut List,
        required_outer: Relids,
    ) -> *mut SubqueryScanPath;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_functionscan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        pathkeys: *mut List,
        required_outer: Relids,
    ) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_valuesscan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        required_outer: Relids,
    ) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_tablefuncscan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        required_outer: Relids,
    ) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_ctescan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        required_outer: Relids,
    ) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_namedtuplestorescan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        required_outer: Relids,
    ) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_resultscan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        required_outer: Relids,
    ) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_worktablescan_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        required_outer: Relids,
    ) -> *mut Path;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn calc_nestloop_required_outer(
        outerrelids: Relids,
        outer_paramrels: Relids,
        innerrelids: Relids,
        inner_paramrels: Relids,
    ) -> Relids;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn calc_non_nestloop_required_outer(outer_path: *mut Path, inner_path: *mut Path)
        -> Relids;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_projection_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        subpath: *mut Path,
        target: *mut PathTarget,
    ) -> *mut ProjectionPath;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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,
        numGroups: f64,
    ) -> *mut GroupingSetsPath;
}
#[pgx_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;
}
#[pgx_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,
    ) -> *mut WindowAggPath;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_modifytable_path(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        operation: CmdType,
        canSetTag: bool,
        nominalRelation: Index,
        rootRelation: Index,
        partColsUpdated: bool,
        resultRelations: *mut List,
        subpaths: *mut List,
        subroots: *mut List,
        withCheckOptionLists: *mut List,
        returningLists: *mut List,
        rowMarks: *mut List,
        onconflict: *mut OnConflictExpr,
        epqParam: ::std::os::raw::c_int,
    ) -> *mut ModifyTablePath;
}
#[pgx_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,
        offset_est: int64,
        count_est: int64,
    ) -> *mut LimitPath;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reparameterize_path(
        root: *mut PlannerInfo,
        path: *mut Path,
        required_outer: Relids,
        loop_count: f64,
    ) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reparameterize_path_by_child(
        root: *mut PlannerInfo,
        path: *mut Path,
        child_rel: *mut RelOptInfo,
    ) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setup_simple_rel_arrays(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setup_append_rel_array(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn expand_planner_arrays(root: *mut PlannerInfo, add_size: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn build_simple_rel(
        root: *mut PlannerInfo,
        relid: ::std::os::raw::c_int,
        parent: *mut RelOptInfo,
    ) -> *mut RelOptInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_base_rel(root: *mut PlannerInfo, relid: ::std::os::raw::c_int) -> *mut RelOptInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_join_rel(root: *mut PlannerInfo, relids: Relids) -> *mut RelOptInfo;
}
#[pgx_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,
        restrictlist_ptr: *mut *mut List,
    ) -> *mut RelOptInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn min_join_parameterization(
        root: *mut PlannerInfo,
        joinrelids: Relids,
        outer_rel: *mut RelOptInfo,
        inner_rel: *mut RelOptInfo,
    ) -> Relids;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fetch_upper_rel(
        root: *mut PlannerInfo,
        kind: UpperRelationKind,
        relids: Relids,
    ) -> *mut RelOptInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_childrel_parents(root: *mut PlannerInfo, rel: *mut RelOptInfo) -> Relids;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_baserel_parampathinfo(
        root: *mut PlannerInfo,
        baserel: *mut RelOptInfo,
        required_outer: Relids,
    ) -> *mut ParamPathInfo;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_appendrel_parampathinfo(
        appendrel: *mut RelOptInfo,
        required_outer: Relids,
    ) -> *mut ParamPathInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_param_path_info(rel: *mut RelOptInfo, required_outer: Relids)
        -> *mut ParamPathInfo;
}
#[pgx_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,
        jointype: JoinType,
    ) -> *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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_one_rel(root: *mut PlannerInfo, joinlist: *mut List) -> *mut RelOptInfo;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_gather_paths(root: *mut PlannerInfo, rel: *mut RelOptInfo, override_rows: bool);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_partial_bitmap_paths(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        bitmapqual: *mut Path,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_partitionwise_join_paths(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_index_paths(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn match_index_to_operand(
        operand: *mut Node,
        indexcol: ::std::os::raw::c_int,
        index: *mut IndexOptInfo,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_index_predicates(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_tidscan_paths(root: *mut PlannerInfo, rel: *mut RelOptInfo);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn join_search_one_level(root: *mut PlannerInfo, level: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_join_rel(
        root: *mut PlannerInfo,
        rel1: *mut RelOptInfo,
        rel2: *mut RelOptInfo,
    ) -> *mut RelOptInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn have_join_order_restriction(
        root: *mut PlannerInfo,
        rel1: *mut RelOptInfo,
        rel2: *mut RelOptInfo,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn have_dangerous_phv(
        root: *mut PlannerInfo,
        outer_relids: Relids,
        inner_params: Relids,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mark_dummy_rel(rel: *mut RelOptInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn have_partkey_equi_join(
        joinrel: *mut RelOptInfo,
        rel1: *mut RelOptInfo,
        rel2: *mut RelOptInfo,
        jointype: JoinType,
        restrictlist: *mut List,
    ) -> bool;
}
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,
>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn process_equivalence(
        root: *mut PlannerInfo,
        p_restrictinfo: *mut *mut RestrictInfo,
        below_outer_join: bool,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn canonicalize_ec_expression(
        expr: *mut Expr,
        req_type: Oid,
        req_collation: Oid,
    ) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reconsider_outer_join_clauses(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_eclass_for_sort_expr(
        root: *mut PlannerInfo,
        expr: *mut Expr,
        nullable_relids: Relids,
        opfamilies: *mut List,
        opcintype: Oid,
        collation: Oid,
        sortref: Index,
        rel: Relids,
        create_it: bool,
    ) -> *mut EquivalenceClass;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_base_implied_equalities(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_join_implied_equalities(
        root: *mut PlannerInfo,
        join_relids: Relids,
        outer_relids: Relids,
        inner_rel: *mut RelOptInfo,
    ) -> *mut List;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn exprs_known_equal(root: *mut PlannerInfo, item1: *mut Node, item2: *mut Node) -> bool;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_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_rel: *mut RelOptInfo,
        child_rel: *mut RelOptInfo,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn have_relevant_eclass_joinclause(
        root: *mut PlannerInfo,
        rel1: *mut RelOptInfo,
        rel2: *mut RelOptInfo,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_relevant_eclass_joinclause(root: *mut PlannerInfo, rel1: *mut RelOptInfo) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn eclass_useful_for_merging(
        root: *mut PlannerInfo,
        eclass: *mut EquivalenceClass,
        rel: *mut RelOptInfo,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_redundant_derived_clause(rinfo: *mut RestrictInfo, clauselist: *mut List) -> bool;
}
#[pgx_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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn compare_pathkeys(keys1: *mut List, keys2: *mut List) -> PathKeysComparison;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pathkeys_contained_in(keys1: *mut List, keys2: *mut List) -> bool;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_cheapest_parallel_safe_total_inner(paths: *mut List) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn build_index_pathkeys(
        root: *mut PlannerInfo,
        index: *mut IndexOptInfo,
        scandir: ScanDirection,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn build_partition_pathkeys(
        root: *mut PlannerInfo,
        partrel: *mut RelOptInfo,
        scandir: ScanDirection,
        partialkeys: *mut bool,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn build_expression_pathkey(
        root: *mut PlannerInfo,
        expr: *mut Expr,
        nullable_relids: Relids,
        opno: Oid,
        rel: Relids,
        create_it: bool,
    ) -> *mut List;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn build_join_pathkeys(
        root: *mut PlannerInfo,
        joinrel: *mut RelOptInfo,
        jointype: JoinType,
        outer_pathkeys: *mut List,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_pathkeys_for_sortclauses(
        root: *mut PlannerInfo,
        sortclauses: *mut List,
        tlist: *mut List,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn initialize_mergeclause_eclasses(root: *mut PlannerInfo, restrictinfo: *mut RestrictInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn update_mergeclause_eclasses(root: *mut PlannerInfo, restrictinfo: *mut RestrictInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_mergeclauses_for_outer_pathkeys(
        root: *mut PlannerInfo,
        pathkeys: *mut List,
        restrictinfos: *mut List,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn select_outer_pathkeys_for_merge(
        root: *mut PlannerInfo,
        mergeclauses: *mut List,
        joinrel: *mut RelOptInfo,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_inner_pathkeys_for_merge(
        root: *mut PlannerInfo,
        mergeclauses: *mut List,
        outer_pathkeys: *mut List,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn trim_mergeclauses_for_inner_pathkeys(
        root: *mut PlannerInfo,
        mergeclauses: *mut List,
        pathkeys: *mut List,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn truncate_useless_pathkeys(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        pathkeys: *mut List,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_useful_pathkeys(root: *mut PlannerInfo, rel: *mut RelOptInfo) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_paths_to_append_rel(
        root: *mut PlannerInfo,
        rel: *mut RelOptInfo,
        live_childrels: *mut List,
    );
}
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),
>;
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn preprocess_minmax_aggregates(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_plan(root: *mut PlannerInfo, best_path: *mut Path) -> *mut Plan;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn change_plan_targetlist(
        subplan: *mut Plan,
        tlist: *mut List,
        tlist_parallel_safe: bool,
    ) -> *mut Plan;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn materialize_finished_plan(subplan: *mut Plan) -> *mut Plan;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_projection_capable_path(path: *mut Path) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_projection_capable_plan(plan: *mut Plan) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_sort_from_sortclauses(sortcls: *mut List, lefttree: *mut Plan) -> *mut Sort;
}
#[pgx_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,
        lefttree: *mut Plan,
    ) -> *mut Agg;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_limit(
        lefttree: *mut Plan,
        limitOffset: *mut Node,
        limitCount: *mut Node,
    ) -> *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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_base_rels_to_query(root: *mut PlannerInfo, jtnode: *mut Node);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_other_rels_to_query(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn build_base_rel_tlists(root: *mut PlannerInfo, final_tlist: *mut List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_vars_to_targetlist(
        root: *mut PlannerInfo,
        vars: *mut List,
        where_needed: Relids,
        create_new_ph: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn find_lateral_references(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_lateral_join_info(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn deconstruct_jointree(root: *mut PlannerInfo) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn distribute_restrictinfo_to_rels(root: *mut PlannerInfo, restrictinfo: *mut RestrictInfo);
}
#[pgx_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,
        nullable_relids: Relids,
        security_level: Index,
        below_outer_join: bool,
        both_const: bool,
    );
}
#[pgx_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,
        nullable_relids: Relids,
        security_level: Index,
    ) -> *mut RestrictInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn match_foreign_keys_to_quals(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn remove_useless_joins(root: *mut PlannerInfo, joinlist: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reduce_unique_semijoins(root: *mut PlannerInfo);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn query_supports_distinctness(query: *mut Query) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn query_is_distinct_for(query: *mut Query, colnos: *mut List, opids: *mut List) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_plan_references(root: *mut PlannerInfo, plan: *mut Plan) -> *mut Plan;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_plan_function_dependency(root: *mut PlannerInfo, funcid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_plan_type_dependency(root: *mut PlannerInfo, typid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn extract_query_dependencies_walker(node: *mut Node, root: *mut PlannerInfo) -> bool;
}
pub type planner_hook_type = ::std::option::Option<
    unsafe extern "C" fn(
        parse: *mut Query,
        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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn standard_planner(
        parse: *mut Query,
        cursorOptions: ::std::os::raw::c_int,
        boundParams: ParamListInfo,
    ) -> *mut PlannedStmt;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn select_rowmark_type(
        rte: *mut RangeTblEntry,
        strength: LockClauseStrength,
    ) -> RowMarkType;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn limit_needed(parse: *mut Query) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mark_partial_aggref(agg: *mut Aggref, aggsplit: AggSplit);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_cheapest_fractional_path(rel: *mut RelOptInfo, tuple_fraction: f64) -> *mut Path;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn preprocess_phv_expression(root: *mut PlannerInfo, expr: *mut Expr) -> *mut Expr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_restrictinfo(
        clause: *mut Expr,
        is_pushed_down: bool,
        outerjoin_delayed: bool,
        pseudoconstant: bool,
        security_level: Index,
        required_relids: Relids,
        outer_relids: Relids,
        nullable_relids: Relids,
    ) -> *mut RestrictInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_restrictinfo_new(
        root: *mut PlannerInfo,
        clause: *mut Expr,
        is_pushed_down: bool,
        outerjoin_delayed: bool,
        pseudoconstant: bool,
        security_level: Index,
        required_relids: Relids,
        outer_relids: Relids,
        nullable_relids: Relids,
    ) -> *mut RestrictInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn commute_restrictinfo(rinfo: *mut RestrictInfo, comm_op: Oid) -> *mut RestrictInfo;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn restriction_is_or_clause(restrictinfo: *mut RestrictInfo) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn restriction_is_securely_promotable(
        restrictinfo: *mut RestrictInfo,
        rel: *mut RelOptInfo,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_actual_clauses(restrictinfo_list: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn extract_actual_clauses(restrictinfo_list: *mut List, pseudoconstant: bool) -> *mut List;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn join_clause_is_movable_to(rinfo: *mut RestrictInfo, baserel: *mut RelOptInfo) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn join_clause_is_movable_into(
        rinfo: *mut RestrictInfo,
        currentrelids: Relids,
        current_and_outer: Relids,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tlist_member(node: *mut Expr, targetlist: *mut List) -> *mut TargetEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tlist_member_ignore_relabel(node: *mut Expr, targetlist: *mut List) -> *mut TargetEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_to_flat_tlist(tlist: *mut List, exprs: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_tlist_exprs(tlist: *mut List, includeJunk: bool) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tlist_same_exprs(tlist1: *mut List, tlist2: *mut List) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tlist_same_datatypes(tlist: *mut List, colTypes: *mut List, junkOK: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tlist_same_collations(tlist: *mut List, colCollations: *mut List, junkOK: bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn apply_tlist_labeling(dest_tlist: *mut List, src_tlist: *mut List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn extract_grouping_ops(groupClause: *mut List) -> *mut Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn extract_grouping_collations(groupClause: *mut List, tlist: *mut List) -> *mut Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn extract_grouping_cols(groupClause: *mut List, tlist: *mut List) -> *mut AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn grouping_is_sortable(groupClause: *mut List) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn grouping_is_hashable(groupClause: *mut List) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_pathtarget_from_tlist(tlist: *mut List) -> *mut PathTarget;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_tlist_from_pathtarget(target: *mut PathTarget) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn copy_pathtarget(src: *mut PathTarget) -> *mut PathTarget;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn create_empty_pathtarget() -> *mut PathTarget;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_column_to_pathtarget(target: *mut PathTarget, expr: *mut Expr, sortgroupref: Index);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_new_column_to_pathtarget(target: *mut PathTarget, expr: *mut Expr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_new_columns_to_pathtarget(target: *mut PathTarget, exprs: *mut List);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn apply_pathtarget_labeling_to_tlist(tlist: *mut List, target: *mut PathTarget);
}
#[pgx_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,
    );
}
pub type post_parse_analyze_hook_type =
    ::std::option::Option<unsafe extern "C" fn(pstate: *mut ParseState, query: *mut Query)>;
extern "C" {
    pub static mut post_parse_analyze_hook: post_parse_analyze_hook_type;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn parse_analyze(
        parseTree: *mut RawStmt,
        sourceText: *const ::std::os::raw::c_char,
        paramTypes: *mut Oid,
        numParams: ::std::os::raw::c_int,
        queryEnv: *mut QueryEnvironment,
    ) -> *mut Query;
}
#[pgx_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,
    ) -> *mut Query;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn transformTopLevelStmt(pstate: *mut ParseState, parseTree: *mut RawStmt) -> *mut Query;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn transformStmt(pstate: *mut ParseState, parseTree: *mut Node) -> *mut Query;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn analyze_requires_snapshot(parseTree: *mut RawStmt) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LCS_asString(strength: LockClauseStrength) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckSelectLocking(qry: *mut Query, strength: LockClauseStrength);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn applyLockingClause(
        qry: *mut Query,
        rtindex: Index,
        strength: LockClauseStrength,
        waitPolicy: LockWaitPolicy,
        pushedDown: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BuildOnConflictExcludedTargetlist(targetrel: Relation, exclRelIndex: Index)
        -> *mut List;
}
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;
#[pgx_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;
}
#[pgx_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,
        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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn func_select_candidate(
        nargs: ::std::os::raw::c_int,
        input_typeids: *mut Oid,
        candidates: FuncCandidateList,
    ) -> FuncCandidateList;
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupFuncName(
        funcname: *mut List,
        nargs: ::std::os::raw::c_int,
        argtypes: *const Oid,
        missing_ok: bool,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupFuncWithArgs(
        objtype: ObjectType,
        func: *mut ObjectWithArgs,
        missing_ok: bool,
    ) -> Oid;
}
#[pgx_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;
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupOperWithArgs(oper: *mut ObjectWithArgs, noError: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oper(
        pstate: *mut ParseState,
        op: *mut List,
        arg1: Oid,
        arg2: Oid,
        noError: bool,
        location: ::std::os::raw::c_int,
    ) -> Operator;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn right_oper(
        pstate: *mut ParseState,
        op: *mut List,
        arg: Oid,
        noError: bool,
        location: ::std::os::raw::c_int,
    ) -> Operator;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn compatible_oper_opid(op: *mut List, arg1: Oid, arg2: Oid, noError: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oprid(op: Operator) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oprfuncid(op: Operator) -> Oid;
}
#[pgx_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;
}
#[pgx_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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupTypeName(
        pstate: *mut ParseState,
        typeName: *const TypeName,
        typmod_p: *mut int32,
        missing_ok: bool,
    ) -> Type;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupTypeNameOid(
        pstate: *mut ParseState,
        typeName: *const TypeName,
        missing_ok: bool,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typenameType(
        pstate: *mut ParseState,
        typeName: *const TypeName,
        typmod_p: *mut int32,
    ) -> Type;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typenameTypeId(pstate: *mut ParseState, typeName: *const TypeName) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typenameTypeIdAndMod(
        pstate: *mut ParseState,
        typeName: *const TypeName,
        typeid_p: *mut Oid,
        typmod_p: *mut int32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TypeNameToString(typeName: *const TypeName) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TypeNameListToString(typenames: *mut List) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LookupCollation(
        pstate: *mut ParseState,
        collnames: *mut List,
        location: ::std::os::raw::c_int,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetColumnDefCollation(
        pstate: *mut ParseState,
        coldef: *mut ColumnDef,
        typeOid: Oid,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeidType(id: Oid) -> Type;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeTypeId(tp: Type) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeLen(t: Type) -> int16;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeByVal(t: Type) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeTypeName(t: Type) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeTypeRelid(typ: Type) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeTypeCollation(typ: Type) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn stringTypeDatum(
        tp: Type,
        string: *mut ::std::os::raw::c_char,
        atttypmod: int32,
    ) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeidTypeRelid(type_id: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeOrDomainTypeRelid(type_id: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn typeStringToTypeName(str_: *const ::std::os::raw::c_char) -> *mut TypeName;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn parseTypeString(
        str_: *const ::std::os::raw::c_char,
        typeid_p: *mut Oid,
        typmod_p: *mut int32,
        missing_ok: bool,
    );
}
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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn raw_parser(str_: *const ::std::os::raw::c_char) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SystemFuncName(name: *mut ::std::os::raw::c_char) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SystemTypeName(name: *mut ::std::os::raw::c_char) -> *mut TypeName;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rte_attribute_name(
        rte: *mut RangeTblEntry,
        attnum: AttrNumber,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rte_attribute_type(
        rte: *mut RangeTblEntry,
        attnum: AttrNumber,
        vartype: *mut Oid,
        vartypmod: *mut int32,
        varcollid: *mut Oid,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rte_attribute_is_dropped(rte: *mut RangeTblEntry, attnum: AttrNumber) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_tle_by_resno(tlist: *mut List, resno: AttrNumber) -> *mut TargetEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_parse_rowmark(qry: *mut Query, rtindex: Index) -> *mut RowMarkClause;
}
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;
#[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 confirmed_flush: XLogRecPtr,
    pub plugin: NameData,
}
impl Default for ReplicationSlotPersistentData {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::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::<Self>::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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotsShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotsShmemInit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotCreate(
        name: *const ::std::os::raw::c_char,
        db_specific: bool,
        p: ReplicationSlotPersistency,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotPersist();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotDrop(name: *const ::std::os::raw::c_char, nowait: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotAcquire(name: *const ::std::os::raw::c_char, nowait: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotRelease();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotCleanup();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotSave();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotMarkDirty();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotValidateName(
        name: *const ::std::os::raw::c_char,
        elevel: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotReserveWal();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotsComputeRequiredXmin(already_locked: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotsComputeRequiredLSN();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotsComputeLogicalRestartLSN() -> XLogRecPtr;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReplicationSlotsDropDBSlots(dboid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StartupReplicationSlots();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckPointReplicationSlots();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckSlotRequirements();
}
#[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::<Self>::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_INTERNAL_SNAPSHOT: ReorderBufferChangeType =
    4;
pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_COMMAND_ID:
    ReorderBufferChangeType = 5;
pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_TUPLECID: ReorderBufferChangeType =
    6;
pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_SPEC_INSERT:
    ReorderBufferChangeType = 7;
pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_SPEC_CONFIRM:
    ReorderBufferChangeType = 8;
pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_TRUNCATE: ReorderBufferChangeType = 9;
pub const ReorderBufferChangeType_REORDER_BUFFER_CHANGE_INTERNAL_SPEC_ABORT:
    ReorderBufferChangeType = 10;
pub type ReorderBufferChangeType = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ReorderBufferChange {
    pub lsn: XLogRecPtr,
    pub action: ReorderBufferChangeType,
    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,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ReorderBufferChange__bindgen_ty_1__bindgen_ty_1 {
    pub relnode: RelFileNode,
    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::<Self>::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::<Self>::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::<Self>::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 node: RelFileNode,
    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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ReorderBufferTXN {
    pub xid: TransactionId,
    pub has_catalog_changes: bool,
    pub is_known_as_subxact: bool,
    pub toplevel_xid: TransactionId,
    pub first_lsn: XLogRecPtr,
    pub final_lsn: XLogRecPtr,
    pub end_lsn: XLogRecPtr,
    pub restart_decoding_lsn: XLogRecPtr,
    pub origin_id: RepOriginId,
    pub origin_lsn: XLogRecPtr,
    pub commit_time: TimestampTz,
    pub base_snapshot: Snapshot,
    pub base_snapshot_lsn: XLogRecPtr,
    pub base_snapshot_node: dlist_node,
    pub nentries: uint64,
    pub nentries_mem: uint64,
    pub serialized: bool,
    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,
}
impl Default for ReorderBufferTXN {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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<unsafe extern "C" fn(rb: *mut ReorderBuffer, txn: *mut ReorderBufferTXN)>;
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,
    ),
>;
#[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 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 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,
}
impl Default for ReorderBuffer {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferAllocate() -> *mut ReorderBuffer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferFree(arg1: *mut ReorderBuffer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferGetTupleBuf(
        arg1: *mut ReorderBuffer,
        tuple_len: Size,
    ) -> *mut ReorderBufferTupleBuf;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferReturnTupleBuf(arg1: *mut ReorderBuffer, tuple: *mut ReorderBufferTupleBuf);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferGetChange(arg1: *mut ReorderBuffer) -> *mut ReorderBufferChange;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferReturnChange(arg1: *mut ReorderBuffer, arg2: *mut ReorderBufferChange);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferGetRelids(
        arg1: *mut ReorderBuffer,
        nrelids: ::std::os::raw::c_int,
    ) -> *mut Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferReturnRelids(arg1: *mut ReorderBuffer, relids: *mut Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferQueueChange(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        lsn: XLogRecPtr,
        arg3: *mut ReorderBufferChange,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferQueueMessage(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        snapshot: Snapshot,
        lsn: XLogRecPtr,
        transactional: bool,
        prefix: *const ::std::os::raw::c_char,
        message_size: Size,
        message: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferCommit(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        commit_lsn: XLogRecPtr,
        end_lsn: XLogRecPtr,
        commit_time: TimestampTz,
        origin_id: RepOriginId,
        origin_lsn: XLogRecPtr,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferAssignChild(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        arg3: TransactionId,
        commit_lsn: XLogRecPtr,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferCommitChild(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        arg3: TransactionId,
        commit_lsn: XLogRecPtr,
        end_lsn: XLogRecPtr,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferAbort(arg1: *mut ReorderBuffer, arg2: TransactionId, lsn: XLogRecPtr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferAbortOld(arg1: *mut ReorderBuffer, xid: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferForget(arg1: *mut ReorderBuffer, arg2: TransactionId, lsn: XLogRecPtr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferSetBaseSnapshot(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        lsn: XLogRecPtr,
        snap: *mut SnapshotData,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferAddSnapshot(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        lsn: XLogRecPtr,
        snap: *mut SnapshotData,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferAddNewCommandId(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        lsn: XLogRecPtr,
        cid: CommandId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferAddNewTupleCids(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        lsn: XLogRecPtr,
        node: RelFileNode,
        pt: ItemPointerData,
        cmin: CommandId,
        cmax: CommandId,
        combocid: CommandId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferAddInvalidations(
        arg1: *mut ReorderBuffer,
        arg2: TransactionId,
        lsn: XLogRecPtr,
        nmsgs: Size,
        msgs: *mut SharedInvalidationMessage,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferImmediateInvalidation(
        arg1: *mut ReorderBuffer,
        ninvalidations: uint32,
        invalidations: *mut SharedInvalidationMessage,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferProcessXid(arg1: *mut ReorderBuffer, xid: TransactionId, lsn: XLogRecPtr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferXidSetCatalogChanges(
        arg1: *mut ReorderBuffer,
        xid: TransactionId,
        lsn: XLogRecPtr,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferXidHasCatalogChanges(arg1: *mut ReorderBuffer, xid: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferXidHasBaseSnapshot(arg1: *mut ReorderBuffer, xid: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferGetOldestTXN(arg1: *mut ReorderBuffer) -> *mut ReorderBufferTXN;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferGetOldestXmin(rb: *mut ReorderBuffer) -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReorderBufferSetRestartPoint(arg1: *mut ReorderBuffer, ptr: XLogRecPtr);
}
#[pgx_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type LogicalOutputPluginInit =
    ::std::option::Option<unsafe extern "C" fn(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<unsafe extern "C" fn(ctx: *mut LogicalDecodingContext)>;
#[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,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OutputPluginPrepareWrite(ctx: *mut LogicalDecodingContext, last_write: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OutputPluginWrite(ctx: *mut LogicalDecodingContext, last_write: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn OutputPluginUpdateProgress(ctx: *mut LogicalDecodingContext);
}
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),
>;
#[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 end_xact: 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 accept_writes: bool,
    pub prepared_write: bool,
    pub write_location: XLogRecPtr,
    pub write_xid: TransactionId,
}
impl Default for LogicalDecodingContext {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckLogicalDecodingRequirements();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateInitDecodingContext(
        plugin: *mut ::std::os::raw::c_char,
        output_plugin_options: *mut List,
        need_full_snapshot: bool,
        restart_lsn: XLogRecPtr,
        read_page: XLogPageReadCB,
        prepare_write: LogicalOutputPluginWriterPrepareWrite,
        do_write: LogicalOutputPluginWriterWrite,
        update_progress: LogicalOutputPluginWriterUpdateProgress,
    ) -> *mut LogicalDecodingContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateDecodingContext(
        start_lsn: XLogRecPtr,
        output_plugin_options: *mut List,
        fast_forward: bool,
        read_page: XLogPageReadCB,
        prepare_write: LogicalOutputPluginWriterPrepareWrite,
        do_write: LogicalOutputPluginWriterWrite,
        update_progress: LogicalOutputPluginWriterUpdateProgress,
    ) -> *mut LogicalDecodingContext;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DecodingContextFindStartpoint(ctx: *mut LogicalDecodingContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DecodingContextReady(ctx: *mut LogicalDecodingContext) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeDecodingContext(ctx: *mut LogicalDecodingContext);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LogicalIncreaseXminForSlot(lsn: XLogRecPtr, xmin: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LogicalIncreaseRestartDecodingForSlot(current_lsn: XLogRecPtr, restart_lsn: XLogRecPtr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LogicalConfirmReceivedLocation(lsn: XLogRecPtr);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn filter_by_origin_cb_wrapper(
        ctx: *mut LogicalDecodingContext,
        origin_id: RepOriginId,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QueryRewrite(parsetree: *mut Query) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AcquireRewriteLocks(parsetree: *mut Query, forExecute: bool, forUpdatePushedDown: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn build_column_default(rel: Relation, attrno: ::std::os::raw::c_int) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn rewriteTargetListUD(
        parsetree: *mut Query,
        target_rte: *mut RangeTblEntry,
        target_relation: Relation,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fill_extraUpdatedCols(target_rte: *mut RangeTblEntry, target_relation: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_view_query(view: Relation) -> *mut Query;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn view_query_is_auto_updatable(
        viewquery: *mut Query,
        check_cols: bool,
    ) -> *const ::std::os::raw::c_char;
}
#[pgx_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;
}
extern "C" {
    pub static mut old_snapshot_threshold: ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SnapMgrShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SnapMgrInit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetSnapshotCurrentTimestamp() -> TimestampTz;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetOldSnapshotThresholdTimestamp() -> TimestampTz;
}
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 RecentGlobalXmin: TransactionId;
}
extern "C" {
    pub static mut RecentGlobalDataXmin: TransactionId;
}
extern "C" {
    pub static mut SnapshotSelfData: SnapshotData;
}
extern "C" {
    pub static mut SnapshotAnyData: SnapshotData;
}
extern "C" {
    pub static mut CatalogSnapshotData: SnapshotData;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetTransactionSnapshot() -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetLatestSnapshot() -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SnapshotSetCommandId(curcid: CommandId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetOldestSnapshot() -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCatalogSnapshot(relid: Oid) -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetNonHistoricCatalogSnapshot(relid: Oid) -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InvalidateCatalogSnapshot();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InvalidateCatalogSnapshotConditionally();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PushActiveSnapshot(snapshot: Snapshot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PushActiveSnapshotWithLevel(snapshot: Snapshot, snap_level: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PushCopiedSnapshot(snapshot: Snapshot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UpdateActiveSnapshotCommandId();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PopActiveSnapshot();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetActiveSnapshot() -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ActiveSnapshotSet() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterSnapshot(snapshot: Snapshot) -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UnregisterSnapshot(snapshot: Snapshot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RegisterSnapshotOnOwner(snapshot: Snapshot, owner: ResourceOwner) -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UnregisterSnapshotFromOwner(snapshot: Snapshot, owner: ResourceOwner);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetFullRecentGlobalXmin() -> FullTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtSubCommit_Snapshot(level: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtSubAbort_Snapshot(level: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_Snapshot(isCommit: bool, resetXmin: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ImportSnapshot(idstr: *const ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XactHasExportedSnapshots() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DeleteAllExportedSnapshotFiles();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ThereAreNoPriorRegisteredSnapshots() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdLimitedForOldSnapshots(
        recentXmin: TransactionId,
        relation: Relation,
    ) -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MaintainOldSnapshotTimeMapping(whenTaken: TimestampTz, xmin: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExportSnapshot(snapshot: Snapshot) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HistoricSnapshotGetTupleCids() -> *mut HTAB;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SetupHistoricSnapshot(snapshot_now: Snapshot, tuplecids: *mut HTAB);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TeardownHistoricSnapshot(is_error: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HistoricSnapshotActive() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EstimateSnapshotSpace(snapshot: Snapshot) -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SerializeSnapshot(snapshot: Snapshot, start_address: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RestoreSnapshot(start_address: *mut ::std::os::raw::c_char) -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RestoreTransactionSnapshot(
        snapshot: Snapshot,
        master_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, 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 target_prefetch_pages: ::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 effective_io_concurrency: ::std::os::raw::c_int;
}
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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ComputeIoConcurrency(io_concurrency: ::std::os::raw::c_int, target: *mut f64) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PrefetchBuffer(reln: Relation, forkNum: ForkNumber, blockNum: BlockNumber);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReadBuffer(reln: Relation, blockNum: BlockNumber) -> Buffer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReadBufferExtended(
        reln: Relation,
        forkNum: ForkNumber,
        blockNum: BlockNumber,
        mode: ReadBufferMode,
        strategy: BufferAccessStrategy,
    ) -> Buffer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReadBufferWithoutRelcache(
        rnode: RelFileNode,
        forkNum: ForkNumber,
        blockNum: BlockNumber,
        mode: ReadBufferMode,
        strategy: BufferAccessStrategy,
    ) -> Buffer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReleaseBuffer(buffer: Buffer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UnlockReleaseBuffer(buffer: Buffer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MarkBufferDirty(buffer: Buffer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IncrBufferRefCount(buffer: Buffer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReleaseAndReadBuffer(
        buffer: Buffer,
        relation: Relation,
        blockNum: BlockNumber,
    ) -> Buffer;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitBufferPool();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitBufferPoolAccess();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitBufferPoolBackend();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtEOXact_Buffers(isCommit: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PrintBufferLeakWarning(buffer: Buffer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckPointBuffers(flags: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufferGetBlockNumber(buffer: Buffer) -> BlockNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationGetNumberOfBlocksInFork(relation: Relation, forkNum: ForkNumber) -> BlockNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FlushOneBuffer(buffer: Buffer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FlushRelationBuffers(rel: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FlushDatabaseBuffers(dbid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DropRelFileNodeBuffers(
        rnode: RelFileNodeBackend,
        forkNum: ForkNumber,
        firstDelBlock: BlockNumber,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DropRelFileNodesAllBuffers(
        rnodes: *mut RelFileNodeBackend,
        nnodes: ::std::os::raw::c_int,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DropDatabaseBuffers(dbid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufferIsPermanent(buffer: Buffer) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufferGetLSNAtomic(buffer: Buffer) -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufferShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufferGetTag(
        buffer: Buffer,
        rnode: *mut RelFileNode,
        forknum: *mut ForkNumber,
        blknum: *mut BlockNumber,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MarkBufferDirtyHint(buffer: Buffer, buffer_std: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UnlockBuffers();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockBuffer(buffer: Buffer, mode: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConditionalLockBuffer(buffer: Buffer) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LockBufferForCleanup(buffer: Buffer);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ConditionalLockBufferForCleanup(buffer: Buffer) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsBufferCleanupOK(buffer: Buffer) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HoldingBufferPinThatDelaysRecovery() -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AbortBufferIO();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufmgrCommit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BgBufferSync(wb_context: *mut WritebackContext) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn AtProcExit_LocalBuffers();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TestForOldSnapshot_impl(snapshot: Snapshot, relation: Relation);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetAccessStrategy(btype: BufferAccessStrategyType) -> BufferAccessStrategy;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FreeAccessStrategy(strategy: BufferAccessStrategy);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BufFile {
    _unused: [u8; 0],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileCreateTemp(interXact: bool) -> *mut BufFile;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileClose(file: *mut BufFile);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileRead(file: *mut BufFile, ptr: *mut ::std::os::raw::c_void, size: usize) -> usize;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileWrite(file: *mut BufFile, ptr: *mut ::std::os::raw::c_void, size: usize)
        -> usize;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileTell(file: *mut BufFile, fileno: *mut ::std::os::raw::c_int, offset: *mut off_t);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileSeekBlock(
        file: *mut BufFile,
        blknum: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileSize(file: *mut BufFile) -> int64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileAppend(target: *mut BufFile, source: *mut BufFile) -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileCreateShared(
        fileset: *mut SharedFileSet,
        name: *const ::std::os::raw::c_char,
    ) -> *mut BufFile;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileExportShared(file: *mut BufFile);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileOpenShared(
        fileset: *mut SharedFileSet,
        name: *const ::std::os::raw::c_char,
    ) -> *mut BufFile;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BufFileDeleteShared(fileset: *mut SharedFileSet, name: *const ::std::os::raw::c_char);
}
pub type pg_on_exit_callback =
    ::std::option::Option<unsafe extern "C" fn(code: ::std::os::raw::c_int, arg: Datum)>;
pub type shmem_startup_hook_type = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut proc_exit_inprogress: bool;
}
extern "C" {
    pub static mut shmem_exit_inprogress: bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn proc_exit(code: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shmem_exit(code: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_proc_exit(function: pg_on_exit_callback, arg: Datum);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_shmem_exit(function: pg_on_exit_callback, arg: Datum);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn before_shmem_exit(function: pg_on_exit_callback, arg: Datum);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cancel_before_shmem_exit(function: pg_on_exit_callback, arg: Datum);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_exit_reset();
}
extern "C" {
    pub static mut shmem_startup_hook: shmem_startup_hook_type;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateSharedMemoryAndSemaphores(port: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn standby_redo(record: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn standby_desc(buf: StringInfo, record: *mut XLogReaderState);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn standby_identify(info: uint8) -> *const ::std::os::raw::c_char;
}
#[pgx_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<xl_standby_lock>,
}
impl Default for xl_standby_locks {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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<TransactionId>,
}
#[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<SharedInvalidationMessage>,
}
impl Default for xl_invalidations {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
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_RECOVERY_CONFLICT_DATABASE: ProcSignalReason = 4;
pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_TABLESPACE: ProcSignalReason = 5;
pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_LOCK: ProcSignalReason = 6;
pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_SNAPSHOT: ProcSignalReason = 7;
pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_BUFFERPIN: ProcSignalReason = 8;
pub const ProcSignalReason_PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK: ProcSignalReason = 9;
pub const ProcSignalReason_NUM_PROCSIGNALS: ProcSignalReason = 10;
pub type ProcSignalReason = ::std::os::raw::c_uint;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcSignalShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcSignalShmemInit();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcSignalInit(pss_idx: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SendProcSignal(
        pid: pid_t,
        reason: ProcSignalReason,
        backendId: BackendId,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn procsignal_sigusr1_handler(postgres_signal_arg: ::std::os::raw::c_int);
}
extern "C" {
    pub static mut vacuum_defer_cleanup_age: ::std::os::raw::c_int;
}
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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitRecoveryTransactionEnvironment();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ShutdownRecoveryTransactionEnvironment();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResolveRecoveryConflictWithSnapshot(latestRemovedXid: TransactionId, node: RelFileNode);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResolveRecoveryConflictWithTablespace(tsid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResolveRecoveryConflictWithDatabase(dbid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResolveRecoveryConflictWithLock(locktag: LOCKTAG);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResolveRecoveryConflictWithBufferPin();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CheckRecoveryConflictDeadlock();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StandbyDeadLockHandler();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StandbyTimeoutHandler();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StandbyLockTimeoutHandler();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StandbyAcquireAccessExclusiveLock(xid: TransactionId, dbOid: Oid, relOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StandbyReleaseLockTree(
        xid: TransactionId,
        nsubxids: ::std::os::raw::c_int,
        subxids: *mut TransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StandbyReleaseAllLocks();
}
#[pgx_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type RunningTransactions = *mut RunningTransactionsData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LogAccessExclusiveLock(dbOid: Oid, relOid: Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LogAccessExclusiveLockPrepare();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LogStandbySnapshot() -> XLogRecPtr;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn LogStandbyInvalidations(
        nmsgs: ::std::os::raw::c_int,
        msgs: *mut SharedInvalidationMessage,
        relcacheInitFileInval: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayShmemSize() -> Size;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateSharedProcArray();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayAdd(proc_: *mut PGPROC);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayRemove(proc_: *mut PGPROC, latestXid: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayEndTransaction(proc_: *mut PGPROC, latestXid: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayClearTransaction(proc_: *mut PGPROC);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayInitRecovery(initializedUptoXID: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayApplyRecoveryInfo(running: RunningTransactions);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayApplyXidAssignment(
        topxid: TransactionId,
        nsubxids: ::std::os::raw::c_int,
        subxids: *mut TransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RecordKnownAssignedTransactionIds(xid: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExpireTreeKnownAssignedTransactionIds(
        xid: TransactionId,
        nsubxids: ::std::os::raw::c_int,
        subxids: *mut TransactionId,
        max_xid: TransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExpireAllKnownAssignedTransactionIds();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ExpireOldKnownAssignedTransactionIds(xid: TransactionId);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetMaxSnapshotXidCount() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetMaxSnapshotSubxidCount() -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetSnapshotData(snapshot: Snapshot) -> Snapshot;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayInstallImportedXmin(
        xmin: TransactionId,
        sourcevxid: *mut VirtualTransactionId,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayInstallRestoredXmin(xmin: TransactionId, proc_: *mut PGPROC) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetRunningTransactionData() -> RunningTransactions;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdIsInProgress(xid: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TransactionIdIsActive(xid: TransactionId) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetOldestXmin(rel: Relation, flags: ::std::os::raw::c_int) -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetOldestActiveTransactionId() -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetOldestSafeDecodingTransactionId(catalogOnly: bool) -> TransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetVirtualXIDsDelayingChkpt(
        nvxids: *mut ::std::os::raw::c_int,
    ) -> *mut VirtualTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetVirtualXIDsDelayingChkptEnd(
        nvxids: *mut ::std::os::raw::c_int,
    ) -> *mut VirtualTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HaveVirtualXIDsDelayingChkpt(
        vxids: *mut VirtualTransactionId,
        nvxids: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn HaveVirtualXIDsDelayingChkptEnd(
        vxids: *mut VirtualTransactionId,
        nvxids: ::std::os::raw::c_int,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BackendPidGetProc(pid: ::std::os::raw::c_int) -> *mut PGPROC;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BackendPidGetProcWithLock(pid: ::std::os::raw::c_int) -> *mut PGPROC;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BackendXidGetPid(xid: TransactionId) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn IsBackendPid(pid: ::std::os::raw::c_int) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetConflictingVirtualXIDs(
        limitXmin: TransactionId,
        dbOid: Oid,
    ) -> *mut VirtualTransactionId;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CancelVirtualTransaction(vxid: VirtualTransactionId, sigmode: ProcSignalReason)
        -> pid_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SignalVirtualTransaction(
        vxid: VirtualTransactionId,
        sigmode: ProcSignalReason,
        conflictPending: bool,
    ) -> pid_t;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn MinimumActiveBackends(min: ::std::os::raw::c_int) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CountDBBackends(databaseid: Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CountDBConnections(databaseid: Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CancelDBBackends(databaseid: Oid, sigmode: ProcSignalReason, conflictPending: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CountUserBackends(roleid: Oid) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn XidCacheRemoveRunningXids(
        xid: TransactionId,
        nxids: ::std::os::raw::c_int,
        xids: *const TransactionId,
        latestXid: TransactionId,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArraySetReplicationSlotXmin(
        xmin: TransactionId,
        catalog_xmin: TransactionId,
        already_locked: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcArrayGetReplicationSlotXmin(
        xmin: *mut TransactionId,
        catalog_xmin: *mut TransactionId,
    );
}
#[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
    }
}
#[pgx_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<WordEntryPos>,
}
#[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<WordEntry>,
}
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::<Self>::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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_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,
        >,
    );
}
#[pgx_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::<Self>::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::<Self>::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;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn init_tsvector_parser(
        input: *mut ::std::os::raw::c_char,
        flags: ::std::os::raw::c_int,
    ) -> TSVectorParseState;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reset_tsvector_parser(state: TSVectorParseState, input: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gettoken_tsvector(
        state: TSVectorParseState,
        token: *mut *mut ::std::os::raw::c_char,
        len: *mut ::std::os::raw::c_int,
        pos: *mut *mut WordEntryPos,
        poslen: *mut ::std::os::raw::c_int,
        endptr: *mut *mut ::std::os::raw::c_char,
    ) -> bool;
}
#[pgx_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,
    ),
>;
#[pgx_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,
    ) -> TSQuery;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pushStop(state: TSQueryParserState);
}
#[pgx_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::<Self>::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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn parsetext(
        cfgId: Oid,
        prs: *mut ParsedText,
        buf: *mut ::std::os::raw::c_char,
        buflen: int32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hlparsetext(
        cfgId: Oid,
        prs: *mut HeadlineParsedText,
        query: TSQuery,
        buf: *mut ::std::os::raw::c_char,
        buflen: int32,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generateHeadline(prs: *mut HeadlineParsedText) -> *mut text;
}
#[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::<Self>::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,
    ) -> bool,
>;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn TS_execute(
        curitem: *mut QueryItem,
        arg: *mut ::std::os::raw::c_void,
        flags: uint32,
        chkcond: TSExecuteCallback,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_requires_match(curitem: *mut QueryItem) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_tsvector(prs: *mut ParsedText) -> TSVector;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clean_NOT(ptr: *mut QueryItem, len: *mut int32) -> *mut QueryItem;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cleanup_tsquery_stopwords(in_: TSQuery) -> 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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type TSQuerySign = uint64;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QT2QTN(in_: *mut QueryItem, operand: *mut ::std::os::raw::c_char) -> *mut QTNode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QTN2QT(in_: *mut QTNode) -> TSQuery;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QTNFree(in_: *mut QTNode);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QTNSort(in_: *mut QTNode);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QTNTernary(in_: *mut QTNode);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QTNBinary(in_: *mut QTNode);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QTNodeCompare(an: *mut QTNode, bn: *mut QTNode) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QTNCopy(in_: *mut QTNode) -> *mut QTNode;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QTNClearFlags(in_: *mut QTNode, flags: uint32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn QTNEq(a: *mut QTNode, b: *mut QTNode) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeTSQuerySign(a: TSQuery) -> TSQuerySign;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn findsubquery(
        root: *mut QTNode,
        ex: *mut QTNode,
        subs: *mut QTNode,
        isfind: *mut bool,
    ) -> *mut QTNode;
}
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;
}
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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_parse_query(query_string: *const ::std::os::raw::c_char) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_analyze_and_rewrite(
        parsetree: *mut RawStmt,
        query_string: *const ::std::os::raw::c_char,
        paramTypes: *mut Oid,
        numParams: ::std::os::raw::c_int,
        queryEnv: *mut QueryEnvironment,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_analyze_and_rewrite_params(
        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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_plan_query(
        querytree: *mut Query,
        cursorOptions: ::std::os::raw::c_int,
        boundParams: ParamListInfo,
    ) -> *mut PlannedStmt;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_plan_queries(
        querytrees: *mut List,
        cursorOptions: ::std::os::raw::c_int,
        boundParams: ParamListInfo,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn check_max_stack_depth(
        newval: *mut ::std::os::raw::c_int,
        extra: *mut *mut ::std::os::raw::c_void,
        source: GucSource,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn assign_max_stack_depth(
        newval: ::std::os::raw::c_int,
        extra: *mut ::std::os::raw::c_void,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn die(postgres_signal_arg: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn quickdie(postgres_signal_arg: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn StatementCancelHandler(postgres_signal_arg: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn FloatExceptionHandler(postgres_signal_arg: ::std::os::raw::c_int);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RecoveryConflictInterrupt(reason: ProcSignalReason);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcessClientReadInterrupt(blocked: bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcessClientWriteInterrupt(blocked: bool);
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PostgresMain(
        argc: ::std::os::raw::c_int,
        argv: *mut *mut ::std::os::raw::c_char,
        dbname: *const ::std::os::raw::c_char,
        username: *const ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_stack_depth_rlimit() -> ::std::os::raw::c_long;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ResetUsage();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ShowUsage(title: *const ::std::os::raw::c_char);
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_debug_options(
        debug_flag: ::std::os::raw::c_int,
        context: GucContext,
        source: GucSource,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_plan_disabling_options(
        arg: *const ::std::os::raw::c_char,
        context: GucContext,
        source: GucSource,
    ) -> bool;
}
#[pgx_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;
pub type ProcessUtility_hook_type = ::std::option::Option<
    unsafe extern "C" fn(
        pstmt: *mut PlannedStmt,
        queryString: *const ::std::os::raw::c_char,
        context: ProcessUtilityContext,
        params: ParamListInfo,
        queryEnv: *mut QueryEnvironment,
        dest: *mut DestReceiver,
        completionTag: *mut ::std::os::raw::c_char,
    ),
>;
extern "C" {
    pub static mut ProcessUtility_hook: ProcessUtility_hook_type;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ProcessUtility(
        pstmt: *mut PlannedStmt,
        queryString: *const ::std::os::raw::c_char,
        context: ProcessUtilityContext,
        params: ParamListInfo,
        queryEnv: *mut QueryEnvironment,
        dest: *mut DestReceiver,
        completionTag: *mut ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn standard_ProcessUtility(
        pstmt: *mut PlannedStmt,
        queryString: *const ::std::os::raw::c_char,
        context: ProcessUtilityContext,
        params: ParamListInfo,
        queryEnv: *mut QueryEnvironment,
        dest: *mut DestReceiver,
        completionTag: *mut ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UtilityReturnsTuples(parsetree: *mut Node) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UtilityTupleDescriptor(parsetree: *mut Node) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UtilityContainsQuery(parsetree: *mut Node) -> *mut Query;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CreateCommandTag(parsetree: *mut Node) -> *const ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetCommandLogLevel(parsetree: *mut Node) -> LogStmtLevel;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn CommandIsReadOnly(pstmt: *mut PlannedStmt) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn heap_tableam_handler(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteaout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn charout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namein(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2vectorin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2vectorout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regprocin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regprocout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xidin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xidout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectorin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectorout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boollt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolgt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn booleq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn chareq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameeq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn texteq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xideq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cideq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn charne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn charle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn chargt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn charge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn chartoi4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i4tochar(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameregexeq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ddl_command_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ddl_command_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ddl_command_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pgsql_version(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ddl_command_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn eqsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn neqsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn scalarltsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn scalargtsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn eqjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn neqjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn scalarltjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn scalargtjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn unknownin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn unknownout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_fac(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_above_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_below_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_overlap(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_above(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_left(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_right(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_below(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_pb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_ppath(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_center(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn areasel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn areajoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2mod(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4mod(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int24mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int42mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oideq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_same(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_contain(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_left(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_overleft(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_overright(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_right(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_contained(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_contain_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_node_tree_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_node_tree_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_node_tree_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_node_tree_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4um(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4abs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4um(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2um(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8um(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8abs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_center(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_center(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_center(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dround(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dtrunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsqrt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dcbrt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dpow(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dexp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dlog1(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i2tod(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i2tof(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dtoi2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ftoi2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameeqtext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namelttext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameletext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namegetext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namegttext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namenetext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btnametextcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn texteqname(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textltname(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textlename(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textgename(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textgtname(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textnename(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bttextnamecmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameconcatoid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_am_handler_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_am_handler_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timeofday(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_nextoid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_combine(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inter_sl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inter_lb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float48ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float84ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ftod(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dtof(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i2toi4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i4toi2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_jit_available(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i4tod(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dtoi4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i4tof(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ftoi4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn width_bucket_float8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_am_handler_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_am_handler_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashmacaddr8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_aclitem(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bthandler(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashhandler(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gisthandler(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ginhandler(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spghandler(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brinhandler(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn scalarlesel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn scalargesel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn amvalidate(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_same(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_contain(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_left(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_overleft(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_overright(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_right(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_contained(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_overlap(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint2cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint4cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btfloat4cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btfloat8cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btoidcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btcharcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btnamecmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bttextcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_interpt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_ps(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_pb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_sb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn close_ps(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn close_pb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn close_sb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_ps(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_ppath(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_sb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inter_sb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_to_array_null(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_append(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_prepend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btarraycmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_cat(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_to_text_null(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn scalarlejoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_to_array(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_to_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn scalargejoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashmacaddr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashtext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn rtrim1(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btoidvectorcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn name_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn name_bpchar(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchar_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashinet(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashint4extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_num_nulls(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_num_nonnulls(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashint2extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashint8extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashfloat4extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashfloat8extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashoidextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashcharextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashnameextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashtextextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashint2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashint4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashfloat4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashfloat8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashoid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashchar(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashname(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashvarlena(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashoidvector(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8um(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i8tod(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dtoi8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_abbrev(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidr_abbrev(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_set_masklen(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectorne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_array(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidr_set_masklen(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_indexam_has_property(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_index_has_property(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_index_column_has_property(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i8tof(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ftoi8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namelt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namele(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namegt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namege(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namene(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchar(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varchar(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_indexam_progress_phasename(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectorlt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectorle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectoreq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectorge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectorgt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_network(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_netmask(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_masklen(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_broadcast(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_host(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn current_user(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_family(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_create(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidlt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteaoctetlen(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteaGetByte(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteaSetByte(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteaGetBit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteaSetBit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_lb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_sl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_cpoly(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_show(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn session_user(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_dims(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_ndims(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteaoverlay(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteaoverlay_no_len(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_trunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_import(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_export(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4inc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_import_with_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashvarlenaextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashoidvectorextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_aclitem_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashmacaddrextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashinetextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_numeric_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashmacaddr8extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_array_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_client_encoding(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn current_query(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint8cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_mul_flt4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_div_flt4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn flt4_mul_cash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textpos(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textlike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textnlike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namelike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namenlike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn char_bpchar(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn current_database(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_mul_cash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2_mul_cash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_mul_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_div_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_mul_int2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_div_int2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lower(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn upper(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn initcap(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lpad(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn rpad(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ltrim(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn rtrim(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_substr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn translate(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ltrim1(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_substr_no_len(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btrim(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btrim1(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_mul_flt8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_div_flt8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cashlarger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cashsmaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn flt8_mul_cash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_sub(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_subeq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_sup(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_supeq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_words(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8mod(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn char_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashint8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_open(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_close(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_loread(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lowrite(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_lseek(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_creat(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_tell(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn on_sl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn close_pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn close_sl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn close_lb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_unlink(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashbpcharextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_inter(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_area(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_width(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_height(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_area(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_intersect(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_diagonal(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_n_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_n_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_n_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_n_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_n_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_length(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_vert(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_horiz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_slope(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_construct(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_intersect(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_parallel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_perp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_vertical(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_horizontal(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_truncate(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textlike_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn texticregexeq_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn texticlike_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_izone(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_point_compress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclitemin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclitemout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclinsert(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclremove(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclcontains(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getdatabaseencoding(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varcharin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varcharout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchareq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharlt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchargt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclitem_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchar_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchar_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_prepared_xact(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_step_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_step_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_regclass(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashbpchar(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn format_type(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_pli(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_mii(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_add_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_sub_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_mul_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_div_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_zone(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_um(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_part(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_part(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_subset_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_justify_hours(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xid_age(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_pl_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_mi_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_subscripts(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_subscripts_nodir(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_fill(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dlog10(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_age(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_scale(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_trunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_trunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8inc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8abs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn texticregexeq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn texticregexne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameicregexeq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameicregexne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteain(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn charin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn charlt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn unique_key_recheck(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4abs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameregexne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2abs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textregexeq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textregexne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textlen(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textcat(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PG_char_to_encoding(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidr_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn parse_ident(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_column_size(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn overlaps_timetz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn datetime_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_part(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int84div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48pl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int48div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn quote_ident(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn quote_literal(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_trunc_zone(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_fill_with_lower_bounds(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn i8tooid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidtoi8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn quote_nullable(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn suppress_redundant_updates_trigger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tideq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn currtid_byreloid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn currtid_byrelname(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_justify_days(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn datetimetz_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn now(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn positionsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn positionjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn contjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn overlaps_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn overlaps_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharlen(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectortypes(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_hostmask(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textregexeq_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn makeaclitem(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lock_status(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_finite(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textoctetlen(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharoctetlen(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_part(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_constraintdef(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_timetz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_finite(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_finite(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_start(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_client_addr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_client_port(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn current_schema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn current_schemas(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textoverlay(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textoverlay_no_len(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_parallel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_perp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_vertical(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_horizontal(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_center(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn points_box(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_add(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_sub(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidr_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_contain_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pt_contained_poly(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_isclosed(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_isopen(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_npoints(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_close(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_open(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_add(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_add_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_sub_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_mul_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_div_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn construct_point(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_add(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_sub(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_npoints(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_box(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_path(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_poly(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_poly(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_same(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_contain(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_left(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_overleft(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_overright(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_right(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_contained(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_overlap(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_below(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_above(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_area(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_diameter(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_radius(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cr_circle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_circle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_poly(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_pc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_contain_pt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pt_contained_circle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_circle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_box(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_length(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn close_ls(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn close_lseg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_construct_pp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_interpt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_intersect(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bit_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bit_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_ruledef(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nextval_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn currval_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setval_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varbit_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varbit_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn biteq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitgt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitlt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn PG_encoding_to_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn drandom(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setseed(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dasin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dacos(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn datan(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn datan2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dcos(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dtan(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dcot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn degrees(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn radians(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dpi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_typeof(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ascii(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn chr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn repeat(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn similar_escape(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mul_d_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn texticlike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn texticnlike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameiclike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nameicnlike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn like_escape(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidgt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_viewdef_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_viewdef(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_userbyid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_indexdef(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_check_ins(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_check_upd(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_cascade_del(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_cascade_upd(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_restrict_del(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_restrict_upd(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_setnull_del(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_setnull_upd(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_setdefault_del(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_setdefault_upd(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_noaction_del(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RI_FKey_noaction_upd(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_triggerdef(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_serial_sequence(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bit_and(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bit_or(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitxor(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitnot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitshiftleft(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitshiftright(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitcat(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitsubstr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitlength(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitoctetlength(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitfromint4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bittoint4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_keywords(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varbit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_hash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aclexplode(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_mi_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btboolcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_hash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_hash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitposition(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitsubstr_no_len(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_abs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_sign(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_round(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_trunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_ceil(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_floor(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn length_in_encoding(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_convert_from(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_to_cidr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_expr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_convert_to(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_add(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_sub(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_mul(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_div(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_mod(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_sqrt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_exp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_ln(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_log(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_power(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_float4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_float8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_pl_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_mi_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_pl_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_mi_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_inc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn setval3_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_to_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_to_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_uminus(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_to_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_to_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_to_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4_to_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_to_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_to_number(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_int2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_convert(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn iclikesel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn icnlikesel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn iclikejoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn icnlikejoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexeqsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn likesel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn icregexeqsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexnesel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nlikesel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn icregexnesel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexeqjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn likejoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn icregexeqjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexnejoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn nlikejoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn icregexnejoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_avg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_var_samp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_stddev_samp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_avg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_var_samp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_stddev_samp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2_sum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_sum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_sum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_avg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_ascii_default(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_ascii_enc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_ascii_encname(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int28ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int82ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2and(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2or(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2xor(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2not(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2shl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2shr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4and(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4or(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4xor(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4not(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4shl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4shr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8and(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8or(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8xor(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8not(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8shl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8shr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8up(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2up(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4up(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4up(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8up(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_uplus(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_table_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_table_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_table_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_table_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_table_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_table_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_numscans(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_tuples_returned(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_tuples_fetched(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_tuples_inserted(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_tuples_updated(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_tuples_deleted(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_blocks_fetched(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_blocks_hit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_idset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_pid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_dbid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_userid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_activity(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_numbackends(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_xact_commit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_xact_rollback(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_blocks_fetched(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_blocks_hit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_encode(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_decode(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteaeq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bytealt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteale(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteagt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteage(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteane(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteacmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_scale(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2_avg_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_avg_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_avg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidlarger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidsmaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_scale(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_scale(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_scale(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_tuples_hot_updated(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_div_trunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bytealike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteanlike(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn like_escape_bytea(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteacat(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bytea_substr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bytea_substr_no_len(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteapos(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteatrim(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_trunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_part(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_activity(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_backend_pid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_pl_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_mi_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_conf_load_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_zone(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_izone(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_hash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_timetz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_to_char(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn aggregate_dummy(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_age(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_zone(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_izone(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_pl_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_mi_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textregexsubstr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitfromint8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bittoint8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn show_config_by_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn set_config_by_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_table_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_type_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_function_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_operator_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_opclass_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn show_all_settings(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn replace_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn split_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_hex32(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_hex64(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_lower(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_upper(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_conversion_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_activity_start(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_terminate_backend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_functiondef(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_pattern_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_pattern_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_function_arguments(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_pattern_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_pattern_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_function_result(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bttext_pattern_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_database_size_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn width_bucket_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_cancel_backend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_start_backup(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stop_backup(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchar_pattern_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchar_pattern_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_length(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchar_pattern_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchar_pattern_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_point_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btbpchar_pattern_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_sequence_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_sequence_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_sequence_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_sequence_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_sequence_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_sequence_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint48cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint84cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint24cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint42cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint28cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint82cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btfloat48cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btfloat84cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_client_addr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_client_port(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_server_addr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_server_port(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regprocedurein(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regprocedureout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regoperin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regoperout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regoperatorin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regoperatorout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regclassin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regclassout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regtypein(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regtypeout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_clear_snapshot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_function_identity_arguments(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashtid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashtidextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fmgr_internal_validator(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fmgr_c_validator(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fmgr_sql_validator(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_database_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_database_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_database_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_database_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_database_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_database_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_function_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_function_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_function_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_function_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_function_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_function_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_language_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_language_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_language_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_language_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_language_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_language_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_schema_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_schema_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_schema_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_schema_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_schema_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_schema_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_reset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textregexreplace_noopt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textregexreplace(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_total_relation_size(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_size_pretty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_options_to_table(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cstring_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cstring_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn any_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn any_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyarray_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyarray_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn void_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn void_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn trigger_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn trigger_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn language_handler_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn language_handler_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn internal_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn internal_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn opaque_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn opaque_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dceil(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dfloor(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsign(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn md5_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyelement_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyelement_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn postgresql_fdw_validator(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_encoding_max_length_sql(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn md5_bytea(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tablespace_size_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tablespace_size_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_database_size_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_unnest(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_relation_size(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_agg_transfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_lt_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_le_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_eq_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_gt_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_ge_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_ne_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_cmp_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_lt_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_le_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_eq_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_gt_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_ge_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_ne_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_cmp_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_lt_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_le_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_eq_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_gt_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_ge_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_ne_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_cmp_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_lt_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_le_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_eq_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_gt_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_ge_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_ne_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_cmp_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_tablespace_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_tablespace_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_tablespace_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_tablespace_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_tablespace_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_tablespace_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shell_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn shell_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2vectorrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2vectorsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bytearecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn byteasend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn textsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn unknownrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn unknownsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectorrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidvectorsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namerecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namesend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpcharsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varcharrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varcharsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn charrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn charsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xidrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xidsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regprocrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regprocsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regprocedurerecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regproceduresend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regoperrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regopersend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regoperatorrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regoperatorsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regclassrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regclasssend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regtyperecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regtypesend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bit_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bit_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varbit_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varbit_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsinh(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dcosh(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dtanh(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dasinh(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dacosh(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn datanh(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lseg_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn path_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn line_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidr_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cidr_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cstring_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cstring_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyarray_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyarray_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_ruledef_ext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_viewdef_name_ext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_viewdef_ext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_indexdef_ext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_constraintdef_ext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_expr_ext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_prepared_statement(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_cursor(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_var_pop(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_stddev_pop(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_var_pop(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn booland_statefunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolor_statefunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_lt_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_le_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_eq_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_gt_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_ge_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_ne_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_cmp_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_lt_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_le_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_eq_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_gt_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_ge_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_ne_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptz_cmp_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tablespace_databases(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_bool(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bool_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lastval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_postmaster_start_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_blocking_pids(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_below(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_overbelow(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_overabove(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn box_above(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_below(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_overbelow(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_overabove(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn poly_above(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_box_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_float8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_box_penalty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_box_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_box_union(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_box_same(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_poly_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_poly_compress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_overbelow(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn circle_overabove(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_circle_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_circle_compress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_stddev_pop(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn domain_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn domain_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_timezone_abbrevs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xmlexists(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_reload_conf(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_rotate_logfile_v2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_file_1arg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_read_file_off_len(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ls_dir_1arg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_sleep(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inetnot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inetand(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inetor(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inetpl(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inetmi_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inetmi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn statement_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clock_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_cmp_prefix(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_has_role_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_has_role_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_has_role_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_has_role_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_has_role_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_has_role_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_justify_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_triggerdef_ext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dasind(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dacosd(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn datand(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn datan2d(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsind(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dcosd(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dtand(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dcotd(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stop_backup_v2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_avg_serialize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_avg_deserialize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ginarrayextract(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ginarrayconsistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_avg_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arrayoverlap(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arraycontains(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arraycontained(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_tuples_returned(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_tuples_fetched(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_tuples_inserted(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_tuples_updated(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_tuples_deleted(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexp_matches_no_flags(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexp_matches(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexp_split_to_table_no_flags(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexp_split_to_table(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexp_split_to_array_no_flags(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexp_split_to_array(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_bgwriter_timed_checkpoints(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_bgwriter_requested_checkpoints(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_bgwriter_buf_written_checkpoints(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_bgwriter_buf_written_clean(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_bgwriter_maxwritten_clean(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ginqueryarrayextract(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_buf_written_backend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anynonarray_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anynonarray_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_last_vacuum_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_last_autovacuum_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_last_analyze_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_last_autoanalyze_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_avg_combine(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_avg_serialize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_avg_deserialize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_wait_event_type(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidgt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidlt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidle(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bttidcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidlarger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tidsmaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8inc_any(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8inc_float8_float8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_sxx(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_syy(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_sxy(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_avgx(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_avgy(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_r2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_slope(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_intercept(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_covar_pop(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_covar_samp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_corr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_blk_read_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_blk_write_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_switch_wal(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_current_wal_lsn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_walfile_name_offset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_walfile_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_current_wal_insert_lsn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_wait_event(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_my_temp_schema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_is_other_temp_schema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_timezone_names(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_backend_xact_start(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_avg_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_buf_alloc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_live_tuples(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_dead_tuples(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_lock_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_lock_shared_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_try_advisory_lock_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_try_advisory_lock_shared_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_unlock_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_unlock_shared_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_lock_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_lock_shared_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_try_advisory_lock_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_try_advisory_lock_shared_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_unlock_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_unlock_shared_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_unlock_all(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xml_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xml_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xmlcomment(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn texttoxml(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xmlvalidate(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xml_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xml_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xmlconcat2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varbittypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn intervaltypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn intervaltypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptztypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamptztypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetztypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetztypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchartypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchartypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varchartypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varchartypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numerictypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numerictypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bittypmodin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bittypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varbittypmodout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xmltotext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_to_xml(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn query_to_xml(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cursor_to_xml(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn query_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cursor_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn table_to_xml_and_xmlschema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn query_to_xml_and_xmlschema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xpath(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn schema_to_xml(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn schema_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn schema_to_xml_and_xmlschema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn database_to_xml(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn database_to_xmlschema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn database_to_xml_and_xmlschema(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_snapshot_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_snapshot_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_snapshot_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_snapshot_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_current(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_current_snapshot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_snapshot_xmin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_snapshot_xmax(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_snapshot_xip(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_visible_in_snapshot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_hash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn booltext(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_function_calls(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_function_total_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_function_self_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btrecordcmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_table_size(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_indexes_size(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_relation_filenode(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_foreign_data_wrapper_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_foreign_data_wrapper_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_foreign_data_wrapper_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_foreign_data_wrapper_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_foreign_data_wrapper_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_foreign_data_wrapper_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_server_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_server_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_server_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_server_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_server_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_server_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_name_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_name_name_attnum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_name_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_name_id_attnum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_id_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_id_name_attnum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_id_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_id_id_attnum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_name_attnum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_column_privilege_id_attnum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_any_column_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_any_column_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_any_column_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_any_column_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_any_column_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_any_column_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitoverlay(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitoverlay_no_len(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitgetbit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bitsetbit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_relation_filepath(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_listening_channels(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_notify(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_numscans(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_tuples_returned(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_tuples_fetched(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_tuples_inserted(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_tuples_updated(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_tuples_deleted(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_tuples_hot_updated(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_blocks_fetched(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_blocks_hit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_function_calls(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_function_total_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_xact_function_self_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xpath_exists(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xml_is_well_formed(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xml_is_well_formed_document(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xml_is_well_formed_content(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_vacuum_count(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_autovacuum_count(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_analyze_count(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_autoanalyze_count(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_concat(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_concat_ws(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_left(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_right(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_reverse(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_buf_fsync_backend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_point_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_conflict_tablespace(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_conflict_lock(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_conflict_snapshot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_conflict_bufferpin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_conflict_startup_deadlock(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_conflict_all(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_wal_replay_pause(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_wal_replay_resume(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_is_wal_replay_paused(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_stat_reset_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_bgwriter_stat_reset_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ginarrayextract_2args(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_extract_tsvector_2args(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_sequence_parameters(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_available_extensions(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_available_extension_versions(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_extension_update_paths(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_extension_config_dump(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_extract_tsquery_5args(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_tsquery_consistent_6args(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_xact_lock_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_xact_lock_shared_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_try_advisory_xact_lock_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_try_advisory_xact_lock_shared_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_xact_lock_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_advisory_xact_lock_shared_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_try_advisory_xact_lock_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_try_advisory_xact_lock_shared_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varchar_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_create_restore_point(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_wal_senders(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_row_number(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_rank(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_dense_rank(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_percent_rank(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_cume_dist(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_ntile(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_lag(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_lag_with_offset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_lag_with_offset_and_default(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_lead(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_lead_with_offset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_lead_with_offset_and_default(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_first_value(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_last_value(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn window_nth_value(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fdw_handler_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn fdw_handler_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn void_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn void_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint2sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint4sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btint8sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btfloat4sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btfloat8sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btoidsortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btnamesortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date_sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_type_privilege_name_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_type_privilege_name_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_type_privilege_id_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_type_privilege_id_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_type_privilege_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn has_type_privilege_id(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_not(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_and(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_or(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_temp_files(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_temp_bytes(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_deadlocks(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_to_json(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_to_json_pretty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn row_to_json(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn row_to_json_pretty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn varbit_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_viewdef_wrap(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_checkpoint_write_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_checkpoint_sync_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_collation_for(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_trigger_depth(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_wal_lsn_diff(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_size_pretty_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_remove(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_replace(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn rangesel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_lseek64(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_tell64(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_truncate64(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_agg_transfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_json(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_mod_since_analyze(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_sum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_cardinality(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_object_agg_transfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_image_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_image_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_image_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_image_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_image_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn record_image_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btrecordimagecmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_archiver(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_object_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_build_array(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_build_array_noargs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_build_object(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_build_object_noargs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_object(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_object_two_arg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_to_record(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_to_recordset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_array_length(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_each(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_populate_record(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_typeof(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_object_field_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_array_element(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_array_element_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_extract_path(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn width_bucket_array(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_array_elements(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_mi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_hash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bttextsortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_step_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_strip_nulls(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_strip_nulls(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_object(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_object_two_arg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_agg_transfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_object_agg_transfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_object_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_build_array(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_build_array_noargs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_build_object(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_build_object_noargs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_ppoly(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_position(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_position_start(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_positions(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_circle_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_scale(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_point_fetch(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gist_poly_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_cpoint(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dist_polyp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_read_file_v2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn show_config_by_name_missing_ok(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_read_binary_file(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_notification_queue_usage(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ls_dir(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn row_security_active(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn row_security_active_name(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_concat(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_delete(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_delete_idx(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_delete_path(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_set(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_pretty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_file(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn xidneq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsm_handler_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsm_handler_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsm_bernoulli_handler(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsm_system_handler(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_wal_receiver(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_progress_info(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_filter(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_setweight_by_filter(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_delete_str(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_unnest(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_delete_arr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_avg_combine(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_combine(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_to_array(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_to_tsvector(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bpchar_sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn show_all_file_settings(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_current_wal_flush_lsn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bytea_sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bttext_pattern_sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn btbpchar_pattern_sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_size_bytes(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_serialize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_deserialize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_avg_combine(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_poly_combine(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_poly_serialize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_poly_deserialize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_combine(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8_regr_combine(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_delete_array(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_mul_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_div_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_current_if_assigned(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_partkeydef(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ls_logdir(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ls_waldir(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ndistinct_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ndistinct_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ndistinct_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ndistinct_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr_sortsupport(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn txid_status(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_safe_snapshot_blocking_pids(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_isolation_test_session_is_blocked(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_identify_object_as_address(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_minmax_opcinfo(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_minmax_add_value(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_minmax_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_minmax_union(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_avg_accum_inv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_poly_sum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_poly_avg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_poly_var_pop(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_poly_var_samp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_poly_stddev_pop(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_poly_stddev_samp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexp_match_no_flags(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regexp_match(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_mul_cash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_config(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_hba_file_rules(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_statistics_obj_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_dependencies_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_dependencies_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_dependencies_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_dependencies_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_partition_constraintdef(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_hash_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timetz_hash_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_hash_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn uuid_hash_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lsn_hash_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashenumextended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_statisticsobjdef(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_hash_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_range_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_hash_extended(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sha224_bytea(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sha256_bytea(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sha384_bytea(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sha512_bytea(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_partition_tree(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_partition_root(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_partition_ancestors(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_checksum_failures(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stats_ext_mcvlist_items(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_db_checksum_last_failure(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_promote(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn prefixsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn prefixjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_control_system(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_control_checkpoint(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_control_recovery(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_control_init(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_import_system_collations(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_collation_actual_version(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_int2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_float4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_filenode_relation(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_from_bytea(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_get(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_get_fragment(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn be_lo_put(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_timestamptz(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_timestamptz_at_timezone(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_array_elements_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_range_quad_config(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_range_quad_choose(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_range_quad_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_range_quad_inner_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_range_quad_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_populate_recordset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_regoperator(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_object_field(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_regprocedure(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_compare_jsonb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_extract_jsonb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_extract_jsonb_query(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_consistent_jsonb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_extract_jsonb_path(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_extract_jsonb_query_path(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_consistent_jsonb_path(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_triconsistent_jsonb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_triconsistent_jsonb_path(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_to_record(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_to_recordset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_regoper(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_regtype(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_regproc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_regclass(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bool_accum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bool_accum_inv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bool_alltrue(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bool_anytrue(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyenum_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyenum_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hashenum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_first(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_last(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_range_bounds(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_range_all(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn enum_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn string_agg_transfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn string_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_describe_object(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_format(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_format_nv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bytea_string_agg_transfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bytea_string_agg_finalfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8dec(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8dec_any(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_accum_inv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_accum_inv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_overlap(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_gist_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_gist_union(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_gist_compress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_bool(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_gist_penalty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_gist_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_gist_same(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn networksel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn networkjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_larger(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_smaller(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_event_trigger_dropped_objects(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2_accum_inv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_accum_inv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_accum_inv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2_avg_accum_inv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_avg_accum_inv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int2int4_sum(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_gist_fetch(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_logical_emit_message_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_logical_emit_message_bytea(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_insert(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_xact_commit_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_next_pg_type_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_last_committed_xact(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_next_array_pg_type_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_next_toast_pg_type_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_next_heap_pg_class_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_next_index_pg_class_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_next_toast_pg_class_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_next_pg_enum_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_next_pg_authid_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_create_empty_extension(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn event_trigger_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn event_trigger_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvectorin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvectorout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsqueryin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsqueryout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_strip(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_setweight(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_concat(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_match_vq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_match_qv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvectorsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvectorrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquerysend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsqueryrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvectorin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvectorout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvector_compress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvector_decompress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvector_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvector_union(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvector_same(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvector_penalty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvector_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_extract_tsvector(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_extract_tsquery(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_tsquery_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_and(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_or(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_not(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_numnode(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquerytree(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_rewrite(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_rewrite_query(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsmatchsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsmatchjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_typanalyze(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_stat1(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_stat2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsq_mcontains(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsq_mcontained(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsquery_compress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_starts_with(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsquery_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsquery_union(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsquery_same(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsquery_penalty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsquery_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_rank_wttf(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_rank_wtt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_rank_ttf(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_rank_tt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_rankcd_wttf(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_rankcd_wtt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_rankcd_ttf(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_rankcd_tt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_length(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_token_type_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_token_type_byname(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_parse_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_parse_byname(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn prsd_start(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn prsd_nexttoken(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn prsd_end(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn prsd_headline(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn prsd_lextype(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_lexize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_cmp_tslexeme(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsimple_init(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsimple_lexize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsynonym_init(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dsynonym_lexize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dispell_init(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn dispell_lexize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regconfigin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regconfigout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regconfigrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regconfigsend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn thesaurus_init(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn thesaurus_lexize(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_byid_opt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_tsquery_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn plainto_tsquery_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_tsvector(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_tsquery(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn plainto_tsquery(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_update_trigger_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsvector_update_trigger_bycolumn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_opt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ts_parser_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ts_dict_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ts_config_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_current_ts_config(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_match_tt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_match_tq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ts_template_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regdictionaryin(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regdictionaryout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regdictionaryrecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regdictionarysend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_reset_shared(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_reset_single_table_counters(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_reset_single_function_counters(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_tablespace_location(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_create_physical_replication_slot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_drop_replication_slot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_replication_slots(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_logical_slot_get_changes(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_logical_slot_get_binary_changes(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_logical_slot_peek_changes(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_logical_slot_peek_binary_changes(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_create_logical_replication_slot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_jsonb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_snapshot_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_clean_pending_list(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsvector_consistent_oldsig(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_extract_tsquery_oldsig(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_tsquery_consistent_oldsig(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gtsquery_consistent_oldsig(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_spg_config(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_spg_choose(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_spg_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_spg_inner_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_spg_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_current_logfile(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_current_logfile_1arg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_function_arg_default(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_export_snapshot(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_is_in_recovery(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4_cash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8_cash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_is_in_backup(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_backup_start_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_collation_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_typanalyze(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arraycontsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn arraycontjoinsel(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_multixact_members(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_last_wal_receive_lsn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_last_wal_replay_lsn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_div_cash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cash_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_cash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_read_file_all(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_read_binary_file_off_len(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_read_binary_file_all(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_opfamily_is_visible(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_last_xact_replay_timestamp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyrange_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anyrange_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_identify_object(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_constructor2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_constructor3(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_relation_is_updatable(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_column_is_updatable(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_date(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_time(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_lower(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_upper(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_empty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_lower_inc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_upper_inc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_lower_inf(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_upper_inf(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_overlaps(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_contains_elem(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_contains(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn elem_contained_by_range(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_contained_by(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_adjacent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_before(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_after(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_overleft(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_overright(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_union(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_intersect(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_minus(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_gist_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_gist_union(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_slot_advance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_gist_penalty(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_gist_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_gist_same(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hash_range(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4range_canonical(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn daterange_canonical(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_typanalyze(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn timestamp_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn interval_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ginarraytriconsistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn gin_tsquery_triconsistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int4range_subdiff(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8range_subdiff(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numrange_subdiff(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn daterange_subdiff(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn int8range_canonical(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsrange_subdiff(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tstzrange_subdiff(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_object_keys(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_each_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mxid_age(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_extract_path_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn acldefault_sql(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_object_field(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_object_field_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_array_element(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_array_element_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_extract_path(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_summarize_new_values(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_extract_path_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_object_address(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_array_elements(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_array_length(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_object_keys(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_each(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_each_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_populate_record(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_populate_recordset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_typeof(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_array_elements_text(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ordered_set_transition(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ordered_set_transition_multi(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn percentile_disc_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn percentile_cont_float8_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn percentile_cont_interval_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn percentile_disc_multi_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn percentile_cont_float8_multi_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn percentile_cont_interval_multi_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mode_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hypothetical_rank_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hypothetical_percent_rank_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hypothetical_cume_dist_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hypothetical_dense_rank_final(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_int4_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn generate_series_int8_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_unnest_support(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_summarize_range(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonpath_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonpath_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonpath_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonpath_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_path_exists(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_path_query(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_path_query_array(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_path_query_first(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_path_match(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_path_exists_opr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_path_match_opr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_desummarize_range(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_quad_config(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_quad_choose(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_quad_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_quad_inner_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_quad_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_kd_config(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_kd_choose(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_kd_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_kd_inner_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_text_config(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_text_choose(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_text_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_text_inner_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_text_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_sequence_last_value(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_hash(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_contains(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_exists(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_exists_any(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_exists_all(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_contained(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_agg_array_transfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn array_agg_array_finalfn(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_merge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_merge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boxes_bound_box(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn inet_same_family(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_record_init_privs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regnamespacein(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regnamespaceout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_regnamespace(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regnamespacerecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regnamespacesend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn point_box(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regroleout(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn to_regrole(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regrolerecv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regrolesend(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn regrolein(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_rotate_logfile(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_read_file(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn binary_upgrade_set_missing_value(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_inclusion_opcinfo(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_inclusion_add_value(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_inclusion_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn brin_inclusion_union(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_trunc(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_eq(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_lt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_le(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_gt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_ge(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_ne(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_cmp(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_not(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_and(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_or(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddrtomacaddr8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8tomacaddr(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn macaddr8_set7bit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_int8_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_int4_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_int4_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_int4_int2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_int2_int8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_int2_int4(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_int2_int2(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_date_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_timestamp_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_timestamptz_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_interval_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_time_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_timetz_interval(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_float8_float8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_float4_float8(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn in_range_numeric_numeric(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_jsonb_byid_opt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_jsonb_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_jsonb_opt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_jsonb(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_json_byid_opt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_json_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_json_opt(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ts_headline_json(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_string_to_tsvector(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_string_to_tsvector(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_string_to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_string_to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_to_tsvector(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn jsonb_to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_to_tsvector(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn json_to_tsvector_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_copy_physical_replication_slot_a(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_copy_physical_replication_slot_b(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_copy_logical_replication_slot_a(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_copy_logical_replication_slot_b(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_copy_logical_replication_slot_c(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_event_trigger_table_rewrite_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_event_trigger_table_rewrite_reason(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_event_trigger_ddl_commands(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn phraseto_tsquery(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_phrase(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn tsquery_phrase_distance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn phraseto_tsquery_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn websearch_to_tsquery_byid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn websearch_to_tsquery(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_bbox_quad_config(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_poly_quad_compress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_box_quad_config(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_box_quad_choose(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_box_quad_picksplit(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_box_quad_inner_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn spg_box_quad_leaf_consistent(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mcv_list_in(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mcv_list_out(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mcv_list_recv(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_mcv_list_send(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn satisfies_hash_partition(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ls_tmpdir_noargs(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ls_tmpdir_1arg(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ls_archive_statusdir(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_create(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_drop(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_oid(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_session_setup(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_session_reset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_session_is_setup(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_session_progress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_xact_setup(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_xact_reset(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_advance(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_replication_origin_progress(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_show_replication_origin_status(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_stat_get_subscription(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_get_replica_identity_index(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_relation_is_publishable(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn parse_bool(value: *const ::std::os::raw::c_char, result: *mut bool) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn parse_bool_with_len(
        value: *const ::std::os::raw::c_char,
        len: usize,
        result: *mut bool,
    ) -> bool;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errdatatype(datatypeOid: Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn errdomainconstraint(
        datatypeOid: Oid,
        conname: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hex_encode(
        src: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_uint,
        dst: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_uint;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn hex_decode(
        src: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_uint,
        dst: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_uint;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn buildint2vector(int2s: *const int16, n: ::std::os::raw::c_int) -> *mut int2vector;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namecpy(n1: Name, n2: *const NameData) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namestrcpy(name: Name, str_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn namestrcmp(name: Name, str_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_atoi(
        s: *const ::std::os::raw::c_char,
        size: ::std::os::raw::c_int,
        c: ::std::os::raw::c_int,
    ) -> int32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_strtoint16(s: *const ::std::os::raw::c_char) -> int16;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_strtoint32(s: *const ::std::os::raw::c_char) -> int32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_itoa(i: int16, a: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ltoa(l: int32, a: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_lltoa(ll: int64, a: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ltostr_zeropad(
        str_: *mut ::std::os::raw::c_char,
        value: int32,
        minwidth: int32,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_ltostr(
        str_: *mut ::std::os::raw::c_char,
        value: int32,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_strtouint64(
        str_: *const ::std::os::raw::c_char,
        endptr: *mut *mut ::std::os::raw::c_char,
        base: ::std::os::raw::c_int,
    ) -> uint64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn buildoidvector(oids: *const Oid, n: ::std::os::raw::c_int) -> *mut oidvector;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn oidparse(node: *mut Node) -> Oid;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn quote_identifier(ident: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn cstring_to_text(s: *const ::std::os::raw::c_char) -> *mut text;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_to_cstring(t: *const text) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn text_to_cstring_buffer(
        src: *const text,
        dst: *mut ::std::os::raw::c_char,
        dst_len: usize,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn 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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn convert_network_to_scalar(value: Datum, typid: Oid, failure: *mut bool) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_scan_first(in_: Datum) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn network_scan_last(in_: Datum) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn clean_ipv6_addr(addr_family: ::std::os::raw::c_int, addr: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_float8_no_overflow(fcinfo: FunctionCallInfo) -> Datum;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn format_type_extended(
        type_oid: Oid,
        typemod: int32,
        flags: bits16,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn format_type_be(type_oid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn format_type_be_qualified(type_oid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn format_type_with_typemod(type_oid: Oid, typemod: int32) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn type_maximum_size(type_oid: Oid, typemod: int32) -> int32;
}
#[pgx_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,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn anytime_typmod_check(istz: bool, typmod: int32) -> int32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn date2timestamp_no_overflow(dateVal: DateADT) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn EncodeSpecialDate(dt: DateADT, str_: *mut ::std::os::raw::c_char);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetSQLCurrentDate() -> DateADT;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetSQLCurrentTime(typmod: int32) -> *mut TimeTzADT;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn GetSQLLocalTime(typmod: int32) -> TimeADT;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn time2tm(time: TimeADT, tm: *mut pg_tm, fsec: *mut fsec_t) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
extern "C" {
    pub static mut extra_float_digits: ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float_overflow_error();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float_underflow_error();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float_zero_divide_error();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn is_infinite(val: float8) -> ::std::os::raw::c_int;
}
#[pgx_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,
    ) -> float8;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8in_internal_opt_error(
        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,
        have_error: *mut bool,
    ) -> float8;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float8out_internal(num: float8) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn float4_cmp_internal(a: float4, b: float4) -> ::std::os::raw::c_int;
}
#[pgx_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<Point>,
}
#[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<Point>,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CIRCLE {
    pub center: Point,
    pub radius: float8,
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pg_hypot(x: float8, y: float8) -> float8;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn escape_json(buf: StringInfo, str_: *const ::std::os::raw::c_char);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NumericData {
    _unused: [u8; 0],
}
pub type Numeric = *mut NumericData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_is_nan(num: Numeric) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_maximum_size(typmod: int32) -> int32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_out_sci(
        num: Numeric,
        scale: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_normalize(num: Numeric) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_add_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_sub_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_mul_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_div_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_mod_opt_error(num1: Numeric, num2: Numeric, have_error: *mut bool) -> Numeric;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn numeric_int4_opt_error(num: Numeric, 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<JEntry>,
}
#[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 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,
}
#[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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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::<Self>::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,
}
impl Default for JsonbParseState {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getJsonbOffset(jc: *const JsonbContainer, index: ::std::os::raw::c_int) -> uint32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getJsonbLength(jc: *const JsonbContainer, index: ::std::os::raw::c_int) -> uint32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn compareJsonbContainers(
        a: *mut JsonbContainer,
        b: *mut JsonbContainer,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn findJsonbValueFromContainer(
        sheader: *mut JsonbContainer,
        flags: uint32,
        key: *mut JsonbValue,
    ) -> *mut JsonbValue;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getIthJsonbValueFromContainer(
        sheader: *mut JsonbContainer,
        i: uint32,
    ) -> *mut JsonbValue;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn pushJsonbValue(
        pstate: *mut *mut JsonbParseState,
        seq: JsonbIteratorToken,
        jbVal: *mut JsonbValue,
    ) -> *mut JsonbValue;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn JsonbIteratorInit(container: *mut JsonbContainer) -> *mut JsonbIterator;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn JsonbIteratorNext(
        it: *mut *mut JsonbIterator,
        val: *mut JsonbValue,
        skipNested: bool,
    ) -> JsonbIteratorToken;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn JsonbValueToJsonb(val: *mut JsonbValue) -> *mut Jsonb;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn JsonbDeepContains(
        val: *mut *mut JsonbIterator,
        mContained: *mut *mut JsonbIterator,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn JsonbHashScalarValue(scalarVal: *const JsonbValue, hash: *mut uint32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn JsonbHashScalarValueExtended(
        scalarVal: *const JsonbValue,
        hash: *mut uint64,
        seed: uint64,
    );
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn JsonbExtractScalar(jbc: *mut JsonbContainer, res: *mut JsonbValue) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn JsonbTypeName(jb: *mut JsonbValue) -> *const ::std::os::raw::c_char;
}
#[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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type get_attavgwidth_hook_type =
    ::std::option::Option<unsafe extern "C" fn(relid: Oid, attnum: AttrNumber) -> int32>;
extern "C" {
    pub static mut get_attavgwidth_hook: get_attavgwidth_hook_type;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn op_in_opfamily(opno: Oid, opfamily: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_op_opfamily_strategy(opno: Oid, opfamily: Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_op_opfamily_sortfamily(opno: Oid, opfamily: Oid) -> Oid;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_opfamily_member(
        opfamily: Oid,
        lefttype: Oid,
        righttype: Oid,
        strategy: int16,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_ordering_op_properties(
        opno: Oid,
        opfamily: *mut Oid,
        opcintype: *mut Oid,
        strategy: *mut int16,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_equality_op_for_ordering_op(opno: Oid, reverse: *mut bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_ordering_op_for_equality_op(opno: Oid, use_lhs_type: bool) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_mergejoin_opfamilies(opno: Oid) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_compatible_hash_operators(opno: Oid, lhs_opno: *mut Oid, rhs_opno: *mut Oid)
        -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_op_hash_functions(
        opno: Oid,
        lhs_procno: *mut RegProcedure,
        rhs_procno: *mut RegProcedure,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_op_btree_interpretation(opno: Oid) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn equality_ops_are_compatible(opno1: Oid, opno2: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_opfamily_proc(opfamily: Oid, lefttype: Oid, righttype: Oid, procnum: int16) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_attname(
        relid: Oid,
        attnum: AttrNumber,
        missing_ok: bool,
    ) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_attnum(relid: Oid, attname: *const ::std::os::raw::c_char) -> AttrNumber;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_attstattarget(relid: Oid, attnum: AttrNumber) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_attgenerated(relid: Oid, attnum: AttrNumber) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_atttype(relid: Oid, attnum: AttrNumber) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_atttypetypmodcoll(
        relid: Oid,
        attnum: AttrNumber,
        typid: *mut Oid,
        typmod: *mut int32,
        collid: *mut Oid,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_collation_name(colloid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_collation_isdeterministic(colloid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_constraint_name(conoid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_language_name(langoid: Oid, missing_ok: bool) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_opclass_family(opclass: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_opclass_input_type(opclass: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_opclass_opfamily_and_input_type(
        opclass: Oid,
        opfamily: *mut Oid,
        opcintype: *mut Oid,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_opcode(opno: Oid) -> RegProcedure;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_opname(opno: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_op_rettype(opno: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn op_input_types(opno: Oid, lefttype: *mut Oid, righttype: *mut Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn op_mergejoinable(opno: Oid, inputtype: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn op_hashjoinable(opno: Oid, inputtype: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn op_strict(opno: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn op_volatile(opno: Oid) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_commutator(opno: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_negator(opno: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_oprrest(opno: Oid) -> RegProcedure;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_oprjoin(opno: Oid) -> RegProcedure;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_name(funcid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_namespace(funcid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_rettype(funcid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_nargs(funcid: Oid) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_signature(
        funcid: Oid,
        argtypes: *mut *mut Oid,
        nargs: *mut ::std::os::raw::c_int,
    ) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_variadictype(funcid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_retset(funcid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn func_strict(funcid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn func_volatile(funcid: Oid) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn func_parallel(funcid: Oid) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_prokind(funcid: Oid) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_leakproof(funcid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_func_support(funcid: Oid) -> RegProcedure;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_relname_relid(relname: *const ::std::os::raw::c_char, relnamespace: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rel_name(relid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rel_namespace(relid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rel_type_id(relid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rel_relkind(relid: Oid) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rel_relispartition(relid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rel_tablespace(relid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_rel_persistence(relid: Oid) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_transform_fromsql(typid: Oid, langid: Oid, trftypes: *mut List) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_transform_tosql(typid: Oid, langid: Oid, trftypes: *mut List) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typisdefined(typid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typlen(typid: Oid) -> int16;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typbyval(typid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typlenbyval(typid: Oid, typlen: *mut int16, typbyval: *mut bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typlenbyvalalign(
        typid: Oid,
        typlen: *mut int16,
        typbyval: *mut bool,
        typalign: *mut ::std::os::raw::c_char,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getTypeIOParam(typeTuple: HeapTuple) -> Oid;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typstorage(typid: Oid) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typdefault(typid: Oid) -> *mut Node;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typtype(typid: Oid) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn type_is_rowtype(typid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn type_is_enum(typid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn type_is_range(typid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_type_category_preferred(
        typid: Oid,
        typcategory: *mut ::std::os::raw::c_char,
        typispreferred: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typ_typrelid(typid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_element_type(typid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_array_type(typid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_promoted_array_type(typid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_base_element_type(typid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getTypeInputInfo(type_: Oid, typInput: *mut Oid, typIOParam: *mut Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getTypeOutputInfo(type_: Oid, typOutput: *mut Oid, typIsVarlena: *mut bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getTypeBinaryInputInfo(type_: Oid, typReceive: *mut Oid, typIOParam: *mut Oid);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getTypeBinaryOutputInfo(type_: Oid, typSend: *mut Oid, typIsVarlena: *mut bool);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typmodin(typid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typcollation(typid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn type_is_collatable(typid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getBaseType(typid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn getBaseTypeAndTypmod(typid: Oid, typmod: *mut int32) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_typavgwidth(typid: Oid, typmod: int32) -> int32;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_attavgwidth(relid: Oid, attnum: AttrNumber) -> int32;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn free_attstatsslot(sslot: *mut AttStatsSlot);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_namespace_name(nspid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_namespace_name_or_temp(nspid: Oid) -> *mut ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_range_subtype(rangeOid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_range_collation(rangeOid: Oid) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_index_column_opclass(index_oid: Oid, attno: ::std::os::raw::c_int) -> Oid;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_index_isreplident(index_oid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_index_isvalid(index_oid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_index_isclustered(index_oid: Oid) -> bool;
}
pub type SamplerRandomState = [::std::os::raw::c_ushort; 3usize];
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sampler_random_init_state(
        seed: ::std::os::raw::c_long,
        randstate: *mut ::std::os::raw::c_ushort,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn sampler_random_fract(randstate: *mut ::std::os::raw::c_ushort) -> 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: SamplerRandomState,
}
pub type BlockSampler = *mut BlockSamplerData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BlockSampler_Init(
        bs: BlockSampler,
        nblocks: BlockNumber,
        samplesize: ::std::os::raw::c_int,
        randseed: ::std::os::raw::c_long,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn BlockSampler_HasMore(bs: BlockSampler) -> bool;
}
#[pgx_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: SamplerRandomState,
}
pub type ReservoirState = *mut ReservoirStateData;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn reservoir_init_selection_state(rs: ReservoirState, n: ::std::os::raw::c_int);
}
#[pgx_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, Copy, Clone)]
pub struct VariableStatData {
    pub var: *mut Node,
    pub rel: *mut RelOptInfo,
    pub statsTuple: HeapTuple,
    pub freefunc: ::std::option::Option<unsafe extern "C" fn(tuple: HeapTuple)>,
    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::<Self>::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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn examine_variable(
        root: *mut PlannerInfo,
        node: *mut Node,
        varRelid: ::std::os::raw::c_int,
        vardata: *mut VariableStatData,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn statistic_proc_security_check(vardata: *mut VariableStatData, func_oid: Oid) -> bool;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_variable_numdistinct(vardata: *mut VariableStatData, isdefault: *mut bool) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mcv_selectivity(
        vardata: *mut VariableStatData,
        opproc: *mut FmgrInfo,
        constval: Datum,
        varonleft: bool,
        sumcommonp: *mut f64,
    ) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn mcv_selectivity_ext(
        vardata: *mut VariableStatData,
        opproc: *mut FmgrInfo,
        collation: Oid,
        constval: Datum,
        varonleft: bool,
        sumcommonp: *mut f64,
    ) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn histogram_selectivity(
        vardata: *mut VariableStatData,
        opproc: *mut FmgrInfo,
        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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn histogram_selectivity_ext(
        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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ineq_histogram_selectivity(
        root: *mut PlannerInfo,
        vardata: *mut VariableStatData,
        opproc: *mut FmgrInfo,
        isgt: bool,
        iseq: bool,
        constval: Datum,
        consttype: Oid,
    ) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ineq_histogram_selectivity_ext(
        root: *mut PlannerInfo,
        vardata: *mut VariableStatData,
        opproc: *mut FmgrInfo,
        isgt: bool,
        iseq: bool,
        collation: Oid,
        constval: Datum,
        consttype: Oid,
    ) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn var_eq_const(
        vardata: *mut VariableStatData,
        oproid: Oid,
        constval: Datum,
        constisnull: bool,
        varonleft: bool,
        negate: bool,
    ) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn var_eq_const_ext(
        vardata: *mut VariableStatData,
        oproid: Oid,
        collation: Oid,
        constval: Datum,
        constisnull: bool,
        varonleft: bool,
        negate: bool,
    ) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn var_eq_non_const(
        vardata: *mut VariableStatData,
        oproid: Oid,
        other: *mut Node,
        varonleft: bool,
        negate: bool,
    ) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn boolvarsel(
        root: *mut PlannerInfo,
        arg: *mut Node,
        varRelid: ::std::os::raw::c_int,
    ) -> Selectivity;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn estimate_array_length(arrayexpr: *mut Node) -> ::std::os::raw::c_int;
}
#[pgx_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;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn estimate_num_groups(
        root: *mut PlannerInfo,
        groupExprs: *mut List,
        input_rows: f64,
        pgset: *mut *mut List,
    ) -> f64;
}
#[pgx_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,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn estimate_hashagg_tablesize(
        path: *mut Path,
        agg_costs: *const AggClauseCosts,
        dNumGroups: f64,
    ) -> f64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn get_quals_from_indexclauses(indexclauses: *mut List) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn index_other_operands_eval_cost(root: *mut PlannerInfo, indexquals: *mut List) -> Cost;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn add_predicate_to_index_quals(
        index: *mut IndexOptInfo,
        indexQuals: *mut List,
    ) -> *mut List;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn genericcostestimate(
        root: *mut PlannerInfo,
        path: *mut IndexPath,
        loop_count: f64,
        costs: *mut GenericCosts,
    );
}
#[pgx_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_PARTRELID: SysCacheIdentifier = 41;
pub const SysCacheIdentifier_PROCNAMEARGSNSP: SysCacheIdentifier = 42;
pub const SysCacheIdentifier_PROCOID: SysCacheIdentifier = 43;
pub const SysCacheIdentifier_PUBLICATIONNAME: SysCacheIdentifier = 44;
pub const SysCacheIdentifier_PUBLICATIONOID: SysCacheIdentifier = 45;
pub const SysCacheIdentifier_PUBLICATIONREL: SysCacheIdentifier = 46;
pub const SysCacheIdentifier_PUBLICATIONRELMAP: SysCacheIdentifier = 47;
pub const SysCacheIdentifier_RANGETYPE: SysCacheIdentifier = 48;
pub const SysCacheIdentifier_RELNAMENSP: SysCacheIdentifier = 49;
pub const SysCacheIdentifier_RELOID: SysCacheIdentifier = 50;
pub const SysCacheIdentifier_REPLORIGIDENT: SysCacheIdentifier = 51;
pub const SysCacheIdentifier_REPLORIGNAME: SysCacheIdentifier = 52;
pub const SysCacheIdentifier_RULERELNAME: SysCacheIdentifier = 53;
pub const SysCacheIdentifier_SEQRELID: SysCacheIdentifier = 54;
pub const SysCacheIdentifier_STATEXTDATASTXOID: SysCacheIdentifier = 55;
pub const SysCacheIdentifier_STATEXTNAMENSP: SysCacheIdentifier = 56;
pub const SysCacheIdentifier_STATEXTOID: SysCacheIdentifier = 57;
pub const SysCacheIdentifier_STATRELATTINH: SysCacheIdentifier = 58;
pub const SysCacheIdentifier_SUBSCRIPTIONNAME: SysCacheIdentifier = 59;
pub const SysCacheIdentifier_SUBSCRIPTIONOID: SysCacheIdentifier = 60;
pub const SysCacheIdentifier_SUBSCRIPTIONRELMAP: SysCacheIdentifier = 61;
pub const SysCacheIdentifier_TABLESPACEOID: SysCacheIdentifier = 62;
pub const SysCacheIdentifier_TRFOID: SysCacheIdentifier = 63;
pub const SysCacheIdentifier_TRFTYPELANG: SysCacheIdentifier = 64;
pub const SysCacheIdentifier_TSCONFIGMAP: SysCacheIdentifier = 65;
pub const SysCacheIdentifier_TSCONFIGNAMENSP: SysCacheIdentifier = 66;
pub const SysCacheIdentifier_TSCONFIGOID: SysCacheIdentifier = 67;
pub const SysCacheIdentifier_TSDICTNAMENSP: SysCacheIdentifier = 68;
pub const SysCacheIdentifier_TSDICTOID: SysCacheIdentifier = 69;
pub const SysCacheIdentifier_TSPARSERNAMENSP: SysCacheIdentifier = 70;
pub const SysCacheIdentifier_TSPARSEROID: SysCacheIdentifier = 71;
pub const SysCacheIdentifier_TSTEMPLATENAMENSP: SysCacheIdentifier = 72;
pub const SysCacheIdentifier_TSTEMPLATEOID: SysCacheIdentifier = 73;
pub const SysCacheIdentifier_TYPENAMENSP: SysCacheIdentifier = 74;
pub const SysCacheIdentifier_TYPEOID: SysCacheIdentifier = 75;
pub const SysCacheIdentifier_USERMAPPINGOID: SysCacheIdentifier = 76;
pub const SysCacheIdentifier_USERMAPPINGUSERSERVER: SysCacheIdentifier = 77;
pub type SysCacheIdentifier = ::std::os::raw::c_uint;
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitCatalogCache();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitCatalogCachePhase2();
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCache(
        cacheId: ::std::os::raw::c_int,
        key1: Datum,
        key2: Datum,
        key3: Datum,
        key4: Datum,
    ) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCache1(cacheId: ::std::os::raw::c_int, key1: Datum) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCache2(cacheId: ::std::os::raw::c_int, key1: Datum, key2: Datum) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCache3(
        cacheId: ::std::os::raw::c_int,
        key1: Datum,
        key2: Datum,
        key3: Datum,
    ) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCache4(
        cacheId: ::std::os::raw::c_int,
        key1: Datum,
        key2: Datum,
        key3: Datum,
        key4: Datum,
    ) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn ReleaseSysCache(tuple: HeapTuple);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCacheCopy(
        cacheId: ::std::os::raw::c_int,
        key1: Datum,
        key2: Datum,
        key3: Datum,
        key4: Datum,
    ) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCacheExists(
        cacheId: ::std::os::raw::c_int,
        key1: Datum,
        key2: Datum,
        key3: Datum,
        key4: Datum,
    ) -> bool;
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCacheAttName(relid: Oid, attname: *const ::std::os::raw::c_char) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCacheCopyAttName(
        relid: Oid,
        attname: *const ::std::os::raw::c_char,
    ) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCacheExistsAttName(relid: Oid, attname: *const ::std::os::raw::c_char) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCacheAttNum(relid: Oid, attnum: int16) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SearchSysCacheCopyAttNum(relid: Oid, attnum: int16) -> HeapTuple;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SysCacheGetAttr(
        cacheId: ::std::os::raw::c_int,
        tup: HeapTuple,
        attributeNumber: AttrNumber,
        isNull: *mut bool,
    ) -> Datum;
}
#[pgx_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],
}
#[pgx_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;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SysCacheInvalidate(cacheId: ::std::os::raw::c_int, hashValue: uint32);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationInvalidatesSnapshotsOnly(relid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationHasSysCache(relid: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn RelationSupportsSysCache(relid: Oid) -> 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 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 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 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::<Self>::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::<Self>::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],
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lookup_type_cache(type_id: Oid, flags: ::std::os::raw::c_int) -> *mut TypeCacheEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn InitDomainConstraintRef(
        type_id: Oid,
        ref_: *mut DomainConstraintRef,
        refctx: MemoryContext,
        need_exprstate: bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn UpdateDomainConstraintRef(ref_: *mut DomainConstraintRef);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn DomainHasConstraints(type_id: Oid) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lookup_rowtype_tupdesc(type_id: Oid, typmod: int32) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lookup_rowtype_tupdesc_noerror(type_id: Oid, typmod: int32, noError: bool) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lookup_rowtype_tupdesc_copy(type_id: Oid, typmod: int32) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn lookup_rowtype_tupdesc_domain(type_id: Oid, typmod: int32, noError: bool) -> TupleDesc;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn assign_record_type_typmod(tupDesc: TupleDesc);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn assign_record_type_identifier(type_id: Oid, typmod: int32) -> uint64;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn compare_values_of_enum(
        tcache: *mut TypeCacheEntry,
        arg1: Oid,
        arg2: Oid,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SharedRecordTypmodRegistryEstimate() -> usize;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SharedRecordTypmodRegistryInit(
        arg1: *mut SharedRecordTypmodRegistry,
        segment: *mut dsm_segment,
        area: *mut dsa_area,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn SharedRecordTypmodRegistryAttach(arg1: *mut SharedRecordTypmodRegistry);
}
#[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::<Self>::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::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_contains_elem_internal(
        typcache: *mut TypeCacheEntry,
        r: *mut RangeType,
        val: Datum,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_eq_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_ne_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_contains_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_contained_by_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_before_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_after_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_adjacent_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_overlaps_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_overleft_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_overright_internal(
        typcache: *mut TypeCacheEntry,
        r1: *mut RangeType,
        r2: *mut RangeType,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_get_typcache(fcinfo: FunctionCallInfo, rngtypid: Oid) -> *mut TypeCacheEntry;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_serialize(
        typcache: *mut TypeCacheEntry,
        lower: *mut RangeBound,
        upper: *mut RangeBound,
        empty: bool,
    ) -> *mut RangeType;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_deserialize(
        typcache: *mut TypeCacheEntry,
        range: *mut RangeType,
        lower: *mut RangeBound,
        upper: *mut RangeBound,
        empty: *mut bool,
    );
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_get_flags(range: *mut RangeType) -> ::std::os::raw::c_char;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_set_contain_empty(range: *mut RangeType);
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_range(
        typcache: *mut TypeCacheEntry,
        lower: *mut RangeBound,
        upper: *mut RangeBound,
        empty: bool,
    ) -> *mut RangeType;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_cmp_bounds(
        typcache: *mut TypeCacheEntry,
        b1: *mut RangeBound,
        b2: *mut RangeBound,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn range_cmp_bound_values(
        typcache: *mut TypeCacheEntry,
        b1: *mut RangeBound,
        b2: *mut RangeBound,
    ) -> ::std::os::raw::c_int;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn bounds_adjacent(
        typcache: *mut TypeCacheEntry,
        bound1: RangeBound,
        bound2: RangeBound,
    ) -> bool;
}
#[pgx_macros::pg_guard]
extern "C" {
    pub fn make_empty_range(typcache: *mut TypeCacheEntry) -> *mut RangeType;
}
pub type __builtin_va_list = *mut ::std::os::raw::c_char;
pub type __uint128_t = u128;
#[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 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 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 ResourceOwnerData {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct SMgrRelationData {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct RowSecurityDesc {
    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 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 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 AggrefExprState {}
impl pg_sys::PgNode for AggrefExprState {}
impl std::fmt::Display for AggrefExprState {
    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 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 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 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 AlternativeSubPlanState {}
impl pg_sys::PgNode for AlternativeSubPlanState {}
impl std::fmt::Display for AlternativeSubPlanState {
    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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 SQLCmd {}
impl pg_sys::PgNode for SQLCmd {}
impl std::fmt::Display for SQLCmd {
    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 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 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 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 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 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 Value {}
impl pg_sys::PgNode for Value {}
impl std::fmt::Display for Value {
    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())
    }
}