Hi,

While fixing and testing Unicode issues throughout pgadmin4 nodes I found
bellow issues (other than Unicode) which was preventing me further testing.
So these need to checked in first before we can apply Unicode related issue
patch.

1. *event_trigger_sql.patch*: returns correct value of 'eventfunname' when
schema of of trgger function is other than public.

2.*check_constraint_sql.patch*: Wrong sql was generated for check
constraint when we rename table name and check name at the same time from
table edit mode.

3.*dependents_sql*.patch: dependents sql was failing because of following
issue.
    On non utf-8 encoding database bellow type casting queries fail as it
treats 0 (zero) as null instead of integer.

SELECT 0::text;

SELECT CAST(0 AS text);

db error:
ERROR:  null character not permitted

********** Error **********

ERROR: null character not permitted
SQL state: 54000




-- 

*Harshal Dhumal*
*Software Engineer*

EnterpriseDB India: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/templates/event_triggers/sql/9.3_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/templates/event_triggers/sql/9.3_plus/properties.sql
index 662d04b..e7b81af 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/templates/event_triggers/sql/9.3_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/templates/event_triggers/sql/9.3_plus/properties.sql
@@ -1,7 +1,12 @@
 SELECT e.oid, e.xmin, e.evtname AS name, upper(e.evtevent) AS eventname,
 pg_catalog.pg_get_userbyid(e.evtowner) AS eventowner,
 e.evtenabled AS enabled,
-e.evtfoid AS eventfuncoid, quote_ident(n.nspname) || '.' || e.evtfoid::regproc AS eventfunname,
+e.evtfoid AS eventfuncoid,
+CASE
+  WHEN n.nspname = 'public'
+  THEN quote_ident(n.nspname) || '.' || cast(e.evtfoid::regproc as text)
+  ELSE cast(e.evtfoid::regproc as text)
+END AS  eventfunname,
 array_to_string(array(select quote_literal(x) from unnest(evttags) as t(x)), ', ') AS when,
  pg_catalog.obj_description(e.oid, 'pg_event_trigger') AS comment,
  (SELECT array_agg(provider || '=' || label) FROM pg_seclabel sl1 WHERE sl1.objoid=e.oid) AS seclabels,
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/check_constraint/sql/9.2_plus/update.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/check_constraint/sql/9.2_plus/update.sql
index 6c27923..da1c8ef 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/check_constraint/sql/9.2_plus/update.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/check_constraint/sql/9.2_plus/update.sql
@@ -1,13 +1,13 @@
 {% if data %}
 {% if data.name != o_data.name %}
-ALTER TABLE {{ conn|qtIdent(o_data.nspname, o_data.relname) }}
+ALTER TABLE {{ conn|qtIdent(o_data.nspname, data.table) }}
     RENAME CONSTRAINT {{ conn|qtIdent(o_data.name) }} TO {{ conn|qtIdent(data.name) }};{% endif -%}
 {% if 'convalidated' in data and o_data.convalidated != data.convalidated and not data.convalidated %}
 
-ALTER TABLE {{ conn|qtIdent(o_data.nspname, o_data.relname) }}
+ALTER TABLE {{ conn|qtIdent(o_data.nspname, data.table) }}
     VALIDATE CONSTRAINT {{ conn|qtIdent(data.name) }};{% endif -%}
 {% if data.comment is defined and data.comment != o_data.comment %}
 
-COMMENT ON CONSTRAINT {{ conn|qtIdent(data.name) }} ON {{ conn|qtIdent(o_data.nspname, o_data.relname) }}
+COMMENT ON CONSTRAINT {{ conn|qtIdent(data.name) }} ON {{ conn|qtIdent(o_data.nspname, data.table) }}
     IS {{ data.comment|qtLiteral }};{% endif %}
 {% endif -%}
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/templates/depends/sql/default/dependents.sql b/web/pgadmin/browser/server_groups/servers/templates/depends/sql/default/dependents.sql
index 881e1eb..e2ba3d6 100644
--- a/web/pgadmin/browser/server_groups/servers/templates/depends/sql/default/dependents.sql
+++ b/web/pgadmin/browser/server_groups/servers/templates/depends/sql/default/dependents.sql
@@ -1,6 +1,6 @@
 {% if fetch_dependencies %}
 SELECT DISTINCT dep.deptype, dep.refclassid, cl.relkind, ad.adbin, ad.adsrc,
-    CASE WHEN cl.relkind IS NOT NULL THEN cl.relkind || COALESCE(dep.refobjsubid::text, '')
+    CASE WHEN cl.relkind IS NOT NULL THEN cl.relkind || COALESCE(dep.refobjsubid::character varying, '')
         WHEN tg.oid IS NOT NULL THEN 'T'::text
         WHEN ty.oid IS NOT NULL AND ty.typbasetype = 0 THEN 'y'::text
         WHEN ty.oid IS NOT NULL AND ty.typbasetype != 0 THEN 'd'::text
-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to