Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 5da8bf8

Browse files
Avoid CREATE INDEX unique index deduplication.
There is no advantage to attempting deduplication for a unique index during CREATE INDEX, since there cannot possibly be any duplicates. Doing so wastes cycles due to unnecessary copying. Make sure that we avoid it consistently. We already avoided unique index deduplication in the case where there were some spool2 tuples to merge. That didn't account for the fact that spool2 is removed early/unset in the common case where it has no tuples that need to be merged (i.e. it failed to account for the "spool2 turns out to be unnecessary" optimization in _bt_spools_heapscan()). Oversight in commit 0d861bb, which added nbtree deduplication Backpatch: 13-, where nbtree deduplication was introduced.
1 parent 7fe3083 commit 5da8bf8

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/backend/access/nbtree/nbtsort.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1192,7 +1192,7 @@ _bt_load(BTWriteState *wstate, BTSpool *btspool, BTSpool *btspool2)
11921192
int64 tuples_done = 0;
11931193
bool deduplicate;
11941194

1195-
deduplicate = wstate->inskey->allequalimage &&
1195+
deduplicate = wstate->inskey->allequalimage && !btspool->isunique &&
11961196
BTGetDeduplicateItems(wstate->index);
11971197

11981198
if (merge)

0 commit comments

Comments
 (0)