Parse error help needed...
I am getting this error
postgres=# \i a.sql
psql:a.sql:10: ERROR: parser: parse error at or near "return" at character
26
--
a.sql
--
create function loadme() return text as '
Declare
s_out text ;
Begin
For i in 1..10000 loop
insert into test values (i,''Test'');
end loop;
return s_out;
End;
' language 'plpgsql';
Any help is appreciated
Thx
Deep
PS: I already loaded pl/pgsql in my database
[postgres@node1]~$ createlang -d test -l
Procedural languages
Name | Trusted?
---------+----------
plpgsql | t
(1 row)
-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Chris Ochs
Sent: Monday, January 12, 2004 4:30 PM
To: pgsql-general@postgresql.org
Subject: Re: [GENERAL] sql insert function
Never mind, I forgot to quote the quote's...
Chris
The documentation doesn't have any examples of using an sql language
function to do an insert, andI am at loss as to I am doing wrong here.
The error I get trying to create the function is: ERROR: syntax
error at or near "$1" at character 148CREATE FUNCTION taxship(varchar,integer,varchar,float,float) returns
integer
AS '
insert into taxship(s_oid,order_id,mer_id,tax,shipping) values
('$1',$2,'$3',$4,$5); SELECT 1;
' LANGUAGE SQL;---------------------------(end of
broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend
"Thapliyal, Deepak" <dthapliyal@soe.sony.com> writes:
I am getting this error
postgres=# \i a.sql
psql:a.sql:10: ERROR: parser: parse error at or near "return" at character
26
create function loadme() return text as '
^^^^^^
I think you want "returns" here.
-Doug
Thx to doug ... Old error is gone .. But I am now getting new error
postgres=# \i a.sql
psql:a.sql:10: ERROR: language "plpgsql" does not exist
But I verified that I setup plpgsql
[postgres@node1]~$ createlang -d test -l
Procedural languages
Name | Trusted?
---------+----------
plpgsql | t
(1 row)
Can u pls advice if u know whats going on.. Am I missing somin obvious here.
..
Thx in advance
Deep
-----Original Message-----
From: Doug McNaught,,, [mailto:doug@wireboard.com] On Behalf Of Doug
McNaught
Sent: Monday, January 12, 2004 4:44 PM
To: Thapliyal, Deepak
Cc: 'pgsql-general@postgresql.org'
Subject: Re: [GENERAL] Parse error help needed...
"Thapliyal, Deepak" <dthapliyal@soe.sony.com> writes:
I am getting this error
postgres=# \i a.sql
psql:a.sql:10: ERROR: parser: parse error at or near "return" at
character 26
create function loadme() return text as '
^^^^^^
I think you want "returns" here.
-Doug
Import Notes
Resolved by subject fallback
Thapliyal, Deepak wrote:
create function loadme() return text as '
try "RETURNS" instead of "RETURN"
[the guys writing the function parser might want to consider reporting
what the parser was expecting at this point]
Declare
s_out text ;
Begin
For i in 1..10000 loop
insert into test values (i,''Test'');
end loop;
return s_out;
End;
' language 'plpgsql';
The rest looks fine (works for me - yes I tested it this time)
Alex Satrapa
Made the change and used returns in both places now .. Gives me error
postgres=# \i a.sql
psql:a.sql:10: ERROR: language "plpgsql" does not exist
Any help is appreciated
Thx
Deep
create function loadme() returns text as '
Declare
s_out text ;
Begin
For i in 1..10000 loop
insert into test values (i,''Test'');
end loop;
returns s_out;
End;
' language 'plpgsql';
-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Alex Satrapa
Sent: Monday, January 12, 2004 4:57 PM
To: PostgreSQL General
Subject: Re: [GENERAL] Parse error help needed...
Thapliyal, Deepak wrote:
create function loadme() return text as '
try "RETURNS" instead of "RETURN"
[the guys writing the function parser might want to consider reporting
what the parser was expecting at this point]
Declare
s_out text ;
Begin
For i in 1..10000 loop
insert into test values (i,''Test'');
end loop;
return s_out;
End;
' language 'plpgsql';
The rest looks fine (works for me - yes I tested it this time)
Alex Satrapa
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match
Import Notes
Resolved by subject fallback
--On Monday, January 12, 2004 17:24:14 -0800 "Thapliyal, Deepak"
<dthapliyal@soe.sony.com> wrote:
Made the change and used returns in both places now .. Gives me error
postgres=# \i a.sql
psql:a.sql:10: ERROR: language "plpgsql" does not exist
createlang plpgsql
Any help is appreciated
Thx
Deepcreate function loadme() returns text as '
Declare
s_out text ;
Begin
For i in 1..10000 loop
insert into test values (i,''Test'');
end loop;
returns s_out;
End;
' language 'plpgsql';-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Alex Satrapa
Sent: Monday, January 12, 2004 4:57 PM
To: PostgreSQL General
Subject: Re: [GENERAL] Parse error help needed...Thapliyal, Deepak wrote:
create function loadme() return text as '
try "RETURNS" instead of "RETURN"
[the guys writing the function parser might want to consider reporting
what the parser was expecting at this point]Declare
s_out text ;
Begin
For i in 1..10000 loop
insert into test values (i,''Test'');
end loop;
return s_out;
End;
' language 'plpgsql';The rest looks fine (works for me - yes I tested it this time)
Alex Satrapa
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
--
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 972-414-9812 E-Mail: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749
Now my function is created ... Thanks guys ..
Now getting error while trying to execute it
postgres=# select loadme();
WARNING: Error occurred while executing PL/pgSQL function loadme
WARNING: line 7 at SQL statement
ERROR: SPI_prepare() failed on "commit"
Thx again
Deep
PS: here is fn definition
create function loadme() returns text as '
Declare
s_out text ;
Begin
For i in 1..10000 loop
insert into test values (i,''Test'');
end loop;
commit;
returns s_out;
End;
' language 'plpgsql';
-----Original Message-----
From: Larry Rosenman [mailto:ler@lerctr.org]
Sent: Monday, January 12, 2004 5:29 PM
To: Thapliyal, Deepak; 'PostgreSQL General'
Subject: Re: [GENERAL] Parse error help needed...
--On Monday, January 12, 2004 17:24:14 -0800 "Thapliyal, Deepak"
<dthapliyal@soe.sony.com> wrote:
Made the change and used returns in both places now .. Gives me error
postgres=# \i a.sql
psql:a.sql:10: ERROR: language "plpgsql" does not exist
createlang plpgsql
Any help is appreciated
Thx
Deepcreate function loadme() returns text as '
Declare
s_out text ;
Begin
For i in 1..10000 loop
insert into test values (i,''Test'');
end loop;
returns s_out;
End;
' language 'plpgsql';-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Alex Satrapa
Sent: Monday, January 12, 2004 4:57 PM
To: PostgreSQL General
Subject: Re: [GENERAL] Parse error help needed...Thapliyal, Deepak wrote:
create function loadme() return text as '
try "RETURNS" instead of "RETURN"
[the guys writing the function parser might want to consider reporting
what the parser was expecting at this point]Declare
s_out text ;
Begin
For i in 1..10000 loop
insert into test values (i,''Test'');
end loop;
return s_out;
End;
' language 'plpgsql';The rest looks fine (works for me - yes I tested it this time)
Alex Satrapa
---------------------------(end of
broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match---------------------------(end of
broadcast)---------------------------
TIP 6: Have you searched our list archives?
--
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 972-414-9812 E-Mail: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749
Import Notes
Resolved by subject fallback
On Tuesday 13 January 2004 01:39, Thapliyal, Deepak wrote:
Now my function is created ... Thanks guys ..
Now getting error while trying to execute it
postgres=# select loadme();
WARNING: Error occurred while executing PL/pgSQL function loadme
WARNING: line 7 at SQL statement
ERROR: SPI_prepare() failed on "commit"
Remove the "commit" line - functions cannot define their own transactions
anyway. I guess you're being misled by the "begin" line - it's matched by the
"end" and defines the function body rather than any transaction.
--
Richard Huxton
Archonet Ltd
RH> Remove the "commit" line - functions cannot define their own transactions
RH> anyway.
Do you know if it will be solved sometime? Or this is architecture
dependend problem? I mean that transactions are rulez and very helpful
rulez when working with large databases.
Regards,
Anton
On Tuesday 13 January 2004 12:01, Anton.Nikiforov@loteco.ru wrote:
RH> Remove the "commit" line - functions cannot define their own
transactions RH> anyway.
Do you know if it will be solved sometime? Or this is architecture
dependend problem? I mean that transactions are rulez and very helpful
rulez when working with large databases.
Nested transactions are on the todo list, but I don't know when they will
appear.
--
Richard Huxton
Archonet Ltd