From 4a62ca84b1949fd76f84d3d0c846a645c4b0b794 Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Fri, 27 Oct 2017 13:06:44 -0400 Subject: [PATCH] implement sequence of target, and insure that the link to the map does not return duplicates --- do_map_g_option.pgsql | 18 ++++++++++++------ readme.md | 4 ++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/do_map_g_option.pgsql b/do_map_g_option.pgsql index 31ddc3b..7ecc0ed 100644 --- a/do_map_g_option.pgsql +++ b/do_map_g_option.pgsql @@ -9,6 +9,7 @@ SELECT t.id, t.rec, m.target, + m.seq, regex->>'map' map_intention, regex->>'function' regex_function, e.v ->> 'field' result_key_name, @@ -75,9 +76,9 @@ FROM m.regex->>'function' = 'extract' LEFT JOIN LATERAL regexp_replace(t.rec #>> ((e.v ->> 'key')::text[]), e.v ->> 'regex'::text, e.v ->> 'replace'::text,e.v ->> 'flag') WITH ORDINALITY rp(rp, rn) ON m.regex->>'function' = 'replace' -WHERE +--WHERE --t.srce = 'PNCC' - rec @> '{"Transaction":"ACH Credits","Transaction":"ACH Debits"}' + --rec @> '{"Transaction":"ACH Credits","Transaction":"ACH Debits"}' --rec @> '{"Description":"CHECK 93013270 086129935"}'::jsonb ORDER BY t.id DESC, @@ -93,6 +94,7 @@ SELECT srce ,id ,target + ,seq ,map_intention ,regex_function ,target_item_number @@ -132,6 +134,7 @@ GROUP BY srce ,id ,target + ,seq ,map_intention ,regex_function ,target_item_number @@ -148,6 +151,7 @@ SELECT srce ,id ,target + ,seq ,map_intention ,tps.jsonb_concat_obj(COALESCE(map_val,'{}'::JSONB)) map_val ,jsonb_strip_nulls(tps.jsonb_concat_obj(COALESCE(retain_val,'{}'::JSONB))) retain_val @@ -157,6 +161,7 @@ GROUP BY srce ,id ,target + ,seq ,map_intention ORDER BY id @@ -171,6 +176,7 @@ SELECT a.srce ,a.id ,a.target + ,a.seq ,a.map_intention ,a.map_val ,a.retain_val retain_value @@ -189,7 +195,7 @@ FROM SELECT srce ,id - ,tps.jsonb_concat_obj(COALESCE(retain_value,'{}'::jsonb)) retain_val + ,tps.jsonb_concat_obj(COALESCE(retain_value,'{}'::jsonb) ORDER BY seq DESC) retain_val ,tps.jsonb_concat_obj(COALESCE(map,'{}'::jsonb)) map FROM link_map @@ -198,9 +204,10 @@ GROUP BY ,id ) -SELECT srce, id, jsonb_pretty(retain_val), jsonb_pretty(map) FROM agg_to_id +--SELECT agg_to_id.srce, agg_to_id.id, jsonb_pretty(agg_to_id.retain_val) , jsonb_pretty(agg_to_id.map) FROM agg_to_id ORDER BY id desc LIMIT 100 + + -/* UPDATE tps.trans t SET @@ -211,4 +218,3 @@ FROM agg_to_id o WHERE o.id = t.id; -*/ \ No newline at end of file diff --git a/readme.md b/readme.md index b2acb67..e7c2ac0 100644 --- a/readme.md +++ b/readme.md @@ -17,8 +17,8 @@ applied mappings are in associated jsonb documents 1. regular expressions are used to extract pieces of the json objects 2. the results of the regular expressions are bumped up against a list of basic mappings and written to an associated jsonb document -a target represents a whole scenario that needs matched. it can contain several regex expressions. if one fails, then no match is attempted because it coudl result in a false positive based on the @> oeprator used at join time -`this probably isn't correctly implemented` +each regex expression within a targeted pattern can be set to map or not. then the mapping items should be joined to map_rv with an `=` as opposed to `@>` to avoid duplication of rows + ## Transformation tools * `COPY`