diff --git a/interface/source_maint/srce_set_dev.sql b/interface/source_maint/srce_set_dev.sql index afc149d..caf91f4 100644 --- a/interface/source_maint/srce_set_dev.sql +++ b/interface/source_maint/srce_set_dev.sql @@ -54,10 +54,13 @@ BEGIN $$ INTO _defn; + /* -1. determine if insert or update -2. if update, determine if conflicts exists -3. do merge +validate schema? should not need validation if created by ui + + + + */ -------extract current source schema for compare-------------------------- @@ -70,34 +73,9 @@ BEGIN WHERE srce = _defn->>'name'; - -------check for transctions already existing under this source----------- - SELECT - COUNT(*) - INTO - _cnt - FROM - tps.trans - WHERE - srce = _defn->>'name'; - - --if there are transaction already and the schema is different stop-------- - IF _cnt > 0 THEN - IF _cur_sch <> _defn->'schema' THEN - _conflict = TRUE; - --get out of the function somehow - _message = - $$ - { - "message": "transactions already exist under source profile and there is a pending schema change", - "status": "error" -} - $$: :jsonb; - return _message; - END IF; - END IF; /*------------------------------------------------------- - do schema validation fo _defn object? + do schema validation ---------------------------------------------------------*/ -------------------insert definition---------------------------------------- @@ -108,33 +86,8 @@ BEGIN ON CONFLICT ON CONSTRAINT srce_pkey DO UPDATE SET defn = _defn; + - ------------------drop existing type----------------------------------------- - - EXECUTE format('DROP TYPE IF EXISTS tps.%I',_defn->>'name'); - - ------------------create new type-------------------------------------------- - - SELECT - string_agg(quote_ident(prs.key)||' '||prs.type,',') - INTO - _sql - FROM - tps.srce - --unwrap the schema definition array - LEFT JOIN LATERAL jsonb_populate_recordset(null: :tps.srce_defn_schema, defn->'schema') prs ON TRUE - WHERE - srce = _defn->>'name' - GROUP BY - srce; - - RAISE NOTICE 'CREATE TYPE tps.% AS (%)',_defn->>'name',_sql; - - EXECUTE format('CREATE TYPE tps.%I AS (%s)',_defn->>'name',_sql); - - EXECUTE format('COMMENT ON TYPE tps.%I IS %L',_defn->>'name',(_defn->>'description')); - - ----------------set message----------------------------------------------------- _message = $$