- 07 6月, 2016 2 次提交
-
-
由 Heikki Linnakangas 提交于
This allows removing the weird pfree() of the resultTupleSlot's tuple descriptor. What would've happened without the pfree() is that the old slot was allocated in the first ExecAssignScanProjectionInfo() call, in partitionMemoryContext, and then immediately destroyed when the memory context was reset. The second call to ExecAssignScanProjectionInfo() tries to free the slot, again, causing the segfault. But we can avoid that by this rearrangement of the calls in a cleaner way. In the passing, clean up the code a bit. I found having separate variables, indexState and scanState, which point to the same struct, to be confusing.
-
由 Heikki Linnakangas 提交于
ss_ScanTupleSlot is not an array, it's a single slot. The slot is allocated from a bigger array, however, so this trampled over some other slot that was allocated right after the scan slot. This has apparently been harmless, as no-one's noticed, but it's surely wrong. I bumped into this in the PostgreSQL 8.3 merge branch, where I had changed the way the slots are allocated so that they're not stored in one big array anymore. This bug led to segfaults in that case.
-
- 28 10月, 2015 1 次提交
-
-