Re: PostgreSQL12 crash bug report
От | Tom Lane |
---|---|
Тема | Re: PostgreSQL12 crash bug report |
Дата | |
Msg-id | 5285.1564627060@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: PostgreSQL12 crash bug report (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: PostgreSQL12 crash bug report
|
Список | pgsql-bugs |
Andres Freund <andres@anarazel.de> writes: > On 2019-07-31 19:07:29 -0400, Tom Lane wrote: >> It's setting up an es_epqTupleSlot[] entry on the assumption that it >> should have the same tupdesc as the output tuple that's to be rechecked. >> This might accidentally fail to malfunction in single-table cases, >> but it's quite broken for any join case --- in particular, for the >> given test case, the scan tuple for the VALUES node surely doesn't have >> the same tupdesc as the join result. > To make sure I understand - the problem isn't the slot that we've > created in nodeModifyTable.c via EvalPlanQualSlot(), right? It's the one > we create in EvalPlanQualFetchRowMarks(), because we don't have a proper > tuple type handy to create the slot with? Yeah, I think nodeModifyTable.c is fine, because it always passes the target relation. EvalPlanQualFetchRowMarks is not fine, and I'm unsure about the call in nodeLockRows.c. > Previously we simply didn't need to know the type during EPQ setup, > because we only stored a HeapTuple anyway. And we'd know the appropriate > tupledesc at the places that access the tuple. Right. So we gotta refactor that somehow. > One bigger change - but possibly one worth it - would be to basically > move the work done in EvalPlanQualFetchRowMarks() to be done on-demand, > at least for ROW_MARK_COPY. Hm. Too tired to think that through right now. regards, tom lane
В списке pgsql-bugs по дате отправления: