put scripts into upgrade folder and add function
This commit is contained in:
parent
34e94844e7
commit
f58a30dbc8
@ -0,0 +1,33 @@
|
||||
DROP FUNCTION IF EXISTS tps.build_srce_view_sql(text, text);
|
||||
CREATE OR REPLACE FUNCTION tps.build_srce_view_sql(_srce text, _schema text) RETURNS TEXT
|
||||
AS
|
||||
$f$
|
||||
DECLARE
|
||||
--_schema text;
|
||||
--_srce text;
|
||||
_sql text;
|
||||
BEGIN
|
||||
--_schema:= 'default';
|
||||
--_srce:= 'dcard';
|
||||
SELECT
|
||||
'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
|
||||
_sql
|
||||
FROM
|
||||
tps.srce s
|
||||
JOIN LATERAL jsonb_array_elements(s.defn->'schemas') list (e) 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
|
||||
srce = _srce
|
||||
AND list.e->>'name' = _schema
|
||||
GROUP BY
|
||||
s.srce
|
||||
,list.e;
|
||||
|
||||
RETURN _sql;
|
||||
RAISE NOTICE '%',_sql;
|
||||
|
||||
END
|
||||
$f$
|
||||
LANGUAGE plpgsql;
|
Loading…
Reference in New Issue
Block a user