public inbox for [email protected]
help / color / mirror / Atom feed[pgAdmin] RM6128 RM6084 datistemplate issue
2+ messages / 2 participants
[nested] [flat]
* [pgAdmin] RM6128 RM6084 datistemplate issue
@ 2021-01-11 09:12 Rahul Shirsat <[email protected]>
2021-01-11 12:11 ` Re: [pgAdmin] RM6128 RM6084 datistemplate issue Akshay Joshi <[email protected]>
0 siblings, 1 reply; 2+ messages in thread
From: Rahul Shirsat @ 2021-01-11 09:12 UTC (permalink / raw)
To: pgadmin-hackers
Hi Hackers,
Please find the attached patch below which resolves the issue of
datistemplate.
--
*Rahul Shirsat*
Senior Software Engineer | EnterpriseDB Corporation.
Attachments:
[application/octet-stream] RM6128_RM6084.patch (38.4K, 3-RM6128_RM6084.patch)
download | inline diff:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py
index 92bdd816e..b4f4ca450 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py
@@ -216,6 +216,15 @@ class CastView(PGChildNodeView, SchemaDiffObjectCompare):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
+
return f(*args, **kwargs)
return wrap
diff --git a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py
index 4ec41bc1e..cc1660208 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py
@@ -201,10 +201,14 @@ class EventTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate']\
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
return f(*args, **kwargs)
diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py
index 698459ade..79859d565 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py
@@ -143,10 +143,14 @@ class ExtensionView(PGChildNodeView, SchemaDiffObjectCompare):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
return f(*args, **kwargs)
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py
index bf6f84770..c994b40ba 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py
@@ -222,10 +222,14 @@ class ForeignDataWrapperView(PGChildNodeView, SchemaDiffObjectCompare):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
self.template_path = 'foreign_data_wrappers/sql/#{0}#'.format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py
index 052f38bbb..0e95fa136 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/__init__.py
@@ -212,10 +212,14 @@ class ForeignServerView(PGChildNodeView, SchemaDiffObjectCompare):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
self.template_path = "foreign_servers/sql/#{0}#".format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/__init__.py
index 485070c9d..676665c10 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/foreign_servers/user_mappings/__init__.py
@@ -229,10 +229,14 @@ class UserMappingView(PGChildNodeView, SchemaDiffObjectCompare):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
self.template_path = 'user_mappings/sql/#{0}#'.format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py
index 60eab02a2..7b74535ac 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py
@@ -234,10 +234,15 @@ class LanguageView(PGChildNodeView, SchemaDiffObjectCompare):
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
self.template_path = (
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py
index fd6f2000b..5036a2ad0 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py
@@ -145,11 +145,14 @@ def check_precondition(f):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info and \
- 'datistemplate' in self.manager.db_info[kwargs['did']] else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
if self.manager.server_type == 'gpdb':
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/__init__.py
index 4c3019cb9..8376f4392 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/__init__.py
@@ -151,10 +151,14 @@ class CatalogObjectView(PGChildNodeView):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
self.template_path = 'catalog_object/sql/{0}/#{1}#'.format(
'ppas' if self.manager.server_type == 'ppas' else 'pg',
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/columns/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/columns/__init__.py
index 071b0330d..a2faa542c 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/columns/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/columns/__init__.py
@@ -178,10 +178,14 @@ class CatalogObjectColumnsView(PGChildNodeView):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
self.template_path = 'catalog_object_column/sql/#{0}#'.format(
self.manager.version)
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py
index 18f567c1f..f101a1e3f 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/__init__.py
@@ -198,10 +198,14 @@ class CollationView(PGChildNodeView, SchemaDiffObjectCompare):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
self.template_path = compile_template_path(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py
index 015568fb1..0832cc938 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/__init__.py
@@ -288,6 +288,15 @@ class DomainView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
+
# we will set template path for sql scripts
self.template_path = compile_template_path(
'domains/sql/',
@@ -450,7 +459,8 @@ It may have been removed by another user or moved to another schema.
# Set System Domain Status
data['sysdomain'] = False
- if doid <= self.manager.db_info[did]['datlastsysoid']:
+ if doid <= self.manager.db_info[did]['datlastsysoid'] or \
+ self.datistemplate:
data['sysdomain'] = True
return True, data
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py
index 2b4702f62..d3b2ef3d7 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py
@@ -265,10 +265,14 @@ class DomainConstraintView(PGChildNodeView):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
self.template_path = 'domain_constraints/sql/#{0}#'.format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py
index 6df2e83d1..11d3a3db5 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py
@@ -344,10 +344,14 @@ class ForeignTableView(PGChildNodeView, DataTypeReader,
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set template path for sql scripts depending
# on the server version.
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py
index 690d40cd7..8395bd0c6 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/__init__.py
@@ -232,10 +232,14 @@ class FtsConfigurationView(PGChildNodeView, SchemaDiffObjectCompare):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
self.template_path = 'fts_configurations/sql/#{0}#'.format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py
index cbe587b6d..0059529ac 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/__init__.py
@@ -220,10 +220,15 @@ class FtsDictionaryView(PGChildNodeView, SchemaDiffObjectCompare):
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
self.template_path = 'fts_dictionaries/sql/#{0}#'.format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parsers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parsers/__init__.py
index cf129d755..5bef11af3 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parsers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parsers/__init__.py
@@ -234,10 +234,15 @@ class FtsParserView(PGChildNodeView, SchemaDiffObjectCompare):
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# Set the template path for the SQL scripts
self.template_path = 'fts_parsers/sql/#{0}#'.format(
self.manager.version)
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py
index 904e5e226..7715cf1a7 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/__init__.py
@@ -214,10 +214,15 @@ class FtsTemplateView(PGChildNodeView, SchemaDiffObjectCompare):
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
self.template_path = 'fts_templates/sql/#{0}#'.format(
self.manager.version)
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py
index 328da8a66..4bc05b8fd 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py
@@ -142,10 +142,14 @@ class SequenceView(PGChildNodeView, SchemaDiffObjectCompare):
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
self.template_path = 'sequences/sql/#{0}#'.format(
self.manager.version
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py
index 670234efa..cdfaf6555 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py
@@ -210,10 +210,14 @@ class SynonymView(PGChildNodeView, SchemaDiffObjectCompare):
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
- self.datistemplate = \
- self.manager.db_info[kwargs['did']]['datistemplate'] \
- if self.manager.db_info is not None and \
- kwargs['did'] in self.manager.db_info else False
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
# we will set template path for sql scripts
self.template_path = 'synonyms/sql/#{0}#'.format(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py
index 6961a018a..b190cfae3 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/compound_triggers/__init__.py
@@ -273,6 +273,15 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
]['datlastsysoid'] if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
+
self.table_template_path = compile_template_path(
'tables/sql',
self.manager.server_type,
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py
index dd6d9320a..2692bc026 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/check_constraint/__init__.py
@@ -201,6 +201,15 @@ class CheckConstraintView(PGChildNodeView):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
+
# Set the template path for the SQL scripts
self.template_path = self.CHECK_CONSTRAINT_PATH.format(
self.manager.version)
@@ -440,7 +449,7 @@ class CheckConstraintView(PGChildNodeView):
if cid:
result = res[0]
result['is_sys_obj'] = (
- result['oid'] <= self.datlastsysoid)
+ result['oid'] <= self.datlastsysoid or self.datistemplate)
return ajax_response(
response=result,
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py
index 54895ae65..23dedda8e 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/exclusion_constraint/__init__.py
@@ -227,6 +227,15 @@ class ExclusionConstraintView(PGChildNodeView):
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
+
self.template_path = self.EXCLUSION_CONSTRAINT_PATH.format(
self.manager.version)
@@ -276,7 +285,7 @@ class ExclusionConstraintView(PGChildNodeView):
if exid:
result = res[0]
result['is_sys_obj'] = (
- result['oid'] <= self.datlastsysoid)
+ result['oid'] <= self.datlastsysoid or self.datistemplate)
return ajax_response(
response=result,
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py
index 373dca3cf..48a722f2f 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py
@@ -233,6 +233,16 @@ class ForeignKeyConstraintView(PGChildNodeView):
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
+
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
+
self.template_path = self.FOREIGN_KEY_PATH.format(
self.manager.version)
@@ -278,7 +288,7 @@ class ForeignKeyConstraintView(PGChildNodeView):
if fkid:
result = res[0]
result['is_sys_obj'] = (
- result['oid'] <= self.datlastsysoid)
+ result['oid'] <= self.datlastsysoid or self.datistemplate)
return ajax_response(
response=result,
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
index 065303161..0eb50597e 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
@@ -246,6 +246,16 @@ class IndexConstraintView(PGChildNodeView):
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
if self.manager.db_info is not None and \
kwargs['did'] in self.manager.db_info else 0
+
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ kwargs['did'] in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[kwargs['did']]
+ ):
+ self.datistemplate = self.manager.db_info[
+ kwargs['did']]['datistemplate']
+
self.template_path = self.INDEX_CONSTRAINT_PATH.format(
self.manager.version)
@@ -294,7 +304,7 @@ class IndexConstraintView(PGChildNodeView):
if cid:
result = res[0]
result['is_sys_obj'] = (
- result['oid'] <= self.datlastsysoid)
+ result['oid'] <= self.datlastsysoid or self.datistemplate)
return ajax_response(
response=result,
diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py b/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py
index 1bbbf2f6f..243905bfd 100644
--- a/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/resource_groups/__init__.py
@@ -223,6 +223,15 @@ class ResourceGroupView(NodeView):
if self.manager.db_info is not None and \
self.manager.did in self.manager.db_info else 0
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ self.manager.did in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[self.manager.did]
+ ):
+ self.datistemplate = self.manager.db_info[
+ self.manager.did]['datistemplate']
+
if not self.conn.connected():
return precondition_required(
gettext(
@@ -340,7 +349,7 @@ class ResourceGroupView(NodeView):
return gone(gettext("""Could not find the resource group."""))
res['rows'][0]['is_sys_obj'] = (
- res['rows'][0]['oid'] <= self.datlastsysoid)
+ res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
return ajax_response(
response=res['rows'][0],
diff --git a/web/pgadmin/browser/server_groups/servers/roles/__init__.py b/web/pgadmin/browser/server_groups/servers/roles/__init__.py
index d81dd82c2..3fbdd8d48 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/roles/__init__.py
@@ -578,6 +578,14 @@ rolmembership:{
self.manager.db_info[self.manager.did]['datlastsysoid'] \
if self.manager.db_info is not None and \
self.manager.did in self.manager.db_info else 0
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ self.manager.did in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[self.manager.did]
+ ):
+ self.datistemplate = self.manager.db_info[
+ self.manager.did]['datistemplate']
self.sql_path = 'roles/sql/#{0}#'.format(self.manager.version)
@@ -727,7 +735,7 @@ rolmembership:{
return gone(self.not_found_error_msg())
res['rows'][0]['is_sys_obj'] = (
- res['rows'][0]['oid'] <= self.datlastsysoid)
+ res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
return ajax_response(
response=res['rows'][0],
diff --git a/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py b/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py
index 4fc09a0f2..56648dadb 100644
--- a/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py
@@ -111,6 +111,14 @@ class TablespaceView(PGChildNodeView):
self.manager.db_info[self.manager.did]['datlastsysoid'] \
if self.manager.db_info is not None and \
self.manager.did in self.manager.db_info else 0
+ self.datistemplate = False
+ if (
+ self.manager.db_info is not None and
+ self.manager.did in self.manager.db_info and
+ 'datistemplate' in self.manager.db_info[self.manager.did]
+ ):
+ self.datistemplate = self.manager.db_info[
+ self.manager.did]['datistemplate']
# If DB not connected then return error to browser
if not self.conn.connected():
@@ -268,7 +276,7 @@ class TablespaceView(PGChildNodeView):
# Making copy of output for future use
copy_data = dict(res['rows'][0])
copy_data['is_sys_obj'] = (
- copy_data['oid'] <= self.datlastsysoid)
+ copy_data['oid'] <= self.datlastsysoid or self.datistemplate)
copy_data = self._formatter(copy_data, tsid)
return ajax_response(
diff --git a/web/pgadmin/utils/driver/psycopg2/server_manager.py b/web/pgadmin/utils/driver/psycopg2/server_manager.py
index 008047e43..7ca3acb62 100644
--- a/web/pgadmin/utils/driver/psycopg2/server_manager.py
+++ b/web/pgadmin/utils/driver/psycopg2/server_manager.py
@@ -207,7 +207,8 @@ class ServerManager(object):
SELECT
db.oid as did, db.datname, db.datallowconn,
pg_encoding_to_char(db.encoding) AS serverencoding,
- has_database_privilege(db.oid, 'CREATE') as cancreate, datlastsysoid
+ has_database_privilege(db.oid, 'CREATE') as cancreate, datlastsysoid,
+ datistemplate
FROM
pg_database db
WHERE db.oid = {0}""".format(did))
^ permalink raw reply [nested|flat] 2+ messages in thread
* Re: [pgAdmin] RM6128 RM6084 datistemplate issue
2021-01-11 09:12 [pgAdmin] RM6128 RM6084 datistemplate issue Rahul Shirsat <[email protected]>
@ 2021-01-11 12:11 ` Akshay Joshi <[email protected]>
0 siblings, 0 replies; 2+ messages in thread
From: Akshay Joshi @ 2021-01-11 12:11 UTC (permalink / raw)
To: Rahul Shirsat <[email protected]>; +Cc: pgadmin-hackers
Thanks, patch applied.
On Mon, Jan 11, 2021 at 2:43 PM Rahul Shirsat <
[email protected]> wrote:
> Hi Hackers,
>
> Please find the attached patch below which resolves the issue of
> datistemplate.
>
> --
> *Rahul Shirsat*
> Senior Software Engineer | EnterpriseDB Corporation.
>
--
*Thanks & Regards*
*Akshay Joshi*
*pgAdmin Hacker | Principal Software Architect*
*EDB Postgres <http://edbpostgres.com>*
*Mobile: +91 976-788-8246*
^ permalink raw reply [nested|flat] 2+ messages in thread
end of thread, other threads:[~2021-01-11 12:11 UTC | newest]
Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2021-01-11 09:12 [pgAdmin] RM6128 RM6084 datistemplate issue Rahul Shirsat <[email protected]>
2021-01-11 12:11 ` Akshay Joshi <[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