The following bug has been logged on the website:

Bug reference:      8198
Logged by:          Rafal Rzepecki
Email address:      divided.m...@gmail.com
PostgreSQL version: 9.2.4
Operating system:   Ubuntu 13.04
Description:        

Row type literals constructed with ROW() cause an error when used in an IN
clause (string literals casted appropriately are allowed). This is
especially problematic since many client libraries use these literals to
pass values of row-type arguments, hence making it impossible to use them in
IN-clause queries.

To wit:
divide=# create type the_row as (mfg text, id text);
CREATE TYPE
divide=# create table the_table (widget the_row);                           
                                                                            
                          
CREATE TABLE                                                                
                                                                            
                            
divide=# insert into the_table values(row('foo', 'bar')::the_row);          
                                                                            
                            
INSERT 0 1                                                                  
                                                                            
                            
divide=# insert into the_table values('(bar,baz)'::the_row);                
                                                                            
                     
INSERT 0 1
divide=# select * from the_table;
  widget   
-----------
 (foo,bar)
 (bar,baz)
(2 rows)

divide=# select * from the_table where widget in ('(foo,bar)'::the_row);
  widget   
-----------
 (foo,bar)
(1 row)

divide=# select * from the_table where widget in
(row('foo','bar')::the_row);
ERROR:  arguments of row IN must all be row expressions
LINE 1: select * from the_table where widget in (row('foo','bar')::t...
                                             ^




-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to