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
Implementations§
Source§impl PgxSql
impl PgxSql
pub fn build( entities: impl Iterator<Item = SqlGraphEntity>, extension_name: String, versioned_so: bool, ) -> Result<Self>
pub fn to_file(&self, file: impl AsRef<Path> + Debug) -> Result<()>
pub fn write(&self, out: &mut impl Write) -> Result<()>
pub fn to_dot(&self, file: impl AsRef<Path> + Debug) -> Result<()>
pub fn schema_alias_of(&self, item_index: &NodeIndex) -> Option<String>
pub fn schema_prefix_for(&self, target: &NodeIndex) -> String
pub fn to_sql(&self) -> Result<String>
pub fn has_sql_declared_entity( &self, identifier: &SqlDeclared, ) -> Option<&SqlDeclaredEntity>
pub fn source_only_to_sql_type(&self, _ty_source: &str) -> Option<String>
pub fn get_module_pathname(&self) -> String
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PgxSql
impl RefUnwindSafe for PgxSql
impl Send for PgxSql
impl Sync for PgxSql
impl Unpin for PgxSql
impl UnwindSafe for PgxSql
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more