Hi Andy,
A small thing I found:
+static List *
+get_exprs_from_uniqueindex(IndexOptInfo *unique_index,
+
List *const_exprs,
+
List *const_expr_opfamilies,
+
Bitmapset *used_varattrs,
+
bool *useful,
+
bool *multi_nullvals)
…
+ indexpr_item = list_head(unique_index->indexprs);
+ for(c = 0; c < unique_index->ncolumns; c++)
+ {
I believe the for loop must be over unique_index->nkeycolumns, rather than
columns. It shouldn’t include the extra non-key columns. This can currently
lead to invalid memory accesses as well a few lines later when it does an array
access of unique_index->opfamily[c] – this array only has nkeycolumns entries.
-Floris
From: Andy Fan <[email protected]>
Sent: Sunday 19 July 2020 5:03 AM
To: Dmitry Dolgov <[email protected]>
Cc: David Rowley <[email protected]>; PostgreSQL Hackers
<[email protected]>; Tom Lane <[email protected]>; Ashutosh
Bapat <[email protected]>; [email protected]
Subject: Re: [PATCH] Keeps tracking the uniqueness with UniqueKey [External]
Fixed a test case in v10.
--
Best Regards
Andy Fan