- Move most of the I/O in both libpq and the backend to a set
Marc G. Fournier <scrappy@hub.org>
- Move most of the I/O in both libpq and the backend to a set
of common routines in pqcomprim.c (pq communication primitives).
Not all adapted to it yet, but it's a start.
- Rewritten some of those routines, to write/read bigger chunks of
data, precomputing stuff in buffers instead of sending out byte
by byte.
- As a consequence, I need to know the endianness of the machine.
Currently I rely on getting it from machine/endian.h, but this
may not be available everywhere? (Who the hell thought it was
a good idea to pass integers to the backend the other way around
than the normal network byte order? *argl*)
- Libpq looks in the environment for magic variables, and upon
establishing a connection to the backend, sends it queries
of the form "SET var_name TO 'var_value'". This needs a change
in the backend parser (Mr. Parser, are you there? :)
- Currently it looks for two Env-Vars, namely PG_DATEFORMAT
and PG_FLOATFORMAT. What else makes sense? PG_TIMEFORMAT?
PG_TIMEZONE?
From: "Martin J. Laubach" <mjl@wwx.vip.at>
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/libpq/Makefile | modified | +2 −2 |
| src/backend/libpq/pqcomm.c | modified | +78 −63 |
| src/backend/libpq/pqcomprim.c | modified | +158 −0 |
| src/backend/utils/init/globals.c | modified | +4 −1 |
| src/include/miscadmin.h | modified | +4 −1 |
| src/interfaces/libpq/fe-connect.c | modified | +29 −1 |