@@ -176,46 +176,42 @@ initRumState(RumState * state, Relation index)
176
176
177
177
for (i = 0 ;i < origTupdesc -> natts ;i ++ )
178
178
{
179
- RumConfig rumConfig ;
179
+ RumConfig * rumConfig = state -> rumConfig + i ;
180
180
181
- rumConfig . addInfoTypeOid = InvalidOid ;
181
+ rumConfig -> addInfoTypeOid = InvalidOid ;
182
182
183
183
if (index_getprocid (index ,i + 1 ,RUM_CONFIG_PROC )!= InvalidOid )
184
184
{
185
185
fmgr_info_copy (& (state -> configFn [i ]),
186
186
index_getprocinfo (index ,i + 1 ,RUM_CONFIG_PROC ),
187
187
CurrentMemoryContext );
188
188
189
- FunctionCall1 (& state -> configFn [i ],PointerGetDatum (& rumConfig ));
189
+ FunctionCall1 (& state -> configFn [i ],PointerGetDatum (rumConfig ));
190
190
}
191
191
192
192
if (state -> attrnAddToColumn == i + 1 )
193
193
{
194
- if (OidIsValid (rumConfig . addInfoTypeOid ))
194
+ if (OidIsValid (rumConfig -> addInfoTypeOid ))
195
195
elog (ERROR ,"AddTo could should not have AddInfo" );
196
196
197
- state -> addInfoTypeOid [ i ] = origTupdesc -> attrs [
197
+ rumConfig -> addInfoTypeOid = origTupdesc -> attrs [
198
198
state -> attrnOrderByColumn - 1 ]-> atttypid ;
199
199
}
200
- else
201
- {
202
- state -> addInfoTypeOid [i ]= rumConfig .addInfoTypeOid ;
203
- }
204
200
205
201
if (state -> oneCol )
206
202
{
207
203
state -> tupdesc [i ]= CreateTemplateTupleDesc (
208
- OidIsValid (state -> addInfoTypeOid [ i ] ) ?2 :1 , false);
204
+ OidIsValid (rumConfig -> addInfoTypeOid ) ?2 :1 , false);
209
205
TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )1 ,NULL ,
210
206
origTupdesc -> attrs [i ]-> atttypid ,
211
207
origTupdesc -> attrs [i ]-> atttypmod ,
212
208
origTupdesc -> attrs [i ]-> attndims );
213
209
TupleDescInitEntryCollation (state -> tupdesc [i ], (AttrNumber )1 ,
214
210
origTupdesc -> attrs [i ]-> attcollation );
215
- if (OidIsValid (state -> addInfoTypeOid [ i ] ))
211
+ if (OidIsValid (rumConfig -> addInfoTypeOid ))
216
212
{
217
213
TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )2 ,NULL ,
218
- state -> addInfoTypeOid [ i ] ,-1 ,0 );
214
+ rumConfig -> addInfoTypeOid ,-1 ,0 );
219
215
state -> addAttrs [i ]= state -> tupdesc [i ]-> attrs [1 ];
220
216
}
221
217
else
@@ -226,7 +222,7 @@ initRumState(RumState * state, Relation index)
226
222
else
227
223
{
228
224
state -> tupdesc [i ]= CreateTemplateTupleDesc (
229
- OidIsValid (state -> addInfoTypeOid [ i ] ) ?3 :2 , false);
225
+ OidIsValid (rumConfig -> addInfoTypeOid ) ?3 :2 , false);
230
226
TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )1 ,NULL ,
231
227
INT2OID ,-1 ,0 );
232
228
TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )2 ,NULL ,
@@ -235,10 +231,10 @@ initRumState(RumState * state, Relation index)
235
231
origTupdesc -> attrs [i ]-> attndims );
236
232
TupleDescInitEntryCollation (state -> tupdesc [i ], (AttrNumber )2 ,
237
233
origTupdesc -> attrs [i ]-> attcollation );
238
- if (OidIsValid (state -> addInfoTypeOid [ i ] ))
234
+ if (OidIsValid (rumConfig -> addInfoTypeOid ))
239
235
{
240
236
TupleDescInitEntry (state -> tupdesc [i ], (AttrNumber )3 ,NULL ,
241
- state -> addInfoTypeOid [ i ] ,-1 ,0 );
237
+ rumConfig -> addInfoTypeOid ,-1 ,0 );
242
238
state -> addAttrs [i ]= state -> tupdesc [i ]-> attrs [2 ];
243
239
}
244
240
else