Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqhNO-0004KF-A4 for pgadmin-hackers@arkaria.postgresql.org; Thu, 14 Apr 2016 13:32: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 1aqhNM-0006n1-Pw for pgadmin-hackers@arkaria.postgresql.org; Thu, 14 Apr 2016 13:32:04 +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 1aqhNL-0006mv-Bs for pgadmin-hackers@postgresql.org; Thu, 14 Apr 2016 13:32:03 +0000 Received: from mail-qg0-x22a.google.com ([2607:f8b0:400d:c04::22a]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aqhNH-0003CD-Pq for pgadmin-hackers@postgresql.org; Thu, 14 Apr 2016 13:32:02 +0000 Received: by mail-qg0-x22a.google.com with SMTP id c6so62689589qga.1 for ; Thu, 14 Apr 2016 06:31: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:from:date:message-id:subject:to :cc; bh=l3dWYSV2FrARXADxpEO2AnKVCmyiq8l94tC0VaAV7sY=; b=GiaSL54htEu6YmJv4/lQ56+yt/LR437eAnrgXbtjWS/cgXEousW892ZCp1zRC/1v5J oyAAi/nV6pJ+rY6UC0DIP9gBVJvZQnIYB4IzMIS22iglweW9nh3Y9AXFTmGcZq8NfHAi 7g7o/mkfZ18wNZcs9iKGUZQUCdaxOVQjC1k9FZPCGMRB+plu4OQBeh3T4LlYav9yWpq4 qWVKGypAb5fdSIMRN/PXwHl40lVBTPRHDxT/Hxy9DNqGfkRCyqWZyhnUvvB8Ju14vcrq 1/mXTVe+oOsAuJr9ZmX1YrMZVjX0KY54wbh6CVhGUka26K2GTSGK7XeKYxknQPSe86/Y GZQQ== 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=l3dWYSV2FrARXADxpEO2AnKVCmyiq8l94tC0VaAV7sY=; b=aEHSl3QHV4o8jz2we47MNFA8W1TiDdPXY032X26RSNxvkdD6UsyI13zYt5pPcXR+ly eGfHWwI9QD3q2QbAFMD3r1fetPLppAdyqj6nVEBdGs0XCPlFX88s+B3Wv9CaQz1KHODo Yqpg16olBzizyUoHzwRKNnAMqVDapWjEZFUcH48xBovh+9dIK+nTAuKciUzSBu92m9NC t9o2PCDoOaqAXN05sXHSeobFEMUt1+UHRGAQBiOshMrUEkXlUuMeOTkWttnYk6FK8BQA ++P1MrJl5P4a8N1RnwiDLJ34EAoF+t9xVzONYz9A3dKfUUimKzyXRlp85H8CX6wmp1ab iyBg== X-Gm-Message-State: AOPr4FU1jK+WJZpLla/hS1JOe3Not15cFMagVDd8XbJ8K/s3lWKBcgHXvkOuqxfqJgE2lQdHgFSDczfCiW6xFWbl X-Received: by 10.140.18.226 with SMTP id 89mr18250217qgf.89.1460640718820; Thu, 14 Apr 2016 06:31:58 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.128.132 with HTTP; Thu, 14 Apr 2016 06:31:39 -0700 (PDT) In-Reply-To: References: From: Murtuza Zabuawala Date: Thu, 14 Apr 2016 19:01:39 +0530 Message-ID: Subject: Re: PATCH: Added Node Type & Catalog objects [pgAdmin4] To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11353c8230d6ea053071eb88 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 --001a11353c8230d6ea053071eb88 Content-Type: multipart/alternative; boundary=001a11353c8230d6e4053071eb86 --001a11353c8230d6e4053071eb86 Content-Type: text/plain; charset=UTF-8 Hi Dave, Sorry my bad I misinterpreted, I thought you meant rename/changing schema only. PFA updated patch. And For Dialog not closing issue is generic and I have already created internal ticket for it. -- Regards, Murtuza Zabuawala EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company On Thu, Apr 14, 2016 at 6:44 PM, Dave Page wrote: > Hi, > > The first issue is only partially fixed - it'll still let me try to > rename a shell type. > > Also, I notice when hitting Save on my changes, they're applied (if > they're valid), but the dialogue doesn't close. I see the following in > the browser console: > > Uncaught TypeError: Cannot read property 'sessChanged' of > null(anonymous function) @ datamodel.js:333 > _.each._.forEach @ underscore.js:153 > pgBrowser.DataModel.Backbone.Model.extend.toJSON @ datamodel.js:322 > (anonymous function) @ node.js:850 > jQuery.event.dispatch @ jquery-1.11.2.js:4665 > elemData.handle @ jquery-1.11.2.js:4333 > > On Thu, Apr 14, 2016 at 1:57 PM, Murtuza Zabuawala > wrote: > > Hi Dave, > > > > PFA patch to fixed given issues. > > > > > > -- > > Regards, > > Murtuza Zabuawala > > EnterpriseDB: http://www.enterprisedb.com > > The Enterprise PostgreSQL Company > > > > On Thu, Apr 14, 2016 at 5:11 PM, Dave Page wrote: > >> > >> Thanks - patch applied. Unfortunately there are 3 more minor issues > >> for you to fix: > >> > >> - Renaming or changing the schema for a shell type should not be > allowed. > >> > > Done > >> > >> - I'm allowed to try to add ACL entries or security labels to an > >> existing shell type. This should be disallowed. > >> > > Done > >> > >> - Changing the schema on a (non-shell) type doesn't work - the type > >> name is omitted, e.g. > >> > > Done > >> > >> ALTER TYPE pem > >> SET SCHEMA pemhistory; > >> > >> Which should be: > >> > >> ALTER TYPE pem.foo > >> SET SCHEMA pemhistory; > >> > >> On Thu, Apr 14, 2016 at 8:36 AM, Murtuza Zabuawala > >> wrote: > >> > Hi Dave, > >> > > >> > PFA updated patch which will fix mentioned issues. > >> > > >> > Hopefully the last one :-) > >> > > >> > > >> > -- > >> > Regards, > >> > Murtuza Zabuawala > >> > EnterpriseDB: http://www.enterprisedb.com > >> > The Enterprise PostgreSQL Company > >> > > >> > On Wed, Apr 13, 2016 at 6:18 PM, Dave Page wrote: > >> >> > >> >> Hi > >> >> > >> >> I'm seeing some more issues now, some related to new functionality: > >> >> > >> >> - Please don't include the descriptive header for shell types in > >> >> create.sql. > >> > > >> > Done > >> >> > >> >> > >> >> - Shell types can (and should) have owner/comments set if specified. > >> >> > >> > Done > >> >> > >> >> - The Type dropdown should just say "Shell" for shell types (no > >> >> additional text). > >> >> > >> > Done > >> >> > >> >> - Privileges and labels grids should be disabled for shell types. > >> >> > >> > Done > >> >> > >> >> - When I select External type, I see the following error (and a 500 > >> >> error in the browser console): > >> >> > >> >> 2016-04-13 13:44:49,953: ERROR pgadmin: Failed to execute query > >> >> (execute_2darray) for the server #1 - DB:pem (Query-id: 4020898): > >> >> Error Message:ERROR: syntax error at or near "and" > >> >> LINE 2: CASE WHEN length(nspname) > 0 AND and length(nspname) > !=... > >> >> > >> > Done > >> >> > >> >> - Length/Precision and scale are not shown in the dialogue for > existing > >> >> types. > >> >> > >> > Done (PFA screenshot) > >> > > >> >> > >> >> Thanks. > >> >> > >> >> > >> >> On Fri, Apr 8, 2016 at 2:52 PM, Murtuza Zabuawala > >> >> wrote: > >> >> > Hi Dave, > >> >> > > >> >> > Please find updated patches to fix all the mentioned issues. > >> >> > > >> >> > There are three patches, > >> >> > 1) One for fixing rendering issue when selecting type > >> >> > 2) Added utility function to fetch full type name with length & > >> >> > precision > >> >> > 3) Added new Shell type for External types. > >> >> > > >> >> > > >> >> > Regards, > >> >> > Murtuza > >> >> > > >> >> > > >> >> > -- > >> >> > Regards, > >> >> > Murtuza Zabuawala > >> >> > EnterpriseDB: http://www.enterprisedb.com > >> >> > The Enterprise PostgreSQL Company > >> >> > > >> >> > On Thu, Apr 7, 2016 at 5:06 PM, Dave Page > wrote: > >> >> >> > >> >> >> Hi Murtuza > >> >> >> > >> >> >> On Tue, Mar 22, 2016 at 9:22 AM, Dave Page > >> >> >> wrote: > >> >> >> > Hi > >> >> >> > > >> >> >> > On Tue, Mar 22, 2016 at 8:14 AM, Murtuza Zabuawala > >> >> >> > wrote: > >> >> >> >> Hi Dave, > >> >> >> >> > >> >> >> >> We can create new external type using below method, By running > >> >> >> >> all > >> >> >> >> of > >> >> >> >> below > >> >> >> >> queries at the same time , we can not create separate external > >> >> >> >> type > >> >> >> >> by > >> >> >> >> only > >> >> >> >> using create type statement. > >> >> >> >> > >> >> >> >> So as per my discussion with Ashesh, We should not allow user > to > >> >> >> >> create > >> >> >> >> external type in pgAdmin4 but only show definition in edit > mode. > >> >> >> > > >> >> >> > Hmm, would it not make sense to allow the user to create the > shell > >> >> >> > type as well (perhaps, with a new type of "SHELL")? Then they > >> >> >> > could > >> >> >> > do > >> >> >> > what is needed (and that should be easy, as it's just CREATE > TYPE > >> >> >> > foo;) > >> >> >> > > >> >> >> > For example: > >> >> >> > > >> >> >> > CREATE TYPE box; > >> >> >> > > >> >> >> > CREATE FUNCTION my_box_in_function(cstring) RETURNS box AS ... ; > >> >> >> > CREATE FUNCTION my_box_out_function(box) RETURNS cstring AS ... > ; > >> >> >> > > >> >> >> > CREATE TYPE box ( > >> >> >> > INTERNALLENGTH = 16, > >> >> >> > INPUT = my_box_in_function, > >> >> >> > OUTPUT = my_box_out_function > >> >> >> > ); > >> >> >> > > >> >> >> > CREATE TABLE myboxes ( > >> >> >> > id integer, > >> >> >> > description box > >> >> >> > ); > >> >> >> > >> >> >> In the interests of making progress, I've committed the most > recent > >> >> >> patch, with a number of minor changes most significantly, the > >> >> >> Postgres > >> >> >> docs and system catalogs seem to have different ideas about what > to > >> >> >> call length, precision and scale. pgAdmin 3 followed the catalogs > >> >> >> and > >> >> >> used length and precision, however I've updated pgAdmin 4 to use > >> >> >> "Length/precision" and "Scale" which is inline with the Postgres > >> >> >> docs. > >> >> >> That's only in the UI though - the code follows the catalogs. > >> >> >> > >> >> >> There are still a couple of issues - please provide fixes ASAP: > >> >> >> > >> >> >> 1) If you create a composite type that contains a sized type (e.g. > >> >> >> numeric(5, 4), the precision and scale are not shown if you later > >> >> >> open > >> >> >> the properties dialogue, or in the reverse engineered SQL. > >> >> >> > >> >> >> E.g. what pgAdmin3 shows as: > >> >> >> > >> >> >> CREATE TYPE pem.blergh AS > >> >> >> (c1 text COLLATE pg_catalog."C", > >> >> >> c2 numeric(5)); > >> >> >> > >> >> >> Is shown by pgAdmin4 as: > >> >> >> > >> >> >> CREATE TYPE pem.blergh AS > >> >> >> (c1 text COLLATE pg_catalog."C", c2 numeric); > >> >> >> > >> >> >> (adding the \n's would be good too). > >> >> >> > >> >> >> 2) If you select a different type of type in create mode, the new > >> >> >> options are shown below those for the previously selected type, > >> >> >> instead of replacing them. Please see the attached screenshot. > >> >> >> > >> >> >> 3) I would still like us to support External types. I believe the > >> >> >> simple option here is to re-add the code you had previously, and > to > >> >> >> add a new type of type called "SHELL" as discussed in my previous > >> >> >> email above. The user would then be able to create a SHELL type, > add > >> >> >> the required functions, then come back and create the EXTERNAL > type. > >> >> >> > >> >> >> I'll add cards to our internal kanban chart for these issues. > >> >> >> > >> >> >> 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 > >> > > >> > > >> > >> > >> > >> -- > >> 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 > --001a11353c8230d6e4053071eb86 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

Sorry my bad I misinterpreted,= I thought you meant rename/changing schema only.

= PFA updated patch.

And For Dialog not closing issu= e is generic and I have already created internal ticket for it.
<= br>


=
--
Regards,
Murtuza Zabuawala
EnterpriseDB= :=C2=A0http://www.enterprisedb.com=
The Enterprise PostgreSQL Company


On Thu, Apr 14, 2016 at 6:44 PM, Dave Page <= span dir=3D"ltr"><dpage@pgadmin.org> wrote:
= Hi,

The first issue is only partially fixed - it'll still let me try to
rename a shell type.

Also, I notice when hitting Save on my changes, they're applied (if
they're valid), but the dialogue doesn't close. I see the following= in
the browser console:

Uncaught TypeError: Cannot read property 'sessChanged' of
null(anonymous function) @ datamodel.js:333
_.each._.forEach @ underscore.js:153
pgBrowser.DataModel.Backbone.Model.extend.toJSON @ datamodel.js:322
(anonymous function) @ node.js:850
jQuery.event.dispatch @ jquery-1.11.2.js:4665
elemData.handle @ jquery-1.11.2.js:4333

On Thu, Apr 14, 2016 at 1:57 PM, Murtuza Zabuawala
<murtuza.zabuawala= @enterprisedb.com> wrote:
> Hi Dave,
>
> PFA patch to fixed given issues.
>
>
> --
> Regards,
> Murtuza Zabuawala
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
> On Thu, Apr 14, 2016 at 5:11 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> Thanks - patch applied. Unfortunately there are 3 more minor issue= s
>> for you to fix:
>>
>> - Renaming or changing the schema for a shell type should not be a= llowed.
>>
> Done
>>
>> - I'm allowed to try to add ACL entries or security labels to = an
>> existing shell type. This should be disallowed.
>>
> Done
>>
>> - Changing the schema on a (non-shell) type doesn't work - the= type
>> name is omitted, e.g.
>>
> Done
>>
>> ALTER TYPE pem
>>=C2=A0 =C2=A0 =C2=A0SET SCHEMA pemhistory;
>>
>> Which should be:
>>
>> ALTER TYPE pem.foo
>>=C2=A0 =C2=A0 =C2=A0SET SCHEMA pemhistory;
>>
>> On Thu, Apr 14, 2016 at 8:36 AM, Murtuza Zabuawala
>> <murtuza.= zabuawala@enterprisedb.com> wrote:
>> > Hi Dave,
>> >
>> > PFA updated patch which will fix mentioned issues.
>> >
>> > Hopefully the last one :-)
>> >
>> >
>> > --
>> > Regards,
>> > Murtuza Zabuawala
>> > EnterpriseDB: http://www.enterprisedb.com
>> > The Enterprise PostgreSQL Company
>> >
>> > On Wed, Apr 13, 2016 at 6:18 PM, Dave Page <dpage@pgadmin.org> wrote:
>> >>
>> >> Hi
>> >>
>> >> I'm seeing some more issues now, some related to new = functionality:
>> >>
>> >> - Please don't include the descriptive header for she= ll types in
>> >> create.sql.
>> >
>> > Done
>> >>
>> >>
>> >> - Shell types can (and should) have owner/comments set if= specified.
>> >>
>> > Done
>> >>
>> >> - The Type dropdown should just say "Shell" for= shell types (no
>> >> additional text).
>> >>
>> > Done
>> >>
>> >> - Privileges and labels grids should be disabled for shel= l types.
>> >>
>> > Done
>> >>
>> >> - When I select External type, I see the following error = (and a 500
>> >> error in the browser console):
>> >>
>> >> 2016-04-13 13:44:49,953: ERROR pgadmin: Failed to execute= query
>> >> (execute_2darray) for the server #1 - DB:pem (Query-id: 4= 020898):
>> >> Error Message:ERROR:=C2=A0 syntax error at or near "= and"
>> >> LINE 2:=C2=A0 =C2=A0 =C2=A0CASE WHEN length(nspname) >= 0 AND and length(nspname) !=3D...
>> >>
>> > Done
>> >>
>> >> - Length/Precision and scale are not shown in the dialogu= e for existing
>> >> types.
>> >>
>> > Done (PFA screenshot)
>> >
>> >>
>> >> Thanks.
>> >>
>> >>
>> >> On Fri, Apr 8, 2016 at 2:52 PM, Murtuza Zabuawala
>> >> <murtuza.zabuawala@enterprisedb.com> wrote:
>> >> > Hi Dave,
>> >> >
>> >> > Please find updated patches to fix all the mentioned= issues.
>> >> >
>> >> > There are three patches,
>> >> > 1) One for fixing rendering issue when selecting typ= e
>> >> > 2) Added utility function to fetch full type name wi= th length &
>> >> > precision
>> >> > 3) Added new Shell type for External types.
>> >> >
>> >> >
>> >> > Regards,
>> >> > Murtuza
>> >> >
>> >> >
>> >> > --
>> >> > Regards,
>> >> > Murtuza Zabuawala
>> >> > EnterpriseDB: http://www.enterprisedb.com
>> >> > The Enterprise PostgreSQL Company
>> >> >
>> >> > On Thu, Apr 7, 2016 at 5:06 PM, Dave Page <dpage@pgadmin.org> wrote:
>> >> >>
>> >> >> Hi Murtuza
>> >> >>
>> >> >> On Tue, Mar 22, 2016 at 9:22 AM, Dave Page <<= a href=3D"mailto:dpage@pgadmin.org">dpage@pgadmin.org>
>> >> >> wrote:
>> >> >> > Hi
>> >> >> >
>> >> >> > On Tue, Mar 22, 2016 at 8:14 AM, Murtuza Za= buawala
>> >> >> > <murtuza.zabuawala@enterprisedb.com> wrote:
>> >> >> >> Hi Dave,
>> >> >> >>
>> >> >> >> We can create new external type using b= elow method, By running
>> >> >> >> all
>> >> >> >> of
>> >> >> >> below
>> >> >> >> queries at the same time , we can not c= reate separate external
>> >> >> >> type
>> >> >> >> by
>> >> >> >> only
>> >> >> >> using create type statement.
>> >> >> >>
>> >> >> >> So as per my discussion with Ashesh, We= should not allow user to
>> >> >> >> create
>> >> >> >> external type in pgAdmin4 but only show= definition in edit mode.
>> >> >> >
>> >> >> > Hmm, would it not make sense to allow the u= ser to create the shell
>> >> >> > type as well (perhaps, with a new type of &= quot;SHELL")? Then they
>> >> >> > could
>> >> >> > do
>> >> >> > what is needed (and that should be easy, as= it's just CREATE TYPE
>> >> >> > foo;)
>> >> >> >
>> >> >> > For example:
>> >> >> >
>> >> >> > CREATE TYPE box;
>> >> >> >
>> >> >> > CREATE FUNCTION my_box_in_function(cstring)= RETURNS box AS ... ;
>> >> >> > CREATE FUNCTION my_box_out_function(box) RE= TURNS cstring AS ... ;
>> >> >> >
>> >> >> > CREATE TYPE box (
>> >> >> >=C2=A0 =C2=A0 =C2=A0INTERNALLENGTH =3D 16, >> >> >> >=C2=A0 =C2=A0 =C2=A0INPUT =3D my_box_in_func= tion,
>> >> >> >=C2=A0 =C2=A0 =C2=A0OUTPUT =3D my_box_out_fu= nction
>> >> >> > );
>> >> >> >
>> >> >> > CREATE TABLE myboxes (
>> >> >> >=C2=A0 =C2=A0 =C2=A0id integer,
>> >> >> >=C2=A0 =C2=A0 =C2=A0description box
>> >> >> > );
>> >> >>
>> >> >> In the interests of making progress, I've co= mmitted the most recent
>> >> >> patch, with a number of minor changes most signi= ficantly, the
>> >> >> Postgres
>> >> >> docs and system catalogs seem to have different = ideas about what to
>> >> >> call length, precision and scale. pgAdmin 3 foll= owed the catalogs
>> >> >> and
>> >> >> used length and precision, however I've upda= ted pgAdmin 4 to use
>> >> >> "Length/precision" and "Scale&quo= t; which is inline with the Postgres
>> >> >> docs.
>> >> >> That's only in the UI though - the code foll= ows the catalogs.
>> >> >>
>> >> >> There are still a couple of issues - please prov= ide fixes ASAP:
>> >> >>
>> >> >> 1) If you create a composite type that contains = a sized type (e.g.
>> >> >> numeric(5, 4), the precision and scale are not s= hown if you later
>> >> >> open
>> >> >> the properties dialogue, or in the reverse engin= eered SQL.
>> >> >>
>> >> >> E.g. what pgAdmin3 shows as:
>> >> >>
>> >> >> CREATE TYPE pem.blergh AS
>> >> >>=C2=A0 =C2=A0 (c1 text COLLATE pg_catalog."C= ",
>> >> >>=C2=A0 =C2=A0 =C2=A0c2 numeric(5));
>> >> >>
>> >> >> Is shown by pgAdmin4 as:
>> >> >>
>> >> >> CREATE TYPE pem.blergh AS
>> >> >>=C2=A0 =C2=A0 =C2=A0(c1 text COLLATE pg_catalog.&= quot;C", c2 numeric);
>> >> >>
>> >> >> (adding the \n's would be good too).
>> >> >>
>> >> >> 2) If you select a different type of type in cre= ate mode, the new
>> >> >> options are shown below those for the previously= selected type,
>> >> >> instead of replacing them. Please see the attach= ed screenshot.
>> >> >>
>> >> >> 3) I would still like us to support External typ= es. I believe the
>> >> >> simple option here is to re-add the code you had= previously, and to
>> >> >> add a new type of type called "SHELL" = as discussed in my previous
>> >> >> email above. The user would then be able to crea= te a SHELL type, add
>> >> >> the required functions, then come back and creat= e the EXTERNAL type.
>> >> >>
>> >> >> I'll add cards to our internal kanban chart = for these issues.
>> >> >>
>> >> >> 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
>> >
>> >
>>
>>
>>
>> --
>> 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

--001a11353c8230d6e4053071eb86-- --001a11353c8230d6ea053071eb88 Content-Type: application/octet-stream; name="fixed_type_node_v8.patch" Content-Disposition: attachment; filename="fixed_type_node_v8.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_in0br9dy1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90 eXBlL2pzL3R5cGUuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0 ZXMvdHlwZS9qcy90eXBlLmpzCmluZGV4IDdhNDExNzkuLjhkYTg2NDggMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBl L2pzL3R5cGUuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxh dGVzL3R5cGUvanMvdHlwZS5qcwpAQCAtMjcwLDcgKzI3MCw3IEBAIGZ1bmN0 aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnksIEJh Y2tncmlkKSB7CiAgICAgICAgIHNjaGVtYTogW3sKICAgICAgICAgICBpZDog J25hbWUnLCBsYWJlbDogJ3t7IF8oJ05hbWUnKSB9fScsIGNlbGw6ICdzdHJp bmcnLAogICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0 aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCi0gICAgICAgICAgZGlzYWJsZWQ6 ICdpblNjaGVtYScKKyAgICAgICAgICBkaXNhYmxlZDogJ3NjaGVtYUNoZWNr JwogICAgICAgICB9LHsKICAgICAgICAgICBpZDogJ29pZCcsIGxhYmVsOid7 eyBfKCdPSUQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAogICAgICAgICAgIHR5 cGU6ICd0ZXh0JyAsIG1vZGU6IFsncHJvcGVydGllcyddLCBkaXNhYmxlZDog dHJ1ZQpAQCAtMjgyLDcgKzI4Miw3IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBn QWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnksIEJhY2tncmlkKSB7CiAgICAg ICAgIH0sewogICAgICAgICAgIGlkOiAnc2NoZW1hJywgbGFiZWw6J3t7IF8o J1NjaGVtYScpIH19JywgY2VsbDogJ3N0cmluZycsCiAgICAgICAgICAgdHlw ZTogJ3RleHQnLCBtb2RlOiBbJ2NyZWF0ZScsICdlZGl0J10sIG5vZGU6ICdz Y2hlbWEnLAotICAgICAgICAgIGRpc2FibGVkOiAnaW5TY2hlbWEnLCBmaWx0 ZXI6IGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgICBkaXNhYmxlZDogJ3NjaGVt YUNoZWNrJywgZmlsdGVyOiBmdW5jdGlvbihkKSB7CiAgICAgICAgICAgICAv LyBJZiBzY2hlbWEgbmFtZSBzdGFydCB3aXRoIHBnXyogdGhlbiB3ZSBuZWVk IHRvIGV4Y2x1ZGUgdGhlbQogICAgICAgICAgICAgaWYoZCAmJiBkLmxhYmVs Lm1hdGNoKC9ecGdfLykpCiAgICAgICAgICAgICB7CkBAIC0yOTAsMTggKzI5 MCw3IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3Nlciwg YWxlcnRpZnksIEJhY2tncmlkKSB7CiAgICAgICAgICAgICB9CiAgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICB9LAotICAgICAgICAgIGNv bnRyb2w6IEJhY2tmb3JtLk5vZGVMaXN0QnlOYW1lQ29udHJvbC5leHRlbmQo ewotICAgICAgICAgICAgcmVuZGVyOiBmdW5jdGlvbigpewotICAgICAgICAg ICAgLy8gSW5pdGlhbGl6ZSBwYXJlbnQncyByZW5kZXIgbWV0aG9kCi0gICAg ICAgICAgICBCYWNrZm9ybS5Ob2RlTGlzdEJ5TmFtZUNvbnRyb2wucHJvdG90 eXBlLnJlbmRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwotCi0gICAgICAg ICAgICAvLyBTZXQgc2NoZW1hIGRlZmF1bHQgdmFsdWUgdG8gaXRzIHBhcmVu dCBTY2hlbWEKLSAgICAgICAgICAgIGlmKHRoaXMubW9kZWwuaXNOZXcoKSl7 Ci0gICAgICAgICAgICB0aGlzLm1vZGVsLnNldCh7J3NjaGVtYSc6IHRoaXMu bW9kZWwubm9kZV9pbmZvLnNjaGVtYS5sYWJlbH0pOwotICAgICAgICAgICAg fQotICAgICAgICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgICAgICAgICB9Ci0g ICAgICAgICAgfSkKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1saXN0LWJ5 LW5hbWUnCiAgICAgICAgIH0sewogICAgICAgICAgIGlkOiAndHlwdHlwZScs IGxhYmVsOid7eyBfKCdUeXBlJykgfX0nLAogICAgICAgICAgIG1vZGU6IFsn Y3JlYXRlJywnZWRpdCddLCBkaXNhYmxlZDogJ2luU2NoZW1hV2l0aE1vZGVs Q2hlY2snLApAQCAtMzE0LDcgKzMwMyw3IEBAIGZ1bmN0aW9uKCQsIF8sIFMs IHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnksIEJhY2tncmlkKSB7CiAg ICAgICAgICAgICAgICAge2xhYmVsOiAiRW51bWVyYXRpb24iLCB2YWx1ZTog ImUifSwKICAgICAgICAgICAgICAgICB7bGFiZWw6ICJFeHRlcm5hbCIsIHZh bHVlOiAiYiJ9LAogICAgICAgICAgICAgICAgIHtsYWJlbDogIlJhbmdlIiwg dmFsdWU6ICJyIn0sCi0gICAgICAgICAgICAgICAge2xhYmVsOiAiU2hlbGwi LCB2YWx1ZTogInMifQorICAgICAgICAgICAgICAgIHtsYWJlbDogIlNoZWxs IiwgdmFsdWU6ICJwIn0KICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9 LAogICAgICAgICAgIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9kZWxDaGVj aycsCkBAIC03MjQsNyArNzEzLDcgQEAgZnVuY3Rpb24oJCwgXywgUywgcGdB ZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSwgQmFja2dyaWQpIHsKICAgICAg ICAgICB1bmlxdWVDb2wgOiBbJ2dyYW50ZWUnXSwgZGVwczogWyd0eXB0eXBl J10sCiAgICAgICAgICAgY2FuQWRkOiBmdW5jdGlvbihtKSB7CiAgICAgICAg ICAgICAvLyBEbyBub3QgYWxsb3cgdG8gYWRkIHdoZW4gc2hlbGwgdHlwZSBp cyBzZWxlY3RlZAotICAgICAgICAgICAgcmV0dXJuICEobS5nZXQoJ3R5cHR5 cGUnKSA9PT0gJ3MnKTsKKyAgICAgICAgICAgIHJldHVybiAhKG0uZ2V0KCd0 eXB0eXBlJykgPT09ICdwJyk7CiAgICAgICAgICAgfQogICAgICAgICB9LHsK ICAgICAgICAgICBpZDogJ3NlY2xhYmVscycsIGxhYmVsOiAne3sgXygnU2Vj dXJpdHkgTGFiZWxzJykgfX0nLApAQCAtNzM0LDcgKzcyMyw3IEBAIGZ1bmN0 aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnksIEJh Y2tncmlkKSB7CiAgICAgICAgICAgY29udHJvbDogJ3VuaXF1ZS1jb2wtY29s bGVjdGlvbicsIGRlcHM6IFsndHlwdHlwZSddLAogICAgICAgICAgIGNhbkFk ZDogZnVuY3Rpb24obSkgewogICAgICAgICAgICAgLy8gRG8gbm90IGFsbG93 IHRvIGFkZCB3aGVuIHNoZWxsIHR5cGUgaXMgc2VsZWN0ZWQKLSAgICAgICAg ICAgIHJldHVybiAhKG0uZ2V0KCd0eXB0eXBlJykgPT09ICdzJyk7CisgICAg ICAgICAgICByZXR1cm4gIShtLmdldCgndHlwdHlwZScpID09PSAncCcpOwog ICAgICAgICAgIH0KCiAgICAgICAgIH1dLApAQCAtNzg5LDYgKzc3OCwxNyBA QCBmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0 aWZ5LCBCYWNrZ3JpZCkgewogICAgICAgICAgIH0KICAgICAgICAgICByZXR1 cm4gZmFsc2U7CiAgICAgICAgIH0sCisgICAgICAgIHNjaGVtYUNoZWNrOiBm dW5jdGlvbihtKSB7CisgICAgICAgICAgaWYodGhpcy5ub2RlX2luZm8gJiYg J3NjaGVtYScgaW4gdGhpcy5ub2RlX2luZm8pCisgICAgICAgICAgeworICAg ICAgICAgICAgaWYgKG0uaXNOZXcoKSkgeworICAgICAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg ICByZXR1cm4gbS5nZXQoJ3R5cHR5cGUnKSA9PT0gJ3AnOworICAgICAgICAg ICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgfSwKICAgICAgICAgLy8gV2Ugd2lsbCBjaGVjayBpZiB3ZSBhcmUg dW5kZXIgc2NoZW1hIG5vZGUgJiBpbiAnY3JlYXRlJyBtb2RlCiAgICAgICAg IGluU2NoZW1hV2l0aE1vZGVsQ2hlY2s6IGZ1bmN0aW9uKG0pIHsKICAgICAg ICAgICBpZih0aGlzLm5vZGVfaW5mbyAmJiAgJ3NjaGVtYScgaW4gdGhpcy5u b2RlX2luZm8pCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90 ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85LjFfcGx1cy9j cmVhdGUuc3FsCmluZGV4IDM1NDAzYjYuLmI0YTQ0ZDQgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85LjFf cGx1cy9jcmVhdGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rl bXBsYXRlcy90eXBlL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCkBAIC0xLDcg KzEsNyBAQAogeyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9zZWN1cml0eS5t YWNyb3MnIGFzIFNFQ0xBQkxFICV9CiB7JSBpbXBvcnQgJ21hY3Jvcy9zY2hl bWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQogeyMjIElm IHVzZXIgc2VsZWN0ZWQgc2hlbGwgdHlwZSB0aGVuIGp1c3QgY3JlYXRlIHR5 cGUgdGVtcGxhdGUgIyN9Ci17JSBpZiBkYXRhIGFuZCBkYXRhLnR5cHR5cGUg PT0gJ3MnICV9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnR5cHR5cGUgPT0gJ3An ICV9CiBDUkVBVEUgVFlQRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSkgfX07CiB7JSBlbmRpZiAlfQogeyMjIyAgQ29tcG9zaXRl IFR5cGUgIyMjfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMv dGVtcGxhdGVzL3R5cGUvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMv dXBkYXRlLnNxbAppbmRleCAxNzBiMDNhLi5hYjYxN2IwIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4x X3BsdXMvdXBkYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90 ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApAQCAtMTMx LDkgKzEzMSw5IEBAIEFMVEVSIFRZUEUge3sgY29ubnxxdElkZW50KG9fZGF0 YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQogeyMgQmVsb3cgd2lsbCBjaGFu Z2UgdGhlIHNjaGVtYSBmb3Igb2JqZWN0ICN9CiB7IyB3aXRoIGV4dHJhIGlm IGNvbmRpdGlvbiB3ZSB3aWxsIGFsc28gbWFrZSBzdXJlIHRoYXQgb2JqZWN0 IGhhcyBjb3JyZWN0IG5hbWUgI30KIHslIGlmIGRhdGEuc2NoZW1hIGFuZCBk YXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9Ci1BTFRFUiBUWVBFIHsl IGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfXt7IGNvbm58cXRJZGVu dChvX2RhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Ci17JSBlbHNlICV9e3sg Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fXsl IGVuZGlmICV9CitBTFRFUiBUWVBFIHslIGlmIGRhdGEubmFtZSBhbmQgZGF0 YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9e3sgY29ubnxxdElkZW50KG9fZGF0 YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KK3slIGVsc2UgJX17eyBjb25ufHF0 SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5hbWUpIH19Cit7JSBlbmRp ZiAlfQogICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEuc2No ZW1hKSB9fTsKLQogeyUgZW5kaWYgJX0KIHslIGVuZGlmICV9ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQo= --001a11353c8230d6ea053071eb88 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 --001a11353c8230d6ea053071eb88--