Module pgx::prelude

source ·
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 statements
Sends 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

PgTryBuilder is a mechanism to mimic Postgres C macros PG_TRY and PG_CATCH.

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.