Re: initdb.c::main() too large

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: initdb.c::main() too large
Date: 2012-12-04 04:24:53
Message-ID: 20121204042453.GB30893@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Nov 30, 2012 at 06:06:39PM -0500, Andrew Dunstan wrote:
>
> On 11/30/2012 04:45 PM, Bruce Momjian wrote:
> >On Thu, Nov 29, 2012 at 11:12:23PM -0500, Bruce Momjian wrote:
> >>In looking to add an fsync-only option to initdb, I found its main()
> >>function to be 743 lines long, and very hard to understand.
> >>
> >>The attached patch moves much of that code into separate functions,
> >>which will make initdb.c easier to understand, and easier to add an
> >>fsync-only option. The original initdb.c author, Andrew Dunstan, has
> >>accepted the restructuring, in principle.
> >Applied.
> >
>
> Sorry I didn't have time to review this before it was applied.
>
> A few minor nitpicks:
>
> * process() is a fairly uninformative function name, not sure what I'd
> call it, but something more descriptive.
> * the setup_signals_and_umask() call and possibly the final message
> section of process() would be better placed back in main() IMNSHO.
> * the large statements for setting up the datadir and the xlogdir
> should be factored out of process() into their own functions, I
> think. That would make it much more readable.

Done with the attached patch. I kept the signals in their own function,
but moved the umask() call out --- I was not happy mixing those either.

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +

Attachment Content-Type Size
initdb.diff text/x-diff 4.3 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2012-12-04 04:26:14 Re: In pg_upgrade, remove 'set -x' from test script.
Previous Message Peter Eisentraut 2012-12-04 04:24:08 Re: In pg_upgrade, remove 'set -x' from test script.