Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUuaj-0002t5-VZ for pgadmin-hackers@arkaria.postgresql.org; Wed, 03 Aug 2016 11:44:06 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bUuaj-0001yQ-II for pgadmin-hackers@arkaria.postgresql.org; Wed, 03 Aug 2016 11:44:05 +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 1bUuaW-0001kV-8w for pgadmin-hackers@postgresql.org; Wed, 03 Aug 2016 11:43:52 +0000 Received: from mail-oi0-x22a.google.com ([2607:f8b0:4003:c06::22a]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bUuaR-0001dt-Rt for pgadmin-hackers@postgresql.org; Wed, 03 Aug 2016 11:43:51 +0000 Received: by mail-oi0-x22a.google.com with SMTP id j185so275832179oih.0 for ; Wed, 03 Aug 2016 04:43:47 -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=WsaubkYWj01s7alPQ4F4BGf/3y2SavmL7qHjIhyKWFo=; b=iS563ixEdqbnrseCsAF0HEJ2oVuXuD0Gq1Ucd2+xNmnbKkVgqU8lrtJeX1l76Cwh86 iDdbHLR2CyNx0bAwHkU+GiFBGd0i70ubv22BJivzjMBBfedzc6YxnYbYKat6PStKfyXO 1QnFNfArzFuBDRhHvz+/CsBVPltRN2LGFlpYQK4dR1JqzLDzrPLDrwSt4FmTl7kKNREH 5L8qKxlOSdH0lqD3pRLp5WAR9ZNV4rOVjtrtPV+6gqf/1c2CKtwgejH7+QfuNlslo0uA at9O0fHb8XtSdg6nGJU4rKxhf+0nOVwdttwsgWwr1RI0tvaQ3wMIqukvDk1vbdDe/ruZ CGWA== 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:from:date :message-id:subject:to:cc; bh=WsaubkYWj01s7alPQ4F4BGf/3y2SavmL7qHjIhyKWFo=; b=hUDZO/m8Q8tfH/VZQbou9US3DVB2pS2/3Z4Trb0vOeRycqm0GeOGA8VUvBIgTCieN3 dEmJ9dpQSvS5cBYz+hydFyVDhdLMFWEzqVvrfIfQvb/6bgkkL0oMvuqj4ygeUhUWX//I oPOa3lcFeh6fJwBiWxxGbX/q/JNtgLabFA8cXT+zyNtpJZO9FYQFGayTw/XD0TxHD4H0 QC9wanfExB/MXhwKhsiFFELqUkp76c4ywLnKg88+ceLAuS/0XkWeRPoV3FA6n1JE7iOq 25zIZSbBTziJmItF+4vXRi2D5685JA4cujFSvvaPjSY0GCNMfvGYTq2oWQpd/VJTnmnd dFDw== X-Gm-Message-State: AEkooutOPN3Iheu7t0OGXVsaJckImGrJThWnzioUqXxVL+93N8hQnU8nORi249Vqt9WoiWQJT3baugvw/+gpvA+1 X-Received: by 10.157.60.142 with SMTP id z14mr38326927otc.193.1470224625302; Wed, 03 Aug 2016 04:43:45 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.5.99 with HTTP; Wed, 3 Aug 2016 04:43:44 -0700 (PDT) In-Reply-To: References: From: Harshal Dhumal Date: Wed, 3 Aug 2016 17:13:44 +0530 Message-ID: Subject: Re: Patch for RM1500 other issues [pgAdmin4] To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=94eb2c192a1e886681053929583c 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 --94eb2c192a1e886681053929583c Content-Type: multipart/alternative; boundary=94eb2c192a1e88667d053929583a --94eb2c192a1e88667d053929583a Content-Type: text/plain; charset=UTF-8 Hi Dave, This because on python 2.X simplejson throws KeyError instead of TypeError if any error occurs while loading json data from given object. Now I have handled that exception as well in attached patch. I'm sending this as separate patch instead part of RM1500. -- *Harshal Dhumal* *Software Engineer* EnterpriseDB India: http://www.enterprisedb.com The Enterprise PostgreSQL Company On Wed, Aug 3, 2016 at 4:12 PM, Dave Page wrote: > Hi > > On Wed, Aug 3, 2016 at 7:36 AM, Harshal Dhumal > wrote: > > Hi, > > > > PFA patch for RM1500. > > > > Changes/Issues fixed: > > > > 1] datamodel.js: For collection type added check before adding model into > > "changed" list instead of adding it blindly. > > > > 2] Type casting from str to int of column properties like attlen, > > attpricision. > > > > 3] Added missing data formating when adding new column to existing table > > (from table edit mode). > > > > 4] Added more validation for Foreign key constraint. > > > > 5] Column.js: Column grid (in table edit mode) show proper disabled color > > for disabled cell when grid renders. > > > > 6] All constraints and index js added idattribute to distinguish which > > s/constraint or s/index is updated on server side. > > > > 7] Column update.sql: Fixed sql when altering column data type. The issue > > was when we alter data type from which has length and precision to data > type > > which don't have these properties and vice versa. > > For e.g. alter data type numeric(10,12) to real (and vice versa) > > > > 8] Renaming constraint (RM1500). > > I get the following error when renaming a primary key. I have > restarted my app sever and done a hard reload/clear cache on my > browser. The generated SQL is: > > ALTER TABLE public.foo > RENAME CONSTRAINT foo_pkey TO foo_pkey1; > > > 2016-08-03 11:39:43,764: INFO werkzeug: 127.0.0.1 - - [03/Aug/2016 > 11:39:43] "PUT /browser/table/obj/1/1/12403/2200/158521 HTTP/1.1" 500 > - > Traceback (most recent call last): > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 2000, in __call__ > return self.wsgi_app(environ, start_response) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1991, in wsgi_app > response = self.make_response(self.handle_exception(e)) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1567, in handle_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1988, in wsgi_app > response = self.full_dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1641, in full_dispatch_request > rv = self.handle_user_exception(e) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1544, in handle_user_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1639, in full_dispatch_request > rv = self.dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1625, in dispatch_request > return self.view_functions[rule.endpoint](**req.view_args) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/views.py", > line 84, in view > return self.dispatch_request(*args, **kwargs) > File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line > 235, in dispatch_request > return method(*args, **kwargs) > File > "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py", > line 331, in wrap > return f(*args, **kwargs) > File > "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py", > line 1446, in update > data[k] = json.loads(v, encoding='utf-8') > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/simplejson/__init__.py", > line 533, in loads > return cls(encoding=encoding, **kw).decode(s) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/simplejson/decoder.py", > line 370, in decode > obj, end = self.raw_decode(s) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/simplejson/decoder.py", > line 395, in raw_decode > ord0 = ord(s[idx]) > KeyError: 0 > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --94eb2c192a1e88667d053929583a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

This because on python 2.X simp= lejson throws KeyError instead of TypeError if any error occurs while loadi= ng json data from given object. Now I have handled that exception as well i= n attached patch.

I'm sending this as separate p= atch instead part of RM1500.


--=C2=A0
Harshal Dhumal
Software Engin= eer

EnterpriseDB India:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Company

On Wed, Aug 3, 2016 at 4:12 PM, Dave Page <= dpage@pgadmin.org> wrote:
H= i

On Wed, Aug 3, 2016 at 7:36 AM, Harshal Dhumal
<harshal.dhumal@enter= prisedb.com> wrote:
> Hi,
>
> PFA patch for RM1500.
>
> Changes/Issues fixed:
>
> 1] datamodel.js: For collection type added check before adding model i= nto
> "changed" list instead of adding it blindly.
>
> 2] Type casting from str to int of column properties like attlen,
> attpricision.
>
> 3] Added missing data formating when adding new column to existing tab= le
> (from table edit mode).
>
> 4] Added more validation for Foreign key constraint.
>
> 5] Column.js: Column grid (in table edit mode) show proper disabled co= lor
> for disabled cell when grid renders.
>
> 6] All constraints and index js added idattribute to distinguish which=
> s/constraint or s/index is updated on server side.
>
> 7] Column update.sql: Fixed sql when altering column data type. The is= sue
> was when we alter data type from which has length and precision to dat= a type
> which don't have these properties and vice versa.
> For e.g. alter data type numeric(10,12) to real (and vice versa)
>
> 8] Renaming constraint (RM1500).

I get the following error when renaming a primary key. I have
restarted my app sever and done a hard reload/clear cache on my
browser. The generated SQL is:

ALTER TABLE public.foo
=C2=A0 =C2=A0 RENAME CONSTRAINT foo_pkey TO foo_pkey1;


2016-08-03 11:39:43,764: INFO werkzeug: 127.0.0.1 - - [03/Aug/2016
11:39:43] "PUT /browser/table/obj/1/1/12403/2200/158521 HTTP/1.1"= 500
-
Traceback (most recent call last):
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 2000, in __call__
=C2=A0 =C2=A0 return self.wsgi_app(environ, start_response)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1991, in wsgi_app
=C2=A0 =C2=A0 response =3D self.make_response(self.handle_exception(e))
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1567, in handle_exception
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1988, in wsgi_app
=C2=A0 =C2=A0 response =3D self.full_dispatch_request()
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1641, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self.handle_user_exception(e)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1544, in handle_user_exception
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1639, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self.dispatch_request()
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1625, in dispatch_request
=C2=A0 =C2=A0 return self.view_functions[rule.endpoint](**req.view_args)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/views.py",
line 84, in view
=C2=A0 =C2=A0 return self.dispatch_request(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py&qu= ot;, line
235, in dispatch_request
=C2=A0 =C2=A0 return method(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_grou= ps/servers/databases/schemas/tables/__init__.py",
line 331, in wrap
=C2=A0 =C2=A0 return f(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_grou= ps/servers/databases/schemas/tables/__init__.py",
line 1446, in update
=C2=A0 =C2=A0 data[k] =3D json.loads(v, encoding=3D'utf-8')
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/simplejson/__init__.py",
line 533, in loads
=C2=A0 =C2=A0 return cls(encoding=3Dencoding, **kw).decode(s)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/simplejson/decoder.py",
line 370, in decode
=C2=A0 =C2=A0 obj, end =3D self.raw_decode(s)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/simplejson/decoder.py",
line 395, in raw_decode
=C2=A0 =C2=A0 ord0 =3D ord(s[idx])
KeyError: 0

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

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

--94eb2c192a1e88667d053929583a-- --94eb2c192a1e886681053929583c Content-Type: text/x-patch; charset=US-ASCII; name="simplejson_handle_load_exception_on_python_2.X.X.patch" Content-Disposition: attachment; filename="simplejson_handle_load_exception_on_python_2.X.X.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iretmx9j0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL19faW5p dF9fLnB5CmluZGV4IGI2Nzc4M2MuLmVmNWNiZTQgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vX19pbml0X18ucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi9fX2luaXRfXy5weQpAQCAt NTE1LDcgKzUxNSw3IEBAIGNsYXNzIENvbHVtbnNWaWV3KFBHQ2hpbGROb2Rl VmlldywgRGF0YVR5cGVSZWFkZXIpOgogICAgICAgICBmb3IgaywgdiBpbiBk YXRhLml0ZW1zKCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAg ICAgZGF0YVtrXSA9IGpzb24ubG9hZHModiwgZW5jb2Rpbmc9J3V0Zi04JykK LSAgICAgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKToK KyAgICAgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yLCBL ZXlFcnJvcik6CiAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYKIAogICAg ICAgICByZXF1aXJlZF9hcmdzID0gewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMv Y2hlY2tfY29uc3RyYWludC9fX2luaXRfXy5weQppbmRleCA4ZjBhODE1Li4z NDA1ZGVkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvY2hlY2tfY29uc3RyYWludC9fX2luaXRfXy5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3Ry YWludC9fX2luaXRfXy5weQpAQCAtNDAzLDcgKzQwMyw3IEBAIGNsYXNzIENo ZWNrQ29uc3RyYWludFZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAg Zm9yIGssIHYgaW4gZGF0YS5pdGVtcygpOgogICAgICAgICAgICAgdHJ5Ogog ICAgICAgICAgICAgICAgIGRhdGFba10gPSBqc29uLmxvYWRzKHYsIGVuY29k aW5nPSd1dGYtOCcpCi0gICAgICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3Is IFR5cGVFcnJvcik6CisgICAgICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3Is IFR5cGVFcnJvciwgS2V5RXJyb3IpOgogICAgICAgICAgICAgICAgIGRhdGFb a10gPSB2CiAKICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRz L2V4Y2x1c2lvbl9jb25zdHJhaW50L19faW5pdF9fLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50 L19faW5pdF9fLnB5CmluZGV4IDdhNjM5NmQuLjI2MTE1ZjcgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNsdXNp b25fY29uc3RyYWludC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvX19p bml0X18ucHkKQEAgLTQ0OCw3ICs0NDgsNyBAQCBjbGFzcyBFeGNsdXNpb25D b25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICBmb3Ig aywgdiBpbiBkYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICB0cnk6CiAgICAg ICAgICAgICAgICAgZGF0YVtrXSA9IGpzb24ubG9hZHModiwgZW5jb2Rpbmc9 J3V0Zi04JykKLSAgICAgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlw ZUVycm9yKToKKyAgICAgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlw ZUVycm9yLCBLZXlFcnJvcik6CiAgICAgICAgICAgICAgICAgZGF0YVtrXSA9 IHYKIAogICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9y ZWlnbl9rZXkvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvZm9yZWlnbl9rZXkvX19pbml0X18ucHkKaW5kZXggYjZk OTk2Yi4uOWEyZWUwNiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L19faW5pdF9fLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tl eS9fX2luaXRfXy5weQpAQCAtNDcxLDcgKzQ3MSw3IEBAIGNsYXNzIEZvcmVp Z25LZXlDb25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAg ICBmb3IgaywgdiBpbiBkYXRhLml0ZW1zKCk6CiAgICAgICAgICAgICB0cnk6 CiAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IGpzb24ubG9hZHModiwgZW5j b2Rpbmc9J3V0Zi04JykKLSAgICAgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJv ciwgVHlwZUVycm9yKToKKyAgICAgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJv ciwgVHlwZUVycm9yLCBLZXlFcnJvcik6CiAgICAgICAgICAgICAgICAgZGF0 YVtrXSA9IHYKIAogICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWlu dHMvaW5kZXhfY29uc3RyYWludC9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L19faW5p dF9fLnB5CmluZGV4IDM3ZmI4ZjIuLmVjZGJkOGIgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJh aW50L19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L19faW5pdF9fLnB5CkBAIC00 NTEsNyArNDUxLDcgQEAgY2xhc3MgSW5kZXhDb25zdHJhaW50VmlldyhQR0No aWxkTm9kZVZpZXcpOgogICAgICAgICBmb3IgaywgdiBpbiBkYXRhLml0ZW1z KCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZGF0YVtr XSA9IGpzb24ubG9hZHModiwgZW5jb2Rpbmc9J3V0Zi04JykKLSAgICAgICAg ICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKToKKyAgICAgICAg ICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yLCBLZXlFcnJvcik6 CiAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYKIAogICAgICAgICBmb3Ig YXJnIGluIHJlcXVpcmVkX2FyZ3M6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvaW5kZXhlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9pbmRleGVzL19faW5pdF9fLnB5CmluZGV4IGZhNjc5NDcu LmQ3OWM5NDYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9p bmRleGVzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9pbmRleGVzL19faW5pdF9fLnB5CkBAIC01MjgsNyArNTI4LDcgQEAgY2xh c3MgSW5kZXhlc1ZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgZm9y IGssIHYgaW4gZGF0YS5pdGVtcygpOgogICAgICAgICAgICAgdHJ5OgogICAg ICAgICAgICAgICAgIGRhdGFba10gPSBqc29uLmxvYWRzKHYsIGVuY29kaW5n PSd1dGYtOCcpCi0gICAgICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5 cGVFcnJvcik6CisgICAgICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5 cGVFcnJvciwgS2V5RXJyb3IpOgogICAgICAgICAgICAgICAgIGRhdGFba10g PSB2CiAKICAgICAgICAgcmVxdWlyZWRfYXJncyA9IHsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9fX2luaXRfXy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9fX2luaXRfXy5weQpp bmRleCBhNjM5ZGYwLi5iM2U0ZWVjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdHJpZ2dlcnMvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL19faW5pdF9fLnB5CkBAIC01NDMs NyArNTQzLDcgQEAgY2xhc3MgVHJpZ2dlclZpZXcoUEdDaGlsZE5vZGVWaWV3 KToKICAgICAgICAgZm9yIGssIHYgaW4gZGF0YS5pdGVtcygpOgogICAgICAg ICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGRhdGFba10gPSBqc29uLmxv YWRzKHYsIGVuY29kaW5nPSd1dGYtOCcpCi0gICAgICAgICAgICBleGNlcHQg KFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6CisgICAgICAgICAgICBleGNlcHQg KFZhbHVlRXJyb3IsIFR5cGVFcnJvciwgS2V5RXJyb3IpOgogICAgICAgICAg ICAgICAgIGRhdGFba10gPSB2CiAKICAgICAgICAgcmVxdWlyZWRfYXJncyA9 IHsK --94eb2c192a1e886681053929583c 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 --94eb2c192a1e886681053929583c--