summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2001-09-10Add explicit '-print' to 'find' commands.Peter Eisentraut
(partially) from Ian Lance Taylor
2001-09-10Remove extra space at end of line.Peter Eisentraut
2001-09-10Attached is a patch that fixes DatabaseMetaDataTest in the JDBCBruce Momjian
driver's test suite. With previous patches applied, this reduces the number of failures of the test suite from 6 to 4. The patch fixes the test case itself, rather than the driver. Details: 1) The driver correctly provided DatabaseMetaData about the sort order of NULLs. This was confirmed by Peter Eisentraut on pgsql-hackers. I fixed the test to accept/require the current behaviour, and made it dependent on the backend version. See nullsAreSortedAtStart(), nullsAreSortedAtEnd(), nullsAreSortedHigh() and nullsAreSortedLow(). 2) DatabaseMetaData.supportsOrderByUnrelated() correctly returned true (an ORDER BY clause can contain columns that are not in the SELECT clause), but the test case required false. Fixed that. 3) Replaced deprecated assert() of junit.framework.TestCase by assertEquals(), assertTrue() and assertNotNull(). This is because assert will be a new keyword in Java 1.4. 4) Replaced assert(message,false) by the more elegant fail(message). Regards, Ren? Pijlman <rene@lab.applinet.nl>
2001-09-10Attached is a patch to add bytea support to JDBC.Bruce Momjian
This patch does the following: - Adds binary datatype support (bytea) - Changes getXXXStream()/setXXXStream() methods to be spec compliant - Adds ability to revert to old behavior Details: Adds support for the binary type bytea. The ResultSet.getBytes() and PreparedStatement.setBytes() methods now work against columns of bytea type. This is a change in behavior from the previous code which assumed the column type was OID and thus a LargeObject. The new behavior is more complient with the JDBC spec as BLOB/CLOB are to be used for LargeObjects and the getBytes()/setBytes() methods are for the databases binary datatype (which is bytea in postgres). Changes the behavior of the getBinaryStream(), getAsciiStream(), getCharacterStream(), getUnicodeStream() and their setXXXStream() counterparts. These methos now work against either the bytea type (BinaryStream) or the text types (AsciiStream, CharacterStream, UnicodeStream). The previous behavior was that these all assumed the underlying column was of type OID and thus a LargeObject. The spec/javadoc for these methods indicate that they are for LONGVARCHAR and LONGVARBINARY datatypes, which are distinct from the BLOB/CLOB datatypes. Given that the bytea and text types support upto 1G, they are the LONGVARBINARY and LONGVARCHAR datatypes in postgres. Added support for turning off the above new functionality. Given that the changes above are not backwardly compatible (however they are more spec complient), I added the ability to revert back to the old behavior. The Connection now takes an optional parameter named 'compatible'. If the value of '7.1' is passed, the driver reverts to the 7.1 behavior. If the parameter is not passed or the value '7.2' is passed the behavior is the new behavior. The mechanism put in place can be used in the future when/if similar needs arise to change behavior. This is patterned after how Oracle does this (i.e. Oracle has a 'compatible' parameter that behaves in a similar manner). Misc fixes. Cleaned up a few things I encountered along the way. Note that in testing the patch I needed to ignore whitespace differences in order to get it to apply cleanly (i.e. patch -l -i byteapatch.diff). Also this patch introduces a new file (src/interfaces/jdbc/org/postgresql/util/PGbytea.java). Barry Lind
2001-09-10On Fri, 07 Sep 2001 01:34:46 -0400, Tom Lane wrote:Bruce Momjian
>there is still an unpatched reference to pg_description in >getColumns(), in both jdbc1 and jdbc2. This was introduced by Jeroen's patch (see http://fts.postgresql.org/db/mw/msg.html?mid=1032468). Attached is a patch that returns getColumns() to using "select obj_description()" instead of direct access to pg_description, as per the request by Tom. I've incorporated Jeroen's fix to left outer join with pg_attrdef instead of inner join, so getColumns() also returns columns without a default value. I have, however, not included Jeroen's attempt to combine multiple queries into one huge multi-join query for better performance, because: 1) I don't know how to do that using obj_description() instead of direct access to pg_description 2) I don't think a performance improvement (if any) in this method is very important Because of the outer join, getColumns() will only work with a backend >= 7.1. Since the conditional coding for 7.1/7.2 and jdbc1/jdbc2 is already giving me headaches I didn't pursue a pre-7.1 solution. Regards, Ren? Pijlman <rene@lab.applinet.nl>
2001-09-10Attached is a patch that fixesBruce Momjian
ConnectionTest.testTransactionIsolation() in the JDBC driver's test suite. This reduces the number of failures of the test suite from 7 to 6. The patch fixes the test case itself, rather than the driver. In addition to the change described in my posting below, I fixed the part of the test with autocommit enabled. The author of the test assumed that setting the transaction isolation level would have no effect, but in fact it does. Perhaps the test case worked with pre-7.1 behaviour, when the JDBC driver set the isolation level in every transaction, instead of using "set session characteristics". Anyway, now it works with a backend built from current CVS and the behaviour is JDBC compliant. I also extended the test case by changing the isolation level before beginning a transaction and verifying it inside the transaction. Regards, Ren? Pijlman
2001-09-10Bug #1: attribute name when column is type cast:Bruce Momjian
Given the following table: test=# \d f Table "f" Column | Type | Modifiers --------+---------+----------- i | integer | test | text | If I do the following: test=# insert into f values(1,'test'); INSERT 139549 1 test=# select i::int8,test from f; ?column? | test ----------+------ 1 | test (1 row) It doesn't make much sense that the first column should be called '?column?'. The patch results in the output appearing like this: test=# select i::int8,test from f; i | test ---+------ 1 | test (1 row) ---------- Gavin Sherry
2001-09-10> NOTE: in the command.c in three places there (I believe) is a typo:Bruce Momjian
> > "parse error at [the] end of line" > > Attached patch also fixes it. I noticed this while editing the po file. > If I'm wrong, please ignore the command.c.patch. I will revert my translation > as well then. > > -- > Serguei A. Mokhov
2001-09-10The attached patch should be sufficient to fix libpgtcl. It requiresBruce Momjian
PostgreSQL to support unicode-conversion, but retains binary compatibility among Tcl versions. However, it neither checks at compile time not at runtime, if support for unicode-conversion does really exist and it doesn't prevent the user from changing the client encoding after initialization. I think there should be warnings about this somewhere in the documentation. Reinhard Max
2001-09-10Change dialog windows.Hiroshi Inoue
2001-09-101) Fix SQLForeignKeys() in multibyte mode.Hiroshi Inoue
2) Fix a bug with NUMERIC scale in case of Parse statement option. 3) Remove a no longer needed loop in CC_send_query(). Hiroshi Inoue
2001-09-10Remove INV_ARCHIVE mention in python readme.Bruce Momjian
2001-09-10Remove INV_ARCHIVE mention in perl.Bruce Momjian
2001-09-09Backout Karel's patchTatsuo Ishii
2001-09-08Improve declare/fetch mode a little.Hiroshi Inoue
Add a new DSN option for PREPARE hadling. Hiroshi Inoue
2001-09-08Apply 7.1.3 changes to the current tree also.Hiroshi Inoue
2001-09-08Make the world somewhat safe for (not from) DELETE FROM pg_shadow;Peter Eisentraut
Assign the fixed user id 1 to the user created by initdb. A stand-alone backend will always set the user id to 1. (Consequently, the name of that user is no longer important.) In stand-alone mode, the user id 1 will have implicit superuser status, to allow repairs even if there are no users defined. Print a warning message when starting in stand-alone mode when no users are defined. Disallow dropping the current user and session user. Granting/revoking superuser status also grants/revokes usecatupd. (Previously, it would never grant it back. This could lead to "deadlocks".) CREATE USER and CREATE GROUP will start allocating user ids at 100 (unless explicitly specified), to prevent accidental creation of a superuser (plus some room for future extensions).
2001-09-08> > A simple and robus solution is in the begin of mbutils.c set defaultBruce Momjian
> > ClientEncoding to SQL_ASCII (like default DatabaseEncoding). Bruce, can > > you change it? It's one line change. Again thanks. Forget it! A default client encoding must be set by actual database encoding... Please apply the small attached patch that solve it better. Karel Zak
2001-09-08Move updateCommon() into Win32 block because it is only used there.Bruce Momjian
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