From: | Tender Wang <tndrwang(at)gmail(dot)com> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz> |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org, Alexander Lakhin <exclusion(at)gmail(dot)com>, jian he <jian(dot)universality(at)gmail(dot)com> |
Subject: | Re: BUG #18314: PARALLEL UNSAFE function does not prevent parallel index build |
Date: | 2024-03-06 04:30:30 |
Message-ID: | CAHewXN=UaAaNn9ruHDH3Os8kxLVmtWqbssnf=dZN_s9=evHUFA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Michael Paquier <michael(at)paquier(dot)xyz> 于2024年3月6日周三 06:45写道:
> On Tue, Mar 05, 2024 at 09:22:08PM +0800, jian he wrote:
> > in RelationGetIndexClause to, I think you can use the following to
> > save a SearchSysCache1 cycle?
> > if (relation->rd_indextuple == NULL ||
> > heap_attisnull(relation->rd_indextuple, Anum_pg_index_indexprs, NULL))
> > return NIL;
> >
> > or
> > if (relation->rd_indextuple == NULL ||
> > heap_attisnull(relation->rd_indextuple, Anum_pg_index_indpred, NULL))
> > return NIL;
>
> Don't think so. The point is to not rely on the relcache at all to
> retrieve this information.
>
> > main question would be why not two functions,
> > like RelationGetIndexRawExpr(Relation relation),
> > RelationGetIndexRawPred(Relation relation)
>
> This comes down to if it is clean to have references to the catalog
> pg_index in the planner, which is not the case yet so my take is that
> two functions is much cleaner even if both return a List.
>
> Anyway, why do you insist in putting the new functions in relcache.c?
> I would suggest to move that to lsyscache.c instead, close to
> get_index_column_opclass where there are routines for the syscache of
> pg_index. It would be possible to reuse that in the reindex code, for
> example.
>
Make sense.
Please review attached v4 patch.
>
> The patch should add a comment in in plan_create_index_workers()
> explaining why we care about raw expressions and indexes rather than
> the relcache information.
>
Added
--
> Michael
>
--
Tender Wang
OpenPie: https://en.openpie.com/
Attachment | Content-Type | Size |
---|---|---|
v4-0001-Fix-CREATE-INDEX-failed-due-to-parallel-unsafe-fu.patch | application/octet-stream | 7.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Changqing Li | 2024-03-06 08:51:41 | A build failure since only include header "postgresql/server/port.h" |
Previous Message | Andrei Lepikhov | 2024-03-06 03:37:11 | Re: "type with xxxx does not exist" when doing ExecMemoize() |