Merge pull request #38 from fleetside72/schema

Schema
This commit is contained in:
fleetside72 2018-12-02 01:54:27 -05:00 committed by GitHub
commit 34e94844e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 18 deletions

View File

@ -311,25 +311,26 @@ AS
$f$ $f$
DECLARE DECLARE
--_schema text; --_schema text;
_path text[];
--_srce text; --_srce text;
_sql text; _sql text;
BEGIN BEGIN
--_schema:= 'default'; --_schema:= 'default';
_path:= ARRAY['schemas',_schema]::text[];
--_srce:= 'dcard'; --_srce:= 'dcard';
SELECT SELECT
'DROP VIEW IF EXISTS tpsv.'||_srce||'_'||_path[2]||'; CREATE VIEW tpsv.'||_srce||'_'||_path[2]||' AS SELECT id, logid, '||string_agg('(allj#>>'''||r.PATH::text||''')::'||r.type||' AS "'||r.column_name||'"',', ')||' FROM tps.trans WHERE srce = '''||_srce||''';' 'DROP VIEW IF EXISTS tpsv.'||s.srce||'_'||(list.e->>'name')||'; CREATE VIEW tpsv.'||s.srce||'_'||(list.e->>'name')||' AS SELECT id, logid, allj, '||string_agg('(allj#>>'''||rec.PATH::text||''')::'||rec.type||' AS "'||rec.column_name||'"',', ')||' FROM tps.trans WHERE srce = '''||s.srce||''';'
INTO INTO
_sql _sql
FROM FROM
tps.srce tps.srce s
JOIN LATERAL jsonb_array_elements(defn#>_path) ae(v) ON TRUE JOIN LATERAL jsonb_array_elements(s.defn->'schemas') list (e) ON TRUE
JOIN LATERAL jsonb_to_record (ae.v) AS r(PATH text[], "type" text, column_name text) ON TRUE JOIN LATERAL jsonb_array_elements(list.e->'columns') as cols(e) ON TRUE
JOIN LATERAL jsonb_to_record (cols.e) AS rec( PATH text[], "type" text, column_name text) ON TRUE
WHERE WHERE
srce = _srce srce = _srce
AND list.e->>'name' = _schema
GROUP BY GROUP BY
srce.srce; s.srce
,list.e;
RETURN _sql; RETURN _sql;
RAISE NOTICE '%',_sql; RAISE NOTICE '%',_sql;

View File

@ -4,25 +4,26 @@ AS
$f$ $f$
DECLARE DECLARE
--_schema text; --_schema text;
_path text[];
--_srce text; --_srce text;
_sql text; _sql text;
BEGIN BEGIN
--_schema:= 'default'; --_schema:= 'default';
_path:= ARRAY['schemas',_schema]::text[];
--_srce:= 'dcard'; --_srce:= 'dcard';
SELECT SELECT
'DROP VIEW IF EXISTS tpsv.'||_srce||'_'||_path[2]||'; CREATE VIEW tpsv.'||_srce||'_'||_path[2]||' AS SELECT id, logid, allj, '||string_agg('(allj#>>'''||r.PATH::text||''')::'||r.type||' AS "'||r.column_name||'"',', ')||' FROM tps.trans WHERE srce = '''||_srce||''';' 'DROP VIEW IF EXISTS tpsv.'||s.srce||'_'||(list.e->>'name')||'; CREATE VIEW tpsv.'||s.srce||'_'||(list.e->>'name')||' AS SELECT id, logid, allj, '||string_agg('(allj#>>'''||rec.PATH::text||''')::'||rec.type||' AS "'||rec.column_name||'"',', ')||' FROM tps.trans WHERE srce = '''||s.srce||''';'
INTO INTO
_sql _sql
FROM FROM
tps.srce tps.srce s
JOIN LATERAL jsonb_array_elements(defn#>_path) ae(v) ON TRUE JOIN LATERAL jsonb_array_elements(s.defn->'schemas') list (e) ON TRUE
JOIN LATERAL jsonb_to_record (ae.v) AS r(PATH text[], "type" text, column_name text) ON TRUE JOIN LATERAL jsonb_array_elements(list.e->'columns') as cols(e) ON TRUE
JOIN LATERAL jsonb_to_record (cols.e) AS rec( PATH text[], "type" text, column_name text) ON TRUE
WHERE WHERE
srce = _srce srce = _srce
AND list.e->>'name' = _schema
GROUP BY GROUP BY
srce.srce; s.srce
,list.e;
RETURN _sql; RETURN _sql;
RAISE NOTICE '%',_sql; RAISE NOTICE '%',_sql;