Alan Li wrote:
Running the following against HEAD and REL8_3_6:

Same problem exists in 8.2 and 8.1 as well. The code in ruleutils.c is similar in 8.0 as well, except that the Assertion isn't there.

create table foo (a varchar(500));
create view bar as select case foo.a when '1' then 'foo' else 'bar' end as
fa from foo;
\d bar

Causes as assertion in the backend:

TRAP: FailedAssertion("!(((((Node*)(((list_head(((OpExpr *)
w)->args))->data.ptr_value)))->type) == T_CaseTestExpr) ||
((((Node*)(((list_head(((OpExpr *) w)->args))->data.ptr_value)))->type) ==
T_Const))", File: "ruleutils.c", Line: 4587
)
LOG:  server process (PID 28408) was terminated by signal 6: Aborted

Attached is a simple patch that appears to fix this problem, not sure if it
suffices in general.

Looks good to me, at least.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

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

Reply via email to