Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1asPAn-0002Dr-JD for pgadmin-hackers@arkaria.postgresql.org; Tue, 19 Apr 2016 06:30:09 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1asPAl-0001Hw-KT for pgadmin-hackers@arkaria.postgresql.org; Tue, 19 Apr 2016 06:30:07 +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 1asPAk-0001HY-6T for pgadmin-hackers@postgresql.org; Tue, 19 Apr 2016 06:30:06 +0000 Received: from mail-yw0-x22c.google.com ([2607:f8b0:4002:c05::22c]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1asPAe-0001ix-Ne for pgadmin-hackers@postgresql.org; Tue, 19 Apr 2016 06:30:05 +0000 Received: by mail-yw0-x22c.google.com with SMTP id g133so6323248ywb.2 for ; Mon, 18 Apr 2016 23:29:59 -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 :cc; bh=mEUePQQAFfAAnlo2M/qKpaM/Cav+V1CVAZtl7Em22Z4=; b=vm0aVRwVTDNrf/K8owQnWa9/cWReL1rFs2Uq3sRrge8UAXOoYSMeiBiuG75bMKvau7 3I1ONct++YS3GXc8FtEnYgTjVNCnqAODsJhQvjGZ7wZ1OztGaig2qYTu9eJeOBdQiy4S vtlQDKxdjjThAb/RGCnwrCEzGix98YkiPVf3KBNaDRqUwBcWzg/owDZEfRjDAu01Ikkh JzV5oF8xKTBiew+q8/6QF/SZ09uVlUNgNfxCV+nheB0LS2J9fP+c2Ynp0dGJpnbqeDSJ 9ea5lFMTG1jflqQjkQZvtUjHU8KrNWCWd/1L4C6Q5e2iEu4scYQ5sbVFuGby0ghmfTVV lHeg== 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:cc; bh=mEUePQQAFfAAnlo2M/qKpaM/Cav+V1CVAZtl7Em22Z4=; b=RfNFOzZpKPOGoFJUcZPy+dBNrp+1T713eMsrCZCRSyo/745MiGsg2YYAWXCX+oDPU1 pIX2dSV3uLEAcuCaMuiS6kNlT0WMZfKjpCz3FqSdzJH0Q/dLPU6Gs7JnAI3Hcgm5wQDB YSIYCSbjQbizGNjn6PEwPNpaYBUQCiQVNm4xz3Gd3T5xxO5GulZ8IZ4xTtZdUcPiZ99X qApQf7HhCKE0q8DGMWnFFqUq/zxoqYkkyCcHF7D8Dffqx7A5sagQWcFrKU6u7/KFxPHy +uapan1545rgEJa9HeVFEW4DQZTQo0cRuoFAemR759+8KG0G6KIwdk+71jdUwtWIlfVf giww== X-Gm-Message-State: AOPr4FVWkbMbI+sjBZU4zMPgq8uTF5yn9A5KJrgEYFdxtrY4PDJvbmmlMbfaoN/+pIbg8E/simzYc8S8ydyhVGsk MIME-Version: 1.0 X-Received: by 10.129.46.80 with SMTP id u77mr585473ywu.143.1461047398122; Mon, 18 Apr 2016 23:29:58 -0700 (PDT) Received: by 10.37.203.134 with HTTP; Mon, 18 Apr 2016 23:29:57 -0700 (PDT) In-Reply-To: References: Date: Tue, 19 Apr 2016 11:59:57 +0530 Message-ID: Subject: Re: [pgAdmin4][Debugger]: Initial Patch From: Neel Patel To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11409dae2a99fe0530d09b6e 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 --001a11409dae2a99fe0530d09b6e Content-Type: multipart/alternative; boundary=001a11409dae2a99f90530d09b6c --001a11409dae2a99f90530d09b6c Content-Type: text/plain; charset=UTF-8 Hi Dave, Please find the attached patch file with below fix. - Remove the duplicate CSS and used the actual class for the debugger button toolbar. - As per the Ashesh's comment, previously we used 2 wcDocker instance to arrange the multiple tabs to main debugger panel. Now with this patch file, we have used only 1 wcDocker instance. Do review it and let us know for comments. Thanks, Neel Patel On Mon, Apr 18, 2016 at 6:07 PM, Dave Page wrote: > Hi > > On Monday, April 18, 2016, Neel Patel wrote: > >> Hi Dave, >> >> Please find inline comments with all the fixes. >> Attached is the updated patch file. Do review it and let me know for any >> comments. >> >> If you find any issues, let me know .Now, Working on the remaining TODOs >> as mentioned in below email. >> > > Thanks - committed with some minor tweaks. One problem partly still > remains though - you've partially copied the toolbar styling. Please use > the actual classes used by the Properties panel. I've already updated the > query tool in that way. Whilst your version looks much closer, it's missing > the minimum button widths, and duplicates CSS unnecessarily. > > Thanks. > > >> >> On Fri, Apr 15, 2016 at 2:09 AM, Dave Page wrote: >> >>> Hi >>> >>> On Thu, Apr 14, 2016 at 1:52 PM, Neel Patel >>> wrote: >>> > Hi, >>> > >>> > Please find attached v2 patch file of the debugger which fixes the >>> below >>> > issues which was not present in the first patch. >>> > In this patch, we have added new table in sqlite database to store the >>> > functions arguments value user has given during debugging. >>> > After applying this patch, user needs to execute "setup.py" to create >>> the >>> > new table in pgadmin4.db file. >>> > >>> > In direct debugging, when user debug the function then arguments >>> values will >>> > be stored in the sqlite database so when user debug the same function >>> again >>> > then previous values will be filled in the user input dialog. >>> > Once the execution is completed then user will be able to do the debug >>> of >>> > the same function again by pressing the "Continue/Restart" button. >>> > User can debug the "procedure" which is supported in PPAS database. >>> > Replaced the "Glyphicon" with the "font-awesome" icons. >>> >>> Very cool! Committed, understanding that there are still improvements >>> to be made. >>> >>> > Below are the TODOs >>> > >>> > Validate the input arguments values changed by user while depositing >>> the >>> > value during debugging. >>> > Need to implement the code folding in the codemirror editor area. >>> > As per the Ashesh's suggestion, need to add debug logs information so >>> that >>> > we can get the state of the debug function. Also need to add "arrow" >>> next to >>> > breakpoint in the gutters as per the pgadmin3. >>> > Need to add "Debug package initializer" in the user input dialog for >>> the >>> > direct debugging. >>> > Last but not least "Review comments" :) >>> >>> Here you go :-) >>> >>> - Ensure all messages are gettext enabled. >>> >> >> Fixed. >> >>> >>> - Constructs like the following won't work, because Jinja will >>> evaluate the string " + err.errormsg + " before it ever gets evaluated >>> as JS by the browser. >>> >>> Alertify.alert("{{ _('" + err.errormsg + "') }}"); >>> >> >> Fixed. >> >> >>> >>> - Please adjust the button bar to use the same styling as the button >>> bar on the Properties tab. >>> >> >> Fixed >> >>> >>> - Let's make the stack pane tab part of the tabset at the bottom of >>> the debugger, and ensure docking etc. works so tabs can be split off >>> and arranged around the main source window. >>> >> >> Fixed. Now stack pane will be displayed along with another panel at >> bottom and also docking has been introduced for all the panels so tabs will >> be arranged around main debugger panel. >> >> >>> >>> - Stepping is quite slow. What's causing that? I wonder if we really >>> need to have all the one line SQL templates - they're probably quite >>> expensive to process. >>> >> Fixed. This is due to polling timeout was high (1 second) and we are >> getting delay in getting the results. Now polling timeout has reduced to to >> 200ms. >> >>> >>> - Is backend_running.sql required? I've removed both versions as I >>> can't find any references to them. Are any other templates not >>> required? >>> >> Ok. No other templates. >> >>> >>> Will log any other issues that come up in further work. >>> >>> > Below functionalities are implemented but testing are pending. >>> > >>> > Trigger functions need to test with the debugger. >>> > Functions are tested with data types (like text, integer etc.) but it >>> needs >>> > to be tested with all the data types for direct debugging. >>> > Functions/Procedures need to test with PPAS 9.2 and earlier version >>> where >>> > debugger version is different. >>> >>> Thanks! >>> >>> -- >>> 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 > > --001a11409dae2a99f90530d09b6c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

Please find the attached patch= file with below fix.
  • Remove the duplicate CSS and used t= he actual class for the debugger button toolbar.
  • As per the Ashesh&= #39;s comment, previously we used 2 wcDocker instance to arrange the multip= le tabs to main debugger panel. Now with this patch file, we have used only= 1 wcDocker instance.
Do review it and let us know for commen= ts.

Thanks,
Neel =C2=A0Patel
=

On Mon, Apr= 18, 2016 at 6:07 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Monday, Apri= l 18, 2016, Neel Patel <neel.patel@enterprisedb.com> wrote:
Hi Dave,

Please find= inline comments with all the fixes.
Attached is the updated patc= h file. Do review it and let me know for any comments.

=
If you find any issues, let me know .Now, Working on the remaining TOD= Os as mentioned in below email.

Thanks - committed with some minor tweaks. One problem partly still= remains though - you've partially copied the toolbar styling. Please u= se the actual classes used by the Properties panel. I've already update= d the query tool in that way. Whilst your version looks much closer, it'= ;s missing the minimum button widths, and duplicates CSS unnecessarily.

Thanks.
=
=C2=A0

On Fri, Apr 15, 2016 at 2:0= 9 AM, Dave Page <dpage@pgadmin.org> w= rote:
Hi

On Thu, Apr 14, 2016 at 1:52 PM, Neel Patel <neel.patel@enterprisedb.= com> wrote:
> Hi,
>
> Please find attached v2 patch file of the debugger which fixes the bel= ow
> issues which was not present in the first patch.
> In this patch, we have added new table in sqlite database to store the=
> functions arguments value user has given during debugging.
> After applying this patch, user needs to execute "setup.py" = to create the
> new table in pgadmin4.db file.
>
> In direct debugging, when user debug the function then arguments value= s will
> be stored in the sqlite database so when user debug the same function = again
> then previous values will be filled in the user input dialog.
> Once the execution is completed then user will be able to do the debug= of
> the same function again by pressing the "Continue/Restart" b= utton.
> User can debug the "procedure" which is supported in PPAS da= tabase.
> Replaced the "Glyphicon" with the "font-awesome" i= cons.

Very cool! Committed, understanding that there are still improvement= s
to be made.

> Below are the TODOs
>
> Validate the input arguments values changed by user while depositing t= he
> value during debugging.
> Need to implement the code folding in the codemirror editor area.
> As per the Ashesh's suggestion, need to add debug logs information= so that
> we can get the state of the debug function. Also need to add "arr= ow" next to
> breakpoint in the gutters as per the pgadmin3.
> Need to add "Debug package initializer" in the user input di= alog for the
> direct debugging.
> Last but not least "Review comments" :)

Here you go :-)

- Ensure all messages are gettext enabled.
=C2=A0
Fixed.=C2=A0

- Constructs like the following won't work, because Jinja will
evaluate the string " + err.errormsg + " before it ever gets eval= uated
as JS by the browser.

Alertify.alert("{{ _('" + err.errormsg + "') }}"= ;);
=C2=A0
Fixed.
=C2=A0

- Please adjust the button bar to use the same styling as the button
bar on the Properties tab.
=C2=A0
Fixed=C2= =A0

- Let's make the stack pane tab part of the tabset at the bottom of
the debugger, and ensure docking etc. works so tabs can be split off
and arranged around the main source window.
=C2=A0
Fixed. Now stack pane will be displayed along with another panel at = bottom and also docking has been introduced for all the panels so tabs will= be arranged around main debugger panel.
=C2=A0

- Stepping is quite slow. What's causing that? I wonder if we really
need to have all the one line SQL templates - they're probably quite
expensive to process.
Fixed. This is due to polling ti= meout was high (1 second) and we are getting delay in getting the results. = Now polling timeout has reduced to to 200ms.

- Is backend_running.sql required? I've removed both versions as I
can't find any references to them. Are any other templates not
required?
Ok. No other templates.

Will log any other issues that come up in further work.

> Below functionalities are implemented but testing are pending.
>
> Trigger functions need to test with the debugger.
> Functions are tested with data types (like text, integer etc.)=C2=A0 b= ut it needs
> to be tested with all the data types for direct debugging.
> Functions/Procedures need to test with PPAS 9.2 and earlier version wh= ere
> debugger version is different.

Thanks!

--
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


--001a11409dae2a99f90530d09b6c-- --001a11409dae2a99fe0530d09b6e Content-Type: application/octet-stream; name="debugger_19_April_Fixes.patch" Content-Disposition: attachment; filename="debugger_19_April_Fixes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_in71vice0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3N0YXRp Yy9jc3MvZGVidWdnZXIuY3NzIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdn ZXIvc3RhdGljL2Nzcy9kZWJ1Z2dlci5jc3MKaW5kZXggZGZlYjMzMS4uY2Mw YzFhNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIv c3RhdGljL2Nzcy9kZWJ1Z2dlci5jc3MKKysrIGIvd2ViL3BnYWRtaW4vdG9v bHMvZGVidWdnZXIvc3RhdGljL2Nzcy9kZWJ1Z2dlci5jc3MKQEAgLTEsMTkg KzEsMyBAQAotLmJ0bi1zdGVwLWludG8sIC5idG4tc3RlcC1vdmVyLCAuYnRu LWNvbnRpbnVlLCAuYnRuLXRvZ2dsZS1icmVha3BvaW50LCAuYnRuLWNsZWFy LWJyZWFrcG9pbnQsIC5idG4tc3RvcCB7Ci0gIGJhY2tncm91bmQtY29sb3I6 ICNEMkQyRDI7Ci0gIGxlZnQ6IDBweDsKLSAgcmlnaHQ6IDBweDsKLSAgcGFk ZGluZzogN3B4OwotfQotCi0uZGVidWdnZXItdG9vbGJhciB7Ci0gIGJhY2tn cm91bmQtY29sb3I6ICNEMkQyRDI7Ci0gIGJvcmRlcjogMnB4IHNvbGlkICNB OUE5QTk7Ci0gIGxlZnQ6IDBweDsKLSAgcmlnaHQ6IDBweDsKLSAgcGFkZGlu ZzogMHB4OwotICBwYWRkaW5nLWxlZnQ6IDJweDsKLX0KLQogI2NvbnRhaW5l ciB7CiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgdG9wOiA0NHB4OwpAQCAt NjMsMTAgKzQ3LDEwIEBACiAgIHRleHQtYWxpZ246IGNlbnRlcjsKIH0KIAot LnBnLWRlYnVnZ2VyLXBhbmVsIC5icmVha3BvaW50cyB7CisuZGVidWdnZXIt Y29udGFpbmVyIC5icmVha3BvaW50cyB7CiAgICAgd2lkdGg6IDAuOWVtOwog fQogCi0ucGctZGVidWdnZXItcGFuZWwgLkNvZGVNaXJyb3ItYWN0aXZlbGlu ZS1iYWNrZ3JvdW5kIHsKKy5kZWJ1Z2dlci1jb250YWluZXIgLkNvZGVNaXJy b3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kIHsKICAgICBiYWNrZ3JvdW5kOiAj NTBCMEYwOwogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9k ZWJ1Z2dlci9kaXJlY3QuaHRtbCBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVn Z2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9kaXJlY3QuaHRtbAppbmRleCBhNzJi OTBhLi5lOThlN2QwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9k ZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdnZXIvZGlyZWN0Lmh0bWwKKysrIGIv d2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvdGVtcGxhdGVzL2RlYnVnZ2Vy L2RpcmVjdC5odG1sCkBAIC0xOSw0MCArMTksMzQgQEAgdHJ5IHsKIHslIGJs b2NrIGJvZHkgJX0KIAogPG5hdiBjbGFzcz0ibmF2YmFyLWludmVyc2UgbmF2 YmFyLWZpeGVkLXRvcCI+Ci0gIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVp ZCBkZWJ1Z2dlci10b29sYmFyIj4KLSAgICA8ZGl2IGNsYXNzPSJjb2xsYXBz ZSBuYXZiYXItY29sbGFwc2UiPgotICAgICAgPHVsIGNsYXNzPSJuYXYgbmF2 YmFyLW5hdiI+Ci0gICAgICAgIDxkaXYgaWQ9ImJ0bi10b29sYmFyIiBjbGFz cz0iYnRuLXRvb2xiYXIiIHJvbGU9InRvb2xiYXIiIGFyaWEtbGFiZWw9IiI+ Ci0gICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91 cCIgYXJpYS1sYWJlbD0iIj4KLSAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBl PSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXN0ZXAtaW50 byIgdGl0bGU9Int7IF8oJ1N0ZXAgaW50bycpIH19Ij4KLSAgICAgICAgICAg ICAgICAgIDxpIGNsYXNzPSJmYSBmYS1pbmRlbnQiPjwvaT4KLSAgICAgICAg ICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgICAgIDxidXR0b24gdHlwZT0i YnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zdGVwLW92ZXIi IHRpdGxlPSJ7eyBfKCdTdGVwIG92ZXInKSB9fSI+Ci0gICAgICAgICAgICAg ICAgICA8aSBjbGFzcz0iZmEgZmEtb3V0ZGVudCI+PC9pPgotICAgICAgICAg ICAgICA8L2J1dHRvbj4KLSAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJi dXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLWNvbnRpbnVlIiB0 aXRsZT0ie3sgXygnQ29udGludWUvU3RhcnQnKSB9fSI+Ci0gICAgICAgICAg ICAgICAgICA8aSBjbGFzcz0iZmEgZmEtcGxheS1jaXJjbGUiPjwvaT4KLSAg ICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAg ICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAiIGFy aWEtbGFiZWw9IiI+Ci0gICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0 dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGJ0bi10b2dnbGUtYnJlYWtw b2ludCIgdGl0bGU9Int7IF8oJ1RvZ2dsZSBicmVha3BvaW50JykgfX0iPgot ICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWNpcmNsZSI+PC9p PgotICAgICAgICAgICAgICA8L2J1dHRvbj4KLSAgICAgICAgICAgICAgPGJ1 dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRu LWNsZWFyLWJyZWFrcG9pbnQiIHRpdGxlPSJ7eyBfKCdDbGVhciBhbGwgYnJl YWtwb2ludHMnKSB9fSI+Ci0gICAgICAgICAgICAgICAgICA8aSBjbGFzcz0i ZmEgZmEtYmFuIj48L2k+Ci0gICAgICAgICAgICAgIDwvYnV0dG9uPgotICAg ICAgICAgIDwvZGl2PgotICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3Jv dXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgotICAgICAgICAgICAg ICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVs dCBidG4tc3RvcCIgdGl0bGU9Int7IF8oJ1N0b3AnKSB9fSI+Ci0gICAgICAg ICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtc3RvcC1jaXJjbGUiPjwvaT4K LSAgICAgICAgICAgICAgPC9idXR0b24+Ci0gICAgICAgICAgPC9kaXY+Cisg ICAgPGRpdiBpZD0iYnRuLXRvb2xiYXIiIGNsYXNzPSJidG4tdG9vbGJhciBw Zy1wcm9wLWJ0bi1ncm91cCIgcm9sZT0idG9vbGJhciIgYXJpYS1sYWJlbD0i Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91 cCIgYXJpYS1sYWJlbD0iIj4KKyAgICAgICAgICAgIDxidXR0b24gdHlwZT0i YnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zdGVwLWludG8i IHRpdGxlPSJ7eyBfKCdTdGVwIGludG8nKSB9fSI+CisgICAgICAgICAgICAg ICAgPGkgY2xhc3M9ImZhIGZhLWluZGVudCI+PC9pPgorICAgICAgICAgICAg PC9idXR0b24+CisgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIg Y2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4tc3RlcC1vdmVyIiB0aXRsZT0i e3sgXygnU3RlcCBvdmVyJykgfX0iPgorICAgICAgICAgICAgICAgIDxpIGNs YXNzPSJmYSBmYS1vdXRkZW50Ij48L2k+CisgICAgICAgICAgICA8L2J1dHRv bj4KKyAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0i YnRuIGJ0bi1kZWZhdWx0IGJ0bi1jb250aW51ZSIgdGl0bGU9Int7IF8oJ0Nv bnRpbnVlL1N0YXJ0JykgfX0iPgorICAgICAgICAgICAgICAgIDxpIGNsYXNz PSJmYSBmYS1wbGF5LWNpcmNsZSI+PC9pPgorICAgICAgICAgICAgPC9idXR0 b24+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJidG4t Z3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgorICAgICAgICAg ICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1 bHQgYnRuLXRvZ2dsZS1icmVha3BvaW50IiB0aXRsZT0ie3sgXygnVG9nZ2xl IGJyZWFrcG9pbnQnKSB9fSI+CisgICAgICAgICAgICAgICAgPGkgY2xhc3M9 ImZhIGZhLWNpcmNsZSI+PC9pPgorICAgICAgICAgICAgPC9idXR0b24+Cisg ICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBi dG4tZGVmYXVsdCBidG4tY2xlYXItYnJlYWtwb2ludCIgdGl0bGU9Int7IF8o J0NsZWFyIGFsbCBicmVha3BvaW50cycpIH19Ij4KKyAgICAgICAgICAgICAg ICA8aSBjbGFzcz0iZmEgZmEtYmFuIj48L2k+CisgICAgICAgICAgICA8L2J1 dHRvbj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImJ0 bi1ncm91cCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+CisgICAgICAg ICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVm YXVsdCBidG4tc3RvcCIgdGl0bGU9Int7IF8oJ1N0b3AnKSB9fSI+CisgICAg ICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXN0b3AtY2lyY2xlIj48L2k+ CisgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgPC9kaXY+Ci0gICAg ICA8L3VsPgogICAgIDwvZGl2PgotICA8L2Rpdj4KIDwvbmF2PgotPGRpdiBp ZD0iY29udGFpbmVyIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgY2xh c3M9ImRlYnVnZ2VyLWNvbnRhaW5lciI+PC9kaXY+CiB7JSBlbmRibG9jayAl fQogCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2Vy L3RlbXBsYXRlcy9kZWJ1Z2dlci9qcy9kaXJlY3QuanMgYi93ZWIvcGdhZG1p bi90b29scy9kZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdnZXIvanMvZGlyZWN0 LmpzCmluZGV4IDA0ZmFiOGMuLmQ3ZjJkNzggMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9qcy9k aXJlY3QuanMKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvdGVt cGxhdGVzL2RlYnVnZ2VyL2pzL2RpcmVjdC5qcwpAQCAtMTMxNywzNSArMTMx Nyw2IEBAIGRlZmluZSgKICAgICAgICAgJ2NvZGUnLCBmYWxzZSwgJzEwMCUn LCAnMTAwJScsCiAgICAgICAgIGZ1bmN0aW9uKHBhbmVsKSB7CiAKLSAgICAg ICAgICAgIHZhciBjb250YWluZXIgPSBwYW5lbC5sYXlvdXQoKS5zY2VuZSgp LmZpbmQoJy5wZy1kZWJ1Z2dlci1wYW5lbCcpOwotCi0gICAgICAgICAgICAv LyBDcmVhdGUgdGhlIHdjU3BsaXR0ZXIgdXNlZCBieSB3Y0RvY2tlciB0byBz cGxpdCB0aGUgc2luZ2xlIHBhbmVsLgotICAgICAgICAgICAgdmFyIGhTcGxp dHRlciA9IG5ldyB3Y1NwbGl0dGVyKAotICAgICAgICAgICAgICAgIGNvbnRh aW5lciwgcGFuZWwsCi0gICAgICAgICAgICAgICAgd2NEb2NrZXIuT1JJRU5U QVRJT04uVkVSVElDQUwKLSAgICAgICAgICAgICAgICApOwotCi0gICAgICAg ICAgICBoU3BsaXR0ZXIuc2Nyb2xsYWJsZSgwLCBmYWxzZSwgZmFsc2UpOwot ICAgICAgICAgICAgaFNwbGl0dGVyLnNjcm9sbGFibGUoMSwgdHJ1ZSwgdHJ1 ZSk7Ci0KLSAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhpcyBzcGxpdHRl ciB3aXRoIGEgbGF5b3V0IGluIGVhY2ggcGFuZS4KLSAgICAgICAgICAgIGhT cGxpdHRlci5pbml0TGF5b3V0cyh3Y0RvY2tlci5MQVlPVVQuU0lNUExFLCB3 Y0RvY2tlci5MQVlPVVQuU0lNUExFKTsKLQotICAgICAgICAgICAgLy8gQnkg ZGVmYXVsdCwgdGhlIHNwbGl0dGVyIHNwbGl0cyBkb3duIHRoZSBtaWRkbGUs IHdlIHNwbGl0IHRoZSBtYWluIHBhbmVsIGJ5IDgwJS4KLSAgICAgICAgICAg IGhTcGxpdHRlci5wb3MoMC42NSk7Ci0KLSAgICAgICAgICAgIHZhciBwYXJh bXMgPSAkKCc8ZGl2IGNsYXNzPSJmdWxsLWNvbnRhaW5lciBwYXJhbXMiPjwv ZGl2PicpOwotICAgICAgICAgICAgaFNwbGl0dGVyLnJpZ2h0KCkuYWRkSXRl bShwYXJhbXMpOwotCi0gICAgICAgICAgICAvLyBDcmVhdGUgd2NEb2NrZXIg Zm9yIHRhYiBzZXQuCi0gICAgICAgICAgICB2YXIgb3V0X2RvY2tlciA9IG5l dyB3Y0RvY2tlcigKLSAgICAgICAgICAgICAgJy5mdWxsLWNvbnRhaW5lcics IHsKLSAgICAgICAgICAgICAgYWxsb3dDb250ZXh0TWVudTogZmFsc2UsCi0g ICAgICAgICAgICAgIGFsbG93Q29sbGFwc2U6IGZhbHNlLAotICAgICAgICAg ICAgICB0aGVtZVBhdGg6ICd7eyB1cmxfZm9yKCdzdGF0aWMnLCBmaWxlbmFt ZT0nY3NzL3djRG9ja2VyL1RoZW1lcycpIH19JywKLSAgICAgICAgICAgICAg dGhlbWU6ICdwZ2FkbWluJwotICAgICAgICAgICAgfSk7Ci0KICAgICAgICAg ICAgIC8vIENyZWF0ZSB0aGUgcGFyYW1ldGVycyBwYW5lbCB0byBkaXNwbGF5 IHRoZSBhcmd1bWVudHMgb2YgdGhlIGZ1bmN0aW9ucwogICAgICAgICAgICAg dmFyIHBhcmFtZXRlcnMgPSBuZXcgcGdBZG1pbi5Ccm93c2VyLlBhbmVsKHsK ICAgICAgICAgICAgICAgbmFtZTogJ3BhcmFtZXRlcnMnLApAQCAtMTQwMiw0 OSArMTM3Myw1MCBAQCBkZWZpbmUoCiAgICAgICAgICAgICB9KQogCiAgICAg ICAgICAgICAvLyBMb2FkIGFsbCB0aGUgY3JlYXRlZCBwYW5lbHMKLSAgICAg ICAgICAgIHBhcmFtZXRlcnMubG9hZChvdXRfZG9ja2VyKTsKLSAgICAgICAg ICAgIGxvY2FsX3ZhcmlhYmxlcy5sb2FkKG91dF9kb2NrZXIpOwotICAgICAg ICAgICAgbWVzc2FnZXMubG9hZChvdXRfZG9ja2VyKTsKLSAgICAgICAgICAg IHJlc3VsdHMubG9hZChvdXRfZG9ja2VyKTsKLSAgICAgICAgICAgIHN0YWNr X3BhbmUubG9hZChvdXRfZG9ja2VyKTsKLQotICAgICAgICAgICAgLy8gQWRk IGFsbCB0aGUgcGFuZWxzIHRvIHRoZSBkb2NrZXIKLSAgICAgICAgICAgIHNl bGYucGFyYW1ldGVyc19wYW5lbCA9IG91dF9kb2NrZXIuYWRkUGFuZWwoJ3Bh cmFtZXRlcnMnLCB3Y0RvY2tlci5ET0NLLkxFRlQpOwotICAgICAgICAgICAg c2VsZi5sb2NhbF92YXJpYWJsZXNfcGFuZWwgPSBvdXRfZG9ja2VyLmFkZFBh bmVsKCdsb2NhbF92YXJpYWJsZXMnLCB3Y0RvY2tlci5ET0NLLlNUQUNLRUQs IHNlbGYucGFyYW1ldGVyc19wYW5lbCk7Ci0gICAgICAgICAgICBzZWxmLnN0 YWNrX3BhbmVfcGFuZWwgPSBvdXRfZG9ja2VyLmFkZFBhbmVsKCdzdGFja19w YW5lJywgd2NEb2NrZXIuRE9DSy5TVEFDS0VELCBzZWxmLnBhcmFtZXRlcnNf cGFuZWwpOwotICAgICAgICAgICAgc2VsZi5tZXNzYWdlc19wYW5lbCA9IG91 dF9kb2NrZXIuYWRkUGFuZWwoJ21lc3NhZ2VzJywgd2NEb2NrZXIuRE9DSy5T VEFDS0VELCBzZWxmLnBhcmFtZXRlcnNfcGFuZWwpOwotICAgICAgICAgICAg c2VsZi5yZXN1bHRzX3BhbmVsID0gb3V0X2RvY2tlci5hZGRQYW5lbCgncmVz dWx0cycsIHdjRG9ja2VyLkRPQ0suU1RBQ0tFRCwgc2VsZi5wYXJhbWV0ZXJz X3BhbmVsKTsKLQotICAgICAgICAgICAgLy8gTm93IGNyZWF0ZSBhIHRhYiB3 aWRnZXQgYW5kIHB1dCB0aGF0IGludG8gb25lIG9mIHRoZSBzdWIgc3BsaXRz LgotICAgICAgICAgICAgdmFyIGVkaXRvcl9wYW5lID0gJCgnPGRpdiBpZD0i c3RhY2tfZWRpdG9yX3BhbmUiIGNsYXNzPSJmdWxsLWNvbnRhaW5lci1wYW5l IGluZm8iPjwvZGl2PicpOwotICAgICAgICAgICAgdmFyIGNvZGVfZWRpdG9y X2FyZWEgPSAkKCc8dGV4dGFyZWEgaWQ9ImRlYnVnZ2VyLWVkaXRvci10ZXh0 YXJlYSI+PC90ZXh0YXJlYT4nKS5hcHBlbmQoZWRpdG9yX3BhbmUpOwotICAg ICAgICAgICAgaFNwbGl0dGVyLmxlZnQoKS5hZGRJdGVtKGNvZGVfZWRpdG9y X2FyZWEpOwotCi0gICAgICAgICAgICAvLyBUbyBzaG93IHRoZSBsaW5lLW51 bWJlciBhbmQgc2V0IGJyZWFrcG9pbnQgbWFya2VyIGRldGFpbHMgYnkgdXNl ci4KLSAgICAgICAgICAgIHZhciBlZGl0b3IgPSBzZWxmLmVkaXRvciA9IENv ZGVNaXJyb3IuZnJvbVRleHRBcmVhKAotICAgICAgICAgICAgICAgIGNvZGVf ZWRpdG9yX2FyZWEuZ2V0KDApLCB7Ci0gICAgICAgICAgICAgICAgbGluZU51 bWJlcnM6IHRydWUsCi0gICAgICAgICAgICAgICAgZ3V0dGVyczogWyJub3Rl LWd1dHRlciIsICJDb2RlTWlycm9yLWxpbmVudW1iZXJzIiwgImJyZWFrcG9p bnRzIl0sCi0gICAgICAgICAgICAgICAgbW9kZTogInRleHQveC1zcWwiLAot ICAgICAgICAgICAgICAgIHJlYWRPbmx5OiB0cnVlCi0gICAgICAgICAgICAg IH0pOworICAgICAgICAgICAgcGFyYW1ldGVycy5sb2FkKHNlbGYuZG9ja2Vy KTsKKyAgICAgICAgICAgIGxvY2FsX3ZhcmlhYmxlcy5sb2FkKHNlbGYuZG9j a2VyKTsKKyAgICAgICAgICAgIG1lc3NhZ2VzLmxvYWQoc2VsZi5kb2NrZXIp OworICAgICAgICAgICAgcmVzdWx0cy5sb2FkKHNlbGYuZG9ja2VyKTsKKyAg ICAgICAgICAgIHN0YWNrX3BhbmUubG9hZChzZWxmLmRvY2tlcik7CisgICAg ICAgIH0pOworCisgICAgICAgIHNlbGYuY29kZV9lZGl0b3JfcGFuZWwgPSBz ZWxmLmRvY2tlci5hZGRQYW5lbCgnY29kZScsIHdjRG9ja2VyLkRPQ0suVE9Q ICk7CisKKyAgICAgICAgc2VsZi5wYXJhbWV0ZXJzX3BhbmVsID0gc2VsZi5k b2NrZXIuYWRkUGFuZWwoCisgICAgICAgICAgJ3BhcmFtZXRlcnMnLCB3Y0Rv Y2tlci5ET0NLLkJPVFRPTSwgc2VsZi5jb2RlX2VkaXRvcl9wYW5lbCk7Cisg ICAgICAgIHNlbGYubG9jYWxfdmFyaWFibGVzX3BhbmVsID0gc2VsZi5kb2Nr ZXIuYWRkUGFuZWwoJ2xvY2FsX3ZhcmlhYmxlcycsIHdjRG9ja2VyLkRPQ0su U1RBQ0tFRCwgc2VsZi5wYXJhbWV0ZXJzX3BhbmVsLCB7CisgICAgICAgICAg dGFiT3JpZW50YXRpb246IHdjRG9ja2VyLlRBQi5UT1AKKyAgICAgICAgfSk7 CisgICAgICAgIHNlbGYubWVzc2FnZXNfcGFuZWwgPSBzZWxmLmRvY2tlci5h ZGRQYW5lbCgnbWVzc2FnZXMnLCB3Y0RvY2tlci5ET0NLLlNUQUNLRUQsIHNl bGYucGFyYW1ldGVyc19wYW5lbCk7CisgICAgICAgIHNlbGYucmVzdWx0c19w YW5lbCA9IHNlbGYuZG9ja2VyLmFkZFBhbmVsKAorICAgICAgICAgICdyZXN1 bHRzJywgd2NEb2NrZXIuRE9DSy5TVEFDS0VELCBzZWxmLnBhcmFtZXRlcnNf cGFuZWwpOworICAgICAgICBzZWxmLnN0YWNrX3BhbmVfcGFuZWwgPSBzZWxm LmRvY2tlci5hZGRQYW5lbCgKKyAgICAgICAgICAnc3RhY2tfcGFuZScsIHdj RG9ja2VyLkRPQ0suU1RBQ0tFRCwgc2VsZi5wYXJhbWV0ZXJzX3BhbmVsKTsK KworICAgICAgICB2YXIgZWRpdG9yX3BhbmUgPSAkKCc8ZGl2IGlkPSJzdGFj a19lZGl0b3JfcGFuZSIgY2xhc3M9ImZ1bGwtY29udGFpbmVyLXBhbmUgaW5m byI+PC9kaXY+Jyk7CisgICAgICAgIHZhciBjb2RlX2VkaXRvcl9hcmVhID0g JCgnPHRleHRhcmVhIGlkPSJkZWJ1Z2dlci1lZGl0b3ItdGV4dGFyZWEiPjwv dGV4dGFyZWE+JykuYXBwZW5kKGVkaXRvcl9wYW5lKTsKKyAgICAgICAgc2Vs Zi5jb2RlX2VkaXRvcl9wYW5lbC5sYXlvdXQoKS5hZGRJdGVtKGNvZGVfZWRp dG9yX2FyZWEpOworCisgICAgICAgIC8vIFRvIHNob3cgdGhlIGxpbmUtbnVt YmVyIGFuZCBzZXQgYnJlYWtwb2ludCBtYXJrZXIgZGV0YWlscyBieSB1c2Vy LgorICAgICAgICB2YXIgZWRpdG9yID0gc2VsZi5lZGl0b3IgPSBDb2RlTWly cm9yLmZyb21UZXh0QXJlYSgKKyAgICAgICAgICBjb2RlX2VkaXRvcl9hcmVh LmdldCgwKSwgeworICAgICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLAorICAg ICAgICAgIGd1dHRlcnM6IFsibm90ZS1ndXR0ZXIiLCAiQ29kZU1pcnJvci1s aW5lbnVtYmVycyIsICJicmVha3BvaW50cyJdLAorICAgICAgICAgIG1vZGU6 ICJ0ZXh0L3gtc3FsIiwKKyAgICAgICAgICByZWFkT25seTogdHJ1ZQogICAg ICAgICB9KTsKIAogICAgICAgICAvLyBPbiBsb2FkaW5nIHRoZSBkb2NrZXIs IHJlZ2lzdGVyIHRoZSBjYWxsYmFja3MKICAgICAgICAgdmFyIG9uTG9hZCA9 IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgc2VsZi5kb2NrZXIuZmluaXNo TG9hZGluZygxMDApOwotICAgICAgICAgICAgc2VsZi5kb2NrZXIub2ZmKHdj RG9ja2VyLkVWRU5ULkxPQURFRCk7Ci0gICAgICAgICAgICAvLyBSZWdpc3Rl ciB0aGUgY2FsbGJhY2sgd2hlbiB1c2VyIHNldC9jbGVhciB0aGUgYnJlYWtw b2ludCBvbiBndXR0ZXIgYXJlYS4KLSAgICAgICAgICAgIHNlbGYuZWRpdG9y Lm9uKCJndXR0ZXJDbGljayIsIHNlbGYub25CcmVha1BvaW50LmJpbmQoc2Vs ZiksIHNlbGYpOworICAgICAgICAgIHNlbGYuZG9ja2VyLmZpbmlzaExvYWRp bmcoMTAwKTsKKyAgICAgICAgICBzZWxmLmRvY2tlci5vZmYod2NEb2NrZXIu RVZFTlQuTE9BREVEKTsKKyAgICAgICAgICAvLyBSZWdpc3RlciB0aGUgY2Fs bGJhY2sgd2hlbiB1c2VyIHNldC9jbGVhciB0aGUgYnJlYWtwb2ludCBvbiBn dXR0ZXIgYXJlYS4KKyAgICAgICAgICBzZWxmLmVkaXRvci5vbigiZ3V0dGVy Q2xpY2siLCBzZWxmLm9uQnJlYWtQb2ludC5iaW5kKHNlbGYpLCBzZWxmKTsK ICAgICAgICAgfTsKIAogICAgICAgICBzZWxmLmRvY2tlci5zdGFydExvYWRp bmcoJ3t7IF8oJ0xvYWRpbmcuLi4nKSB9fScpOwogICAgICAgICBzZWxmLmRv Y2tlci5vbih3Y0RvY2tlci5FVkVOVC5MT0FERUQsIG9uTG9hZCk7CiAKLSAg ICAgICAgc2VsZi5tYWluX3BhbmVsID0gc2VsZi5kb2NrZXIuYWRkUGFuZWwo Ci0gICAgICAgICAgJ2NvZGUnLCB3Y0RvY2tlci5ET0NLLlRPUCwgbnVsbCwg e2g6ICcxMDAlJywgdzogJzEwMCUnfQotICAgICAgICAgICk7Ci0KICAgICAg ICAgLy8gQ3JlYXRlIHRoZSB0b29sYmFyIHZpZXcgZm9yIGRlYnVnZ2luZyB0 aGUgZnVuY3Rpb24KICAgICAgICAgdGhpcy50b29sYmFyVmlldyA9IG5ldyBE ZWJ1Z2dlclRvb2xiYXJWaWV3KCk7CiAgICAgfSwK --001a11409dae2a99fe0530d09b6e 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 --001a11409dae2a99fe0530d09b6e--