* Support Berkeley DB 5.3.x.
* Drop support for Berkeley DB 4.2 and Python 2.3. Our reference
is Red Had Enterprise Linux 5, until march 2014.
* Support for "DBEnv->set_intermediate_dir()", available in
Berkeley DB 4.3-4.6. Patch by Garret Cooper.
* Support for "DB->set_dup_compare()". Original patches by
Nikita M. Kozlovsky and Ben Schmeckpeper.
* Fixed a testsuite compatibility problem with BDB 5.2.
* If we are running Solaris or derivatives, and 64bit python,
try to find the library under "/usr/local/Berkeley.*.*/64/".
* Solaris 10 Update 10 exposes a very old race condition in the replication
master election tests. Some details in
https://forums.oracle.com/forums/thread.jspa?messageID=9902860 .
Workaround proposed in a private email from Paula Bingham (Oracle),
in 20110929.
* When doing the full matrix test for a release, stop the verification
if any test failed.
* Added support for verifying named in-memory dbs.
* Added an integer key comparison function to improve performance through the
SQL API.
* Support build on the platforms where pthread_t is a struct.
* Added an API call so the user can specify the size of the region in a heap db.
* Improved Replication Manager's ability to recover from the (perhaps rare)
phenomenon of two sites trying to connect to each other simultaneously, which
used to result in loss of both connections, requiring a retry after the
CONNECTION_RETRY timeout period.
* Enhanced the interface for copying databases for a hot backup. Added configure
support for --enable-atomicfileread.
* Enhaced the log reading routine to detect that a log file is missing rather
than returning that a zero length record was found.
* Added pragma bdbsql_shared_resources to set or report the maximum amount of
memory to be used by shared structures in the main environment region and
bdbsql_lock_tablesize to set or report the number of buckets in the lock
object hash table. These are advanced tuning features for applications with
large number of tables or needs to reduce locking on concurrent long running
transactions.
* Added set_metadata_dir() and get_metadata_dir() to enable storage of
persistent metadata files in a location other than the environment home
directory.
* Improved the error handling through the SQL API. Errors can be sent to a file
with the use of the BDBSQL_ERROR_FILE pragma.
* Database handles can now be configured to give exclusive access to the
database.
* XA transactions will now use transaction snapshots if the XA databases they
operate on were configured with DB_MULTIVERSION.
* Added additional stats fields into the C# API
* Added pragma bdbsql_single_process to keep the Berkeley DB environment
information on the heap instead of in shared memory. This option cannot be
used if the database is accessed from multiple processes.
* Improved the ability of DB->compact to move DB_HASH database pages to the
begining of the file.
* The default schema format number is changed from 1 to 4. This means that,
unless the PRAGMA legacy_file_format=ON statement is run, newly created
database files will be unreadable by version of SQLite prior to 3.3.0
(2006-01-10). It also means that the descending indices are enabled by
default.
* The sqlite3_pcache_methods structure and the SQLITE_CONFIG_PCACHE and
SQLITE_CONFIG_GETPCACHE configuration parameters are deprecated. They are
replaced by a new sqlite3_pcache_methods2 structure and SQLITE_CONFIG_PCACHE2
and SQLITE_CONFIG_GETPCACHE2 configuration parameters.
* Added the powersafe overwrite property to the VFS interface. Provide the
SQLITE_IOCAP_POWERSAFE_OVERWRITE I/O capability, the
SQLITE_POWERSAFE_OVERWRITE compile-time option, and the "psow=BOOLEAN" query
parameter for URI filenames.
* Added the sqlite3_db_release_memory() interface and the shrink_memory pragma.
* Added the sqlite3_db_filename() interface.
* Added the sqlite3_stmt_busy() interface.
* Added the sqlite3_uri_boolean() and sqlite3_uri_int64() interfaces.
* If the argument to PRAGMA cache_size is negative N, that means to use
approximately -1024*N bytes of memory for the page cache regardless of the
page size.
* Enhanced the default memory allocator to make use of _msize() on windows,
malloc_size() on Mac, and malloc_usable_size() on Linux.
* Enhanced the query planner to support index queries with range constraints on
the rowid.
* Enhanced the query planner flattening logic to allow UNION ALL compounds to
be promoted upwards to replace a simple wrapper SELECT even if the compounds
are joins.
* Enhanced the query planner so that the xfer optimization can be used with
INTEGER PRIMARY KEY ON CONFLICT as long as the destination table is initially
empty.
* Enhanced the windows VFS so that all system calls can be overridden using the
xSetSystemCall interface.
* Updated the "unix-dotfile" VFS to use locking directories with mkdir() and
rmdir() instead of locking files with open() and unlink().
* Enhancements to the test_quota.c extension to support stdio-like interfaces
with quotas.
* Change the unix VFS to be tolerant of read() system calls that return less
then the full number of requested bytes.
* Change both unix and windows VFSes to report a sector size of 4096 instead of
the old default of 512.
* In the TCL Interface, add the -uri option to the "sqlite3" TCL command used
for creating new database connection objects.
* Added the SQLITE_TESTCTRL_EXPLAIN_STMT test-control option with the
SQLITE_ENABLE_TREE_EXPLAIN compile-time option to enable the command-line
shell to display ASCII-art parse trees of SQL statements that it processes,
for debugging and analysis.
* Bug fix: Add an additional xSync when restarting a WAL in order to prevent an
exceedingly unlikely but theoretically possible database corruption following
power-loss.
* Bug fix: Change the VDBE so that all registers are initialized to Invalid
instead of NULL.
* Bug fix: Fix problems that can result from 32-bit integer overflow.
* InnoDB Storage Engine: Issuing INSERT...ON DUPLICATE KEY statements for
InnoDB tables from concurrent threads could cause a deadlock, particularly
with the INSERT...ON DUPLICATE KEY UPDATE form. The fix avoids deadlocks
caused by the same row being accessed by more than one transaction. Deadlocks
could still occur when multiple rows are inserted and updated simultaneously
by different transactions in inconsistent order; those types of deadlocks
require the standard error handling on the application side, of re-trying the
transaction.
* An incorrect InnoDB assertion could cause the server to halt. This issue only
affected debug builds. The assertion referenced the source file btr0pcur.ic
and the variable cursor->pos_state.
* The handle_segfault() signal-handler code in mysqld could itself crash due to
calling unsafe functions.
* ARCHIVE tables with NULL columns could cause server crashes or become corrupt
under concurrent load.
* Enabling myisam_use_mmap could cause the server to crash.
* Concurrent access to ARCHIVE tables could cause corruption.
* A new server option, --slow-start-timeout, controls the Windows service
control manager's service start timeout. The value is the maximum number of
milliseconds that the service control manager waits before trying to kill the
MySQL service during startup. The default value is 15000 (15 seconds). If the
MySQL service takes too long to start, you may need to increase this value.
A value of 0 means there is no timeout.
Bugs Fixed:
* Important Change: Replication: Setting an empty user in a CHANGE MASTER TO
statement caused an invalid internal result and is no longer permitted. Trying to use MASTER_USER='' or setting MASTER_PASSWORD while leaving MASTER_USER
unset causes the statement to fail with an error.
* Important Change: Replication: Moving the binary log file, relay log file, or
both files to a new location, then restarting the server with a new value for
--log-bin, --relay-log, or both, caused the server to abort on start. This
was because the entries in the index file overrode the new location. In
addition, paths were calculated relative to datadir (rather than to the
--log-bin or --relay-log values).
* InnoDB Storage Engine: When doing a live downgrade from MySQL 5.6.4 or later, with innodb_page_size set to a value other than 16384, now the earlier MySQL
version reports that the page size is incompatible with the older version,
rather than crashing or displaying a “corruption” error.
* InnoDB Storage Engine: Issuing INSERT...ON DUPLICATE KEY statements for
InnoDB tables from concurrent threads could cause a deadlock, particularly
with the INSERT...ON DUPLICATE KEY UPDATE form. The fix avoids deadlocks
caused by the same row being accessed by more than one transaction. Deadlocks
could still occur when multiple rows are inserted and updated simultaneously
by different transactions in inconsistent order; those types of deadlocks
require the standard error handling on the application side, of re-trying the
transaction.
* An incorrect InnoDB assertion could cause the server to halt. This issue only
affected debug builds. The assertion referenced the source file btr0pcur.ic
and the variable cursor->pos_state.
* Locale information for FORMAT() function instances was lost in view
definitions.
* The handle_segfault() signal-handler code in mysqld could itself crash due to
calling unsafe functions.
* Enabling myisam_use_mmap could cause the server to crash.
* Concurrent access to ARCHIVE tables could cause corruption.
is useful to disable it if OpenLDAP was linked with pkgsrc's OpenSSL, since
nss_ldap will pull the base system OpenSSL dependency through Kerberos
libraries, leading to crashes because of multiple incomaptible libcrypto
linked.
PostGIS 1.5.3
2011/06/25
- This is a bug fix release, addressing issues that have been
filed since the 1.5.2 release.
- Bug Fixes
- #1056, produce correct bboxes for arc geometries, fixes index errors
(Paul Ramsey)
- #1007, ST_IsValid crash - fix requires GEOS 3.3.0+ or 3.2.3+
(Sandro Santilli, reported by Birgit Laggner)
- #940, support for PostgreSQL 9.1 beta 1
(Regina Obe, Paul Ramsey, patch submitted by stl)
- #845, ST_Intersects precision error (Sandro Santilli, Nicklas Avén)
Reported by cdestigter
- #884, Unstable results with ST_Within, ST_Intersects (Chris Hodgson)
- #779, shp2pgsql -S option seems to fail on points (Jeff Adams)
- #666, ST_DumpPoints is not null safe (Regina Obe)
- #631, Update NZ projections for grid transformation support (jpalmer)
- #630, Peculiar Null treatment in arrays in ST_Collect (Chris Hodgson)
Reported by David Bitner
- #624, Memory leak in ST_GeogFromText (ryang, Paul Ramsey)
- #609, Bad source code in manual section 5.2 Java Clients
(simoc, Regina Obe)
- #604, shp2pgsql usage touchups (Mike Toews, Paul Ramsey)
- #573 ST_Union fails on a group of linestrings
Not a PostGIS bug, fixed in GEOS 3.3.0
- #457 ST_CollectionExtract returns non-requested type
(Nicklas Avén, Paul Ramsey)
- #441 ST_AsGeoJson Bbox on GeometryCollection error (Olivier Courtin)
- #411 Ability to backup invalid geometries (Sando Santilli)
Reported by Regione Toscana
- #409 ST_AsSVG - degraded (Olivier Courtin)
Reported by Sdikiy
- #373 Documentation syntax error in hard upgrade (Paul Ramsey)
Reported by psvensso
PostGIS 1.5.2
2010/09/27
- This is a bug fix release, addressing issues that have been
filed since the 1.5.1 release.
- Bug Fixes
- Loader: fix handling of empty (0-verticed) geometries in shapefiles.
(Sandro Santilli)
- #536, Geography ST_Intersects, ST_Covers, ST_CoveredBy and
Geometry ST_Equals not using spatial index (Regina Obe, Nicklas Avén)
- #573, Improvement to ST_Contains geography
- Loader: Add support for command-q shutdown in Mac GTK build (Paul Ramsey)
- #393, Loader: Add temporary patch for large DBF files
(Maxime Guillaud, Paul Ramsey)
- #507, Fix wrong OGC URN in GeoJSON and GML output (Olivier Courtin)
- spatial_ref_sys.sql Add datum conversion for projection SRID 3021
(Paul Ramsey)
- Geography - remove crash for case when all geographies are out of
the estimate (Paul Ramsey)
- #469, Fix for array_aggregation error (Greg Stark, Paul Ramsey)
- #532, Temporary geography tables showing up in other user sessions
(Paul Ramsey)
- #562, ST_Dwithin errors for large geographies (Paul Ramsey)
- #513, shape loading GUI tries to make spatial index when loading DBF only
mode (Paul Ramsey)
- #527, shape loading GUI should always append log messages
(Mark Cave-Ayland)
- #504 shp2pgsql should rename xmin/xmax fields (Sandro Santilli)
- #458 postgis_comments being installed in contrib instead of
version folder (Mark Cave-Ayland)
- #474 Analyzing a table with geography column crashes server
(Paul Ramsey)
- #581 LWGEOM-expand produces inconsistent results
(Mark Cave-Ayland)
- #471 DocBook dtd errors (Olivier Courtin)
- Fix further build issues against PostgreSQL 9.0
(Mark Cave-Ayland)
- #572 Password whitespace for Shape File to PostGIS
Import not supported (Mark Cave-Ayland)
- #603: shp2pgsql: "-w" produces invalid WKT for MULTI* objects.
(Mark Cave-Ayland)
- Enhancement
- #513 Add dbf filter to shp2pgsql-gui and allow uploading dbf only
(Paul Ramsey)
* Internationalization
This version of GDBM is fully internationalized. The following
localizations are available: Finnish, German, Japanese, Polish and Ukrainian.
* Support for close-on-exec flag in gdbm_open (see GDBM_CLOEXEC in the docs).
* Improve testgdbm command system
The testgdbm tool now supports multicharacter commands.
* Bugfixes
Postgresql upstream does not use libtool. pkgsrc used to change
postgresql to use libtool, and this package was written to use the
pkgsrc-added libtool support. pkgsrc no longer modifies postgresql to
use libtool, so postgis did not build.
In addition to backing out all the make-postgis-use-libtool packages,
this commit adds a patch to add rpath to the PGSQL_FE_LDFLAGS, which
upstream hand constructs from pg_config output.
PKGREVISION++, but no change in version or functionality (from the
previous state, which also didn't build) intended.
0.9.12
-----
* On windows, the default ldap library became wldap32;
* Fixed compile with ruby 1.9.2.
Thank to Hiroki Najima!
* Fixed many memory leaks;
* Added functions:
LDAP::Conn.open_uri(uri);
LDAP::explode_dn(dn, notypes);
LDAP::explode_rdn(rdn, notypes).
Thanks to Marek Veber and Antonio Terceiro!
* Fixed bug in ldap/ldif.rb (GH-6).
Thanks to bbense.
* Fixed LDAP::Mod data corruption.
Thanks to Aprotim Sanyal!
* Enable client certificate authentication for mozilla ldap 6.0 only.
Thanks to Yuri Arabadji!
- bug #3442028 [edit] Inline editing enum fields with null shows
no dropdown
- bug #3442004 [interface] DB suggestion not correct for user with
underscore
- bug #3438420 [core] Magic quotes removed in PHP 5.4
- bug #3398788 [session] No feedback when result is empty
(signon auth_type)
- bug #3384035 [display] Problems regarding ShowTooltipAliasTB
- bug #3306875 [edit] Can't rename a database that contains views
- bug #3452506 [edit] Unable to move tables with triggers
- bug #3449659 [navi] Fast filter broken with table tree
- bug #3448485 [GUI] Firefox favicon frameset regression
- [core] Better compatibility with mysql extension
- [security] Self-XSS on export options (export server/database/table),
see PMASA-2011-20
- [security] Self-XSS in setup (host parameter), see PMASA-2011-19
Changes:
* Support SpiderMonkey 1.8.5
* Add configurable maximum to the number of bytes returned by _log.
* Allow CommonJS modules to be an empty string.
* Bump minimum Erlang version to R13B02.
* Do not run deleted validate_doc_update functions.
* ETags for views include current sequence if include_docs=true.
* Fix bug where duplicates can appear in _changes feed.
* Fix bug where update handlers break after conflict resolution.
* Fix bug with _replicator where include "filter" could crash couch.
* Fix crashes when compacting large views.
* Fix file descriptor leak in _log
* Fix missing revisions in _changes?style=all_docs.
* Improve handling of compaction at max_dbs_open limit.
* JSONP responses now send "text/javascript" for Content-Type.
* Link to ICU 4.2 on Windows.
* Permit forward slashes in path to update functions.
* Reap couchjs processes that hit reduce_overflow error.
* Status code can be specified in update handlers.
* Support provides() in show functions.
* _view_cleanup when ddoc has no views now removes all index files.
* max_replication_retry_count now supports "infinity".
* Fix replication crash when source database has a document with empty ID.
* Fix deadlock when assigning couchjs processes to serve requests.
* Fixes to the document multipart PUT API.
* Fixes regarding file descriptor leaks for databases with views.
Adapt for db4 update post 4.5.
Now dies with segfault during build:
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr
[1] Abort trap (core dumped) ./cstoreqptest 0...
Depends on Ruby on Rails 3 and here is CHANGELOG although it would not
be complete one.
* (16 Jun 2008) Backwards Compatibility is overrated (big updates for rails 2.1)
* Use ActiveRecord 2.1's dirty attribute checking instead [Asa Calow]
* Remove last traces of #non_versioned_fields
* Remove AR::Base.find_version and AR::Base.find_versions, rely on AR association proxies and named_scope
* Remove #versions_count, rely on AR association counter caching.
* Remove #versioned_attributes, basically the same as AR::Base.versioned_columns
* (5 Oct 2006) Allow customization of #versions association options [Dan Peterson]
*0.5.1*
* (8 Aug 2006) Versioned models now belong to the unversioned model. @article_version.article.class => Article [Aslak Hellesoy]
*0.5* # do versions even matter for plugins?
* (21 Apr 2006) Added without_locking and without_revision methods.
Foo.without_revision do
@foo.update_attributes ...
end
*0.4*
* (28 March 2006) Rename non_versioned_fields to non_versioned_columns (old one is kept for compatibility).
* (28 March 2006) Made explicit documentation note that string column names are required for non_versioned_columns.
*0.3.1*
* (7 Jan 2006) explicitly set :foreign_key option for the versioned model's belongs_to assocation for STI [Caged]
* (7 Jan 2006) added tests to prove has_many :through joins work
*0.3*
* (2 Jan 2006) added ability to share a mixin with versioned class
* (2 Jan 2006) changed the dynamic version model to MyModel::Version
*0.2.4*
* (27 Nov 2005) added note about possible destructive behavior of if_changed? [Michael Schuerig]
Dm-rails provides the railtie that allows datamapper to hook into rails3 and
thus behave like a rails framework component. Just like activerecord does in
rails, dm-rails uses the railtie API to hook into rails. The two are actually
hooked into rails almost identically.
Creating new datamapper apps on rails3 from scratch is actually really easy.
The following will guide you through the process.
This package brings tagging to DataMapper. It is inspired by Acts As Taggable
On by Michael Bleigh, github's mbleigh. Props to him for the contextual
tagging based on Acts As Taggable on Steroids.
== Features and Problems
=== Features
* Contextual tagging using Model.has_tags_on (see below for usage)
* Traditional 'tags-only' tagging using Model.has_tags
=== Problems
* None known yet, but this is very alpha software. Sorry if it misbehaves.
Please send me a github message if you find a bug.
dm-sweatshop is a model factory for DataMapper. It makes it easy & painless
to crank out complex pseudo random models -- useful for tests and seed data.
Production Goals:
* Easy generation of random models with data that fits the application domain.
* Simple syntax for declaring and generating model patterns.
* Add context to model patterns, allowing grouping and
* Effortlessly generate or fill in associations for creating complex models
with few lines of code.
DataMapper plugin enabling <b>simple</b> versioning of models.
When a model is versioned, and updated, instead of the previous version being
lost in the mists of time, it is saved in a subsidiary table, so that it can
be restored later if needed.
Please Note! this gem behaves differently to how AR's :acts_as_versioned
works. There is currently no multi version storage possible.
DataMapper plugin enabling easy creation of tree structures from your DM models.
This requires a foreign key property for your model, which by default would be
called :parent_id.
DataMapper plugin that adds state machine functionality to your models.
== Why is this plugin useful?
Your DataMapper resource might benefit from a state machine if it:
* has different "modes" of operation
* has discrete behaviors
* especially if the behaviors are mutually exclusive
And you want a clean, high-level way of describing these modes / behaviors
and how the resource moves between them. This plugin allows you to
declaratively describe the states and transitions involved.
A DataMapper search plugin api to search for resources from one repository and
load from another.
Typically a full text search adapter that can only produce partial resources is
searched and the resulting resource collection is then loaded from your default
repository.
DataMapper plugin allowing the creation of nested sets from data models.
Provides all the same functionality as dm-is-tree, plus tons more! Read on.
== What is a nested set?
Nested set is a clever model for storing hierarchical data in a flat table.
Instead of (only) storing the id of the parent on each node, a nested set puts
all nodes in a clever structure (see Example below). That is what makes it
possible to get the all of the descendants (not only immediate children),
ancestors, or siblings, in one single query to the database.
The only downside to nested sets (compared to trees] is that the queries it
takes to know these things, and to move nodes around in the tree are rather
complex. That is what this plugin takes care of (+ lots of other neat stuff)!
Nested sets are a good choice for most kinds of ordered trees with more than
two levels of nesting. Very good for menus, categories, and threaded posts.
Drop ${PHP_BASE_VARS} from PKGVERSION by default.
It used to be required to support multiple php version.
But after PHP version based ${PHP_PKG_PREFIX} was introduced,
such trick is not required anymore.
In addition to this, such version name schme invokes unwanted version bump
when base php version is bumped, plus, such version scheme is hard to
use for DEPENDS pattern.
To avoid downgrading of package using such legacy version scheme,
PECL_LEGACY_VERSION_SCHEME is introduced.
If it is defined, current version scheme is still used for currently
supported PHP version (5 and 53), but instead of ${PHP_BASE_VARS},
current fixed PHP base version in pkgsrc is used to avoid unwanted version bump
from update of PHP base package.
With newer PHP (54, or so on), new version scheme will be used if
it is defined.
This trick will not be required and should be removed after php5 and php53 will
be gone away from pkgsrc.
This release is focused on bug fixes, performance improvements,
internal refactoring and Rails 3.1 compatibility. Please give it a try
and in case of any issues please report them on Github.
* #valid? is always called even if a resource is not dirty
* Issues with JRuby and unicode were fixed
* Massive internal clean-up towards future rewrite that will make validations
even more awesome
* alter table is fixed for postgres
* Property options (such as :length) are now correctly used in migrations
* Support to specify table options when creating a table was added (for things
like db engines in mysql etc.)
* Fix bug related to migrating custom types derived from builtin types
* STI queries no longer include the top-level class name
* UnderscoredAndPluralizedWithoutLeadingModule naming convention was added
belongs_to supports :unique option
* Validation of property names was improved
* Resource[] and Resource[]= no longer fail when property name is not known
* Redundant usage of chainable was removed resulting in a better performance
* Boolean property typecasting was refactored
* Various issues with setting default Property options were fixed
* Resource#attributes= no longer use public_method_defined? - this is a
security fix preventing possible DDOS attacks
* Problems with auto-migrations in multiple repositories were fixed
* Encoding problems with Binary property are fixed
## Rails 3.1.3 (unreleased) ##
* Perf fix: If we're deleting all records in an association, don't add a IN(..) clause
to the query. *GH 3672*
*Jon Leighton*
* Fix bug with referencing other mysql databases in set_table_name. *GH 3690*
* Fix performance bug with mysql databases on a server with lots of other databses. *GH 3678*
*Christos Zisopoulos and Kenny J*
## Rails 3.1.2 (unreleased) ##
* Fix problem with prepared statements and PostgreSQL when multiple schemas are used.
*GH #3232*
*Juan M. Cuello*
* Fix bug with PostgreSQLAdapter#indexes. When the search path has multiple schemas, spaces
were not being stripped from the schema names after the first.
*Sean Kirby*
* Preserve SELECT columns on the COUNT for finder_sql when possible. *GH 3503*
*Justin Mazzi*
* Reset prepared statement cache when schema changes impact statement results. *GH 3335*
*Aaron Patterson*
* Postgres: Do not attempt to deallocate a statement if the connection is no longer active.
*Ian Leitch*
* Prevent QueryCache leaking database connections. *GH 3243*
*Mark J. Titorenko*
* Fix bug where building the conditions of a nested through association could potentially
modify the conditions of the through and/or source association. If you have experienced
bugs with conditions appearing in the wrong queries when using nested through associations,
this probably solves your problems. *GH #3271*
*Jon Leighton*
* If a record is removed from a has_many :through, all of the join records relating to that
record should also be removed from the through association's target.
*Jon Leighton*
* Fix adding multiple instances of the same record to a has_many :through. *GH #3425*
*Jon Leighton*
* Fix creating records in a through association with a polymorphic source type. *GH #3247*
*Jon Leighton*
* MySQL: use the information_schema than the describe command when we look for a primary key. *GH #3440*
*Kenny J*
## Rails 3.1.1 (October 7, 2011) ##
* Raise an exception if the primary key of a model in an association is needed
but unknown. Fixes#3207.
*Jon Leighton*
* Add deprecation for the preload_associations method. Fixes#3022.
*Jon Leighton*
* Don't require a DB connection when loading a model that uses set_primary_key. GH #2807.
*Jon Leighton*
* Fix using select() with a habtm association, e.g. Person.friends.select(:name). GH #3030 and
\#2923.
*Hendy Tanata*
* Fix belongs_to polymorphic with custom primary key on target. GH #3104.
*Jon Leighton*
* CollectionProxy#replace should change the DB records rather than just mutating the array.
Fixes#3020.
*Jon Leighton*
* LRU cache in mysql and sqlite are now per-process caches.
* lib/active_record/connection_adapters/mysql_adapter.rb: LRU cache
keys are per process id.
* lib/active_record/connection_adapters/sqlite_adapter.rb: ditto
*Aaron Patterson*
* Database adapters use a statement pool for limiting the number of open
prepared statments on the database. The limit defaults to 1000, but can
be adjusted in your database config by changing 'statement_limit'.
* Fix clash between using 'preload', 'joins' or 'eager_load' in a default scope and including the
default scoped model in a nested through association. (GH #2834.) *Jon Leighton*
* Ensure we are not comparing a string with a symbol in HasManyAssociation#inverse_updates_counter_cache?.
Fixes GH #2755, where a counter cache could be decremented twice as far as it was supposed to be.
*Jon Leighton*
* Don't send any queries to the database when the foreign key of a belongs_to is nil. Fixes
GH #2828. *Georg Friedrich*
* Fixed find_in_batches method to not include order from default_scope. See GH #2832 *Arun Agrawal*
* Don't compute table name for abstract classes. Fixes problem with setting the primary key
in an abstract class. See GH #2791. *Akira Matsuda*
* Psych errors with poor yaml formatting are proxied. Fixes GH #2645 and
GH #2731
* Use the LIMIT word with the methods #last and #first. Fixes GH #2783 *Damien Mathieu*
## Rails 3.1.0 (August 30, 2011) ##
* Add a proxy_association method to association proxies, which can be called by association
extensions to access information about the association. This replaces proxy_owner etc with
proxy_association.owner.
*Jon Leighton*
* Active Record's dynamic finder will now show a deprecation warning if you passing in less number of arguments than what you call in method signature. This behavior will raise ArgumentError in the next version of Rails *Prem Sichanugrist*
* Deprecated the AssociationCollection constant. CollectionProxy is now the appropriate constant
to use, though be warned that this is not really a public API.
This should solve upgrade problems with the will_paginate plugin (and perhaps others). Thanks
Paul Battley for reporting.
*Jon Leighton*
* ActiveRecord::MacroReflection::AssociationReflection#build_record has a new method signature.
Before: def build_association(*options)
After: def build_association(*options, &block)
Users who are redefining this method to extend functionality should ensure that the block is
passed through to ActiveRecord::Base#new.
This change is necessary to fix https://github.com/rails/rails/issues/1842.
A deprecation warning and workaround has been added to 3.1, but authors will need to update
their code for it to work correctly in 3.2.
*Jon Leighton*
* AR#pluralize_table_names can be used to singularize/pluralize table name of an individual model:
class User < ActiveRecord::Base
self.pluralize_table_names = false
end
Previously this could only be set globally for all models through ActiveRecord::Base.pluralize_table_names. *Guillermo Iguaran*
* Add block setting of attributes to singular associations:
class User < ActiveRecord::Base
has_one :account
end
user.build_account{ |a| a.credit_limit => 100.0 }
The block is called after the instance has been initialized. *Andrew White*
* Add ActiveRecord::Base.attribute_names to return a list of attribute names. This will return an empty array if the model is abstract or table does not exists. *Prem Sichanugrist*
* CSV Fixtures are deprecated and support will be removed in Rails 3.2.0
* AR#new, AR#create, AR#create!, AR#update_attributes and AR#update_attributes! all accept a second hash as option that allows you
to specify which role to consider when assigning attributes. This is built on top of ActiveModel's
new mass assignment capabilities:
class Post < ActiveRecord::Base
attr_accessible :title
attr_accessible :title, :published_at, :as => :admin
end
Post.new(params[:post], :as => :admin)
assign_attributes() with similar API was also added and attributes=(params, guard) was deprecated.
Please note that this changes the method signatures for AR#new, AR#create, AR#create!, AR#update_attributes and AR#update_attributes!. If you have overwritten these methods you should update them accordingly.
*Josh Kalderimis*
* default_scope can take a block, lambda, or any other object which responds to `call` for lazy
evaluation:
default_scope { ... }
default_scope lambda { ... }
default_scope method(:foo)
This feature was originally implemented by Tim Morgan, but was then removed in favour of
defining a 'default_scope' class method, but has now been added back in by Jon Leighton.
The relevant lighthouse ticket is #1812.
* Default scopes are now evaluated at the latest possible moment, to avoid problems where
scopes would be created which would implicitly contain the default scope, which would then
be impossible to get rid of via Model.unscoped.
Note that this means that if you are inspecting the internal structure of an
ActiveRecord::Relation, it will *not* contain the default scope, though the resulting
query will do. You can get a relation containing the default scope by calling
ActiveRecord#with_default_scope, though this is not part of the public API.
*Jon Leighton*
* If you wish to merge default scopes in special ways, it is recommended to define your default
scope as a class method and use the standard techniques for sharing code (inheritance, mixins,
etc.):
class Post < ActiveRecord::Base
def self.default_scope
where(:published => true).where(:hidden => false)
end
end
*Jon Leighton*
* PostgreSQL adapter only supports PostgreSQL version 8.2 and higher.
* ConnectionManagement middleware is changed to clean up the connection pool
after the rack body has been flushed.
* Added an update_column method on ActiveRecord. This new method updates a given attribute on an object, skipping validations and callbacks.
It is recommended to use #update_attribute unless you are sure you do not want to execute any callback, including the modification of
the updated_at column. It should not be called on new records.
Example:
User.first.update_column(:name, "sebastian") # => true
*Sebastian Martinez*
* Associations with a :through option can now use *any* association as the
through or source association, including other associations which have a
:through option and has_and_belongs_to_many associations
*Jon Leighton*
* The configuration for the current database connection is now accessible via
ActiveRecord::Base.connection_config. *fxn*
* limits and offsets are removed from COUNT queries unless both are supplied.
For example:
People.limit(1).count # => 'SELECT COUNT(*) FROM people'
People.offset(1).count # => 'SELECT COUNT(*) FROM people'
People.limit(1).offset(1).count # => 'SELECT COUNT(*) FROM people LIMIT 1 OFFSET 1'
*lighthouse #6262*
* ActiveRecord::Associations::AssociationProxy has been split. There is now an Association class
(and subclasses) which are responsible for operating on associations, and then a separate,
thin wrapper called CollectionProxy, which proxies collection associations.
This prevents namespace pollution, separates concerns, and will allow further refactorings.
Singular associations (has_one, belongs_to) no longer have a proxy at all. They simply return
the associated record or nil. This means that you should not use undocumented methods such
as bob.mother.create - use bob.create_mother instead.
*Jon Leighton*
* Make has_many :through associations work correctly when you build a record and then save it. This
requires you to set the :inverse_of option on the source reflection on the join model, like so:
class Post < ActiveRecord::Base
has_many :taggings
has_many :tags, :through => :taggings
end
class Tagging < ActiveRecord::Base
belongs_to :post
belongs_to :tag, :inverse_of => :tagging # :inverse_of must be set!
end
class Tag < ActiveRecord::Base
has_many :taggings
has_many :posts, :through => :taggings
end
post = Post.first
tag = post.tags.build :name => "ruby"
tag.save # will save a Taggable linking to the post
*Jon Leighton*
* Support the :dependent option on has_many :through associations. For historical and practical
reasons, :delete_all is the default deletion strategy employed by association.delete(*records),
despite the fact that the default strategy is :nullify for regular has_many. Also, this only
works at all if the source reflection is a belongs_to. For other situations, you should directly
modify the through association.
*Jon Leighton*
* Changed the behaviour of association.destroy for has_and_belongs_to_many and has_many :through.
From now on, 'destroy' or 'delete' on an association will be taken to mean 'get rid of the link',
not (necessarily) 'get rid of the associated records'.
Previously, has_and_belongs_to_many.destroy(*records) would destroy the records themselves. It
would not delete any records in the join table. Now, it deletes the records in the join table.
Previously, has_many_through.destroy(*records) would destroy the records themselves, and the
records in the join table. [Note: This has not always been the case; previous version of Rails
only deleted the records themselves.] Now, it destroys only the records in the join table.
Note that this change is backwards-incompatible to an extent, but there is unfortunately no
way to 'deprecate' it before changing it. The change is being made in order to have
consistency as to the meaning of 'destroy' or 'delete' across the different types of associations.
If you wish to destroy the records themselves, you can do records.association.each(&:destroy)
*Jon Leighton*
* Add :bulk => true option to change_table to make all the schema changes defined in change_table block using a single ALTER statement. *Pratik Naik*
Example:
change_table(:users, :bulk => true) do |t|
t.string :company_name
t.change :birthdate, :datetime
end
This will now result in:
ALTER TABLE `users` ADD COLUMN `company_name` varchar(255), CHANGE `updated_at` `updated_at` datetime DEFAULT NULL
* Removed support for accessing attributes on a has_and_belongs_to_many join table. This has been
documented as deprecated behaviour since April 2006. Please use has_many :through instead.
*Jon Leighton*
* Added a create_association! method for has_one and belongs_to associations. *Jon Leighton*
* Migration files generated from model and constructive migration generators
(for example, add_name_to_users) use the reversible migration's `change`
method instead of the ordinary `up` and `down` methods. *Prem Sichanugrist*
* Removed support for interpolating string SQL conditions on associations. Instead, you should
use a proc, like so:
Before:
has_many :things, :conditions => 'foo = #{bar}'
After:
has_many :things, :conditions => proc { "foo = #{bar}" }
Inside the proc, 'self' is the object which is the owner of the association, unless you are
eager loading the association, in which case 'self' is the class which the association is within.
You can have any "normal" conditions inside the proc, so the following will work too:
has_many :things, :conditions => proc { ["foo = ?", bar] }
Previously :insert_sql and :delete_sql on has_and_belongs_to_many association allowed you to call
'record' to get the record being inserted or deleted. This is now passed as an argument to
the proc.
* Added ActiveRecord::Base#has_secure_password (via ActiveModel::SecurePassword) to encapsulate dead-simple password usage with BCrypt encryption and salting [DHH]. Example:
# Schema: User(name:string, password_digest:string, password_salt:string)
class User < ActiveRecord::Base
has_secure_password
end
user = User.new(:name => "david", :password => "", :password_confirmation => "nomatch")
user.save # => false, password required
user.password = "mUc3m00RsqyRe"
user.save # => false, confirmation doesn't match
user.password_confirmation = "mUc3m00RsqyRe"
user.save # => true
user.authenticate("notright") # => false
user.authenticate("mUc3m00RsqyRe") # => user
User.find_by_name("david").try(:authenticate, "notright") # => nil
User.find_by_name("david").try(:authenticate, "mUc3m00RsqyRe") # => user
* When a model is generated add_index is added by default for belongs_to or references columns
rails g model post user:belongs_to will generate the following:
class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.belongs_to :user
t.timestamps
end
add_index :posts, :user_id
end
end
*Santiago Pastorino*
* Setting the id of a belongs_to object will update the reference to the
object. *#2989 state:resolved*
* ActiveRecord::Base#dup and ActiveRecord::Base#clone semantics have changed
to closer match normal Ruby dup and clone semantics.
* Calling ActiveRecord::Base#clone will result in a shallow copy of the record,
including copying the frozen state. No callbacks will be called.
* Calling ActiveRecord::Base#dup will duplicate the record, including calling
after initialize hooks. Frozen state will not be copied, and all associations
will be cleared. A duped record will return true for new_record?, have a nil
id field, and is saveable.
* Migrations can be defined as reversible, meaning that the migration system
will figure out how to reverse your migration. To use reversible migrations,
just define the "change" method. For example:
class MyMigration < ActiveRecord::Migration
def change
create_table(:horses) do
t.column :content, :text
t.column :remind_at, :datetime
end
end
end
Some things cannot be automatically reversed for you. If you know how to
reverse those things, you should define 'up' and 'down' in your migration. If
you define something in `change` that cannot be reversed, an
IrreversibleMigration exception will be raised when going down.
* Migrations should use instance methods rather than class methods:
class FooMigration < ActiveRecord::Migration
def up
...
end
end
*Aaron Patterson*
* has_one maintains the association with separate after_create/after_update instead
of a single after_save. *fxn*
* The following code:
Model.limit(10).scoping { Model.count }
now generates the following SQL:
SELECT COUNT(*) FROM models LIMIT 10
This may not return what you want. Instead, you may with to do something
like this:
Model.limit(10).scoping { Model.all.size }
*Aaron Patterson*
* Fix bugs in information_schema.referential_constraints view
* Correct collations for citext columns and indexes
* Prevent possible crash when joining to a scalar function
* Prevent transitory data corruption of GIN indexes after a crash
* Prevent data corruption on TOAST columns when copying data
* Fix failures during hot standby startup
* Correct another "variable not found in subplan target list" bug
* Fix bug with sorting on aggregate expressions in windowing functions
* Multiple bug fixes for pg_upgrade
* Change Foreign Key creation order to better support self-referential keys
* Multiple bug fixes to CREATE EXTENSION
* Ensure that function return type and data returned from PL/perl agree
* Ensure that PL/perl strings are always UTF-8
* Assorted bug fixes for various Extensions
* Updates to the time zone database, particularly to CST6
* Fix bugs in information_schema.referential_constraints view
* Correct collations for citext columns and indexes
* Prevent possible crash when joining to a scalar function
* Prevent transitory data corruption of GIN indexes after a crash
* Prevent data corruption on TOAST columns when copying data
* Fix failures during hot standby startup
* Correct another "variable not found in subplan target list" bug
* Fix bug with sorting on aggregate expressions in windowing functions
* Multiple bug fixes for pg_upgrade
* Change Foreign Key creation order to better support self-referential keys
* Multiple bug fixes to CREATE EXTENSION
* Ensure that function return type and data returned from PL/perl agree
* Ensure that PL/perl strings are always UTF-8
* Assorted bug fixes for various Extensions
* Updates to the time zone database, particularly to CST6
=== 3.30.0 (2011-12-01)
* Handle usage of on_duplicate_key_update in MySQL prepared statements (jeremyevans) (#404)
* Make after_commit and after_rollback respect :server option (jeremyevans) (#401)
* Respect :connect_timeout option in the postgres adapter when using pg (glebpom, jeremyevans) (#402)
* Make Dataset#destroy for model datasets respect dataset shard when using a transaction (jeremyevans)
* Make :server option to Model#save set the shard to use (jeremyevans)
* Move Model#set_server from the sharding plugin to the base plugin (jeremyevans)
* Add :graph_alias_base association option for setting base name to use for table aliases when eager graphing (jeremyevans)
* Make ILIKE work correctly on Microsoft SQL Server if database/column collation is case sensitive (jfirebaugh) (#398)
* When starting a new dataset graph, assume existing selection is the columns to select from the current table (jeremyevans)
* Allow specifying nanoseconds and offsets when converting a hash or array to a timestamp (jeremyevans, jfirebaugh) (#395)
* Improve performance when converting Java types to ruby types in the jdbc adapter (jeremyevans, jfirebaugh) (#395)
* Fix tinytds adapter if DB.identifier_output_method = nil (jeremyevans)
* Explicitly order by the row number column when emulating offsets (jfirebaugh) (#393)
* Fix Dataset#graph and #eager_graph modifying the receiver if the receiver is already graphed (jeremyevans) (#392)
* Change dataset literalization to an append-only-all-the-way-down design (jeremyevans)
== 2.2.1 / 2011-09-15
* Enhancements
* Added UpdateManager#key to access the key value
* Added SelectManager#projections= to override any existing projections
* Added SelectManager#source to get the source of the last select core in the AST
== 2.2.0 / 2011-08-09
* Bug Fixes
* The database connection caches visitors for generating SQL.
* FALSE and TRUE nodes can be constructed.
* Fixed ORDER BY / LIMIT clauses for UPDATE statements in Oracle.
== 2.1.4 / 2011-07-25
* Bug Fixes
* Fix depth-first traversal to understand ascending / descending nodes.
* Parentheis are suppressed with nested unions in MySQL. Thanks jhtwong!
== 2.1.3 / 2011-06-27
* Bug Fixues
* Fixed broken gem build.
== 2.1.2 / 2011-06-27
* Bug Fixes
* Visitors can define their own cache strategey so caches are not shared.
Fixes#57
* Informix support fixed. Thanks Khronos.
* Ordering nodes broken to subclasses. Thanks Ernie Miller!
* Reversal supported in ordering nodes. Thanks Ernie Miller!
== 2.1.1 / 2011/05/14
* Bug fixes
* Fixed thread safety bug in ToSql visitor. Thanks Damon McCormick and
Cameron Walters!
== 2.1.0 / 2011/04/30
* Enhancements
* AST is now Enumerable
* AND nodes are now n-ary nodes
* SQL Literals may be used as Attribute names
* Added Arel::Nodes::NamedFunction for representing generic SQL functions
* Add Arel::SelectManager#limit=
* Add Arel::SelectManager#offset
* Add Arel::SelectManager#offset=
* Added Arel::SelectManager#create_insert for building an insert manager.
* SQL Literals are allowed for values in INSERT statements.
* Math operations have been added to attributes, thanks to
Vladimir Meremyanin.
* Bug fixes
* MSSQL adds TOP to sub selects
* Assigning nil to take() removes LIMIT from statement.
* Assigning nil to offset() removes OFFSET from statement.
* TableAlias leg ordering fixed
* Deprecations
* Calls to `insert` are deprecated. Please use `compile_insert` then call
`to_sql` on the resulting object and execute that SQL.
* Calls to `update` are deprecated. Please use `compile_update` then call
`to_sql` on the resulting object and execute that SQL.
* Calls to `delete` are deprecated. Please use `compile_delete` then call
`to_sql` on the resulting object and execute that SQL.
* Arel::Table#joins is deprecated and will be removed in 3.0.0 with no
replacement.
* Arel::Table#columns is deprecated and will be removed in 3.0.0 with no
replacement.
* Arel::Table.table_cache is deprecated and will be removed in 3.0.0 with no
replacement.
* Arel::Nodes::And.new takes a single list instead of left and right.
* Arel::Table#primary_key is deprecated and will be removed in 3.0.0 with no
replacement.
* Arel::SelectManager#where_clauses is deprecated and will be removed in
3.0.0 with no replacement.
* Arel::SelectManager#wheres is deprecated and will be removed in
3.0.0 with no replacement.
* Performance of metadata locking operations on Windows XP systems was improved
by instituting a cache for metadata lock objects. This permits the server to
avoid expensive operations for creation and destruction of synchronization
objects on XP. A new system variable, metadata_locks_cache_size, permits
control over the size of the cache. The default size is 1024.
* Replication: Previously, replication slaves could connect to the master
server through master accounts that use nonnative authentication, except
Windows native authentication. This is now also true for Windows native
authentication.
Bugs Fixed:
* InnoDB Storage Engine: An internal deadlock could occur within InnoDB, on
a server doing a substantial amount of change buffering for DML operations,
particularly DELETE statements.
* Rounding DBL_MAX returned DBL_MAX, not 'inf'.
* mysql_upgrade did not upgrade the system tables or create the
mysql_upgrade_info file when run with the --write-binlog or
--skip-write-binlog option.
* If a plugin was uninstalled, thread local variables for plugin variables of
string type with wth PLUGIN_VAR_MEMALLOC flag were not freed.
* Deadlock could occur when these four things happened at the same time: 1) An
old dump thread was waiting for the binary log to grow. 2) The slave server
that replicates from the old dump thread tried to reconnect. During
reconnection, the new dump thread tried to kill the old dump thread.
3) A KILL statement tried to kill the old dump thread. 4) An INSERT statement
caused a binary log rotation.
* Fix bugs in information_schema.referential_constraints view
* Correct collations for citext columns and indexes
* Prevent possible crash when joining to a scalar function
* Prevent transitory data corruption of GIN indexes after a crash
* Prevent data corruption on TOAST columns when copying data
* Fix failures during hot standby startup
* Correct another "variable not found in subplan target list" bug
* Fix bug with sorting on aggregate expressions in windowing functions
* Multiple bug fixes for pg_upgrade
* Change Foreign Key creation order to better support self-referential keys
* Multiple bug fixes to CREATE EXTENSION
* Ensure that function return type and data returned from PL/perl agree
* Ensure that PL/perl strings are always UTF-8
* Assorted bug fixes for various Extensions
* Updates to the time zone database, particularly to CST6
* Fix bugs in information_schema.referential_constraints view
* Correct collations for citext columns and indexes
* Prevent possible crash when joining to a scalar function
* Prevent transitory data corruption of GIN indexes after a crash
* Prevent data corruption on TOAST columns when copying data
* Fix failures during hot standby startup
* Correct another "variable not found in subplan target list" bug
* Fix bug with sorting on aggregate expressions in windowing functions
* Multiple bug fixes for pg_upgrade
* Change Foreign Key creation order to better support self-referential keys
* Multiple bug fixes to CREATE EXTENSION
* Ensure that function return type and data returned from PL/perl agree
* Ensure that PL/perl strings are always UTF-8
* Assorted bug fixes for various Extensions
* Updates to the time zone database, particularly to CST6
- bug #3425230 [interface] enum data split at space char (more space to edit)
- bug #3426840 [interface] ENUM/SET editor can't handle commas in values
- bug #3427256 [interface] no links to browse/empty views and tables
- bug #3430377 [interface] Deleted search results remain visible
- bug #3428627 [import] ODS import ignores memory limits
- bug #3426836 [interface] Visual column separation
- bug #3428065 [parser] TRUE not recognized by parser
+ patch #3433770 [config] Make location of php-gettext configurable
- patch #3430291 [import] Handle conflicts in some open_basedir situations
- bug #3431427 [display] Dropdown results - setting NULL does not work
- patch #3428764 [edit] Inline edit on multi-server configuration
- patch #3437354 [core] Notice: Array to string conversion in PHP 5.4
- [interface] When ShowTooltipAliasTB is true, VIEW is wrongly shown as the
view name in main panel db Structure page
- bug #3439292 [core] Fail to synchronize column with name of keyword
- bug #3425156 [interface] Add column after drop
- [interface] Avoid showing the password in phpinfo()'s output
- bug #3441572 [GUI] 'newer version of phpMyAdmin' message not shown in IE8
- bug #3407235 [interface] Entering the key through a lookup window does not reset NULL
- [security] Self-XSS on database names (Synchronize), see PMASA-2011-18
- [security] Self-XSS on database names (Operations/rename), see PMASA-2011-18
- [security] Self-XSS on column type (Create index), see PMASA-2011-18
- [security] Self-XSS on column type (table Search), see PMASA-2011-18
- [security] Self-XSS on invalid query (table overview), see PMASA-2011-18
* Upgrading from an Advanced GPL RPM package to an Advanced RPM package did not
work. Now on Linux it is possible to use rpm -U to replace any installed MySQL
product by any other of the same release family. It is not necessary to remove
the old produce with rpm -e first.
* MEMORY table creation time is now available in the CREATE_TIME column of the
INFORMATION_SCHEMA.TABLES table and the Create_time column of SHOW TABLE
STATUS output.
Bugs Fixed
* Important Change: InnoDB Storage Engine: Data from BLOB columns could be lost if the server crashed at a precise moment when other columns were being
updated in an InnoDB table.
* InnoDB Storage Engine: This fix improves the performance of instrumentation
code for InnoDB buffer pool operations.
* InnoDB Storage Engine: Lookups using secondary indexes could give incorrect
matches under a specific set of conditions. The conditions involve an index
defined on a column prefix, for a BLOB or other long column stored outside
the index page, with a table using the Barracuda file format.
* InnoDB Storage Engine: This fix corrects cases where the MySQL server could
hang or abort with a long semaphore wait message. (This is a different issue
than when these symptoms occurred during a CHECK TABLE statement.)
* Replication: Issuing the following statements, in the order shown, could cause a deadlock between the user thread and I/O thread.
* more...
Lib/
* ldap.controls.ppolicy:
Another fix for decoding the password policy response control
Changes 2.4.5:
Installation:
* defines for SASL and SSL in setup.cfg to be more friendly to
Python setup tools (easy_install)
Lib/
* Fixed typo in ldap.functions._ldap_function_call() which
always released ldap._ldap_module_lock instead of local lock
* ldap.controls.ppolicy:
Fixed decoding the password policy response control
Demo/
* Demo script for ldap.controls.ppolicy
* The first release for Slony-I branch 2.1 has been released, in the form of
version 2.1.0. It is a significant new version, fixing dozens of reported
bugs, and adding some significant enhancements, including:
- Implicit WAIT FOR
- Support for adding tables in bulk
- Support for replicating TRUNCATE
- Health checks at startup
- Performance improvement in cases of large backlog
- Monitoring thread to provide better monitoring data
Changes from previous:
# ----------------------------------------------------------
# 0.11010 2011-10-05
# ----------------------------------------------------------
* Add "if exists" to drop view statements in Pg.
# ----------------------------------------------------------
# 0.11009 2011-09-02
# ----------------------------------------------------------
* Fix MySQL producer to properly quote all table names on output (patch from geistteufel)
# ----------------------------------------------------------
# 0.11008 2011-05-04
# ----------------------------------------------------------
* Correctly create and parse FK constraints in SQLite
* Correct postgis geography type insertion and linebreak fix for multiple geometry/geography columns
* made PostgreSQL producer consistent with other producers in terms of
quoting and allowing functions in constraints and indices
* Add distinction of autoinc and regular primary keys to the GraphViz producer
* Fix odd invocation of Test::More::pass() in t/36-filters.t (RT#64728)
* Quote everything in SQL Server
* Turn off constraints before dropping tables in SQL Server
* Make true unique constraints if needed in SQL Server
* Fixed Producer::PostgresSQL to output array type after type size,
i.e. varchar(64)[] rather than varchar[](64)
# ----------------------------------------------------------
# 0.11007 2010-11-30
# ----------------------------------------------------------
* Fix POD typo in SQL/Translator/Schema/Trigger.pm
* Add explicit Scalar::Util to the deplist for really old perls
* Add support for PostGIS Geometry and Geography data types in the Pg producer
* Some minor fixes to squash warnings on new perls
* Support a custom_type_name hint when creating enum types in PostgreSQL
* Fix sqlt options/pod mismatch (RT#58318)
* Oracle Producer multicolumn constraint support
* Add support for triggers in the MySQL producer
* Fix unstable order of View's in MySQL parser
Functionality Added or Changed
* Upgrading from an Advanced GPL RPM package to an Advanced RPM package did not
work. Now on Linux it is possible to use rpm -U to replace any installed
MySQL product by any other of the same release family. It is not necessary to
remove the old produce with rpm -e first.
Bugs Fixed
* Incompatible Change: Replication.
* During the table-opening process, memory was allocated and later freed that
was needed view loading, even for statements that did not use views. These
unnecessary allocation and free operations are no longer done.
* mysql_plugin mishandled the --plugin-ini, --mysqld, and --my-print-defaults
options under some circumstances.
* mysql_plugin returned the wrong error code from failed server bootstrap
execution.
* Several improvements were made to the libedit library bundled with MySQL
distributions, and that is available for all platforms that MySQL supports
except Windows.
* ARCHIVE tables with NULL columns could cause server crashes or become corrupt
under concurrent load.
* OPTIMIZE TABLE could corrupt MyISAM tables if myisam_use_mmap was enabled.
* A query that selected a GROUP_CONCAT() function result could return different
values depending on whether an ORDER BY of the function result was present.
* For FEDERATED tables, loss of connection to the remote table during some
insert operations could cause a server crash.
* Rails 3.0.11 (unreleased)
* Exceptions from database adapters should not lose their backtrace.
* Backport "ActiveRecord::Persistence#touch should not use default_scope"
(GH #1519)
* Psych errors with poor yaml formatting are proxied. Fixes GH #2645 and
GH #2731
* Fix ActiveRecord#exists? when passsed a nil value
RELEASE NOTES
-------------
This is a minor release update to fix some bugs that were discovered after the
release of 1.2.1.1.
There are some security fixes in this release - I suggest you upgrade your
version of PLA to avoid any exploits.
CHANGES SINCE 1.2.1.1
---------------------
dece0f4 Release 1.2.2
d58f011 Language Translation merge from launchpad
696c266 Additional fix for SF Feature #3387473
2d018aa SF Feature #3387473 - Support for schema discovery using OpenLDAP's cn=config DN
cddf783 Add an alert when RFC3866 tags are being used
1e1fcab SF Bug #3398344 - Import LDIF overwrites entries
d8ab7fc SF Patch #3391547 - Option for minmal mode
56830f1 SF Patch #3391389 - Option to initially open the tree
6c8b623 SF Patch #3391371 - Fix for schema link deactivation
7fc4f0c SF Patch #3391039 - Remove eval commands from PHP code
059b83b SF Bug #3391046 - Loading entries with many attributes is very slow
4089ffa SF Bug #3392644 - Cannot authenticate if password starts or ends with spaces
c57a927 Disable supplied modifiction templates, it confused too many people
d5744b0 SF Bug #3370546 - AjaxEnabled create and delete entry fails on IE9
76e6dad SF Bug #3417184 - PHP Code Injection Vulnerability
5d4245f SF Bug #3395004 - config.php.example refers to lang/en.php
80d027d SF Bug #3373466 - Unable to define force_may attributes
64668e8 Remove XSS vulnerabilty in debug code
caeba72 SF Bug #3355722 - Issue in MultiList attribute type
0782730 SF Bug #3355732 - Cosmetic issue in functions.php -> get_icon()
446faf7 FIX SASL configuration example
afa4a95 Fix SASL implementation - enabled GSSAPI
5987194 SF Bug #3304785 - posixGroup creation template uses cn instead of uid
ddb5ed0 Enabled hiding base DNs that users dont have access to
7649b9b SF Feature #3298820 - Only custom templates
Changes from previous:
1.61 Fri Sep 16 15:47:50 MSD 2011
* New methods in Handle for mass changes from select statements:
InsertFromSelect, DeleteFromSelect and SimpleUpdateFromSelect
* New methods in Handle for generation of date time related SQL
1.60 Thu Sep 15 01:01:15 MSD 2011
* custom BuildDSN for Oracle
** Database is treated as SID if SID is not provided
** Build 'dbi:Oracle:<SID>' instead of 'dbi:Oracle:sid=<SID>'
* changes in DBIx::SearchBuilder->Column method
** complete documentation
** support for empty FIELD argument
** column naming fix when explicit ALIAS => 'main' passed
1.59 Fri Nov 19 13:45:01 MSK 2010
* DBIx::SearchBuilder->DistinctFieldValues method
1.58 Wed Oct 20 02:17:37 MSD 2010
* SIGNATURE fix
* delete obsolete cvs metadata from a module
1.57 Mon Sep 4 21:21:57 UTC 2010
* INCOMPATIBLE CHANGE: NextPage and PrevPage were adding rows from
the previous page. Jesse claims that when he wrote this code, he
was 20 years old and it seemed like a good idea at the time.
* When logging queries, include full stack trace
* support $sb->NewAlias( 'table' => 'LEFT' );
* allow join to depend on nothing
* catch cases when there are more closing parens then should be
* Oracle: Use ROW_NUMBER() to propagate row ordering from inside the DISTINCT
* Various performance improvements through small internal refactorings
* Implemented 'sub Fields' on Oracle
* unify case insensitive characters to avoid using LOWER() in some
cases
* We now RedoSearch when RowsPerPage is changed
* No longer RedoSearch if FirstRow is called, but is not actually changed
* Document all paging functions and test them
* handle LOWER() in redundant LEFT joins optimizer,
for Oracle and may be Pg
* Make debugging problems easier by passing errors back
https://rt.cpan.org/Ticket/Display.html?id=55203
* fix Record->PrimaryKeys, field names in values hash are lc'ed
https://rt.cpan.org/Ticket/Display.html?id=18280
* doc updates and cleanups
Changes from previous:
0.796 (10.18.2011) - John Siracusa <siracusa@gmail.com>
* Use ENGINE=InnoDB instead of TYPE=InnoDB in MySQL table creation
statements to avoid an incompatibility with MySQL 5.5 (RT 71757)
0.795 (07.14.2011) - John Siracusa <siracusa@gmail.com>
* The Loader now passes the Manager class name as a second argument to
module_preamble and module_postamble subroutines to allow Manager
classes to be distinguished from object classes.
* Corrected a typo in the ConventionManager documentation ("objs_"
should be "_objs")
* Fixed a bug that caused load-on-demand columns to be loaded by
load(with => ...) method calls. (Reported by Marlon Bailey)
0.794 (12.30.2010) - John Siracusa <siracusa@gmail.com>
* Handle null default values for foreign key columns in PostgreSQL
(RT 64331)
0.793 (12.21.2010) - John Siracusa <siracusa@gmail.com>
* Corrected skip count in t/db-object.t
0.792 (12.20.2010) - John Siracusa <siracusa@gmail.com>
* Detect attempts to create methods whose names conflict with
methods defined in Rose::DB::Object itself. (Reported by
Dave Howorth)
0.791 (10.23.2010) - John Siracusa <siracusa@gmail.com>
* Fixed a bug that caused on_save column triggers to fire when loading.
* More floating point rounding fixes in the test suite.
0.790 (10.17.2010) - John Siracusa <siracusa@gmail.com>
* The auto-initialization process no longer sets column default
values to undef when there is no default for the column. Doing
this was tripping up the default_exists() method. (Reported
by Timo Karhu)
* Documented the behavior of the manager_args relationship attribute
when a relationship is used as a with_objects or require_objects
argument.
* Fixed a bug that caused SET columns to be erroneously marked as
modified when their accessor methods were called.
* Fixed a bug in make_manager_methods() that left base_name undefined.
(RT 61963, patch by Chris Malarky)
* Improved handling of floating point and string/number conversions
in the test suite.
Changes from previous:
0.07012 2011-11-09 15:16:29
- as of 0.07011 all callbacks receive a ::Loader::Table or
interface-compatible object instead of the table name, this object
stringifies to the table name (RT#72260)
- fix a bug in dynamic schema_base_class/schema_components
implementation that ran the connection method twice on subsequent
connects
- use a temp file for filter_generated_code with a string program name
instead of IPC::Open2, which hangs on Win32 (RT#72226)
- previous version referred to the wrong RT# for the uniq_to_primary
change, it is actually (RT#51696)
0.07011 2011-11-01 09:00:00
- add -I option to dbicdump
- do not delete default custom content comment and ending 1; from custom
content in files that are being renamed (RT#70507)
- use MooseX::MarkAsMethods instead of namespace::autoclean for the
use_moose option, this protects operator overloads, only_autoclean
option added for the old behavior
- add experimental naming=v8 mode with better CamelCase identifier
support, relationship naming and conversion of non-identifier chars
(RT#71945)
- add naming => { force_ascii => 1 } option for Unicode database names
- implement schema_base_class and schema_components for dynamic and
working schemas
- remove dependency on File::Slurp
- allow the constraint and exclude options to be used simultaneously
(bphillips)
- fix Oracle multi-db_schema unique detection (RT#70851)
- fix Oracle common tests fail with multi_schema due to not resetting
the preserve_case option after the preserve_case tests (RT#70829)
- handle <type> DEFAULT NULL for Pg
- handle boolean DEFAULT 0::boolean for Pg
- config file support for dbicdump script (alnewkirk)
- added filter_generated_code option (RT#53841)
- generic table and column comments support
- MySQL table and column comments support
- support DOS line endings on *nix and *nix line ending on Win32
- add quiet option
- $schema->loader is now a public method
- add schema_components option
- sort relationships so they always come out in the same order
- also sort unique constraints so they always come out in the same order
- multi db_schema support with cross-schema rels (RT#39478)
- added moniker_parts option for name clashes in multi db_schema setups
- add rel_name_map option
- fix the decimal data type for MS Access over ODBC
- fix enum/set detection for MySQL (RT#68717)
- fix is_nullable detection on MS Access
- remove '$table has no primary key' warning
- added uniq_to_primary option to promote unique keys to primary keys
(RT#25944)
- support arrayrefs for result_namespace and resultset_namespace
(RT#40214)
- add naming => { monikers => 'preserve' } or 'singular'/'plural' to
control moniker inflection (RT#44935)
- add naming => { column_accessors => 'preserve' } to not normalize
CamelCase column names to lower case for accessors (RT#64668)
- support quoted PostgreSQL schema names with special chars (RT#64766)
- automatically turn on quoting for MySQL (RT#60469)
- become utf8-aware (RT#67920)
- handle duplicate relationship names (RT#64041)
- fix a bug in Sybase ASE foreign key detection
- generate POD for result_base_class, additional_classes,
additional_base_classes, left_base_classes, components,
result_components_map, result_roles, result_roles_map, unique
constraints, set_primary_key and table
- rename result_component_map to result_components_map (old name still
works)
- fix accessor collision detection for methods from
result_components_map components
- add result_roles and result_roles_map options
- fix for mysql rel detection in mixed-case tables on mixed-case
filesystems (OSX and Windows)
- support for DBD::Firebird
- support for unicode Firebird data types
- handle "use warnings FATAL => 'all';" in custom/external content
(RT#59849)
- for dynamic schemas, if the naming option is set, will automatically
turn on use_namespaces=1 as well. Set use_namespaces=0 to disable
this behavior (RT#59849)
0.07010 2011-03-04 08:26:31
- add result_component_map option
0.07009 2011-02-25 11:06:51
- fix a syntax error in MS Access ADO driver
0.07008 2011-02-25 01:54:43
- rename column_accessor_map to col_accessor_map, the old alias still
works
- support MSSQL over DBD::ADO
- support for MS Access over DBD::ODBC and DBD::ADO
0.07007 2011-02-15 10:00:07
- bump DBIx::Class dep to 0.08127
- fix MSSQL data types for native client and EasySoft driver
0.07006 2011-02-01 02:18:32
- turn unloading of RelBuilder temp classes back on, now with proper
check for class existance using Class::Inspector->loaded
- bump up dep on namespace::clean to avoid breakage with earlier
versions (RT#65149)
0.07005 2011-01-25 23:07:55
- support extra connect_info options like quote_char for dbicdump
- fix breakage on perl 5.8.x related to unloading temporary classes
0.07004 2011-01-24 03:43:05
- fix bug with result class methods being cached on in a closure instead
of the object, which breaks for multiple dynamic schemas in a single
perl instance
0.07003 2011-01-21 06:43:05
- fix relname/method collisions (RT#62648)
- fix fully qualified component classes (RT#62624)
- improve sybase/mssql db_schema detection
- remove MooseX::NonMoose from Schema files under use_moose=1
- better _tables_list for Sybase ASE
- add datetime_undef_if_invalid => 1 for MySQL datetime data types
(RT#64820) This behavior can be turned off by passing
datetime_undef_if_invalid=0 as a loader option
- added column_accessor_map option
- Preserve relationship names when redumping and another FK is added
(RT#62424)
- Remove resultset_components as ResultSetManager is deprecated
- Fix a fail when very old Moose/CMOP is installed
- Added warning for column-accessor collisions, doc section in ::Base
("COLUMN ACCESSOR COLLISIONS") and the col_collision_map option.
- Handle column accessor collisions with UNIVERSAL methods
- Generate custom_type_name hint for PostgreSQL enums, as used
by very recent SQL::Translator
- Added support for PostgreSQL enum types
- Added table/column comment support for Oracle
- Fix missing require (RT#62072)
sqlalchemy-migrate is a schema migration tool for SQLAlchemy. It is
designed to support an agile approach to database design and make it
easier to keep development and production databases in sync, as schema
changes are required.
Changes from previous:
0.93 Fri Feb 11 17:13:02 EST 2011
- When slurping MARCXML records (e.g., via MARC::Batch), can
now handle XML files that use a prefix
to refer to the http://www.loc.gov/MARC21/slim namespace.
- If trying to parse a MARCXML record that has omitted
the <record> wrapper element, throw an exception
with a more meaningful error message.
- adjusted copyright statement further to meet Debian requirements
(RT#48333)
- set license in Makefile.PL
* If a search token (on the right-hand side of the MATCH operator) in FTS4
begins with "^" then that token must be the first in its field of the
document. ** Potentially Incompatible Change **
* Added options SQLITE_DBSTATUS_CACHE_HIT and SQLITE_DBSTATUS_CACHE_MISS to the
sqlite3_db_status() interface.
* Removed support for SQLITE_ENABLE_STAT2, replacing it with the much more
capable SQLITE_ENABLE_STAT3 option.
* Enhancements to the sqlite3_analyzer utility program, including the --pageinfo
and --stats options and support for multiplexed databases.
* Enhance the sqlite3_data_count() interface so that it can be used to determine
if SQLITE_DONE has been seen on the prepared statement.
* Added the SQLITE_FCNTL_OVERWRITE file-control by which the SQLite core
indicates to the VFS that the current transaction will overwrite the entire
database file.
* Increase the default lookaside memory allocator allocation size from 100 to
128 bytes.
* Enhanced the query planner so that it can factor terms in and out of OR
expressions in the WHERE clause in an effort to find better indices.
* Added the SQLITE_DIRECT_OVERFLOW_READ compile-time option, causing overflow
pages to be read directly from the database file, bypassing the page cache.
* Remove limits on the magnitude of precision and width value in the format
specifiers of the sqlite3_mprintf() family of string rendering routines.
* Fix a bug that prevent ALTER TABLE ... RENAME from working on some virtual
tables in a database with a UTF16 encoding.
* Fix a bug in ASCII-to-float conversion that causes slow performance and
incorrect results when converting numbers with ridiculously large exponents.
* Fix a bug that causes incorrect results in aggregate queries that use
multiple aggregate functions whose arguments contain complicated expressions
that differ only in the case of string literals contained within those
expressions.
* Fix a bug that prevented the page_count and quick_check pragmas from working
correctly if their names were capitalized.
* Fix a bug that caused VACUUM to fail if the count_changes pragma was engaged.
* Fix a bug in virtual table implementation that causes a crash if an FTS4
table is dropped inside a transaction and a SAVEPOINT occurs afterwards.
pkgsrc changes:
* Added LICENSE to package and options
* Pre-create neede volatile directories
* Improve the NetBSD rc.d script
0.43
* updated ruby code build to take sitearch into account during includes
* updated ruby code to map STR2CSTR to StringValuePtr for ruby 1.9
* updated to use rudiments' updated signalclasses
* replaced calls to fork() and exit() with process class calls
* updated ruby detection in configure script
* added a test for Python.h to the configure script
* updated tcl detection
* updated db2 detection
* added sed command to remove -arch args from perl build (for osx)
* added charset support for all db's who's client libraries support them
* updated detection of various languages and db's on various platforms
* added getting started with odbc doc
* updated faq with info about result sets from stored procedures
0.42
* fixed a bug causing cursor id's not to get set for some db's
* updated configure script to look for client64 in addition to client
for oracle intantclient on x86_64
* added setTimeout to all API's
* applied some patches from Alexey Leontev
* bumped BINDVARLENGTH up to 64
* applied Renat Sabitov's scaler -debug patch and 11g configure patch
* applied Stephan van Egmond's sqlrsh history patch
* added configure test for gmake, use it to find ruby.h
* applied mingang@taobao.com's scaler patch for -debug
* added getting started notes for Oracle 11.2 on Fedora Core 12
* added test for mdb_sql_run_query and code to use it if it's there
* fixed a bug that caused ping to fail after reconnecting to sybase
* added configure test for xsubpp
* fixed perl dbi inout bind problem
* fixed code that was adding a NULL terminator to oracle clob values
* applied several patches from Renat Sabitov
* applied dynamic cursor patch from Cal Heldenbrand
* applied Claudio Freire's normalized matching and xmlparsing patches
* fixed sqlite connection to use sqlite3_malloc/free
* update freetds connection to get tds version with ct_config if
TDS_VERSION_NO doesn't exist
* applied a fix for a bug that could cause a crash when a cursor is reused
* fixed a shutdown race condition in connection daemons
* moved common startup/shutdown code for connection daemons up into
static methods/variables of the sqlrconnection_svr class
* fixed a crash in the oracle connection daemon where OCIHandleFree was
getting called on define handles that weren't created by OCIHandleAlloc
* removed rebuild target from Makefiles
* updated tests
* refactored main() method for connections
* added searches for ruby1.8, ruby19 and ruby1.9 in configure script
* fixed a bug that caused addresses="" to cause the sqlr-listener not to start
* added entries to FAQ about oracle instantclient and ubunu /bin/dash
* updated postgresql tests to use bpchar rather than char(20) for
fetching results of stored procedure
* renamed interbase.create.sh to firebird.create.sh
* fixed a bug that could overrun the postgresql bind array
* fixed bug that caused connection daemon sockets to be double-freed on
shutdown after a suspended session
* precision/scale in output bind buffers is initialized now
* debugstring buffers are no longer build when debug is turned off
* fixed id vs. index bug when requesting a cursor and binding a cursor
* refactored JNI code a bit, fixed getIntField/getLongField problem that
caused problems on 64-bit machines
* applied patch to make python api return decimals and integers, not
just strings, refactored some of it
* fixed dump tran docs in getting started with sybase to use sa
* updated sybase connection to use length of cursor name rather than
CS_NULLTERM to work around an odd, inconsistent bug that would
cause the connection to hang sometimes
* connections not spawned by scaler don't signal on the semaphore used
by the scaler to wait for a connection to start now
* updated bind var docs
* updated faq
* fixed a bug where binding an oracle cursor didn't reset some values
and would cause subsequent cursor binds to fail
* added note to docs about configuring sybase to dump transactions at each
checkpoint
* applied Renat Sabitov's patch to kill scaler-started connections which fail
to signal on sem(8) because they either crashed or got hung up trying
to start
* fixed a bug in the mysql drop-in lib that could cause the client to run out
of cursors
* added a mapping between sqlite3_free and sqlite_freemem
* added a fix for a race condition in the scaler
* fixed a postgresql bind memory leak
* applied Renat's ruby DESTDIR patch and updated helper scripts to
remove $(DESTDIR) from all the variables that it outputs
* applied Renat's patch to handle semaphore failures in forked listeners
during shutdown
* applied Renat's patch to move connection counting for scaler-spawned
connections entirely into scaler itself
* applied Renat's patch to reap children more regularly and refactored it
a little
* fixed distclean to remove perl .pm files
* changed maxsessioncount default to 0, updated docs, examples
0.41
* added configure test for ruby.h
* added a couple of new functions to the mysql drop-in library
* updated mysql drop-in lib docs explaining how to use with PHP
* added documentation for timequeries params
* if SQLConnectW isn't supported, ODBC driver uses non-unicode calls
* added maxsessioncount parameter and connections use it to override
ttl and bleed off
* applied Renat Sabitov's output bind patch
* added mysql last_insert_id() note to FAQ
* made it so oracle_home doesn't need to be set if oracle_sid is
specified in tnsnames.ora format
0.40
* fixed readline detection in configure script
* fixed an uninitialized variable in sqlr-import
* changed clientSession() to call endSessionCommand() instead of endSession()
so endSessionInternal() would be called every time
* fixed debug option in sqlr-import and sqlr-export
* fixed postgresql typemangling=no option
* set dbversion to unknown if sp_version wasn't found in freetds/sybase
* output bind variables' null indicator is reset now
* updated postgresql typemangling
* included Jesse Wagner's oracle 11g acsite patch
* added +1 to inbindvars[i].valuesize for CLOB's to make sure the NULL
terminator is included
* postgresql connection uses PQparameterStatus if PQserverVersion doesn't
exist and runs "select version()" if PQparameterStatus doesn't exist;
to get the db version
* added mysql-5.1 drop-in replacement lib
* fixed a bug that caused result set data not to be cleaned up before a cursor
is reused as a bind cursor
* changed string bind length to uint32_t from uint16_t
* added clearBinds() call after executeQuery() in perl dbi driver
* began work on an ODBC driver
* added serverVersion and clientVersion methods
* incorporated Alfred Fazio's python api patches
* fixed a bug where cursors might not get aborted when a client disconnects
* made shared memory segment group-readable
* applied Renaud Amar's HAVE_MYSQL_OPT_RECONNECT patch
* added ODBC driver to spec file
* added DESTDIR= to .pc files
* made freetds use single-quote for escape character, other db's use backslash
* made sqlr-export/import use &##; for non-printable characters, &, < and >
* fixed scaler; supports -localstatedir option properly now
* fixed many it's -> its typos in the documentation
* changed debug so that only one binary is built and it's selected at runtime
* integrated erlang api
* added -localstatedir to sqlr-stop
* fixed mysql (with statement api) relogin problems
* removed non-functional config app
* added Oracle 11g on fc9 document
* added ASE 15.0.2 installation doc
* made it possible to only bind to port, not socket
* added test for tdsver.h
0.39
* removed oracle7 support
* added OCI_OBJECT to oracle environment init
* added some more error codes to oracle's dead connection test
* connections don't decrement connection count when they fail to log in now :)
* added -silent option to connections that scaler uses so they don't spew
login errors if the db is down
* fixed a bug that disabled scaling if maxlisteners was -1 (the default, which
means no maximum)
* freetds, db2 connection don't detach before logging in any more
* added reloginatstart config parameter
* fixed sendLob for oracle<8i
* applied Johnny Luong's postgresql drop-in lib patch
* applied Jason McClellen's perl dbi raise-error patch
* sybase/freetds use CS_SEVERITY instead of msgp->severity now
* added 64 bit sybase tests
* postgresql only uses PQexecPrepared if PQprepare also exists
* set LANG=POSIX before running ruby/make so sed's would work on non-us
locales
* documented how to use mysql stored procedure output parameters
* applied james@thoughtpatterns.com's perl null bind patch
* applied Tim Bunce's perl dbi driver patch
* suppress error message of cat $ORACLE_HOME/lib/sysliblist in configure
script
* added support for stored procedures which return result sets to sybase
connection
* added support for stored procedures which return result sets to freetds
connection but it doesn't actually return anything
* documented how to use sybase stored procedure result sets
* fixed a bug that caused zope to get an exception when result sets are empty
* configure looks for instantclient if it can't find anything in
ORACLE_HOME, added --with-oracle-instantclient-prefix option
* added sybase ASE 15 install doc
* fixed a bug that caused the router connection to return a max of 10 rows
* applied Chris Coyle's mysql auto-reconnect patch
* modified countBindVariables to exclude :'s and @'s if it finds $'s or ?'s
* applied some of Tim Bunce's DBI patches
* added pid cleanup to init script similar to patch supplied by Ragnar Rova
* added validBind() method which will return whether a bind
variable is in the query or not
* fixed Yeb Havinga's db-tier authentication bug
* added timequeries option
* added support for Oracle OS-authentication
* added some new FAQ's
* mysql connection calls commit() before running the first query after
each new client connection
* fixed a crash in the router involving "fake begin's"
* documented msql transaction weirdness and db2 relogin issues
* added /opt/csw to configure script search path
* improved filtering out of -x arguments in perl/ruby make commands
* added -lruby, -lperl, -lpython, etc for OS X
0.38
* implemented mysql_stmt function support in mysql connection
* fixed mysql_autocommit detection
* fixed missing self before __getRow and __getRowRange in python db driver
* implemented query filtering and routing
* interbase/firebird dead-db/relogin works now
* added test for 0 length result set to PySQLRDB's fetchmany method
* added mysql_config sanity test to configure script
* NULL's are escaped in fake input BLOB binds now
* query router works pretty well now
* applied Sharpinskiy Dmitry's odbc unicode patch
* integrated Devananda's statistics gathering code
* added support for mysql stored procedures
* integrated Devananda's mysql result set updates
* sqlrelay.conf.example installed as $datadir/examples/sqlrelay.conf now
* integrated Andreas Behr's listener crash patch
* removed erroneous reference to sqlrcon_errormessage in php pear db
* another multibyte clob fix
* added "delimiter" command to sqlrsh to change delimiter from ; to whatever
* removed msql support
* added db2 9.1 installation doc
* added firebird 2.0 installation docs
* router connection overrides authtier=database
* fixed a bug where clients would hang if they requested a cursor when
none were available
* added some additional mdb 5 checks to configure script
* added iconv const char parameter check to configure script
* the main listener doesn't listen for clients until all of the connections
have started now
* added notes about tcp_tw_recycle/tcp_tw_reuse in tuning doc
* ping causes the connection to relogin if it returns false now
* added iconv include/library find to configure script
* fixed sqlrlistener so forked listeners don't remove the pid file
* switched oracle 8 column size variable type from sb4 to ub2
* if maxqueuelength>maxlisteners then scaling isn't used