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 1fQY5n-0007rJ-91 for pgadmin-hackers@arkaria.postgresql.org; Wed, 06 Jun 2018 13:03:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fQY5m-000264-3y for pgadmin-hackers@arkaria.postgresql.org; Wed, 06 Jun 2018 13:03:10 +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 1fQY5l-00025o-EQ for pgadmin-hackers@lists.postgresql.org; Wed, 06 Jun 2018 13:03:09 +0000 Received: from mail-lf0-x243.google.com ([2a00:1450:4010:c07::243]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fQY5Z-00040f-Ql for pgadmin-hackers@postgresql.org; Wed, 06 Jun 2018 13:03:08 +0000 Received: by mail-lf0-x243.google.com with SMTP id g21-v6so7000495lfb.4 for ; Wed, 06 Jun 2018 06:02:57 -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 :cc; bh=D5oRrOk2/ZRN7Jj7OVRHOy0VRz3X4A86LwHtDCMSGzY=; b=MXt1xjb1vuST0TYH1CNsXRtoelXCz6YoUg11Fpse1trlC6V5fSgt5sqHj4t+kydjpU xePNC8S/bPFs0rD1IW3HxbSE54jawZ6SoxxbcWyOKfyltcD7letE2ef3HmOIYIxKCw4D bplgJTs3Js4WQ1etbAIxiZmEMBiCeOccHGiVzFSCH0OMs02QbDxrDwMy7pcHSdi3pPyt KaelHN9IRRAXUBO21qAYl7GP0WLdBXXnNC0v7l/Rc7GZX9SPra3lltTXp9Rnc2DBPRX0 HzlYn1qeM8Eq3br6Tqsr/FZq/oLE4OxeI3Fp2ZYt5qgueEWk56JCfq0onQYvuTo5cIZ/ 6PDw== 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:cc; bh=D5oRrOk2/ZRN7Jj7OVRHOy0VRz3X4A86LwHtDCMSGzY=; b=cdsDCCjGRTCqAo1ZwAdX0Ds6/6t9a0fftr49LDBjjT0F/TfLEWzWJuxPu0Jr5PRR5q TFTR8Bnb/M0TEcFtHZJg32Yp5RN+ctfDpHHFrn8Pg03nBDv2hBw1vC78pFwPUhQzYfII 2BZYjLr5Ag8IAlfPJRXnfea6W2yfEEHbkOKzJ0UZxZU4kzW7AmH8SlXOY6yc8sM94CW9 z4+HDQ+4d6x4Y/AvOdfw/j1saIwieGeN7JefmnL7jDlx6qSBRF3oP1Pz3/sekFhyIinN Wz6kk0rO3meoHRCBncemU0lSCTFCPL0rVSPVKLkFo98i2sO+vQOl2KRpwh0BbZqTRr7J yKEQ== X-Gm-Message-State: APt69E2NqTCQrxxV408lLb4TKInQND+OwgTOQ2rAtazGzqkBSiXUJRzX CDx0n2G1U9xdz8mL6FqqwB0RjeseVkEHJ4Xm0buu9w== X-Google-Smtp-Source: ADUXVKKp1dpQqYVl9ByctU67pH7PJ6pMgrmun7zH3tyEEyzKpLVKTW/owdWjOMc1mSQX1Ird7fidPoqL07dCd0jrcLA= X-Received: by 2002:a19:f71a:: with SMTP id z26-v6mr1770088lfe.137.1528290175795; Wed, 06 Jun 2018 06:02:55 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:9e8a:0:0:0:0:0 with HTTP; Wed, 6 Jun 2018 06:02:55 -0700 (PDT) In-Reply-To: References: From: Aditya Toshniwal Date: Wed, 6 Jun 2018 18:32:55 +0530 Message-ID: Subject: Re: [pgAdmin4][RM#3289] Can't query SQL_ASCII database. To: Dave Page Cc: Joao De Almeida Pereira , pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000000b1e6b056df8c956" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000000b1e6b056df8c956 Content-Type: multipart/alternative; boundary="0000000000000b1e69056df8c954" --0000000000000b1e69056df8c954 Content-Type: text/plain; charset="UTF-8" Hi Hackers, PFA updated patch as the previous one was not working as expected. I have tried to make it similar to that of pgAdmin3 and you do not need to change client_encoding as it is set now based on server encoding. It works fine with "view data" also. The only problem is, I cannot find equivalent codec for wxConvLibc in python. The closest one I could find is raw_unicode_escape. So, in a SQL_ASCII database, non ASCII characters may differ in pgAdmin4 and pgAdmin3, but it will display results. Dave, You need to add "E" before the string to be inserted, otherwise \x will be considered as a plain string. INSERT INTO sql_ascii (data) VALUES (E'[Invalid UTF-8] Blob: \xf4\xa5\xa3\xa5'); Kindly review. Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" On Tue, Jun 5, 2018 at 6:42 PM, Dave Page wrote: > Hi > > On Tue, Jun 5, 2018 at 2:03 PM, Aditya Toshniwal enterprisedb.com> wrote: > >> Hi >> >> On Tue, Jun 5, 2018 at 6:25 PM, Dave Page wrote: >> >>> >>> >>> On Tue, Jun 5, 2018 at 1:49 PM, Aditya Toshniwal < >>> aditya.toshniwal@enterprisedb.com> wrote: >>> >>>> Hi Dave, >>>> >>>> The problem of SQL ASCII is solved with the patch, and not related to >>>> setting the client encoding of the sql window. >>>> >>> >>> No it's not. It doesn't work for me as I said (and showed the example >>> of). >>> >> >> After setting the client_encoding to SQL_ASCII you got the output. >> Previously, it used to fail in the back end itself because python encoding >> failure. That is fixed. >> The error ERROR: invalid byte sequence for encoding "UTF8": 0x80 is >> thrown by postgres and not python or pgAdmin4. You will get the same error >> even if you >> connect from psql. >> > > Sure - but that is not a fix. You have no way of running the SET command > if you're using "view data" - and in the query tool, users just expect it > to work (as it did in pgAdmin 3). > > >> >>> >>>> I can see there is no SET call in pgAdmin3 for client_encoding. I can >>>> remove the SET client_encoding='UNICODE'; that will solve the problem. >>>> But, can you please let me know why that was added. >>>> >>> >>> There is, but it's inside an API call (PQsetClientEncoding): >>> >>> 300 >>> >>> wxLogInfo(wxT("Setting client_encoding to '%s'") >>> , encoding.c_str()); >>> 301 >>> >>> if (PQsetClientEncoding(conn, encoding.ToAscii())) >>> 302 >>> >>> { >>> 303 >>> >>> wxLogError(wxT("%s"), GetLastError().c_str()); >>> 304 >>> >>> } >>> 305 >>> >>> >>> Oops ! Missed that. Apologies. >> >>> >>> >>>> >>>> Will remove the set call and will send you the updated patch if >>>> everything works fine. >>>> >>> >>> No, we need to ensure the client encoding is set correctly. It just >>> needs to be set to SQL_ASCII if it's a SQL_ASCII database (I believe). >>> >>> >> Need to rework on the initialise method. Will come with an updated. >> patch. Sorry for trouble. >> >>> >>>> >>>> On Tue, Jun 5, 2018 at 6:05 PM, Dave Page wrote: >>>> >>>>> Hi >>>>> >>>>> On Tue, Jun 5, 2018 at 1:21 PM, Aditya Toshniwal < >>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>> >>>>>> Hi Dave, >>>>>> >>>>>> >>>>>> On Tue, Jun 5, 2018 at 4:56 PM, Dave Page wrote: >>>>>> >>>>>>> Hi >>>>>>> >>>>>>> On Tue, Jun 5, 2018 at 9:50 AM, Aditya Toshniwal < >>>>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>>>> >>>>>>>> Hi Hackers, >>>>>>>> >>>>>>>> PFA updated patch. The sqleditor change is sent separately and >>>>>>>> removed from current patch as suggested. >>>>>>>> The test cases were running fine when the module was specified >>>>>>>> using --pkg but were failing in complete run. Fixed that. >>>>>>>> >>>>>>> >>>>>>> I did a quick test by creating a SQL_ASCII database containing a >>>>>>> simple table: >>>>>>> >>>>>>> CREATE TABLE sql_ascii (id serial primary key, data text); >>>>>>> >>>>>>> And then populated it with data: >>>>>>> >>>>>>> /Library/PostgreSQL/9.4/bin/psql -d sql_ascii -U postgres -c >>>>>>> "INSERT INTO sql_acsii (data) VALUES ('[Windows-1252] Euro: \x80 Double >>>>>>> dagger: \x87');" >>>>>>> /Library/PostgreSQL/9.4/bin/psql -d sql_ascii -U postgres -c >>>>>>> "INSERT INTO sql_ascii (data) VALUES ('[Latin-1] Yen: \xa5 Half: >>>>>>> \xbd');" >>>>>>> /Library/PostgreSQL/9.4/bin/psql -d sql_ascii -U postgres -c >>>>>>> "INSERT INTO sql_ascii (data) VALUES ('[Japanese] Ship: \xe8\x88\xb9');" >>>>>>> /Library/PostgreSQL/9.4/bin/psql -d sql_ascii -U postgres -c >>>>>>> "INSERT INTO sql_ascii (data) VALUES ('[Invalid UTF-8] Blob: >>>>>>> \xf4\xa5\xa3\xa5');" >>>>>>> >>>>>>> I then right-clicked the table in the treeview, and selected the >>>>>>> option to view all rows, and immediately saw an error: >>>>>>> >>>>>>> 2018-06-05 12:23:27,319: SQL pgadmin: Execute (async) for server #1 >>>>>>> - CONN:1187535 (Query-id: 8522474): >>>>>>> SELECT * FROM public.sql_ascii >>>>>>> ORDER BY id ASC >>>>>>> 2018-06-05 12:23:27,320: ERROR pgadmin: Failed to execute query >>>>>>> (execute_async) for the server #1 - CONN:1187535(Query-id: 8522474): >>>>>>> Error Message:ERROR: invalid byte sequence for encoding "UTF8": 0x80 >>>>>>> SQL state: 22021 >>>>>>> >>>>>>> Running "SELECT * FROM sql_ascii" in the query tool resulted in the >>>>>>> same error, however, if I ran "SET client_encoding = 'SQL_ASCII';" first, I >>>>>>> do see results. >>>>>>> >>>>>>> I have confirmed that I've restarted the server after applying the >>>>>>> patch. >>>>>>> >>>>>>> What am I missing? Why don't we just set the client_encoding to >>>>>>> SQL_ASCII if it's a SQL_ASCII database? >>>>>>> >>>>>> >>>>>> It is by default same as the server encoding. But, the following >>>>>> existing code in web/pgadmin/utils/driver/psycopg2/connection.py makes >>>>>> the client_encoding as UNICODE for every connection. I am not sure it >>>>>> should be removed. >>>>>> >>>>>> status = _execute(cur, "SET DateStyle=ISO;" >>>>>> >>>>>> "SET client_min_messages=notice;" >>>>>> >>>>>> "SET bytea_output=escape;" >>>>>> >>>>>> "SET client_encoding='UNICODE';") >>>>>> >>>>> >>>>> It was probably before you joined, but I have said a number of times >>>>> that pgAdmin 3 handled this differently and that maybe we should do it the >>>>> same way here. See https://git.postgresql.org >>>>> /gitweb/?p=pgadmin3.git;a=blob;f=pgadmin/db/pgConn.cpp, in the >>>>> pgConn::Initialize() function. >>>>> >>>>> Either way, your patch isn't working for me. >>>>> >>>>> >>>>>> >>>>>> >>>>>> Note that this testing was on Python 2.7.10 on MacOS. >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> Kindly review. >>>>>>>> >>>>>>>> Thanks and Regards, >>>>>>>> Aditya Toshniwal >>>>>>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>>>>>> "Don't Complain about Heat, Plant a tree" >>>>>>>> >>>>>>>> On Tue, Jun 5, 2018 at 10:15 AM, Aditya Toshniwal < >>>>>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> On Tue, Jun 5, 2018 at 1:08 AM, Joao De Almeida Pereira < >>>>>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>>>>> >>>>>>>>>> Hello Aditya, >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> There is no change related to notifications in this patch. >>>>>>>>>>> The below code is minor fix related to connection status of sql >>>>>>>>>>> editor. Can you please share the code snippet if it is not the below. >>>>>>>>>>> >>>>>>>>>>> - # Check for the asynchronous notifies statements. >>>>>>>>>>> - conn.check_notifies(True) >>>>>>>>>>> - notifies = conn.get_notifies() >>>>>>>>>>> + if status is not None: >>>>>>>>>>> + # Check for the asynchronous notifies statements. >>>>>>>>>>> + conn.check_notifies(True) >>>>>>>>>>> + notifies = conn.get_notifies() >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> This is a minor fix, but is it related to querying SQL_ASCII >>>>>>>>>> database? >>>>>>>>>> >>>>>>>>> No its not. It is something I found when I was working on >>>>>>>>> SQL_ASCII related changes. >>>>>>>>> Well then, will send a separate patch for it. >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks >>>>>>>>>> Victoria && Joao >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dave Page >>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>> Twitter: @pgsnake >>>>>>> >>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --0000000000000b1e69056df8c954 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

PFA updated patch as the pr= evious one was not working as expected. I have tried to make it similar to = that of pgAdmin3 and you do not need to change client_encoding as it is set= now based on server encoding. It works fine with "view data" als= o.
The only problem is, I cannot find equivalent codec for wxConv= Libc in python. The closest one I could find is raw_unicode_escape. So, in = a SQL_ASCII database, non ASCII characters may differ in pgAdmin4 and pgAdm= in3, but it will display results.


Dave,=C2=A0
You need to add "E" before = the string to be inserted, otherwise \x will be considered as a plain strin= g.
INSERT INTO sql_ascii (data) = VALUES (E'[Invalid UTF-8]=C2=A0 Blob: \xf4\xa5\xa3\xa5');

Kindly review.
<= br clear=3D"all">
=
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Sol= utions |=C2=A0Pune
"Don't Complain about Heat, Plant a tr= ee"

On Tue, Jun 5, 2018 at 6:42 PM, Dave Page <= dpage@pgadmin.org> wrote:
Hi

On Tue, Jun 5, 2018 at 2:03 = PM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.c= om> wrote:
Hi

On Tue, Jun 5, 2018 at 6:25 PM, Dave Page = <dpage@pgadmin.or= g> wrote:


On Tue, Jun 5, 2018 at 1:49 PM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
=
Hi Dave,=

The problem of SQL ASCII is solved with the patch, and= not related to setting the client encoding of the sql window.

No it's not. It doesn't work for = me as I said (and showed the example of).

After setting the client_encoding to SQL_ASCI= I you got the output. Previously, it used to fail in the back end itself be= cause python encoding failure. That is fixed.
The error=C2=A0ERROR:=C2=A0 invalid byte sequence for encoding = "UTF8": 0x80=C2=A0is thrown by postgres and not pyt= hon or pgAdmin4. You will get the same error even if you=C2=A0
co= nnect from psql.

=
Sure - but that is not a fix. You have no way of running the SET comma= nd if you're using "view data" - and in the query tool, users= just expect it to work (as it did in pgAdmin 3).
=C2=A0
=C2=A0
I can see t= here is no SET call in pgAdmin3 for client_encoding.=C2=A0 I can remove the= =C2=A0SET client_encoding=3D'UNICODE'; <= /span>that will solve the problem. But, can you p= lease let me know why that was added.=C2=A0
<= br>
There is, but it's inside an API call (PQsetC= lientEncoding):

300 =C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0wxLogInfo(wxT(&quo= t;Setting=C2=A0client_encoding=C2=A0to=C2=A0'%s'"),= =C2=A0encoding.c_str());
301 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0if=C2=A0(PQsetClientEncoding(conn,=C2=A0= encoding.ToAscii()))
302 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0{
303 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0wxLogErro= r(wxT("%s"),=C2=A0GetLastError().c_str());
304 =C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0}
=C2=A0

Will remove the set call and will send you the updated patc= h if everything works fine.

No, we need to ensure the client encoding is set correctly. It ju= st needs to be set to SQL_ASCII if it's a SQL_ASCII database (I believe= ).
=C2=A0
Need to rework on the initialise method. Will come with an updated. patc= h. Sorry for trouble.=C2=A0


On= Tue, Jun 5, 2018 at 6:05 PM, Dave Page <dpage@pgadmin.org> = wrote:
Hi

On Tue, Jun 5, 2018 at 1:21 PM, Adity= a Toshniwal <aditya.toshniwal@enterprisedb.com>= ; wrote:
Hi Dave,


On Tue, Jun 5, 2018 at 4:56 PM, Dave Page <dpage@p= gadmin.org> wrote:
Hi

On Tue, Jun 5, 2018 at 9:50 AM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:=
Hi H= ackers,

PFA updated patch. The sqleditor change is sent = separately and removed from current patch as suggested.
The test = cases were running fine when the module was specified using --pkg but were = failing in complete run. Fixed that.

I did a quick test by creating a SQL_ASCII database containing= a simple table:

CREATE TABLE sql_ascii (id serial= primary key, data text);

And then populated it wi= th data:

/Library/PostgreSQL/9.4/bin/psq= l -d sql_ascii -U postgres -c "INSERT INTO sql_acsii (data) VALUES (&#= 39;[Windows-1252]=C2=A0 =C2=A0Euro: \x80=C2=A0 =C2=A0Double dagger: \x87= 9;);"
/Library/PostgreSQL/9.4/bin/psql -d sql_ascii -U = postgres -c "INSERT INTO sql_ascii (data) VALUES ('[Latin-1]=C2=A0= =C2=A0Yen: \xa5=C2=A0 =C2=A0Half: \xbd');"
/Library/Pos= tgreSQL/9.4/bin/psql -d sql_ascii -U postgres -c "INSERT INTO sql= _ascii (data) VALUES ('[Japanese]=C2=A0 =C2=A0Ship: \xe8\x88\xb9');= "
/Library/PostgreSQL/9.4/bin/psql -d sql_ascii -U post= gres -c "INSERT INTO sql_ascii (data) VALUES ('[Invalid UTF-8]=C2= =A0 Blob: \xf4\xa5\xa3\xa5');"

I th= en right-clicked the table in the treeview, and selected the option to view= all rows, and immediately saw an error:

2018= -06-05 12:23:27,319: SQL pgadmi= n: Execute (async) for server #= 1 - CONN:1187535 (Query-id: 8522474):
SELECT * FROM public.sql_as= cii
ORDER BY id ASC=C2=A0
2018-06-05 12:23:27,320: ERRO= R pgadmin: Failed to execute query (execute_async) for the ser= ver #1 - CONN:1187535(Query-id: 8522474):
Error Message:ERROR:=C2= =A0 invalid byte sequence for encoding "UTF8": 0x80
SQL= state: 22021

Running "SELECT * FROM sq= l_ascii" in the query tool resulted in the same error, however, if I r= an "SET client_encoding =3D 'SQL_ASCII';" first, I do see= results.

I have confirmed that I've restarted= the server after applying the patch.

What am I mi= ssing? Why don't we just set the client_encoding to SQL_ASCII if it'= ;s a SQL_ASCII database?
= =C2=A0
It is by default same as the server encoding. But, the fol= lowing existing code in=C2=A0=C2=A0web/pgadmin/utils/drive= r/psycopg2/connection.py makes the client_encoding as UNICODE f= or every connection. I am not sure it should be removed.

=C2=A0 =C2= =A0 =C2=A0 =C2=A0 status =3D _execute(cur, "SET DateStyle=3DISO= ;"

=C2=A0=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 "SET client_min_messages=3Dnotice;&quo= t;

=C2=A0=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 "SET bytea_output=3Descape;"

=C2=A0=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 "SET client_encoding=3D'UNICODE= 9;;")


<= /div>
It was probably before you joined, but I have said a = number of times that pgAdmin 3 handled this differently and that maybe we s= hould do it the same way here. See=C2=A0https://git.postgresql.org/gitweb/?p=3Dpgadmin3.git;a=3Dblob;f=3Dpgadmin/db/pgConn.cpp, in the pgConn::Initialize() function.

Either way, your patch isn't working for me.
=C2=A0


<= div class=3D"gmail_quote">
Note that this testing was on Python 2.7.10 = on MacOS.
=C2=A0

Kindly review.

Thanks and Regards,<= /font>
Aditya Toshniwal
Software E= ngineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
"D= on't Complain about Heat, Plant a tree"
<= /div>

On Tue, Jun 5, 2018 at 10:15 AM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi

On Tue, Jun 5, 2018 a= t 1:08 AM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.i= o> wrote:
Hello Aditya,


<= /div>
There is no change related to notifications in this patch.=C2=A0<= /div>
The below code is minor fix related to connection status of sql e= ditor. Can you please share the code snippet if it is not the below.
<= div>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 # Check for the asynch= ronous notifies statements.
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 conn.che= ck_notifies(True)
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 notifies =3D conn.= get_notifies()
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 if status is not None= :
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # Check for the asyn= chronous notifies statements.
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 conn.check_notifies(True)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 notifies =3D conn.get_notifies()


This is a minor fix, but is it = related to querying SQL_ASCII database?
No its not. It is something I found when I was working on SQL_ASCII = related changes.
Well then, will send a separate patch for it.

Thanks
Victoria &&a= mp; Joao





--
Dave Page
Blog: http://pgsnake.blogsp= ot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
T= he Enterprise PostgreSQL Company




--
Dave Page
Blog: http://pgsnake.blogspot.= com
Twitter: @pgsnake

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




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pg= snake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL C= ompany




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
<= /div>

--0000000000000b1e69056df8c954-- --0000000000000b1e6b056df8c956 Content-Type: text/x-patch; charset="US-ASCII"; name="RM3289.patch" Content-Disposition: attachment; filename="RM3289.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ji34es7i0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X2VuY29k aW5nX2NoYXJzZXQucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9l bmNvZGluZ19jaGFyc2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4 MjZkZWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVz dHMvdGVzdF9lbmNvZGluZ19jaGFyc2V0LnB5CkBAIC0wLDAgKzEsMTAzIEBACisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20g cmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCitpbXBvcnQganNvbgorCisKK2NsYXNzIFRl c3RFbmNvZGluZ0NoYXJzZXQoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIgorICAgIFRoaXMg Y2xhc3MgdmFsaWRhdGVzIGNoYXJhY3RlciBzdXBwb3J0IGluIHBnQWRtaW40IGZvcgorICAgIGRp ZmZlcmVudCBQb3N0Z3Jlc0RCIGVuY29kaW5ncworICAgICIiIgorICAgIHNjZW5hcmlvcyA9IFsK KyAgICAgICAgKAorICAgICAgICAgICAgJ1dpdGggRW5jb2RpbmcgVVRGOCcsCisgICAgICAgICAg ICBkaWN0KAorICAgICAgICAgICAgICAgIGRiX2VuY29kaW5nPSdVVEY4JywKKyAgICAgICAgICAg ICAgICBsY19jb2xsYXRlPSdDJywKKyAgICAgICAgICAgICAgICB0ZXN0X3N0cj0nQScKKyAgICAg ICAgICAgICkpLAorICAgICAgICAoCisgICAgICAgICAgICAnV2l0aCBFbmNvZGluZyBXSU4xMjUy JywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgZGJfZW5jb2Rpbmc9J1dJTjEy NTInLAorICAgICAgICAgICAgICAgIGxjX2NvbGxhdGU9J0MnLAorICAgICAgICAgICAgICAgIHRl c3Rfc3RyPSdBJworICAgICAgICAgICAgKSksCisgICAgICAgICgKKyAgICAgICAgICAgICdXaXRo IEVuY29kaW5nIEVVQ19DTicsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIGRi X2VuY29kaW5nPSdFVUNfQ04nLAorICAgICAgICAgICAgICAgIGxjX2NvbGxhdGU9J0MnLAorICAg ICAgICAgICAgICAgIHRlc3Rfc3RyPSdBJworICAgICAgICAgICAgKSksCisgICAgICAgICgKKyAg ICAgICAgICAgICdXaXRoIEVuY29kaW5nIFNRTF9BU0NJSScsCisgICAgICAgICAgICBkaWN0KAor ICAgICAgICAgICAgICAgIGRiX2VuY29kaW5nPSdTUUxfQVNDSUknLAorICAgICAgICAgICAgICAg IGxjX2NvbGxhdGU9J0MnLAorICAgICAgICAgICAgICAgIHRlc3Rfc3RyPSdcXDI1NScKKyAgICAg ICAgICAgICkpLAorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5l bmNvZGVfZGJfbmFtZSA9ICdlbmNvZGluZ18nICsgc2VsZi5kYl9lbmNvZGluZworICAgICAgICBz ZWxmLmVuY29kZV9zaWQgPSBzZWxmLnNlcnZlcl9pbmZvcm1hdGlvblsnc2VydmVyX2lkJ10KKyAg ICAgICAgc2VsZi5lbmNvZGVfZGlkID0gdGVzdF91dGlscy5jcmVhdGVfZGF0YWJhc2UoCisgICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5lbmNvZGVfZGJfbmFtZSwKKyAgICAgICAgICAgIChz ZWxmLmRiX2VuY29kaW5nLCBzZWxmLmxjX2NvbGxhdGUpKQorCisgICAgZGVmIHJ1blRlc3Qoc2Vs Zik6CisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShz ZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZW5jb2RlX3NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmVuY29kZV9kaWQpCisgICAgICAgIGlmIG5v dCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZS4iKQorCisg ICAgICAgICMgSW5pdGlhbGl6ZSBxdWVyeSB0b29sCisgICAgICAgIHVybCA9ICcvZGF0YWdyaWQv aW5pdGlhbGl6ZS9xdWVyeV90b29sL3swfS97MX0vezJ9Jy5mb3JtYXQoCisgICAgICAgICAgICB0 ZXN0X3V0aWxzLlNFUlZFUl9HUk9VUCwgc2VsZi5lbmNvZGVfc2lkLCBzZWxmLmVuY29kZV9kaWQp CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCh1cmwpCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9u c2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAg ICAgIHNlbGYudHJhbnNfaWQgPSByZXNwb25zZV9kYXRhWydkYXRhJ11bJ2dyaWRUcmFuc0lkJ10K KworICAgICAgICAjIENoZWNrIGNoYXJhY3RlcgorICAgICAgICB1cmwgPSAiL3NxbGVkaXRvci9x dWVyeV90b29sL3N0YXJ0L3swfSIuZm9ybWF0KHNlbGYudHJhbnNfaWQpCisgICAgICAgIHNxbCA9 ICJzZWxlY3QgRSd7MH0nOyIuZm9ybWF0KHNlbGYudGVzdF9zdHIpCisgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucG9zdCh1cmwsIGRhdGE9anNvbi5kdW1wcyh7InNxbCI6IHNxbH0pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICB1cmwgPSAnL3NxbGVkaXRvci9wb2xsL3swfScuZm9ybWF0KHNlbGYudHJhbnNf aWQpCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHVybCkKKyAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9u c2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlX2RhdGFbJ2RhdGEnXVsncm93c19mZXRjaGVk X3RvJ10sIDEpCisKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLmVuY29kZV9zaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5lbmNvZGVfZGlkKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAg ICAgICBtYWluX2Nvbm4gPSB0ZXN0X3V0aWxzLmdldF9kYl9jb25uZWN0aW9uKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUn XSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydwb3J0J10sCisg ICAgICAgICAgICBzZWxmLnNlcnZlclsnc3NsbW9kZSddCisgICAgICAgICkKKyAgICAgICAgdGVz dF91dGlscy5kcm9wX2RhdGFiYXNlKG1haW5fY29ubiwgc2VsZi5lbmNvZGVfZGJfbmFtZSkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9jb25uZWN0aW9uLnB5 IGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL2Nvbm5lY3Rpb24ucHkKaW5kZXgg Y2ZkMTYxYS4uZTI1MzhkMSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3Bz eWNvcGcyL2Nvbm5lY3Rpb24ucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNv cGcyL2Nvbm5lY3Rpb24ucHkKQEAgLTMzLDcgKzMzLDcgQEAgZnJvbSBwZ2FkbWluLnV0aWxzIGlt cG9ydCBnZXRfY29tcGxldGVfZmlsZV9wYXRoCiBmcm9tIC4uYWJzdHJhY3QgaW1wb3J0IEJhc2VE cml2ZXIsIEJhc2VDb25uZWN0aW9uCiBmcm9tIC5jdXJzb3IgaW1wb3J0IERpY3RDdXJzb3IKIGZy b20gLnR5cGVjYXN0IGltcG9ydCByZWdpc3Rlcl9nbG9iYWxfdHlwZWNhc3RlcnMsIFwKLSAgICBy ZWdpc3Rlcl9zdHJpbmdfdHlwZWNhc3RlcnMsIHJlZ2lzdGVyX2JpbmFyeV90eXBlY2FzdGVycywg XAorICAgIHJlZ2lzdGVyX2JpbmFyeV90eXBlY2FzdGVycywgXAogICAgIHJlZ2lzdGVyX2FycmF5 X3RvX3N0cmluZ190eXBlY2FzdGVycywgQUxMX0pTT05fVFlQRVMKIAogCkBAIC0zODcsOCArMzg3 LDYgQEAgY2xhc3MgQ29ubmVjdGlvbihCYXNlQ29ubmVjdGlvbik6CiAgICAgICAgICAgICBlbHNl OgogICAgICAgICAgICAgICAgIHNlbGYuY29ubi5hdXRvY29tbWl0ID0gVHJ1ZQogCi0gICAgICAg IHJlZ2lzdGVyX3N0cmluZ190eXBlY2FzdGVycyhzZWxmLmNvbm4pCi0KICAgICAgICAgaWYgc2Vs Zi5hcnJheV90b19zdHJpbmc6CiAgICAgICAgICAgICByZWdpc3Rlcl9hcnJheV90b19zdHJpbmdf dHlwZWNhc3RlcnMoc2VsZi5jb25uKQogCkBAIC0zOTcsMTAgKzM5NSwxOSBAQCBjbGFzcyBDb25u ZWN0aW9uKEJhc2VDb25uZWN0aW9uKToKICAgICAgICAgaWYgc2VsZi51c2VfYmluYXJ5X3BsYWNl aG9sZGVyOgogICAgICAgICAgICAgcmVnaXN0ZXJfYmluYXJ5X3R5cGVjYXN0ZXJzKHNlbGYuY29u bikKIAotICAgICAgICBzdGF0dXMgPSBfZXhlY3V0ZShjdXIsICJTRVQgRGF0ZVN0eWxlPUlTTzsi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNFVCBjbGllbnRfbWluX21lc3NhZ2Vz PW5vdGljZTsiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNFVCBieXRlYV9vdXRw dXQ9ZXNjYXBlOyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0VUIGNsaWVudF9l bmNvZGluZz0nVU5JQ09ERSc7IikKKyAgICAgICAgaWYgc2VsZi5jb25uLmVuY29kaW5nIG5vdCBp biAoJ1NRTF9BU0NJSScsICdTUUxBU0NJSScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdNVUxFX0lOVEVSTkFMJywgJ01VTEVJTlRFUk5BTCcpOgorICAgICAgICAgICAg c3RhdHVzID0gX2V4ZWN1dGUoY3VyLCAiU0VUIERhdGVTdHlsZT1JU087IgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiU0VUIGNsaWVudF9taW5fbWVzc2FnZXM9bm90aWNlOyIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNFVCBieXRlYV9vdXRwdXQ9ZXNj YXBlOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNFVCBjbGllbnRfZW5j b2Rpbmc9J1VOSUNPREUnOyIpCisKKyAgICAgICAgICAgIGVuY29kaW5nc1tzZWxmLmNvbm4uZW5j b2RpbmddID0gJ3V0Zi04JworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3RhdHVzID0gX2V4 ZWN1dGUoY3VyLCAiU0VUIERhdGVTdHlsZT1JU087IgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiU0VUIGNsaWVudF9taW5fbWVzc2FnZXM9bm90aWNlOyIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlNFVCBieXRlYV9vdXRwdXQ9ZXNjYXBlOyIpCisgICAg ICAgICAgICBlbmNvZGluZ3Nbc2VsZi5jb25uLmVuY29kaW5nXSA9ICdyYXdfdW5pY29kZV9lc2Nh cGUnCiAKICAgICAgICAgaWYgc3RhdHVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5j b25uLmNsb3NlKCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3Bn Mi90eXBlY2FzdC5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi90eXBlY2Fz dC5weQppbmRleCBmMTM2NjA0Li5hOGY2YzM4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGls cy9kcml2ZXIvcHN5Y29wZzIvdHlwZWNhc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJp dmVyL3BzeWNvcGcyL3R5cGVjYXN0LnB5CkBAIC0xNjMsNDkgKzE2Myw2IEBAIGRlZiByZWdpc3Rl cl9nbG9iYWxfdHlwZWNhc3RlcnMoKToKICAgICBwc3ljb3BnMi5leHRlbnNpb25zLnJlZ2lzdGVy X3R5cGUocGdfYXJyYXlfdHlwZXNfdG9fYXJyYXlfb2Zfc3RyaW5nX3R5cGUpCiAKIAotZGVmIHJl Z2lzdGVyX3N0cmluZ190eXBlY2FzdGVycyhjb25uZWN0aW9uKToKLSAgICBpZiBjb25uZWN0aW9u LmVuY29kaW5nICE9ICdVVEY4JzoKLSAgICAgICAgIyBJbiBweXRob24zIHdoZW4gZGF0YWJhc2Ug ZW5jb2RpbmcgaXMgb3RoZXIgdGhhbiB1dGYtOCBhbmQgY2xpZW50Ci0gICAgICAgICMgZW5jb2Rp bmcgaXMgc2V0IHRvIFVOSUNPREUgdGhlbiB3ZSBuZWVkIHRvIG1hcCBkYXRhIGZyb20gZGF0YWJh c2UKLSAgICAgICAgIyBlbmNvZGluZyB0byB1dGYtOC4KLSAgICAgICAgIyBUaGlzIGlzIHJlcXVp cmVkIGJlY2F1c2Ugd2hlbiBjbGllbnQgZW5jb2RpbmcgaXMgc2V0IHRvIFVOSUNPREUgdGhlbgot ICAgICAgICAjIHBzeWNvcGcgYXNzdW1lcyBkYXRhYmFzZSBlbmNvZGluZyB1dGYtOCBhbmQgbm90 IHRoZSBhY3R1YWwgZW5jb2RpbmcuCi0gICAgICAgICMgTm90IHN1cmUgd2hldGhlciBpdCdzIGJ1 ZyBvciBmZWF0dXJlIGluIHBzeWNvcGcgZm9yIHB5dGhvbjMuCi0gICAgICAgIGlmIHN5cy52ZXJz aW9uX2luZm8gPj0gKDMsKToKLSAgICAgICAgICAgIGRlZiByZXR1cm5fYXNfdW5pY29kZSh2YWx1 ZSwgY3Vyc29yKToKLSAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgotICAgICAgICAg ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgICAgICMgVHJlYXQgdmFsdWUgYXMg Ynl0ZSBzZXF1ZW5jZSBvZiBkYXRhYmFzZSBlbmNvZGluZyBhbmQgdGhlbgotICAgICAgICAgICAg ICAgICMgZGVjb2RlIGl0IGFzIHV0Zi04IHRvIGdldCBjb3JyZWN0IHVuaWNvZGUgdmFsdWUuCi0g ICAgICAgICAgICAgICAgcmV0dXJuIGJ5dGVzKAotICAgICAgICAgICAgICAgICAgICB2YWx1ZSwg ZW5jb2RpbmdzW2N1cnNvci5jb25uZWN0aW9uLmVuY29kaW5nXQotICAgICAgICAgICAgICAgICku ZGVjb2RlKCd1dGYtOCcpCi0KLSAgICAgICAgICAgIHVuaWNvZGVfdHlwZSA9IHBzeWNvcGcyLmV4 dGVuc2lvbnMubmV3X3R5cGUoCi0gICAgICAgICAgICAgICAgIyAiY2hhciIsIG5hbWUsIHRleHQs IGNoYXJhY3RlciwgY2hhcmFjdGVyIHZhcnlpbmcKLSAgICAgICAgICAgICAgICAoMTksIDE4LCAy NSwgMTA0MiwgMTA0MywgMCksCi0gICAgICAgICAgICAgICAgJ1VOSUNPREUnLCByZXR1cm5fYXNf dW5pY29kZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGRlZiByZXR1cm5fYXNfdW5pY29k ZSh2YWx1ZSwgY3Vyc29yKToKLSAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgotICAg ICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgICAgICMgRGVjb2RlIGl0 IGFzIHV0Zi04IHRvIGdldCBjb3JyZWN0IHVuaWNvZGUgdmFsdWUuCi0gICAgICAgICAgICAgICAg cmV0dXJuIHZhbHVlLmRlY29kZSgndXRmLTgnKQotCi0gICAgICAgICAgICB1bmljb2RlX3R5cGUg PSBwc3ljb3BnMi5leHRlbnNpb25zLm5ld190eXBlKAotICAgICAgICAgICAgICAgICMgImNoYXIi LCBuYW1lLCB0ZXh0LCBjaGFyYWN0ZXIsIGNoYXJhY3RlciB2YXJ5aW5nCi0gICAgICAgICAgICAg ICAgKDE5LCAxOCwgMjUsIDEwNDIsIDEwNDMsIDApLAotICAgICAgICAgICAgICAgICdVTklDT0RF JywgcmV0dXJuX2FzX3VuaWNvZGUpCi0KLSAgICAgICAgdW5pY29kZV9hcnJheV90eXBlID0gcHN5 Y29wZzIuZXh0ZW5zaW9ucy5uZXdfYXJyYXlfdHlwZSgKLSAgICAgICAgICAgICMgImNoYXIiW10s IG5hbWVbXSwgdGV4dFtdLCBjaGFyYWN0ZXJbXSwgY2hhcmFjdGVyIHZhcnlpbmdbXQotICAgICAg ICAgICAgKDEwMDIsIDEwMDMsIDEwMDksIDEwMTQsIDEwMTUsIDAKLSAgICAgICAgICAgICApLCAn VU5JQ09ERUFSUkFZJywgdW5pY29kZV90eXBlKQotCi0gICAgICAgIHBzeWNvcGcyLmV4dGVuc2lv bnMucmVnaXN0ZXJfdHlwZSh1bmljb2RlX3R5cGUpCi0gICAgICAgIHBzeWNvcGcyLmV4dGVuc2lv bnMucmVnaXN0ZXJfdHlwZSh1bmljb2RlX2FycmF5X3R5cGUpCi0KLQogZGVmIHJlZ2lzdGVyX2Jp bmFyeV90eXBlY2FzdGVycyhjb25uZWN0aW9uKToKICAgICBwc3ljb3BnMi5leHRlbnNpb25zLnJl Z2lzdGVyX3R5cGUoCiAgICAgICAgIHBzeWNvcGcyLmV4dGVuc2lvbnMubmV3X3R5cGUoCmRpZmYg LS1naXQgYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy90ZXN0X3V0aWxzLnB5IGIv d2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvdGVzdF91dGlscy5weQppbmRleCAzZTUx N2I2Li40NjRhMDllIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGls cy90ZXN0X3V0aWxzLnB5CisrKyBiL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3Rl c3RfdXRpbHMucHkKQEAgLTExNiw3ICsxMTYsNyBAQCBkZWYgY2xlYXJfbm9kZV9pbmZvX2RpY3Qo KToKICAgICAgICAgZGVsIG5vZGVfaW5mb19kaWN0W25vZGVdWzpdCiAKIAotZGVmIGNyZWF0ZV9k YXRhYmFzZShzZXJ2ZXIsIGRiX25hbWUpOgorZGVmIGNyZWF0ZV9kYXRhYmFzZShzZXJ2ZXIsIGRi X25hbWUsIGVuY29kaW5nPU5vbmUpOgogICAgICIiIlRoaXMgZnVuY3Rpb24gdXNlZCB0byBjcmVh dGUgZGF0YWJhc2UgYW5kIHJldHVybnMgdGhlIGRhdGFiYXNlIGlkIiIiCiAgICAgdHJ5OgogICAg ICAgICBjb25uZWN0aW9uID0gZ2V0X2RiX2Nvbm5lY3Rpb24oCkBAIC0xMzAsOCArMTMwLDE0IEBA IGRlZiBjcmVhdGVfZGF0YWJhc2Uoc2VydmVyLCBkYl9uYW1lKToKICAgICAgICAgb2xkX2lzb2xh dGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCiAgICAgICAgIGNvbm5lY3Rp b24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQogICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9u LmN1cnNvcigpCi0gICAgICAgIHBnX2N1cnNvci5leGVjdXRlKAotICAgICAgICAgICAgJycnQ1JF QVRFIERBVEFCQVNFICIlcyIgVEVNUExBVEUgdGVtcGxhdGUwJycnICUgZGJfbmFtZSkKKyAgICAg ICAgaWYgZW5jb2RpbmcgaXMgTm9uZToKKyAgICAgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKAor ICAgICAgICAgICAgICAgICcnJ0NSRUFURSBEQVRBQkFTRSAiJXMiIFRFTVBMQVRFIHRlbXBsYXRl MCcnJyAlIGRiX25hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwZ19jdXJzb3IuZXhl Y3V0ZSgKKyAgICAgICAgICAgICAgICAnJydDUkVBVEUgREFUQUJBU0UgIiVzIiBURU1QTEFURSB0 ZW1wbGF0ZTAKKyAgICAgICAgICAgICAgICBFTkNPRElORz0nJXMnIExDX0NPTExBVEU9JyVzJyBM Q19DVFlQRT0nJXMnICcnJyAlCisgICAgICAgICAgICAgICAgKGRiX25hbWUsIGVuY29kaW5nWzBd LCBlbmNvZGluZ1sxXSwgZW5jb2RpbmdbMV0pKQogICAgICAgICBjb25uZWN0aW9uLnNldF9pc29s YXRpb25fbGV2ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKICAgICAgICAgY29ubmVjdGlvbi5jb21t aXQoKQogCg== --0000000000000b1e6b056df8c956--