pub struct PostgresIntrospector { /* private fields */ }Expand description
PostgreSQL introspector for fact table metadata.
Implementations§
Source§impl PostgresIntrospector
impl PostgresIntrospector
Sourcepub async fn get_indexed_nested_columns(
&self,
view_name: &str,
) -> Result<HashSet<String>>
pub async fn get_indexed_nested_columns( &self, view_name: &str, ) -> Result<HashSet<String>>
Get indexed columns for a view/table that match the nested path naming convention.
This method introspects the database to find columns that follow the FraiseQL indexed column naming conventions:
- Human-readable:
items__product__category__code(double underscore separated) - Entity ID format:
f{entity_id}__{field_name}(e.g.,f200100__code)
These columns are created by DBAs to optimize filtering on nested GraphQL paths by avoiding JSONB extraction at runtime.
§Arguments
view_name- Name of the view or table to introspect
§Returns
Set of column names that match the indexed column naming conventions.
§Errors
Returns FraiseQLError::ConnectionPool if a connection cannot be acquired,
or FraiseQLError::Database if the query fails.
§Example
use fraiseql_db::postgres::PostgresIntrospector;
use deadpool_postgres::Pool;
let introspector = PostgresIntrospector::new(pool);
let indexed_cols = introspector.get_indexed_nested_columns("v_order_items").await?;
// Returns: {"items__product__category__code", "f200100__code", ...}Trait Implementations§
Source§impl DatabaseIntrospector for PostgresIntrospector
impl DatabaseIntrospector for PostgresIntrospector
Source§async fn list_fact_tables(&self) -> Result<Vec<String>>
async fn list_fact_tables(&self) -> Result<Vec<String>>
List all fact tables in the database (tables starting with “tf_”). Read more
Source§async fn get_columns(
&self,
table_name: &str,
) -> Result<Vec<(String, String, bool)>>
async fn get_columns( &self, table_name: &str, ) -> Result<Vec<(String, String, bool)>>
Query column information for a table. Read more
Source§async fn get_indexed_columns(&self, table_name: &str) -> Result<Vec<String>>
async fn get_indexed_columns(&self, table_name: &str) -> Result<Vec<String>>
Query indexes for a table. Read more
Source§fn database_type(&self) -> DatabaseType
fn database_type(&self) -> DatabaseType
Get database type (for SQL type parsing).
Source§async fn list_relations(&self) -> Result<Vec<RelationInfo>>
async fn list_relations(&self) -> Result<Vec<RelationInfo>>
List all relations (tables and views) in the database. Read more
Source§async fn get_sample_jsonb(
&self,
table_name: &str,
column_name: &str,
) -> Result<Option<Value>>
async fn get_sample_jsonb( &self, table_name: &str, column_name: &str, ) -> Result<Option<Value>>
Get sample JSONB data from a column to extract dimension paths. Read more
Source§async fn function_exists(
&self,
schema: Option<&str>,
name: &str,
) -> Result<Option<bool>>
async fn function_exists( &self, schema: Option<&str>, name: &str, ) -> Result<Option<bool>>
Probe whether a callable SQL function named
name exists — in schema
when given, else resolved against the connection search_path. Read moreSource§async fn qualified_relation_exists(
&self,
schema: &str,
name: &str,
) -> Result<Option<bool>>
async fn qualified_relation_exists( &self, schema: &str, name: &str, ) -> Result<Option<bool>>
Probe whether a schema-qualified relation exists, resolved
case-sensitively / verbatim — the same way the runtime resolves a qualified
sql_source (quote_postgres_identifier + to_regclass), so a mixed-case
relation in an off-search_path schema is not falsely reported missing. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for PostgresIntrospector
impl !UnwindSafe for PostgresIntrospector
impl Freeze for PostgresIntrospector
impl Send for PostgresIntrospector
impl Sync for PostgresIntrospector
impl Unpin for PostgresIntrospector
impl UnsafeUnpin for PostgresIntrospector
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