File 0001-Data-should-be-updated-properly-for-FTS-Configurations-etc.patch of Package pgadmin4.16330
From c7cbe0ff4a03d2b076b53dcda6e8dc1632fd3c1f Mon Sep 17 00:00:00 2001
From: Akshay Joshi <akshay.joshi@enterprisedb.com>
Date: Mon, 21 Jan 2019 14:36:39 +0530
Subject: [PATCH] Data should be updated properly for FTS Configurations, FTS
Dictionaries, FTS Parsers and FTS Templates. Fixes #3897
---
docs/en_US/release_notes_4_2.rst | 3 ++-
.../databases/schemas/fts_configurations/__init__.py | 4 +++-
.../databases/schemas/fts_dictionaries/__init__.py | 2 ++
.../servers/databases/schemas/fts_parser/__init__.py | 11 +++++++++--
.../databases/schemas/fts_templates/__init__.py | 12 ++++++++++--
5 files changed, 26 insertions(+), 6 deletions(-)
#diff --git a/docs/en_US/release_notes_4_2.rst b/docs/en_US/release_notes_4_2.rst
#index 90986e9c1..9a37b004e 100644
#--- a/docs/en_US/release_notes_4_2.rst
#+++ b/docs/en_US/release_notes_4_2.rst
#@@ -23,4 +23,5 @@ Bug fixes
# | `Bug #3837 <https://redmine.postgresql.org/issues/3837>`_ - Fixed SQL for when clause while creating Trigger.
# | `Bug #3838 <https://redmine.postgresql.org/issues/3838>`_ - Proper SQL should be generated when creating/changing column with custom type argument.
# | `Bug #3846 <https://redmine.postgresql.org/issues/3846>`_ - Proper SQL should be generated when create procedure with custom type arguments.
#-| `Bug #3891 <https://redmine.postgresql.org/issues/3891>`_ - Correct order of Save and Cancel button for json/jsonb editing.
#\ No newline at end of file
#+| `Bug #3891 <https://redmine.postgresql.org/issues/3891>`_ - Correct order of Save and Cancel button for json/jsonb editing.
#+| `Bug #3897 <https://redmine.postgresql.org/issues/3897>`_ - Data should be updated properly for FTS Configurations, FTS Dictionaries, FTS Parsers and FTS Templates.
#\ No newline at end of file
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 c3e5390db..685587661 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
@@ -509,7 +509,7 @@ def update(self, gid, sid, did, scid, cfgid):
sql = render_template(
"/".join([self.template_path, 'nodes.sql']),
cfgid=cfgid,
- scid=data['schema'] if 'scheam' in data else scid
+ scid=data['schema'] if 'schema' in data else scid
)
status, res = self.conn.execute_dict(sql)
@@ -655,6 +655,8 @@ def get_sql(self, gid, sid, did, scid, data, cfgid=None):
return gone(_("Could not find the FTS Configuration node."))
old_data = res['rows'][0]
+ if 'schema' not in data:
+ data['schema'] = old_data['schema']
# If user has changed the schema then fetch new schema directly
# using its oid otherwise fetch old schema name using its oid
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 4a50788f3..0d8bc2156 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
@@ -651,6 +651,8 @@ def get_sql(self, gid, sid, did, scid, data, dcid=None):
return gone(_("Could not find the FTS Dictionary node."))
old_data = res['rows'][0]
+ if 'schema' not in data:
+ data['schema'] = old_data['schema']
# Handle templates and its schema name properly
if old_data['template_schema'] is not None:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py
index fbd942841..281a77d38 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/__init__.py
@@ -530,8 +530,13 @@ def msql(self, gid, sid, did, scid, pid=None):
:param scid: schema id
:param pid: fts tempate id
"""
- data = request.args
- # Fetch sql query for modified data
+ # data = request.args
+ data = {}
+ for k, v in request.args.items():
+ try:
+ data[k] = json.loads(v, encoding='utf-8')
+ except ValueError:
+ data[k] = v
# Fetch sql query for modified data
SQL, name = self.get_sql(gid, sid, did, scid, data, pid)
@@ -572,6 +577,8 @@ def get_sql(self, gid, sid, did, scid, data, pid=None):
return gone(_("Could not find the FTS Parser node."))
old_data = res['rows'][0]
+ if 'schema' not in data:
+ data['schema'] = old_data['schema']
# If user has changed the schema then fetch new schema directly
# using its oid otherwise fetch old schema name with parser oid
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 7d9a38b35..feb590d2c 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
@@ -502,9 +502,15 @@ def msql(self, gid, sid, did, scid, tid=None):
:param scid: schema id
:param tid: fts tempate id
"""
- data = request.args
- # Fetch sql query for modified data
+ # data = request.args
+ data = {}
+ for k, v in request.args.items():
+ try:
+ data[k] = json.loads(v, encoding='utf-8')
+ except ValueError:
+ data[k] = v
+
# Fetch sql query for modified data
SQL, name = self.get_sql(gid, sid, did, scid, data, tid)
# Most probably this is due to error
@@ -546,6 +552,8 @@ def get_sql(self, gid, sid, did, scid, data, tid=None):
)
old_data = res['rows'][0]
+ if 'schema' not in data:
+ data['schema'] = old_data['schema']
# If user has changed the schema then fetch new schema directly
# using its oid otherwise fetch old schema name using