| 3175 | } |
| 3176 | |
| 3177 | static void |
| 3178 | RememberToFreeTupleDescAtEOX(TupleDesc td) |
| 3179 | { |
| 3180 | if (EOXactTupleDescArray == NULL) |
| 3181 | { |
| 3182 | MemoryContext oldcxt; |
| 3183 | |
| 3184 | oldcxt = MemoryContextSwitchTo(CacheMemoryContext); |
| 3185 | |
| 3186 | EOXactTupleDescArray = (TupleDesc *) palloc(16 * sizeof(TupleDesc)); |
| 3187 | EOXactTupleDescArrayLen = 16; |
| 3188 | NextEOXactTupleDescNum = 0; |
| 3189 | MemoryContextSwitchTo(oldcxt); |
| 3190 | } |
| 3191 | else if (NextEOXactTupleDescNum >= EOXactTupleDescArrayLen) |
| 3192 | { |
| 3193 | int32 newlen = EOXactTupleDescArrayLen * 2; |
| 3194 | |
| 3195 | Assert(EOXactTupleDescArrayLen > 0); |
| 3196 | |
| 3197 | EOXactTupleDescArray = (TupleDesc *) repalloc(EOXactTupleDescArray, |
| 3198 | newlen * sizeof(TupleDesc)); |
| 3199 | EOXactTupleDescArrayLen = newlen; |
| 3200 | } |
| 3201 | |
| 3202 | EOXactTupleDescArray[NextEOXactTupleDescNum++] = td; |
| 3203 | } |
| 3204 | |
| 3205 | #ifdef USE_ASSERT_CHECKING |
| 3206 | static void |
no test coverage detected