Struct pgx_sql_entity_graph::PgxSql
source · pub struct PgxSql {Show 17 fields
pub control: ControlFile,
pub graph: StableGraph<SqlGraphEntity, SqlGraphRelationship>,
pub graph_root: NodeIndex,
pub graph_bootstrap: Option<NodeIndex>,
pub graph_finalize: Option<NodeIndex>,
pub schemas: HashMap<SchemaEntity, NodeIndex>,
pub extension_sqls: HashMap<ExtensionSqlEntity, NodeIndex>,
pub externs: HashMap<PgExternEntity, NodeIndex>,
pub types: HashMap<PostgresTypeEntity, NodeIndex>,
pub builtin_types: HashMap<String, NodeIndex>,
pub enums: HashMap<PostgresEnumEntity, NodeIndex>,
pub ords: HashMap<PostgresOrdEntity, NodeIndex>,
pub hashes: HashMap<PostgresHashEntity, NodeIndex>,
pub aggregates: HashMap<PgAggregateEntity, NodeIndex>,
pub triggers: HashMap<PgTriggerEntity, NodeIndex>,
pub extension_name: String,
pub versioned_so: bool,
}Expand description
A generator for SQL.
Consumes a base mapping of types (typically pgx::DEFAULT_TYPEID_SQL_MAPPING), a
ControlFile, and collections of each SQL entity.
During construction, a Directed Acyclic Graph is formed out the dependencies. For example,
an item detect_dog(x: &[u8]) -> animals::Dog would have have a relationship with
animals::Dog.
Typically, PgxSql types are constructed in a pgx::pg_binary_magic!() call in a binary
out of entities collected during a pgx::pg_module_magic!() call in a library.
Fields§
§control: ControlFile§graph: StableGraph<SqlGraphEntity, SqlGraphRelationship>§graph_root: NodeIndex§graph_bootstrap: Option<NodeIndex>§graph_finalize: Option<NodeIndex>§schemas: HashMap<SchemaEntity, NodeIndex>§extension_sqls: HashMap<ExtensionSqlEntity, NodeIndex>§externs: HashMap<PgExternEntity, NodeIndex>§types: HashMap<PostgresTypeEntity, NodeIndex>§builtin_types: HashMap<String, NodeIndex>§enums: HashMap<PostgresEnumEntity, NodeIndex>§ords: HashMap<PostgresOrdEntity, NodeIndex>§hashes: HashMap<PostgresHashEntity, NodeIndex>§aggregates: HashMap<PgAggregateEntity, NodeIndex>§triggers: HashMap<PgTriggerEntity, NodeIndex>§extension_name: String§versioned_so: bool