Thread: Probs with int2 in functions

Probs with int2 in functions

From
Gordon Clarke
Date:
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?

Cheers...Gordon
~~~~~~~~~~~~~~ 4ZzZ Brisbane's First Community FM Station ~~~~~~~~~~~~~~
         The Demo Show - Supporting Australian Unsigned Artists
            Mon nights 6-7pm (0800-0900UTC) on 4ZzZ 102.1 FM
             http://www.4zzzfm.org.au/welcome.html (RA feed)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



Re: [SQL] Probs with int2 in functions

From
"Jose' Soares"
Date:
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'-

Re: [SQL] Probs with int2 in functions

From
Gordon Clarke
Date:
On Tue, 29 Dec 1998, Jose' Soares wrote:

> > 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)

So it appear that it is a bug in 6.3.2!

> Any way try to cast values as:
> select insert_test2(1::int2,'My name'::varchar,'My comment'::varchar);

I'd prefer not to do that. Also, since it isn't necessary for the int4
case then it shouldn't be for the int2 case and this suggests to me that
it is a bug.

Thanks for your suggestions and help.

Cheers...Gordon
~~~~~~~~~~~~~~ 4ZzZ Brisbane's First Community FM Station ~~~~~~~~~~~~~~
         The Demo Show - Supporting Australian Unsigned Artists
            Mon nights 6-7pm (0800-0900UTC) on 4ZzZ 102.1 FM
             http://www.4zzzfm.org.au/welcome.html (RA feed)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~