Hi,

I have a query that throws error "Variable not found in subplan target lists".
This should allow it to be reproduce.

create temporary table table1 (
 col1 integer not null,
 col2 integer not null
);

create temporary table table2 ();

create or replace function udftable1row(integer, integer) returns table1 AS $$
  select $1, $2;
$$ language sql immutable;

create or replace function udf(table1) returns void as $$
$$ language sql immutable;

-- This throws "Variable not found in subplan target lists"
select
  udf(t1)
from
  udftable1Row(1,2) t1

  cross join table2;

-- Now that we have Row constructor, I can get rid of
my function udftable1row() and this works ok

select
  udf(t1)
from
  (select (cast(row(1,2) as table1)).*) t1

  cross join table2;

I am on PostgreSQL 8.1 beta3 under Windows XP Service Pack 2.

Thanks,
Jean-Pierre Pelletier
e-djuster

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

Reply via email to