mirror of
https://github.com/postgres/postgres.git
synced 2025-11-25 12:03:53 +03:00
Allow HOT updates for some expression indexes
If the value of an index expression is unchanged after UPDATE, allow HOT updates where previously we disallowed them, giving a significant performance boost in those cases. Particularly useful for indexes such as JSON->>field where the JSON value changes but the indexed value does not. Submitted as "surjective indexes" patch, now enabled by use of new "recheck_on_update" parameter. Author: Konstantin Knizhnik Reviewer: Simon Riggs, with much wordsmithing and some cleanup
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
#include "access/amapi.h"
|
||||
#include "access/multixact.h"
|
||||
#include "access/relscan.h"
|
||||
#include "access/reloptions.h"
|
||||
#include "access/sysattr.h"
|
||||
#include "access/transam.h"
|
||||
#include "access/visibilitymap.h"
|
||||
@@ -3863,7 +3864,7 @@ reindex_relation(Oid relid, int flags, int options)
|
||||
|
||||
/* Ensure rd_indexattr is valid; see comments for RelationSetIndexList */
|
||||
if (is_pg_class)
|
||||
(void) RelationGetIndexAttrBitmap(rel, INDEX_ATTR_BITMAP_ALL);
|
||||
(void) RelationGetIndexAttrBitmap(rel, INDEX_ATTR_BITMAP_HOT);
|
||||
|
||||
PG_TRY();
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user