Re: pgsql: Move pg_lzcompress.c to src/common.

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: pgsql: Move pg_lzcompress.c to src/common.
Дата
Msg-id CAB7nPqSuMZRMf8fFAo1ZahRXrSTSR=w_uEPTV0kOsa20jUx+oQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: pgsql: Move pg_lzcompress.c to src/common.  (Andres Freund <andres@2ndquadrant.com>)
Ответы Re: pgsql: Move pg_lzcompress.c to src/common.  (Andres Freund <andres@2ndquadrant.com>)
Список pgsql-committers
On Thu, Dec 25, 2014 at 10:43 PM, Andres Freund <andres@2ndquadrant.com> wrote:
> On 2014-12-25 22:39:58 +0900, Fujii Masao wrote:
>> On Thu, Dec 25, 2014 at 8:47 PM, Fujii Masao <fujii@postgresql.org> wrote:
>> > Move pg_lzcompress.c to src/common.
>> >
>> > Exposing compression and decompression APIs of pglz makes possible its
>> > use by extensions and contrib modules. pglz_decompress contained a call
>> > to elog to emit an error message in case of corrupted data. This function
>> > is changed to return a status code to let its callers return an error instead.
>> >
>> > This commit is required for upcoming WAL compression feature so that
>> > the WAL reader facility can decompress the WAL data by using pglz_decompress.
>>
>> Hmm... the buildfarm member prairiedog doesn't like this change. Because
>> pg_lzcompress.c uses the macros (like VARSIZE) for varlena datatypes which
>> are defined in postgres.h which client-side should not include. ISTM that
>> pg_lzcompress.c should be changed to be "varlena-free", in order to push it
>> in src/common.
>
> Temporarily this can be solved by including postgres.h the way
> e.g. pg_resetxlog does:
>
> /*
>  * We have to use postgres.h not postgres_fe.h here, because there's so much
>  * backend-only stuff in the XLOG include files we need.  But we need a
>  * frontend-ish environment otherwise.  Hence this ugly hack.
>  */
> #define FRONTEND 1
>
> #include "postgres.h"
Urgh.. Would that mean keeping a local copy of SET_VARSIZE_4B_C and
VARSIZE_4B if this hack is not used? Looking at the git history, I am
seeing similar things in 2008 where pg_crc stuff was moved to src/port
(5c9c08d).
--
Michael


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

Предыдущее
От: Fujii Masao
Дата:
Сообщение: pgsql: Remove duplicate include of slot.h.
Следующее
От: Andres Freund
Дата:
Сообщение: Re: pgsql: Move pg_lzcompress.c to src/common.