Re: Autoformatting

From: Raffi Holzer <rholzer(at)pivotal(dot)io>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: Autoformatting
Date: 2017-02-15 14:39:44
Message-ID: CAF+OSJuZF5o-Odfh4oN5afsxWFE9Jv4_053Uct+YxOzRy5unuw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Thanks Dave! We came to the same conclusion about a button press. And thank
you for the SQL guidelines.

On Wed, Feb 15, 2017 at 4:37 AM, Dave Page <dpage(at)pgadmin(dot)org> wrote:

> Hi
>
> On Tue, Feb 14, 2017 at 3:02 PM, Raffi Holzer <rholzer(at)pivotal(dot)io> wrote:
> > Hi Dave,
> > When we were talking about auto formatting we were actually referring
> to a
> > single button press doing all of these things to a large block of text.
> The
> > use case here would be if you receive a large illegible query and paste
> it
> > into the query editor it would either automatically auto-format or you
> would
> > press a button and it would auto-format.
>
> Oh, OK.
>
> > We are trying to determine a few
> > things. One, are there preferred formatting guidelines
>
> Hmm, it seems I missed SQL when I wrote our (basic) coding standards:
> https://www.pgadmin.org/docs4/1.x/coding_standards.html
>
> By default (in my opinion), we should have 4 character indents, new
> lines for logically distinct objects (e.g. columns or constraints on a
> table), commas etc. at the end of the line, keywords in upper case,
> e.g.
>
> SELECT
> a,
> b,
> FROM
> t
> ORDER BY
> a,
> b;
>
> However, that obviously becomes unwieldy in some cases, so common
> sense is needed:
>
> SELECT
> a, b,
> FROM
> t
> ORDER BY
> a, b;
>
> There should of course be a limit on the number of columns listed per
> line - but should the limit be a count or max width in chars? With a
> CREATE TABLE statement I think it's clear that each column should be
> on it's own line:
>
> CREATE TABLE t (
> a serial NOT NULL PRIMARY KEY,
> b text
> );
>
> In other words, we need to define (or adopt) a formal standard for
> this, and then write a parser/formatter - which seems like a decidedly
> non-trivial amount of work (FYI, I tried the Python format-sql module,
> and it failed on ~80% of my tests - probably either because it doesn't
> understand COPY or pl/pgsql).
>
> > and two, how should
> > this autoformatting be implemented? On a button press? Upon pasting in
> the
> > text?
>
> Definitely not on pasting - if you drop in a large script, it could
> take far too long, plus you may not care, or be looking at the
> original source in another tool and trying to mentally reconcile lines
> or statements to each other. I would say it should be a
> button/shortcut.
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>

--
Raffi Holzer
Product Manager
Pivotal Labs

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2017-02-15 15:10:34 pgAdmin 4 commit: Test suite runner enhancements:
Previous Message Dave Page 2017-02-15 14:37:25 pgAdmin 4 commit: Remove some inaccurate docs copy/pasted from pgAdmin