summaryrefslogtreecommitdiff
path: root/src/interfaces
AgeCommit message (Collapse)Author
2011-03-04In initialize_SSL, don't fail unnecessarily when home dir is unavailable.Tom Lane
Instead, just act as though the certificate file(s) are not present. There is only one case where this need be a hard failure condition: when sslmode is verify-ca or verify-full, not having a root cert file is an error. Change the logic so that we complain only in that case, and otherwise fall through cleanly. This is how it used to behave pre-9.0, but my patch 4ed4b6c54e5fab24ab2624d80e26f7546edc88ad of 2010-05-26 broke the case. Per report from Christian Kastner.
2011-02-15Add CheckTableNotInUse calls in DROP TABLE and DROP INDEX.Tom Lane
Recent releases had a check on rel->rd_refcnt in heap_drop_with_catalog, but failed to cover the possibility of pending trigger events at DROP time. (Before 8.4 we didn't even check the refcnt.) When the trigger events were eventually fired, you'd get "could not open relation with OID nnn" errors, as in recent report from strk. Better to throw a suitable error when the DROP is attempted. Also add a similar check in DROP INDEX. Back-patch to all supported branches.
2011-01-27Tag 9.0.3REL9_0_3Marc G. Fournier
2011-01-08In ecpg's parser removed a fixed length limit for constants defining an ↵Michael Meskes
array dimension.
2010-12-24Allow vpath builds and regression tests to succeed on Mingw. Backpatch to ↵Andrew Dunstan
release 8.4 - earlier releases would require more changes and it's not worth the trouble.
2010-12-13Tag 9.0.2.REL9_0_2Marc G. Fournier
2010-12-13Translation updates for release 9.0.2Peter Eisentraut
2010-10-20Fix ecpg test building process to not generate *.dSYM junk on Macs.Tom Lane
The trick is to not try to build executables directly from .c files, but to always build the intermediate .o files. For obscure reasons, Darwin's version of gcc will leave debug cruft behind in the first case but not the second. Per complaint from Robert Haas.
2010-10-14Applied patch by Itagaki Takahiro to fix incorrect status calculation inMichael Meskes
ecpglib. Instead of parsing the statement just as ask the database server.
2010-10-01Tag 9.0.1Marc G. Fournier
2010-09-24Still more .gitignore cleanup.Tom Lane
Fix overly-enthusiastic ignores, as identified by git ls-files -i --exclude-standard
2010-09-22More fixes for libpq's .gitignore file.Tom Lane
The previous patches failed to cover a lot of symlinks that are only added in platform-specific cases. Make the lists match what's in the Makefile for each branch.
2010-09-22Add gitignore files for ecpg regression tests.Magnus Hagander
Backpatch to 8.2 as that's how far the structure looks the same.
2010-09-22Convert cvsignore to gitignore, and add .gitignore for build targets.Magnus Hagander
2010-09-16Translation updates for 9.0.0Peter Eisentraut
2010-08-17Applied Zoltan's patch to fix a few memleaks in ecpg's pgtypeslib.Michael Meskes
2010-08-02Fix an ancient typo that prevented the detection of conflicting fields whenTom Lane
interval input "invalid" was specified together with other fields. Spotted by Neil Conway with the help of a clang warning. Although this has been wrong since the interval code was written more than 10 years ago, it doesn't affect anything beyond which error message you get for a wrong input, so not worth back-patching very far.
2010-07-29Translation updates for 9.0beta4Peter Eisentraut
2010-07-14Allow full SSL certificate verification (wherein libpq checks its host nameTom Lane
parameter against server cert's CN field) to succeed in the case where both host and hostaddr are specified. As with the existing precedents for Kerberos, GSSAPI, SSPI, it is the calling application's responsibility that host and hostaddr match up --- we just use the host name as given. Per bug #5559 from Christopher Head. In passing, make the error handling and messages for the no-host-name-given failure more consistent among these four cases, and correct a lie in the documentation: we don't attempt to reverse-lookup host from hostaddr if host is missing. Back-patch to 8.4 where SSL cert verification was introduced.
2010-07-08Translation updates for 9.0beta3Peter Eisentraut
2010-07-08Make the Windows tcp keepalive support depend on the existance of theMagnus Hagander
SIO_KEEPALIVE_VALS define instead of just WIN32, since MingW doesn't support this API (yet?).
2010-07-08Add support for TCP keepalives on Windows, both for backend and the newMagnus Hagander
libpq support.
2010-07-06Support setting the keepalive idle time on MacOS X.Robert Haas
MacOS X uses TCP_KEEPALIVE rather than TCP_KEEPIDLE for this purpose. Thanks to Fujii Masao for the review.
2010-07-06pgindent run for 9.0, second runBruce Momjian
2010-07-05Split the LDFLAGS make variable into two parts: LDFLAGS is now used forTom Lane
linking both executables and shared libraries, and we add on LDFLAGS_EX when linking executables or LDFLAGS_SL when linking shared libraries. This provides a significantly cleaner way of dealing with link-time switches than the former behavior. Also, make sure that the various platform-specific %.so: %.o rules incorporate LDFLAGS and LDFLAGS_SL; most of them missed that before. (I did not add these variables for the platforms that invoke $(LD) directly, however. It's not clear if we can do that safely, since for the most part we assume these variables use CC command-line syntax.) Per gripe from Aaron Swenson and subsequent investigation.
2010-06-23Add TCP keepalive support to libpq.Robert Haas
This adds four additional connection parameters to libpq: keepalives, keepalives_idle, keepalives_count, and keepalives_interval. keepalives default to on, per discussion, but can be turned off by specifying keepalives=0. The remaining parameters, where supported, can be used to adjust how often keepalives are sent and how many can be lost before the connection is broken. The immediate motivation for this patch is to make sure that walreceiver will eventually notice if the master reboots without closing the connection cleanly, but it should be helpful in other cases as well. Tollef Fog Heen, Fujii Masao, and me.
2010-06-16Refactor sprintf calls with computed format strings into multiple calls withPeter Eisentraut
constant format strings, so that the compiler can more easily check the formats for correctness.
2010-06-04Added variable handling for RETURNING clause to ecpg.Michael Meskes
While the values were correctly returned they were not moved into C variables as they should be. Closes: #5489
2010-06-03Translation updates for 9.0beta2Peter Eisentraut
2010-05-30Change the notation for calling functions with named parameters fromTom Lane
"val AS name" to "name := val", as per recent discussion. This patch catches everything in the original named-parameters patch, but I'm not certain that no other dependencies snuck in later (grepping the source tree for all uses of AS soon proved unworkable). In passing I note that we've dropped the ball at least once on keeping ecpg's lexer (as opposed to parser) in sync with the backend. It would be a good idea to go through all of pgc.l and see if it's in sync now. I didn't attempt that at the moment.
2010-05-26Rearrange libpq's SSL initialization to simplify it and make it handle someTom Lane
additional cases correctly. The original coding failed to load additional (chain) certificates from the client cert file, meaning that indirectly signed client certificates didn't work unless one hacked the server's root.crt file to include intermediate CAs (not the desired approach). Another problem was that everything got loaded into the shared SSL_context object, which meant that concurrent connections trying to use different sslcert settings could well fail due to conflicting over the single available slot for a keyed certificate. To fix, get rid of the use of SSL_CTX_set_client_cert_cb(), which is deprecated anyway in the OpenSSL documentation, and instead just unconditionally load the client cert and private key during connection initialization. This lets us use SSL_CTX_use_certificate_chain_file(), which does the right thing with additional certs, and is lots simpler than the previous hacking about with BIO-level access. A small disadvantage is that we have to load the primary client cert a second time with SSL_use_certificate_file, so that that one ends up in the correct slot within the connection's SSL object where it can get paired with the key. Given the other overhead of making an SSL connection, that doesn't seem worth worrying about. Per discussion ensuing from bug #5468.
2010-05-25Add missing newlines to some SSL-related error messages. Noted while testing.Tom Lane
2010-05-25Replace self written 'long long int' configure test by standard ↵Michael Meskes
'AC_TYPE_LONG_LONG_INT' macro call.
2010-05-25Added a configure test for "long long" datatypes. So far this is only used ↵Michael Meskes
in ecpg and replaces the old test that was kind of hackish.
2010-05-20Ecpg now accepts "long long" datatypes even if "long" is 64bit wide. This ↵Michael Meskes
used to cover the equally long "long long" type. This patch closes bug #5464.
2010-05-13Translation updatePeter Eisentraut
2010-05-12Add PGFILEDESC description to Makefiles for all /contrib executables.Bruce Momjian
Add PGAPPICON to all executable makefiles.
2010-05-09Adjust comments about avoiding use of printf's %.*s.Tom Lane
My initial impression that glibc was measuring the precision in characters (which is what the Linux man page says it does) was incorrect. It does take the precision to be in bytes, but it also tries to truncate the string at a character boundary. The bottom line remains the same: it will mess up if the string is not in the encoding it expects, so we need to avoid %.*s anytime there's a significant risk of that. Previous code changes are still good, but adjust the comments to reflect this knowledge. Per research by Hernan Gonzalez.
2010-05-08Work around a subtle portability problem in use of printf %s format.Tom Lane
Depending on which spec you read, field widths and precisions in %s may be counted either in bytes or characters. Our code was assuming bytes, which is wrong at least for glibc's implementation, and in any case libc might have a different idea of the prevailing encoding than we do. Hence, for portable results we must avoid using anything more complex than just "%s" unless the string to be printed is known to be all-ASCII. This patch fixes the cases I could find, including the psql formatting failure reported by Hernan Gonzalez. In HEAD only, I also added comments to some places where it appears safe to continue using "%.*s".
2010-05-07ECPG connect routine only checked for NULL to find empty parameters, but ↵Michael Meskes
user and password can also be "".
2010-04-30Fix a couple of places where the result of fgets() wasn't checked.Tom Lane
This is mostly to suppress compiler warnings, although in principle the cases could result in undesirable behavior. Martin Pitt
2010-04-28Fix typo that had the code check the same thing twice.Magnus Hagander
Fujii Masao
2010-04-03Make ecpg in line with other compilers in that it deletes its output if ↵Michael Meskes
there was an error processing the input file. Work done by Zoltan.
2010-04-03Message quoting style tuningPeter Eisentraut
2010-04-02FATAL errors are meant to stop ecpg immediately, e.g. because the syntax isMichael Meskes
corrupted. This error, however, does is not a compilation problem but a runtime one, so we can keep compiling but still have to declare ERROR.
2010-04-01Zoltan beautified his hidden-variable-patch for ecpg. This also makes sure ↵Michael Meskes
we get an error message instead of a warning if the variable have different types.
2010-04-01Applied Zoltan's patch to make ecpg spit out warnings if a local variable ↵Michael Meskes
hides a global one with the same name.
2010-03-31Give a more precise error message if a variable is re-used as cursor name in ↵Michael Meskes
ecpg.
2010-03-23Remove useless double assignmentPeter Eisentraut
GCC 4.5 complained about it.
2010-03-22Fixed ECPG regression test to make sure it uses absolute paths for includeMichael Meskes
files instead of relative ones which break vpath builds.