Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1alaj6-0006Cj-DC for pgadmin-hackers@arkaria.postgresql.org; Thu, 31 Mar 2016 11:25:24 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1alaj5-0004Yc-SX for pgadmin-hackers@arkaria.postgresql.org; Thu, 31 Mar 2016 11:25:23 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1alair-0004GU-6a for pgadmin-hackers@postgresql.org; Thu, 31 Mar 2016 11:25:09 +0000 Received: from mail-oi0-x236.google.com ([2607:f8b0:4003:c06::236]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1alaim-0003Ck-OB for pgadmin-hackers@postgresql.org; Thu, 31 Mar 2016 11:25:08 +0000 Received: by mail-oi0-x236.google.com with SMTP id p188so23175889oih.2 for ; Thu, 31 Mar 2016 04:25:03 -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:date:message-id:subject:from:to; bh=ywRkh/ZdAcNUk5du9OQG3ztmzpnJasMjG7++DFYJHiA=; b=K7WSCYYnHjVpOgcKA+JMdV1nOERGu231VlNaW+qnkr60PDDmv/Y5kwGmxQv0Nv2adb gN+hLJ2ivmgcr6P6IC8zh7X1Nj1VUqLwfmlEGrxLc2WOoQ/0BHEIkt29CrfzfJ+FhiFe OopvtLAtQnjKTBuQ0Yws0g75mMGafYHhBjlXkDRyxkXj6PsDOXfzG+5Tz776KPB7XTf+ y+KlboHjWlUr/bugI7QUiRZ+KcPFooj/Aq4GyZ7LT5IhTn3uenHxiMLf+YuqGmLItTgg CZJd141wTHygIfd0q0EhHoJo5MqiqimLjV1XKBthd5zTaBZNEFOnoLRypkDvwsNzN14/ EJ9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to; bh=ywRkh/ZdAcNUk5du9OQG3ztmzpnJasMjG7++DFYJHiA=; b=eTPYShtArL0bdX5Q/oW6YNmCsXP9o0aDFke+b0SSCU/WohOXUQhKipsapIHXJWjHbz XqwIPnbfAvJKkk5GqhKiykn0Ody5XTLQqIr+gWwzw57x0iUVRO5yuqgPSvXQsBfnfLmj 5DB7oofRB6TVX+0YWQWJu1la9ZXLycS+1+F+GopW9GK9BztD+7AGBaDsQYjkqpU/MhoY Ue4ykAkQ7pwUyBYYE4W84H7/f0zqmrraCeQsEMjfsk23APcCeiXBZfqFxv28+b/g3HfG mDkhLchB+BEcvliltPyjdC/xvVP6tS16CWZvvpnjSp4Zx2KcO1yiu5vI5jxoc02Ym61h J5Tg== X-Gm-Message-State: AD7BkJJY8mywWskXUVokAqf/ScFNkHHF5NYQe11u/fLQvpCIxtG7mz9EP96jLA2ZZKIPdfvlH5rfIcjpUyzGnB3k MIME-Version: 1.0 X-Received: by 10.157.0.37 with SMTP id 34mr7312560ota.161.1459423501464; Thu, 31 Mar 2016 04:25:01 -0700 (PDT) Received: by 10.202.49.194 with HTTP; Thu, 31 Mar 2016 04:25:01 -0700 (PDT) In-Reply-To: References: Date: Thu, 31 Mar 2016 16:55:01 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch] Add formatted error message support in psycopg2 From: Akshay Joshi To: pgadmin-hackers Content-Type: multipart/mixed; boundary=94eb2c032eda620c67052f56838d X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --94eb2c032eda620c67052f56838d Content-Type: multipart/alternative; boundary=94eb2c032eda620c61052f56838b --94eb2c032eda620c61052f56838b Content-Type: text/plain; charset=UTF-8 Hi Please ignore the last two patches, While implementing Query Tool I have found one more issue in poll function when run queries like "create table" , "insert table". I have added exception handling before fetching the row from the cursor directly. Attached is the modified patch. Please review it and if it looks good please commit it. On Thu, Mar 31, 2016 at 12:37 PM, Akshay Joshi < akshay.joshi@enterprisedb.com> wrote: > Hi > > On Tue, Mar 29, 2016 at 8:09 PM, Akshay Joshi .com> wrote: > >> Hi All >> >> While implementing Query Tool, I came to know we need error message's >> with some extra information and also I have faced one issue regarding >> asynchronous connection polling. I have added support for formatted error >> message and also fixed the issue. >> >> Attached is the patch file. Please review it and let me know the review >> comments if any. >> > > Apart from above, today I fixed one more issue. In case of user cancel > the running transaction, poll function of psycopg2 returns > psycopg2.extensions.POLL_OK, which is mislead by the caller of the > function, so I have added one flag which will be true if user purposely > cancel the transaction and from our poll function we return new status i.e. > ASYNC_CANCEL_TRANSACTION. > > Attached is the modified patch. Please review it and if it looks good > please commit it. > >> >> >> -- >> *Akshay Joshi* >> *Principal Software Engineer * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > > -- > *Akshay Joshi* > *Principal Software Engineer * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- *Akshay Joshi* *Principal Software Engineer * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* --94eb2c032eda620c61052f56838b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi=C2=A0

Please ignore the last two pat= ches, While implementing Query Tool I have found one more issue in poll fun= ction when run queries like "create table" , "insert table&q= uot;. I have added exception handling before fetching the row from the curs= or directly.=C2=A0

Attached is the modified patch. Please review it and if it looks good ple= ase commit it.=C2=A0

<= div class=3D"gmail_quote">On Thu, Mar 31, 2016 at 12:37 PM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi=C2=A0
=
On Tue, Mar 29, 2016 at 8:0= 9 PM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:=
Hi All=C2=A0

While= implementing Query Tool, I came to know we need error message's with s= ome extra information and also I have faced one issue regarding asynchronou= s connection polling. I have added support for formatted error message and = also fixed the issue.=C2=A0

Attached is the patch = file. Please review it and let me know the review comments if any.

=C2=A0 =C2=A0Apart from above, t= oday I fixed one more issue. In case of user cancel the running transaction= , poll function of psycopg2 returns psycopg2.extensions.POLL_OK, which is m= islead by the caller of the function, so I have added one flag which will b= e true if user purposely cancel the transaction and from our poll function = we return new status i.e. ASYNC_CANCEL_TRANSACTION.
=
=C2=A0Attached is the modified patch. Please review it and i= f it looks good please commit it. =C2=A0=C2=A0


--
Akshay Joshi
= Principal Software En= gineer=C2=A0


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
=



<= /div>--
Akshay Joshi<= /div>
Principal S= oftware Engineer=C2=A0
=

Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
=



--
Akshay Joshi
Principal Software Engineer=C2= =A0


=
Pho= ne: +91 20-3058-9517
Mobile: +91 976-788-8246
--94eb2c032eda620c61052f56838b-- --94eb2c032eda620c67052f56838d Content-Type: application/octet-stream; name="Psycopg2_Bug_Fixed_With_Formatted_Error.patch" Content-Disposition: attachment; filename="Psycopg2_Bug_Fixed_With_Formatted_Error.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_img72fm91 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9hYnN0cmFj dC5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9hYnN0cmFjdC5weQpp bmRleCA4YTIzY2NiLi5jMjkwM2QxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi91dGlscy9kcml2ZXIvYWJzdHJhY3QucHkKKysrIGIvd2ViL3BnYWRtaW4v dXRpbHMvZHJpdmVyL2Fic3RyYWN0LnB5CkBAIC0xNDcsNiArMTQ3LDcgQEAg Y2xhc3MgQmFzZUNvbm5lY3Rpb24ob2JqZWN0KToKICAgICBBU1lOQ19SRUFE X1RJTUVPVVQgPSAyCiAgICAgQVNZTkNfV1JJVEVfVElNRU9VVCA9IDMKICAg ICBBU1lOQ19OT1RfQ09OTkVDVEVEID0gNAorICAgIEFTWU5DX0NBTkNFTF9U UkFOU0FDVElPTiA9IDUKIAogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRl ZiBjb25uZWN0KHNlbGYsICoqa3dhcmdzKToKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9fX2luaXRfXy5weSBiL3dl Yi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9fX2luaXRfXy5weQpp bmRleCBkYjkzOGJjLi5kMzU4MDNlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi91dGlscy9kcml2ZXIvcHN5Y29wZzIvX19pbml0X18ucHkKKysrIGIvd2Vi L3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL19faW5pdF9fLnB5CkBA IC0zNSw3ICszNSw3IEBAIGZyb20gLmtleXdvcmRzIGltcG9ydCBTY2FuS2V5 d29yZAogCiBfID0gZ2V0dGV4dAogCi1BU1lOQ19XQUlUX1RJTUVPVVQgPSAw LjEgICMgaW4gc2Vjb25kcyBvciAxMDAgbWlsbGlzZWNvbmRzCitBU1lOQ19X QUlUX1RJTUVPVVQgPSAwLjAxICAjIGluIHNlY29uZHMgb3IgMTAgbWlsbGlz ZWNvbmRzCiAKIAogY2xhc3MgQ29ubmVjdGlvbihCYXNlQ29ubmVjdGlvbik6 CkBAIC0xMDIsNiArMTAyLDExIEBAIGNsYXNzIENvbm5lY3Rpb24oQmFzZUNv bm5lY3Rpb24pOgogICAgICogbWVzc2FnZXMoKQogICAgICAgLSBSZXR1cm5z IHRoZSBsaXN0IG9mIG1lc3NhZ2VzL25vdGljZXMgc2VuZHMgZnJvbSB0aGUg UG9zdGdyZVNRTCBkYXRhYmFzZQogICAgICAgICBzZXJ2ZXIuCisKKyAgICAq IF9mb3JtYXR0ZWRfZXJyb3JfbXNnKGVycl9vYmopCisgICAgICAtIFRoaXMg bWV0aG9kIGlzIHVzZWQgdG8gcGFyc2UgdGhlIHBzeWNvcGcyLkVycm9yIG9i amVjdCBhbmQgcmV0dXJucyB0aGUKKyAgICAgICAgZm9ybWF0dGVkIGVycm9y IG1lc3NhZ2UuCisKICAgICAiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwg bWFuYWdlciwgY29ubl9pZCwgZGIsIGF1dG9fcmVjb25uZWN0PVRydWUsIGFz eW5jPTApOgogICAgICAgICBhc3NlcnQobWFuYWdlciBpcyBub3QgTm9uZSkK QEAgLTExNiw2ICsxMjEsOCBAQCBjbGFzcyBDb25uZWN0aW9uKEJhc2VDb25u ZWN0aW9uKToKICAgICAgICAgc2VsZi5fX2FzeW5jX2N1cnNvciA9IE5vbmUK ICAgICAgICAgc2VsZi5fX2FzeW5jX3F1ZXJ5X2lkID0gTm9uZQogICAgICAg ICBzZWxmLl9fYmFja2VuZF9waWQgPSBOb25lCisgICAgICAgIHNlbGYuZm9y bWF0dGVkX2Vycm9yID0gTm9uZQorICAgICAgICBzZWxmLmlzX2NhbmNlbF90 cmFuc2FjdGlvbiA9IEZhbHNlCiAKICAgICAgICAgc3VwZXIoQ29ubmVjdGlv biwgc2VsZikuX19pbml0X18oKQogCkBAIC0yMjQsNiArMjMxLDcgQEAgRmFp bGVkIHRvIGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNlcnZlcigje3NlcnZl cl9pZH0pIGZvciBjb25uZWN0aW9uICh7Y29ubl9pZH0KIAogICAgICAgICBz ZWxmLmNvbm4gPSBwZ19jb25uCiAgICAgICAgIHNlbGYuX19iYWNrZW5kX3Bp ZCA9IHBnX2Nvbm4uZ2V0X2JhY2tlbmRfcGlkKCkKKyAgICAgICAgc2VsZi5p c19jYW5jZWxfdHJhbnNhY3Rpb24gPSBGYWxzZQogCiAgICAgICAgICMgYXV0 b2NvbW1pdCBmbGFnIGRvZXMgbm90IHdvcmsgd2l0aCBhc3luY2hyb25vdXMg Y29ubmVjdGlvbnMuCiAgICAgICAgICMgQnkgZGVmYXVsdCBhc3luY2hyb25v dXMgY29ubmVjdGlvbiBydW5zIGluIGF1dG9jb21taXQgbW9kZS4KQEAgLTQ0 NywxNSArNDU1LDE3IEBAIEF0dGVtcHQgdG8gcmVjb25uZWN0IGl0IGZhaWxl ZCB3aXRoIHRoZSBiZWxvdyBlcnJvcjoKIAogICAgICAgICByZXR1cm4gVHJ1 ZSwgTm9uZQogCi0gICAgZGVmIGV4ZWN1dGVfYXN5bmMoc2VsZiwgcXVlcnks IHBhcmFtcz1Ob25lKToKKyAgICBkZWYgZXhlY3V0ZV9hc3luYyhzZWxmLCBx dWVyeSwgcGFyYW1zPU5vbmUsIGZvcm1hdHRlZF9lcnJvcj1GYWxzZSk6CiAg ICAgICAgICIiIgogICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4ZWN1dGVzIHRo ZSBnaXZlbiBxdWVyeSBhc3luY2hyb25vdXNseSBhbmQgcmV0dXJucyByZXN1 bHQuCiAKICAgICAgICAgQXJnczoKICAgICAgICAgICAgIHF1ZXJ5OiBTUUwg cXVlcnkgdG8gcnVuLgogICAgICAgICAgICAgcGFyYW1zOiBleHRyYSBwYXJh bWV0ZXJzIHRvIHRoZSBmdW5jdGlvbgorICAgICAgICAgICAgZm9ybWF0dGVk X2Vycm9yOiBpZiBUcnVlIHRoZW4gZnVuY3Rpb24gcmV0dXJuIHRoZSBmb3Jt YXR0ZWQgZXJyb3IKICAgICAgICAgIiIiCiAgICAgICAgIHN0YXR1cywgY3Vy ID0gc2VsZi5fX2N1cnNvcigpCisgICAgICAgIHNlbGYuZm9ybWF0dGVkX2Vy cm9yID0gZm9ybWF0dGVkX2Vycm9yCiAKICAgICAgICAgaWYgbm90IHN0YXR1 czoKICAgICAgICAgICAgIHJldHVybiBGYWxzZSwgc3RyKGN1cikKQEAgLTQ3 MiwxMCArNDgyLDIxIEBAIEV4ZWN1dGUgKGFzeW5jKSBmb3Igc2VydmVyICN7 c2VydmVyX2lkfSAtIHtjb25uX2lkfSAoUXVlcnktaWQ6IHtxdWVyeV9pZH0p Olxue3F1CiAgICAgICAgICkKIAogICAgICAgICB0cnk6CisgICAgICAgICAg ICBzZWxmLmlzX2NhbmNlbF90cmFuc2FjdGlvbiA9IEZhbHNlCiAgICAgICAg ICAgICBjdXIuZXhlY3V0ZShxdWVyeSwgcGFyYW1zKQogICAgICAgICAgICAg cmVzID0gc2VsZi5fd2FpdF90aW1lb3V0KGN1ci5jb25uZWN0aW9uLCBBU1lO Q19XQUlUX1RJTUVPVVQpCiAgICAgICAgIGV4Y2VwdCBwc3ljb3BnMi5FcnJv ciBhcyBwZToKLSAgICAgICAgICAgIGVycm1zZyA9IHN0cihwZSkKKyAgICAg ICAgICAgIGlmIHNlbGYuZm9ybWF0dGVkX2Vycm9yOgorICAgICAgICAgICAg ICAgICMgR2V0IHRoZSBmb3JtYXR0ZWQgZXJyb3IgbWVzc2FnZQorICAgICAg ICAgICAgICAgIGVycm1zZyA9IHNlbGYuX2Zvcm1hdHRlZF9lcnJvcl9tc2co cGUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHBl LnBnZXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGVycm1zZyA9IHBlLnBn ZXJyb3IKKyAgICAgICAgICAgICAgICBlbGlmIHBlLmRpYWcubWVzc2FnZV9k ZXRhaWw6CisgICAgICAgICAgICAgICAgICAgIGVycm1zZyA9IHBlLmRpYWcu bWVzc2FnZV9kZXRhaWwKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICAgICBlcnJtc2cgPSBzdHIocGUpCisKICAgICAgICAgICAg IGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcigiIiIKIEZhaWxlZCB0byBleGVj dXRlIHF1ZXJ5IChleGVjdXRlX2FzeW5jKSBmb3IgdGhlIHNlcnZlciAje3Nl cnZlcl9pZH0gLSB7Y29ubl9pZH0KIChRdWVyeS1pZDoge3F1ZXJ5X2lkfSk6 XG5FcnJvciBNZXNzYWdlOntlcnJtc2d9CkBAIC03MjgsMTEgKzc0OSwxNSBA QCBGYWlsZWQgdG8gcmVzZXQgdGhlIGNvbm5lY3Rpb24gb2YgdGhlIHNlcnZl ciBkdWUgdG8gZm9sbG93aW5nIGVycm9yOgogICAgICAgICBpZiBzdGF0ZSA9 PSBwc3ljb3BnMi5leHRlbnNpb25zLlBPTExfT0s6CiAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5BU1lOQ19PSwogICAgICAgICBlbGlmIHN0YXRlID09IHBz eWNvcGcyLmV4dGVuc2lvbnMuUE9MTF9XUklURToKLSAgICAgICAgICAgIHNl bGVjdC5zZWxlY3QoW10sIFtjb25uLmZpbGVubygpXSwgW10sIHRpbWUpCi0g ICAgICAgICAgICByZXR1cm4gc2VsZi5BU1lOQ19XUklURV9USU1FT1VUCisg ICAgICAgICAgICBpZiBzZWxlY3Quc2VsZWN0KFtdLCBbY29ubi5maWxlbm8o KV0sIFtdLCB0aW1lKSA9PSAoW10sIFtdLCBbXSk6CisgICAgICAgICAgICAg ICAgcmV0dXJuIHNlbGYuQVNZTkNfV1JJVEVfVElNRU9VVAorICAgICAgICAg ICAgIyBDYWxsIHJlY3Vyc2l2ZWx5IGlmIG5vIHRpbWVvdXQKKyAgICAgICAg ICAgIHNlbGYuX3dhaXRfdGltZW91dChjb25uLCB0aW1lKQogICAgICAgICBl bGlmIHN0YXRlID09IHBzeWNvcGcyLmV4dGVuc2lvbnMuUE9MTF9SRUFEOgot ICAgICAgICAgICAgc2VsZWN0LnNlbGVjdChbY29ubi5maWxlbm8oKV0sIFtd LCBbXSwgdGltZSkKLSAgICAgICAgICAgIHJldHVybiBzZWxmLkFTWU5DX1JF QURfVElNRU9VVAorICAgICAgICAgICAgaWYgc2VsZWN0LnNlbGVjdChbY29u bi5maWxlbm8oKV0sIFtdLCBbXSwgdGltZSkgPT0gKFtdLCBbXSwgW10pOgor ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLkFTWU5DX1JFQURfVElNRU9V VAorCisgICAgICAgICAgICBzZWxmLl93YWl0X3RpbWVvdXQoY29ubiwgdGlt ZSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlIHBzeWNvcGcy Lk9wZXJhdGlvbmFsRXJyb3IoInBvbGwoKSByZXR1cm5lZCAlcyBmcm9tIF93 YWl0X3RpbWVvdXQgZnVuY3Rpb24iICUgc3RhdGUpCiAKQEAgLTc1MSwxOSAr Nzc2LDQ1IEBAIEZhaWxlZCB0byByZXNldCB0aGUgY29ubmVjdGlvbiBvZiB0 aGUgc2VydmVyIGR1ZSB0byBmb2xsb3dpbmcgZXJyb3I6CiAgICAgICAgIGN1 cnJlbnRfYXBwLmxvZ2dlci5sb2coMjUsICIiIgogUG9sbGluZyByZXN1bHQg Zm9yIChRdWVyeS1pZDoge3F1ZXJ5X2lkfSkiIiIuZm9ybWF0KHF1ZXJ5X2lk PXNlbGYuX19hc3luY19xdWVyeV9pZCkpCiAKLSAgICAgICAgc3RhdHVzID0g c2VsZi5fd2FpdF90aW1lb3V0KHNlbGYuY29ubiwgQVNZTkNfV0FJVF9USU1F T1VUKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzdGF0dXMgPSBzZWxm Ll93YWl0X3RpbWVvdXQoc2VsZi5jb25uLCBBU1lOQ19XQUlUX1RJTUVPVVQp CisgICAgICAgIGV4Y2VwdCBwc3ljb3BnMi5FcnJvciBhcyBwZToKKyAgICAg ICAgICAgIGlmIHNlbGYuZm9ybWF0dGVkX2Vycm9yOgorICAgICAgICAgICAg ICAgICMgR2V0IHRoZSBmb3JtYXR0ZWQgZXJyb3IgbWVzc2FnZQorICAgICAg ICAgICAgICAgIGVycm1zZyA9IHNlbGYuX2Zvcm1hdHRlZF9lcnJvcl9tc2co cGUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHBl LnBnZXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGVycm1zZyA9IHBlLnBn ZXJyb3IKKyAgICAgICAgICAgICAgICBlbGlmIHBlLmRpYWcubWVzc2FnZV9k ZXRhaWw6CisgICAgICAgICAgICAgICAgICAgIGVycm1zZyA9IHBlLmRpYWcu bWVzc2FnZV9kZXRhaWwKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICAgICBlcnJtc2cgPSBzdHIocGUpCisgICAgICAgICAgICBy ZXR1cm4gRmFsc2UsIGVycm1zZywgTm9uZQorCiAgICAgICAgIGNvbGluZm8g PSBOb25lCiAgICAgICAgIGlmIHN0YXR1cyA9PSBzZWxmLkFTWU5DX09LOgor CisgICAgICAgICAgICAjIGlmIHVzZXIgaGFzIGNhbmNlbGxlZCB0aGUgdHJh bnNhY3Rpb24gdGhlbiBjaGFuZ2VkIHRoZSBzdGF0dXMKKyAgICAgICAgICAg IGlmIHNlbGYuaXNfY2FuY2VsX3RyYW5zYWN0aW9uOgorICAgICAgICAgICAg ICAgIHN0YXR1cyA9IHNlbGYuQVNZTkNfQ0FOQ0VMX1RSQU5TQUNUSU9OCisg ICAgICAgICAgICAgICAgcmV0dXJuIHN0YXR1cywgTm9uZSwgY29saW5mbwor CiAgICAgICAgICAgICAjIEZldGNoIHRoZSBjb2x1bW4gaW5mb3JtYXRpb24K LSAgICAgICAgICAgIGNvbGluZm8gPSBbZGVzYyBmb3IgZGVzYyBpbiBjdXIu ZGVzY3JpcHRpb25dCisgICAgICAgICAgICBpZiBjdXIuZGVzY3JpcHRpb24g aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgY29saW5mbyA9IFtkZXNj IGZvciBkZXNjIGluIGN1ci5kZXNjcmlwdGlvbl0KIAorICAgICAgICAgICAg cmVzdWx0ID0gY3VyLnN0YXR1c21lc3NhZ2UKICAgICAgICAgICAgIGlmIGN1 ci5yb3djb3VudCA+IDA6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gW10K LSAgICAgICAgICAgICAgICAjIEZldGNoIHRoZSBkYXRhIHJvd3MuCi0gICAg ICAgICAgICAgICAgZm9yIHJvdyBpbiBjdXI6Ci0gICAgICAgICAgICAgICAg ICAgIHJlc3VsdC5hcHBlbmQoZGljdChyb3cpKQotICAgICAgICAgICAgICAg IHNlbGYuX19hc3luY19jdXJzb3IgPSBOb25lCi0gICAgICAgICAgICAgICAg cmV0dXJuIHN0YXR1cywgcmVzdWx0LCBjb2xpbmZvCisKKyAgICAgICAgICAg ICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGZvciByb3cgaW4gY3Vy OgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkaWN0 KHJvdykpCisgICAgICAgICAgICAgICAgZXhjZXB0IHBzeWNvcGcyLlByb2dy YW1taW5nRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0 ID0gY3VyLnN0YXR1c21lc3NhZ2UKKyAgICAgICAgICAgIHNlbGYuX19hc3lu Y19jdXJzb3IgPSBOb25lCisgICAgICAgICAgICByZXR1cm4gc3RhdHVzLCBy ZXN1bHQsIGNvbGluZm8KKwogICAgICAgICByZXR1cm4gc3RhdHVzLCBOb25l LCBjb2xpbmZvCiAKICAgICBkZWYgY2FuY2VsX3RyYW5zYWN0aW9uKHNlbGYs IGNvbm5faWQsIGRpZD1Ob25lKToKQEAgLTgyMyw2ICs4NzQsOSBAQCBQb2xs aW5nIHJlc3VsdCBmb3IgKFF1ZXJ5LWlkOiB7cXVlcnlfaWR9KSIiIi5mb3Jt YXQocXVlcnlfaWQ9c2VsZi5fX2FzeW5jX3F1ZXJ5XwogICAgICAgICBlbHNl OgogICAgICAgICAgICAgaWYgc2VsZi5jb25uZWN0ZWQoKToKICAgICAgICAg ICAgICAgICBzdGF0dXMsIG1zZyA9IHNlbGYuZXhlY3V0ZV92b2lkKHF1ZXJ5 KQorCisgICAgICAgICAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICBjYW5jZWxfY29ubi5pc19jYW5jZWxfdHJhbnNhY3Rpb24gPSBU cnVlCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHN0YXR1 cyA9IEZhbHNlCiAgICAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgiTm90 IGNvbm5lY3RlZCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLiIpCkBAIC04MzUs NiArODg5LDY0IEBAIFBvbGxpbmcgcmVzdWx0IGZvciAoUXVlcnktaWQ6IHtx dWVyeV9pZH0pIiIiLmZvcm1hdChxdWVyeV9pZD1zZWxmLl9fYXN5bmNfcXVl cnlfCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5jb25uLm5v dGljZXMgaWYgc2VsZi5jb25uIGVsc2UgW10KIAorICAgIGRlZiBfZm9ybWF0 dGVkX2Vycm9yX21zZyhzZWxmLCBlcnJfb2JqKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gcGFyc2UgdGhlIHBzeWNv cGcyLkVycm9yIG9iamVjdAorICAgICAgICBhbmQgcmV0dXJucyB0aGUgZm9y bWF0dGVkIGVycm9yIG1lc3NhZ2UuCisKKyAgICAgICAgQXJnczoKKyAgICAg ICAgICAgIGVycl9vYmo6IHBzeWNvcGcyLkVycm9yIG9iamVjdAorCisgICAg ICAgIFJldHVybnM6IEZvcm1hdHRlZCBlcnJvciBtZXNzYWdlCisgICAgICAg ICIiIgorCisgICAgICAgIGlmIGVycl9vYmoucGdlcnJvcjoKKyAgICAgICAg ICAgIGVycm1zZyA9IGVycl9vYmoucGdlcnJvcgorICAgICAgICBlbGlmIGVy cl9vYmouZGlhZy5tZXNzYWdlX2RldGFpbDoKKyAgICAgICAgICAgIGVycm1z ZyA9IGVycl9vYmouZGlhZy5tZXNzYWdlX2RldGFpbAorICAgICAgICBlbHNl OgorICAgICAgICAgICAgZXJybXNnID0gc3RyKGVycl9vYmopCisKKyAgICAg ICAgZXJybXNnICs9ICcqKioqKioqKioqIEVycm9yICoqKioqKioqKipcblxu JworCisgICAgICAgIGlmIGVycl9vYmouZGlhZy5zZXZlcml0eSBpcyBub3Qg Tm9uZSBcCisgICAgICAgICAgICAgICAgYW5kIGVycl9vYmouZGlhZy5tZXNz YWdlX3ByaW1hcnkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBlcnJtc2cg Kz0gZXJyX29iai5kaWFnLnNldmVyaXR5ICsgIjogIiArIGVycl9vYmouZGlh Zy5tZXNzYWdlX3ByaW1hcnkKKyAgICAgICAgZWxpZiBlcnJfb2JqLmRpYWcu bWVzc2FnZV9wcmltYXJ5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZXJy bXNnICs9IGVycl9vYmouZGlhZy5tZXNzYWdlX3ByaW1hcnkKKworICAgICAg ICBpZiBlcnJfb2JqLmRpYWcuc3Fsc3RhdGUgaXMgbm90IE5vbmU6CisgICAg ICAgICAgICBpZiBub3QgZXJybXNnWzotMV0uZW5kc3dpdGgoJ1xuJyk6Cisg ICAgICAgICAgICAgICAgZXJybXNnICs9ICdcbicKKyAgICAgICAgICAgIGVy cm1zZyArPSBnZXR0ZXh0KCdTUUwgc3RhdGU6ICcpCisgICAgICAgICAgICBl cnJtc2cgKz0gZXJyX29iai5kaWFnLnNxbHN0YXRlCisKKyAgICAgICAgaWYg ZXJyX29iai5kaWFnLm1lc3NhZ2VfZGV0YWlsIGlzIG5vdCBOb25lOgorICAg ICAgICAgICAgaWYgbm90IGVycm1zZ1s6LTFdLmVuZHN3aXRoKCdcbicpOgor ICAgICAgICAgICAgICAgIGVycm1zZyArPSAnXG4nCisgICAgICAgICAgICBl cnJtc2cgKz0gZ2V0dGV4dCgnRGV0YWlsOiAnKQorICAgICAgICAgICAgZXJy bXNnICs9IGVycl9vYmouZGlhZy5tZXNzYWdlX2RldGFpbAorCisgICAgICAg IGlmIGVycl9vYmouZGlhZy5tZXNzYWdlX2hpbnQgaXMgbm90IE5vbmU6Cisg ICAgICAgICAgICBpZiBub3QgZXJybXNnWzotMV0uZW5kc3dpdGgoJ1xuJyk6 CisgICAgICAgICAgICAgICAgZXJybXNnICs9ICdcbicKKyAgICAgICAgICAg IGVycm1zZyArPSBnZXR0ZXh0KCdIaW50OiAnKQorICAgICAgICAgICAgZXJy bXNnICs9IGVycl9vYmouZGlhZy5tZXNzYWdlX2hpbnQKKworICAgICAgICBp ZiBlcnJfb2JqLmRpYWcuc3RhdGVtZW50X3Bvc2l0aW9uIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgaWYgbm90IGVycm1zZ1s6LTFdLmVuZHN3aXRoKCdc bicpOgorICAgICAgICAgICAgICAgIGVycm1zZyArPSAnXG4nCisgICAgICAg ICAgICBlcnJtc2cgKz0gZ2V0dGV4dCgnQ2hhcmFjdGVyOiAnKQorICAgICAg ICAgICAgZXJybXNnICs9IGVycl9vYmouZGlhZy5zdGF0ZW1lbnRfcG9zaXRp b24KKworICAgICAgICBpZiBlcnJfb2JqLmRpYWcuY29udGV4dCBpcyBub3Qg Tm9uZToKKyAgICAgICAgICAgIGlmIG5vdCBlcnJtc2dbOi0xXS5lbmRzd2l0 aCgnXG4nKToKKyAgICAgICAgICAgICAgICBlcnJtc2cgKz0gJ1xuJworICAg ICAgICAgICAgZXJybXNnICs9IGdldHRleHQoJ0NvbnRleHQ6ICcpCisgICAg ICAgICAgICBlcnJtc2cgKz0gZXJyX29iai5kaWFnLmNvbnRleHQKKworICAg ICAgICByZXR1cm4gZXJybXNnCisKIAogY2xhc3MgU2VydmVyTWFuYWdlcihv YmplY3QpOgogICAgICIiIgo= --94eb2c032eda620c67052f56838d Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --94eb2c032eda620c67052f56838d--