In the continuing saga of FE/BE protocol revisions, add reporting of
Tom Lane <tgl@sss.pgh.pa.us>
In the continuing saga of FE/BE protocol revisions, add reporting of initial values and runtime changes in selected parameters. This gets rid of the need for an initial 'select pg_client_encoding()' query in libpq, bringing us back to one message transmitted in each direction for a standard connection startup. To allow server version to be sent using the same GUC mechanism that handles other parameters, invent the concept of a never-settable GUC parameter: you can 'show server_version' but it's not settable by any GUC input source. Create 'lc_collate' and 'lc_ctype' never-settable parameters so that people can find out these settings without need for pg_controldata. (These side ideas were all discussed some time ago in pgsql-hackers, but not yet implemented.)
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/protocol.sgml | modified | +12 −5 |
| doc/src/sgml/ref/set.sgml | modified | +11 −19 |
| doc/src/sgml/ref/show.sgml | modified | +66 −7 |
| src/backend/access/transam/xlog.c | modified | +8 −1 |
| src/backend/commands/variable.c | modified | +1 −17 |
| src/backend/utils/init/postinit.c | modified | +10 −1 |
| src/backend/utils/misc/guc.c | modified | +192 −77 |
| src/include/commands/variable.h | modified | +1 −4 |
| src/include/libpq/pqcomm.h | modified | +2 −2 |
| src/include/utils/guc.h | modified | +47 −50 |
| src/interfaces/libpq/fe-connect.c | modified | +8 −281 |
| src/interfaces/libpq/fe-exec.c | modified | +52 −1 |
| src/interfaces/libpq/libpq-int.h | modified | +2 −13 |