pgsql: Verify that attribute counts match in ExecCopySlot

Поиск
Список
Период
Сортировка
От David Rowley
Тема pgsql: Verify that attribute counts match in ExecCopySlot
Дата
Msg-id E1rB9km-00900w-Ge@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Verify that attribute counts match in ExecCopySlot

tts_virtual_copyslot() contained an Assert that checked that the srcslot
contained <= attributes than the dstslot.  This seems to be backwards as
if the srcslot contained fewer attributes then the dstslot could be left
with stale Datum values from the previously stored tuple.  It might make
more sense to allow the source to contain additional attributes and only
copy the leading ones that also exist in the destination, however, that's
not what we're doing here.

Here we just remove the Assert from tts_virtual_copyslot() and add an
Assert to ExecCopySlot() to verify the attribute counts match.  There
does not seem to be any places where the destination contains fewer
attributes, so instead of going to the trouble of making the code
properly handle this, let's just ensure the attribute counts match.  If
this Assert fails then that will indicate that we do have cases that
require us to handle the srcslot with more attributes than the dstslot.
It seems better to only write this code if there's a genuine requirement
for it rather than write it now only to leave it untested.

Thanks to Andres Freund for helping with the analysis of this.

Discussion: https://postgr.es/m/CAApHDvpMAvBL0T+TRORquyx1iqFQKMVTXtqNocOw0Pa2uh1heg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/d16a0c1e2e3874cd5adfa9ee968008b6c4b1ae01

Modified Files
--------------
src/backend/executor/execTuples.c |  2 --
src/include/executor/tuptable.h   | 10 +++++++++-
2 files changed, 9 insertions(+), 3 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: pgsql: Improve some error messages with invalid indexes for REINDEX CON
Следующее
От: Jeff Davis
Дата:
Сообщение: pgsql: Shrink Unicode category table.