Extra brackets appear in CREATE Script and DDL Comparison, please refer to the attachment error1.png and error2.png for details.
■ scenario The step is as follow: 1) Connect to pg9.6 or pg9.5 2) The SQL to create the trigger is as follows. --------------------------------------------- CREATE TRIGGER tg1 BEFORE INSERT ON public.tb1 FOR EACH ROW WHEN (new.c1 > 0) EXECUTE PROCEDURE public.tf1(); ---------------------------------------------
3) Right click tg1 4) Click CREATE Script
The SQL shown in 'Query Editor' is as follows. --------------------------------------------- CREATE TRIGGER tg1 BEFORE INSERT ON public.tb1 FOR EACH ROW WHEN ((new.c1 > 0)) brackets appears twice. EXECUTE PROCEDURE public.tf1(); ------------------------------------------------
■ The detail of cause: file: web\pgadmin\browser\server_groups\servers\databases\schemas\tables\templates\triggers\sql\pg\default\create.sql
WHEN ({{ data.whenclause }}){% endif %}
There are already brackets in data.whenclause.
■ The summary of correction file: web\pgadmin\browser\server_groups\servers\databases\schemas\tables\templates\triggers\sql\pg\default\create.sql - WHEN ({{ data.whenclause }}){% endif %} + WHEN {% if not data.oid %}({% endif %}{{ data.whenclause }}{% if not data.oid %}){% endif %}{% endif %}
Refer to the following code for the correction method. file: web\pgadmin\browser\server_groups\servers\databases\schemas\tables\templates\triggers\sql\pg\10_plus\create.sql WHEN {% if not data.oid %}({% endif %}{{ data.whenclause }}{% if not data.oid %}){% endif %}{% endif %}