@@ -176,46 +176,42 @@ initRumState(RumState * state, Relation index)
176176
177177for (i = 0 ;i < origTupdesc -> natts ;i ++ )
178178{
179- RumConfig rumConfig ;
179+ RumConfig * rumConfig = state -> rumConfig + i ;
180180
181- rumConfig . addInfoTypeOid = InvalidOid ;
181+ rumConfig -> addInfoTypeOid = InvalidOid ;
182182
183183if (index_getprocid (index ,i + 1 ,RUM_CONFIG_PROC )!= InvalidOid )
184184{
185185fmgr_info_copy (& (state -> configFn [i ]),
186186index_getprocinfo (index ,i + 1 ,RUM_CONFIG_PROC ),
187187CurrentMemoryContext );
188188
189- FunctionCall1 (& state -> configFn [i ],PointerGetDatum (& rumConfig ));
189+ FunctionCall1 (& state -> configFn [i ],PointerGetDatum (rumConfig ));
190190}
191191
192192if (state -> attrnAddToColumn == i + 1 )
193193{
194- if (OidIsValid (rumConfig . addInfoTypeOid ))
194+ if (OidIsValid (rumConfig -> addInfoTypeOid ))
195195elog (ERROR ,"AddTo could should not have AddInfo" );
196196
197- state -> addInfoTypeOid [ i ] = origTupdesc -> attrs [
197+ rumConfig -> addInfoTypeOid = origTupdesc -> attrs [
198198state -> attrnOrderByColumn - 1 ]-> atttypid ;
199199}
200- else
201- {
202- state -> addInfoTypeOid [i ]= rumConfig .addInfoTypeOid ;
203- }
204200
205201if (state -> oneCol )
206202{
207203state -> tupdesc [i ]= CreateTemplateTupleDesc (
208- OidIsValid (state -> addInfoTypeOid [ i ] ) ?2 :1 , false);
204+ OidIsValid (rumConfig -> addInfoTypeOid ) ?2 :1 , false);
209205TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )1 ,NULL ,
210206origTupdesc -> attrs [i ]-> atttypid ,
211207origTupdesc -> attrs [i ]-> atttypmod ,
212208origTupdesc -> attrs [i ]-> attndims );
213209TupleDescInitEntryCollation (state -> tupdesc [i ], (AttrNumber )1 ,
214210origTupdesc -> attrs [i ]-> attcollation );
215- if (OidIsValid (state -> addInfoTypeOid [ i ] ))
211+ if (OidIsValid (rumConfig -> addInfoTypeOid ))
216212{
217213TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )2 ,NULL ,
218- state -> addInfoTypeOid [ i ] ,-1 ,0 );
214+ rumConfig -> addInfoTypeOid ,-1 ,0 );
219215state -> addAttrs [i ]= state -> tupdesc [i ]-> attrs [1 ];
220216}
221217else
@@ -226,7 +222,7 @@ initRumState(RumState * state, Relation index)
226222else
227223{
228224state -> tupdesc [i ]= CreateTemplateTupleDesc (
229- OidIsValid (state -> addInfoTypeOid [ i ] ) ?3 :2 , false);
225+ OidIsValid (rumConfig -> addInfoTypeOid ) ?3 :2 , false);
230226TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )1 ,NULL ,
231227INT2OID ,-1 ,0 );
232228TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )2 ,NULL ,
@@ -235,10 +231,10 @@ initRumState(RumState * state, Relation index)
235231origTupdesc -> attrs [i ]-> attndims );
236232TupleDescInitEntryCollation (state -> tupdesc [i ], (AttrNumber )2 ,
237233origTupdesc -> attrs [i ]-> attcollation );
238- if (OidIsValid (state -> addInfoTypeOid [ i ] ))
234+ if (OidIsValid (rumConfig -> addInfoTypeOid ))
239235{
240236TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )3 ,NULL ,
241- state -> addInfoTypeOid [ i ] ,-1 ,0 );
237+ rumConfig -> addInfoTypeOid ,-1 ,0 );
242238state -> addAttrs [i ]= state -> tupdesc [i ]-> attrs [2 ];
243239}
244240else