From: | Charles Cui <charles(dot)cui1984(at)gmail(dot)com> |
---|---|
To: | Aleksander Alekseev <a(dot)alekseev(at)postgrespro(dot)ru> |
Cc: | Anastasia Lubennikova <a(dot)lubennikova(at)postgrespro(dot)ru>, Andrey Borodin <x4mmm(at)yandex-team(dot)ru>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [GSoC] working status |
Date: | 2018-07-09 14:54:23 |
Message-ID: | CA+SXE9s-B88u5wrXvySdsApF=+KXE+3mapzrYT1aR7P7JvSAoA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
yes, my CI test version is 9.4. will make it work on 10 by following your
advices. Thanks.
On Mon, Jul 9, 2018, 5:22 AM Aleksander Alekseeev <a(dot)alekseev(at)postgrespro(dot)ru>
wrote:
> Hello Charles,
>
> > > ```
> > > pg_thrift.c:1313:26: error: too few arguments to function
> > > ‘array_create_iterator’ ArrayIterator iter =
> > > array_create_iterator(parray, 0); ^~~~~~~~~~~~~~~~~~~~~
> > > In file included from pg_thrift.c:5:
> > > .../postgresql-install/include/server/utils/array.h:418:22:
> > > note: declared here extern ArrayIterator
> > > array_create_iterator(ArrayType *arr, int slice_ndim, ArrayMetaState
> > > *mstate); ^~~~~~~~~~~~~~~~~~~~~
> > > ```
> >
> > I should probably explain this in a little more detail.
> >
> > This was an attempt to build pg_thrift with PostgreSQL 10 (compiled
> > from REL_10_STABLE branch). Same issue with upcoming 11 version. I
> > believe you are testing the extension on some 9.x branch and don't
> > see these errors. Corresponding change in the API was done quite a
> > long time ago, in 2015 (see commit 13dbc7a8).
> >
> > To solve this issue you can either use #ifdef's and maintain two
> > versions of the code for different versions of PostgreSQL or just
> > support only 10+. Both options are fine, at least by me personally.
>
> And I should probably explain the "use #ifdef's" part. You can use
> PG_VERSION_NUM macro to determine PostgreSQL version in this fashion:
>
> ```
> /* In version 11 these macros have been changed */
> #if PG_VERSION_NUM < 110000
> #define PG_GETARG_JSONB_P(v) PG_GETARG_JSONB(v)
> #define PG_RETURN_JSONB_P(v) PG_RETURN_JSONB(v)
> #endif
> ```
>
> In your case you can declare a wrapper for the array_create_iterator
> procedure to make it work on both 9.x and 10.
>
> --
> Best regards,
> Aleksander Alekseev
>
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-07-09 15:16:23 | Re: pgsql: Add wait event for fsync of WAL segments |
Previous Message | David Fetter | 2018-07-09 14:52:11 | Re: Postgres 11 release notes |