From 2e55b1f660f4615fde8510f0358a528454b453a0 Mon Sep 17 00:00:00 2001 From: Pradip Parkale Date: Wed, 23 Sep 2020 13:21:50 +0530 Subject: [PATCH] Fixed an issue where the 'PARALLEL UNSAFE' option is missing from reverse engineering SQL of function/procedure node. Fixes #5843. --- docs/en_US/release_notes_4_27.rst | 1 + .../functions/templates/functions/pg/sql/11_plus/create.sql | 4 ++-- .../functions/templates/functions/pg/sql/12_plus/create.sql | 4 ++-- .../functions/templates/functions/ppas/sql/12_plus/create.sql | 4 ++-- .../templates/functions/ppas/sql/9.6_plus/create.sql | 4 ++-- .../templates/procedures/ppas/sql/11_plus/create.sql | 4 ++-- .../templates/procedures/ppas/sql/9.6_plus/create.sql | 4 ++-- .../functions/tests/ppas/9.6_plus/alter_proc_comment.sql | 2 +- .../functions/tests/ppas/9.6_plus/alter_proc_param.sql | 2 +- .../functions/tests/ppas/9.6_plus/create_procedure.sql | 2 +- 10 files changed, 16 insertions(+), 15 deletions(-) diff --git a/docs/en_US/release_notes_4_27.rst b/docs/en_US/release_notes_4_27.rst index 30ce83a2a..58f1ded60 100644 --- a/docs/en_US/release_notes_4_27.rst +++ b/docs/en_US/release_notes_4_27.rst @@ -25,4 +25,5 @@ Bug fixes | `Issue #5830 `_ - Fixed reverse engineering SQL where parenthesis is not properly arranged for View/MView definition. | `Issue #5839 `_ - Ensure that multiple extensions can be dropped from the properties tab. | `Issue #5841 `_ - Fixed an issue where the server is not able to connect using the service. +| `Issue #5843 `_ - Fixed an issue where the 'PARALLEL UNSAFE' option is missing from reverse engineering SQL of function/procedure. | `Issue #5845 `_ - Fixed an issue where the query tool is not fetching more than 1000 rows for the table does not have any primary key. \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/11_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/11_plus/create.sql index bdf36cb61..77bf6ef9b 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/11_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/11_plus/create.sql @@ -25,8 +25,8 @@ CREATE{% if query_type is defined %}{{' OR REPLACE'}}{% endif %} FUNCTION {{ con {% if data.proisstrict %}STRICT {% endif %} {% if data.prosecdef %}SECURITY DEFINER {% endif %} {% if data.proiswindow %}WINDOW {% endif %} -{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's') %} -{% if data.proparallel == 'r' %}PARALLEL RESTRICTED{% elif data.proparallel == 's' %}PARALLEL SAFE{% endif %}{% endif -%} +{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's' or data.proparallel == 'u') %} +{% if data.proparallel == 'r' %} PARALLEL RESTRICTED{% elif data.proparallel == 's' %} PARALLEL SAFE {% elif data.proparallel == 'u' %} PARALLEL UNSAFE{% endif %}{% endif %} {% if data.prorows and (data.prorows | int) > 0 %} ROWS {{data.prorows}}{% endif -%}{% if data.variables %}{% for v in data.variables %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/12_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/12_plus/create.sql index 48decdb1f..565b86f1d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/12_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/12_plus/create.sql @@ -25,8 +25,8 @@ CREATE{% if query_type is defined %}{{' OR REPLACE'}}{% endif %} FUNCTION {{ con {% if data.proisstrict %}STRICT {% endif %} {% if data.prosecdef %}SECURITY DEFINER {% endif %} {% if data.proiswindow %}WINDOW {% endif %} -{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's') %} -{% if data.proparallel == 'r' %}PARALLEL RESTRICTED{% elif data.proparallel == 's' %}PARALLEL SAFE{% endif %}{% endif -%} +{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's' or data.proparallel == 'u') %} +{% if data.proparallel == 'r' %} PARALLEL RESTRICTED{% elif data.proparallel == 's' %} PARALLEL SAFE {% elif data.proparallel == 'u' %} PARALLEL UNSAFE{% endif %}{% endif %} {% if data.prorows and (data.prorows | int) > 0 %} ROWS {{data.prorows}}{% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/12_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/12_plus/create.sql index fc29a6c1a..99b64e38d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/12_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/12_plus/create.sql @@ -21,8 +21,8 @@ CREATE{% if query_type is defined %}{{' OR REPLACE'}}{% endif %} FUNCTION {{ con {% if data.proisstrict %}STRICT {% endif %} {% if data.prosecdef %}SECURITY DEFINER {% endif %} {% if data.proiswindow %}WINDOW {% endif %} -{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's') %} -{% if data.proparallel == 'r' %}PARALLEL RESTRICTED{% elif data.proparallel == 's' %}PARALLEL SAFE{% endif %}{% endif %} +{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's' or data.proparallel == 'u') %} +{% if data.proparallel == 'r' %} PARALLEL RESTRICTED{% elif data.proparallel == 's' %} PARALLEL SAFE {% elif data.proparallel == 'u' %} PARALLEL UNSAFE{% endif %}{% endif %} {% if data.procost %} COST {{data.procost}}{% endif %}{% if data.prorows and (data.prorows | int) > 0 %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/9.6_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/9.6_plus/create.sql index 9c7a78298..fd2383b38 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/9.6_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/9.6_plus/create.sql @@ -21,8 +21,8 @@ CREATE{% if query_type is defined %}{{' OR REPLACE'}}{% endif %} FUNCTION {{ con {% if data.proisstrict %}STRICT {% endif %} {% if data.prosecdef %}SECURITY DEFINER {% endif %} {% if data.proiswindow %}WINDOW {% endif %} -{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's') %} -{% if data.proparallel == 'r' %}PARALLEL RESTRICTED{% elif data.proparallel == 's' %}PARALLEL SAFE{% endif %}{% endif %} +{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's' or data.proparallel == 'u') %} +{% if data.proparallel == 'r' %} PARALLEL RESTRICTED{% elif data.proparallel == 's' %} PARALLEL SAFE {% elif data.proparallel == 'u' %} PARALLEL UNSAFE{% endif %}{% endif %} {% if data.procost %} COST {{data.procost}}{% endif %}{% if data.prorows and (data.prorows | int) > 0 %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/11_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/11_plus/create.sql index e364f2789..f6f62887c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/11_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/11_plus/create.sql @@ -20,8 +20,8 @@ LANGUAGE {{ data.lanname|qtLiteral }}{% if data.prosecdef %} {% if data.lanname == 'edbspl' %} {{ data.provolatile }} {% if data.proleakproof %}LEAKPROOF {% endif %} {% if data.proisstrict %}STRICT {% endif %} -{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's') %} -{% if data.proparallel == 'r' %}PARALLEL RESTRICTED{% elif data.proparallel == 's' %}PARALLEL SAFE{% endif %}{% endif %}{% if data.procost %} +{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's' or data.proparallel == 'u') %} +{% if data.proparallel == 'r' %} PARALLEL RESTRICTED{% elif data.proparallel == 's' %} PARALLEL SAFE {% elif data.proparallel == 'u' %} PARALLEL UNSAFE{% endif %}{% endif %}{% if data.procost %} COST {{data.procost}}{% endif %}{% if data.prorows and (data.prorows | int) > 0 %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/9.6_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/9.6_plus/create.sql index 2c11bd8db..581d81abd 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/9.6_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/9.6_plus/create.sql @@ -17,8 +17,8 @@ CREATE OR REPLACE PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }}{% i {{ data.provolatile }} {% if data.proleakproof %}LEAKPROOF {% endif %} {% if data.proisstrict %}STRICT {% endif %} {% if data.prosecdef %}SECURITY DEFINER{% endif %} -{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's') %} -{% if data.proparallel == 'r' %} PARALLEL RESTRICTED{% elif data.proparallel == 's' %} PARALLEL SAFE{% endif %}{% endif %}{% if data.procost %} +{% if data.proparallel and (data.proparallel == 'r' or data.proparallel == 's' or data.proparallel == 'u') %} +{% if data.proparallel == 'r' %} PARALLEL RESTRICTED{% elif data.proparallel == 's' %} PARALLEL SAFE {% elif data.proparallel == 'u' %} PARALLEL UNSAFE{% endif %}{% endif %}{% if data.procost %} COST {{data.procost}}{% endif %}{% if data.prorows and (data.prorows | int) > 0 %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/alter_proc_comment.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/alter_proc_comment.sql index 754559bd2..371b247f3 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/alter_proc_comment.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/alter_proc_comment.sql @@ -4,7 +4,7 @@ CREATE OR REPLACE PROCEDURE public."Proc1_$%{}[]()&*^!@""'`\/#"( i1 integer) - VOLATILE SECURITY DEFINER + VOLATILE SECURITY DEFINER PARALLEL UNSAFE COST 100 AS begin select 1; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/alter_proc_param.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/alter_proc_param.sql index 6a6244b1b..d9f11840d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/alter_proc_param.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/alter_proc_param.sql @@ -4,7 +4,7 @@ CREATE OR REPLACE PROCEDURE public."Proc1_$%{}[]()&*^!@""'`\/#"( i1 integer) - VOLATILE SECURITY DEFINER + VOLATILE SECURITY DEFINER PARALLEL UNSAFE COST 100 SET application_name='pgadmin' AS begin diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/create_procedure.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/create_procedure.sql index 9c4e1fccb..bc758bf19 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/create_procedure.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/tests/ppas/9.6_plus/create_procedure.sql @@ -4,7 +4,7 @@ CREATE OR REPLACE PROCEDURE public."Proc1_$%{}[]()&*^!@""'`\/#"( i1 integer) - VOLATILE SECURITY DEFINER + VOLATILE SECURITY DEFINER PARALLEL UNSAFE COST 100 AS begin select 1;