pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Laurenz Albe <laurenz.albe@cybertec.at>
To: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: pgsql-committers@lists.postgresql.org
Subject: Re: pgsql: SQL-standard function body
Date: Mon, 12 Apr 2021 21:00:20 +0200
Message-ID: <a07142b8d7c541db97bf9403e1646d0fbf6cf614.camel@cybertec.at> (raw)
In-Reply-To: <823c7393-a2ca-c44a-c57a-b5ff84c3de28@enterprisedb.com>
References: <E1lUEF5-00027L-N4@gemulon.postgresql.org>
	<cee01d26fe55bc086b3bcf10bfe4e8d450e2f608.camel@cybertec.at>
	<7466db64eb6abae93e583faf8ca4004d60c163c4.camel@cybertec.at>
	<823c7393-a2ca-c44a-c57a-b5ff84c3de28@enterprisedb.com>

On Mon, 2021-04-12 at 17:25 +0200, Peter Eisentraut wrote:
> On 10.04.21 03:38, Laurenz Albe wrote:
> > On Fri, 2021-04-09 at 19:44 +0200, I wrote:
> > > > SQL-standard function body
> > > > 
> > > > psql needs some new intelligence to keep track of function body
> > > > boundaries so that it doesn't send off statements when it sees
> > > > semicolons that are inside a function body.
> > > 
> > > This causes psql to fail to recognize the semicolon in the following
> > > statement as the end of a statement:
> > > 
> > >    IMPORT FOREIGN SCHEMA x FROM SERVER y INTO z OPTIONS (case 'lower');
> > > 
> > > The cause is the "case", which is recognized as the start of a function
> > > body.
> > > 
> > > Would it be an option to recognize BEGIN and CASE as starting a
> > > function body only if they are *not* inside parentheses, like in
> > > the attached?
> > 
> > Here is an improved patch, which treats END in the same fashion
> > (not properly indented for readability).
> 
> Thanks, I took another look at this and augmented your change with a 
> change that tracks whether the statement starts with CREATE [OR REPLACE] 
> {FUNCTION|PROCEDURE}.  That should make it pretty safe.  What do you think?

Thanks, that is fine with me and more than I asked for.
That should definitely exclude all false positive matches.

Yours,
Laurenz Albe






view thread (18+ messages)  latest in thread

Message-ID: <a07142b8d7c541db97bf9403e1646d0fbf6cf614.camel@cybertec.at>
Permalink:  ../a07142b8d7c541db97bf9403e1646d0fbf6cf614.camel@cybertec.at/
Also on:    postgresql.org/message-id/a07142b8d7c541db97bf9403e1646d0fbf6cf614.camel@cybertec.at

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: laurenz.albe@cybertec.at, peter.eisentraut@enterprisedb.com, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: SQL-standard function body
  In-Reply-To: <a07142b8d7c541db97bf9403e1646d0fbf6cf614.camel@cybertec.at>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox