How to get the name of the current database in C function/extention inside a trigger?

From: alex m <al-gen(at)serendipia(dot)email>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: How to get the name of the current database in C function/extention inside a trigger?
Date: 2020-08-03 05:04:53
Message-ID: 9f9a2549-eb0b-dd72-728f-0baac5a97d60@serendipia.email
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I'm writting a function/extention in C for a trigger. Inside a trigger,
in C, I want to get the name of the current database. However, not via
SPI_exec(), SPI_prepare() and the like, but more directly, in a more
faster way.

I'm aware of "current_database()" but it'll require calling it via
SPI_exec()

I've found this code which is  implementation of 'conninfo' command:

https://github.com/LuberZheng/FAS_Sniffer/blob/84872cb2360ce12219970b828e4377e5d3a91bb8/postgres/postgresql-9.5.4/src/bin/psql/command.c#L343

but it's still unclear how to do the same thing from a C function inside
for a trigger.

How to do it?

P.S.

While SPI_exec(), SPI_prepare() won't work for me, other SPI functions
such SPI_get* will be ok.

Versions: 11 or 12

For the versions 11 or 12

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Paul Förster 2020-08-03 05:29:10 Re: how reliable is pg_rewind?
Previous Message Kyotaro Horiguchi 2020-08-03 04:39:42 Re: 12.3 replicas falling over during WAL redo