summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2001-09-08Resolve compile errors on unix.Hiroshi Inoue
Rename psqlodbc.def -> psqlodbc_win32.def. Improve internal *declare cursor* handling a little. Hiroshi Inoue
2001-09-08Clean up some confusion about where and how to set whereToSendOutput.Tom Lane
We will no longer try to send elog messages to the client before we have initialized backend libpq (oops); however, reporting bogus commandline switches via elog does work now (not irrelevant, because of PGOPTIONS). Fix problem with inappropriate sending of checkpoint-process messages to stderr.
2001-09-07Move TESTSUITE file to test/README.Bruce Momjian
2001-09-07Change addlit() to not assume its input is null-terminated, so that weTom Lane
don't have more bugs like the quote-quote-quote-quote one. Propagate fix into ecpg lexer, too.
2001-09-07Attached is a patch that fixes 2 test cases of the JDBC testBruce Momjian
suite. This reduces the number of failures from 9 to 7. Both ConnectionTest and JBuilderTest did not create their own tables, which caused these test cases to fail with "relation ... does not exist". It appears these test cases relied on tables created by the example code elsewhere in the source tree. I've added the necessary "create table" and "drop table" statements to the test cases, using the column definitions from the example code. While working on that I modified the helper method createTable in JDBC2Tests.java to take a table parameter, rather than using table names passed via the properties in build.xml. I'm not sure what that was good for, and in fact, except for the default table name "jdbctest", this functionality wasn't used at all. Ren? Pijlman
2001-09-07Read transactions don't work on 7.0.x db's 2nd patchBruce Momjian
Here is a revised patch with Barry's suggestions implemented Dave Cramer
2001-09-07Patch for jdbc2 ResultSet.java. Looks like performance improvement.Bruce Momjian
Joseph Shraibman
2001-09-07I've attached the fixed version of the patch below. After theBruce Momjian
discussion on pgsql-hackers (especially the frightening memory dump in <12273.999562219@sss.pgh.pa.us>), we decided that it is best not to use identifiers from an untrusted source at all. Therefore, all claims of the suitability of PQescapeString() for identifiers have been removed. Florian Weimer
2001-09-07Here is my much-promised patch to let people add UNIQUE constraints afterBruce Momjian
table creation time. Big deal you say - but this patch is the basis of the next thing which is adding PRIMARY KEYs after table creation time. (Which is currently impossible without twiddling catalogs) Rundown ------- * I have made the makeObjectName function of analyze.c non-static, and exported it in analyze.h * I have included analyze.h and defrem.h into command.c, to support makingObjectNames and creating indices * I removed the 'case CONSTR_PRIMARY' clause so that it properly fails and says you can't add primary keys, rather than just doing nothing and reporting nothing!!! * I have modified the docs. Algorithm --------- * If name specified is null, search for a new valid constraint name. I'm not sure if I should "lock" my generated name somehow tho - should I open the relation before doing this step? * Open relation in access exclusive mode * Check that the constraint does not already exist * Define the new index * Warn if they're doubling up on an existing index Christopher Kings-Lynne
2001-09-07>has anyone ever successfully done copy to/from stdout with theBruce Momjian
>tcl-extension for postgreSQL. >I'm currently using 7.0 and always getting a seg fault when I try to >read from the database connection after issueing a "COPY table TO >stdout;" (I'm using the connection handle, *not* the result handle). >Maybe this is fixed in a later release. >The README file in src/interfaces/libpgtcl tells me, that this should >work, but unforunately it doesn't. Yes, it seems broken. It is a bug in libpgtcl. Are you running Tcl >= 8.3.2? That's when the Tcl team changed the data structure for channel callbacks. The change itself was designed to be backward compatible, but I suspect a related change made the code more sensitive to errors in the structure (NULL pointers where functions are required). Either that, or nobody has tried to use libpgtcl with COPY in a long time. First, I have to say I can't think of a good reason to use PostgreSQL's COPY command from a Tcl application. I think it should only be used with psql for importing data from another source into PostgreSQL, or for exporting PostgreSQL data into another database (but why would anyone do that?) If it was me, I would stick with SELECT and INSERT and be "SQL Compliant". OK, editorial is over. Try applying the patch below to fix src/interfaces/libpgtcl/pgtclId.c and let us know if it works. I did little testing on it, but my test did segfault before and ran fine (copy in and copy out) after the patch. This is for PostgreSQL-7.1.2 - since you are running older 7.0, I don't know if this will work, but I suspect it will. PS It's the absence of PgWatchProc which kills it. I didn't upgrade it to the "V2" channel type structure, so it should be compatible with older Tcl's. But aside from gets and puts, I doubt any other file operations would work on the handle during a copy. ljb
2001-09-07Add Java testsuite info.Bruce Momjian
2001-09-07Create pgjindent for java.Bruce Momjian
2001-09-07Revert treatment of NOTIFY in rules to its pre-7.1 behavior: notify willTom Lane
occur unconditionally, even if the rule should otherwise execute conditionally. This is more useful than giving an error, even though it's not truly the correct behavior. Per today's pghackers discussion.
2001-09-07Add CRED alignment for NetBSD.Bruce Momjian
2001-09-07Update SCM_CREDS for Net/Free/BSD-OS. Add configure checks.Bruce Momjian
2001-09-07Enable SIGTERM and SIGQUIT during client authentication soJan Wieck
the postmaster can kill the forked off processes when shutdown is requested. Jan
2001-09-07Remove file, per Karel.Bruce Momjian
2001-09-07Remove variable length macros used in debugging, per Karel.Bruce Momjian
2001-09-07Remove unused files for Karel's patch.Bruce Momjian
2001-09-07Remove common.c, removed in Karal's patch.Bruce Momjian
2001-09-071) Most driver options could be set per DSN.Hiroshi Inoue
2) Keep FE/BE protocol more precisely. 3) Improve procedure calls. 4) A trial to avoid PREMATURE execution(#ifdef'd now). Hiroshi Inoue
2001-09-07Add missing files.Tatsuo Ishii
2001-09-07Revise overflow test in int84() to avoid codegen bug in some olderTom Lane
versions of gcc. We don't really need to explicitly test the limits anyway, just reverse-convert and see if we get the same answer.
2001-09-07Update tab completion for \d*.Bruce Momjian
2001-09-07Fix a number of places where pg_dump was careless about explicitlyTom Lane
coercing OID literals to OID in its queries. Depending on the query and the server version, this could cause failures for OIDs over 2 billion.
2001-09-07Missed a few places that referred to a compile-time limit onTom Lane
max_connections.
2001-09-07Get rid of PID entries in shmem hash table; there is no longer any needTom Lane
for them, and making them just wastes time during backend startup/shutdown. Also, remove compile-time MAXBACKENDS limit per long-ago proposal. You can now set MaxBackends as high as your kernel can stand without any reconfiguration/recompilation.
2001-09-06>Well, if it is that easy, I can do it. Patch attached and applied.Bruce Momjian
> >> On Mon, 3 Sep 2001 22:01:17 -0500, you wrote: >> public boolean isWritable(int column) throws SQLException >> { >> return !isReadOnly(column); >> } Actually, I think this change has a consequence for this method in the same class: public boolean isDefinitelyWritable(int column) throws SQLException { return isWritable(column); } This is from the JDBC spec (http://java.sun.com/j2se/1.3/docs/api/java/sql/ResultSetMetaData.html): isReadOnly() - Indicates whether the designated column is definitely not writable. isWritable() - Indicates whether it is possible for a write on the designated column to succeed. isDefinitelyWritable() - Indicates whether a write on the designated column will definitely succeed. At this time we don't really implement the fine semantics of these methods. I would suggest the following defaults: isReadOnly() false isWritable() true isDefinitelyWritable() false And that would mean that your patch is correct, but isDefinitelyWritable() would need to be patched accordingly: public boolean isDefinitelyWritable(int column) throws SQLException { return false; } Again, both in jdbc1 and jdbc2. Regards, Ren? Pijlman <rene@lab.applinet.nl>
2001-09-06On Mon, 3 Sep 2001 22:01:17 -0500, you wrote:Bruce Momjian
>public boolean isWritable(int column) throws SQLException >{ > if (isReadOnly(column)) > return true; > else > return false; >} The author probably intended: public boolean isWritable(int column) throws SQLException { return !isReadOnly(column); } And if he would have coded it this way he wouldn't have made this mistake :-) >hence, isWritable() will always return false. this is something >of a problem :) Why exactly? In a way, true is just as incorrect as false, and perhaps it should throw "not implemented". But I guess that would be too non-backwardly-compatible. >let me know if i can provide further information. Will you submit a patch? Regards, Ren? Pijlman <rene@lab.applinet.nl>
2001-09-06> The win32.mak and libpgtcl.def files had been lost (patch doesn't handleBruce Momjian
> new files). I'm attaching those two files below. > > Regards > Mikhail Terekhov
2001-09-06Add -rpath for BSD/OS, from Peter E.Bruce Momjian
2001-09-06> Patch applied. Thanks.Bruce Momjian
Thanks. However, I seem to have left a single debug statement in there :-( Here's a patch to remove it. Vianen, Jeroen van
2001-09-06Russian translation from Serguei MokhovPeter Eisentraut
2001-09-06Fix Karel's patch. Suggested by Eiji TokuyaTatsuo Ishii
2001-09-06Commit Karel's patch.Tatsuo Ishii
------------------------------------------------------------------- Subject: Re: [PATCHES] encoding names From: Karel Zak <zakkr@zf.jcu.cz> To: Peter Eisentraut <peter_e@gmx.net> Cc: pgsql-patches <pgsql-patches@postgresql.org> Date: Fri, 31 Aug 2001 17:24:38 +0200 On Thu, Aug 30, 2001 at 01:30:40AM +0200, Peter Eisentraut wrote: > > - convert encoding 'name' to 'id' > > I thought we decided not to add functions returning "new" names until we > know exactly what the new names should be, and pending schema Ok, the patch not to add functions. > better > > ...(): encoding name too long Fixed. I found new bug in command/variable.c in parse_client_encoding(), nobody probably never see this error: if (pg_set_client_encoding(encoding)) { elog(ERROR, "Conversion between %s and %s is not supported", value, GetDatabaseEncodingName()); } because pg_set_client_encoding() returns -1 for error and 0 as true. It's fixed too. IMHO it can be apply. Karel PS: * following files are renamed: src/utils/mb/Unicode/KOI8_to_utf8.map --> src/utils/mb/Unicode/koi8r_to_utf8.map src/utils/mb/Unicode/WIN_to_utf8.map --> src/utils/mb/Unicode/win1251_to_utf8.map src/utils/mb/Unicode/utf8_to_KOI8.map --> src/utils/mb/Unicode/utf8_to_koi8r.map src/utils/mb/Unicode/utf8_to_WIN.map --> src/utils/mb/Unicode/utf8_to_win1251.map * new file: src/utils/mb/encname.c * removed file: src/utils/mb/common.c -- Karel Zak <zakkr@zf.jcu.cz> http://home.zf.jcu.cz/~zakkr/ C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
2001-09-06Add missing files.Bruce Momjian
2001-09-06PAM authentication:Bruce Momjian
> pam_strerror() should be used a few more times, rather than just saying > "Error!". Also, the configure.in snippet seems wrong. You add > -I$pam_prefix/include/security to $INCLUDES and then you #include > <security/pam_appl.h>. This whole thing is probably unnecessary, since > PAM is a system library on the systems where it exists, so the headers > and libraries are found automatically, unlike OpenSSL and > Kerberos. See attached revised patch. (I'm sure the configure.in stuff can be done right/better, I'm just not enough of a autoconf guru to know what to change it to.) Dominic J. Eidson
2001-09-06 - new to_char(interval, text)Bruce Momjian
- new millisecond (ms) and microsecond (us) support - more robus parsing from string - used is separator checking for non-exact formats like to_date('2001-9-1', 'YYYY-MM-DD') - SGML docs are included Karel Zak
2001-09-06Attached is a patch for JDBC's getColumn() function that was broken /Bruce Momjian
flawed in the following ways: 1. Only returned columns that had a default value defined, rather than all columns in a table 2. Used 2 * N + 1 queries to find out attributes, comments and typenames for N columns. By using some outer join syntax it is possible to retrieve all necessary information in just one SQL statement. This means this version is only suitable for PostgreSQL >= 7.1. Don't know whether that's a problem. I've tested this function with current sources and 7.1.3 and patched both jdbc1 and jdbc2. I haven't compiled nor tested the jdbc1 version though, as I have no JDK 1.1 available. Note the discussion in http://fts.postgresql.org/db/mw/msg.html?mid=1029626 regarding differences in obtaining comments on database object in 7.1 and 7.2. I was unable to use the following syntax (or similar ones): select ..., description from ... left outer join col_description(a.attrelid, a.attnum) description order by c.relname, a.attnum; (the error was parse error at or near '(') so I had to paste the actual code for the col_description function into the left outer join. Maybe someone who is more knowledgable about outer joins might provide me with a better SQL statement. Jeroen van Vianen
2001-09-06This fixes clashing defines of ERROR. On win32, winapi.h is included, whichBruce Momjian
includes windows.h, which #defines ERROR to 0. PostgreSQL's logging functions define ERROR to -1. This patch redefines ERROR to -1 to avoid current or future breakage of the logging functions. Gerhard H?ring
2001-09-06> > I sent this to -hackers and peter_e, but thought it ought to go toBruce Momjian
> > -patches as well. > > The -Bdynamic probably ought to disappear. That was there already, but I have no objections. I was trying to make minimal changes. Larry Rosenman
2001-09-06This fixes the regression test .so builds on sysv5 systems:Bruce Momjian
I believe this will fix peter_e's problen with gcc. Larry Rosenman
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)