On Mon, Oct 26, 2009 at 12:01 AM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
Timothy Madden <terminatorul@xxxxxxxxx> writes:
> What I want is compatible with existing code and the current defaultThis proposal is unfortunately complete nonsense, because it fails to
> behavior. Just look for a LANGUAGE SQL declaration in the function
> header (before the body).
> If found expect the in-place definition of the function body to follow.
> If not found expect a string literal that holds the function body to follow,
> with the LANGUAGE declaration after (default behavior).
address the question of how you figure out where the function body *ends*.
We have to have a simple and not-language-specific rule for that. Even
if the backend could be made smart enough to handle a variety of cases,
we could hardly expect client-side code (like psql) to track all the
cases. And psql does need to understand where the CREATE FUNCTION
command ends, so that it can tell when to ship the command off to the
backend.
By the standard the routine body is a <SQL procedure statement> and the
question of how to figure out where the function body ends should be answered
as such.
I am talking about two cases, the one psql already handles, and the one where
the body is (and ends as) a <SQL procedure statement>, which statement
again psql should already understand and which is signaled by the
LANGUAGE SQL declaration in the function header.
Thank you,
Timothy Madden