Thread: Build from file syntax troublem.

Build from file syntax troublem.

From
Igor Radtchenko
Date:
Hello, All!

I have to fiil datebase from file contains strings alike such:

CREATE SEQUENCE public.blacklist_id_seq INCREMENT 1 MINVALUE 1
MAXVALUE2147483647 CACHE 1;

and

CREATE FUNCTION public.from_days(int4) RETURNS timestamp AS '
    select ''0000-01-02''::timestamp + ($1 || '' days'')::interval as result
'  LANGUAGE 'sql' VOLATILE;

The parser abuse  that
'parse error at or near  '"."  ',
'parse error at or near  "public'"  ',
'parse error at or near  "#'"  '.

PostgeSQL version is 7.2.3.

I've nowhere found isuch syntax in the net (I mean with dot -
'public.funcname(...)').

There is  plpgsql only in the database;
When  I try
./createlang  -dbname=mydb sql
it says "unsupported language".
But SELECT * FROM pg_language
show that it's present.

Where I'm wrong?

Successes & good luck for all,
Igor

Re: Build from file syntax troublem.

From
Tom Lane
Date:
Igor Radtchenko <inta@komi.parma.ru> writes:
> CREATE FUNCTION public.from_days(int4) RETURNS timestamp AS '
>     select ''0000-01-02''::timestamp + ($1 || '' days'')::interval as result
> '  LANGUAGE 'sql' VOLATILE;

> The parser abuse  that
> 'parse error at or near  '"."  ',
> 'parse error at or near  "public'"  ',
> 'parse error at or near  "#'"  '.

> PostgeSQL version is 7.2.3.

You need 7.3 or later to deal with schema-aware commands.

            regards, tom lane

Re: Build from file syntax troublem (part II).

From
Radtchenko Igor
Date:
Hello Tom,

Thank you very much for such fast reply.

But now, after I've installed 8.0.1, it says things as examples in
little attach.
<------
Where I have to dig?.. :(

Sunday, March 06, 2005, 2:38:26 AM, you wrote:

TL> Igor Radtchenko <inta@komi.parma.ru> writes:
>> CREATE FUNCTION public.from_days(int4) RETURNS timestamp AS '
>>     select ''0000-01-02''::timestamp + ($1 || '' days'')::interval as result
>> '  LANGUAGE 'sql' VOLATILE;

>> The parser abuse  that
>> 'parse error at or near  '"."  ',
>> 'parse error at or near  "public'"  ',
>> 'parse error at or near  "#'"  '.

>> PostgeSQL version is 7.2.3.

TL> You need 7.3 or later to deal with schema-aware commands.

TL>                         regards, tom lane



--
Best regards,
 Radtchenko                            mailto:inta@komi.parma.ru

Attachment

Re: Build from file syntax troublem (part II).

From
Tom Lane
Date:
Radtchenko Igor <inta@komi.parma.ru> writes:
> But now, after I've installed 8.0.1, it says things as examples in
> little attach.

> freenibs=# CREATE FUNCTION public.if(int4, int4, int4) RETURNS int4 AS '
> freenibs'# DECLARE
> freenibs'#  expr1 ALIAS FOR $1;
> freenibs'#  expr2 ALIAS FOR $2;
> ...
> freenibs'# END;
> freenibs'# '  LANGUAGE 'sql' VOLATILE;
> ERROR:  syntax error at or near "ALIAS" at character 78
> LINE 3:  expr1 ALIAS FOR $1;

That's a plpgsql function, not an sql function.  Your other examples
look like they were taken from some other database that has different
extensions to the SQL spec than we do: there is no "varchar binary"
in Postgres, and we don't allow you to add random commas at the ends
of column lists.  PG isn't going to like '0000-00-00' for a date,
either.

            regards, tom lane