Re: Pluggable Storage - Andres's take
От | Amit Khandekar |
---|---|
Тема | Re: Pluggable Storage - Andres's take |
Дата | |
Msg-id | CAJ3gD9esXeRL-OYix13xvC=JCprxrrN+p2smhRrqQ5t6k9wZSg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Pluggable Storage - Andres's take (Dmitry Dolgov <9erthalion6@gmail.com>) |
Ответы |
Re: Pluggable Storage - Andres's take
|
Список | pgsql-hackers |
Thanks for the patch updates. A few comments so far from me : +static void _selectTableAccessMethod(ArchiveHandle *AH, const char *tablespace); tablespace => tableam +_selectTableAccessMethod(ArchiveHandle *AH, const char *tableam) +{ + PQExpBuffer cmd = createPQExpBuffer(); createPQExpBuffer() should be moved after the below statement, so that it does not leak memory : if (have && strcmp(want, have) == 0) return; char *tableam; /* table access method, onlyt for TABLE tags */ Indentation is a bit misaligned. onlyt=> only @@ -2696,6 +2701,7 @@ ReadToc(ArchiveHandle *AH) te->tablespace = ReadStr(AH); te->owner = ReadStr(AH); + te->tableam = ReadStr(AH); Above, I am not sure about the this, but possibly we may require to have archive-version check like how it is done for tablespace : if (AH->version >= K_VERS_1_10) te->tablespace = ReadStr(AH); So how about bumping up the archive version and doing these checks ? Otherwise, if we run pg_restore using old version, we may read some junk into te->tableam, or possibly crash. As I said, I am not sure about this due to lack of clear understanding of archive versioning, but let me know if you indeed find this issue to be true.
В списке pgsql-hackers по дате отправления: