public inbox for [email protected]
help / color / mirror / Atom feedFrom: Victoria Henry <[email protected]>
To: pgadmin-hackers <[email protected]>
Subject: [pgAdmin][patch] RM3409 - Retrieving SQL from table throws exception
Date: Fri, 8 Jun 2018 14:43:37 -0400
Message-ID: <CANxYE3KVhNbpZneLDAcZ+TsRqPE9B9WDzvywVsLz1_dVudvMMA@mail.gmail.com> (raw)
Hi hackers,
Attached is a patch that fixes an exception when trying to view the SQL tab
on a GreenPlum database.
Sincerely,
Joao && Victoria
Attachments:
[application/octet-stream] RM3409.patch (4.2K, 3-RM3409.patch)
download | inline diff:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/9.1_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/9.1_plus/properties.sql
new file mode 100644
index 00000000..2d34accf
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/9.1_plus/properties.sql
@@ -0,0 +1,23 @@
+SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable,
+ nspname, des.description, l.lanname, p.prosrc, p.proname AS tfunction,
+ COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'),
+ substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \\$trigger')) AS whenclause,
+ -- We need to convert tgargs column bytea datatype to array datatype
+ (string_to_array(encode(tgargs, 'escape'), E'\\000')::text[])[1:tgnargs] AS custom_tgargs,
+{% if datlastsysoid %}
+ (CASE WHEN t.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_trigger,
+{% endif %}
+ (CASE WHEN tgconstraint != 0::OID THEN true ElSE false END) AS is_constraint_trigger,
+ (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger
+FROM pg_trigger t
+ JOIN pg_class cl ON cl.oid=tgrelid
+ JOIN pg_namespace na ON na.oid=relnamespace
+ LEFT OUTER JOIN pg_description des ON (des.objoid=t.oid AND des.classoid='pg_trigger'::regclass)
+ LEFT OUTER JOIN pg_proc p ON p.oid=t.tgfoid
+ LEFT OUTER JOIN pg_language l ON l.oid=p.prolang
+WHERE NOT tgisinternal
+ AND tgrelid = {{tid}}::OID
+{% if trid %}
+ AND t.oid = {{trid}}::OID
+{% endif %}
+ORDER BY tgname;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/properties.sql
index 2d34accf..9af81185 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/trigger/sql/default/properties.sql
@@ -1,23 +1 @@
-SELECT t.oid,t.tgname AS name, t.xmin, t.*, relname, CASE WHEN relkind = 'r' THEN TRUE ELSE FALSE END AS parentistable,
- nspname, des.description, l.lanname, p.prosrc, p.proname AS tfunction,
- COALESCE(substring(pg_get_triggerdef(t.oid), 'WHEN (.*) EXECUTE PROCEDURE'),
- substring(pg_get_triggerdef(t.oid), 'WHEN (.*) \\$trigger')) AS whenclause,
- -- We need to convert tgargs column bytea datatype to array datatype
- (string_to_array(encode(tgargs, 'escape'), E'\\000')::text[])[1:tgnargs] AS custom_tgargs,
-{% if datlastsysoid %}
- (CASE WHEN t.oid <= {{ datlastsysoid}}::oid THEN true ElSE false END) AS is_sys_trigger,
-{% endif %}
- (CASE WHEN tgconstraint != 0::OID THEN true ElSE false END) AS is_constraint_trigger,
- (CASE WHEN tgenabled = 'O' THEN true ElSE false END) AS is_enable_trigger
-FROM pg_trigger t
- JOIN pg_class cl ON cl.oid=tgrelid
- JOIN pg_namespace na ON na.oid=relnamespace
- LEFT OUTER JOIN pg_description des ON (des.objoid=t.oid AND des.classoid='pg_trigger'::regclass)
- LEFT OUTER JOIN pg_proc p ON p.oid=t.tgfoid
- LEFT OUTER JOIN pg_language l ON l.oid=p.prolang
-WHERE NOT tgisinternal
- AND tgrelid = {{tid}}::OID
-{% if trid %}
- AND t.oid = {{trid}}::OID
-{% endif %}
-ORDER BY tgname;
+SELECT 1 WHERE 1 = 2;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py
index 9ef06541..2faabd07 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/utils.py
@@ -1003,6 +1003,8 @@ class BaseTableView(PGChildNodeView, BasePartitionTable):
if not status:
return internal_server_error(errormsg=res)
+ if len(res['rows']) == 0:
+ continue
data = dict(res['rows'][0])
# Adding parent into data dict, will be using it while creating sql
data['schema'] = schema
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: [pgAdmin][patch] RM3409 - Retrieving SQL from table throws exception
In-Reply-To: <CANxYE3KVhNbpZneLDAcZ+TsRqPE9B9WDzvywVsLz1_dVudvMMA@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox