Re: initdb.c::main() too large
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Bruce Momjian <bruce@momjian.us>
Cc: PostgreSQL-development <pgsql-hackers@postgreSQL.org>
Date: 2012-11-30T23:06:39Z
Lists: pgsql-hackers
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.
cheers
andrew