On Wed, Oct 7, 2020 at 9:55 PM Dmitry Dolgov <9erthali...@gmail.com> wrote:

> > On Wed, Sep 09, 2020 at 07:51:12AM +0800, Andy Fan wrote:
> >
> > Thank you Michael for checking it, I can reproduce the same locally after
> > rebasing to the latest master. The attached v11 has fixed it and includes
> > the fix Floris found.
> >
> > The status of this patch is we are still in discussion about which data
> > type should
> > UniqueKey->expr use.  Both David [1] and I [2] shared some thinking about
> > EquivalenceClasses, but neither of us have decided on it. So I still
> didn't
> > change
> > anything about that  now.   I can change it once we have decided on it.
> >
> > [1]
> >
> https://www.postgresql.org/message-id/CAApHDvoDMyw%3DhTuW-258yqNK4bhW6CpguJU_GZBh4x%2Brnoem3w%40mail.gmail.com
> >
> > [2]
> >
> https://www.postgresql.org/message-id/CAKU4AWqy3Uv67%3DPR8RXG6LVoO-cMEwfW_LMwTxHdGrnu%2Bcf%2BdA%40mail.gmail.com
>
> Hi,
>
> In the Index Skip Scan thread Peter mentioned couple of issues that I
> believe need to be addressed here. In fact one about valgrind errors was
> already fixed as far as I see (nkeycolumns instead of ncolumns), another
> one was:
>
>
> /code/postgresql/patch/build/../source/src/backend/optimizer/path/uniquekeys.c:
> In function ‘populate_baserel_uniquekeys’:
>
> /code/postgresql/patch/build/../source/src/backend/optimizer/path/uniquekeys.c:797:13:
> warning: ‘expr’ may be used uninitialized in this function
> [-Wmaybe-uninitialized]
>   797 |   else if (!list_member(unique_index->rel->reltarget->exprs, expr))
>       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
I can fix this warning in the next version,  thanks for reporting it.  It
can be
fixed like below or just adjust the if-elseif-else pattern.

--- a/src/backend/optimizer/path/uniquekeys.c
+++ b/src/backend/optimizer/path/uniquekeys.c
@@ -760,6 +760,7 @@ get_exprs_from_uniqueindex(IndexOptInfo *unique_index,
                {
                        /* Index on system column is not supported */
                        Assert(false);
+                       expr = NULL; /* make compiler happy */
                }



> Other than that I wanted to ask what are the plans to proceed with this
> patch? It's been a while since the question was raised in which format
> to keep unique key expressions, and as far as I can see no detailed
> suggestions or patch changes were proposed as a follow up. Obviously I
> would love to see the first two preparation patches committed to avoid
> dependencies between patches, and want to suggest an incremental
> approach with simple format for start (what we have right now) with the
> idea how to extend it in the future to cover more cases.
>

I think the hardest part of this series is commit 2,  it probably needs
lots of
dedicated time to review which would be the hardest part for the reviewers.
I don't have a good suggestion, however.

-- 
Best Regards
Andy Fan

Reply via email to