try using correlated subquery for unique list of keys, is pretty slow

This commit is contained in:
Paul Trowbridge 2017-10-25 12:05:28 -04:00
parent ba4a404980
commit 8929b4eea9

View File

@ -1,17 +1,24 @@
\timing
/*
WITH
ext AS (
SELECT
srce
,defn->'unique_constraint'->>'fields'
,ARRAY(SELECT ae.e::text[] FROM jsonb_array_elements_text(defn->'unique_constraint'->'fields') ae(e)) txa
,ARRAY(SELECT ae.e::text[] FROM jsonb_array_elements_text(defn->'unique_constraint'->'fields') ae(e)) text_array
FROM
tps.srce
--add where clause for targeted source
)
SELECT
srce
,
public.jsonb_extract(rec,txa)
*/
SELECT COUNT(*) FROM
(
SELECT DISTINCT
t.srce
,(SELECT JSONB_OBJECT_agg(ae.e,rec #> ae.e::text[]) FROM jsonb_array_elements_text(defn->'unique_constraint'->'fields') ae(e)) ja
FROM
tps.trans
INNER JOIN ext ON
trans.srce = ext.srce
tps.trans t
INNER JOIN tps.srce s ON
s.srce = t.srce
) X