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