Thread: ERROR: DefineQueryRewrite: rule plan string too big.

ERROR: DefineQueryRewrite: rule plan string too big.

From
Haller Christoph
Date:
I tried to create a view as follows 
create view sesql_userindexes as 
SELECT c.relname AS TBL_NAME, i.relname AS IDX_NAME, x.indisunique AS UNIQUE_FLAG, 1+
(CASE WHEN x.indkey[1]=0 THEN 0 ELSE 1 END)+(CASE WHEN x.indkey[2]=0 THEN 0 ELSE 1 END)+ 
(CASE WHEN x.indkey[3]=0 THEN 0 ELSE 1 END)+(CASE WHEN x.indkey[4]=0 THEN 0 ELSE 1 END)+ 
(CASE WHEN x.indkey[5]=0 THEN 0 ELSE 1 END)+(CASE WHEN x.indkey[6]=0 THEN 0 ELSE 1 END)+ 
(CASE WHEN x.indkey[7]=0 THEN 0 ELSE 1 END) AS IDXCOL_TOTAL, x.indkey AS COL_SEQ 
FROM pg_index x, pg_class c, pg_class i 
WHERE ((c.oid = x.indrelid) AND (i.oid = x.indexrelid)) 
and not (c.relname ~* 'pg_') ;
I received the error message 
ERROR:  DefineQueryRewrite: rule plan string too big.

If do the SELECT without creating the view, it works as intended. 
I have to mention I am still working on version 6.1 (shame on me). 
Is this fixed in the upgrade versions?
Or does anybody have an idea to word it smaller?
Thanks in advance, Christoph 



Re: ERROR: DefineQueryRewrite: rule plan string too big.

From
Tom Lane
Date:
Haller Christoph <ch@rodos.fzk.de> writes:
> I received the error message 
> ERROR:  DefineQueryRewrite: rule plan string too big.

> If do the SELECT without creating the view, it works as intended. 
> I have to mention I am still working on version 6.1 (shame on me). 

Indeed.

> Is this fixed in the upgrade versions?

Yes.
        regards, tom lane