Expand description
The PGX prelude includes necessary imports to make extensions work.
Re-exports
pub use ::pgx_pg_sys as pg_sys;
pub use crate::iter::SetOfIterator;
pub use crate::iter::TableIterator;
pub use crate::heap_tuple::PgHeapTuple;
pub use crate::pgbox::PgBox;
pub use crate::datum::AnyNumeric;
pub use crate::datum::Numeric;
pub use crate::spi::Spi;
Macros
Log to Postgres’
fatal
log level. This will abort the current Postgres backend connection process.Log to Postgres’
panic
log level. This will cause the entire Postgres cluster to crash.If an interrupt is pending (perhaps a user-initiated “cancel query” message to this backend),
this will safely abort the current transaction
Log to Postgres’
debug1
log level.Log to Postgres’
debug2
log level.Log to Postgres’
debug3
log level.Log to Postgres’
debug4
log level.Log to Postgres’
debug5
log level.A macro for specifying default argument values so they get propery translated to SQL in
CREATE FUNCTION
statementsSends some kind of message to Postgres, and if it’s a PgLogLevel::ERROR or greater, Postgres’
error handling takes over and, in the case of PgLogLevel::ERROR, aborts the current transaction.
Log to Postgres’
error
log level. This will abort the current Postgres transaction.Declare SQL to be included in generated extension script.
Declare SQL (from a file) to be included in generated extension script.
This macro returns the name of the enclosing function.
As the internal implementation is based on the
std::any::type_name
, this macro derives
all the limitations of this function.Log to Postgres’
info
log level.Log to Postgres’
log
log level.A macro for providing SQL names for the returned fields for functions that return a Rust tuple,
especially those that return a
std::iter::Iterator<Item=(f1, f2, f3)>
Log to Postgres’
notice
log level.Log to Postgres’
warning
log level.Structs
Enums
Postgres’ various logging levels
This list of SQL Error Codes is taken directly from Postgres 12’s generated “utils/errcodes.h”
Constants
Functions
Converts a
pg_sys::NameData
struct into a &str
.Attribute Macros
Declare a
pgx::Aggregate
implentation on a type as able to used by Postgres as an aggregate.Declare a function as
#[pg_extern]
to indicate that it can be used by Postgres as a UDF.Declare a function as
#[pg_guard]
to indicate that it is called from a Postgres extern "C"
function so that Rust panic!()
s (and Postgres elog(ERROR)
s) will be properly handled by pgx
Declare a Rust module and its contents to be in a schema.
#[pg_test]
functions are test functions (akin to #[test]
), but they run in-process inside
Postgres during cargo pgx test
.Associated macro for
#[pg_extern]
or #[macro@pg_operator]
. Used to set the SEARCH_PATH
option
on the CREATE FUNCTION
statement.Derive Macros
Generate necessary bindings for using the enum with PostgreSQL.
Generate necessary bindings for using the type with PostgreSQL.