aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Attached is my attempt to clean up the horrors of the ExecSQL() method inBruce Momjian2001-09-06
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Attached is a patch for current CVS, consisting of a cvs diff -cBruce Momjian2001-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Apply jdbc error changes.Bruce Momjian2001-09-06
|
* Sync up jdbc error files.Bruce Momjian2001-09-06
|
* On Sat, Aug 25, 2001 at 08:15:45PM -0400, Bruce Momjian wrote:Bruce Momjian2001-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > 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
* Next version of patch.Bruce Momjian2001-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Below is the patch against current cvs for libpgtcl andBruce Momjian2001-09-06
| | | | | | | | | 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
* Hello, i just reviewed the win32 errno patch and i saw that maybe i didn'tBruce Momjian2001-09-06
| | | | | | | | | | | | 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)
* Fix handling of pg_type.typdefault per bug report from Dave Blasby.Tom Lane2001-09-06
| | | | | | 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.
* Add some debugging details to some of the elog(STOP) conditions for WAL.Tom Lane2001-09-06
| | | | | | 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.
* Overhaul ecpg manual page.Bruce Momjian2001-09-06
| | | | Update Italian jdbc error messages.
* Fix code so that we recover cleanly if there are no free semaphoresTom Lane2001-09-04
| | | | | | | 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.
* Fix comment, add Assert.Tom Lane2001-09-04
|
* Fix typo.Tom Lane2001-09-04
|
* /usr/local/bin/perl => /usr/bin/perlPeter Eisentraut2001-09-04
|
* Add back incremental patch for BSD indent.Bruce Momjian2001-09-04
|
* pg_restore option is {c|t}, not {c|f}. Pointed out by someone on IRC.Bruce Momjian2001-09-04
| | | | " -F {c|t} specify backup file format\n"
* Clean up the lock state properly when aborting because of early deadlockTom Lane2001-09-04
| | | | | detection in ProcSleep(). Bug noted by Tomasz Zielonka --- how did this escape detection for this long??
* Bring references to ipcclean in sync with reality.Peter Eisentraut2001-09-04
|
* Fix misscanning of """" (an identifier consisting of one double-quote).Peter Eisentraut2001-09-04
|
* Add patch for 0LL for BSD indent/pgindent.Bruce Momjian2001-09-03
|
* Put pgstat internal files into $PGDATA/global.Peter Eisentraut2001-09-03
|
* Parse the arguments of \connect as SQL identifiers, so that they exposePeter Eisentraut2001-09-02
| | | | | | the expected behavior in mixed-case situations. bug report from James Pattie, 2001-08-31
* New blood and fresh air for tutorialPeter Eisentraut2001-09-02
|
* Convert some fprintf's to elog's.Peter Eisentraut2001-08-30
|
* For INSERTs, one can now tab complete DEFAULT VALUES.Peter Eisentraut2001-08-30
| | | | from Liam Stewart
* Install the SQL command man pages into a section appropriate for eachPeter Eisentraut2001-08-29
| | | | | | | | 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.
* Whoops, wrong logic.Peter Eisentraut2001-08-29
|
* Change the conditionals so the mips + gcc code here doesn't apply for Irix.Peter Eisentraut2001-08-28
| | | | | | The code in s_lock.h should get used. report from Bruno Mattarollo <bruno@web1.greenpeace.org>
* Include directory rearrangementPeter Eisentraut2001-08-28
| | | | | | | | | | 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.
* Fix a wrong error handling.Hiroshi Inoue2001-08-28
|
* Avoid #ifdef inside printf() ... that loses on platforms where printf()Tom Lane2001-08-28
| | | | is a macro.
* Add some minimal exercising of functional-index feature to regressionTom Lane2001-08-27
| | | | tests.
* Suppress definitions of 'true' and 'false' macros if __cplusplus.Tom Lane2001-08-27
| | | | | | 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.
* Use a cursor for fetching data in -d or -D mode, so that pg_dump doesn'tTom Lane2001-08-27
| | | | | run out of memory with large tables in these modes. Patch from Martijn van Oosterhout.
* Fix confusion over static-ness of a subroutine.Tom Lane2001-08-27
|
* Remove unneeded/unportable extern.Tom Lane2001-08-27
|
* Quick-hack solution to regproc/oid issue was not the right solution.Tom Lane2001-08-27
|
* Un-break pg_dump --- pg_class.indproc is now regproc not oid, whichTom Lane2001-08-27
| | | | | | 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.
* Do not install the odbc header files, per discussion on odbc list.Peter Eisentraut2001-08-27
|
* Turn on plpython build by default if we have something that looks like aPeter Eisentraut2001-08-27
| | | | shared library, or we can do without one.
* Fix a complie error on Windows platform.Hiroshi Inoue2001-08-27
|
* VPATH and DESTDIR support for PL/Perl, using the same techniques employedPeter Eisentraut2001-08-26
| | | | | | | | | 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.
* Put the right runpath to libpq into the Perl module shared object on morePeter Eisentraut2001-08-26
| | | | | | platforms and without relinking. Also support VPATH builds and DESTDIR installs. One hopes.
* Please pull this patch. It breaks JDBC1 support. The JDBC1 code noBruce Momjian2001-08-26
| | | | | | | | | | | | | | | | | 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.
* Transaction IDs wrap around, per my proposal of 13-Aug-01. MoreTom Lane2001-08-26
| | | | documentation to come, but the code is all here. initdb forced.
* Add single-letter encryption options for createuser. Update createuser --help.Bruce Momjian2001-08-26
|
* Put createuser ENCRYPTED/UNENCRYPTED in the proper place in the query.Bruce Momjian2001-08-26
|
* >>>>The JDBC driver requiresBruce Momjian2001-08-26
| | | | | | | | | | | | | | | >>>> >>>> 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
* Here is a patch to the resultmap to make the regression tests work onBruce Momjian2001-08-26
| | | | | | OU8. Larry Rosenman