This is an automated email from the git hooks/post-receive script.
ebourg-guest pushed a change to tag REL8_1_415
in repository libpostgresql-jdbc-java.
at 1219f0e (commit)
This tag includes the following new commits:
new c910ef2 Correct the display size calculations for numeric data.
Don't add precision and scale because scale is just a subset of precision.
new 9604d6d DatabaseMetaData.getTables should return all table type
if passed null as for the types array. It was previously returning only those
tables that psql's \d command would for a null type filter.
new 5eaa49b Remove javadoc @see reference pointing to removed
functionality.
new b2731e4 Statement.cancel was prone to race conditions even with a
single threaded client. It would fire off a cancel message without waiting for
an acknowledgement of its success. This resulted in future queries being
cancelled when the cancel message was received by the backend. Ensure we get
an EOF from the server before returning from the cancel call. This
still does nothing about multi-threaded race conditions.
new 5c996c3 Add scale information for time/timestamp/interval to
DatabaseMetaData.getColumns. Include knowledge of interval in
ResultSetMetaData.
new 77f5e30 Updated Italian translation from Giuseppe Sacco.
new f367d8d Update getObject and getArray methods that take a map to
only bail out with a not implemented exception if the supplied map is not null
and not empty. Apparently Sun's WebRowSet implementation passes empty Maps to
these methods.
new 407dbbe The V2 protocol wasn't correctly handling EmptyQuery
messages. It expected a four byte message length after the EmptyQuery message,
but there is only a single null byte sent by the backend.
new f74b674 Backpatch the fix for incorrect parameter indexes on
CallableStatements that do not return values to 8.1
new 64cf8e5 Brazilian Portuguese translation updates.
new 32fe073 When performing replace processing we must continue
processing until we hit the end of a user supplied query, not just once we've
detected the end of a valid query. Consider the example: SELECT a FROM t WHERE
(1>0)) ORDER BY a; We must send the whole query to the backend, not just the
section before the last closing parenthesis.
new d9b3c67 escapeQuotes() in DatabaseMetaData was not correctly
handling backslashes which would result in incorrect searches and has the
potential for a SQL injection attack.
new 60ae42a The TypeInfoCache had a static Map for the pg type name
to java.sql.Types conversion, but it was being reinitialized for each new
Connection. Even though its content is static make this an instance variable
for simplicity.
new 5dbd05a Release build 405.
new 4ad1445 When the Connection retrieved from
XAConnection.getConnection() is closed we do not want to rollback the
transaction because the underlying connection is not closed and the transaction
is being managed by the XAResource, not the Connection.
new 3d46f25 When a prepared statement uses different parameter types
than what the statement was originally prepared for, the driver must replan the
query for the new types. When doing this in batches the driver was not
correctly freeing old plans.
new dd554e3 When performing replace processing we must continue
processing until we hit the end of a user supplied query, not just once we've
detected the end of a valid query. Consider the example: SELECT a FROM t WHERE
(1>0)) ORDER BY a; We must send the whole query to the backend, not just the
section before the last closing parenthesis.
new 9acc6d6 gij/gcj has some JDK1.5 classes in it, but it only
supports JDK1.4 as the default source level. This confuses older ant versions
and our build script tries to compile a JDK1.5 version. Instead of letting ant
detect the java version, let the jvm tell us that itself using
java.specification.version as suggested by Heikki Linnakangas. Also put in a
check for a JDK1.6 compile attempt and bail out with an explanatory unsupported
error message instead of just failing at [...]
new b5f7e9a When we're unable to parse a timestamp value, the error
message should print out the bad value. It was printing a char array which
showed up as a useless [C@xxxx.
new f03d154 The previous commit message is completely bogus. I use
the -F argument to specify a filename and I picked com.msg instead of oom.msg
resulting in a random old message. This is the correct log entry.
new 7ba14af Add some more synchronization to the TypeInfoCache. We
need synchronization around the PreparedStatements because they may not be used
by two threads at the same time. Additional synchronization is applied to the
maps to ensure that they are in sync with each other. Make _pgNameToSQLType
static.
new 9d967ba Updated German transalation.
new 3695bbf Error messages were not run through MessageFormat if it
didn't have any parameters. This was a problem because all error messages are
written expecting to be run through the formatter and use two single quotes
when only one is desired in the output. Without being run through the
formatter the two quotes appeared in the output.
new 75d2560 Fix a couple of bugs in CallableStatement outputs. An
oversight in the checking of actual results vs. what the caller specified for
registerOutParameter was checking all register parameters against the first out
parameter, not the parameter it actually corresponded with.
new 6b08294 Release build 406.
new 5aaa290 Remove documentation's claim that we don't support
functions with out parameters.
new 03e92ab Updated German transalation.
new 982b94c Backpatch fix for running callable statements against a
8.1+ server with the v2 protocol. In this case we can't handle out parameters
and fallback to traditional processing.
new b60938e Using callable statements against older server versions
(7.4 or 8.0) did not work because of recent changes to output parameter
handling. 7.4 and 8.0 do not support function output parameters, but they still
must support the functions return value. Every function must have either a
return value or an output parameter so we force the minimum output parameter
count to one.
new d9e844e Release build 8.1-407.
new bdfcd57 Updated Italian translation from Giuseppe Sacco.
new b1bbfeb Brazilian Portuguese translation updates.
new fdf4f16 When issuing multiple queries on one statement the driver
was not clearing some intermediate state between executions. When an update,
insert, or delete followed a select, the select's results were still available
and would be returned instead of the non-query's affected row count.
new 6224384 When the driver asks the server to resolve a type the
resolved type is stored in the SimpleQuery object. When the statement is
executed again the driver determines whether the existing types match or if it
needs to be reprepared by comparing the current Statement's settings with the
SimpleQuery. The Statement will have the unspecified oid while the SimpleQuery
will have the resolved oid, so there will not be a match and the statement will
needlessly be reprepared. [...]
new a24b7a4 When creating a ResultSet from a refcursor, respect the
creating ResultSet's scollability setting. The way the ResultSet is created
means that it will always be scrollable anyway, so there's no downside. We
cannot support updatable refcursor ResultSets until we get updatable cursors.
new 08eb129 Fix a bug in function escape processing. When dealing
with an invalid escape the code attempted to read until it hit the escape end
and press on, but it forgot to increment its position counter. This lead to an
infinite loop that eventually resulted in an out of memory error.
new a91bc52 Update the documentation to reflect the fact that the
default prepareThreshold is five, not zero.
new e68e7df Error message wants the paramter's registered return
type, not the whole array of return types that will be displayed as something
unintelligible.
new 7e5c4ca RecoverdXid.equals was assuming that the object passed to
it was an Xid which in the general case of the equals method is not true. To
respect the contract of the equals method return false if the passed in object
isn't an Xid.
new ef74f71 Escaping of savepoint names in
org.postgresql.jdbc3.PSQLSavepoint is incorrect. Backslashes in (double-quoted)
savepoint names are doubled for escaping, but AFAIK, and as my testing shows,
savepoint names are like identifiers, so regular identifier quoting applies to
them.
new db52e0e Release 8.1-408.
new 5e9b62c Statement.getTime, .getDate, and .getTimestamp methods
which are passed a Calendar object were rotating the timezone in the wrong
direction. Rewrite this code to use the existing TimestampUtils methods to
match the working code in ResultSets.
new 4ce8687 Produce the timezone that we send to the server in the
same format that we can parse. This is important for updatable ResultSets as
we must be able to parse the format we produce.
new ce6f457 When manipulating large objects we must handle the oid as
a Java long rather than an int so it works when the oid counter exceeds
Integer.MAX_VALUE. This doesn't remove the existing int API to avoid breaking
code, but instead adds a parallel API that uses long.
new 04fcfc1 Fix persistence of XA datasources. PGObjectFactory
wasn't aware of PGXADataSource and can't be because of the requirements for
different build versions. Add a new PGXADataSourceFactory to provide this
functionality.
new 819eece The error message reports the column position incorrectly
by using ""+i+1 which is (""+i)+1, resulting in a value of 21 instead of 3 for
an i value of 2.
new b362fe2 Interval formatting didn't work for negative seconds
values greater than -1. It would format it as -.5, but interval input doesn't
accept this, so write it as -0.5 instead.
new 124c2ed Allow updatable ResultSets to update arrays. While we
still haven't implemented updateArray, updateObject with an Array should work.
Just need to add a mapping for Types.ARRAY for converting the Array to the
underlying ResultSet format.
new 5a7244a In an error message reporting an unparseable timestamp
value the code was trying to put the unparseable portion into the error
message, but used the wrong variable to get the correct length.
new 4234b4e Implement ResultSet.updateArray by simply mapping it to
updateObject.
new ef22d89 Prepare for release of 8.1-409.
new 63dd9d6 Explicitly state which source level we are compiling.
Newer versions of gij/gcj run a 1.5 VM, but default to a 1.4 source level
compile which tricks up our build system. This still doens't fix the case of
running with a newer VM than compiler, but I don't see what we can do about
that.
new b937f44 A XAConnections default autocommit state should be true.
The driver was previously setting autocommit to false and assuming it would
stay that way. This caused two problems. First, some applications expected to
be able to issue local autocommit transactions prior to begin(). Second, some
TMs (Geronimo) set the autocommit state to true themselves, which causes
problems as the driver did not expect it to be changed. This patch correctly
disables and enables autoco [...]
new bec89bf Allow XAResource.start with TMJOIN in a limited set of
circumstances to work with WebLogic. We allow TMJOIN only if the resource was
previously ended and the Xid is the same as the current Xid.
new 2e206f5 Error message has the wrong index into the paramTypes
array.
new baeb5ba setObject fails to identify the correct type of
java.lang.Byte.
new 38e52a6 The previous patch to try and set a XA based Connection's
autocommit property correctly didn't quite work. Calling
XAConnection.getConnection set autocommit to true even if we already had a
transaction in progress.
new 3475c57 Fix function drop calls so we end up with a clean
database at the end of a successful test run.
new 1d83d4d When retrieving the columns that compose a composite type
don't retrieve system columns (like xmin/xmax/...) that you'll find if the type
is from a table or view. A more comprehensive rework of getProcedureColumns
will go into HEAD.
new bb6c723 Fix recently added Byte type test code to work under
JDK1.4. It was using Byte.valueOf(byte) which is a JDK1.5 method.
new 393d899 Don't return quotes around identifiers in the results of
DatabaseMetaData.getIndexInfo even if they would require quoting in SQL. The
code was making a "col = NULL" comparison which doesn't work.
new aaa38c4 Do escape processing on batch Statements prior to
execution. This already worked for PreparedStatements, but not plain
Statements.
new 849e95a Updatable ResultSets did not work when updating bytea
data and then retrieving it because we send the data to the server in binary
format, but the ResultSet was expecting to read it in text format. So we need
to convert the data from binary to text format before stuffing it into the
ResultSet.
new 5619f9e Prepare for release of 8.1-410.
new 84d6810 When doing batch execution we can have multiple Parse and
DescribeStatement messages on the wire at the same time. When we finally get
around to collecting the DescribeStatement results we must check whether they
still apply to the currently parsed query. Otherwise we'll overwrite our type
information with stale data that will cause failures down the line.
new 9f0c26a The prepareThreshold parameter was getting defaulted to
zero in the test suite by the build system. It would be nice to just pick up
the driver's default, but that's tough to do, so just hardcode it to the
default (five) for now.
new 1bf9528 CallableStatements with OUT parameters that get executed
more than prepareThreshold times no longer send Parse messages which invoke
SimpleParameterList.getTypeOID which has side effects required to setup the
parameters correctly. This bug is only exposed if the caller also uses
clearParameters() which zeros out state that would otherwise be retained from
previous execution. Add an explicit convertFunctionOutParameters method to do
this work instead that we call in [...]
new 61469fa Arrays.toString is a JDK1.5+ method, so we can't use it
in this test. It's unnecessary anyways as we really want to compare the byte
arrays, not their String forms.
new 0a787fe Ugggh, compiling is not the same as working. Junit's
assertEquals converts things to strings which doesn't work for arrays. Use
Arrays.equals instead.
new d21b0f1 Multiple calls to XAConnection.getConnection within the
same user transaction ended up restarting the transaction on the server side as
a result of manipulating the autocommit state. When retrieving a Connection,
we must pay attention to whether a user transaction is in progress when setting
the autocommit state.
new 5f3b601 Make code that parses queries for updateable resultsets
aware of the ONLY clause.
new 12ec7e8 While custom type maps are not implemented, the code to
detect the caller trying to use them threw a ClassCastException. Correctly
detect the attempted use of custom types and bail out with a SQLException.
new 4f487c4 Prepare for release of 8.1-411.
new 01fce9c The JDBC spec says that when you have two duplicately
named columns, a search by name should return the first one.
new b7b8f6a While the driver currently doesn't support the copy
protocol, it needs to understand it enough to ignore it. Now the connection
will not be irreparably broken when a COPY request is sent.
new d5921e1 Updated Brazilian Portuguese translation.
new c29d8b9 Prepare for release of 8.1-412.
new 2be43cb Make the build system aware of the 1.7 JDK (which icedtea
reports itself as) and add an explicit check and complaint if we find a JDK
that we don't support.
new f6a9109 Move PGXADataSource to the public API documentation.
new 5e57f34 Do comparison of identifiers in a known Locale
(specificially US). In Turkish for example
"id".toLowerCase().equals("ID".toLowerCase()) is false. This breaks apps
running a Turkish locale.
new 7ac5651 Fix a deadlock that occurs when retrieving notifications.
Normal query execution enters the QueryExecutor monitor and then calls a
synchronized method in the ProtocolConnection to update the transaction state.
Notification retrieval operates in the reverse order, entering the
ProtocolConnection monitor and then calling a synchronized method in the
QueryExecutor.
new b714fe2 CallableStatement#getUpdateCount was returning 1 when a
function returned a ResultSet. Return -1 instead.
new 92b7023 Accept UTF8 as an equivalent of UNICODE when trying to
detect if client_encoding has changed to something the driver doesn't
understand. Don't try to accept every possible spelling (UTF-8) as UTF8 is the
server's canonical name and people shouldn't be messing with this anyway.
new 772092e Updated German translation.
new 887fee1 Adjust the deadlock avoidance code for the V3 protocol to
be concerned with many statements in a single execute call in addition to the
existing worry about many statements from an executeBatch call. This doesn't
prevent all possible deadlocks as the deadlock avoidance calculation was
written for batch execution which should not be returning ResultSets. If many
long queries that return significant results are issued with a single execute
we will still deadlock.
new 2eb09ad Release build 8.1-413.
new 88bfe80 The Statement and Connection proxies used for connection
pooling code relied on the underlying real connection and statement code for
equals and hashcode support. When the proxies are closed we discard the
references to the real objects, so we can't rely on them for this support
because we'll get a NullPointerException.
new 1e29a7d My previous patch to fix the equals and hashcode for
connection pools didn't build with a 1.4 JDK. 1.5+ was doing autoboxing which
I didn't originally notice.
new 3d6df2f Typo: Types.Other -> Types.OTHER.
new 197e509 Don't use pg_attrdef.adsrc to display a column's default
value. This can get out of date when dependent objects are renamed. Instead
decompile the adbin column to fetch up to date information.
new aadfc18 Initialize BatchUpdateExceptions with the SQLState of the
SQLException that they are wrapping. Code that inspects the SQLStates of
SQLExceptions, but doesn't unwrap the nested exception will not understand the
underlying cause and may make incorrect decisions about the severity of the
error.
new 456b630 Fix time tests for timezones which have different rules
now than at the unix epoch. We need to pull the zone offset for the time value
we're manipulating rather than the current time. "Europe/London" is the failing
example, but there may be more.
new ca013de Release 8.1-414.
new dd898f8 After running the statement passed to executeUpdate, we
check to see if it was a SELECT and complain because it is not a query method.
The code was not checking all of the results if it was passed a multi-
statement query string. This resulted in the surprising and silent partial
execution of SELECT statements.
new 7ad8329 Always specify an XA error code when creating an
XAException. Otherwise a transaction manager won't know what to do with the
error and may have to asssume the worst.
new 2f1b5e3 A XA transaction should not change the autocommit setting
of a Connection. Ensure that we restore this property correctly after the XA
transaction completes.
new 8d2385f When setNull is called with a TIME or TIMESTAMP type we
cannot pass that type information on to the backend because we really don't
know whether it is with or without a time zone. For a NULL value it doesn't
matter, but we can't establish a type because a later call with a non-null
value using the same PreparedStatement can potentially end up using a specific
type that is incorrect.
new 1219f0e Release 8.1-415.
The 98 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git
_______________________________________________
pkg-java-commits mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits