Hi, PFA updated patch. Linter issues are fixed ( we dont have any linter setup for python :-( ) Regarding test cases, they run successfully on my system and the reason it failed for pivotal is timeout exception. I am sorry I can't help with that.
Traceback (most recent call last): File "/tmp/build/a453582b/pgadmin-repo/web/pgadmin/feature_tests/keyboard_shortcut_test.py", line 52, in runTest self._check_shortcuts() File "/tmp/build/a453582b/pgadmin-repo/web/pgadmin/feature_tests/keyboard_shortcut_test.py", line 77, in _check_shortcuts ") and contains(@class, 'open')]") File "/root/.pyenv/versions/pgadmin36/lib/python3.6/site-packages/selenium/webdriver/support/wait.py", line 80, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" On Tue, May 22, 2018 at 1:37 PM, Dave Page <dp...@pgadmin.org> wrote: > Hi > > Pivotal's buildbot is showing problems with this patch: > > https://gpdb-dev.bosh.pivotalci.info/teams/pgadmin/ > pipelines/pgadmin-patch/jobs/run-linter/builds/66 (linter failed) > https://gpdb-dev.bosh.pivotalci.info/teams/pgadmin/ > pipelines/pgadmin-patch/jobs/run-tests/builds/84 (tests failed) > > > On Tue, May 22, 2018 at 7:05 AM, Aditya Toshniwal <aditya.toshniwal@ > enterprisedb.com> wrote: > >> Hi Hackers, >> >> PFA patch for RM#3289 where decode error was thrown on querying a >> SQL_ASCII database table. Please note, this problem occurs only on windows. >> Sample insert - insert into test_tab values ('é'); >> >> psycopg2 has a encodings dictionary where Postgres Database Encodings are >> mapped to python equivalent. It uses 'ascii' decoder of python to decode >> for SQL_ASCII encoding. If data has characters beyond the limit of ascii >> then it failed. The solution would be to use utf_8 decoder instead of >> ascii. I tried setting the client_encoding using >> set_client_encoding('UTF8') method of a psycopg2 connection but no luck >> (also its not allowed for async connection). I also tried executing "SET >> CLIENT_ENCODING='UTF8'" but it didn't work too. >> So, as in the patch, I had to set encodings dict value directly to >> 'utf_8' and it seems to be working. Please note, the same is added to >> psycopg3 milestones >> https://github.com/psycopg/psycopg2/milestone/4 >> >> Also fixed a small glitch for sql editor connection status check. >> >> Kindly review. >> >> Thanks and Regards, >> Aditya Toshniwal >> Software Engineer | EnterpriseDB Software Solutions | Pune >> "Don't Complain about Heat, Plant a tree" >> > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company >
diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py index c72505a..fa8b83f 100644 --- a/web/pgadmin/tools/sqleditor/__init__.py +++ b/web/pgadmin/tools/sqleditor/__init__.py @@ -1474,7 +1474,8 @@ def query_tool_status(trans_id): errormsg=error_msg ) - if conn and trans_obj and session_obj: + if conn and trans_obj and session_obj \ + and conn.transaction_status() is not None: status = conn.transaction_status() return make_json_response( data={ diff --git a/web/pgadmin/utils/driver/psycopg2/connection.py b/web/pgadmin/utils/driver/psycopg2/connection.py index 315631c..8ca30b3 100644 --- a/web/pgadmin/utils/driver/psycopg2/connection.py +++ b/web/pgadmin/utils/driver/psycopg2/connection.py @@ -49,6 +49,10 @@ else: _ = gettext +# Use utf_8 decoder instead of psycopg2 default ascii for +# SQL_ASCII database to avoid decode errors +encodings['SQL_ASCII'] = 'utf_8' +encodings['SQLASCII'] = 'utf_8' # Register global type caster which will be applicable to all connections. register_global_typecasters()