You might want to add a space before the '$'. '=$' is a valid Postgres
operator so it thinks of it as one token.
-DEJ
> -----Original Message-----
> From: Konstantinos Vassiliadis [SMTP:vassilik@p22.cs.man.ac.uk]
> Sent: Tuesday, July 14, 1998 7:34 AM
> To: pgsql-sql@postgreSQL.org
> Subject: [SQL] Typecasting in SQL functions
>
> Hi,
> I have the following
>
> create table reference
> (author text,
> journal text);
>
> create table subref
> (ref reference);
>
> I want to insert a tuple into relation 'subref'. I spotted in the
> mailing
> list that Nicolas Caillaud created a function to insert values to his
> relation 'book' so I thought I tried the same
>
> create function add_ref(text,text) returns reference
> as 'select * from reference
> where author=$1 and journal=$2'
> language 'sql';
>
> I get the following
> ERROR: There is no operator '=$' for types 'text' and 'int4'
> You will either have to retype this query using an explicit
> cast,
> or you will have to define the operator using CREATE OPERATOR
>
> Obviously it confuses author=$1...
> I have looked at the documenation (Ch 4. 'Extending SQL Functions'
> PostgreSQL Programmer's Guide) where they typecast for the function
> new_emp().
>
> I have tried
> <same query>
> where author=::$1...
>
> and get the same error message.
>
> Can somebody help me on typecasting?
>
> Kostas Vassiliadis
>
>