Re: Why does the PL/pgSQL compiler do this? - Mailing list pgsql-sql

From Michael Moore
Subject Re: Why does the PL/pgSQL compiler do this?
Date
Msg-id CACpWLjMWR16qikWpzu8GVoboJCg7s_p-9BM+85Lh2WP+ocB=og@mail.gmail.com
Whole thread Raw
In response to Re: Why does the PL/pgSQL compiler do this?  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Why does the PL/pgSQL compiler do this?
List pgsql-sql
Hi Tom, 
understood. If anybody needs a tiny bit of motivation to write that extra bit of code which would complain at compile time: I sense that there are a lot of shops like mine who would love to get off of Oracle due to the cost. That means you'll have guys like myself who are well versed on Oracle's PL/SQL trying to write PL/pgSQL functions. If ROLLBACK; were to cause a syntax error, it would immediately tell guys like myself that we are missing a key concept of how PL/pgSQL works. Saving the error until run time makes look for other reasons that ROLLBACK; might not be working.  I know it's a trivial point, but just putting it out there.

Thanks everybody for the enlightening conversation!

Regards,
Mike


On Mon, Oct 31, 2016 at 7:38 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Michael Moore <michaeljmoore@gmail.com> writes:
> I'm still a bit confused. If I replace the ROLLBACK; command with ELEPHANT;
> the result is a syntax error. Why doesn't ROLLBACK; produce the same error
> since it is not valid in the LANGUAGE plpgsql.

That's a runtime error so far as plpgsql is concerned, because it relies
on the SPI layer to throw the error.  It might be practical to complain
about it at compile time, but it would be some extra code that nobody's
written.

                        regards, tom lane

pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: Why does the PL/pgSQL compiler do this?
Next
From: Pavel Stehule
Date:
Subject: Re: Why does the PL/pgSQL compiler do this?