[libpostgresql-jdbc-java] tag REL8_1_415 created (now 1219f0e)
Emmanuel Bourg
ebourg-guest at moszumanska.debian.org
Mon Jan 9 10:20:21 UTC 2017
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 at 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
More information about the pkg-java-commits
mailing list