Обсуждение: simple function syntax
OK trying to write my first function and its blowing
up at compile. What's wrong with this:
CREATE FUNCTION test_function(int4) RETURNS int4 AS '
DECLARE
test ALIAS FOR $1;
BEGIN
RETURN test;
END;
' LANGUAGE 'plpgsql';
__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - Buy the things you want at great prices.
http://auctions.yahoo.com/
Load the procedural language from the shell: createlang plsql <dbname> On Friday 26 January 2001 00:55, Culley Harrelson wrote: > OK trying to write my first function and its blowing > up at compile. What's wrong with this: > > CREATE FUNCTION test_function(int4) RETURNS int4 AS ' > DECLARE > test ALIAS FOR $1; > BEGIN > RETURN test; > END; > ' LANGUAGE 'plpgsql'; > > __________________________________________________ > Do You Yahoo!? > Yahoo! Auctions - Buy the things you want at great prices. > http://auctions.yahoo.com/ -- -------- Robert B. Easter reaster@comptechnews.com --------- -- CompTechNews Message Board http://www.comptechnews.com/ -- -- CompTechServ Tech Services http://www.comptechserv.com/ -- ---------- http://www.comptechnews.com/~reaster/ ------------
I ran createlang successfully and I'm still getting compile errors on basic plpgsql functions (sql functions work).I'm assuming I have to do something like: create trusted procedural language plpgsql handler = ???? do I need to write a handler function for plpgsql? Boy this is making me feel really lame :) Culley --- "Robert B. Easter" <reaster@comptechnews.com> wrote: > Load the procedural language from the shell: > > createlang plsql <dbname> > > On Friday 26 January 2001 00:55, Culley Harrelson > wrote: > > OK trying to write my first function and its > blowing > > up at compile. What's wrong with this: > > > > CREATE FUNCTION test_function(int4) RETURNS int4 > AS ' > > DECLARE > > test ALIAS FOR $1; > > BEGIN > > RETURN test; > > END; > > ' LANGUAGE 'plpgsql'; > > > > __________________________________________________ > > Do You Yahoo!? > > Yahoo! Auctions - Buy the things you want at great > prices. > > http://auctions.yahoo.com/ > > -- > -------- Robert B. Easter reaster@comptechnews.com > --------- > -- CompTechNews Message Board > http://www.comptechnews.com/ -- > -- CompTechServ Tech Services > http://www.comptechserv.com/ -- > ---------- http://www.comptechnews.com/~reaster/ ------------ __________________________________________________ Do You Yahoo!? Yahoo! Auctions - Buy the things you want at great prices. http://auctions.yahoo.com/
Culley Harrelson <culleyharrelson@yahoo.com> writes:
> I ran createlang successfully and I'm still getting
> compile errors on basic plpgsql functions (sql
> functions work).I'm assuming I have to do something
> like:
> create trusted procedural language plpgsql
> handler = ????
No, createlang should've done that for you.
What do you get from "select * from pg_language" ?
Also, it would help if you mentioned the exact error message
you're getting.
regards, tom lane
On Saturday 27 January 2001 20:12, Culley Harrelson wrote: > Boy this is making me feel really lame :) :) What are the error messages and the version of Postgres? Someone should be able to help you more if you post more information. -- -------- Robert B. Easter reaster@comptechnews.com --------- -- CompTechNews Message Board http://www.comptechnews.com/ -- -- CompTechServ Tech Services http://www.comptechserv.com/ -- ---------- http://www.comptechnews.com/~reaster/ ------------
ok the complete error is: ---------------- NOTICE: plpgsql: ERROR during compile of add_one near line 1 "RROR: parse error near " ---------------- I was trying to select the add_one function in the documentation. In the pg_language table I have entries for internal, c, sql and plpgsql. The plpgsql record reads: lanname = plpgsql lanispl = t lanpltrusted = t pancallfoid = 19488 lancompiler = PL/pgSQL the createlang statement I used was: createlang plpgsql db_name -L /usr/local/pgsql/lib this is on a new install of slackware 7.1 Culley --- Tom Lane <tgl@sss.pgh.pa.us> wrote: > Culley Harrelson <culleyharrelson@yahoo.com> writes: > > I ran createlang successfully and I'm still > getting > > compile errors on basic plpgsql functions (sql > > functions work).I'm assuming I have to do > something > > like: > > > create trusted procedural language plpgsql > > handler = ???? > > No, createlang should've done that for you. > > What do you get from "select * from pg_language" ? > > Also, it would help if you mentioned the exact error > message > you're getting. > > regards, tom lane __________________________________________________ Do You Yahoo!? Yahoo! Auctions - Buy the things you want at great prices. http://auctions.yahoo.com/
Culley Harrelson <culleyharrelson@yahoo.com> writes:
> ok the complete error is:
> ----------------
> NOTICE: plpgsql: ERROR during compile of add_one
> near line 1
> "RROR: parse error near "
> ----------------
Oh, that old thing...
Save the script with a less Microsofty editor, one that thinks newlines
are \n not \r\n. The plpgsql parser doesn't think \r is whitespace.
(Yes, it's been changed for 7.1)
regards, tom lane