Gordon Clarke wrote:
>
> I'm using PostgreSQL v6.3.2.
>
> It appears that the function command doesn't like the type "int2" as a
> parm in a call. For example,
>
> zedadmin=> \i zz.sql
> create table test2(
> trk_id int2 not null,
> trk_nm varchar(30) not null,
> trk_comp varchar(30));
> CREATE
>
> create function insert_test2(int2,varchar,varchar)
> returns int4 as
> 'insert into test2
> values($1,$2,$3);
> select 1 as return_val;'
> language 'sql';
> CREATE
> EOF
>
> The objects are successfully created, but when I come to insert data via
> the function there is the following error.
>
> zedadmin=> select insert_test2(1,'My name','My comment');
> ERROR: function insert_test2(int4, unknown, unknown) does not exist
>
> If one changes the int2 to an int4 in the table and function, the function
> is happy to insert the data into the table.
>
> Any ideas why this is so, or is it a bug?
>
It works on my v6.4:
select insert_test2(1,'My name','My comment');
insert_test2
------------
1
(1 row)
select * from test2;
trk_id|trk_nm |trk_comp
------+-------+----------
1|My name|My comment
1|My name|My comment
(2 rows)
Any way try to cast values as:
select insert_test2(1::int2,'My name'::varchar,'My comment'::varchar);
-Jose'-