BUG #10836: Rule with RETURNING claims incorrect type

From: hoschiraffel(at)freenet(dot)de
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #10836: Rule with RETURNING claims incorrect type
Date: 2014-07-02 13:05:37
Message-ID: 20140702130537.5170.32873@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 10836
Logged by: Matthias Raffelsieper
Email address: hoschiraffel(at)freenet(dot)de
PostgreSQL version: 9.3.4
Operating system: Mac OSX
Description:

Hi all.

While trying to create rules, I hit a situation that I figure might be a
bug.

In essence, I observe that when explicitly listing columns in a RETURNING
statement of a rule, the type checking is somehow thrown off. When using the
'*' all is fine. Please see below for a small example session that exhibits
this bug.

$ psql test
psql (9.3.4)
Type "help" for help.

test=# \set VERBOSITY verbose
test=# create table foobar (id int, info text);
CREATE TABLE
test=# create view test_me as select id as foo, info as bar from foobar;
CREATE VIEW
test=# create rule test_me_ins as on insert to test_me do instead insert
into foobar values (new.foo,new.bar) returning (id,info);
ERROR: 42P17: RETURNING list's entry 1 has different type from column
"foo"
LOCATION: checkRuleResultList, rewriteDefine.c:682
test=# create rule test_me_ins as on insert to test_me do instead insert
into foobar values (new.foo,new.bar) returning *;
CREATE RULE
test=# insert into test_me VALUES (1,'hello');
INSERT 0 1
test=# insert into test_me VALUES (2,'world') returning bar;
bar
-------
world
(1 row)

INSERT 0 1
test=# select * from test_me;
foo | bar
-----+-------
1 | hello
2 | world
(2 rows)

test=#

Cheers,
Matt

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Marko Tiikkaja 2014-07-02 13:51:23 Re: BUG #10836: Rule with RETURNING claims incorrect type
Previous Message Pavan Deolasee 2014-07-02 12:30:25 Re: BUG #10675: alter database set tablespace and unlogged table