On Thu, Nov 25, 2021 at 10:17 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
> Thanks for the review and many valuable comments, I have fixed all of
> them except this comment (/* If we got a cancel signal during the copy
> of the data, quit */) because this looks fine to me. 0007, I have
> dropped from the patchset for now. I have also included fixes for
> comments given by John.
>
Any progress/results yet on testing against a large database (as
suggested by John Naylor) and multiple tablespaces?
Thanks for the patch updates.
I have some additional minor comments:
0002
(1) Tidy patch comment
I suggest minor tidying of the patch comment, as follows:
Support new interfaces in relmapper, 1) Support copying the
relmap file from one database path to another database path.
2) Like RelationMapOidToFilenode, provide another interface
which does the same but, instead of getting it for the database
we are connected to, it will get it for the input database
path.
These interfaces are required for the next patch, for supporting
the WAL-logged created database.
0003
src/include/commands/tablecmds.h
(1) typedef void (*copy_relation_storage) ...
The new typename "copy_relation_storage" needs to be added to
src/tools/pgindent/typedefs.list
0006
src/backend/commands/dbcommands.c
(1) CreateDirAndVersionFile
After writing to the file, you should probably pfree(buf.data), right?
Actually, I don't think StringInfo (dynamic string allocation) is
needed here, since the version string is so short, so why not just use
a local "char buf[16]" buffer and snprintf() the
PG_MAJORVERSION+newline into that?
Also (as mentioned in my first review) shouldn't the "O_TRUNC" flag be
additionally specified in the case when OpenTransientFile() is tried
for a 2nd time because of errno==EEXIST on the 1st attempt? (otherwise
if the existing file did contain something you'd end up writing after
the existing data in the file).
src/backend/commands/dbcommands.c
(2) typedef struct CreateDBRelInfo ... CreateDBRelInfo
The new typename "CreateDBRelInfo" needs to be added to
src/tools/pgindent/typedefs.list
src/bin/pg_rewind/parsexlog.c
(3) Include additional header file
It seems that the following additional header file is not needed to
compile the source file:
+#include "utils/relmapper.h"
Regards,
Greg Nancarrow
Fujitsu Australia