Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fNvC2-0005fF-SH for pgadmin-hackers@arkaria.postgresql.org; Wed, 30 May 2018 07:06:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fNvC0-0006Hl-AL for pgadmin-hackers@arkaria.postgresql.org; Wed, 30 May 2018 07:06:44 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fNvBz-0006Hb-KQ for pgadmin-hackers@lists.postgresql.org; Wed, 30 May 2018 07:06:44 +0000 Received: from mail-lf0-x232.google.com ([2a00:1450:4010:c07::232]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fNvBq-0004WN-VB for pgadmin-hackers@postgresql.org; Wed, 30 May 2018 07:06:41 +0000 Received: by mail-lf0-x232.google.com with SMTP id u4-v6so2593192lff.3 for ; Wed, 30 May 2018 00:06:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=45LhJjojrYNUG2eQf3V/UViO5L0zWx+4auJU3tbX/6o=; b=TVEP4/rr8Iy19cXz3sRG7pnky6JJtXnk5lOy8kHQEakmH7oW/SuPy4zQXHlZrPmhUF ovxYOYsnw8bQkUAzbX4950v18MCCCeu1a+M/JNylgNYsjqyWYNNEEjOfJXdRrkZe37fu nzti7I5CO8BqJ7BH5sXLuPBt1ydszJVxBoSwsDk5bVrDuhTlmGB0ZH+oMZi4pq6CvM7g SXcBPNrjig8O1iuW3nGxNykvKUup0dVXXfVwsDb2N0Yvly1lvhdlbm9Ypqkj3moTujQa uE8xshM81Pt1tEgwMzULi5CHOAxVLSBBK25WqVWSVM10GFJocBgT2oroKH3UU26jNSVR aRDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=45LhJjojrYNUG2eQf3V/UViO5L0zWx+4auJU3tbX/6o=; b=LdhoWzcbtonjPF4ti8tBGhSN1+N59WpieuLc3ziRqO685aakGE8Rm9kISilVjXKYXf cTUq2tNkdvIIzWYEjJrrT4WtJey1Uy1s/fEYr2kY1tLHbOC3447f5eNR+Z2B1Et01Ru5 G918FGqRvgIzTOjabN97xAr3RItKiDktaX0TisLA5PPMexjEFItutUZKMwY4D9erVHY+ O/E+kxH3IKs9iZC1zvegBQ3gZolwr+nHrkaloke9aQY2GUsVGAkKM5iM24BUcYJhMjsv xpZh3WAcPoAH3e2Q2ecAOMcJz58MGXk+50TVwlB6jZ9PGsY13Ioe54+d9o+gk0QM9025 /fcg== X-Gm-Message-State: ALKqPwccqpNDNI9iny8c+KxZdp4BasyRLlcXRb1SYLB0yITPdokdvGKW rZSZ8quyzi0I3Roe54Ns11bNWZZ/l4OwmNSW27vnWneL X-Google-Smtp-Source: ADUXVKIzBgJxVHHY2P/HOuor3DUxtYlkFcPPWXiLfmlQtU/FzRuRo59piaMV6VPog2tpdPCKTVUYsDlaJh83fnuYIYE= X-Received: by 2002:a19:7:: with SMTP id 7-v6mr958040lfa.62.1527663992662; Wed, 30 May 2018 00:06:32 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:9e8a:0:0:0:0:0 with HTTP; Wed, 30 May 2018 00:06:32 -0700 (PDT) In-Reply-To: References: From: Aditya Toshniwal Date: Wed, 30 May 2018 12:36:32 +0530 Message-ID: Subject: Re: [pgAdmin4][RM#3289] Can't query SQL_ASCII database. To: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000009ead07056d66fd69" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000009ead07056d66fd69 Content-Type: multipart/related; boundary="0000000000009ead05056d66fd68" --0000000000009ead05056d66fd68 Content-Type: multipart/alternative; boundary="0000000000009ead02056d66fd67" --0000000000009ead02056d66fd67 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Hackers, PFA updated patch after all the permutations, combinations for encoding for SQL_ASCII database. Also fixed a small glitch for sql editor connection status check. Please note, ERROR: invalid byte sequence for encoding "UTF8": 0xe9 0x73 is a Postgres DB error and not pgAdmin4 error. You need to change client_encoding to the appropriate. After changing client_encoding using command - set client_encoding=3D'XYZ', it will give n= ot give error. Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" On Wed, May 23, 2018 at 10:13 AM, Aditya Toshniwal < aditya.toshniwal@enterprisedb.com> wrote: > Thank you Victoria, Anthony. > > 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 7:15 PM, Victoria Henry wrote= : > >> Hi Aditya, >> >> We made a minor change to make the patch so the python linter can pass. >> Attached is the change we made. >> Everything else looks good. >> >> Sincerely, >> >> Victoria & Anthony >> >> On Tue, May 22, 2018 at 4:46 AM Aditya Toshniwal < >> aditya.toshniwal@enterprisedb.com> wrote: >> >>> 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 wit= h >>> that. >>> >>> Traceback (most recent call last): >>> File "/tmp/build/a453582b/pgadmin-repo/web/pgadmin/feature_tests/keyb= oard_shortcut_test.py", >>> line 52, in runTest >>> self._check_shortcuts() >>> File "/tmp/build/a453582b/pgadmin-repo/web/pgadmin/feature_tests/keyb= oard_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 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 wi= ndows. >>>>> Sample insert - insert into test_tab values ('=C3=A9'); >>>>> >>>>> 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 limi= t of >>>>> ascii then it failed. The solution would be to use utf_8 decoder inst= ead of >>>>> ascii. I tried setting the client_encoding using >>>>> set_client_encoding('UTF8') method of a psycopg2 connection but no lu= ck >>>>> (also its not allowed for async connection). I also tried executing "= SET >>>>> CLIENT_ENCODING=3D'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 >>>> >>> >>> > --0000000000009ead02056d66fd67 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

PFA updated patch after all= the permutations, combinations for encoding for SQL_ASCII database.=C2=A0 Also fixed a small glitch for sql editor connect= ion status check.

Please note,=C2=A0ERROR: invalid byte sequence fo= r encoding "UTF8": 0xe9 0x73 is a Postgres DB error and not pgAdm= in4 error.



You= need to change client_encoding to the appropriate. After changing client_e= ncoding using command - set client_encoding=3D'XYZ', it will give n= ot give error.




=




Thanks and Regards,
Aditya Toshniwal<= /span>
Software Engin= eer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
"Don&#= 39;t Complain about Heat, Plant a tree"

On Wed, May 23, 2018 at 10:13 AM, Aditya Tos= hniwal <aditya.toshniwal@enterprisedb.com> w= rote:
Thank you Victoria= , Anthony.

Thanks and Regards,
Aditya Toshniwal
Software En= gineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
"Do= n't Complain about Heat, Plant a tree"

On Tue, May 22= , 2018 at 7:15 PM, Victoria Henry <vhenry@pivotal.io> wrote:=
Hi Aditya,

We made a minor change to make the patch so the python linter can pa= ss.=C2=A0 Attached is the change we made.
Everything else looks g= ood.

Sincerely,

Victoria = & Anthony

On Tue, May 22, 2018 at 4:46 AM Aditya Toshniwal <aditya.toshniwal@= enterprisedb.com> wrote:
Hi,

PFA updated patch. Linter issues = are fixed ( we dont have any linter setup for python :-( )
Regard= ing 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):
=C2=A0 File "= /tmp/build/a453582b/pgadmin-repo/web/pgadmin/feature_tests/keyboa= rd_shortcut_test.py", line 52, in runTest
=C2=A0 =C2=A0 self._check= _shortcuts()
=C2=A0 File "/tmp/build/a453582b/pgadmin-repo/web= /pgadmin/feature_tests/keyboard_shortcut_test.py", line 77, in _c= heck_shortcuts
=C2=A0 =C2=A0 ") and contains(@class, 'open'= )]")
=C2=A0 File "/root/.pyenv/versions/pgadmin36/lib/pyt= hon3.6/site-packages/selenium/webdriver/support/wait.py", li= ne 80, in until
=C2=A0 =C2=A0 raise TimeoutException(message, screen, st= acktrace)
selenium.common.exceptions.TimeoutException: Message:

Thanks a= nd Regards,
Aditya T= oshniwal
Software Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
"Don't Complain about Heat, Plant a tree"<= /div>

On Tue, May 22, 2018 at 1:37 PM, Dave Page <= span dir=3D"ltr"><dpage@pgadmin.org> wrote:
=
Hi

Pivotal's buildbot is showing pr= oblems with this patch:


On Tue, May 22, 2018 at 7:05 AM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:=
Hi Hackers,
<= div>
PFA patch for RM#3289 where decode error was thrown on q= uerying a SQL_ASCII database table. Please note, this problem occurs only o= n windows.
Sample insert -=C2=A0insert into test_tab values ('= ;=C3=A9');

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 dat= a has characters beyond the limit of ascii then it failed. The solution wou= ld be to use utf_8 decoder instead of ascii. I tried setting the client_enc= oding using set_client_encoding('UTF8') method of a psycopg2 connec= tion but no luck (also its not allowed for async connection). I also tried = executing "SET CLIENT_ENCODING=3D'UTF8'" but it didn'= t work too.
So, as in the patch, I had to set encodings dict valu= e directly to 'utf_8' and it seems to be working. Please note, the = same is added to psycopg3 milestones

Also fixed a small= glitch for sql editor connection status check.

Ki= ndly review.

Thanks and = Regards,
Aditya Tosh= niwal
S= oftware Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
"Don't Complain about Heat, Plant a tree"



--
Dave Page
Blog: http://pgsnake.blogspot.comTwitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterpris= e PostgreSQL Company



--0000000000009ead02056d66fd67-- --0000000000009ead05056d66fd68 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_jhsrh5fe0_163afd929dacb31e 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 --0000000000009ead05056d66fd68 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_jhsrnphi2_163afddbdda91851 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 UMnBb/L9AAAAAElFTkSuQmCC --0000000000009ead05056d66fd68-- --0000000000009ead07056d66fd69 Content-Type: application/octet-stream; name="RM3289.patch" Content-Disposition: attachment; filename="RM3289.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jhsroewd3 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5weSBiL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5weQppbmRleCBjNzI1MDVhNC4uZWFk MTAwZTcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5w eQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvX19pbml0X18ucHkKQEAgLTE0NzYs MTQgKzE0NzYsMTkgQEAgZGVmIHF1ZXJ5X3Rvb2xfc3RhdHVzKHRyYW5zX2lkKToKIAogICAgIGlm IGNvbm4gYW5kIHRyYW5zX29iaiBhbmQgc2Vzc2lvbl9vYmo6CiAgICAgICAgIHN0YXR1cyA9IGNv bm4udHJhbnNhY3Rpb25fc3RhdHVzKCkKLSAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKLSAgICAgICAgICAgIGRhdGE9ewotICAgICAgICAgICAgICAgICdzdGF0dXMnOiBzdGF0dXMs Ci0gICAgICAgICAgICAgICAgJ21lc3NhZ2UnOiBnZXR0ZXh0KAotICAgICAgICAgICAgICAgICAg ICBDT05ORUNUSU9OX1NUQVRVU19NRVNTQUdFX01BUFBJTkcuZ2V0KHN0YXR1cykKLSAgICAgICAg ICAgICAgICApCi0gICAgICAgICAgICB9Ci0gICAgICAgICkKKyAgICAgICAgaWYgc3RhdHVzIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6IHN0YXR1cywK KyAgICAgICAgICAgICAgICAgICAgJ21lc3NhZ2UnOiBnZXR0ZXh0KAorICAgICAgICAgICAgICAg ICAgICAgICAgQ09OTkVDVElPTl9TVEFUVVNfTUVTU0FHRV9NQVBQSU5HLmdldChzdGF0dXMpCisg ICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApCisg ICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKAor ICAgICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQoIlRyYW5zYWN0aW9uIHN0YXR1cyBjaGVj ayBmYWlsZWQuIikKKyAgICAgICAgICAgICkKICAgICBlbHNlOgogICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKAogICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgiVHJhbnNh Y3Rpb24gc3RhdHVzIGNoZWNrIGZhaWxlZC4iKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdXRp bHMvZHJpdmVyL3BzeWNvcGcyL2Nvbm5lY3Rpb24ucHkgYi93ZWIvcGdhZG1pbi91dGlscy9kcml2 ZXIvcHN5Y29wZzIvY29ubmVjdGlvbi5weQppbmRleCAzMTU2MzFjMC4uYWM4NWY5ZGMgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9jb25uZWN0aW9uLnB5Cisr KyBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9jb25uZWN0aW9uLnB5CkBAIC01 MCw2ICs1MCwxMiBAQCBlbHNlOgogXyA9IGdldHRleHQKIAogCisjIFJlcGxhY2UgZGVmYXVsdCBh c2NpaSBlbmNvZGVyIHdpdGggdW5pY29kZS1lc2NhcGUKKyMgd2hpY2ggdHJhbnNsYXRlcyBjaGFy YWN0ZXJzIHRvIHVuaWNvZGUgZm9ybWF0LgorIyBFc2NhcGUgc3BlY2lhbCBjaGFyYWN0ZXJzIHRv IEFTQ0lJIGJhc2VkIG9uIHVuaWNvZGUKK2VuY29kaW5nc1snU1FMX0FTQ0lJJ10gPSAndW5pY29k ZS1lc2NhcGUnCitlbmNvZGluZ3NbJ1NRTEFTQ0lJJ10gPSAndW5pY29kZS1lc2NhcGUnCisKICMg UmVnaXN0ZXIgZ2xvYmFsIHR5cGUgY2FzdGVyIHdoaWNoIHdpbGwgYmUgYXBwbGljYWJsZSB0byBh bGwgY29ubmVjdGlvbnMuCiByZWdpc3Rlcl9nbG9iYWxfdHlwZWNhc3RlcnMoKQogCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIvdHlwZWNhc3QucHkgYi93ZWIv cGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIvdHlwZWNhc3QucHkKaW5kZXggZjEzNjYwNDku LmNjZWJiMmY5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIv dHlwZWNhc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL3R5cGVj YXN0LnB5CkBAIC0xNjQsNyArMTY0LDcgQEAgZGVmIHJlZ2lzdGVyX2dsb2JhbF90eXBlY2FzdGVy cygpOgogCiAKIGRlZiByZWdpc3Rlcl9zdHJpbmdfdHlwZWNhc3RlcnMoY29ubmVjdGlvbik6Ci0g ICAgaWYgY29ubmVjdGlvbi5lbmNvZGluZyAhPSAnVVRGOCc6CisgICAgaWYgY29ubmVjdGlvbi5l bmNvZGluZyBub3QgaW4gKCdVVEY4JywgJ1NRTEFTQ0lJJywgJ1NRTF9BU0NJSScpOgogICAgICAg ICAjIEluIHB5dGhvbjMgd2hlbiBkYXRhYmFzZSBlbmNvZGluZyBpcyBvdGhlciB0aGFuIHV0Zi04 IGFuZCBjbGllbnQKICAgICAgICAgIyBlbmNvZGluZyBpcyBzZXQgdG8gVU5JQ09ERSB0aGVuIHdl IG5lZWQgdG8gbWFwIGRhdGEgZnJvbSBkYXRhYmFzZQogICAgICAgICAjIGVuY29kaW5nIHRvIHV0 Zi04Lgo= --0000000000009ead07056d66fd69--