From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com> |
Cc: | Andreas Karlsson <andreas(at)proxel(dot)se>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [HACKERS] REINDEX CONCURRENTLY 2.0 |
Date: | 2017-12-21 02:46:27 |
Message-ID: | 20171221024626.ycidqbnwcz25ekry@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Michael Paquier wrote:
> Well, the idea is really to get rid of that as there are already
> facilities of this kind for CREATE TABLE LIKE in the parser and ALTER
> TABLE when rewriting a relation. It is not really attractive to have a
> 3rd method in the backend code to do the same kind of things, for a
> method that is even harder to maintain than the other two.
I dislike the backend code that uses SPI and manufacturing node to
re-creates indexes. IMO we should get rid of it. Let's not call it
"facilities", but rather "grotty hacks".
I think before suggesting to add even more code to perpetuate that idea,
we should think about going in the other direction. I have not tried to
write the code, but it should be possible to have an intermediate
function called by ProcessUtility* which transforms the IndexStmt into
an internal representation, then calls DefineIndex. This way, all this
code that wants to create indexes for backend-internal reasons can
create the internal representation directly then call DefineIndex,
instead of the horrible hacks they use today creating parse nodes by
hand.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2017-12-21 02:50:37 | Re: Reproducible builds: genbki.pl and Gen_fmgrtab.pl |
Previous Message | Craig Ringer | 2017-12-21 02:46:08 | Re: AS OF queries |