Merge pull request #37 from fleetside72/schema

Schema
This commit is contained in:
fleetside72 2018-12-02 01:48:33 -05:00 committed by GitHub
commit 0398544a51
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 104 additions and 66 deletions

2
.gitignore vendored
View File

@ -2,3 +2,5 @@
.dbeaver-data-sources.xml .dbeaver-data-sources.xml
.project .project
Scripts/ Scripts/
*.log
*.swp

View File

@ -7,8 +7,10 @@
"{Post Date}", "{Post Date}",
"{Description}" "{Description}"
], ],
"schemas": { "schemas": [
"default": [ {
"name": "default",
"columns": [
{ {
"path": "{Trans. Date}", "path": "{Trans. Date}",
"type": "date", "type": "date",
@ -34,8 +36,11 @@
"type": "text", "type": "text",
"column_name": "Category" "column_name": "Category"
} }
], ]
"mapped": [ },
{
"name": "mapped",
"columns": [
{ {
"path": "{Trans. Date}", "path": "{Trans. Date}",
"type": "date", "type": "date",
@ -73,4 +78,5 @@
} }
] ]
} }
]
} }

View File

@ -0,0 +1,30 @@
WITH
mod AS (
SELECT
srce
,jsonb_pretty(defn) orig
,(defn - 'schemas')||
--rebuild the schemas key value from below
jsonb_build_object(
'schemas'
--aggregate all the new key values for a single soure
,jsonb_agg(
--combine a new key 'name' with the columns for that name
jsonb_build_object('name',k)||jsonb_build_object('columns',v)
)
) rebuild
FROM
tps.srce
LEFT JOIN LATERAL jsonb_each(defn->'schemas') WITH ORDINALITY je(k,v, rn) ON TRUE
GROUP BY
srce
,defn
)
UPDATE
tps.srce s
SET
defn = rebuild
FROM
mod
WHERE
mod.srce = s.srce