| Age | Commit message (Collapse) | Author |
|
If the remote server cannot be connected and query is canceled,
don't show random warning about "Unfinished connection".
Patch by Fazal Majid
|
|
Otherwise it can still hang.
|
|
|
|
Previous check was too broad and left plproxy hanging.
Reported-By: Tarvi Pillessaar
|
|
Refactor some internals to make this possible. Mainly, FunctionCallInfo
is not available when validating, so avoid accessing that if not
required. Rename plproxy_compile() to plproxy_compile_and_cache() and
the previously internal fn_compile() to plproxy_compile(). This matches
their purpose better and allows the validator to call plproxy_compile()
without invoking execution-time dependent code.
Many error test cases have changed because the validator catches errors
when the function is created, not when it is called.
Raise the extension version to 2.5.1 to be able to upgrade from
non-validator installations.
|
|
Some needed declarations have been moved to the new header
htup_details.h.
stringinfo.h needs to be included explicitly now. It should always have
been necessary, but might have come in through other headers.
|
|
|
|
|
|
|
|
Also throw error on unknown proargmode.
Fixes crash reported by Sébastien Lardière.
|
|
Previously, as soon as cancel requests were send,
plproxy re-throwed the error, without waiting for
reaction from backend. Such behaviour creates
2 problems:
- If plproxy backend is closed immediately, the bouncer will
see plproxy close before cancel from backend, thus seeing
mid-tx close, thus dropping the connection.
- If new query comes in to plproxy backend, plproxy itself
will see dirty connection, closing it, thus also causing
close of server connection in bouncer.
In both cases it can cause server connection drop in pooler.
New behaviour of waiting query result should fix it.
|
|
On each call, recheck type relation rowstamp.
If it proves to be noticeable, we can use
syscache callback infrastructure for that,
but it will be much more complex.
|
|
|
|
Otherwise there can be garbage in struct
|
|
|
|
Direct casts hardwire the assumption that node
is always first member of struct.
|
|
|
|
This allows to fall back to old default of 'session_user'.
New default is 'current_user'.
|
|
This allows falling back to defaults when
some value is dropped from config.
|
|
Plus minor cleanups.
|
|
|
|
|
|
|
|
|
|
|
|
- Add aatree.[ch]
- Dont run maintenance if no init is done
- Simplify header deps in Makefile
- Store fake cluster in binary tree
|
|
|
|
|
|
|
|
|
|
|
|
- keepalive_idle
- keepalive_interval
- keepalive_count
|
|
|
|
|
|
|
|
|
|
make NO_SELECT=1
make install
|
|
Old code used FUNC_MAX_ARGS as limit for number of columns,
but composite types can be larger. Use dynamic allocation instead.
Patch by Hans-Jürgen Schönig
|
|
|
|
|
|
|
|
|
|
for it.
That also avoid the signature confict on macos 10.6 which seems to have changed
the signatures from original ones.
|
|
- Register libpq notice handler with PQsetNoticeReceiver
- Extract details from err/notice with PQresultErrorField
and pass to ereport().
- Improve state-machine in another_result().
|
|
are to be split.
|
|
In 8.5:
- <parser/gramparse.h> is tagged as internal header
It also defines now flex/bison symbols that conflict
with plproxy parser.
- <parser/parser.h> describes external API
As the stdstr definition was problematic on older versions anyway,
define it explicitly for those.
|
|
Provide a plproxy foreign data wrapper and a function for
validating cluster definitions. It is still possible to define
clusters using configuration functions, however SQL/MED cluster
definition takes precedence if available.
|
|
It will split incoming array(s) into per-partition arrays.
Roughly based on design here:
http://lists.pgfoundry.org/pipermail/plproxy-users/2008-June/000093.html
Written by Martin Pihlak
|
|
|
|
It allows CONNECT to take function arguments or do function calls:
CONNECT func(..);
CONNECT argname;
CONNECT $argnum;
NB: giving untrusted users ability to specify full connect string creates
security hole. Eg it can real cleartext passwords from .pgpass/pg_service.
If such function cannot be avoided, it's access rights need to be restricted.
Patch by Ian Sollars
|