formdef storage: don't rewrite function uselessly (#64503)
gitea-wip/wcs/pipeline/head There was a failure building this commit
Details
gitea-wip/wcs/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
6b59e36145
commit
7e7f3815a7
45
wcs/sql.py
45
wcs/sql.py
|
@ -864,12 +864,7 @@ def recreate_trigger(formdef, cur, conn):
|
|||
formed_name_quotedstring = psycopg2.extensions.QuotedString(formdef.name)
|
||||
formed_name_quotedstring.encoding = 'utf8'
|
||||
formdef_name = formed_name_quotedstring.getquoted().decode()
|
||||
cur.execute(
|
||||
'''
|
||||
CREATE OR REPLACE FUNCTION {trg_fn_name}()
|
||||
RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
trigger_code = '''
|
||||
BEGIN
|
||||
IF TG_OP = 'DELETE' THEN
|
||||
DELETE FROM wcs_all_forms WHERE formdef_id = {formdef_id} AND id = OLD.id;
|
||||
|
@ -926,18 +921,34 @@ BEGIN
|
|||
RETURN NEW;
|
||||
END IF;
|
||||
END;
|
||||
$$;
|
||||
'''.format(
|
||||
trg_fn_name=get_formdef_trigger_function_name(formdef),
|
||||
category_id=category_value, # always valued ? need to handle null otherwise.
|
||||
formdef_id=formdef.id,
|
||||
geoloc_base_x=geoloc_base_x_query,
|
||||
geoloc_base_y=geoloc_base_y_query,
|
||||
formdef_name=formdef_name,
|
||||
criticality_levels=criticality_levels,
|
||||
endpoint_status=endpoint_status_filter,
|
||||
)
|
||||
'''.format(
|
||||
category_id=category_value, # always valued ? need to handle null otherwise.
|
||||
formdef_id=formdef.id,
|
||||
geoloc_base_x=geoloc_base_x_query,
|
||||
geoloc_base_y=geoloc_base_y_query,
|
||||
formdef_name=formdef_name,
|
||||
criticality_levels=criticality_levels,
|
||||
endpoint_status=endpoint_status_filter,
|
||||
)
|
||||
cur.execute(
|
||||
'''SELECT prosrc FROM pg_proc
|
||||
WHERE proname = '%s'
|
||||
'''
|
||||
% get_formdef_trigger_function_name(formdef)
|
||||
)
|
||||
function_row = cur.fetchone()
|
||||
if function_row is None or function_row[0] != trigger_code:
|
||||
cur.execute(
|
||||
'''
|
||||
CREATE OR REPLACE FUNCTION {trg_fn_name}()
|
||||
RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $${code}$$;
|
||||
'''.format(
|
||||
trg_fn_name=get_formdef_trigger_function_name(formdef),
|
||||
code=trigger_code,
|
||||
)
|
||||
)
|
||||
|
||||
trg_name = get_formdef_trigger_name(formdef)
|
||||
cur.execute(
|
||||
|
|
Loading…
Reference in New Issue