Hello 2009/8/21 <94487...@qq.com>: > > The following bug has been logged online: > > Bug reference: 5001 > Logged by: > Email address: 94487...@qq.com > PostgreSQL version: 8.3.3 > Operating system: linux > Description: can not prepare for where $1 is null > Details: > > why can not prepare like this? thanks! > prepare ssss as select * from test where $1 is null; > ERROR: could not determine data type of parameter $1
Probably you are thinking, so first parameter is name of column. But this is wrong idea. You cannot parametrize column or table names. In this case - first parameter will be constant expression - with null value it returns all rows, with not null value - it returns no row. If you wont to do filter query via some name you have to use dynamic sql: create or replace function ssss(_name varchar) returns setof test as $$ declare _r record; begin for _r in execute 'select * from test where ' || quote_ident(_name) || ' is null' loop return next r; end loop; return; end; $$ language plpgsql; regards Pavel Stehule > > -- > Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-bugs > -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs