Thread: Transaction-specific global variable
hstore greatly simplifies creating triggers for logging table changes, which is great. However, when creating a log record, I would like to include information about the party who made this change. We generally do not allow direct database access for application code, so the PostgreSQL user does not provide sufficient information on its own. Instead, I'd like to create a transaction-specific variable which stores context information to be included in the log table. I suppose I could create a stored procedures in C which provides this functionality, but I wonder if there is already something similar I could reuse. For instance, I could reuse the application_name configuration variable, but this seems a bit gross. (If you could recommend logging functionality I could learn from, that would be welcome, too.) -- Florian Weimer <fweimer@bfk.de> BFK edv-consulting GmbH http://www.bfk.de/ Kriegsstraße 100 tel: +49-721-96201-1 D-76133 Karlsruhe fax: +49-721-96201-99
Florian Weimer <fweimer@bfk.de> writes: > hstore greatly simplifies creating triggers for logging table changes, > which is great. However, when creating a log record, I would like to > include information about the party who made this change. We > generally do not allow direct database access for application code, so > the PostgreSQL user does not provide sufficient information on its > own. Instead, I'd like to create a transaction-specific variable > which stores context information to be included in the log table. I > suppose I could create a stored procedures in C which provides this > functionality, but I wonder if there is already something similar I > could reuse. For instance, I could reuse the application_name > configuration variable, but this seems a bit gross. You could abuse the custom-GUC-variable mechanism: just set custom_variable_classes and then define some variable that doesn't actually have any underlying loadable module. regards, tom lane