> allocated but we forgot to free them. So I included the code to free
> them in the patch.
Yes, that is right.
! /*
! * Pick up only the data_directory if DataDir is not set, which
! * means that the configuration file is read for the first time and
! * PG_AUTOCONF_FILENAME file cannot be read yet. In this case,
! * we shouldn't pick any settings except the data_directory
! * from postgresql.conf because they might be overwritten
! * with the settings in PG_AUTOCONF_FILENAME file which will be
! * read later. OTOH, since it's ensured that data_directory doesn't
! * exist in PG_AUTOCONF_FILENAME file, it will never be overwritten
! * later.
! */
! else
It is bit incovinient to read this part of code, some other places in
same file use comment inside else construct which seems to be
better. one example is as below:
else
{
/*
* ordinary variable, append to list. For multiple items of
* same parameter, retain only which comes later.
*/