The attached script works in REL8_2_STABLE, but crashes current head with a SEGV. It somehow manages to have the cheapest path being a NULL pointer instead of a dummy Append.


Jan

--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== [EMAIL PROTECTED] #
drop table t1 cascade;

create table t1 (a integer primary key);

create table t1_1 (check (a >= 0 and a < 10)) inherits (t1);
create table t1_2 (check (a >= 10 and a < 20)) inherits (t1);

create rule t1_ins_1 as on insert to t1 
        where new.a >= 0 and new.a < 10
        do instead
        insert into t1_1 values (new.a);
create rule t1_ins_2 as on insert to t1 
        where new.a >= 10 and new.a < 20
        do instead
        insert into t1_2 values (new.a);

create rule t1_upd_1 as on update to t1
        where old.a >= 0 and old.a < 10
        do instead
        update t1_1 set a = new.a where a = old.a;
create rule t1_upd_2 as on update to t1
        where old.a >= 10 and old.a < 20
        do instead
        update t1_2 set a = new.a where a = old.a;

set constraint_exclusion = on;

insert into t1 select * from generate_series(5,19,1);

explain update t1 set a = 4 where a = 5;
update t1 set a = 4 where a = 5;


select * from only t1;
select * from only t1_1;
select * from only t1_2;



---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to