Hi, PFA patch to fix the issue where system level catalog are also displayed in PPAS server under relation of create new table like option. RM#1530
-- Regards, Murtuza Zabuawala EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py index 8bda490..0d29ab3 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py @@ -277,7 +277,7 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings): self.qtIdent = driver.qtIdent # We need datlastsysoid to check if current table is system table self.datlastsysoid = self.manager.db_info[kwargs['did']]['datlastsysoid'] - + self.server_type = self.manager.server_type # If DB not connected then return error to browser if not self.conn.connected(): return precondition_required( @@ -285,10 +285,6 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings): "Connection to the server has been lost!" ) ) - - # We need datlastsysoid to check if current index is system index - self.datlastsysoid = self.manager.db_info[kwargs['did']]['datlastsysoid'] - # we will set template path for sql scripts ver = self.manager.version # Template for Column node @@ -1196,7 +1192,9 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings): res = [{'label': '', 'value': ''}] try: SQL = render_template("/".join([self.template_path, - 'get_oftype.sql']), scid=scid) + 'get_oftype.sql']), scid=scid, + server_type=self.server_type, + show_sys_objects=self.blueprint.show_system_objects) status, rset = self.conn.execute_2darray(SQL) if not status: return internal_server_error(errormsg=res) @@ -1225,7 +1223,8 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings): res = [] SQL = render_template("/".join([self.template_path, 'get_inherits.sql']), show_system_objects=self.blueprint.show_system_objects, - tid=tid) + tid=tid, + server_type=self.server_type) status, rset = self.conn.execute_2darray(SQL) if not status: return internal_server_error(errormsg=res) @@ -1253,7 +1252,8 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings): res = [{'label': '', 'value': ''}] try: SQL = render_template("/".join([self.template_path, 'get_relations.sql']), - show_sys_objects=self.blueprint.show_system_objects) + show_sys_objects=self.blueprint.show_system_objects, + server_type=self.server_type) status, rset = self.conn.execute_2darray(SQL) if not status: return internal_server_error(errormsg=res) diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_inherits.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_inherits.sql index 6b2560d..20e6c34 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_inherits.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_inherits.sql @@ -1,3 +1,4 @@ +{% import 'table/sql/macros/db_catalogs.macro' as CATALOG %} SELECT c.oid, c.relname , nspname, CASE WHEN nspname NOT LIKE E'pg\_%' THEN quote_ident(nspname)||'.'||quote_ident(c.relname) @@ -8,7 +9,7 @@ JOIN pg_namespace n ON n.oid=c.relnamespace WHERE relkind='r' {% if not show_system_objects %} -AND (n.nspname NOT LIKE E'pg\_%' AND n.nspname NOT in ('information_schema')) +{{ CATALOG.VALID_CATALOGS(server_type) }} {% endif %} {% if tid %} AND c.oid != tid diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_oftype.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_oftype.sql index c5cedeb..5734935 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_oftype.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_oftype.sql @@ -1,6 +1,9 @@ +{% import 'table/sql/macros/db_catalogs.macro' as CATALOG %} SELECT c.oid, quote_ident(n.nspname)||'.'||quote_ident(c.relname) AS typname FROM pg_namespace n, pg_class c WHERE c.relkind = 'c' AND c.relnamespace=n.oid - AND NOT (n.nspname like 'pg_%' OR n.nspname='information_schema') +{% if not show_system_objects %} +{{ CATALOG.VALID_CATALOGS(server_type) }} +{% endif %} ORDER BY typname; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_relations.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_relations.sql index a9c11ae..20687fa 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_relations.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.1_plus/get_relations.sql @@ -1,9 +1,9 @@ +{% import 'table/sql/macros/db_catalogs.macro' as CATALOG %} SELECT c.oid, quote_ident(n.nspname)||'.'||quote_ident(c.relname) AS like_relation FROM pg_class c, pg_namespace n WHERE c.relnamespace=n.oid AND c.relkind IN ('r', 'v', 'f') {% if not show_sys_objects %} - AND n.nspname NOT LIKE E'pg\\_%' - AND n.nspname NOT in ('information_schema', 'sys') +{{ CATALOG.VALID_CATALOGS(server_type) }} {% endif %} ORDER BY 1; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_inherits.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_inherits.sql index 6b2560d..20e6c34 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_inherits.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_inherits.sql @@ -1,3 +1,4 @@ +{% import 'table/sql/macros/db_catalogs.macro' as CATALOG %} SELECT c.oid, c.relname , nspname, CASE WHEN nspname NOT LIKE E'pg\_%' THEN quote_ident(nspname)||'.'||quote_ident(c.relname) @@ -8,7 +9,7 @@ JOIN pg_namespace n ON n.oid=c.relnamespace WHERE relkind='r' {% if not show_system_objects %} -AND (n.nspname NOT LIKE E'pg\_%' AND n.nspname NOT in ('information_schema')) +{{ CATALOG.VALID_CATALOGS(server_type) }} {% endif %} {% if tid %} AND c.oid != tid diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_oftype.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_oftype.sql index c5cedeb..5734935 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_oftype.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_oftype.sql @@ -1,6 +1,9 @@ +{% import 'table/sql/macros/db_catalogs.macro' as CATALOG %} SELECT c.oid, quote_ident(n.nspname)||'.'||quote_ident(c.relname) AS typname FROM pg_namespace n, pg_class c WHERE c.relkind = 'c' AND c.relnamespace=n.oid - AND NOT (n.nspname like 'pg_%' OR n.nspname='information_schema') +{% if not show_system_objects %} +{{ CATALOG.VALID_CATALOGS(server_type) }} +{% endif %} ORDER BY typname; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_relations.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_relations.sql index a9c11ae..20687fa 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_relations.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/9.5_plus/get_relations.sql @@ -1,9 +1,9 @@ +{% import 'table/sql/macros/db_catalogs.macro' as CATALOG %} SELECT c.oid, quote_ident(n.nspname)||'.'||quote_ident(c.relname) AS like_relation FROM pg_class c, pg_namespace n WHERE c.relnamespace=n.oid AND c.relkind IN ('r', 'v', 'f') {% if not show_sys_objects %} - AND n.nspname NOT LIKE E'pg\\_%' - AND n.nspname NOT in ('information_schema', 'sys') +{{ CATALOG.VALID_CATALOGS(server_type) }} {% endif %} ORDER BY 1; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/macros/db_catalogs.macro b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/macros/db_catalogs.macro new file mode 100644 index 0000000..a97d37d --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/sql/macros/db_catalogs.macro @@ -0,0 +1,5 @@ +{% macro VALID_CATALOGS(server_type) -%} +AND n.nspname NOT LIKE E'pg\_%' {% if server_type == 'ppas' %} +AND n.nspname NOT IN ('information_schema', 'pgagent', 'dbo', 'sys') {% else %} +AND n.nspname NOT IN ('information_schema') {% endif %} +{%- endmacro %} \ No newline at end of file
-- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers