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

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: initdb.c::main() too large
Дата
Msg-id 20121204042453.GB30893@momjian.us
обсуждение исходный текст
Ответ на Re: initdb.c::main() too large  (Andrew Dunstan <andrew@dunslane.net>)
Список 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@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

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

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: In pg_upgrade, remove 'set -x' from test script.
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: In pg_upgrade, remove 'set -x' from test script.