Tom Lane wrote:

Kyle Bateman <[EMAIL PROTECTED]> writes:
I have a query:
insert into mtr_reg_v_wt (ropnum, inum, pnum, rquant, value, status, ddate, fr_proj, to_proj) values (28985,1,1014,1,(select cost from prd_part where pnum = 1014),'work','2005-Nov-15',50,75);

That used to work fine under 7.1.3 but now gives the error:

ERROR:  cannot handle unplanned sub-select

You need to offer a little more context, like what PG version you are
using now and what is the underlying DDL --- I suspect some rules or
views are involved here, but you didn't show them to us.

Sorry, you're right. I have now confirmed that this only happens when updating via a view/rule (as you suspected). Attached is a minimalist sql file that demonstrates the same error message from a blank database. I'm using 8.1.0. I'm pretty sure this problem did not exist on 8.0.3.

Kyle

-- Expose the "unplanned sub-select" error message

create table parts (
    partnum	varchar(18) primary key,
    cost	float8
);

create table shipped (
    ttype	char(2),
    ordnum	int4,
    partnum	varchar(18) references parts,
    value	float8,

    primary key (ttype, ordnum)
);

create view shipped_view as
    select * from shipped where ttype = 'wt';

create rule shipped_view_insert as on insert to shipped_view
    do instead insert into shipped
        (ttype, ordnum, partnum, value) 
    values
        ('wt', new.ordnum, new.partnum, new.value);
    
insert into parts (partnum, cost) values (1, 1234.56);

insert into shipped_view 
	(ordnum, partnum, value)
    values
        (100,1,(select cost from parts where partnum = 1));
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to