tps/interface/source_maint/srce_build_view.sql
2018-05-23 17:18:17 -04:00

29 lines
581 B
SQL

DO
$f$
DECLARE
_path text[];
_srce text;
_sql text;
BEGIN
_path:= '{schemas,default}'::text[];
_srce:= 'dcard';
SELECT
'CREATE VIEW tpsv.'||_srce||'_'||_path[2]||' AS SELECT '||string_agg('(rec#>>'''||r.PATH::text||''')::'||r.type||' AS "'||r.column_name||'"',', ')||' FROM tps.trans WHERE srce = '''||_srce||''''
INTO
_sql
FROM
tps.srce
JOIN LATERAL jsonb_array_elements(defn#>_path) ae(v) ON TRUE
JOIN LATERAL jsonb_to_record (ae.v) AS r(PATH text[], "type" text, column_name text) ON TRUE
WHERE
srce = _srce
GROUP BY
srce.srce;
RAISE NOTICE '%',_sql;
END
$f$;