public inbox for [email protected]  
help / color / mirror / Atom feed
PATCH: To fix the isssue where several default privileges cause error (pgAdmin4)
2+ messages / 2 participants
[nested] [flat]

* PATCH: To fix the isssue where several default privileges cause error (pgAdmin4)
@ 2016-09-16 11:17 Murtuza Zabuawala <[email protected]>
  2016-09-16 15:09 ` Re: PATCH: To fix the isssue where several default privileges cause error (pgAdmin4) Dave Page <[email protected]>
  0 siblings, 1 reply; 2+ messages in thread

From: Murtuza Zabuawala @ 2016-09-16 11:17 UTC (permalink / raw)
  To: pgadmin-hackers

Hi,


PFA patch to fix the issue where several default privileges cause error on
database.
RM#1670

*Issue:*
There were multiple rows returned by subquery that was the issue.

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers


Attachments:

  [application/octet-stream] RM_1670.patch (15.3K, 3-RM_1670.patch)
  download | inline diff:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/pg/9.1_plus/sql/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/pg/9.1_plus/sql/properties.sql
index 8c9d47a..7e18973 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/pg/9.1_plus/sql/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/pg/9.1_plus/sql/properties.sql
@@ -12,9 +12,24 @@ SELECT
     CASE
     WHEN nspname LIKE E'pg\\_%' THEN true
     ELSE false END AS is_sys_object,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'r' AND defaclnamespace = nsp.oid) AS tblacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'S' AND defaclnamespace = nsp.oid) AS seqacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'f' AND defaclnamespace = nsp.oid) AS funcacl,
+    {### Default ACL for Tables ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'r' AND defaclnamespace = nsp.oid
+    ), ', ')) AS tblacl,
+    {### Default ACL for Sequnces ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'S' AND defaclnamespace = nsp.oid
+    ), ', ')) AS seqacl,
+    {### Default ACL for Functions ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'f' AND defaclnamespace = nsp.oid
+    ), ', ')) AS funcacl,
     (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=nsp.oid) AS seclabels
 FROM
     pg_namespace nsp
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/pg/9.2_plus/sql/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/pg/9.2_plus/sql/properties.sql
index e46a630..3cb0572 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/pg/9.2_plus/sql/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/pg/9.2_plus/sql/properties.sql
@@ -12,10 +12,30 @@ SELECT
     CASE
     WHEN nspname LIKE E'pg\\_%' THEN true
     ELSE false END AS is_sys_object,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'r' AND defaclnamespace = nsp.oid) AS tblacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'S' AND defaclnamespace = nsp.oid) AS seqacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'f' AND defaclnamespace = nsp.oid) AS funcacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'T' AND defaclnamespace = nsp.oid) AS typeacl,
+    {### Default ACL for Tables ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'r' AND defaclnamespace = nsp.oid
+    ), ', ')) AS tblacl,
+    {### Default ACL for Sequnces ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'S' AND defaclnamespace = nsp.oid
+    ), ', ')) AS seqacl,
+    {### Default ACL for Functions ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'f' AND defaclnamespace = nsp.oid
+    ), ', ')) AS funcacl,
+    {### Default ACL for Type ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'T' AND defaclnamespace = nsp.oid
+    ), ', ')) AS typeacl,
     (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=nsp.oid) AS seclabels
 FROM
     pg_namespace nsp
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/ppas/9.1_plus/sql/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/ppas/9.1_plus/sql/properties.sql
index fcb31ce..f3e7a08 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/ppas/9.1_plus/sql/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/ppas/9.1_plus/sql/properties.sql
@@ -12,9 +12,24 @@ SELECT
     CASE
     WHEN nspname LIKE E'pg\\_%' THEN true
     ELSE false END AS is_sys_object,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'r' AND defaclnamespace = nsp.oid) AS tblacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'S' AND defaclnamespace = nsp.oid) AS seqacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'f' AND defaclnamespace = nsp.oid) AS funcacl
+    {### Default ACL for Tables ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'r' AND defaclnamespace = nsp.oid
+    ), ', ')) AS tblacl,
+    {### Default ACL for Sequnces ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'S' AND defaclnamespace = nsp.oid
+    ), ', ')) AS seqacl,
+    {### Default ACL for Functions ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'f' AND defaclnamespace = nsp.oid
+    ), ', ')) AS funcacl
 FROM
     pg_namespace nsp
     LEFT OUTER JOIN pg_description des ON
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/ppas/9.2_plus/sql/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/ppas/9.2_plus/sql/properties.sql
index 001b1ab..33dc16c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/ppas/9.2_plus/sql/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/ppas/9.2_plus/sql/properties.sql
@@ -12,10 +12,30 @@ SELECT
     CASE
     WHEN nspname LIKE E'pg\\_%' THEN true
     ELSE false END AS is_sys_object,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'r' AND defaclnamespace = nsp.oid) AS tblacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'S' AND defaclnamespace = nsp.oid) AS seqacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'f' AND defaclnamespace = nsp.oid) AS funcacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'T' AND defaclnamespace = nsp.oid) AS typeacl
+    {### Default ACL for Tables ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'r' AND defaclnamespace = nsp.oid
+    ), ', ')) AS tblacl,
+    {### Default ACL for Sequnces ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'S' AND defaclnamespace = nsp.oid
+    ), ', ')) AS seqacl,
+    {### Default ACL for Functions ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'f' AND defaclnamespace = nsp.oid
+    ), ', ')) AS funcacl,
+    {### Default ACL for Type ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'T' AND defaclnamespace = nsp.oid
+    ), ', ')) AS typeacl
 FROM
     pg_namespace nsp
     LEFT OUTER JOIN pg_description des ON
diff --git a/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.1_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.1_plus/properties.sql
index 34969d6..65711ce 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.1_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.1_plus/properties.sql
@@ -5,9 +5,24 @@ SELECT
     has_database_privilege(db.oid, 'CREATE') as cancreate,
     current_setting('default_tablespace') AS default_tablespace,
     descr.description as comments,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'r' AND defaclnamespace = 0::OID) AS tblacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'S' AND defaclnamespace = 0::OID) AS seqacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'f' AND defaclnamespace = 0::OID) AS funcacl,
+    {### Default ACL for Tables ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'r' AND defaclnamespace = 0::OID
+    ), ', ')) AS tblacl,
+    {### Default ACL for Sequnces ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'S' AND defaclnamespace = 0::OID
+    ), ', ')) AS seqacl,
+    {### Default ACL for Functions ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'f' AND defaclnamespace = 0::OID
+    ), ', ')) AS funcacl,
     array_to_string(datacl::text[], ', ') AS acl
 FROM pg_database db
     LEFT OUTER JOIN pg_tablespace ta ON db.dattablespace=ta.OID
diff --git a/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.2_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.2_plus/properties.sql
index 3c6a749..d519823 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.2_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.2_plus/properties.sql
@@ -5,10 +5,30 @@ SELECT
     has_database_privilege(db.oid, 'CREATE') as cancreate,
     current_setting('default_tablespace') AS default_tablespace,
     descr.description as comments,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'r' AND defaclnamespace = 0::OID) AS tblacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'S' AND defaclnamespace = 0::OID) AS seqacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'f' AND defaclnamespace = 0::OID) AS funcacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'T' AND defaclnamespace = 0::OID) AS typeacl,
+    {### Default ACL for Tables ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'r' AND defaclnamespace = 0::OID
+    ), ', ')) AS tblacl,
+    {### Default ACL for Sequnces ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'S' AND defaclnamespace = 0::OID
+    ), ', ')) AS seqacl,
+    {### Default ACL for Functions ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'f' AND defaclnamespace = 0::OID
+    ), ', ')) AS funcacl,
+    {### Default ACL for Type ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'T' AND defaclnamespace = 0::OID
+    ), ', ')) AS typeacl,
     (SELECT array_agg(provider || '=' || label) FROM pg_shseclabel sl1 WHERE sl1.objoid=db.oid) AS seclabels,
     array_to_string(datacl::text[], ', ') AS acl
 FROM pg_database db
@@ -22,4 +42,4 @@ db.datname = {{ name|qtLiteral }}::text{% else %}
 db.oid > {{ last_system_oid|qtLiteral }}::OID
 {% endif %}{% endif %}
 
-ORDER BY datname
+ORDER BY datname;
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.3_plus/properties.sql b/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.3_plus/properties.sql
index 3c6a749..d519823 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.3_plus/properties.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.3_plus/properties.sql
@@ -5,10 +5,30 @@ SELECT
     has_database_privilege(db.oid, 'CREATE') as cancreate,
     current_setting('default_tablespace') AS default_tablespace,
     descr.description as comments,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'r' AND defaclnamespace = 0::OID) AS tblacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'S' AND defaclnamespace = 0::OID) AS seqacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'f' AND defaclnamespace = 0::OID) AS funcacl,
-    (SELECT array_to_string(defaclacl::text[], ', ') FROM pg_default_acl WHERE defaclobjtype = 'T' AND defaclnamespace = 0::OID) AS typeacl,
+    {### Default ACL for Tables ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'r' AND defaclnamespace = 0::OID
+    ), ', ')) AS tblacl,
+    {### Default ACL for Sequnces ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'S' AND defaclnamespace = 0::OID
+    ), ', ')) AS seqacl,
+    {### Default ACL for Functions ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'f' AND defaclnamespace = 0::OID
+    ), ', ')) AS funcacl,
+    {### Default ACL for Type ###}
+    (SELECT array_to_string(ARRAY(
+        SELECT array_to_string(defaclacl::text[], ', ')
+            FROM pg_default_acl
+        WHERE defaclobjtype = 'T' AND defaclnamespace = 0::OID
+    ), ', ')) AS typeacl,
     (SELECT array_agg(provider || '=' || label) FROM pg_shseclabel sl1 WHERE sl1.objoid=db.oid) AS seclabels,
     array_to_string(datacl::text[], ', ') AS acl
 FROM pg_database db
@@ -22,4 +42,4 @@ db.datname = {{ name|qtLiteral }}::text{% else %}
 db.oid > {{ last_system_oid|qtLiteral }}::OID
 {% endif %}{% endif %}
 
-ORDER BY datname
+ORDER BY datname;
\ No newline at end of file


^ permalink  raw  reply  [nested|flat] 2+ messages in thread

* Re: PATCH: To fix the isssue where several default privileges cause error (pgAdmin4)
  2016-09-16 11:17 PATCH: To fix the isssue where several default privileges cause error (pgAdmin4) Murtuza Zabuawala <[email protected]>
@ 2016-09-16 15:09 ` Dave Page <[email protected]>
  0 siblings, 0 replies; 2+ messages in thread

From: Dave Page @ 2016-09-16 15:09 UTC (permalink / raw)
  To: Murtuza Zabuawala <[email protected]>; +Cc: pgadmin-hackers

Thanks, applied.

On Fri, Sep 16, 2016 at 12:17 PM, Murtuza Zabuawala
<[email protected]> wrote:
> Hi,
>
>
> PFA patch to fix the issue where several default privileges cause error on
> database.
> RM#1670
>
> Issue:
> There were multiple rows returned by subquery that was the issue.
>
> --
> Regards,
> Murtuza Zabuawala
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>
> --
> Sent via pgadmin-hackers mailing list ([email protected])
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadmin-hackers
>



-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers




^ permalink  raw  reply  [nested|flat] 2+ messages in thread


end of thread, other threads:[~2016-09-16 15:09 UTC | newest]

Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2016-09-16 11:17 PATCH: To fix the isssue where several default privileges cause error (pgAdmin4) Murtuza Zabuawala <[email protected]>
2016-09-16 15:09 ` Dave Page <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox