Hi Attached is the modified patch. I have fixed the similar code for Backup and Restore as well along with this patch.
On Thu, Jan 10, 2019 at 12:26 PM Dave Page <dp...@pgadmin.org> wrote: > Hi > > On Wed, Jan 9, 2019 at 6:46 PM Akshay Joshi <akshay.jo...@enterprisedb.com> > wrote: > >> Hi Hackers, >> >> Attached is the patch to fix RM #3836 VACUUM FULL FREEZE ANALYZE VERBOSE >> syntax error on PostgreSQL 11. Order of commands has been changed in >> PostgreSQL 11 "https://github.com/postgres/postgres >> /commit/921059bd66c7fb1230c705d3b1a65940800c4cbb" >> >> Please review it. >> > > I tried to test this, and got what looks like the same issue that we > looked at the other day with Import/Export. Can you look at it please? > > 2019-01-10 12:25:02,044: INFO werkzeug: 127.0.0.1 - - [10/Jan/2019 > 12:25:02] "POST /maintenance/job/2/12669 HTTP/1.1" 500 - > 2019-01-10 12:25:02,051: ERROR werkzeug: Error on request: > Traceback (most recent call last): > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", > line 270, in run_wsgi > execute(self.server.app) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", > line 258, in execute > application_iter = app(environ, start_response) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1997, in __call__ > return self.wsgi_app(environ, start_response) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1985, in wsgi_app > response = self.handle_exception(e) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1540, in handle_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/_compat.py", > line 33, in reraise > raise value > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1982, in wsgi_app > response = self.full_dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1614, in full_dispatch_request > rv = self.handle_user_exception(e) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1517, in handle_user_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/_compat.py", > line 33, in reraise > raise value > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1612, in full_dispatch_request > rv = self.dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1598, in dispatch_request > return self.view_functions[rule.endpoint](**req.view_args) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask_login.py", > line 792, in decorated_view > return func(*args, **kwargs) > File > "/Users/dpage/git/pgadmin4/web/pgadmin/tools/maintenance/__init__.py", line > 179, in create_maintenance_job > data = json.loads(data['data'][0], encoding='utf-8') > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/simplejson/__init__.py", > line 535, in loads > return cls(encoding=encoding, **kw).decode(s) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/simplejson/decoder.py", > line 370, in decode > obj, end = self.raw_decode(s) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/simplejson/decoder.py", > line 400, in raw_decode > return self.scan_once(s, idx=_w(s, idx).end()) > simplejson.errors.JSONDecodeError: Expecting property name enclosed in > double quotes or '}': line 1 column 2 (char 1) > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246*
diff --git a/web/pgadmin/tools/backup/__init__.py b/web/pgadmin/tools/backup/__init__.py index c55390db..60bfd5bf 100644 --- a/web/pgadmin/tools/backup/__init__.py +++ b/web/pgadmin/tools/backup/__init__.py @@ -276,9 +276,7 @@ def create_backup_objects_job(sid): None """ if request.form: - # Convert ImmutableDict to dict - data = dict(request.form) - data = json.loads(data['data'][0], encoding='utf-8') + data = json.loads(request.form['data'], encoding='utf-8') else: data = json.loads(request.data, encoding='utf-8') diff --git a/web/pgadmin/tools/maintenance/__init__.py b/web/pgadmin/tools/maintenance/__init__.py index 0e806d97..6ae0159e 100644 --- a/web/pgadmin/tools/maintenance/__init__.py +++ b/web/pgadmin/tools/maintenance/__init__.py @@ -174,9 +174,7 @@ def create_maintenance_job(sid, did): None """ if request.form: - # Convert ImmutableDict to dict - data = dict(request.form) - data = json.loads(data['data'][0], encoding='utf-8') + data = json.loads(request.form['data'], encoding='utf-8') else: data = json.loads(request.data, encoding='utf-8') diff --git a/web/pgadmin/tools/maintenance/templates/maintenance/sql/command.sql b/web/pgadmin/tools/maintenance/templates/maintenance/sql/command.sql index 5532d6cc..dfaab725 100644 --- a/web/pgadmin/tools/maintenance/templates/maintenance/sql/command.sql +++ b/web/pgadmin/tools/maintenance/templates/maintenance/sql/command.sql @@ -1,5 +1,5 @@ {% if data.op == "VACUUM" %} -VACUUM{% if data.vacuum_full %} FULL{% endif %}{% if data.vacuum_freeze %} FREEZE{% endif %}{% if data.vacuum_analyze %} ANALYZE{% endif %}{% if data.verbose %} VERBOSE{% endif %}{% if data.schema %} {{ conn|qtIdent(data.schema) }}.{{ conn|qtIdent(data.table) }}{% endif %}; +VACUUM{% if data.vacuum_full %} FULL{% endif %}{% if data.vacuum_freeze %} FREEZE{% endif %}{% if data.verbose %} VERBOSE{% endif %}{% if data.vacuum_analyze %} ANALYZE{% endif %}{% if data.schema %} {{ conn|qtIdent(data.schema) }}.{{ conn|qtIdent(data.table) }}{% endif %}; {% endif %} {% if data.op == "ANALYZE" %} ANALYZE{% if data.verbose %} VERBOSE{% endif %}{% if data.schema %} {{ conn|qtIdent(data.schema, data.table) }}{% endif %}; diff --git a/web/pgadmin/tools/restore/__init__.py b/web/pgadmin/tools/restore/__init__.py index 50eacc14..bcaf1da2 100644 --- a/web/pgadmin/tools/restore/__init__.py +++ b/web/pgadmin/tools/restore/__init__.py @@ -183,9 +183,7 @@ def create_restore_job(sid): None """ if request.form: - # Convert ImmutableDict to dict - data = dict(request.form) - data = json.loads(data['data'][0], encoding='utf-8') + data = json.loads(request.form['data'], encoding='utf-8') else: data = json.loads(request.data, encoding='utf-8')