Are int4/int8 ops defined?

From: Min Qiu <minq(at)UU(dot)NET>
To: pgsql-sql(at)postgresql(dot)org
Subject: Are int4/int8 ops defined?
Date: 1999-06-23 04:19:27
Message-ID: QQguuj13589.199906230419@nocserve0.uu.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

I'm new to postgresql and learning writing the trigger.
Included below was one of the execise I did. It kept
producing an error message that suggested the operater '-'
was undefined for int8/int4. Since both int8 and int4
are the basic types, I believed I might miss something.

Appology for the long post and thanks for any advise,

Min

DROP trigger t_diff on tb_cnt32;
DROP function f_diff();
DROP TABLE tb_cnt32;

create table tb_cnt32 (t int8, s int8, v int8);
insert into tb_cnt32 values (0, 0, 0);

--
-- diff function
--
create function f_diff() returns opaque as '
declare
prev record;
begin
select into prev * from tb_cnt32 where t=(select max(t) from tb_cnt32);
-- can not do
-- select into prev * from tb_cnt32 where t=max(t);
-- ^^^^^
if not found then
raise exception ''Empty table tb_cnt32???'';
end if;

prev.v=new.v-prev.v;
update tb_cnt32 set v=prev.v where t=prev.t;

return new;
end;
' language 'plpgsql';

--
-- t_diff trigger
--
create trigger t_diff
before insert on tb_cnt32
for each row
execute procedure
f_diff();

insert into tb_cnt32 values (1000, 5, 10);
ERROR: There is no operator '-$' for types 'int8' 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

Following the hint of the error message, I trid casting prev.v::int8,
new.v::int4 and prev.v::int4. But the results were the same.

I'm using v6.5 on Linux 2.0.35 with gcc version egcs-2.91.66.
psql \df listed:
...
int8 |int8div |int8 int8 |divide
int8 |int8larger |int8 int8 |larger of two
int8 |int8mi |int8 int8 |subtraction
int8 |int8mul |int8 int8 |multiply
int8 |int8pl |int8 int8 |addition
int8 |int8smaller |int8 int8 |smaller of two
int8 |int8um |int8 |unary minus
...

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Haris Susanto 1999-06-23 04:39:21 insert on insert/update
Previous Message Deva Vejay 1999-06-22 18:18:51 Max () of an empty table... I need it to return 0 any ideas?