2.3 KiB
Function: grok_validate_matv_inputs
Overview
This function validates the existence of a materialized view and its source view before performing operations on them, ensuring inputs are valid.
Schema
config.grok_validate_matv_inputs
Parameters
schema_name
(text): Schema containing the materialized view and source viewmatview_name
(text): Name of the materialized viewvtw_name
(text): Optional name of the source view (if not provided, derived from matview_name)
Return Value
Returns a JSONB object with validation results:
Success case:
{
"full_matview_name": "schema.matview_name",
"full_vtw_name": "schema.vtw_name",
"notes": []
}
Error case:
{
"error": "Materialized view schema.matview_name does not exist",
"notes": []
}
Description
This function performs input validation before executing operations on materialized views by:
- Constructing the fully qualified names for the materialized view and source view
- Checking if the materialized view exists in pg_matviews
- Checking if the source view exists in either pg_views or pg_tables
- Returning appropriate error messages if either object is missing
If vtw_name
is not provided, the function derives it by replacing 'matc_' with 'vtw_' in the materialized view name, following the standard naming convention.
Validation Checks
The function checks:
- Materialized view existence using the pg_matviews system catalog
- Source view existence using both pg_views and pg_tables system catalogs (handles both views and tables)
Error Handling
If validation fails, the function returns a descriptive error message indicating which object is missing. If an unexpected error occurs during validation, it returns a generic error message with the exception details.
Dependencies
This function doesn't call other functions but is likely called by materialized view management functions before performing operations.
Usage Example
-- Validate materialized view with automatic source view name derivation
SELECT config.grok_validate_matv_inputs(
'analytics',
'matc_daily_sales',
NULL
);
-- Validate materialized view with explicit source view name
SELECT config.grok_validate_matv_inputs(
'analytics',
'matc_daily_sales',
'custom_source_view'
);