- Fixed problem with DDL SCRIPT parser where C-style comments were
not being processed properly
- Added stored functions and documentation for adding empty tables
(notably *partitions*) to replication. Note these functions
do no work when not specifically requested.
- Added a fairly substantial partitioning test to exercise the
new stored functions above.
- Backport "listen path" generator function from CVS HEAD (2.0) to
1.2 branch.
- Fixed a problem with "EXECUTE SCRIPT" (introduced in remote_worker.c
version 1.124.2.13) where moving the relevant code into a subroutine
at the end led to losing the "BEGIN; SET TRANSACTION ISOLATION LEVEL
SERIALIZABLE;" query that needs to be the first thing run...
- Fixing the archive sequence generations (in log shipping). All
non-SYNC events must start the local transaction before creating the
archive as well, so that the lock on the archive counter table
serializes archive creation.
- Fixed logging done in local_listener.c - various places, there was
no '\n' in some cases, which would lead to entries being folded
together.
- Fix launch_slons.sh - was not stripping quotes from PID file name
- Error handling for "ERROR: could not serialize access due to
concurrent update"
- Fixes to slonik_build_env script - it wasn't properly handling
cases where there was just 1 table or 1 sequence, and had a
problem with the -schema option - thanks, Bernd Helmle
support, reported via PR pkg/37745 ).
OpenLDAP 2.4.x brings a lot of new features, including multi-master support,
dynamic configuration and schema changes, automatic reverse group membership,
significant performance improvements, etc. One of the most noticeable changes
for administrators though is the removal if the slurpd daemon (in favour of
the sync replication mechanism). Users of slurpd replication should migrate
to sync replication before upgrading to OpenLDAP 2.4.x.
* Fix a bug where mutex contention in database environments configured for
hybrid mutex support could result in performance degradation.
* Fix a bug where closing a database handle after aborting a transaction
which included a failed open of that database handle could result in
application failure.
* Fix multiple MVCC bugs including a race which could result in incorrect
data being returned to the application.
* Fix a bug where a database store into a Hash database could self-deadlock
in a database environment configured for the Berkeley DB Concurrent Data
Store product and with a free-threaded DB_ENV or DB handle.
* Fix an installation bug where Berkeley DB's PHP header file was not installed
in the correct place.
Bug fixes:
* fixed simple bind with a patch from Pawel Salek (fixes 1753419)
Changes 1.2.2:
Bug fixes:
* fixed a crash when loading the state file on BSD systems (patch from the
NetBSD people)
* make command line argument handling more robust
Changes 1.2.1:
Build Improvements
* fixed a bash expression
Version 8.0-321 (2007-12-02)
* fix Make code that parses queries for updateable resultsets
aware of the ONLY clause. (jurka) Thanks to Oleg Vasylenko.
* fix 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. (jurka)
Version 8.0-320 (2007-07-31)
* add Make setObject recognize a parameter of type java.lang.Byte.
(jurka) Thanks to Boom Roos.
* fix 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.
(jurka) Thanks to Mikko Tiihonen.
* fix Do escape processing on batch Statements prior to execution.
This already worked for PreparedStatements, but not plain
Statements. (jurka) Thanks to Hui Ye.
* fix When retrieving the columns of a function that returns
a complex type, don't retrieve system columns (like xmin/xmax/...)
that you'll find if the type is from a table. (jurka)
* fix Error message was reporting the wrong parameter type
value in the V3 protocol's SimpleParameterList implementation.
(jurka) Thanks to Nathan Keynes.
* fix 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. (jurka)
Thanks to Tom Lane, Oliver Jowett.
Version 8.0-319 (2007-04-18)
* add Implement ResultSet.updateArray by simply mapping it to
updateObject which now works for arrays. (jurka)
* fix 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.
(jurka) Thanks to Leon Do.
* fix Allow updatable ResultSets to update arrays. (jurka)
Thanks to Vasylenko.
Version 8.1-411 (2007-12-02)
* fix 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. (jurka)
Thanks to Eric Faulhaber.
* fix CallableStatements with OUT parameters that get executed
more than prepareThreshold times failed if clearParameters()
was called in between executions. When we've hit the
prepareThreshold, we no longer send Parse messages which invoke
SimpleParameterList.getTypeOID which has side effects required
to setup the parameters correctly. Add an explicit
convertFunctionOutParameters method to do this work instead
that we call in all execution paths. (jurka) Thanks to Ludovico
Bianchini.
* fix 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. (jurka) Thanks to Heikki Linnakangas.
* fix Make code that parses queries for updateable resultsets
aware of the ONLY clause. (jurka) Thanks to Oleg Vasylenko.
* fix 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. (jurka)
Version 8.1-410 (2007-07-31)
* add Make setObject recognize a parameter of type java.lang.Byte.
(jurka) Thanks to Boom Roos.
* fix 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.
(jurka) Thanks to Mikko Tiihonen.
* fix Do escape processing on batch Statements prior to execution.
This already worked for PreparedStatements, but not plain
Statements. (jurka) Thanks to Hui Ye.
* fix Don't return quotes around identifiers in the results of
DatabaseMetaData.getIndexInfo even if they would require quoting
in SQL. (jurka) Thanks to Andrei Badea.
* fix When retrieving the columns of a function that returns
a complex type, don't retrieve system columns (like xmin/xmax/...)
that you'll find if the type is from a table. (jurka)
* fix The previous fix 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. (jurka) Thanks to Luca
Ferrari, Heikki Linnakangas.
* fix Error message was reporting the wrong parameter type
value in the V3 protocol's SimpleParameterList implementation.
(jurka) Thanks to Nathan Keynes.
* fix Backpatch fix to 8.1: 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. (jurka) Thanks to Jan de
Visser and Heikki Linnakangas.
* fix Backpatch fix to 8.1: 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 autocommit
around begin, prepare, commit, and rollback methods. (jurka)
Thanks to Allan Saddi.
* fix 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. (jurka)
Thanks to Tom Lane, Oliver Jowett.
Version 8.1-409 (2007-04-18)
* add Implement ResultSet.updateArray by simply mapping it to
updateObject which now works for arrays. (jurka)
* fix 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.
(jurka) Thanks to Ravi Periasmy.
* fix 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.
(jurka) Thanks to Leon Do.
* fix 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. (jurka) Thanks to Heikki
Linnakangas.
* fix Fix the error message generated by a CallableStatement
not getting results that match the registered out parameters
to report the correct parameter position. (jurka)
* fix 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. (jurka)
* fix Allow updatable ResultSets to update arrays. (jurka)
Thanks to Vasylenko.
* fix 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. (jurka)
Version 8.2-507 (2007-12-02)
* fix 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. (jurka)
Thanks to Eric Faulhaber.
* fix CallableStatements with OUT parameters that get executed
more than prepareThreshold times failed if clearParameters()
was called in between executions. When we've hit the
prepareThreshold, we no longer send Parse messages which invoke
SimpleParameterList.getTypeOID which has side effects required
to setup the parameters correctly. Add an explicit
convertFunctionOutParameters method to do this work instead
that we call in all execution paths. (jurka) Thanks to Ludovico
Bianchini.
* fix The driver was incorrectly parsing identifiers that had
parts that look like dollar quotes. Things like a$b$c are valid
identifiers, not dollar quotes. When determining if a $ we've
found is a dollar quote start, look at the preceding character
and see if it is a valid identifier part to determine if we're
in the midst of an identifier or are starting a new token.
(jurka) Thanks to Michael Paesold.
* fix 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. (jurka) Thanks to Heikki Linnakangas.
* fix Support NULL array elements. (jurka) Thanks to Christian
Schröder.
* fix Make code that parses queries for updateable resultsets
aware of the ONLY clause. (jurka) Thanks to Oleg Vasylenko.
* fix 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. (jurka)
Version 8.2-506 (2007-07-31)
* add Make setObject recognize a parameter of type java.lang.Byte.
(jurka) Thanks to Boom Roos.
* update Brazilian Portuguese translation update. (jurka) Thanks
to Euler Taveira de Oliveira.
* update Serbian translation updates. (jurka) Thanks to Bojan
Skaljac.
* fix 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.
(jurka) Thanks to Mikko Tiihonen.
* fix ResultSet.updateNClob(String, Reader) goes into an infinite
loop. It really meant to call updateNClob(int, Reader), but
was calling itself instead. (jurka) Thanks to Mikko Tiihonen.
* fix Do escape processing on batch Statements prior to execution.
This already worked for PreparedStatements, but not plain
Statements. (jurka) Thanks to Hui Ye.
* fix Don't return quotes around identifiers in the results of
DatabaseMetaData.getIndexInfo even if they would require quoting
in SQL. (jurka) Thanks to Andrei Badea.
* fix When retrieving the columns of a function that returns
a complex type, don't retrieve system columns (like xmin/xmax/...)
that you'll find if the type is from a table. (jurka)
* fix The previous fix 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. (jurka) Thanks to Luca
Ferrari, Heikki Linnakangas.
* fix Error message was reporting the wrong parameter type
value in the V3 protocol's SimpleParameterList implementation.
(jurka) Thanks to Nathan Keynes.
* fix 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. (jurka)
Thanks to Tom Lane, Oliver Jowett.
Version 8.2-505 (2007-04-18)
* add Initial Serbian translation. (jurka) Thanks to Bojan
Skaljac.
* add Implement ResultSet.updateArray by simply mapping it to
updateObject which now works for arrays. (jurka)
* fix 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.
(jurka) Thanks to Ravi Periasmy.
* fix 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.
(jurka) Thanks to Leon Do.
* fix Make Large Object handling work when the oid counter has
exceeded Integer.MAX_VALUE by handling oids as longs. (jurka)
* fix 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. (jurka) Thanks to Heikki
Linnakangas.
* fix Fix the error message generated by a CallableStatement
not getting results that match the registered out parameters
to report the correct parameter position. (jurka)
* fix 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. (jurka)
* fix Change DatabaseMetaData.getSearchStringEscape to always
return "\\" instead of "\\\\". Previously it was assuming that
it would be fed directly into a query and it needed to escape
itself for the backend's input parser. This doesn't work for
things like PreparedStatement parameters or DatabaseMetaData
methods that take patterns. (jurka) Thanks to Valery Meshkov.
* fix Allow updatable ResultSets to update arrays. (jurka)
Thanks to Vasylenko.
* fix 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. (jurka)
* fix Parse timezones that have offsets in seconds. 8.2 servers
now return this information so we must be able to handle it.
(jurka)
This release contains a variety of fixes from 8.1.10, including fixes
for significant security issues.
This is the last 8.1.X release for which the PostgreSQL community will
produce binary packages for Windows. Windows users are encouraged to
move to 8.2.X or later, since there are Windows-specific fixes in 8.2.X
that are impractical to back-port. 8.1.X will continue to be supported
on other platforms.
This release contains a variety of fixes from 8.0.14, including fixes
for significant security issues.
This is the last 8.0.X release for which the PostgreSQL community will
produce binary packages for Windows. Windows users are encouraged to
move to 8.2.X or later, since there are Windows-specific fixes in 8.2.X
that are impractical to back-port. 8.0.X will continue to be supported
on other platforms.
Highlights from NEWS:
- 0.34 | 2007-12-13
- License now GPLv3+ (see COPYING)
- New (database postgres) procs
- pg-finish
- pg-flush
- Tested against PostgreSQL 7.4.18
- 0.33 | 2007-05-20
- New type converters in module (database postgres-types)
int decimal numeric varchar character bytea
- New support for special constructs in (database postgres-qcons)
(in/set A B...) => A IN ( B, ... )
(between A B C) => ( A BETWEEN B AND C )
(any--OP A B) => ( A OP ANY B )
(all--OP A B) => ( A OP ALL B )
For the latter two, OP is a comparison operator, e.g `='.
Parentheses and commas are added automatically.
- 0.32 | 2007-04-11
- New command for `pgtable-manager': #:tuples-result->rows
This uses `(database postgres-resx) result->object-rows'.
For example:
(define T (pgtable-worker ...))
(define R (T #:select ...))
(equal? (T #:tuples-result->rows R)
(map (lambda (x)
(map cdr x))
(T #:tuples-result->alists R)))
=> #t
- 0.31 | 2007-04-03
- Opaque string support removed
Opaque string support in modules (database postgres-table) and
(database postgres-qcons) has been removed. This was announced
in NEWS below for Guile-PG 0.30 (2006-04-04).
- Support for `pgtable-manager' "data commands" removed
Announced in NEWS below for Guile-PG 0.30 (2006-04-04).
- 0.30 | 2006-04-04
- New stuff for `pgtable-manager' (and by extension `pgtable-worker')
- Support for NULL
You can now use the keyword #:NULL to specify NULL as the value
to insert into a table, or to update a column.
- New command: #:update-col-alist
This is like #:update-col, except that the COLS and DATA are
specified as a single alist arg, not separately.
- New (database postgres) procs
The following procs are associated with the `PQPROTOCOLVERSION'
feature in the `pg-guile-pg-loaded' return value. Note that
this is in contrast to the one-to-one correspondance between
feature and libpq function for previous Guile-PG releases.
- pg-protocol-version
- pg-transaction-status
- pg-parameter-status
- pg-set-error-verbosity
- pg-result-error-field
- pg-ftable
- pg-ftablecol
- pg-fformat
These adhere closely to the C functions in the libpq interface.
Here is a table listing the functions and their behavior for
installations prior to PostgreSQL 7.4.
libpq func behavior: do nothing and return
PQprotocolVersion 2
PQtransactionStatus #:unknown
PQparameterStatus #f
PQsetErrorVerbosity #:default
PQresultErrorField #f
PQftable #f
PQftablecol #f
PQfformat #f
- pg-put-copy-data
- pg-put-copy-end
- pg-get-copy-data
These have a simplified, "more Schemey", interface. They cannot
be used when connected to a "Protocol 2.0" (PostgreSQL 7.3.x and
prior) server.
- pg-exec-params
- pg-exec-prepared
- pg-send-query-params
- pg-send-query-prepared
These have a simplified, "more Schemey", interface, and some
serious (though provisionary) restrictions. They cannot be used
when connected to a "Protocol 2.0" (PostgreSQL 7.3.x and prior)
server. See new section "Parameters" in the manual for details.
* Support for setuptools (building .egg, thanks to Torsten)
* Support for matched values control
* Fixed ldif
* ldap.schema.models: SUP now separated by $
* Added constant MOD_INCREMENT to support
modify+increment extension
Changes 2.2.1:
* OpenLDAP 2.3+ required now to build.
* Added support for Cancel operation ext. op. if supported
in OpenLDAP API of the libs used for the build.
* Removed deprecated code for setting options by name
* Added l_ldap_cancel()
Works with both php4 and php5.
Postgresql driver's ServerInfo() function now works properly.
Added a new session handler, in adodb-session2.php.
ADODB_ACTIVE_RECORD, added find() method, and new constructor method
ODBC_DB2 driver now works properly
New BindDate() and BindTimeStamp() functions in connection object
New SetTransactionMode()
Changes:
2007-10-18 Mikio Hirabayashi <mikio@users.sourceforge.net>
- A potential defect related to leaf division of B+ tree was cleared.
- Release: 1.8.77