1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-19 13:42:17 +03:00
Commit Graph

4007 Commits

Author SHA1 Message Date
Michael Meskes
f180856596 Fixed a few typos in ecpg. Two were in comments, the third made a log output reverse yes and no. 2010-01-29 15:57:01 +00:00
Joe Conway
e3f36838e5 Introduce two new libpq connection functions, PQconnectdbParams and
PQconnectStartParams. These are analogous to PQconnectdb and PQconnectStart
respectively. They differ from the legacy functions in that they accept
two NULL-terminated arrays, keywords and values, rather than conninfo
strings. This avoids the need to build the conninfo string in cases
where it might be inconvenient to do so. Includes documentation.

Also modify psql to utilize PQconnectdbParams rather than PQsetdbLogin.
This allows the new config parameter application_name to be set, which
in turn is displayed in the pg_stat_activity view and included in CSV
log entries. This will also ensure both new functions get regularly
exercised.

Patch by Guillaume Lelarge with review and minor adjustments by
Joe Conway.
2010-01-28 06:28:26 +00:00
Michael Meskes
c651c0eb01 Added test case that was part of Zoltan's patch but apparently wasn't part of my commit. 2010-01-26 10:31:14 +00:00
Michael Meskes
aa6ac35221 Applied patch by Boszormenyi Zoltan <zb@cybertec.at> to add out-of-scope cursor support to native mode. 2010-01-26 09:07:32 +00:00
Michael Meskes
306a4287c3 Make argument const char * as per Takahiro Itagaki's suggestion. 2010-01-22 14:19:27 +00:00
Michael Meskes
5bc75618e4 Applied patch by Boszormenyi Zoltan <zb@cybertec.at> to fix problem in auto-prepare mode if the connection is closed and re-opened and the previously prepared query is issued again. 2010-01-22 14:13:03 +00:00
Robert Haas
b13da41eba Fix unsafe loop test, and declare as_ident as bool rather than int. 2010-01-21 18:43:25 +00:00
Robert Haas
d66679672f Add new escaping functions PQescapeLiteral and PQescapeIdentifier.
PQescapeLiteral is similar to PQescapeStringConn, but it relieves the
caller of the need to know how large the output buffer should be, and
it provides the appropriate quoting (in addition to escaping special
characers within the string).  PQescapeIdentifier provides similar
functionality for escaping identifiers.

Per recent discussion with Tom Lane.
2010-01-21 14:58:53 +00:00
Peter Eisentraut
41a4e45957 Add user-specific .pg_service.conf file
This extends the existing pg_service.conf facility to first look for a
service definition file in the user's home directory.
2010-01-20 21:15:21 +00:00
Michael Meskes
eb730cf556 Added correct error handling in DESCRIBE statement processing by Boszormenyi Zoltan <zb@cybertec.at>. 2010-01-15 13:19:12 +00:00
Michael Meskes
bf69b535c0 Applied patch by Boszormenyi Zoltan <zb@cybertec.at> to add DESCRIBE [OUTPUT] statement to ecpg. 2010-01-15 10:44:39 +00:00
Heikki Linnakangas
40f908bdcd Introduce Streaming Replication.
This includes two new kinds of postmaster processes, walsenders and
walreceiver. Walreceiver is responsible for connecting to the primary server
and streaming WAL to disk, while walsender runs in the primary server and
streams WAL from disk to the client.

Documentation still needs work, but the basics are there. We will probably
pull the replication section to a new chapter later on, as well as the
sections describing file-based replication. But let's do that as a separate
patch, so that it's easier to see what has been added/changed. This patch
also adds a new section to the chapter about FE/BE protocol, documenting the
protocol used by walsender/walreceivxer.

Bump catalog version because of two new functions,
pg_last_xlog_receive_location() and pg_last_xlog_replay_location(), for
monitoring the progress of replication.

Fujii Masao, with additional hacking by me
2010-01-15 09:19:10 +00:00
Michael Meskes
b3627d1de3 Applied Zoltan's patch to make char the default sqlda type.
Given that undefined types are handled as character strings anyway the type
translation function can simply return the correcponding ECPGt_char type.
2010-01-13 09:06:51 +00:00
Michael Meskes
cf4d9c4772 Fix SQL3 type return value.
For non-SQL3 types ecpg used to return -Oid. This will break if there are
enough Oids to fill the namespace. Therefore we play it safe and return 0 if
there is no Oid->SQL3 tyoe mapping available.
2010-01-13 08:41:50 +00:00
Michael Meskes
b81d033130 Removed ecpg Changelog file that was only there for historical reasons and isn't actively used anymore. 2010-01-12 12:41:46 +00:00
Michael Meskes
369494e41f Also update ChangerLog file. 2010-01-08 09:06:05 +00:00
Tom Lane
901be0fad4 Remove all the special-case code for INT64_IS_BUSTED, per decision that
we're not going to support that anymore.

I did keep the 64-bit-CRC-with-32-bit-arithmetic code, since it has a
performance excuse to live.  It's a bit moot since that's all ifdef'd
out, of course.
2010-01-07 04:53:35 +00:00
Michael Meskes
76e313c05f Replaced int64_t with int64 as Andrew suggested. 2010-01-06 15:15:55 +00:00
Michael Meskes
223a9cd33f Remove __FUNCTION__ keyword that is not recognized by som compilers. 2010-01-06 15:10:21 +00:00
Michael Meskes
822697a26e Removed test case using nan as float value because printf's output for nan is
OS specific with some distinguishing between signaling and quiet nans. It's not
really importnat for us here anyway.
2010-01-06 11:59:52 +00:00
Michael Meskes
858dc6dc6f Removed more inttypes.h stuff. 2010-01-06 11:49:43 +00:00
Michael Meskes
faddd3f066 Applied Zoltan's patch to remove hardware dependant offset logging and
superfluous include files.
2010-01-06 09:44:05 +00:00
Michael Meskes
1658f6bf58 And another one 2010-01-05 17:10:23 +00:00
Michael Meskes
ed4295f534 And another one of the same problem. 2010-01-05 17:07:51 +00:00
Michael Meskes
e24e18c609 And then forgot to commit the fixed files. ARGH! 2010-01-05 17:05:49 +00:00
Michael Meskes
76ecbb5782 Ah, should read the file completely. I got so used to git that I almost forgot about the cvs stuff. 2010-01-05 17:04:18 +00:00
Michael Meskes
ab2f0ef7c1 Thrid try. It seems my two checkouts need some cleaning up. 2010-01-05 16:58:37 +00:00
Michael Meskes
5126d680bb Still not correct. 2010-01-05 16:52:15 +00:00
Michael Meskes
bd41870c2a Adjusted CVS headers. 2010-01-05 16:49:46 +00:00
Michael Meskes
6d4a351fcb Applied patch by Boszormenyi Zoltan <zb@cybertec.at> to add sqlda support to
ecpg in both native and compatiblity mode.
2010-01-05 16:38:23 +00:00
Tom Lane
64737e9313 Get rid of the need for manual maintenance of the initial contents of
pg_attribute, by having genbki.pl derive the information from the various
catalog header files.  This greatly simplifies modification of the
"bootstrapped" catalogs.

This patch finally kills genbki.sh and Gen_fmgrtab.sh; we now rely entirely on
Perl scripts for those build steps.  To avoid creating a Perl build dependency
where there was not one before, the output files generated by these scripts
are now treated as distprep targets, ie, they will be built and shipped in
tarballs.  But you will need a reasonably modern Perl (probably at least
5.6) if you want to build from a CVS pull.

The changes to the MSVC build process are untested, and may well break ---
we'll soon find out from the buildfarm.

John Naylor, based on ideas from Robert Haas and others
2010-01-05 01:06:57 +00:00
Bruce Momjian
0239800893 Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
Tom Lane
85d02a6586 Redefine Datum as uintptr_t, instead of unsigned long.
This is more in keeping with modern practice, and is a first step towards
porting to Win64 (which has sizeof(pointer) > sizeof(long)).

Tsutomu Yamada, Magnus Hagander, Tom Lane
2009-12-31 19:41:37 +00:00
Tom Lane
4847d5956c Set errno to zero before invoking SSL_read or SSL_write. It appears that
at least in some Windows versions, these functions are capable of returning
a failure indication without setting errno.  That puts us into an infinite
loop if the previous value happened to be EINTR.  Per report from Brendan
Hill.

Back-patch to 8.2.  We could take it further back, but since this is only
known to be an issue on Windows and we don't support Windows before 8.2,
it does not seem worth the trouble.
2009-12-30 03:45:46 +00:00
Peter Eisentraut
baab7a0427 Translation updates 2009-12-19 20:23:26 +00:00
Alvaro Herrera
1b612dfeb6 Update ecpg regression tests to plpgsql installed by default. 2009-12-19 02:38:51 +00:00
Michael Meskes
36d192ad7d Reverting accidently commited changes. 2009-12-17 07:28:58 +00:00
Michael Meskes
d19669e5f9 Fixed auto-prepare to not try preparing statements that are not preparable. Bug
found and solved by Boszormenyi Zoltan <zb@cybertec.at>, some small adjustments
by me.
2009-12-16 10:15:07 +00:00
Magnus Hagander
abf23ee86d Reject certificates with embedded NULLs in the commonName field. This stops
attacks where an attacker would put <attack>\0<propername> in the field and
trick the validation code that the certificate was for <attack>.

This is a very low risk attack since it reuqires the attacker to trick the
CA into issuing a certificate with an incorrect field, and the common
PostgreSQL deployments are with private CAs, and not external ones. Also,
default mode in 8.4 does not do any name validation, and is thus also not
vulnerable - but the higher security modes are.

Backpatch all the way. Even though versions 8.3.x and before didn't have
certificate name validation support, they still exposed this field for
the user to perform the validation in the application code, and there
is no way to detect this problem through that API.

Security: CVE-2009-4034
2009-12-09 06:37:06 +00:00
Tom Lane
3dfcf8cc15 Instead of sending application_name as a SET command after the connection
is made, include it in the startup-packet options.  This makes it work more
like every other libpq connection option, in particular it now has the same
response to RESET ALL as the rest.  This also saves one network round trip
for new applications using application_name.  The cost is that if the server
is pre-8.5, it'll reject the startup packet altogether, forcing us to retry
the entire connection cycle.  But on balance we shouldn't be optimizing that
case in preference to the behavior with a new server, especially when doing
so creates visible behavioral oddities.  Per discussion.
2009-12-02 04:38:35 +00:00
Peter Eisentraut
22032820f9 Error when a specified connection service is not found, instead of ignoring it 2009-11-29 20:14:53 +00:00
Peter Eisentraut
e527d5010b Remove prefix "ERROR:" from some messages, to make everything consistent 2009-11-29 18:53:44 +00:00
Tom Lane
8217cfbd99 Add support for an application_name parameter, which is displayed in
pg_stat_activity and recorded in log entries.

Dave Page, reviewed by Andres Freund
2009-11-28 23:38:08 +00:00
Michael Meskes
bb28e83636 Remove */ characters from declare cursor statements before putting them into a
comment.
2009-11-27 16:07:22 +00:00
Michael Meskes
d7d5c6857b If no result is given NOTFOUND should be returned. Check for empty result
string too.
2009-11-27 13:32:17 +00:00
Michael Meskes
81a82a13b2 Added script to check if all rule re-definition in ecpg.addons are indeed used
in the build process. If not the build process will stop with an error message.
2009-11-27 10:00:40 +00:00
Michael Meskes
280744d461 Added missing files. 2009-11-26 15:55:57 +00:00
Michael Meskes
c48d48d41f Forgot to add dynamic cursors to Changelog. 2009-11-26 15:40:43 +00:00
Michael Meskes
fb9d62805d Synced addon rules after some renamings. 2009-11-26 15:39:26 +00:00
Michael Meskes
a160c421a5 Added dynamic cursor names to ecpg. Almost the whole patch was done by
Boszormenyi Zoltan, with only a minor tweak or two from me.
2009-11-26 15:06:47 +00:00