]> granicus.if.org Git - postgresql/commit
Add a "void *" passthrough pointer for psqlscan.l's callback functions.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 13 Mar 2017 21:14:46 +0000 (17:14 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 13 Mar 2017 21:14:46 +0000 (17:14 -0400)
commit895e36bb3f36fdb7ec8e573be1a20d104fac820b
tree0174e31cf8b59bc4ae31f314f323642bcc06bda7
parent1c7a66a8e9378aeb092d7ed26890134d17fdd691
Add a "void *" passthrough pointer for psqlscan.l's callback functions.

The immediate motivation for this is to provide clean infrastructure
for the proposed \if...\endif patch for psql; but it seems like a good
thing to have even if that patch doesn't get in.  Previously the callback
functions could only make use of application-global state, which is a
pretty severe handicap.

For the moment, the pointer is only passed through to the get_variable
callback function.  I considered also passing it to the write_error
callback, but for now let's not.  Neither psql nor pgbench has a use
for that, and in the case of psql we'd have to invent a separate wrapper
function because we would certainly not want to change the signature of
psql_error().

Discussion: https://postgr.es/m/10108.1489418309@sss.pgh.pa.us
src/bin/psql/common.c
src/bin/psql/common.h
src/bin/psql/psqlscanslash.l
src/fe_utils/psqlscan.l
src/include/fe_utils/psqlscan.h
src/include/fe_utils/psqlscan_int.h