Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dHrs0-000657-4E for pgadmin-hackers@arkaria.postgresql.org; Mon, 05 Jun 2017 13:16:32 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dHrrz-0000Be-Aw for pgadmin-hackers@arkaria.postgresql.org; Mon, 05 Jun 2017 13:16:31 +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 1dHrrk-0008Dp-5p for pgadmin-hackers@postgresql.org; Mon, 05 Jun 2017 13:16:16 +0000 Received: from mail-wm0-x231.google.com ([2a00:1450:400c:c09::231]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dHrrf-0007cV-HN for pgadmin-hackers@postgresql.org; Mon, 05 Jun 2017 13:16:15 +0000 Received: by mail-wm0-x231.google.com with SMTP id 7so72897261wmo.1 for ; Mon, 05 Jun 2017 06:16:11 -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=caVWtEOVxDiqXIUVXzKxiEyPbfXt/USkpejj7S9NvuQ=; b=duvzhgBREfaxhIi8Nh3H2lALf/47DBo5Tr7OAUSiFFPTKeHanaLaiKwGyajpXBqR5y qFt/lx254WTDo10dJd+305ormy1tafIm4TxyvoXMxBxdr2KVzr3Xmj0tVxr+L+EPO/o8 23/oEGeb6e2IaX+M3g0pcQvDHIl9fcfdPgcJLSCjOdpvtq+Mntxm81WmoLaAFuIlWfBM IXM7i0LA2NQNpR+HXbRmzyv+V01Nl03Qq9IZzrLoTwyXBSq9rzfTdhs8c/mLgNthwXSk MQ6k5nqVr85YvchTK15wuS2jgCakU+MPu9i1MS8DxpQzqf8aUOjrbrI6m7KWVZDlWJyK R7nQ== 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=caVWtEOVxDiqXIUVXzKxiEyPbfXt/USkpejj7S9NvuQ=; b=nftW67eZhhb0g+cWC8X0g+qYgcqRcp9Ca0r522g9GPXsdLLaHyToTayIGGBqwiRr5U slQxGWiipEWv+WezhgRjtwkE7PR2LPdoXzP4YS36ZsHL9cSKmpeOTNzd7apbJXCFMMOO AwfyjzE3EEdhcnHD/P9RnzQYKdW8vh6gQ8fGVGyCZGRJWMCGSwaptdHUTWnWXWdrz0fw MBZQuo1/cEa4/THO19epExiu7Pi8FjNFXCW3y8VfI15uaNj56X0QBmjvRp4rRnEadCOe I/0lAEj8G37C7cee8jKAomu12QKWBKcc9+8RUAxXsaVgFFoXuFCwNT1luRA3LvQpeo6L FQPw== X-Gm-Message-State: AODbwcDvLEyLlQ1N2wbfmM75Ntwr/X0cq9c1qaLt6AMIjRj6Bmcs+Pk1 +loCywohL+02mpcUCAH6Caz6zXEB1I2VkBc= X-Received: by 10.28.51.73 with SMTP id z70mr7558583wmz.65.1496668570173; Mon, 05 Jun 2017 06:16:10 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.19.138 with HTTP; Mon, 5 Jun 2017 06:15:39 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Mon, 5 Jun 2017 18:45:39 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch][Feature #1971]: Remember column sizes between executions of the same query in the query tool To: pgadmin-hackers Content-Type: multipart/mixed; boundary="001a11443ed679d72b0551364e15" 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 --001a11443ed679d72b0551364e15 Content-Type: multipart/alternative; boundary="001a11443ed679d7260551364e13" --001a11443ed679d7260551364e13 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Staged changes are missed in previous patch, so please ignore. Please find attached updated patch. On Mon, Jun 5, 2017 at 4:29 PM, Surinder Kumar < surinder.kumar@enterprisedb.com> wrote: > Hi > > This patch contains two fixes: > > 1) In Query/tool or Edit grid, the width of table column header is fixed > depending on the column type(int, boolean, char etc.) due to which the > column name or type appears cut from right and doesn't looks good from us= er > point of view. The main concern was to display as much as the content of > column should be displayed. > > Now the width of column is decided using the text length of column name or > column type so that the column takes exact width it required and it don't > appears cut. > > 2) Remember column size after re-running a query. > > The approach is to extract table name from the query executed and use it > to store its columns width. > Whenever the column(s) width of a table is adjusted, the corresponding > values are updated into the object and used every time the same query is > executed. > > If a query is executed for e.g: > > SELECT generate_series(1, 1000) as id, generate_series(1, 1000) as name, > generate_series(1, 1000) as age > > =E2=80=8Bit =E2=80=8B > displays 3 columns > =E2=80=8Bbut don't have any table name. In that case, > i use a hash generator function which returns unique hash for a query > written in query editor and adjusted column(s) width are stored against > that hash in object. > > Is there any way to get temporary table name(avoiding unique hash) for > such queries ?=E2=80=8B > > Also, Moved utilities functions into pgadmin/static/utils.js > > Please find attached patch and review. > > Thanks, > Surinder Kumar > --001a11443ed679d7260551364e13 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Sta= ged changes are missed in previous patch, so please ignore.
Please find attached updated p= atch.

= On Mon, Jun 5, 2017 at 4:29 PM, Surinder Kumar <surinder.kum= ar@enterprisedb.com> wrote:
Hi=

This patch contains two = fixes:

1) In Query/tool o= r Edit grid, the width of table column header is fixed depending on the col= umn type(int, boolean, char etc.) due to which the column name or type appe= ars cut from right and doesn't looks good from user point of view. The = main concern was to display as much as the content of column should be disp= layed.

Now the width of c= olumn is decided using the text length of column name or column type so tha= t the column takes exact width it required and it don't appears cut.

2)=C2=A0Remember column size after re-running a query= .

= The approach is to extract table name from the query executed and use it to= store its columns width.
Whenever the co= lumn(s) width of a table is adjusted, the corresponding values are updated = into the object and used every time the same query is executed.

If a query is= executed for e.g:

SELECT= generate_series(1, 1000) as id, generate_series(1, 1000) as name, generate= _series(1, 1000) as age

=E2=80=8Bit =E2=80= =8B
displays 3 columns
=E2=80=8Bbut don't have any table name. In that = case,
=C2=A0i use a hash generator function which returns unique hash for a= query written in query editor and adjusted column(s) width are stored agai= nst that hash in object.

Is there any way to get temporary table name(= avoiding unique hash) for such queries ?=E2=80=8B

Also, Moved utilities funct= ions into pgadmin/static/utils.js=C2=A0
<= br>
Please find attached patch and review= .

= Thanks,
Surinder Kumar

--001a11443ed679d7260551364e13-- --001a11443ed679d72b0551364e15 Content-Type: application/octet-stream; name="Feature_1971.patch" Content-Disposition: attachment; filename="Feature_1971.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3k5rn5z1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmEwODUzCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3V0aWxzLmpzCkBAIC0wLDAg KzEsNTggQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLwor Ly8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vCisvLyBUaGlzIGZpbGUgY29udGFpbnMgY29tbW9uIHV0aWxp dGllcyBmdW5jdGlvbnMgdXNlZCBpbiBzcWxlZGl0b3IgbW9kdWxlcworCitk ZWZpbmUoWydqcXVlcnknXSwKKyAgZnVuY3Rpb24gKCQpIHsKKyAgICB2YXIg c3FsRWRpdG9yVXRpbHMgPSB7CisgICAgICAvKiBSZWZlcmVuY2UgbGluayBo dHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEwNTAzNC9jcmVh dGUtZ3VpZC11dWlkLWluLWphdmFzY3JpcHQKKyAgICAgICAqIE1vZGlmaWVk IGFzIHBlciByZXF1aXJlbWVudC4KKyAgICAgICAqLworICAgICAgZXBpY1Jh bmRvbVN0cmluZzogZnVuY3Rpb24oYikgeworICAgICAgICB2YXIgcyA9IFtd OworICAgICAgICB2YXIgaGV4RGlnaXRzID0gIjAxMjM0NTY3ODlhYmNkZWYi OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM2OyBpKyspIHsKKyAg ICAgICAgICAgIHNbaV0gPSBoZXhEaWdpdHMuc3Vic3RyKAorICAgICAgICAg ICAgICAgICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAweDEwKSwg MQorICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICAv LyBiaXRzIDEyLTE1IG9mIHRoZSB0aW1lX2hpX2FuZF92ZXJzaW9uIGZpZWxk IHRvIDAwMTAKKyAgICAgICAgc1sxNF0gPSAiNCI7CisgICAgICAgIC8vIGJp dHMgNi03IG9mIHRoZSBjbG9ja19zZXFfaGlfYW5kX3Jlc2VydmVkIHRvIDAx CisgICAgICAgIHNbMTldID0gaGV4RGlnaXRzLnN1YnN0cigoc1sxOV0gJiAw eDMpIHwgMHg4LCAxKTsKKyAgICAgICAgc1s4XSA9IHNbMTNdID0gc1sxOF0g PSBzWzIzXSA9ICItIjsKKworICAgICAgICB2YXIgdXVpZCA9IHMuam9pbigi Iik7CisgICAgICAgIHJldHVybiB1dWlkLnJlcGxhY2UoLy0vZywgJycpLnN1 YnN0cigwLCBiKTsKKyAgICAgIH0sCisKKyAgICAgIC8vIFJldHVybnMgYSB1 bmlxdWUgaGFzaCBmb3IgaW5wdXQgc3RyaW5nCisgICAgICBnZXRIYXNoOiBm dW5jdGlvbihpbnB1dCkgeworICAgICAgICB2YXIgaGFzaCA9IDAsIGxlbiA9 IGlucHV0Lmxlbmd0aDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBs ZW47IGkrKykgeworICAgICAgICAgIGhhc2ggID0gKChoYXNoIDw8IDUpIC0g aGFzaCkgKyBpbnB1dC5jaGFyQ29kZUF0KGkpOworICAgICAgICAgIGhhc2gg fD0gMDsgLy8gdG8gMzJiaXQgaW50ZWdlcgorICAgICAgICB9CisgICAgICAg IHJldHVybiBoYXNoOworICAgICAgfSwKKyAgICAgIGNhbGN1bGF0ZV9jb2x1 bW5fd2lkdGg6IGZ1bmN0aW9uICh0ZXh0KSB7CisgICAgICAgIC8vIENhbGN1 bGF0ZSBjb2x1bW4gaGVhZGVyIHdpZHRoIGJhc2VkIG9uIGNvbHVtbiBuYW1l IG9yIHR5cGUKKyAgICAgICAgLy8gQ3JlYXRlIGEgdGVtcG9yYXJ5IGVsZW1l bnQgd2l0aCBnaXZlbiBsYWJlbCwgYXBwZW5kIHRvIGJvZHkKKyAgICAgICAg Ly8gY2FsY3VsYXRlIGl0cyB3aWR0aCBhbmQgcmVtb3ZlIHRoZSBlbGVtZW50 LgorICAgICAgICAkKCdib2R5JykuYXBwZW5kKAorICAgICAgICAgICAgJzxz cGFuIGlkPSJwZ190ZXh0IiBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuOyI+ JysgdGV4dCArICc8L3NwYW4+JworICAgICAgICApOworICAgICAgICB2YXIg d2lkdGggPSAkKCcjcGdfdGV4dCcpLndpZHRoKCkgKyAzMDsKKyAgICAgICAg JCgnI3BnX3RleHQnKS5yZW1vdmUoKTsgLy8gcmVtb3ZlIGVsZW1lbnQKKwor ICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgICB9CisgICAgfTsKKyAgICBy ZXR1cm4gc3FsRWRpdG9yVXRpbHM7Cit9KTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL2pz L3NxbGVkaXRvci5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90 ZW1wbGF0ZXMvc3FsZWRpdG9yL2pzL3NxbGVkaXRvci5qcwppbmRleCA1OTdj NDM2Li44ZWM4NTQ1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9qcy9zcWxlZGl0b3IuanMK KysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9z cWxlZGl0b3IvanMvc3FsZWRpdG9yLmpzCkBAIC0zLDcgKzMsNyBAQCBkZWZp bmUoCiAgICAgJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3VuZGVyc2NvcmUu c3RyaW5nJywgJ2FsZXJ0aWZ5JywgJ3BnYWRtaW4nLAogICAgICdiYWNrYm9u ZScsICdiYWNrZ3JpZCcsICdjb2RlbWlycm9yJywgJ3BnYWRtaW4ubWlzYy5l eHBsYWluJywKICAgICAnc291cmNlcy9zZWxlY3Rpb24vZ3JpZF9zZWxlY3Rv cicsICdzb3VyY2VzL3NlbGVjdGlvbi9jbGlwYm9hcmQnLAotICAgICdzb3Vy Y2VzL3NlbGVjdGlvbi9jb3B5X2RhdGEnLAorICAgICdzb3VyY2VzL3NlbGVj dGlvbi9jb3B5X2RhdGEnLCAnc291cmNlcy91dGlscycsCiAKICAgICAnc2xp Y2tncmlkJywgJ2Jvb3RzdHJhcCcsICdwZ2FkbWluLmJyb3dzZXInLCAnd2Nk b2NrZXInLAogICAgICdjb2RlbWlycm9yL21vZGUvc3FsL3NxbCcsICdjb2Rl bWlycm9yL2FkZG9uL3NlbGVjdGlvbi9tYXJrLXNlbGVjdGlvbicsCkBAIC0y Nyw3ICsyNyw4IEBAIGRlZmluZSgKICAgICAnc2xpY2tncmlkL3NsaWNrLmdy aWQnCiAgIF0sCiAgIGZ1bmN0aW9uKAotICAgICQsIF8sIFMsIGFsZXJ0aWZ5 LCBwZ0FkbWluLCBCYWNrYm9uZSwgQmFja2dyaWQsIENvZGVNaXJyb3IsIHBn RXhwbGFpbiwgR3JpZFNlbGVjdG9yLCBjbGlwYm9hcmQsIGNvcHlEYXRhCisg ICAgJCwgXywgUywgYWxlcnRpZnksIHBnQWRtaW4sIEJhY2tib25lLCBCYWNr Z3JpZCwgQ29kZU1pcnJvciwgcGdFeHBsYWluLCBHcmlkU2VsZWN0b3IsIGNs aXBib2FyZCwgY29weURhdGEsCisgICAgdXRpbHMKICAgKSB7CiAgICAgLyog UmV0dXJuIGJhY2ssIHRoaXMgaGFzIGJlZW4gY2FsbGVkIG1vcmUgdGhhbiBv bmNlICovCiAgICAgaWYgKHBnQWRtaW4uU3FsRWRpdG9yKQpAQCAtMzksMjgg KzQwLDYgQEAgZGVmaW5lKAogICAgICAgICBwZ0Jyb3dzZXIgPSBwZ0FkbWlu LkJyb3dzZXIsCiAgICAgICAgIFNsaWNrID0gd2luZG93LlNsaWNrOwogCi0g ICAgLyogUmVmZXJlbmNlIGxpbmsKLSAgICAgKiBodHRwOi8vc3RhY2tvdmVy Zmxvdy5jb20vcXVlc3Rpb25zLzEwNTAzNC9jcmVhdGUtZ3VpZC11dWlkLWlu LWphdmFzY3JpcHQKLSAgICAgKiBNb2RpZmllZCBhcyBwZXIgcmVxdWlyZW1l bnQuCi0gICAgICovCi0gICAgZnVuY3Rpb24gZXBpY1JhbmRvbVN0cmluZyhi KSB7Ci0gICAgICB2YXIgcyA9IFtdOwotICAgICAgdmFyIGhleERpZ2l0cyA9 ICIwMTIzNDU2Nzg5YWJjZGVmIjsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBp IDwgMzY7IGkrKykgewotICAgICAgICAgIHNbaV0gPSBoZXhEaWdpdHMuc3Vi c3RyKAotICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRv bSgpICogMHgxMCksIDEKLSAgICAgICAgICAgICAgICApOwotICAgICAgfQot ICAgICAgLy8gYml0cyAxMi0xNSBvZiB0aGUgdGltZV9oaV9hbmRfdmVyc2lv biBmaWVsZCB0byAwMDEwCi0gICAgICBzWzE0XSA9ICI0IjsKLSAgICAgIC8v IGJpdHMgNi03IG9mIHRoZSBjbG9ja19zZXFfaGlfYW5kX3Jlc2VydmVkIHRv IDAxCi0gICAgICBzWzE5XSA9IGhleERpZ2l0cy5zdWJzdHIoKHNbMTldICYg MHgzKSB8IDB4OCwgMSk7Ci0gICAgICBzWzhdID0gc1sxM10gPSBzWzE4XSA9 IHNbMjNdID0gIi0iOwotCi0gICAgICB2YXIgdXVpZCA9IHMuam9pbigiIik7 Ci0gICAgICByZXR1cm4gdXVpZC5yZXBsYWNlKC8tL2csICcnKS5zdWJzdHIo MCwgYik7Ci0gICAgfTsKLQogICAgIC8vIERlZmluZSBrZXkgY29kZXMgZm9y IHNob3J0Y3V0IGtleXMKICAgICB2YXIgRjVfS0VZID0gMTE2LAogICAgICAg ICBGN19LRVkgPSAxMTgsCkBAIC03Myw2ICs1Miw3IEBAIGRlZmluZSgKICAg ICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKG9wdHMpIHsKICAgICAgICAgdGhp cy4kZWwgPSBvcHRzLmVsOwogICAgICAgICB0aGlzLmhhbmRsZXIgPSBvcHRz LmhhbmRsZXI7CisgICAgICAgIHRoaXMuaGFuZGxlclsnY29sX3NpemUnXSA9 IHt9OwogICAgICAgfSwKIAogICAgICAgLy8gQmluZCBhbGwgdGhlIGV2ZW50 cwpAQCAtNDEwLDEyICszOTAsMTggQEAgZGVmaW5lKAogICAgICAgLyogVG8g cHJvbXB0IHVzZXIgZm9yIHVuc2F2ZWQgY2hhbmdlcyAqLwogICAgICAgdXNl cl9jb25maXJtYXRpb246IGZ1bmN0aW9uKHBhbmVsLCBtc2cpIHsKICAgICAg ICAgLy8gSWYgdGhlcmUgaXMgYW55dGhpbmcgdG8gc2F2ZSB0aGVuIHByb21w dCB1c2VyCisgICAgICAgIHZhciB0aGF0ID0gdGhpczsKICAgICAgICAgYWxl cnRpZnkuY29uZmlybSgie3sgXygnVW5zYXZlZCBjaGFuZ2VzJykgfX0iLCBt c2csCiAgICAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAvLyBE byBub3RoaW5nIGFzIHVzZXIgZG8gbm90IHdhbnQgdG8gc2F2ZSwganVzdCBj b250aW51ZQogICAgICAgICAgICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0g bnVsbDsKICAgICAgICAgICAgIHBhbmVsLm9mZih3Y0RvY2tlci5FVkVOVC5D TE9TSU5HKTsKKyAgICAgICAgICAgIC8vIHJlbW92ZSBjb2xfc2l6ZSBvYmpl Y3Qgb24gcGFuZWwgY2xvc2UKKyAgICAgICAgICAgIGlmICghXy5pc1VuZGVm aW5lZCh0aGF0LmhhbmRsZXIuY29sX3NpemUpKSB7CisgICAgICAgICAgICAg IGRlbGV0ZSB0aGF0LmhhbmRsZXIuY29sX3NpemU7CisgICAgICAgICAgICB9 CiAgICAgICAgICAgICB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5kb2Nr ZXIucmVtb3ZlUGFuZWwocGFuZWwpOworCiAgICAgICAgICAgfSwKICAgICAg ICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIC8vIFN0b3AsIFVzZXIg d2FudHMgdG8gc2F2ZQpAQCAtNDI2LDUzICs0MTIsNiBAQCBkZWZpbmUoCiAg ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgIH0sCiAKLSAgICAgIGdldF9j b2x1bW5fd2lkdGg6IGZ1bmN0aW9uIChjb2x1bW5fdHlwZSwgZ3JpZF93aWR0 aCkgewotCi0gICAgICAgIHN3aXRjaChjb2x1bW5fdHlwZSkgewotICAgICAg ICAgIGNhc2UgImJpZ2ludCI6Ci0gICAgICAgICAgY2FzZSAiYmlnaW50W10i OgotICAgICAgICAgIGNhc2UgImJpZ3NlcmlhbCI6Ci0gICAgICAgICAgY2Fz ZSAiYml0IjoKLSAgICAgICAgICBjYXNlICJiaXRbXSI6Ci0gICAgICAgICAg Y2FzZSAiYml0IHZhcnlpbmciOgotICAgICAgICAgIGNhc2UgImJpdCB2YXJ5 aW5nW10iOgotICAgICAgICAgIGNhc2UgIlwiY2hhclwiIjoKLSAgICAgICAg ICBjYXNlICJkZWNpbWFsIjoKLSAgICAgICAgICBjYXNlICJkZWNpbWFsW10i OgotICAgICAgICAgIGNhc2UgImRvdWJsZSBwcmVjaXNpb24iOgotICAgICAg ICAgIGNhc2UgImRvdWJsZSBwcmVjaXNpb25bXSI6Ci0gICAgICAgICAgY2Fz ZSAiaW50NHJhbmdlIjoKLSAgICAgICAgICBjYXNlICJpbnQ0cmFuZ2VbXSI6 Ci0gICAgICAgICAgY2FzZSAiaW50OHJhbmdlIjoKLSAgICAgICAgICBjYXNl ICJpbnQ4cmFuZ2VbXSI6Ci0gICAgICAgICAgY2FzZSAiaW50ZWdlciI6Ci0g ICAgICAgICAgY2FzZSAiaW50ZWdlcltdIjoKLSAgICAgICAgICBjYXNlICJt b25leSI6Ci0gICAgICAgICAgY2FzZSAibW9uZXlbXSI6Ci0gICAgICAgICAg Y2FzZSAibnVtZXJpYyI6Ci0gICAgICAgICAgY2FzZSAibnVtZXJpY1tdIjoK LSAgICAgICAgICBjYXNlICJudW1yYW5nZSI6Ci0gICAgICAgICAgY2FzZSAi bnVtcmFuZ2VbXSI6Ci0gICAgICAgICAgY2FzZSAib2lkIjoKLSAgICAgICAg ICBjYXNlICJvaWRbXSI6Ci0gICAgICAgICAgY2FzZSAicmVhbCI6Ci0gICAg ICAgICAgY2FzZSAicmVhbFtdIjoKLSAgICAgICAgICBjYXNlICJzZXJpYWwi OgotICAgICAgICAgIGNhc2UgInNtYWxsaW50IjoKLSAgICAgICAgICBjYXNl ICJzbWFsbGludFtdIjoKLSAgICAgICAgICBjYXNlICJzbWFsbHNlcmlhbCI6 Ci0gICAgICAgICAgICByZXR1cm4gODA7Ci0gICAgICAgICAgY2FzZSAiYm9v bGVhbiI6Ci0gICAgICAgICAgY2FzZSAiYm9vbGVhbltdIjoKLSAgICAgICAg ICAgIHJldHVybiA2MDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIEluIGNh c2Ugb2Ygb3RoZXIgZGF0YSB0eXBlcyB3ZSB3aWxsIGNhbGN1bGF0ZQotICAg ICAgICAgKiAyMCUgb2YgdGhlIHRvdGFsIGNvbnRhaW5lciB3aWR0aCBhbmQg cmV0dXJuIGl0LgotICAgICAgICAgKi8KLSAgICAgICAgcmV0dXJuIE1hdGgu cm91bmQoKGdyaWRfd2lkdGggKiAyMCkvIDEwMCkKLSAgICAgIH0sCi0KICAg ICAgIC8qIFJlZ2FyZGluZyBTbGlja0dyaWQgdXNhZ2UgaW4gcmVuZGVyX2dy aWQgZnVuY3Rpb24uCiAKICAgICAgICBTbGlja0dyaWQgUGx1Z2luczoKQEAg LTU4NSw4ICs1MjQsMjIgQEAgZGVmaW5lKAogICAgICAgICB9CiAKICAgICAg ICAgdmFyIGdyaWRfY29sdW1ucyA9IFtdOworICAgICAgICB2YXIgY29sdW1u X3NpemUgPSBzZWxmLmhhbmRsZXJbJ2NvbF9zaXplJ10sCisgICAgICAgICAg cXVlcnkgPSBzZWxmLmhhbmRsZXIucXVlcnksCisgICAgICAgICAgLy8gRXh0 cmFjdCB0YWJsZSBuYW1lIGZyb20gcXVlcnkKKyAgICAgICAgICB0YWJsZV9s aXN0ID0gcXVlcnkubWF0Y2goL3NlbGVjdC4qZnJvbVxzKyhcdyspL2kpOwor CisgICAgICAgIGlmICghdGFibGVfbGlzdCkgeworICAgICAgICAgIHRhYmxl X25hbWUgPSB1dGlscy5nZXRIYXNoKHF1ZXJ5KTsKKyAgICAgICAgfQorICAg ICAgICBlbHNlIHsKKyAgICAgICAgICB0YWJsZV9uYW1lID0gdGFibGVfbGlz dFsxXTsKKyAgICAgICAgfQorCisgICAgICAgIHNlbGYuaGFuZGxlclsndGFi bGVfbmFtZSddID0gdGFibGVfbmFtZTsKKyAgICAgICAgY29sdW1uX3NpemVb dGFibGVfbmFtZV0gPSBjb2x1bW5fc2l6ZVt0YWJsZV9uYW1lXSB8fCB7fTsK IAotICAgICAgICB2YXIgZ3JpZF93aWR0aCA9ICQoJCgnI2VkaXRvci1wYW5l bCcpLmZpbmQoJy53Y0ZyYW1lJylbMV0pLndpZHRoKCkKKyAgICAgICAgdmFy IGdyaWRfd2lkdGggPSAkKCQoJyNlZGl0b3ItcGFuZWwnKS5maW5kKCcud2NG cmFtZScpWzFdKS53aWR0aCgpOwogICAgICAgICBfLmVhY2goY29sdW1ucywg ZnVuY3Rpb24oYykgewogICAgICAgICAgICAgdmFyIG9wdGlvbnMgPSB7CiAg ICAgICAgICAgICAgIGlkOiBjLm5hbWUsCkBAIC01OTcsOCArNTUwLDE4IEBA IGRlZmluZSgKICAgICAgICAgICAgICAgaGFzX2RlZmF1bHRfdmFsOiBjLmhh c19kZWZhdWx0X3ZhbAogICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAg Ly8gR2V0IHRoZSBjb2x1bW5zIHdpZHRoIGJhc2VkIG9uIGRhdGEgdHlwZQot ICAgICAgICAgICAgb3B0aW9uc1snd2lkdGgnXSA9IHNlbGYuZ2V0X2NvbHVt bl93aWR0aChjLnR5cGUsIGdyaWRfd2lkdGgpOworICAgICAgICAgICAgLy8g R2V0IHRoZSBjb2x1bW5zIHdpZHRoIGJhc2VkIG9uIGxvbmdlciBzdHJpbmcg YW1vbmcgZGF0YSB0eXBlIG9yCisgICAgICAgICAgICAvLyBjb2x1bW4gbmFt ZS4KKyAgICAgICAgICAgIHZhciBsYWJlbCA9IGMubGFiZWwuc3BsaXQoJzxi cj4nKTsKKyAgICAgICAgICAgIGxhYmVsID0gbGFiZWxbMF0ubGVuZ3RoID4g bGFiZWxbMV0ubGVuZ3RoID8gbGFiZWxbMF0gOiBsYWJlbFsxXTsKKworICAg ICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoY29sdW1uX3NpemVbdGFibGVf bmFtZV1bYy5uYW1lXSkpIHsKKyAgICAgICAgICAgICAgICBvcHRpb25zWyd3 aWR0aCddID0gdXRpbHMuY2FsY3VsYXRlX2NvbHVtbl93aWR0aChsYWJlbCkK KyAgICAgICAgICAgICAgICBjb2x1bW5fc2l6ZVt0YWJsZV9uYW1lXVtjLm5h bWVdID0gdXRpbHMuY2FsY3VsYXRlX2NvbHVtbl93aWR0aChsYWJlbCk7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg ICAgICBvcHRpb25zWyd3aWR0aCddID0gY29sdW1uX3NpemVbdGFibGVfbmFt ZV1bYy5uYW1lXTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8g SWYgZ3JpZCBpcyBlZGl0YWJsZSB0aGVuIGFkZCBlZGl0b3IgZWxzZSBtYWtl IGl0IHJlYWRvbmx5CiAgICAgICAgICAgICBpZihjLmNlbGwgPT0gJ0pzb24n KSB7CkBAIC02NDIsNyArNjA1LDcgQEAgZGVmaW5lKAogCiAgICAgICAgIC8v IEFkZCBvdXIgb3duIGN1c3RvbSBwcmltYXJ5IGtleSB0byBrZWVwIHRyYWNr IG9mIGNoYW5nZXMKICAgICAgICAgXy5lYWNoKGNvbGxlY3Rpb24sIGZ1bmN0 aW9uKHJvdyl7Ci0gICAgICAgICAgcm93WydfX3RlbXBfUEsnXSA9IGVwaWNS YW5kb21TdHJpbmcoMTUpOworICAgICAgICAgIHJvd1snX190ZW1wX1BLJ10g PSB1dGlscy5lcGljUmFuZG9tU3RyaW5nKDE1KTsKICAgICAgICAgfSk7CiAK ICAgICAgICAgLy8gQWRkLW9uIGZ1bmN0aW9uIHdoaWNoIGFsbG93IHVzIHRv IGlkZW50aWZ5IHRoZSBmYXVsdHkgcm93IGFmdGVyIGluc2VydC91cGRhdGUK QEAgLTc3Myw2ICs3MzYsMTMgQEAgZGVmaW5lKAogICAgICAgICAgICB9LmJp bmQoZWRpdG9yX2RhdGEpKTsKICAgICAgICAgfQogCisgICAgICAgIGdyaWQu b25Db2x1bW5zUmVzaXplZC5zdWJzY3JpYmUoZnVuY3Rpb24gKGUsIGFyZ3Mp IHsKKyAgICAgICAgICAgIHZhciBjb2x1bW5zID0gdGhpcy5nZXRDb2x1bW5z KCk7CisgICAgICAgICAgICBfLmVhY2goY29sdW1ucywgZnVuY3Rpb24oY29s LCBrZXkpIHsKKyAgICAgICAgICAgICAgICB2YXIgY29sdW1uX3NpemUgPSBz ZWxmLmhhbmRsZXJbJ2NvbF9zaXplJ107CisgICAgICAgICAgICAgICAgY29s dW1uX3NpemVbc2VsZi5oYW5kbGVyWyd0YWJsZV9uYW1lJ11dW2NvbFsnaWQn XV0gPSBjb2xbJ3dpZHRoJ107CisgICAgICAgICAgICB9KTsKKyAgICAgICAg fSk7CiAKICAgICAgICAgLy8gTGlzdGVuZXIgZnVuY3Rpb24gd2hpY2ggd2ls bCBiZSBjYWxsZWQgYmVmb3JlIHVzZXIgdXBkYXRlcyBleGlzdGluZyBjZWxs CiAgICAgICAgIC8vIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNvbGxlY3QgcHJp bWFyeSBrZXkgZm9yIHRoYXQgcm93CkBAIC05MjEsNyArODkxLDcgQEAgZGVm aW5lKAogICAgICAgICAvLyBMaXN0ZW5lciBmdW5jdGlvbiB3aGljaCB3aWxs IGJlIGNhbGxlZCB3aGVuIHVzZXIgYWRkcyBuZXcgcm93cwogICAgICAgICBn cmlkLm9uQWRkTmV3Um93LnN1YnNjcmliZShmdW5jdGlvbiAoZSwgYXJncykg ewogICAgICAgICAgIC8vIHNlbGYuaGFuZGxlci5kYXRhX3N0b3JlLmFkZGVk IHdpbGwgaG9sZHMgYWxsIHRoZSBuZXdseSBhZGRlZCByb3dzL2RhdGEKLSAg ICAgICAgICB2YXIgX2tleSA9IGVwaWNSYW5kb21TdHJpbmcoMTApLAorICAg ICAgICAgIHZhciBfa2V5ID0gdXRpbHMuZXBpY1JhbmRvbVN0cmluZygxMCks CiAgICAgICAgICAgICBjb2x1bW4gPSBhcmdzLmNvbHVtbiwKICAgICAgICAg ICAgIGl0ZW0gPSBhcmdzLml0ZW0sCiAgICAgICAgICAgICBkYXRhX2xlbmd0 aCA9IHRoaXMuZ3JpZC5nZXREYXRhTGVuZ3RoKCksCg== --001a11443ed679d72b0551364e15 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 --001a11443ed679d72b0551364e15--