Thread: order of statements in create function

order of statements in create function

From
Markus Bertheau
Date:
Hi,

why does everyone write

CREATE FUNCTION foo() RETURNS INTEGER AS '
blah blah
' LANGUAGE 'plpgsql';

I've never seen for example:

CREATE FUNCTION foo()
    RETURNS INTEGER
    LANGUAGE 'plpgsql'
    AS '
blah blah
';

Is there a special reason to this? I have a hard time believing that
everyone does it the same way by coincidence.

Thanks.

--
Markus Bertheau <twanger@bluetwanger.de>


Re: order of statements in create function

From
Alvaro Herrera
Date:
On Fri, Jul 09, 2004 at 07:16:14PM +0200, Markus Bertheau wrote:

> why does everyone write
>
> CREATE FUNCTION foo() RETURNS INTEGER AS '
> blah blah
> ' LANGUAGE 'plpgsql';
>
> I've never seen for example:
>
> CREATE FUNCTION foo()
>     RETURNS INTEGER
>     LANGUAGE 'plpgsql'
>     AS '
> blah blah
> ';
>
> Is there a special reason to this? I have a hard time believing that
> everyone does it the same way by coincidence.

I think previous versions only allowed the language specification at the
end.  I got used to putting it before the function text though, so if
you are able to read something written by me you'd see that.

That was your point, wasn't it?

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"In fact, the basic problem with Perl 5's subroutines is that they're not
crufty enough, so the cruft leaks out into user-defined code instead, by
the Conservation of Cruft Principle."  (Larry Wall, Apocalypse 6)


Re: order of statements in create function

From
Peter Eisentraut
Date:
Markus Bertheau wrote:
> why does everyone write
>
> CREATE FUNCTION foo() RETURNS INTEGER AS '
> blah blah
> ' LANGUAGE 'plpgsql';
>
> I've never seen for example:
>
> CREATE FUNCTION foo()
>     RETURNS INTEGER
>     LANGUAGE 'plpgsql'
>     AS '
> blah blah
> ';
>
> Is there a special reason to this? I have a hard time believing that
> everyone does it the same way by coincidence.

The first used to be the only allowed order, before we made it more
flexible, as specified by the SQL standard.


Re: order of statements in create function

From
Markus Bertheau
Date:
В Птн, 09.07.2004, в 20:24, Alvaro Herrera пишет:
> On Fri, Jul 09, 2004 at 07:16:14PM +0200, Markus Bertheau wrote:
>
> > why does everyone write
> >
> > CREATE FUNCTION foo() RETURNS INTEGER AS '
> > blah blah
> > ' LANGUAGE 'plpgsql';
> >
> > I've never seen for example:
> >
> > CREATE FUNCTION foo()
> >     RETURNS INTEGER
> >     LANGUAGE 'plpgsql'
> >     AS '
> > blah blah
> > ';
> >
> > Is there a special reason to this? I have a hard time believing that
> > everyone does it the same way by coincidence.
>
> I think previous versions only allowed the language specification at the
> end.  I got used to putting it before the function text though, so if
> you are able to read something written by me you'd see that.
>
> That was your point, wasn't it?

Yes, it was. Thanks to you and Peter for explaining it.

--
Markus Bertheau <twanger@bluetwanger.de>


Re: order of statements in create function

From
Robert Treat
Date:
On Fri, 09 Jul 2004 21:02:51 +0200, Markus Bertheau
<twanger@bluetwanger.de> wrote:
> В Птн, 09.07.2004, в 20:24, Alvaro Herrera пишет:
> > On Fri, Jul 09, 2004 at 07:16:14PM +0200, Markus Bertheau wrote:
> >
> > > why does everyone write
> > >
> > > CREATE FUNCTION foo() RETURNS INTEGER AS '
> > > blah blah
> > > ' LANGUAGE 'plpgsql';
> > >
> > > I've never seen for example:
> > >
> > > CREATE FUNCTION foo()
> > >     RETURNS INTEGER
> > >     LANGUAGE 'plpgsql'
> > >     AS '
> > > blah blah
> > > ';
> > >
> > > Is there a special reason to this? I have a hard time believing that
> > > everyone does it the same way by coincidence.
> >
> > I think previous versions only allowed the language specification at the
> > end.  I got used to putting it before the function text though, so if
> > you are able to read something written by me you'd see that.
> >
> > That was your point, wasn't it?
>

As an aside, if you look in the book PostgreSQL by Korry Douglas, he
uses examples with the type before body style formatting. It was so
wierd when I looked at it I had to try it myself just to make sure it
worked :-)  If you look in the docs though, they use the "normal"
formatting which is why most people stick to that convention.

Robert Treat
--
Build A Brighter LAMP :: Linux Apache {middleware} PostgreSQL