Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIaVr-0001kr-Nn for pgadmin-hackers@arkaria.postgresql.org; Wed, 07 Jun 2017 12:56:39 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dIaVq-0006i4-DW for pgadmin-hackers@arkaria.postgresql.org; Wed, 07 Jun 2017 12:56:38 +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.84_2) (envelope-from ) id 1dIaVo-0006hn-Vh for pgadmin-hackers@postgresql.org; Wed, 07 Jun 2017 12:56:37 +0000 Received: from mail-wm0-x234.google.com ([2a00:1450:400c:c09::234]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dIaVl-00084z-GX for pgadmin-hackers@postgresql.org; Wed, 07 Jun 2017 12:56:35 +0000 Received: by mail-wm0-x234.google.com with SMTP id d73so10584320wma.0 for ; Wed, 07 Jun 2017 05:56:33 -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=6eid5/8OEDhFPy2PljEv9QNFAzPCjSO7kcYTg03fOv8=; b=J5opsAPbPpaZkipxBGCTdFyifmEYGfUg3XaxArYh5tSUzMtz2aIQnRoQy8ePv6/Es8 09reGfaBn77N0rqRtT6SJyVSniNnNyJuqjVVvobcTuxUZuBGQNeH1GYxiD/QvuQvqx0a BtyTALmeGWq0pEEnlrS0a+6E8mydj3XdVMEKJsuKhayx5ThHA7DRlCxoeMSMPImmvcGz ldRV+qRr5wLUbBUBqjTid+frrL59sC+iBc7H3lCKO6skBzwhohZuTwh/J3VokdLnCAk5 kIx65YcJ0pSurA0HEt7Pym2Z5ZwnMpbyhXbILDmr7+pMZSgUEvjmEvi+CdM6tQverNlJ wqAw== 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=6eid5/8OEDhFPy2PljEv9QNFAzPCjSO7kcYTg03fOv8=; b=r9pVSD6mYfkLItCJPqaSuT6gHMFI7IuKGd2NCGSc6sFVaqnFmJPXlwO/02vlRMFEN5 W/0CZbpPP3C7edI37RhHKxjYaW6NAbjTinKLXc6NV/wa7PlxY5Oz9yG0WH3ICdOE64Lt LJ2Ij95rmUnod85n8voaUHlbGlN+ABftDp0VVoZpxI0HG4yY+1WYCIoOK1VnxgECTXuT 49qubp0VcXtyknkuWaopikjqMhSsU4RyLyl4fo/gYYdIJnhd54yJ0vQv7RYdSyEWpK3p MN7loVqhlqwMGsovGwu35IMEWrRq/QVvwa4qTNAgDIoMzg9+DI96YxD5Q3VdI1liXdC8 wDgg== X-Gm-Message-State: AODbwcAKN3K38zYQA955yc9bxqFCat1Wtsq0uZvXnT9ylbcYhAEqarrW mLKai1RORwvzkJ4mna+oMwabjK1nUwzc X-Received: by 10.28.181.139 with SMTP id e133mr2094746wmf.65.1496840191673; Wed, 07 Jun 2017 05:56:31 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.9.208 with HTTP; Wed, 7 Jun 2017 05:56:00 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Wed, 7 Jun 2017 18:26:00 +0530 Message-ID: Subject: Re: Re: [pgAdmin4][Patch][Feature #1971]: Remember column sizes between executions of the same query in the query tool To: Dave Page Cc: Shruti B Iyer , pgadmin-hackers , Matthew Kleiman Content-Type: multipart/mixed; boundary="001a1148d282e9993505515e433b" 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 --001a1148d282e9993505515e433b Content-Type: multipart/alternative; boundary="001a1148d282e9992f05515e4339" --001a1148d282e9992f05515e4339 Content-Type: text/plain; charset="UTF-8" Hi Please find rebased patch. On Wed, Jun 7, 2017 at 6:15 PM, Dave Page wrote: > Hi, > > Could you rebase this please? > > Thanks. > > On Tue, Jun 6, 2017 at 9:22 AM, Surinder Kumar > wrote: > > Hi All, > > > > Please find updated patch which includes Jasmine test cases for functions > > getHash and calculateColumnWidth > > > > Thanks, > > Surinder > > > > On Mon, Jun 5, 2017 at 11:38 PM, Shruti B Iyer wrote: > >> > >> Hi Surinder! > >> > >> We reviewed this patch. The changes look good and we especially like > that > >> you have extracted out the new utility functions and the > epicRandomString > >> function too. > >> > >> This patch will likely affect the Query Results patch that is currently > >> under review. In order to assist either us or yourself when making a > merge > >> between these patches, it would help to have jasmine unit testing for > the > >> two new functions, getHash and calculate_column_width. > >> > >> Also, we suggest that you rename calculate_column_width to > >> calculateColumnWidth for consistency with javascript code style. > >> > >> Thanks, > >> Shruti and Matt > >> > >> On Mon, Jun 5, 2017 at 9:16 AM Surinder Kumar > >> wrote: > >>> > >>> 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 > >>> 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 user > >>>> 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 > >>>> > >>>> it > >>>> displays 3 columns > >>>> but 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 ? > >>>> > >>>> Also, Moved utilities functions into pgadmin/static/utils.js > >>>> > >>>> Please find attached patch and review. > >>>> > >>>> Thanks, > >>>> Surinder Kumar > >>> > >>> > >>> > >>> -- > >>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) > >>> To make changes to your subscription: > >>> http://www.postgresql.org/mailpref/pgadmin-hackers > > > > > > > > > > -- > > Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) > > To make changes to your subscription: > > http://www.postgresql.org/mailpref/pgadmin-hackers > > > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a1148d282e9992f05515e4339 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi<= /div>

Please find rebased patch= .

On W= ed, Jun 7, 2017 at 6:15 PM, Dave Page <dpage@pgadmin.org> wr= ote:
Hi,

Could you rebase this please?

Thanks.

On Tue, Jun 6, 2017 at 9:22 AM, Surinder Kumar
<surinder.kumar@enterprisedb.com> wrote:
> Hi All,
>
> Please find updated patch which includes Jasmine test cases for functi= ons
> getHash and calculateColumnWidth
>
> Thanks,
> Surinder
>
> On Mon, Jun 5, 2017 at 11:38 PM, Shruti B Iyer <siyer@pivotal.io> wrote:
>>
>> Hi Surinder!
>>
>> We reviewed this patch. The changes look good and we especially li= ke that
>> you have extracted out the new utility functions and the epicRando= mString
>> function too.
>>
>> This patch will likely affect the Query Results patch that is curr= ently
>> under review. In order to assist either us or yourself when making= a merge
>> between these patches, it would help to have jasmine unit testing = for the
>> two new functions, getHash and calculate_column_width.
>>
>> Also, we suggest that you rename calculate_column_width to
>> calculateColumnWidth for consistency with javascript code style. >>
>> Thanks,
>> Shruti and Matt
>>
>> On Mon, Jun 5, 2017 at 9:16 AM Surinder Kumar
>> <surinder.ku= mar@enterprisedb.com> wrote:
>>>
>>> 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
>>> <surinde= r.kumar@enterprisedb.com> wrote:
>>>>
>>>> Hi
>>>>
>>>> This patch contains two fixes:
>>>>
>>>> 1) In Query/tool or Edit grid, the width of table column h= eader 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 user
>>>> 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 o= f column name
>>>> or column type so that the column takes exact width it req= uired 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 execu= ted and use it
>>>> to store its columns width.
>>>> Whenever the column(s) width of a table is adjusted, the c= orresponding
>>>> 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
>>>>
>>>> it
>>>> displays 3 columns
>>>> but don't have any table name. In that case,
>>>>=C2=A0 i use a hash generator function which returns unique= hash for a query
>>>> written in query editor and adjusted column(s) width are s= tored against that
>>>> hash in object.
>>>>
>>>> Is there any way to get temporary table name(avoiding uniq= ue hash) for
>>>> such queries ?
>>>>
>>>> Also, Moved utilities functions into pgadmin/static/utils.= js
>>>>
>>>> Please find attached patch and review.
>>>>
>>>> Thanks,
>>>> Surinder Kumar
>>>
>>>
>>>
>>> --
>>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
>>> To make changes to your subscription:
>>> http://www.postgresql.org/mailpr= ef/pgadmin-hackers
>
>
>
>
> --
> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadm= in-hackers
>



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

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

--001a1148d282e9992f05515e4339-- --001a1148d282e9993505515e433b Content-Type: application/octet-stream; name="Feature_1971_with_jasmine_tests_v1.patch" Content-Disposition: attachment; filename="Feature_1971_with_jasmine_tests_v1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3mzzc050 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3Jf dXRpbHMuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yX3V0 aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJh ZmM0ZGUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMv anMvc3FsZWRpdG9yX3V0aWxzLmpzCkBAIC0wLDAgKzEsNTggQEAKKy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBU aGlzIGZpbGUgY29udGFpbnMgY29tbW9uIHV0aWxpdGllcyBmdW5jdGlvbnMg dXNlZCBpbiBzcWxlZGl0b3IgbW9kdWxlcworCitkZWZpbmUoWydqcXVlcnkn XSwKKyAgZnVuY3Rpb24gKCQpIHsKKyAgICB2YXIgc3FsRWRpdG9yVXRpbHMg PSB7CisgICAgICAvKiBSZWZlcmVuY2UgbGluayBodHRwOi8vc3RhY2tvdmVy Zmxvdy5jb20vcXVlc3Rpb25zLzEwNTAzNC9jcmVhdGUtZ3VpZC11dWlkLWlu LWphdmFzY3JpcHQKKyAgICAgICAqIE1vZGlmaWVkIGFzIHBlciByZXF1aXJl bWVudC4KKyAgICAgICAqLworICAgICAgZXBpY1JhbmRvbVN0cmluZzogZnVu Y3Rpb24obGVuZ3RoKSB7CisgICAgICAgIHZhciBzID0gW107CisgICAgICAg IHZhciBoZXhEaWdpdHMgPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CisgICAgICAg IGZvciAodmFyIGkgPSAwOyBpIDwgMzY7IGkrKykgeworICAgICAgICAgICAg c1tpXSA9IGhleERpZ2l0cy5zdWJzdHIoCisgICAgICAgICAgICAgICAgICAg IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDB4MTApLCAxCisgICAgICAg ICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIC8vIGJpdHMgMTIt MTUgb2YgdGhlIHRpbWVfaGlfYW5kX3ZlcnNpb24gZmllbGQgdG8gMDAxMAor ICAgICAgICBzWzE0XSA9ICI0IjsKKyAgICAgICAgLy8gYml0cyA2LTcgb2Yg dGhlIGNsb2NrX3NlcV9oaV9hbmRfcmVzZXJ2ZWQgdG8gMDEKKyAgICAgICAg c1sxOV0gPSBoZXhEaWdpdHMuc3Vic3RyKChzWzE5XSAmIDB4MykgfCAweDgs IDEpOworICAgICAgICBzWzhdID0gc1sxM10gPSBzWzE4XSA9IHNbMjNdID0g Ii0iOworCisgICAgICAgIHZhciB1dWlkID0gcy5qb2luKCIiKTsKKyAgICAg ICAgcmV0dXJuIHV1aWQucmVwbGFjZSgvLS9nLCAnJykuc3Vic3RyKDAsIGxl bmd0aCk7CisgICAgICB9LAorCisgICAgICAvLyBSZXR1cm5zIGEgdW5pcXVl IGhhc2ggZm9yIGlucHV0IHN0cmluZworICAgICAgZ2V0SGFzaDogZnVuY3Rp b24oaW5wdXQpIHsKKyAgICAgICAgdmFyIGhhc2ggPSAwLCBsZW4gPSBpbnB1 dC5sZW5ndGg7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBp KyspIHsKKyAgICAgICAgICBoYXNoICA9ICgoaGFzaCA8PCA1KSAtIGhhc2gp ICsgaW5wdXQuY2hhckNvZGVBdChpKTsKKyAgICAgICAgICBoYXNoIHw9IDA7 IC8vIHRvIDMyYml0IGludGVnZXIKKyAgICAgICAgfQorICAgICAgICByZXR1 cm4gaGFzaDsKKyAgICAgIH0sCisgICAgICBjYWxjdWxhdGVDb2x1bW5XaWR0 aDogZnVuY3Rpb24gKHRleHQpIHsKKyAgICAgICAgLy8gQ2FsY3VsYXRlIGNv bHVtbiBoZWFkZXIgd2lkdGggYmFzZWQgb24gY29sdW1uIG5hbWUgb3IgdHlw ZQorICAgICAgICAvLyBDcmVhdGUgYSB0ZW1wb3JhcnkgZWxlbWVudCB3aXRo IGdpdmVuIGxhYmVsLCBhcHBlbmQgdG8gYm9keQorICAgICAgICAvLyBjYWxj dWxhdGUgaXRzIHdpZHRoIGFuZCByZW1vdmUgdGhlIGVsZW1lbnQuCisgICAg ICAgICQoJ2JvZHknKS5hcHBlbmQoCisgICAgICAgICAgICAnPHNwYW4gaWQ9 InBnX3RleHQiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47Ij4nKyB0ZXh0 ICsgJzwvc3Bhbj4nCisgICAgICAgICk7CisgICAgICAgIHZhciB3aWR0aCA9 ICQoJyNwZ190ZXh0Jykud2lkdGgoKSArIDMwOworICAgICAgICAkKCcjcGdf dGV4dCcpLnJlbW92ZSgpOyAvLyByZW1vdmUgZWxlbWVudAorCisgICAgICAg IHJldHVybiB3aWR0aDsKKyAgICAgIH0KKyAgICB9OworICAgIHJldHVybiBz cWxFZGl0b3JVdGlsczsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v dG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3IvanMvc3FsZWRp dG9yLmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRl cy9zcWxlZGl0b3IvanMvc3FsZWRpdG9yLmpzCmluZGV4IGYxY2MzZjEuLmIw MTUwOGEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRv ci90ZW1wbGF0ZXMvc3FsZWRpdG9yL2pzL3NxbGVkaXRvci5qcworKysgYi93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRv ci9qcy9zcWxlZGl0b3IuanMKQEAgLTIsNyArMiw3IEBAIGRlZmluZShbCiAg ICdzb3VyY2VzL2dldHRleHQnLCAnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAn dW5kZXJzY29yZS5zdHJpbmcnLCAnYWxlcnRpZnknLAogICAncGdhZG1pbics ICdiYWNrYm9uZScsICdiYWNrZ3JpZCcsICdjb2RlbWlycm9yJywgJ3BnYWRt aW4ubWlzYy5leHBsYWluJywKICAgJ3NvdXJjZXMvc2VsZWN0aW9uL2dyaWRf c2VsZWN0b3InLCAnc291cmNlcy9zZWxlY3Rpb24vY2xpcGJvYXJkJywKLSAg J3NvdXJjZXMvc2VsZWN0aW9uL2NvcHlfZGF0YScsCisgICdzb3VyY2VzL3Nl bGVjdGlvbi9jb3B5X2RhdGEnLCAnc291cmNlcy9zcWxlZGl0b3JfdXRpbHMn LAogICAnc2xpY2tncmlkJywgJ2Jvb3RzdHJhcCcsICdwZ2FkbWluLmJyb3dz ZXInLCAnd2Nkb2NrZXInLAogICAnY29kZW1pcnJvci9tb2RlL3NxbC9zcWwn LCAnY29kZW1pcnJvci9hZGRvbi9zZWxlY3Rpb24vbWFyay1zZWxlY3Rpb24n LAogICAnY29kZW1pcnJvci9hZGRvbi9zZWxlY3Rpb24vYWN0aXZlLWxpbmUn LCAnY29kZW1pcnJvci9hZGRvbi9mb2xkL2ZvbGRjb2RlJywKQEAgLTI1LDcg KzI1LDcgQEAgZGVmaW5lKFsKICAgJ3NsaWNrZ3JpZC9zbGljay5ncmlkJwog XSwgZnVuY3Rpb24oCiAgIGdldHRleHQsICQsIF8sIFMsIGFsZXJ0aWZ5LCBw Z0FkbWluLCBCYWNrYm9uZSwgQmFja2dyaWQsIENvZGVNaXJyb3IsCi0gIHBn RXhwbGFpbiwgR3JpZFNlbGVjdG9yLCBjbGlwYm9hcmQsIGNvcHlEYXRhCisg IHBnRXhwbGFpbiwgR3JpZFNlbGVjdG9yLCBjbGlwYm9hcmQsIGNvcHlEYXRh LCBTcWxFZGl0b3JVdGlscwogKSB7CiAgICAgLyogUmV0dXJuIGJhY2ssIHRo aXMgaGFzIGJlZW4gY2FsbGVkIG1vcmUgdGhhbiBvbmNlICovCiAgICAgaWYg KHBnQWRtaW4uU3FsRWRpdG9yKQpAQCAtMzcsMjggKzM3LDYgQEAgZGVmaW5l KFsKICAgICAgICAgcGdCcm93c2VyID0gcGdBZG1pbi5Ccm93c2VyLAogICAg ICAgICBTbGljayA9IHdpbmRvdy5TbGljazsKIAotICAgIC8qIFJlZmVyZW5j ZSBsaW5rCi0gICAgICogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0 aW9ucy8xMDUwMzQvY3JlYXRlLWd1aWQtdXVpZC1pbi1qYXZhc2NyaXB0Ci0g ICAgICogTW9kaWZpZWQgYXMgcGVyIHJlcXVpcmVtZW50LgotICAgICAqLwot ICAgIGZ1bmN0aW9uIGVwaWNSYW5kb21TdHJpbmcoYikgewotICAgICAgdmFy IHMgPSBbXTsKLSAgICAgIHZhciBoZXhEaWdpdHMgPSAiMDEyMzQ1Njc4OWFi Y2RlZiI7Ci0gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM2OyBpKyspIHsK LSAgICAgICAgICBzW2ldID0gaGV4RGlnaXRzLnN1YnN0cigKLSAgICAgICAg ICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDB4MTApLCAx Ci0gICAgICAgICAgICAgICAgKTsKLSAgICAgIH0KLSAgICAgIC8vIGJpdHMg MTItMTUgb2YgdGhlIHRpbWVfaGlfYW5kX3ZlcnNpb24gZmllbGQgdG8gMDAx MAotICAgICAgc1sxNF0gPSAiNCI7Ci0gICAgICAvLyBiaXRzIDYtNyBvZiB0 aGUgY2xvY2tfc2VxX2hpX2FuZF9yZXNlcnZlZCB0byAwMQotICAgICAgc1sx OV0gPSBoZXhEaWdpdHMuc3Vic3RyKChzWzE5XSAmIDB4MykgfCAweDgsIDEp OwotICAgICAgc1s4XSA9IHNbMTNdID0gc1sxOF0gPSBzWzIzXSA9ICItIjsK LQotICAgICAgdmFyIHV1aWQgPSBzLmpvaW4oIiIpOwotICAgICAgcmV0dXJu IHV1aWQucmVwbGFjZSgvLS9nLCAnJykuc3Vic3RyKDAsIGIpOwotICAgIH07 Ci0KICAgICAvLyBEZWZpbmUga2V5IGNvZGVzIGZvciBzaG9ydGN1dCBrZXlz CiAgICAgdmFyIEY1X0tFWSA9IDExNiwKICAgICAgICAgRjdfS0VZID0gMTE4 LApAQCAtNzEsNiArNDksNyBAQCBkZWZpbmUoWwogICAgICAgaW5pdGlhbGl6 ZTogZnVuY3Rpb24ob3B0cykgewogICAgICAgICB0aGlzLiRlbCA9IG9wdHMu ZWw7CiAgICAgICAgIHRoaXMuaGFuZGxlciA9IG9wdHMuaGFuZGxlcjsKKyAg ICAgICAgdGhpcy5oYW5kbGVyWydjb2xfc2l6ZSddID0ge307CiAgICAgICB9 LAogCiAgICAgICAvLyBCaW5kIGFsbCB0aGUgZXZlbnRzCkBAIC00MDgsMTEg KzM4NywxNiBAQCBkZWZpbmUoWwogICAgICAgLyogVG8gcHJvbXB0IHVzZXIg Zm9yIHVuc2F2ZWQgY2hhbmdlcyAqLwogICAgICAgdXNlcl9jb25maXJtYXRp b246IGZ1bmN0aW9uKHBhbmVsLCBtc2cpIHsKICAgICAgICAgLy8gSWYgdGhl cmUgaXMgYW55dGhpbmcgdG8gc2F2ZSB0aGVuIHByb21wdCB1c2VyCisgICAg ICAgIHZhciB0aGF0ID0gdGhpczsKICAgICAgICAgYWxlcnRpZnkuY29uZmly bShnZXR0ZXh0KCJVbnNhdmVkIGNoYW5nZXMiKSwgbXNnLAogICAgICAgICAg IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgLy8gRG8gbm90aGluZyBhcyB1 c2VyIGRvIG5vdCB3YW50IHRvIHNhdmUsIGp1c3QgY29udGludWUKICAgICAg ICAgICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9IG51bGw7CiAgICAgICAg ICAgICBwYW5lbC5vZmYod2NEb2NrZXIuRVZFTlQuQ0xPU0lORyk7CisgICAg ICAgICAgICAvLyByZW1vdmUgY29sX3NpemUgb2JqZWN0IG9uIHBhbmVsIGNs b3NlCisgICAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQodGhhdC5oYW5k bGVyLmNvbF9zaXplKSkgeworICAgICAgICAgICAgICBkZWxldGUgdGhhdC5o YW5kbGVyLmNvbF9zaXplOworICAgICAgICAgICAgfQogICAgICAgICAgICAg d2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIuZG9ja2VyLnJlbW92ZVBhbmVs KHBhbmVsKTsKICAgICAgICAgICB9LAogICAgICAgICAgIGZ1bmN0aW9uKCkg ewpAQCAtNDI0LDUzICs0MDgsNiBAQCBkZWZpbmUoWwogICAgICAgICByZXR1 cm4gZmFsc2U7CiAgICAgICB9LAogCi0gICAgICBnZXRfY29sdW1uX3dpZHRo OiBmdW5jdGlvbiAoY29sdW1uX3R5cGUsIGdyaWRfd2lkdGgpIHsKLQotICAg ICAgICBzd2l0Y2goY29sdW1uX3R5cGUpIHsKLSAgICAgICAgICBjYXNlICJi aWdpbnQiOgotICAgICAgICAgIGNhc2UgImJpZ2ludFtdIjoKLSAgICAgICAg ICBjYXNlICJiaWdzZXJpYWwiOgotICAgICAgICAgIGNhc2UgImJpdCI6Ci0g ICAgICAgICAgY2FzZSAiYml0W10iOgotICAgICAgICAgIGNhc2UgImJpdCB2 YXJ5aW5nIjoKLSAgICAgICAgICBjYXNlICJiaXQgdmFyeWluZ1tdIjoKLSAg ICAgICAgICBjYXNlICJcImNoYXJcIiI6Ci0gICAgICAgICAgY2FzZSAiZGVj aW1hbCI6Ci0gICAgICAgICAgY2FzZSAiZGVjaW1hbFtdIjoKLSAgICAgICAg ICBjYXNlICJkb3VibGUgcHJlY2lzaW9uIjoKLSAgICAgICAgICBjYXNlICJk b3VibGUgcHJlY2lzaW9uW10iOgotICAgICAgICAgIGNhc2UgImludDRyYW5n ZSI6Ci0gICAgICAgICAgY2FzZSAiaW50NHJhbmdlW10iOgotICAgICAgICAg IGNhc2UgImludDhyYW5nZSI6Ci0gICAgICAgICAgY2FzZSAiaW50OHJhbmdl W10iOgotICAgICAgICAgIGNhc2UgImludGVnZXIiOgotICAgICAgICAgIGNh c2UgImludGVnZXJbXSI6Ci0gICAgICAgICAgY2FzZSAibW9uZXkiOgotICAg ICAgICAgIGNhc2UgIm1vbmV5W10iOgotICAgICAgICAgIGNhc2UgIm51bWVy aWMiOgotICAgICAgICAgIGNhc2UgIm51bWVyaWNbXSI6Ci0gICAgICAgICAg Y2FzZSAibnVtcmFuZ2UiOgotICAgICAgICAgIGNhc2UgIm51bXJhbmdlW10i OgotICAgICAgICAgIGNhc2UgIm9pZCI6Ci0gICAgICAgICAgY2FzZSAib2lk W10iOgotICAgICAgICAgIGNhc2UgInJlYWwiOgotICAgICAgICAgIGNhc2Ug InJlYWxbXSI6Ci0gICAgICAgICAgY2FzZSAic2VyaWFsIjoKLSAgICAgICAg ICBjYXNlICJzbWFsbGludCI6Ci0gICAgICAgICAgY2FzZSAic21hbGxpbnRb XSI6Ci0gICAgICAgICAgY2FzZSAic21hbGxzZXJpYWwiOgotICAgICAgICAg ICAgcmV0dXJuIDgwOwotICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgotICAg ICAgICAgIGNhc2UgImJvb2xlYW5bXSI6Ci0gICAgICAgICAgICByZXR1cm4g NjA7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBJbiBjYXNlIG9mIG90aGVy IGRhdGEgdHlwZXMgd2Ugd2lsbCBjYWxjdWxhdGUKLSAgICAgICAgICogMjAl IG9mIHRoZSB0b3RhbCBjb250YWluZXIgd2lkdGggYW5kIHJldHVybiBpdC4K LSAgICAgICAgICovCi0gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKChncmlk X3dpZHRoICogMjApLyAxMDApCi0gICAgICB9LAotCiAgICAgICAvKiBSZWdh cmRpbmcgU2xpY2tHcmlkIHVzYWdlIGluIHJlbmRlcl9ncmlkIGZ1bmN0aW9u LgogCiAgICAgICAgU2xpY2tHcmlkIFBsdWdpbnM6CkBAIC01ODMsOCArNTIw LDIyIEBAIGRlZmluZShbCiAgICAgICAgIH0KIAogICAgICAgICB2YXIgZ3Jp ZF9jb2x1bW5zID0gW107CisgICAgICAgIHZhciBjb2x1bW5fc2l6ZSA9IHNl bGYuaGFuZGxlclsnY29sX3NpemUnXSwKKyAgICAgICAgICBxdWVyeSA9IHNl bGYuaGFuZGxlci5xdWVyeSwKKyAgICAgICAgICAvLyBFeHRyYWN0IHRhYmxl IG5hbWUgZnJvbSBxdWVyeQorICAgICAgICAgIHRhYmxlX2xpc3QgPSBxdWVy eS5tYXRjaCgvc2VsZWN0Lipmcm9tXHMrKFx3KykvaSk7CiAKLSAgICAgICAg dmFyIGdyaWRfd2lkdGggPSAkKCQoJyNlZGl0b3ItcGFuZWwnKS5maW5kKCcu d2NGcmFtZScpWzFdKS53aWR0aCgpCisgICAgICAgIGlmICghdGFibGVfbGlz dCkgeworICAgICAgICAgIHRhYmxlX25hbWUgPSBTcWxFZGl0b3JVdGlscy5n ZXRIYXNoKHF1ZXJ5KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAg ICAgICAgICB0YWJsZV9uYW1lID0gdGFibGVfbGlzdFsxXTsKKyAgICAgICAg fQorCisgICAgICAgIHNlbGYuaGFuZGxlclsndGFibGVfbmFtZSddID0gdGFi bGVfbmFtZTsKKyAgICAgICAgY29sdW1uX3NpemVbdGFibGVfbmFtZV0gPSBj b2x1bW5fc2l6ZVt0YWJsZV9uYW1lXSB8fCB7fTsKKworICAgICAgICB2YXIg Z3JpZF93aWR0aCA9ICQoJCgnI2VkaXRvci1wYW5lbCcpLmZpbmQoJy53Y0Zy YW1lJylbMV0pLndpZHRoKCk7CiAgICAgICAgIF8uZWFjaChjb2x1bW5zLCBm dW5jdGlvbihjKSB7CiAgICAgICAgICAgICB2YXIgb3B0aW9ucyA9IHsKICAg ICAgICAgICAgICAgaWQ6IGMubmFtZSwKQEAgLTU5NSw4ICs1NDYsMTggQEAg ZGVmaW5lKFsKICAgICAgICAgICAgICAgaGFzX2RlZmF1bHRfdmFsOiBjLmhh c19kZWZhdWx0X3ZhbAogICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAg Ly8gR2V0IHRoZSBjb2x1bW5zIHdpZHRoIGJhc2VkIG9uIGRhdGEgdHlwZQot ICAgICAgICAgICAgb3B0aW9uc1snd2lkdGgnXSA9IHNlbGYuZ2V0X2NvbHVt bl93aWR0aChjLnR5cGUsIGdyaWRfd2lkdGgpOworICAgICAgICAgICAgLy8g R2V0IHRoZSBjb2x1bW5zIHdpZHRoIGJhc2VkIG9uIGxvbmdlciBzdHJpbmcg YW1vbmcgZGF0YSB0eXBlIG9yCisgICAgICAgICAgICAvLyBjb2x1bW4gbmFt ZS4KKyAgICAgICAgICAgIHZhciBsYWJlbCA9IGMubGFiZWwuc3BsaXQoJzxi cj4nKTsKKyAgICAgICAgICAgIGxhYmVsID0gbGFiZWxbMF0ubGVuZ3RoID4g bGFiZWxbMV0ubGVuZ3RoID8gbGFiZWxbMF0gOiBsYWJlbFsxXTsKKworICAg ICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoY29sdW1uX3NpemVbdGFibGVf bmFtZV1bYy5uYW1lXSkpIHsKKyAgICAgICAgICAgICAgICBvcHRpb25zWyd3 aWR0aCddID0gU3FsRWRpdG9yVXRpbHMuY2FsY3VsYXRlQ29sdW1uV2lkdGgo bGFiZWwpCisgICAgICAgICAgICAgICAgY29sdW1uX3NpemVbdGFibGVfbmFt ZV1bYy5uYW1lXSA9IFNxbEVkaXRvclV0aWxzLmNhbGN1bGF0ZUNvbHVtbldp ZHRoKGxhYmVsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2Ug eworICAgICAgICAgICAgICAgIG9wdGlvbnNbJ3dpZHRoJ10gPSBjb2x1bW5f c2l6ZVt0YWJsZV9uYW1lXVtjLm5hbWVdOworICAgICAgICAgICAgfQogCiAg ICAgICAgICAgICAvLyBJZiBncmlkIGlzIGVkaXRhYmxlIHRoZW4gYWRkIGVk aXRvciBlbHNlIG1ha2UgaXQgcmVhZG9ubHkKICAgICAgICAgICAgIGlmKGMu Y2VsbCA9PSAnSnNvbicpIHsKQEAgLTY0MCw3ICs2MDEsNyBAQCBkZWZpbmUo WwogCiAgICAgICAgIC8vIEFkZCBvdXIgb3duIGN1c3RvbSBwcmltYXJ5IGtl eSB0byBrZWVwIHRyYWNrIG9mIGNoYW5nZXMKICAgICAgICAgXy5lYWNoKGNv bGxlY3Rpb24sIGZ1bmN0aW9uKHJvdyl7Ci0gICAgICAgICAgcm93WydfX3Rl bXBfUEsnXSA9IGVwaWNSYW5kb21TdHJpbmcoMTUpOworICAgICAgICAgIHJv d1snX190ZW1wX1BLJ10gPSBTcWxFZGl0b3JVdGlscy5lcGljUmFuZG9tU3Ry aW5nKDE1KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gQWRkLW9uIGZ1 bmN0aW9uIHdoaWNoIGFsbG93IHVzIHRvIGlkZW50aWZ5IHRoZSBmYXVsdHkg cm93IGFmdGVyIGluc2VydC91cGRhdGUKQEAgLTc3NSw2ICs3MzYsMTMgQEAg ZGVmaW5lKFsKICAgICAgICAgICAgfS5iaW5kKGVkaXRvcl9kYXRhKSk7CiAg ICAgICAgIH0KIAorICAgICAgICBncmlkLm9uQ29sdW1uc1Jlc2l6ZWQuc3Vi c2NyaWJlKGZ1bmN0aW9uIChlLCBhcmdzKSB7CisgICAgICAgICAgICB2YXIg Y29sdW1ucyA9IHRoaXMuZ2V0Q29sdW1ucygpOworICAgICAgICAgICAgXy5l YWNoKGNvbHVtbnMsIGZ1bmN0aW9uKGNvbCwga2V5KSB7CisgICAgICAgICAg ICAgICAgdmFyIGNvbHVtbl9zaXplID0gc2VsZi5oYW5kbGVyWydjb2xfc2l6 ZSddOworICAgICAgICAgICAgICAgIGNvbHVtbl9zaXplW3NlbGYuaGFuZGxl clsndGFibGVfbmFtZSddXVtjb2xbJ2lkJ11dID0gY29sWyd3aWR0aCddOwor ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogCiAgICAgICAgIC8vIExp c3RlbmVyIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSB1 c2VyIHVwZGF0ZXMgZXhpc3RpbmcgY2VsbAogICAgICAgICAvLyBUaGlzIHdp bGwgYmUgdXNlZCB0byBjb2xsZWN0IHByaW1hcnkga2V5IGZvciB0aGF0IHJv dwpAQCAtOTIzLDcgKzg5MSw3IEBAIGRlZmluZShbCiAgICAgICAgIC8vIExp c3RlbmVyIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIHdoZW4gdXNl ciBhZGRzIG5ldyByb3dzCiAgICAgICAgIGdyaWQub25BZGROZXdSb3cuc3Vi c2NyaWJlKGZ1bmN0aW9uIChlLCBhcmdzKSB7CiAgICAgICAgICAgLy8gc2Vs Zi5oYW5kbGVyLmRhdGFfc3RvcmUuYWRkZWQgd2lsbCBob2xkcyBhbGwgdGhl IG5ld2x5IGFkZGVkIHJvd3MvZGF0YQotICAgICAgICAgIHZhciBfa2V5ID0g ZXBpY1JhbmRvbVN0cmluZygxMCksCisgICAgICAgICAgdmFyIF9rZXkgPSBT cWxFZGl0b3JVdGlscy5lcGljUmFuZG9tU3RyaW5nKDEwKSwKICAgICAgICAg ICAgIGNvbHVtbiA9IGFyZ3MuY29sdW1uLAogICAgICAgICAgICAgaXRlbSA9 IGFyZ3MuaXRlbSwKICAgICAgICAgICAgIGRhdGFfbGVuZ3RoID0gdGhpcy5n cmlkLmdldERhdGFMZW5ndGgoKSwKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNz aW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yX3V0aWxzX3NwZWMuanMgYi93ZWIv cmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvcl91dGlsc19zcGVjLmpz Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiNzlkYzAK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0 L3NxbGVkaXRvcl91dGlsc19zcGVjLmpzCkBAIC0wLDAgKzEsMjcgQEAKKy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK K2RlZmluZShbInNvdXJjZXMvc3FsZWRpdG9yX3V0aWxzIl0sCitmdW5jdGlv biAoU3FsRWRpdG9yVXRpbHMpIHsKKyAgZGVzY3JpYmUoIlNxbEVkaXRvclV0 aWxzIiwgZnVuY3Rpb24gKCkgeworCisgICAgZGVzY3JpYmUoIkdlbmVyYXRl IGEgcmFuZG9tIHN0cmluZyBvZiBzaXplIDEwIiwgZnVuY3Rpb24gKCkgewor ICAgICAgaXQoInJldHVybnMgc3RyaW5nIG9mIGxlbmd0aCAxMCIsIGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgZXhwZWN0KFNxbEVkaXRvclV0aWxzLmVwaWNS YW5kb21TdHJpbmcoMTApLmxlbmd0aCkudG9FcXVhbCgxMCk7CisgICAgICB9 KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCJHZW5lcmF0ZSBhIHVuaXF1 ZSBoYXNoIGZvciBnaXZlbiBzdHJpbmciLCBmdW5jdGlvbiAoKSB7CisgICAg ICBpdCgicmV0dXJucyB1bmlxdWUgaGFzaCIsIGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgZXhwZWN0KFNxbEVkaXRvclV0aWxzLmdldEhhc2goJ3NlbGVjdCAq IGZyb20gdGVzdCcpKS50b0VxdWFsKDQwMzM3OTYzMCk7CisgICAgICB9KTsK KyAgICB9KTsKKworICB9KTsKK30pOwo= --001a1148d282e9993505515e433b 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 --001a1148d282e9993505515e433b--