Commit Graph

3042 Commits

Author SHA1 Message Date
d4fa0b4e0a Rename a libpq NOT_USED SSL function to
verify_peer_name_matches_certificate(), clarify some of the function's
variables and logic, and update a comment.  This should make SSL
improvements easier in the future.
2008-02-16 21:03:30 +00:00
e67867b26c Allow AS to be omitted when specifying an output column name in SELECT
(or RETURNING), but only when the output name is not any SQL keyword.
This seems as close as we can get to the standard's syntax without a
great deal of thrashing.  Original patch by Hiroshi Saito, amended by me.
2008-02-15 22:17:06 +00:00
efac2796e6 Changed the way symbols are defined in C in INFORMIX mode. 2008-02-15 11:20:21 +00:00
423abf4d6a - EXECUTE can return NOT FOUND so it should be checked here too.
- Changed regression test accordingly.
2008-02-14 14:54:48 +00:00
a3a648ecc9 Sorry, accidently committed a patch I'm working on. Reverting it.
The only correct change was:
- Added SQLSTATE macro closing bug #3961.
2008-02-14 12:27:26 +00:00
78772dc018 *** empty log message *** 2008-02-14 12:22:36 +00:00
87cc5af75e Bump minor library version numbers for 8.4. 2008-02-13 18:14:46 +00:00
cf9e156156 Stamp HEAD as 8.4devel. 2008-02-13 03:40:38 +00:00
fa0dc92fd8 - Fixed segfault in ecpg when using an array element.
- Free all memory in auto-prepare mode.
2008-02-07 11:09:13 +00:00
cf82aee7ea Fix pg_GSS_error to use conn->errorMessage more sanely, ie, actually
work with the PQExpBuffer code instead of fighting it.  This avoids an
unnecessary limit on message length and fixes the latent bug that
errorMessage.len wasn't getting set.
2008-01-31 18:58:30 +00:00
3c9ae7300d Translation updates 2008-01-31 18:04:52 +00:00
6dfa40d69f Translation updates 2008-01-30 11:05:41 +00:00
5037ed834d Fix up closePGconn() so that PQreset() will work on GSSAPI/SSPI connections;
the patch for those features put its cleanup code into freePGconn() which is
really the wrong place.  Remove redundant code from freePGconn() and add
comments in hopes of preventing similar mistakes in future.
Noticed while trying (futilely) to reproduce bug #3902.
2008-01-29 02:06:30 +00:00
fad2b99523 Arrange to ignore SIGPIPE during SSL_read() and SSL_shutdown(), as these
are known to write on the socket sometimes and thus we are vulnerable to
being killed by the signal if the server happens to go away unexpectedly.
Noticed while trying (futilely) to reproduce bug #3902.

This bug has been there all along, but since the situation is usually
only of interest to developers, I chose not to back-patch the changes.
2008-01-29 02:03:39 +00:00
70066eb1a1 Insert into getCopyDataMessage() the same logic that already existed in the
main code path for enlarging libpq's input buffer in one swoop when needing to
read a long data message.  Without this, the code will double the buffer size,
read more data, notice it still hasn't got the whole message, and repeat till
it finally has a large enough buffer.  Which wastes a lot of data-moving
effort and also memory (since malloc probably can't do anything very useful
with the freed-up smaller buffers).  Not sure why this wasn't there already;
certainly the COPY data path is a place where we're quite likely to see long
data messages.  I'm not backpatching though, since this is just a marginal
performance issue rather than a real bug.
2008-01-17 21:21:50 +00:00
0153c4c466 Be less wishy-washy in the documentation and comments about whether a
ParameterStatus message can be sent during COPY OUT: it's definitely
possible, since COPY from a SELECT subquery can trigger any user-defined
function.
2008-01-15 22:18:20 +00:00
dbdc2e52a0 Re-enabled variables in fetch/move command. 2008-01-15 10:31:47 +00:00
5c7671425f Fix an ancient oversight in libpq's handling of V3-protocol COPY OUT mode:
we need to be able to swallow NOTICE messages, and potentially also
ParameterStatus messages (although the latter would be a bit weird),
without exiting COPY OUT state.  Fix it, and adjust the protocol documentation
to emphasize the need for this.  Per off-list report from Alexander Galler.
2008-01-14 18:46:17 +00:00
1460c82151 Set valid return values even in case of an error to prevent segfaults. 2008-01-14 09:43:42 +00:00
149db6b6b7 Changed prototype for ECPGdo because some compilers don't like int/enum aliasing in there. 2008-01-13 11:53:16 +00:00
da758c266c Fixed lexer to correctly parse C quotes. 2008-01-11 15:19:16 +00:00
21a00dc6fd Generate and include manifest in standalone libpq build on Windows.
Hiroshi Saito
2008-01-10 16:03:00 +00:00
867ff0727f informix.c was violating the coding rule about not including any
system headers before c.h.  Per report from J6M.
2008-01-08 01:14:52 +00:00
ce9baa06f0 Fix some missed copyright updates. 2008-01-01 20:31:21 +00:00
9098ab9e32 Update copyrights in source tree to 2008. 2008-01-01 19:46:01 +00:00
332bed8c6b Sorry, hit the wrong button with my last commit. Here's the correct changelog:
Applied patch send by ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp> to fix bug in connect statement if user name is a variable.
Also fixed test case that didn't detect this.
2007-12-28 11:30:54 +00:00
2f86ab7733 *** empty log message *** 2007-12-28 11:25:21 +00:00
51a5921dcc Fixed a few minor glitches pointed out by splint. 2007-12-21 14:33:20 +00:00
3f7f9f594b libpq needs pgsleep on win32 because of the changes to port/open.c. 2007-12-21 09:03:31 +00:00
4f9bf7fc5a Fix up the PQconnectionUsedPassword mess: create a separate
PQconnectionNeedsPassword function that tells the right thing for whether to
prompt for a password, and improve PQconnectionUsedPassword so that it checks
whether the password used by the connection was actually supplied as a
connection argument, instead of coming from environment or a password file.
Per bug report from Mark Cave-Ayland and subsequent discussion.
2007-12-09 19:01:40 +00:00
024014a448 Don't send an empty SSPI negotiation packet at the end of the negotiation.
Fixes bug #3750
2007-12-04 13:02:53 +00:00
7c43106db2 Add win32error.c to libpq, needed to resolve _dosmaperr. 2007-11-30 16:21:19 +00:00
42a0c88ead Translation updates 2007-11-29 08:50:36 +00:00
d65b42b85b Fix build of libpq for Borland CC. 2007-11-21 23:03:44 +00:00
f6e8730d11 Re-run pgindent with updated list of typedefs. (Updated README should
avoid this problem in the future.)
2007-11-15 22:25:18 +00:00
fdf5a5efb7 pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
e9d7bd2650 Fixed two parser bugs. 2007-11-06 08:32:08 +00:00
bcb3852c33 Fix deprecated-by-C-spec usage: storage class should come before const
decoration.  Zdenek Kotala
2007-11-05 20:57:24 +00:00
8a8bcb447a Translation updates 2007-10-27 00:13:43 +00:00
462227dc00 Avoid having backend-only code compiled into ecpg. Per Zdenek Kotala 2007-10-26 14:17:53 +00:00
8468146b03 Fix the inadvertent libpq ABI breakage discovered by Martin Pitt: the
renumbering of encoding IDs done between 8.2 and 8.3 turns out to break 8.2
initdb and psql if they are run with an 8.3beta1 libpq.so.  For the moment
we can rearrange the order of enum pg_enc to keep the same number for
everything except PG_JOHAB, which isn't a problem since there are no direct
references to it in the 8.2 programs anyway.  (This does force initdb
unfortunately.)

Going forward, we want to fix things so that encoding IDs can be changed
without an ABI break, and this commit includes the changes needed to allow
libpq's encoding IDs to be treated as fully independent of the backend's.
The main issue is that libpq clients should not include pg_wchar.h or
otherwise assume they know the specific values of libpq's encoding IDs,
since they might encounter version skew between pg_wchar.h and the libpq.so
they are using.  To fix, have libpq officially export functions needed for
encoding name<=>ID conversion and validity checking; it was doing this
anyway unofficially.

It's still the case that we can't renumber backend encoding IDs until the
next bump in libpq's major version number, since doing so will break the
8.2-era client programs.  However the code is now prepared to avoid this
type of problem in future.

Note that initdb is no longer a libpq client: we just pull in the two
source files we need directly.  The patch also fixes a few places that
were being sloppy about checking for an unrecognized encoding name.
2007-10-13 20:18:42 +00:00
ea82ad6aff Synced parser and keyword list. 2007-10-10 06:33:17 +00:00
20c38514b4 Don't try to free pgpassfile since it's a stack variable.
Martin Pitt
2007-10-09 15:03:27 +00:00
eefd10c66c Fix distprep and maintainer-clean targets so that ecpg's .def files are
made and removed at the correct times.
2007-10-05 01:51:40 +00:00
b8f41d508c Add .cvsignore files to suppress CVS gripes about ecpg .def files. 2007-10-05 01:35:55 +00:00
8dfca24b6b Results from buildfarm show that ecpglib was depending on pg_strcasecmp,
which evidently it got as an unofficial export from pgtypeslib.
2007-10-04 20:54:08 +00:00
87dfa0d9ae Stamp 8.3beta1, except in configure.in/configure. 2007-10-04 19:12:04 +00:00
c86ce06964 DLL_DEFFILE should be defined when PORTNAME is win32, not when it isn't,
per the example of libpq/Makefile.
2007-10-04 18:32:07 +00:00
746593efe6 Replaced tabs by white spaces 2007-10-04 17:49:31 +00:00
085ffb24dc Removed newline at end of exports files. 2007-10-04 16:29:33 +00:00