create function jsonb_extract in tps schema

This commit is contained in:
Paul Trowbridge 2018-02-23 15:41:30 -05:00
parent 4b2851a61d
commit b40f3edcda
2 changed files with 26 additions and 4 deletions

View File

@ -2,8 +2,8 @@
-- PostgreSQL database dump -- PostgreSQL database dump
-- --
-- Dumped from database version 10.2 -- Dumped from database version 10rc1
-- Dumped by pg_dump version 10.2 -- Dumped by pg_dump version 10rc1
SET statement_timeout = 0; SET statement_timeout = 0;
SET lock_timeout = 0; SET lock_timeout = 0;
@ -82,6 +82,28 @@ END;
$$; $$;
--
-- Name: jsonb_extract(jsonb, text[]); Type: FUNCTION; Schema: tps; Owner: -
--
CREATE FUNCTION jsonb_extract(rec jsonb, key_list text[]) RETURNS jsonb
LANGUAGE plpgsql
AS $$
DECLARE
t text[];
j jsonb := '{}'::jsonb;
BEGIN
FOREACH t SLICE 1 IN ARRAY key_list LOOP
--RAISE NOTICE '%', t;
--RAISE NOTICE '%', t[1];
j := j || jsonb_build_object(t[1],rec#>t);
END LOOP;
RETURN j;
END;
$$;
-- --
-- Name: srce_set(text, jsonb); Type: FUNCTION; Schema: tps; Owner: - -- Name: srce_set(text, jsonb); Type: FUNCTION; Schema: tps; Owner: -
-- --

View File

@ -21,7 +21,7 @@ DECLARE _log_id text;
BEGIN BEGIN
_path := 'C:\users\fleet\downloads\discover-recentactivity-20171031.csv'; _path := 'C:\users\ptrowbridge\documents\tps_etl\sample_discovercard\data.csv';
_srce := 'DCARD'; _srce := 'DCARD';
----------------------------------------------------build the column list of the temp table---------------------------------------------------------------- ----------------------------------------------------build the column list of the temp table----------------------------------------------------------------
@ -80,7 +80,7 @@ BEGIN
,pending_list AS ( ,pending_list AS (
SELECT SELECT
jsonb_extract( tps.jsonb_extract(
row_to_json(i)::jsonb row_to_json(i)::jsonb
,ext.text_array ,ext.text_array
) json_key, ) json_key,