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
...
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? |