Re: Fix for VACUUM in psql autocommit off - Mailing list pgsql-patches

From Michael Paesold
Subject Re: Fix for VACUUM in psql autocommit off
Date
Msg-id 003401c49e8e$1af07f50$d604460a@zaphod
Whole thread Raw
In response to Fix for VACUUM in psql autocommit off  ("Michael Paesold" <mpaesold@gmx.at>)
List pgsql-patches
Tom Lane wrote:

> "Michael Paesold" <mpaesold@gmx.at> writes:
> >  Or do I not understand what you mean by nested
> > comments? (There is code for ignore /* .. */ before the first keyword.)
>
> Per SQL spec, the backend thinks that /* .. */ nests:
>
> regression=# /* some /* comment */ comment */ select 1;
>  ?column?
> ----------
>         1
> (1 row)
>
> As it stands, is_transact_command will get confused by this.

Ok, my patch does not solve that, but I will have a look at it. Tomorrow it
will be then, since it's already late here in Europe.

> > Any suggestion how to that? I can think of a way myself, but it may not
be
> > the best, as I don't consider C my natural language. I can try, or does
> > anyone else feel inclined to fix this?
>
> I'd split out the code that locates "the next keyword" into a separate
> function that could be called twice.

I have read this mail after making the attached patch, so I have used a
little different approach. I have moved the code to skip over whitespace and
comments into it's own function.

The code is not perfect, but it works. By not perfect I mean, it also
returns true, if you say "REINDEX TABLESPACE", but this does not exist
anyways.

Please have a look.

Regards,
Michael Paesold

Attachment

pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: Fix for VACUUM in psql autocommit off
Next
From: Neil Conway
Date:
Subject: documentation fixes