Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqh68-0003SK-HE for pgadmin-hackers@arkaria.postgresql.org; Thu, 14 Apr 2016 13:14:16 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aqh68-0004d9-4G for pgadmin-hackers@arkaria.postgresql.org; Thu, 14 Apr 2016 13:14:16 +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 1aqh66-0004al-UZ for pgadmin-hackers@postgresql.org; Thu, 14 Apr 2016 13:14:15 +0000 Received: from mail-io0-x229.google.com ([2607:f8b0:4001:c06::229]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aqh63-0002nC-SQ for pgadmin-hackers@postgresql.org; Thu, 14 Apr 2016 13:14:13 +0000 Received: by mail-io0-x229.google.com with SMTP id 2so102901946ioy.1 for ; Thu, 14 Apr 2016 06:14:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=KLxd2/MeWxf9M2+afOfiam0qQdt6vNgVwOLUl4F4/cM=; b=mBjZkwL5GscPaA0sZl0OrYQNerUyC8UXFRHWp0E7Q0p4T7tggW6qfWQHSS1IgcvpyR X0YLBiLJw+M0Y0KvztLMHuhWpcZhC2Mbi9p/iK/Gmv5ZqXLHpWXkgg9/yd2sN7l75HGv D0vxRCUGTdAp9E3f2C2KcDVp3lVq61xxx1EQ/cYVDDKG8wuXSDCl9pIWE8CQqb1Oc7YG 83yvMc3rfgq/yr3MBxNuOk6+cxhtwSv9cLm9SHGBVLyre5hUVcoQbZLtlOPUDTA3oppi DowKfsFxkneJsvsaDYM71pRXaPzIhqYhIjJtlyC9alzX2PmRGnQEtdyxUWWUmZ8OrEyo GgWQ== 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=KLxd2/MeWxf9M2+afOfiam0qQdt6vNgVwOLUl4F4/cM=; b=N/EP42q8ksvgP+Sv8va+ujb5PS7ZUOvvC0P0P5TJnc5ToupLu2KeIca2umse+SYPqL 1b5PUG+Lr9jm7XfSZnofozQ1jC9+cWOvhAFcRTDfP1+PUjzbpI/s1bfhiO0MmHbaKy5e M3TZNVsUX3rO70CqPApv/Cq5FyoOQhpJ0JriKOoE9gnXCPyH+NzDtbOIpm+i2QMCgDf7 TeUpqpxNLc2OoZAe/A/jbRnWMsmsriubjRHx3m4/iykwYZgjiMZvMtri8X+zdF3HBnth aApT1tqT7AtHqoHspNkSKlvK0TQvGQV2/QCsuVyt589rgYJDJXEVRU4GA3eJ9IrwGfwb qV6A== X-Gm-Message-State: AOPr4FXxQQEBx51asY2zOAOewNZPsgUVUclx80nUbWqoXrkGTJ3NUU+U0i2JHlV6xfP6OMy048lWYaONCQVYAA== MIME-Version: 1.0 X-Received: by 10.107.12.224 with SMTP id 93mr16991626iom.70.1460639650707; Thu, 14 Apr 2016 06:14:10 -0700 (PDT) Received: by 10.64.105.131 with HTTP; Thu, 14 Apr 2016 06:14:10 -0700 (PDT) In-Reply-To: References: Date: Thu, 14 Apr 2016 14:14:10 +0100 Message-ID: Subject: Re: PATCH: Added Node Type & Catalog objects [pgAdmin4] From: Dave Page To: Murtuza Zabuawala Cc: pgadmin-hackers Content-Type: text/plain; charset=UTF-8 X-Pg-Spam-Score: -1.9 (-) 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 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 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers