Re: [SQL] RewriteDefine.c : Rule size
От | Jim Rowan |
---|---|
Тема | Re: [SQL] RewriteDefine.c : Rule size |
Дата | |
Msg-id | 199907090425.XAA12140@zee.computing.com обсуждение исходный текст |
Ответ на | Re: [SQL] RewriteDefine.c : Rule size (wieck@debis.com (Jan Wieck)) |
Список | pgsql-sql |
>> I'm using Postgres 6.4.2. I want to create a view, but a message appear : >> ERROR: DefineQueryRewrite: rule plan string too big. What could be the >> solution to avoid the problem? In fact, I have 31 columns in a table, and >> i want to make a view on this table (with a line restrict = WHERE clause). I get the same error from 6.5 when I create rules that are apparently too complex. My table has 25 or so columns.. >> I watched the RewriteDefine.c code and saw : #define RULE_PLAN_SIZE BLCKSZ >> I thought changing the value of this size, but I don't find the place to >> modify the BLCKSZ value. But, before doing the modification and >> recompile, I would like to have your opinion on the problem...perhaps is >> there an easier way to resolve the problem. wieck> Never did it, but the BLCKSZ is defined in include/config.h. That wieck> is a file generated from config.h.in, so be sure to change it there wieck> and reconfigure before recompiling. Be careful here. We changed BLCKSZ and found some scary results: First we multiplied it * 4. This improved the ability to handle complex rules, but didn't go far enough... (it still wouldn't handle all of what we wanted it to). So we multiplied it * 8. Initdb complained about "float4 not defined". (As I recall.. I'm not where the error message is and thus this may not be 100% accurate...). We quickly changed it back to the original size and are implementing alternative rules... I can understand if it doesn't have enough working space to do what I ask (or whatever the details are behind "rule plan string too big") but if changing BLCKSZ breaks builtin types -- I don't want to mess with it!!!
В списке pgsql-sql по дате отправления: