get rid of validation steps not required
This commit is contained in:
parent
b6c1126ecb
commit
eb8da0f6c5
@ -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----------------------------------------
|
||||
@ -109,32 +87,7 @@ BEGIN
|
||||
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 =
|
||||
$$
|
||||
|
Loading…
Reference in New Issue
Block a user