| Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
As of 9.1, there is no clean way to get plpgsql into db
that works across versions.
|
|
- keepalive_idle
- keepalive_interval
- keepalive_count
|
|
|
|
|
|
DROP IF NOT EXIST can randomly show notice.
|
|
- 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.
|
|
- plpgsql is installed by default on 8.5+
- EUC_JP/UTF8 problems with 8.3+
- plproxy.sql output is different in 8.4+
- bytea output is different in 8.5+
|
|
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
|
|
Incoming NULL value could cause crash in function containing SELECT
with different argument order. Due to thinko, NULL check was done
with query arg index, instead of function arg index.
Reported by João Matos
|
|
Currently PL/Proxy fails to parse following query:
select (ret_numtuple(1)).num, (ret_numtuple(1)).name;
The fix is to add "." to the SQLSYM rule in the lexer. This should be OK
because an identifier chain will always be longer than a single dot, so flex
will prefer it over parsing the single dot.
Patch by Peter Eisentraut
|
|
Currently PL/Proxy fails to parse following statement:
select (0*0);
As only SELECT statement is affected, fix it by explicitly checking
for that case.
In long-term, the function-call detection should be moved to parser,
thus getting rid of the hack.
Patch by Peter Eisentraut
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Now PL/Proxy allows function defined as RETURNS RECORD without
OUT parameters. Such functions need actual result column
types specified with AS clause:
SELECT * FROM func() AS (col1 type1, col2 type2);
PL/Proxy needs to detect the actual type on each call and pass
it to remote database. Current implementation caches last
record type, drops it if type changes.
Original patch by Lei Yonghua, applied with some modifications.
|
|
|
|
|
|
It did not work in 2.0.2 and although it works now,
it could not work in live env as the SET cannot be combined
with main request, thus likely it will be executed on different
backend.
|
|
|
|
|
|
|
|
|
|
|