On Mon, 2020-08-03 at 19:23 +0300, Stelios Sfakianakis wrote:
> I am trying to  implement a FDW in Postgres for accessing a web api and I 
> would
>  like to keep information like for example the total number of requests 
> submiited.
>  Ideally these data should be kept “per-user” and of course with the proper 
> locking
>  to eliminate race conditions. So the question I have is how to design such a 
> global
>  (but per user and database) state, using the C FDW API of Postgres. I have 
> gone
>  through the API and for example I see various fdw_private fields in the query
>  planning structures and callbacks but these do not seem to be relevant to my 
> requirements.
>  Another possiblity seems to be to use shared memory
>  (https://www.postgresql.org/docs/12/xfunc-c.html#id-1.8.3.13.14) but it is 
> even
>  less clear how to do it.
> 
> So is there any simple way to do implement such shared thread/process safe 
> state?

I would create a table as part of the extension and use SPI to store
the data there.

Yours,
Laurenz Albe



Reply via email to