Subject: [pgAdmin4] PATCH: View and Role Node

From: Surinder Kumar <[email-masked]>
Date: Tue, 2 Feb 2016 13:59:54 +0530

Hi,

Please find the patch for the View and its child node Rule.
You have to apply database node and SqlFieldControl patch to run it.

Please review it and Let me know for any comments.

Regards,
Surinder Kumar

-- 
Sent via pgadmin-hackers mailing list ([email-masked])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

---

From: Surinder Kumar <[email-masked]>
Date: Wed, 24 Feb 2016 19:01:35 +0530

Hi,

Please find the updated patch with following changes:

1. Integrated dependents and dependency tabs with view and rule node.
2. Added "Create Rule" option for Table node.
3. Added node_inode property for rule node as it has no child node.
4. Improved javascript code commenting and added pydoc in python files.
5. Name column under dependents tab showing wrong name  for rule node
due to typo mistake, It is fixed.

---

From: Dave Page <[email-masked]>
Date: Thu, 25 Feb 2016 11:03:53 +0000

Hi

> Please review it and Let me know for any comments.

Please find an updated patch attached, in which I tweaked some comments and
fixed a few minor issues as I reviewed the code. The following issues need
to be addressed please, then I'll take another look:

- Don't show the definition SQL in the main properties tab.

- Check Options is missing from the properties tab.

- Views were made function in PostgreSQL v6.4! Why only load the module for
9.1+?

- The TRUNCATE ACL flag is not recognised, leading to ACLs being shown as:
arwdUNKNOWNxt

- 4 character indents are not applied consistently to SQL templates

- Why do servers pre-9.3 have VACUUM options in the SQL templates?

- There should be no special casing of Slony schemas (backend_support.sql)

- Don't include \'s on line ends of multiline comments or docstrings.

- I can't create a Materialised View

On the dialogs:

  - The "Definition" input box should have a border.

  - The "Definition" input box fill the vertical space assigned to it, such
that the border on the left runs top to bottom (see the main SQL tab).

  - The "Definition" input box should be displayed below the label at all
times (unlike other controls), to maximise available space

- The SQL tab view is broken for views (tested on PG 9.4), likely due to
the TRUNCATE ACL issue:

2016-02-25 10:59:00,118: INFO werkzeug: 127.0.0.1 - - [25/Feb/2016
10:59:00] "GET /browser/view/sql/1/1/24587/27424/27555 HTTP/1.1" 500 -
Traceback (most recent call last):
  File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1820, 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 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File
"/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1461, 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 248,
in dispatch_request
    return method(*args, **kwargs)
  File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py",
line 242, in wrap
    return f(*args, **kwargs)
  File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py",
line 646, in sql
    result['datacl'] = self.parse_privileges(result['datacl'])
  File
"/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py",
line 540, in parse_privileges
    db_privileges[privilege['privilege_type']])
KeyError: 'UNKNOWN'

Thanks!

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

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

---

From: Surinder Kumar <[email-masked]>
Date: Tue, 1 Mar 2016 10:46:45 +0530

Dave you forgot to attach patch. Can you please attach it ?

On Thu, Feb 25, 2016 at 4:33 PM, Dave Page <[email-masked]> wrote:

> Please find an updated patch attached, in which I tweaked some comments
> and fixed a few minor issues as I reviewed the code. The following issues
> need to be addressed please, then I'll take another look:
>
> - Views were made function in PostgreSQL v6.4! Why only load the module
> for 9.1+?
>
>   - The "Definition" input box fill the vertical space assigned to it,
> such that the border on the left runs top to bottom (see the main SQL tab).
>

---

From: Dave Page <[email-masked]>
Date: Tue, 1 Mar 2016 17:12:45 +0000

Sorry - I believe this is it (I had to rescue it from the trash).

On Tue, Mar 1, 2016 at 5:16 AM, Surinder Kumar
<[email-masked]> wrote:
>> On Wed, Feb 24, 2016 at 1:31 PM, Surinder Kumar
>> <[email-masked]> wrote:
>>>
>>> Hi,
>>>

---

From: Surinder Kumar <[email-masked]>
Date: Wed, 23 Mar 2016 21:14:48 +0530

This patch contains following nodes:
1. View Node
2. Materialized View Node

This patch depends on couple of patches:
1. Control for displaying "auto vacuum" fields into grid
2. Tables sub node patch.

First apply these two patches then apply patch this patch.

Please review the patch.

> >> - Don't show the definition SQL in the main properties tab.
Done

> >> - Check Options is missing from the properties tab.
Added

> >> - Views were made function in PostgreSQL v6.4! Why only load the module
Fixed

> >> - The TRUNCATE ACL flag is not recognised, leading to ACLs being shown
Fixed

> >> - 4 character indents are not applied consistently to SQL templates
Done

> >> - Why do servers pre-9.3 have VACUUM options in the SQL templates?
Done

> >> - There should be no special casing of Slony schemas
Done

> >> - Don't include \'s on line ends of multiline comments or docstrings.
Done

> >> - I can't create a Materialised View
This patch contains materialized view now

> >>   - The "Definition" input box should have a border.
Fixed

> >> such that the border on the left runs top to bottom (see the main SQL
Fixed

> >> times (unlike other controls), to maximise available space
Fixed

> >>     db_privileges[privilege['privilege_type']])
Done

---

From: Surinder Kumar <[email-masked]>
Date: Mon, 11 Apr 2016 17:19:08 +0530

Hi,

PFA patch with following changes:
1. Modified the materialized view js & py files as its common functions for
table are now moved into schema.js and utils.py.
2. Removed whitespaces from code.

Also, this patch is now also dependent on the patch
"Disable PrivilegeControl for nodes visible under catalog" I sent earlier
today.

Thanks