Re: initdb.c::main() too large - Mailing list pgsql-hackers

From Tom Lane
Subject Re: initdb.c::main() too large
Date
Msg-id 310.1354249439@sss.pgh.pa.us
Whole thread Raw
In response to initdb.c::main() too large  (Bruce Momjian <bruce@momjian.us>)
Responses Re: initdb.c::main() too large  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
Bruce Momjian <bruce@momjian.us> writes:
> 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.

No objection to breaking it into multiple functions --- but I do say
it's a lousy idea to put the long_options[] constant at the front of
the file, thousands of lines away from the switch construct that it
has to be in sync with.  We don't do that in any other program AFAIR.
Keep that in the main() function, please.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: initdb.c::main() too large
Next
From: Tatsuo Ishii
Date:
Subject: Re: [PATCH] Patch to fix a crash of psql