summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2001-09-06Attached is my attempt to clean up the horrors of the ExecSQL() method inBruce Momjian
the JDBC driver. I've done this by extracting it into a new method object called QueryExecutor (should go into org/postgresql/core/) and then taking it apart into different methods in that class. A short summary: * Extracted ExecSQL() from Connection into a method object called QueryExecutor. * Moved ReceiveFields() from Connection to QueryExecutor. * Extracted parts of the original ExecSQL() method body into smaller methods on QueryExecutor. * Bug fix: The instance variable "pid" in Connection was used in two places with different meaning. Both were probably in dead code, but it's fixed anyway. Anders Bengtsson
2001-09-06Attached is a patch for current CVS, consisting of a cvs diff -cBruce Momjian
for the changed files and a few new files: - test/jdbc2/BatchExecuteTest.java - util/MessageTranslator.java - jdbc2/PBatchUpdateException.java As an aside, is this the best way to submit a patch consisting of both changed and new files? Or is there a smarter cvs command which gets them all in one patch file? This patch fixes batch processing in the JDBC driver to be JDBC-2 compliant. Specifically, the changes introduced by this patch are: 1) Statement.executeBatch() no longer commits or rolls back a transaction, as this is not prescribed by the JDBC spec. Its up to the application to disable autocommit and to commit or rollback the transaction. Where JDBC talks about "executing the statements as a unit", it means executing the statements in one round trip to the backend for better performance, it does not mean executing the statements in a transaction. 2) Statement.executeBatch() now throws a BatchUpdateException() as required by the JDBC spec. The significance of this is that the receiver of the exception gets the updateCounts of the commands that succeeded before the error occurred. In order for the messages to be translatable, java.sql.BatchUpdateException is extended by org.postgresql.jdbc2.PBatchUpdateException() and the localization code is factored out from org.postgresql.util.PSQLException to a separate singleton class org.postgresql.util.MessageTranslator. 3) When there is no batch or there are 0 statements in the batch when Statement.executeBatch() is called, do not throw an SQLException, but silently do nothing and return an update count array of length 0. The JDBC spec says "Throws an SQLException if the driver does not support batch statements", which is clearly not the case. See testExecuteEmptyBatch() in BatchExecuteTest.java for an example. The message postgresql.stat.batch.empty is removed from the language specific properties files. 4) When Statement.executeBatch() is performed, reset the statement's list of batch commands to empty. The JDBC spec isn't 100% clear about this. This behaviour is only documented in the Java tutorial (http://java.sun.com/docs/books/tutorial/jdbc/jdbc2dot0/batchupdates.html). Note that the Oracle JDBC driver also resets the statement's list in executeBatch(), and this seems the most reasonable interpretation. 5) A new test case is added to the JDBC test suite which tests various aspects of batch processing. See the new file BatchExecuteTest.java. Regards, Ren? Pijlman
2001-09-06Apply jdbc error changes.Bruce Momjian
2001-09-06Sync up jdbc error files.Bruce Momjian
2001-09-06On Sat, Aug 25, 2001 at 08:15:45PM -0400, Bruce Momjian wrote:Bruce Momjian
> Can someone research this and figure out what the proper solution for > this is? Seems we are going around in circles if we keep > adding/removing DLLIMPORT. I believe that the attached patch is the correct solution -- I apologize for the gyrations. With the attached patch, Cygwin libpq++ builds cleanly again. The root cause was that DLLIMPORT was defaulting to __declspec(dllimport) since BUILDING_DLL was *not* defined when building the libpq++ DLL. Unfortunately, to test my patch requires changing the following makefile: src/interfaces/libpq++/examples/Makefile and the #includes in all of the *.cc to build against the source tree instead of the following hardcoded installation directory structure: /usr/local/pgsql I was able to manually build src/interfaces/libpq++/examples/testlibpq0.exe against my Cygwin libpq++ without errors. However, I have not tried to actually test testlibpq0.exe. Is this sufficient? Or, do you want me to clean up libpq++/examples too? (Or, is it silly to even ask? :,)) Let me know how you want to proceed and I will submit a patch to pgsql-patches. Jason Tishler
2001-09-06Next version of patch.Bruce Momjian
Now with documentation update and disabling of UTF conversion for Tcl <=8.0 On Fri, 24 Aug 2001, Vsevolod Lobko wrote: > On Thu, 23 Aug 2001, Tom Lane wrote: > > > > Is this looks better? > > > > It does, but one small gripe: the lack of semicolons will probably cause > > pg_indent to mess up the indentation. (I know emacs' autoindent mode > > will not work nicely with it, either.) Please set up the macros so that > > you write > > > > UTF_BEGIN; > > Tcl_DStringAppend(&unknown_src, UTF_E2U(part), -1); > > UTF_END; > > > > and then I'll be happy. > > Attached revised patch > > > Your point about overhead is a good one, so I retract the gripe about > > using a configure switch. But please include documentation patches to > > describe the configure option in the administrator's guide (installation > > section). > > This patch still uses configure switch for enabling feature. > > For enabling based on tcl version we have 2 posibilites: > 1) having feature enabled by default, but in pltcl.c check for tcl > version and disable it for old versions > 2) enable or disable at configure time based on tcl version, but there > are problem - current configure don't checks for tcl version at all > and my configure skills not enought for adding this > Vsevolod Lobko
2001-09-06Below is the patch against current cvs for libpgtcl andBruce Momjian
two additional files win32.mak and libpgtcl.def. This patch allows to compile libpgtcl.dll on Windows with tcl > 8.0. I've tested it on WinNT (VC6.0), SUSE Linux (7.0) and Solaris 2.6 with tcl 8.3.3. Mikhail Terekhov
2001-09-06Hello, i just reviewed the win32 errno patch and i saw that maybe i didn'tBruce Momjian
really played it totally safe in my last suggestion, the system table might pick up the msg but not the netmsg.dll, so better try both. I also added a hex printout of the "errno" appended to all messages, that's nicer. If anyone hate my coding style, or that i'm using goto constructs, just tell me, and i'll rework it into a nested if () thing. Magnus Naeslund(f)
2001-09-06Fix handling of pg_type.typdefault per bug report from Dave Blasby.Tom Lane
If there's anyone out there who's actually using datatype-defined default values, this will be an incompatible change in behavior ... but the old behavior was so broken that I doubt anyone was using it.
2001-09-06Add some debugging details to some of the elog(STOP) conditions for WAL.Tom Lane
Standardize on %X/%X as the formatting for XLOG position display --- we had a couple of different formats before, and none of 'em were as useful as hex offsets IMHO.
2001-09-06Overhaul ecpg manual page.Bruce Momjian
Update Italian jdbc error messages.
2001-09-04Fix code so that we recover cleanly if there are no free semaphoresTom Lane
available in freeSemMap. As noted by Tatsuo, this is now a likely scenario for detecting MaxBackends-exceeded; if MaxBackends is a multiple of PROC_NSEMS_PER_SET then we will fail here and not in sinval.c. The cleanup path did not work correctly before, anyway.
2001-09-04Fix comment, add Assert.Tom Lane
2001-09-04Fix typo.Tom Lane
2001-09-04/usr/local/bin/perl => /usr/bin/perlPeter Eisentraut
2001-09-04Add back incremental patch for BSD indent.Bruce Momjian
2001-09-04pg_restore option is {c|t}, not {c|f}. Pointed out by someone on IRC.Bruce Momjian
" -F {c|t} specify backup file format\n"
2001-09-04Clean up the lock state properly when aborting because of early deadlockTom Lane
detection in ProcSleep(). Bug noted by Tomasz Zielonka --- how did this escape detection for this long??
2001-09-04Bring references to ipcclean in sync with reality.Peter Eisentraut
2001-09-04Fix misscanning of """" (an identifier consisting of one double-quote).Peter Eisentraut
2001-09-03Add patch for 0LL for BSD indent/pgindent.Bruce Momjian
2001-09-03Put pgstat internal files into $PGDATA/global.Peter Eisentraut
2001-09-02Parse the arguments of \connect as SQL identifiers, so that they exposePeter Eisentraut
the expected behavior in mixed-case situations. bug report from James Pattie, 2001-08-31
2001-09-02New blood and fresh air for tutorialPeter Eisentraut
2001-08-30Convert some fprintf's to elog's.Peter Eisentraut
2001-08-30For INSERTs, one can now tab complete DEFAULT VALUES.Peter Eisentraut
from Liam Stewart
2001-08-29Install the SQL command man pages into a section appropriate for eachPeter Eisentraut
system. Some systems did not understand the 'l' section, and in general it wasn't entirely appropriate. On SCO OpenServer, the man pages won't be installed at all until someone figures out their man system.
2001-08-29Whoops, wrong logic.Peter Eisentraut
2001-08-28Change the conditionals so the mips + gcc code here doesn't apply for Irix.Peter Eisentraut
The code in s_lock.h should get used. report from Bruno Mattarollo <bruno@web1.greenpeace.org>
2001-08-28Include directory rearrangementPeter Eisentraut
Client headers are no longer in a subdirectory, since they have been made namespace-clean. Internal libpq headers are in a private subdirectory. Server headers are in a private subdirectory. pg_config has a new option to point there.
2001-08-28Fix a wrong error handling.Hiroshi Inoue
2001-08-28Avoid #ifdef inside printf() ... that loses on platforms where printf()Tom Lane
is a macro.
2001-08-27Add some minimal exercising of functional-index feature to regressionTom Lane
tests.
2001-08-27Suppress definitions of 'true' and 'false' macros if __cplusplus.Tom Lane
Since we're assuming a C++ compiler knows what 'bool' is, seems we should assume it knows 'true' and 'false' too. This prevents problems on some systems, per report from Leandro Fanzone.
2001-08-27Use a cursor for fetching data in -d or -D mode, so that pg_dump doesn'tTom Lane
run out of memory with large tables in these modes. Patch from Martijn van Oosterhout.
2001-08-27Fix confusion over static-ness of a subroutine.Tom Lane
2001-08-27Remove unneeded/unportable extern.Tom Lane
2001-08-27Quick-hack solution to regproc/oid issue was not the right solution.Tom Lane
2001-08-27Un-break pg_dump --- pg_class.indproc is now regproc not oid, whichTom Lane
for some reason displays a zero oid differently. Possibly we should revert that schema change, but it's easy to make pg_dump accept both spellings so I'll do that for now.
2001-08-27Do not install the odbc header files, per discussion on odbc list.Peter Eisentraut
2001-08-27Turn on plpython build by default if we have something that looks like aPeter Eisentraut
shared library, or we can do without one.
2001-08-27Fix a complie error on Windows platform.Hiroshi Inoue
2001-08-26VPATH and DESTDIR support for PL/Perl, using the same techniques employedPeter Eisentraut
in interfaces/perl5 a brief while ago. Also, since building PL/Perl without a shared libperl actually works on some platforms we can enable it there to get some development happening. I've only checked off linux right now, but others should be added in the future.
2001-08-26Put the right runpath to libpq into the Perl module shared object on morePeter Eisentraut
platforms and without relinking. Also support VPATH builds and DESTDIR installs. One hopes.
2001-08-26Please pull this patch. It breaks JDBC1 support. The JDBC1 code noBruce Momjian
longer compiles, due to objects being referenced in this patch that do not exist in JDK1.1. Barry Lind --------------------------------------------------------------------------- The JDBC driver requires permission java.net.SocketPermission "host:port", "connect"; in the policy file of the application using the JDBC driver in the postgresql.jar file. Since the Socket() call in the driver is not protected by AccessController.doPrivileged() this permission must also be granted to the entire application.
2001-08-26Transaction IDs wrap around, per my proposal of 13-Aug-01. MoreTom Lane
documentation to come, but the code is all here. initdb forced.
2001-08-26Add single-letter encryption options for createuser. Update createuser --help.Bruce Momjian
2001-08-26Put createuser ENCRYPTED/UNENCRYPTED in the proper place in the query.Bruce Momjian
2001-08-26>>>>The JDBC driver requiresBruce Momjian
>>>> >>>> permission java.net.SocketPermission "host:port", "connect"; >>>> >>>>in the policy file of the application using the JDBC driver >>>>in the postgresql.jar file. Since the Socket() call in the >>>>driver is not protected by AccessController.doPrivileged() this >>>>permission must also be granted to the entire application. >>>> >>>>The attached diff fixes it so that the connect permission can be >>>>restricted just the the postgresql.jar codeBase if desired. David Daney
2001-08-26Here is a patch to the resultmap to make the regression tests work onBruce Momjian
OU8. Larry Rosenman