diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py
index a66e2215d..40d5000b4 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py
@@ -654,9 +654,10 @@ class FunctionView(PGChildNodeView, DataTypeReader):
         condition = "(typtype IN ('b', 'c', 'd', 'e', 'p', 'r') AND " \
                     "typname NOT IN ('any', 'trigger', 'language_handler', " \
                     "'event_trigger'))"
-        if self.blueprint.show_system_objects:
+        if not self.blueprint.show_system_objects:
             condition += " AND nspname NOT LIKE E'pg\\\\_toast%' AND " \
-                         "nspname NOT LIKE E'pg\\\\_temp%'"
+                         "nspname NOT LIKE E'pg\\\\_temp%' AND "\
+                         "nspname != 'information_schema'"
 
         # Get Types
         status, types = self.get_types(self.conn, condition, False, scid)
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/11_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/11_plus/properties.sql
index 50c2ca041..6b2cb2fa9 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/11_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/11_plus/properties.sql
@@ -1,10 +1,13 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin,
+    CASE WHEN pr.prokind = 'w' THEN true ELSE false END AS proiswindow,
+    pr.prosrc, pr.prosrc AS prosrc_c, pr.pronamespace, pr.prolang, pr.procost, pr.prorows, pr.prokind,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile, pr.proparallel,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
-    CASE WHEN pr.prokind = 'w' THEN TRUE ELSE FALSE END AS proiswindow,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -20,14 +23,14 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     pr.prokind IN ('f', 'w')
+    AND typname NOT IN ('trigger', 'event_trigger')
 {% if fnid %}
     AND pr.oid = {{fnid}}::oid
 {% else %}
     AND pronamespace = {{scid}}::oid
 {% endif %}
-    AND typname NOT IN ('trigger', 'event_trigger')
 ORDER BY
     proname;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/12_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/12_plus/properties.sql
index e28d46b7c..7d698267f 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/12_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/12_plus/properties.sql
@@ -1,10 +1,13 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin,
+    CASE WHEN pr.prokind = 'w' THEN true ELSE false END AS proiswindow,
+    pr.prosrc, pr.prosrc AS prosrc_c, pr.pronamespace, pr.prolang, pr.procost, pr.prorows, pr.prokind,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile, pr.proparallel,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
-    CASE WHEN pr.prokind = 'w' THEN TRUE ELSE FALSE END AS proiswindow,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     CASE WHEN prosupport = 0::oid THEN ''
     ELSE (
         SELECT quote_ident(nspname) || '.' || quote_ident(proname) AS tfunctions
@@ -27,14 +30,14 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     pr.prokind IN ('f', 'w')
+    AND typname NOT IN ('trigger', 'event_trigger')
 {% if fnid %}
     AND pr.oid = {{fnid}}::oid
 {% else %}
     AND pronamespace = {{scid}}::oid
 {% endif %}
-    AND typname NOT IN ('trigger', 'event_trigger')
 ORDER BY
     proname;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/9.2_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/9.2_plus/properties.sql
index ef6ae0296..ebed10505 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/9.2_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/9.2_plus/properties.sql
@@ -1,9 +1,12 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin, pr.proiswindow, pr.prosrc, pr.prosrc AS prosrc_c,
+    pr.pronamespace, pr.prolang, pr.procost, pr.prorows,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -19,7 +22,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     proisagg = FALSE
     AND typname NOT IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/9.5_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/9.5_plus/properties.sql
index b5f5c5d8b..9cc41721d 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/9.5_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/9.5_plus/properties.sql
@@ -1,9 +1,12 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin, pr.proiswindow, pr.prosrc, pr.prosrc AS prosrc_c,
+     pr.pronamespace, pr.prolang, pr.procost, pr.prorows,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -19,7 +22,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     proisagg = FALSE
 {% if fnid %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/default/properties.sql
index b5f5c5d8b..ebed10505 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/default/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/pg/sql/default/properties.sql
@@ -1,9 +1,12 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin, pr.proiswindow, pr.prosrc, pr.prosrc AS prosrc_c,
+    pr.pronamespace, pr.prolang, pr.procost, pr.prorows,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -19,14 +22,14 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     proisagg = FALSE
+    AND typname NOT IN ('trigger', 'event_trigger')
 {% if fnid %}
     AND pr.oid = {{fnid}}::oid
 {% else %}
     AND pronamespace = {{scid}}::oid
 {% endif %}
-    AND typname NOT IN ('trigger', 'event_trigger')
 ORDER BY
     proname;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/11_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/11_plus/properties.sql
index e99d56b74..6b2cb2fa9 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/11_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/11_plus/properties.sql
@@ -1,9 +1,13 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin,
+    CASE WHEN pr.prokind = 'w' THEN true ELSE false END AS proiswindow,
+    pr.prosrc, pr.prosrc AS prosrc_c, pr.pronamespace, pr.prolang, pr.procost, pr.prorows, pr.prokind,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile, pr.proparallel,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -19,7 +23,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     pr.prokind IN ('f', 'w')
     AND typname NOT IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/12_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/12_plus/properties.sql
index 1bb8c934c..9eac4807d 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/12_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/12_plus/properties.sql
@@ -1,9 +1,13 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin,
+    CASE WHEN pr.prokind = 'w' THEN true ELSE false END AS proiswindow,
+    pr.prosrc, pr.prosrc AS prosrc_c, pr.pronamespace, pr.prolang, pr.procost, pr.prorows, pr.prokind,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile, pr.proparallel,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     CASE WHEN prosupport = 0::oid THEN '' ELSE prosupport::text END AS prosupportfunc,
     (SELECT
         array_agg(provider || '=' || label)
@@ -20,7 +24,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     pr.prokind IN ('f', 'w')
     AND typname NOT IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/default/properties.sql
index ef6ae0296..ebed10505 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/default/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/functions/ppas/sql/default/properties.sql
@@ -1,9 +1,12 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin, pr.proiswindow, pr.prosrc, pr.prosrc AS prosrc_c,
+    pr.pronamespace, pr.prolang, pr.procost, pr.prorows,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -19,7 +22,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     proisagg = FALSE
     AND typname NOT IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/pg/sql/11_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/pg/sql/11_plus/properties.sql
index 1a6c010c3..7efbad8e4 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/pg/sql/11_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/pg/sql/11_plus/properties.sql
@@ -1,16 +1,24 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin,
+    CASE WHEN pr.prokind = 'w' THEN true ELSE false END AS proiswindow,
+    pr.prosrc, pr.prosrc AS prosrc_c, pr.pronamespace, pr.prolang, pr.procost, pr.prorows, pr.prokind,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile, pr.proparallel,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
-    (CASE WHEN
-        pg_catalog.pg_get_function_identity_arguments(pr.oid) <> ''
-    THEN
-        pr.proname || '(' || pg_catalog.pg_get_function_identity_arguments(pr.oid) || ')'
-    ELSE
-        pr.proname::text
-    END) AS name_with_args,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    (
+        WITH name_with_args_tab AS (SELECT pg_catalog.pg_get_function_identity_arguments(pr.oid) AS val)
+        SELECT CASE WHEN
+            val <> ''
+        THEN
+            pr.proname || '(' || val || ')'
+        ELSE
+            pr.proname::text
+        END
+        FROM name_with_args_tab
+    ) AS name_with_args,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -26,7 +34,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     pr.prokind = 'p'
     AND typname NOT IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/11_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/11_plus/properties.sql
index c8d7ae854..6bc8e1835 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/11_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/11_plus/properties.sql
@@ -1,16 +1,24 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin,
+    CASE WHEN pr.prokind = 'w' THEN true ELSE false END AS proiswindow,
+    pr.prosrc, pr.prosrc AS prosrc_c, pr.pronamespace, pr.prolang, pr.procost, pr.prorows, pr.prokind,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile, pr.proparallel,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
-    (CASE WHEN
-        pg_catalog.pg_get_function_identity_arguments(pr.oid) <> ''
-    THEN
-        pr.proname || '(' || pg_catalog.pg_get_function_identity_arguments(pr.oid) || ')'
-    ELSE
-        pr.proname::text
-    END) AS name_with_args,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    (
+        WITH name_with_args_tab AS (SELECT pg_catalog.pg_get_function_identity_arguments(pr.oid) AS val)
+        SELECT CASE WHEN
+            val <> ''
+        THEN
+            pr.proname || '(' || val || ')'
+        ELSE
+            pr.proname::text
+        END
+        FROM name_with_args_tab
+    ) AS name_with_args,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -26,7 +34,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     pr.prokind = 'p'::char
     AND typname NOT IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/default/properties.sql
index de6c73541..8dbf5031c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/default/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedures/ppas/sql/default/properties.sql
@@ -1,16 +1,23 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin,
+    pr.prosrc, pr.prosrc AS prosrc_c, pr.pronamespace, pr.prolang, pr.procost, pr.prorows,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
-    (CASE WHEN
-        pg_catalog.pg_get_function_identity_arguments(pr.oid) <> ''
-    THEN
-        pr.proname || '(' || pg_catalog.pg_get_function_identity_arguments(pr.oid) || ')'
-    ELSE
-        pr.proname::text
-    END) AS name_with_args,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    (
+        WITH name_with_args_tab AS (SELECT pg_catalog.pg_get_function_identity_arguments(pr.oid) AS val)
+        SELECT CASE WHEN
+            val <> ''
+        THEN
+            pr.proname || '(' || val || ')'
+        ELSE
+            pr.proname::text
+        END
+        FROM name_with_args_tab
+    ) AS name_with_args,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -26,7 +33,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     proisagg = FALSE
     AND typname NOT IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/11_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/11_plus/properties.sql
index c96beb616..9c64a486a 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/11_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/11_plus/properties.sql
@@ -1,11 +1,13 @@
 SELECT
     pr.oid, pr.xmin,
     CASE WHEN pr.prokind = 'w' THEN true ELSE false END AS proiswindow,
-    pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.prosrc, pr.prosrc AS prosrc_c, pr.pronamespace, pr.prolang, pr.procost, pr.prorows, pr.prokind,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile, pr.proparallel,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -21,7 +23,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     pr.prokind IN ('f', 'w')
     AND typname IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/9.2_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/9.2_plus/properties.sql
index 6e09dd9de..c06915ada 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/9.2_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/9.2_plus/properties.sql
@@ -1,6 +1,9 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin, pr.proiswindow, pr.prosrc, pr.prosrc AS prosrc_c,
+    pr.pronamespace, pr.prolang, pr.procost, pr.prorows,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
     pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
@@ -19,7 +22,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     proisagg = FALSE
     AND typname IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/default/properties.sql
index 8e56bea5f..c06915ada 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/default/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/pg/sql/default/properties.sql
@@ -1,6 +1,9 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin, pr.proiswindow, pr.prosrc, pr.prosrc AS prosrc_c,
+    pr.pronamespace, pr.prolang, pr.procost, pr.prorows,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
     pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
@@ -19,10 +22,11 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     proisagg = FALSE
-    AND typname = 'trigger' AND lanname != 'edbspl'
+    AND typname IN ('trigger', 'event_trigger')
+    AND lanname NOT IN ('edbspl', 'sql', 'internal')
 {% if fnid %}
     AND pr.oid = {{fnid}}::oid
 {% else %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/11_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/11_plus/properties.sql
index 38d7445e2..d29507910 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/11_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/11_plus/properties.sql
@@ -1,11 +1,13 @@
 SELECT
     pr.oid, pr.xmin,
     CASE WHEN pr.prokind = 'w' THEN true ELSE false END AS proiswindow,
-    pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.prosrc, pr.prosrc AS prosrc_c, pr.pronamespace, pr.prolang, pr.procost, pr.prorows, pr.prokind,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile, pr.proparallel,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
-    pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
+    pr.pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
     (SELECT
         array_agg(provider || '=' || label)
     FROM
@@ -21,7 +23,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     pr.prokind IN ('f', 'w')
     AND typname IN ('trigger', 'event_trigger') AND lanname != 'edbspl'
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/9.2_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/9.2_plus/properties.sql
index 6e09dd9de..c06915ada 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/9.2_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/9.2_plus/properties.sql
@@ -1,6 +1,9 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin, pr.proiswindow, pr.prosrc, pr.prosrc AS prosrc_c,
+    pr.pronamespace, pr.prolang, pr.procost, pr.prorows,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
     pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
@@ -19,7 +22,7 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     proisagg = FALSE
     AND typname IN ('trigger', 'event_trigger')
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/default/properties.sql
index 8e56bea5f..c06915ada 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/default/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_functions/ppas/sql/default/properties.sql
@@ -1,6 +1,9 @@
 SELECT
-    pr.oid, pr.xmin, pr.*, pr.prosrc AS prosrc_c,
-    pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
+    pr.oid, pr.xmin, pr.proiswindow, pr.prosrc, pr.prosrc AS prosrc_c,
+    pr.pronamespace, pr.prolang, pr.procost, pr.prorows,
+    pr.prosecdef, pr.proleakproof, pr.proisstrict, pr.proretset, pr.provolatile,
+    pr.pronargs, pr.prorettype, pr.proallargtypes, pr.proargmodes, pr.probin, pr.proacl,
+    pr.proname, pr.proname AS name, pg_get_function_result(pr.oid) AS prorettypename,
     typns.nspname AS typnsp, lanname, proargnames, oidvectortypes(proargtypes) AS proargtypenames,
     pg_get_expr(proargdefaults, 'pg_catalog.pg_class'::regclass) AS proargdefaultvals,
     pronargdefaults, proconfig, pg_get_userbyid(proowner) AS funcowner, description,
@@ -19,10 +22,11 @@ JOIN
 JOIN
     pg_language lng ON lng.oid=prolang
 LEFT OUTER JOIN
-    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass)
+    pg_description des ON (des.objoid=pr.oid AND des.classoid='pg_proc'::regclass and des.objsubid = 0)
 WHERE
     proisagg = FALSE
-    AND typname = 'trigger' AND lanname != 'edbspl'
+    AND typname IN ('trigger', 'event_trigger')
+    AND lanname NOT IN ('edbspl', 'sql', 'internal')
 {% if fnid %}
     AND pr.oid = {{fnid}}::oid
 {% else %}
