Re: Expanding HOT updates for expression and partial indexes

Поиск
Список
Период
Сортировка
От Greg Burd
Тема Re: Expanding HOT updates for expression and partial indexes
Дата
Msg-id bce13827-5f98-4d79-b779-ac5fff2b7668@app.fastmail.com
обсуждение
Ответ на Re: Expanding HOT updates for expression and partial indexes  ("Greg Burd" <greg@burd.me>)
Ответы Re: Expanding HOT updates for expression and partial indexes
Список pgsql-hackers
Hello.

Attached is a new patch set that fixes a few issues identified in the last set.

0001 - creates a new way to identify the set of attributes both modified by the update and referenced by one or more
indexeson the target relation being updated.  This patch keeps the HeapDetermineColumnsInfo() path within heap_update()
forcalls from simple_heap_update() when modified_attrs_valid is set to false.  I'm not a huge fan of this, but it does
serveas a way to illustrate a minimal set of changes easing review a bit.
 

0002 - splits out the top portion of heap_update() into both heapam_tuple_update() and simple_heap_update(), adds a few
helperfunctions and tries to reduce repeated code.  The goal here was to remove some of the mess related to the various
bitmapsused to make decisions during the update.
 

Performance tests so far haven't shown a regression of note for this set of changes.

I'm still working on:
a) cleaning this up a bit more
b) create ExecCheckUpdateRequiresReplicaId() in executor
c) look for a way to cleanly pass/maintain per-table AM state during update
d) root cause for difference in tests
e) look into UPDATE WHERE > 1 row performance

best.

-greg
Вложения

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