Hi,
On 2018-09-04 11:45:10 +0200, Georgy Buranov wrote:
> Hi Andres. Thank you very much for your help.
>
> I tried the following solution and I have some problems.
>
> * I have 9.6 postgres and I do not have separate field for rd_pkindex
> * All I have is rd_replidindex field. Usually (when REPLICA IDENTITY
> is NOT FULL), it still contains the primary key
> * But in the case of REPLICA IDENTITY FULL - rd_replidindex is NULL
> and rd_pkindex does not exist
>
> So, is there a way to get the primary key on 9.6 postgres?
You have to to query the syscache yourself, in that case. I know
nothing about what you're doing in your output plugin. In the ones I
wrote there's a side-cache for per-relation output plugin specific data,
do you have something like that? You can probably just crib the code
for the lookup from dblink.c:get_pkey_attnames(). If you have a cache,
itmight be worth caching the results.
Greetings,
Andres Freund