Thread: cleanup & refactoring on reindexdb.c

cleanup & refactoring on reindexdb.c

From
Julien Rouhaud
Date:
Hi,

As discussed in
https://www.postgresql.org/message-id/CAOBaU_Yo61RwNO3cW6WVYWwH7EYMPuexhKqufb2nFGOdunbcHw@mail.gmail.com,
current coding in reindexdb.c is error prone, and
reindex_system_catalogs() is also not really required.

I attach two patches to fix both (it could be squashed in a single
commit as both are straightforward), for upcoming v13.

Attachment

Re: cleanup & refactoring on reindexdb.c

From
Michael Paquier
Date:
On Sun, May 12, 2019 at 11:16:28AM +0200, Julien Rouhaud wrote:
> I attach two patches to fix both (it could be squashed in a single
> commit as both are straightforward), for upcoming v13.

Squashing both patches together makes the most sense in my opinion as
the same areas are reworked.  I can notice that you have applied
pgindent, but the indentation got a bit messed up because the new enum
ReindexType is missing from typedefs.list.

I have reworked a bit your patch as per the attached, tweaking a
couple of places like reordering the elements in ReindexType,
reviewing the indentation, etc.  At the end I can see more reasons to
use multiple switch/case points as if we add more options in the
future then we have more code paths to take care of.  These would
unlikely get forgotten, but there is no point to take this risk
either, and that would simplify future patches.  It is also possible
to group some types together when assigning the object name similarly
to what's on HEAD.
--
Michael

Attachment

Re: cleanup & refactoring on reindexdb.c

From
Julien Rouhaud
Date:
On Mon, May 13, 2019 at 5:09 AM Michael Paquier <michael@paquier.xyz> wrote:
>
> On Sun, May 12, 2019 at 11:16:28AM +0200, Julien Rouhaud wrote:
> > I attach two patches to fix both (it could be squashed in a single
> > commit as both are straightforward), for upcoming v13.
>
> Squashing both patches together makes the most sense in my opinion as
> the same areas are reworked.  I can notice that you have applied
> pgindent, but the indentation got a bit messed up because the new enum
> ReindexType is missing from typedefs.list.
>
> I have reworked a bit your patch as per the attached, tweaking a
> couple of places like reordering the elements in ReindexType,
> reviewing the indentation, etc.  At the end I can see more reasons to
> use multiple switch/case points as if we add more options in the
> future then we have more code paths to take care of.  These would
> unlikely get forgotten, but there is no point to take this risk
> either, and that would simplify future patches.  It is also possible
> to group some types together when assigning the object name similarly
> to what's on HEAD.

Thanks!  I'm fine with the changes.

The patch does not apply anymore, so here's a rebased version.

Attachment

Re: cleanup & refactoring on reindexdb.c

From
Michael Paquier
Date:
On Fri, Jun 28, 2019 at 09:25:00AM +0200, Julien Rouhaud wrote:
> The patch does not apply anymore, so here's a rebased version.

Thanks for the rebase (and the reminder..).  I'll look at that once
v13 opens for business.
--
Michael

Attachment

Re: cleanup & refactoring on reindexdb.c

From
Michael Paquier
Date:
On Sat, Jun 29, 2019 at 11:24:49AM +0900, Michael Paquier wrote:
> Thanks for the rebase (and the reminder..).  I'll look at that once
> v13 opens for business.

And applied.
--
Michael

Attachment

Re: cleanup & refactoring on reindexdb.c

From
Julien Rouhaud
Date:
On Tue, Jul 2, 2019 at 4:44 AM Michael Paquier <michael@paquier.xyz> wrote:
>
> On Sat, Jun 29, 2019 at 11:24:49AM +0900, Michael Paquier wrote:
> > Thanks for the rebase (and the reminder..).  I'll look at that once
> > v13 opens for business.
>
> And applied.

Thanks!