DBIx::Class::RDBOHelpers implements several methods with the same
names as those in Rose::DBx::Object::MoreHelpers. This class helps
ease compatability issues when using packages that expect these
methods to exist, like Rose::HTMLx::Form::Related and CatalystX::CRUD::YUI.
Most of these are convenience wrappers rather than implementing
any new features.
Upstream changes:
0.14 11 Sept 2008
* fix add_related() to forget_related() after save, so that
next access reflects the addition.
* move column sort disambiguation from
CatalystX::CRUD::YUI::Controller to here.
* support for 0.30 core api param name change
* add 'int' to column types registered as 'treat_like_int'
* fix query for _related methods.
* update tests to support new make_sql_query() format in core API
Pkgsrc changes:
o Add dependency on newly added p5-Search-QueryParser-SQL
Upstream changes:
0.31 16 Sept 2008
* add missing req to Makefile.PL
* force field_names to be an ARRAY ref in Utils make_sql_query()
0.30 11 Sept 2008
* fix uninit value warning in Controller
* change REST create() : Local to _rest_create() :
Path('create') to make it easier for create_form() to
call create() in superclass.
* clean up old style $self->config->{value} to instead use
$self->value in Controller
* add app_class() and model_meta() accessors to ModelAdapter
* in base Controller, rename view_on_single_result() method
to uri_for_view_on_single_result and make accessor for
the config value 'view_on_single_result'
* change all reserved param names in Model::Utils to use
'cxc-' prefix instead of '_'. Backwards compat is preserved
where possible.
* Model::Utils make_query() will uc() sort direction
* change behaviour of get_primary_key() in base Controller
to not look in req->params for pk values.
This allows for changing the PK as part of an update.
* add new() in REST to call next::method. Works around
(some) multiple inheritance issues.
* check for $c->res->location before redirecting in postcommit()
* Model::Utils was refactored to use Search::QueryParser::SQL.
The following methods were affected:
* sql_query_as_string() -- removed
* params_to_sql_query() -- now returns hashref with 3 items:
- query isa Search::QueryParser::SQL::Query object
- query_hash (formerly query) is a simple param-name =>
[values] hashref
- sql is the output of S::QP::S::Query->rdbo
* make_sql_query() -- returned hash ref now has query_hash
as plain_query value and the stringify'd Query object
as plain_query_str
Search::QueryParser::SQL is a subclass of Search::QueryParser.
Chiefly it extends the unparse() method to stringify free-text
search queries as valid SQL WHERE clauses.
The idea is to allow you to treat your database like a free-text
search index, when it really isn't.
This module parses a query string into a data structure to be
handled by external search engines. For examples of such engines,
see File::Tabular and Search::Indexer.
The query string can contain simple terms, "exact phrases", field
names and comparison operators, '+/-' prefixes, parentheses, and
boolean connectors.
Upstream changes:
0.36 30th September 2008
* Added support for $ENV->log_get_config and $ENV->log_set_config.
Patch supplied by Yuval Kogman (#39651 rt.cpan.org)
0.35 22nd September 2008
* Added a combination of independent patches from Claes Jakobsson
and Yuval Kogman (#38896 rt.cpan.org) to allow multi-key return
from a secondard database.
* Added support for sequences. Initial patch from Claes Jakobsson.
* Get associate to use a transaction if one is specified.
#5855 from rt.cpan.org
* Finish transition of test harness to use Test::More
Pkgsrc changes: fix dependency, this Perl module requires XML::SAX::Writer,
not XML::SAX; handle IPv6 support.
Changes since last packaged version (0.34):
perl-ldap 0.38 -- Sun Sep 21 09:17:25 CDT 2008
==============================================
Bug Fixes
* Fix bug in Net::LDAP::Extension using wrong field for resultCode
* Fix Net::LDAP::Control::PasswordPolicy decoding bug.
Enhancements
* Net::LDAP::Extension::SetPassword now supports controls
perl-ldap 0.37 -- Thu Aug 28 07:48:13 CDT 2008
==============================================
Bug Fixes
* Pass correct hostname to SASL when connecting to a round-robin
* Return the SASL error message when sasl client_start fails
Enhancements
* Add Modify Increment (RFC 4525) support
* Add Content Synchronization (RFC 4453) support
perl-ldap 0.36 -- Mon Apr 21 10:00:09 CDT 2008
==============================================
Bug Fixes
* Fixed Net::LDAP::constant to return correct names for values 0 - 9
* Fixed DSML test to be more tolerant of whitespace
Enhancements
* Added controls for PreRead & PostRead
perl-ldap 0.35 -- Sun Mar 30 13:35:04 CDT 2008
==============================================
Bug Fixes
* Fix wrapping in Net::LDAP::LDIF
* Patch from Gergely Santa to allow entries with no attributes in LDIF
* Fix modr?dn to fetch values in sclar context
* send packets in sizes that IO::Socket::SSL can chew
* Avoid attept to use undef as hash reference in ->sync
* Ensure Bind.pm presents final server response to SASL object
Enhancements
* Added vendorName/vendorVersion (RFC 3045) to root_dse()
* add option to support IPv6
* Allow Entry->deleted to be called with a single value is well as array ref
* Added Net::LDAP::Control::PasswordPolicy to support draft RFC
Tokyo Tyrant is a package of network interface to the DBM called Tokyo Cabinet.
Though the DBM has high performance, you might bother in case that multiple
processes share the same database, or remote processes access the database.
Thus, Tokyo Tyrant is provided for concurrent and remote connections to Tokyo
Cabinet. It is composed of the server process managing a database and its
access library for client applications.
The server features high concurrency due to thread-pool modeled implementation
and the epoll/kqueue mechanism of the modern Linux/*BSD kernel. The server and
its clients communicate with each other by simple binary protocol on TCP/IP.
Protocols compatible with memcached and HTTP/1.1 are also supported so that
almost all principal platforms and programming languages can use Tokyo Tyrant.
High availability and high integrity are also featured due to hot such
mechanisms as hot backup, update logging, and replication.
As for now, the server works on Linux, FreeBSD, Mac OS X only.
* detect short/truncated files on open (rrdtool used to crash later
on some platforms)
* stop rrd_resize from altering the original file (mmap side
effect)
* fix VDEF and SHIFT use. Now it returns correct data and does
not crash anymore.
* fix rrd_xport when used on datasources with different
resolutions. This has been broken from day 1 of this tools
exsitance.
* fixed default prefix for ruby install
* added rpath for perl bindings on bsd
* do not [fm]advise past the end of the file since this
causes crashes on sparc.
2008-09-23 Mikio Hirabayashi
* tchdb.c (tchdbputimpl): performance of the ADDINT mode was improved.
* tcbdb.c (tcbdbleafaddrec): performance of the ADDINT mode was improved.
* tcfdb.c (tcfdbputimpl): performance of the ADDINT mode was improved.
* tcutil.c (tcpagealign): new function.
* tchdb.c (tchdbsetxmsiz): the parameter is now rounded up to multiple of the page size.
* tcfdb.c (tcfdbtune): the parameter is now rounded up to multiple of the page size.
* tchdb.c (tcseekwrite, tcseekread, tcseekreadtry): page border handling was added.
- Release: 1.3.11
2008-09-20 Mikio Hirabayashi
* tcutil.c (tcunlock): new function.
* tchdb.c (tchdbsetmutex): useless locking was eliminated.
* tcbdb.c (tcbdbsetmutex): useless locking was eliminated.
* tcfdb.c (tcfdbsetmutex): useless locking was eliminated.
- Release: 1.3.10
2008-09-10 Mikio Hirabayashi
* tchdb.c (tchdblockallrecords, tchdbunlockallrecords): new functions.
* tcfdb.c (tcfdblockallrecords, tcfdbunlockallrecords): new functions.
- Release: 1.3.9
* Fix to STORE TRIGGER - store trigger was running against all nodes
upon subscription
* Portability changes to some tools/ scripts, fixing some
"bash-isms"
* Fix to switch statement in slonik.c; unknown how it broke
* Fix memory leak
Berkeley DB 4.7.x is not officially supported by OpenLDAP yet and there
have been various reports of problems with this combination.
Bump package revision.
- bug #2031221 [auth] Links to version number on login screen
- bug #2032707 [core] PMA does not start if ini_set() is disabled
- bug #2004915 [bookmarks] Saved queries greater than 1000 chars
not displayed
- bug #2037381 [export] Export type "replace" does not work
- bug #2037375 [export] DROP PROCEDURE needs IF EXISTS
- bug #2045512 [export] Numbers in Excel export
+ [lang] Norwegian UTF-8 original file remerged
- bug #2074250 [parser] Undefined variable seen_from
- [security] Code execution vulnerability
This update fixes the security vulnerability reported in PMASA-2008-7.
This is security fix.
For complete changes, please refer
http://dev.mysql.com/doc/refman/5.0/en/releasenotes-cs-5-0-67.html.
Here is a part of it.
Functionality added or changed:
Security Enhancement:
To enable stricter control over the location from which user-defined
functions can be loaded, the plugin_dir system variable has been
backported from MySQL 5.1. If the value is non-empty, user-defined
function object files can be loaded only from the directory named by this
variable. If the value is empty, the behavior that is used before 5.0.67
applies: The UDF object files must be located in a directory that is
searched by your system's dynamic linker. (Bug#37428)
Important Change: Incompatible Change:
The FEDERATED storage engine is now disabled by default in the .cnf files
shipped with MySQL distributions (my-huge.cnf, my-medium.cnf, and so
forth). This affects server behavior only if you install one of these
files. (Bug#37069)
Cluster API: Important Change:
Because NDB_LE_MemoryUsage.page_size_kb shows memory page sizes in bytes
rather than kilobytes, it has been renamed to page_size_bytes. The name
page_size_kb is now deprecated and thus subject to removal in a future
release, although it currently remains supported for reasons of backward
compatibility. See The Ndb_logevent_type Type, for more information about
NDB_LE_MemoryUsage. (Bug#30271)
Important Change:
Some changes were made to CHECK TABLE ... FOR UPGRADE and REPAIR TABLE
with respect to detection and handling of tables with incompatible .frm
files (files created with a different version of the MySQL server). These
changes also affect mysqlcheck because that program uses CHECK TABLE and
REPAIR table, and thus also mysql_upgrade because that program invokes
mysqlcheck.
For complete changes, please refer
http://dev.mysql.com/doc/refman/5.0/en/releasenotes-cs-5-0-67.html.
Here is a part of it.
Functionality added or changed:
Security Enhancement:
To enable stricter control over the location from which user-defined
functions can be loaded, the plugin_dir system variable has been
backported from MySQL 5.1. If the value is non-empty, user-defined
function object files can be loaded only from the directory named by this
variable. If the value is empty, the behavior that is used before 5.0.67
applies: The UDF object files must be located in a directory that is
searched by your system's dynamic linker. (Bug#37428)
Important Change: Incompatible Change:
The FEDERATED storage engine is now disabled by default in the .cnf files
shipped with MySQL distributions (my-huge.cnf, my-medium.cnf, and so
forth). This affects server behavior only if you install one of these
files. (Bug#37069)
Cluster API: Important Change:
Because NDB_LE_MemoryUsage.page_size_kb shows memory page sizes in bytes
rather than kilobytes, it has been renamed to page_size_bytes. The name
page_size_kb is now deprecated and thus subject to removal in a future
release, although it currently remains supported for reasons of backward
compatibility. See The Ndb_logevent_type Type, for more information about
NDB_LE_MemoryUsage. (Bug#30271)
Important Change:
Some changes were made to CHECK TABLE ... FOR UPGRADE and REPAIR TABLE
with respect to detection and handling of tables with incompatible .frm
files (files created with a different version of the MySQL server). These
changes also affect mysqlcheck because that program uses CHECK TABLE and
REPAIR table, and thus also mysql_upgrade because that program invokes
mysqlcheck.
This is primarily so that p5-Net-Z3950-ZOOM can compile without
having pkgsrc-wip checked out (oops!).
MARC::Record provides yet another collection of routines to process MARC
records.
While 1.3.2 did fix the data corruption bug, and was much faster
with creating graphs, it did break badly when you tried to supply
your own font names and sizes. 1.3.3 fixes this regression.
* Do not crash when user tries to select a font in rrdgraph
* Another attempt at makeing it compile out-of-the box on solaris 8
Release Name: 1.2.4
Notes: This release only updates the generated C file to reflect the
compatibility changes that were made to the SWIG file. Binary builds
(e.g., Windows) are not affected, and need no update. In general, you
will not need this update unless you are using a version of Ruby prior
to 1.8.6.
Release Name: 1.2.3
Notes:
Mostly, this release just fixes the permissions
issue on *nix platforms on the database.rb and
translator.rb files. It also has a few
optimizations and compatibility fixes.
Changes:
=== 1.2.3 / 26 Aug 2008
* Fix incorrect permissions on database.rb and translator.rb [Various]
* Avoid using Object#extend for greater speedups [Erik Veenstra]
* Ruby 1.9 compatibility tweaks for Array#zip [jimmy88@gmail.com]
* Fix linking against Ruby 1.8.5 [Rob Holland <rob@inversepath.com>]
Changes:
* Set config.active_record.timestamped_migrations = false to have
migrations with numeric prefix instead of UTC
timestamp. #446.
* Fixed that create database statements would always include "DEFAULT
NULL" [#334]
* change_column_default preserves the not-null constraint. #617
* Add :tokenizer option to validates_length_of to specify how to split
up the attribute string. #507. Example :
# Ensure essay contains at least 100 words.
validates_length_of :essay, :minimum => 100, :too_short => "Your
essay must be at least %d words."), :tokenizer => lambda {|str|
str.scan(/\w+/) }
* Always treat integer :limit as byte length. #420
* Partial updates don't update lock_version if nothing changed. #426
* Fix column collision with named_scope and :joins. #46
* db:migrate:down and :up update schema_migrations. #369
* PostgreSQL: support :conditions => [':foo::integer', { :foo => 1 }]
without treating the ::integer typecast as a bind variable.
* MySQL: rename_column preserves column defaults. #466
* Add :from option to calculations. #397
* Add :validate option to associations to enable/disable the automatic
validation of associated models. Resolves#301.
* PostgreSQL: use 'INSERT ... RETURNING id' for 8.2 and later.
* Added SQL escaping for :limit and :offset in MySQL
Changes:
(from http://www.jcea.es/programacion/pybsddb.htm, some things are
hyperlinks)
bsddb3-4.7.2: RELEASED. (20080807). Testsuite verified in Unix 32 bit
Python 2.3-2.6b2 and Berkeley DB 4.0-4.7.
If you are going to use replication (Replication Manager or Base
Replication), you should use Berkeley DB 4.6 or up. Previous Berkeley
DB versions are unsupported, when using these functionalities.
Available in PYPI. Changes:
* Solved a race condition in Replication Manager testcode.
* Changing any python code, automatically regenerates the Python3
version. The master version is Python2.
* Compatibility with Python 3.0.
* Solved a crash when DB handle creation fails. STINNER Victor -
http://bugs.python.org/issue3307
* Improve internal error checking, as suggested by Neal Norwitz
when reviewing commit 63207 in Python SVN.
* Routines without parameters should be defined so, as suggested
by Neal Norwitz when reviewing commit 63207 in Python SVN. The
resulting code is (marginally) faster, smaller and clearer.
* Routines with a simple object parameter are defines so, as
suggested by Neal Norwitz when reviewing commit 63207 in Python
SVN. The resulting code is (marginally) faster, smaller and clearer.
* Routines taking objects as arguments can parse them better, as
suggested by Neal Norwitz when reviewing commit 63207 in Python
SVN. The resulting code is (marginally) faster, smaller and clearer.
* Improve testsuite behaviour under MS Windows.
* Use ABC (Abstract Base Classes) under Python 2.6 and 3.0.
* Support for "relative imports".
* Replication testcode behaves better in heavily loaded machines.
bsddb3-4.7.1: RELEASED. (20080702). Testsuite verified in Unix 32 bit
Python 2.3-2.6b1 and Berkeley DB 4.0-4.7.
If you are going to use replication (Replication Manager or Base
Replication), you should use Berkeley DB 4.6 or up. Previous Berkeley
DB versions are unsupported, when using these functionalities.
Available in PYPI. Changes:
* Workaround a problem with un-initialized threads with the
replication callback.
* Export "DBRepUnavailError" exception.
* Get rid of Berkeley DB 3.3 support. Rationale:
http://mailman.argo.es/pipermail/pybsddb/2008-March/000019.html
* Better integration between Python test framework and bsddb3.
* Improved Python 3.0 support in the C code.
* Iteration over the database, using the legacy interface, now
raises a RuntimeError if the database changes while iterating.
http://bugs.python.org/issue2669 - gregory.p.smith
* Create "set_private()" and "get_private()" methods for DB and
DBEnv objects, to allow applications to link an arbitrary object to a
DB/DBEnv. Useful for callbacks.
* Support some more base replication calls: "DB_ENV->rep_start",
"DB_ENV->rep_sync", "DB_ENV->rep_set_config",
"DB_ENV->rep_get_config", "DB_ENV->rep_set_limit",
"DB_ENV->rep_get_limit", "DB_ENV->rep_set_request",
"DB_ENV->rep_get_request".
* Support more base replication calls: "DB_ENV->rep_elect",
"DB_ENV->rep_set_transport" and "DB_ENV->rep_process_message". Support
also related flags.
bsddb3-4.7.0: RELEASED. (20080522). Testsuite verified in Unix 32 bit
Python 2.3-2.6a3 and Berkeley DB 4.0-4.7.
bsddb3 4.7.0 compiles against Berkeley DB 4.0-4.7. If you are
upgrading your Berkeley DB environment at the same time, be sure to
read the BDB upgrade notes carefully.
From this release, the only supported Berkeley DB versions are 4.x.
Support for Berkeley DB 3.3 is deprecated and will be deleted. Mailing
list thread discussing this.
Available in PYPI. Changes:
* Support for Berkeley DB 4.7.
* Support "DB_ENV->log_set_config", and related flags.
* Complete the Berkeley DB Replication Manager support:
"DB_ENV->repmgr_site_list" and related flags. "DB_ENV->repmgr_stat",
"DB_ENV->repmgr_stat_print" and related flags.
* Solved an old crash when building with debug python. (Neal Norwitz)
* Extend the testsuite driver to check also against Python 2.6 (a3).
* Support for RPC client service.
bsddb3-4.6.5: The work on this release is transfered to 4.7.0, since
Oracle just published Berkeley DB 4.7.25. (20080521)
Pkgsrc changes:
o Adjust dependencies, 0.29 of CatalystX::CRUD now required
o Canonicalize HOMEPAGE
Upstream changes:
0.13 23 Aug 2008
* support new *_related methods in core API
Pkgsrc changes:
o Sort dependencies according to list in upstream package
o Add overlooked dependency on p5-Class-Accessor
Upstream changes:
0.29 23 Aug 2008
* fix typos in the Tutorial
* add relationship methods to Controller, ModelAdapter and
Model core API.
* added sugary alias methods for read(), update() and
delete() to match CRUD.
* refactored REST controller to support related methods
and provide better HTTP status checks and responses.
In the tradition of Rose::DB::Object::Helpers, more importable methods.
This class inherits from Rose::Object::MixIn. See the Rose::Object::MixIn
documentation for a full explanation of how to import methods from
this class. The helper methods themselves are described below.
Packages Collection.
The Perl 5 module DBIx::Class::TimeStamp is a DBIx::Class component
providing automatic setting and updating of date and time based
fields.
NetBSD Packages Collection.
The Perl 5 module DBIx::Class::DynamicDefault is a DBIx::Class
component for automatically setting and updating fields with values
calculated at runtime.
MAJOR BUG-FIX:
* When running rrdtool update with multiple updates in one go and
MMAP enabled, there was a data corruption bug at wrap around.
See http://oss.oetiker.ch/rrdtool-trac/ticket/178 for details
Thanks to Kevin Brintnall
OTHER FIXES:
* Forward ported rra cur_row randomization patch from rrdtool
1.2.28 (it got lost in development).
* Contrary to the documentation imginfo did return the full path
of the image and not only the file name.
* Make --lazy mode work even when PRINT commands are present.
http://oss.oetiker.ch/rrdtool-trac/ticket/163
* Fix Ruby Bindings memory leak.
* Fix compilation on solaris 2.8
* Fix a ton of memory leaks in rrd_create and some in rrd_tool as
well. Based on valgrind analysis by Sven Engelhardt. Thanks!
* Fix handling of error conditions in rrd_tool.c (errno is not the
ideal indicator)
ENHANCEMENTS:
* Text Strings entered in the current locale will automatically be
transformed to utf8 for proper handling by Pango.
* Dramatically improved Pango Performance by introducing a static
fontmap. On my test system the persistent fontmap causes the
second graph with the same fonts in a single session to be
created about 0.18s faster than the first one. For a total graph
creation time of 0.21s this is a pretty substantial improvement.
With this patch, performance for the second graph is back to
1.2.x levels or even better.
Packages Collection.
The Perl 5 module DBICx::TestDatabase creates a temporary SQLite
database, deploys your DBIC schema, and then connects to it. This
lets you easily test your DBIC schema. Since you have a fresh
database for every test, you don't have to worry about cleaning up
after your tests, ordering of tests affecting failure, etc.
* Split the pager subsystem into separate pager and pcache subsystems.
* Factor out indentifier resolution procedures into separate files.
* Bug fixes.
Berkeley DB 4.7.25 Change Log
Database or Log File On-Disk Format Changes:
1. The log file format changed in 4.7.
New Features:
1. The lock manager may now be fully partitioned, improving performance
on some multi-CPU systems. [#15880]
2. Replication groups are now architecture-neutral, supporting
connections between differing architectures (big-endian or
little-endian, independent of structure padding). [#15787] [#15840]
3. Java: A new Direct Persistence Layer adds a built-in Plain Old Java
Object (POJO)-based persistent object model, which provides support
for complex object models without compromises in performance. For an
introduction to the Direct Persistence Layer API, see Getting Started
with Data Storage. [#15936]
4. Add the DB_ENV->set_intermediate_dir_mode method to support the
creation of intermediate directories needed during recovery. [#15097]
5. The DB_ENV->failchk method can now abort transactions for threads,
which have failed while blocked on a concurrency lock. This
significantly decreases the need for database environment recovery
after thread of control failure. [#15626]
6. Replication Manager clients now can be configured to monitor the
connection to the master using heartbeat messages, in order to
promptly discover connection failures. [#15714]
7. The logging system may now be configured to pre-zero log files when
they are created, improving performance on some systems. [#15758]
Database Environment Changes:
1. Restructure aborted page allocation handling on systems without an
ftruncate system call. This enables the Berkeley DB High Availability
product on systems, which do not support ftruncate. [#15602]
2. Fix a bug where closing a database handle after aborting a transaction
which included a failed open of that handle could result in
application failure. [#15650]
3. Fix minor memory leaks when closing a private database environment.
[#15663]
4. Fix a bug leading to a panic of "unpinned page returned" if a cursor
was used for a delete multiple times and deadlocked during one of the
deletes. [#15944]
5. Optionally signal processes still running in the environment before
running recovery. [#15984]
Concurrent Data Store Changes:
None.
General Access Method Changes:
1. 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. [#15650]
2. Fix a bug that could cause panic in a database environment configured
with POSIX-style thread locking, if a database open failed. [#15662]
3. Fix bug in the DB->compact method which could cause a panic if a
thread was about to release a page while another thread was truncating
the database file. [#15671]
4. Fix an obscure case of interaction between a cursor scan and delete
that was prematurely returning DB_NOTFOUND. [#15785]
5. Fix a bug in the DB->compact method where if read-uncommitted was
configured, a reader reading uncommitted data my see an inconsistent
entry between when the compact method detects an error and when it
aborts the enclosing transaction. [#15856]
6. Fix a bug in the DB->compact method where a thread of control mail
fail if two threads are compacting the same section of a Recno
database. [#15856]
7. Fix a bug in DB->compact method, avoid an assertion failure when zero
pages can be freed. [#15965]
8. Fix a bug return a non-zero error when DB->truncate is called with
open cursors. [#15973]
9. Fix a bug add HANDLE_DEAD checking for DB cursors. [#15990]
10. Fix a bug to now generate errors when DB_SEQUENCE->stat is called
without first opening the sequence. [#15995]
11. Fix a bug to no longer dereference a pointer into a hash structure,
when hash functionality is disabled. [#16095]
Btree Access Method Changes:
None.
Hash Access Method Changes:
1. 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. [#15718]
Queue Access Method Changes:
1. Fix a bug that could cause a put or delete of a queue element to
return a DB_NOTGRANTED error, if blocked. [#15933]
Recno Access Method Changes:
1. Expose db_env_set_func_malloc, db_env_set_func_realloc, and
db_env_set_func_free through the Windows API for the DB dll. [#16045]
C-specific API Changes:
None.
Java-specific API Changes:
1. Fix a bug where enabling MVCC on a database through the Java API was
ignored. [#15644]
2. Fixed memory leak bugs in error message buffering in the Java API.
[#15843]
3. Fix a bug where Java SecondaryConfig was not setting
SecondaryMultiKeyCreator from the underlying db handle [OTN FORUM}
4. Fix a bug so that getStartupComplete will now return a boolean instead
of an int. [#16067]
5. Fix a bug in the Java API, where Berkeley DB would hang on exit when
using replication. [#16142]
Direct Persistence Layer (DPL), Bindings and Collections API:
1. A new Direct Persistence Layer adds a built-in Plain Old Java Object
(POJO)-based persistent object model, which provides support for
complex object models without compromises in performance. For an
introduction to the Direct Persistence Layer API, see Getting Started
with Data Storage. [#15936]
2. Fixed a bug in the remove method of the Iterator instances returned
by the StoredCollection.iterator method in the collections package.
This bug caused ArrayIndexOutOfBoundsException in some cases when
calling next, previous, hasNext or hasPrevious after calling remove.
(Note that this issue does not apply to StoredIterator instances
returned by the StoredCollection.storedIterator method.) This bug was
reported in this forum thread:
http://forums.oracle.com/forums/thread.jspa?messageID=2187896
[#15858]
3. Fixed a bug in the remove method of the StoredIterator instances
returned by StoredCollection.storedIterator method in the collections
package. If the sequence of methods next-remove-previous was called,
previous would sometimes return the removed record. If the sequence of
methods previous-remove-next was called, next would sometimes return
the removed record. (Note that this issue does not apply to Iterator
instances returned by the StoredCollection.iterator method.) [#15909]
4. Fixed a bug that causes a memory leak for applications where many
Environment objects are opened and closed and the CurrentTransaction
or TransactionRunner class is used. The problem was reported in this
JE Forum thread:
http://forums.oracle.com/forums/thread.jspa?messageID=1782659 [#15444]
5. Added StoredContainer.areKeyRangesAllowed method. Key ranges and the
methods in SortedMap and SortedSet such as subMap and subSet are now
explicitly disallowed for RECNO and QUEUE databases -- they are only
supported for BTREE databases. Before, using key ranges in a RECNO or
QUEUE database did not work, but was not explicitly prohibited in the
Collections API. [#15936]
Tcl-specific API Changes:
1. The Berkeley DB Tcl API does not attempt to avoid evaluating input as
Tcl commands. For this reason, it may be dangerous to pass unreviewed
user input through the Berkeley DB Tcl API, as the input may
subsequently be evaluated as a Tcl command. To minimize the
effectiveness of a Tcl injection attack, the Berkeley DB Tcl API in
the 4.7 release routine resets process' effective user and group IDs
to the real user and group IDs. [#15597]
RPC-specific Client/Server Changes:
None.
Replication Changes:
1. Fix a bug where a master failure resulted in multiple attempts to
perform a "fast election"; subsequent elections, when necessary, now
use the normal nsites value. [#15099]
2. Replication performance enhancements to speed up failover. [#15490]
3. Fix a bug where replication could self-block in a database environment
configured for in-memory logging. [#15503]
4. Fix a bug where replication would attempt to read log file version
numbers in a database configured for in-memory logging. [#15503]
5. Fix a bug where log files were not removed during client
initialization in a database configured for in-memory logging.
[#15503]
6. The 4.7 release no longer supports live replication upgrade from the
4.2 or 4.3 releases, only from the 4.4 and later releases. [#15602]
7. Fix a bug where replication could re-request missing records on every
arriving record. [#15629]
8. Change the DB_ENV->rep_set_request method to use time, not the number
of messages, when re-requesting missed messages on a replication
client. [#15629]
9. Fix a minor memory leak on the master when updating a client during
internal initialization. [#15634]
10. Fix a bug where a client error when syncing with a new replication
group master could result in an inability to ever re-join the group.
[#15648]
11. Change dbenv->rep_set_request to use time-based values instead of
counters. [#15682]
12. Fix a bug where a LOCK_NOTGRANTED error could be returned from the
DB_ENV->rep_process_message method, instead of being handled
internally by replication. [#15685]
13. Fix a bug where the Replication Manager would reject a fresh
connection from a remote site that had crashed and restarted,
displaying the message: "redundant incoming connection will be
ignored". [#15731]
14. The Replication Manager now supports dynamic negotiation of the best
available wire protocol version, on a per-connection basis. [#15783]
15. Fix a bug, which could lead to slow performance of internal
initialization under the Replication Manager, as evidenced by "queue
limit exceeded" messages in verbose replication diagnostic output.
[#15788]
16. Fix a bug where replication control message were not portable between
replication clients with different endian architectures. [#15793]
17. Add a configuration option to turn off Replication Manager's special
handling of elections in 2-site groups. [#15873]
18. Fix a bug making it impossible to call replicationManagerAddRemoteSite
in the Java API after having called replicationManagerStart. [#15875]
19. Fix a bug where the DB_EVENT_REP_STARTUPDONE event could be triggered
too early. [#15887]
20. Fix a bug where the rcvd_ts timestamp is reset when the user just
changes the threshold. [#15895]
21. Fix a bug where the master in a 2-site replication group might wait
for client acknowledgement, even when there was no client connected.
[#15927]
22. Fix a bug, clean up and restart internal init if master log is gone.
[#16006]
23. Fix a bug, ignore page messages that are from an old internal init.
[#16075] [#16059]
24. Fix a bug where checkpoint records do not indicate a database was a
named in-memory database. [#16076]
25. Fix a bug with in-memory replication, where we returned with the log
region mutex held in an error path, leading to self-deadlock. [#16088]
26. Fix a bug which causes the DB_REP_CHECKPOINT_DELAY setting in
rep_set_timeout() to be interpreted in seconds, rather than
microseconds. [#16153]
XA Resource Manager Changes:
1. Fix a bug where the DB_ENV->failchk method and replication in general
could fail in database environments configured for XA. [#15654]
Locking Subsystem Changes:
1. Fix a bug causing a lock or transaction timeout to not be set properly
after the first timeout triggers on a particular lock id. [#15847]
2. Fix a bug that would cause a trap if DB_ENV->lock_id_free was passed
an invalid locker id. [#16005]
3. Fix a bug when thread tracking is enabled where an attempt is made to
release a mutex that is not lock. [#16011]
Logging Subsystem Changes:
1. Fix a bug, handle zero-length log records doing HA sync with in-memory
logs. [#15838]
2. Fix a bug that could cause DB_ENV->failcheck to leak log region
memory. [#15925]
3. Fix a bug where the abort of a transaction that opened a database
could leak log region memory. [#15953]
4. Fix a bug that could leak memory in the DB_ENV->log_archive interface
if a log file was not found. [#16013]
Memory Pool Subsystem Changes:
1. Fix multiple MVCC bugs including a race, which could result in
incorrect data being returned to the application. [#15653]
2. Fixed a bug that left an active file in the buffer pool after a
database create was aborted. [#15918]
3. Fix a bug where there could be uneven distribution of pages if a
single database and multiple cache regions are configured. [#16015]
4. Fix a bug where DB_MPOOLFILE->set_maxsize was dropping the wrong mutex
after open. [#16050]
Mutex Subsystem Changes:
1. Fix a bug where mutex contention in database environments configured
for hybrid mutex support could result in performance degradation.
[#15646]
2. Set the DB_MUTEX_PROCESS_ONLY flag on all mutexes in private
environments, they can't be shared and so we can use the faster,
intra-process only mutex implementations [#16025]
3. Fix a bug so that mutexes are now removed from the environment
signature if mutexes are disabled. [#16042]
Transaction Subsystem Changes:
1. Fix a bug that could cause a checkpoint to selfblock attempting to
flush a file, when the file handle was closed by another thread during
the flush. [#15692]
2. Fix a bug that could cause DB_ENV->failcheck to hang if there were
pending prepared transactions in the environment. [#15925]
3. Prepared transactions will now use the sync setting from the
environment. Default to flushing the log on commit (was nosync).
[#15995]
4. If __txn_getactive fails, we now return with the log region mutex
held. This is not a bus since __txn_getactive cannot really fail.
[#16088]
Utility Changes:
1. Update db_stat with -x option for mutex stats
2. Fix an incorrect assumption about buffer size when getting an overflow
page in db_verify. [#16064]
Configuration, Documentation, Sample Application, Portability and Build
Changes:
1. Fix an installation bug where the Berkeley DB PHP header file was not
installed in the correct place.
2. Merge the run-time configuration sleep and yield functions. [#15037]
3. Fix Handle_DEAD and other expected replication errors in the C++
sample application ReqQuoteExample.cpp. [15568]
4. Add support for monotonic timers. [#15670]
5. Fix bugs where applications using the db_env_func_map and
db_env_func_unmap run-time configuration functions could not join
existing database environments, or open multiple DB_ENV handles for a
single environment. [#15930]
6. Add documentation about building Berkeley DB for VxWorks 6.x.
7. Remove the HAVE_FINE_GRAINED_LOCK_MANAGER flag, it is obsolete in 4.7.
8. Fix a bug in ex_rep, add a missing break which could cause a segment
fault.
9. Fix build warnings from 64 bit Windows build. [#16029]
10. Fix an alignment bug on ARM Linux. Force the assignment to use
memcpy. [#16125]
11. Fix a bug in the Windows specific code of ex_sequence.c, where there
was an invalide printf specifier. [#16131]
12. Improve the timer in ex_tpcb to use high resolution timers. [#16154]
13. Mention in the documentation that env->open() requires DB_THREAD to be
specified when using repmgr. [#16163]
14. Disable support for mmap on Windows CE. The only affect is that we do
not attempt to mmap small read only databases into the mpool. [#16169]
2.5.0:
- Windows binaries are now cross-built using mingw on Linux
- import various fixes from Python 2.6 version
- Connection has new method iterdump() that allows you to create a script file
that can be used to clone a database
- the docs are now built using Sphinx and were imported from Python 2.6's
sqlite3 module
- Connection.enable_load_extension(enabled) to allow/disallow extension
loading. Allows you to use fulltext search extension, for example ;-)
- Give the remaining C functions used in multiple .c source files the pysqlite_
prefix.
- Release GIL during sqlite3_prepare() calls for better concurrency.
- Automatically download the SQLite amalgamation when building statically.
2.4.1:
- Made unicode strings for the database parameter in connect() work again
- Removed bad defaults from setup.cfg
2.4.0:
- Implemented context managers. pysqlite's connections can now be used as
context managers with Python 2.5 or later:
from __future__ import with_statement
from pysqlite2 import dbapi2 as sqlite
con = sqlite.connect(":memory:")
con.execute("create table person (id integer primary key, firstname varchar unique)")
# Successful, con.commit() is called automatically afterwards
with con:
con.execute("insert into person(firstname) values (?)", ("Joe",))
# con.rollback() is called after the with block finishes with an exception, the
# exception is still raised and must be catched
try:
with con:
con.execute("insert into person(firstname) values (?)", ("Joe",))
except sqlite.IntegrityError:
print "couldn't add Joe twice"
- pysqlite connections can now be created from APSW connections. This enables
users to use APSW functionality in applications using the DB-API from
pysqlite:
from pysqlite2 import dbapi2 as sqlite
import apsw
apsw_con = apsw.Connection(":memory:")
apsw_con.createscalarfunction("times_two", lambda x: 2*x, 1)
# Create pysqlite connection from APSW connection
con = sqlite.connect(apsw_con)
result = con.execute("select times_two(15)").fetchone()[0]
assert result == 30
con.close()
Caveat: This will only work if both pysqlite and APSW are dynamically
linked against the same SQLite shared library. Otherwise you will
experience a segfault.
- Fixed shuffled docstrings for fetchXXX methods.
- Workaround for SQLite 3.5.x versions which apparently return NULL for
"no-operation" statements.
- Disable the test for rollback detection on old SQLite versions. This prevents
test failures on systems that ship outdated SQLite libraries like MacOS X.
- Implemented set_progress_handler for progress callbacks from SQLite. This is
particularly useful to update GUIs during long-running queries. Thanks to
exarkun for the original patch.