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
Packaged by tnozaki@, some minor improvements by me.
Perl binding for Redis database which is in-memory hash store with support for
scalars, arrays and sets and disk persistence.
Changes from previous:
0.47 2011-09-26T17:12:07Z
- Use of the deprecated `catch` functionality now warns on every call,
rather than just the first call from a given caller.
0.46 2011-07-17T00:47:49
- Eliminated "Use of qw(...) as parentheses is deprecated" warning in
test when running on Perl 5.14.
- Properly `local`ing `$$` in the `t/base.t` test so that it doesn't die
on Perl 5.15. Thanks to Andreas J. Koenig for the report and diagnosis
and to Nicholas Clark for the fix.
- Duplicate paragraphs removed from `README.md` thanks to Ask Bjørn
Hansen.
- The `catch` functionality is deprecated. It will warn once for each
caller to keep log verbosity down. In the next release, it will warn
for every call. The release after that, it will be removed altogether.
0.45 2011-05-10T21:44:08
- Fixed crash when `in_txn()` was called before an actual connection
was established.
- Strongly recommend setting `AutoCommit` to true in the documentation.
Setting `AutoCommit` to false defeats the scoping behavior of `txn()`
and therefore should not be used.
- Nested exception handling now works properly in nested calls to
`run()` in fixup mode and in nested calls to `txn()` in all modes.
Thanks to Mark Lawrence for the report (RT #66974).
0.44 2011-03-20T01:04:59
- Fixed bug with the MySQL driver introduced by the auto-reconnection
fix in 0.43. Sorry for the lame mistake. [Lee Aylward]
0.43 2011-03-17T20:03:16
- DBIx::Connector now sets the DBI `RaiseError` parameter to true in
`new()` if neither it nor `HandleError` has been specified. This is to
increase the likelihood that exception handling will be properly
triggered in `run()`, `txn()`, and `svp()`. Documentation has also
been added to emphasize the importance of setting `RaiseError` or
`HandleError` appropriately.
- Documented that `AutoInactiveDestroy` is set to true in `new()` if it
is not specified. It's important tht this attribute be true in forking
environments.
- After connecting to the database, the MySQL driver,
DBIx::Connector::Driver::mysql, now always sets the
`mysql_auto_reconnect` attribute to false. This is to prevent MySQL's
auto-reconnection feature from interfering with DBIx::Connector's
auto-reconnection functionality in `fixup` mode. Thanks to Karen
Etheridge and Peter Rabbitson for the report.
- Removed mention of the use of the `catch` function from Try::Tiny,
since it is no longer compatible to use passing the exception-handling
function. Just using `catch =>` instead, which is cleaner-looking
anyway (RT #65196).
0.42 2010-12-17T18:35:54
- If a catch block died, the exception was not being propagated. That
is, if a catch block threw an exception, DBIx::Connector ate it, and
any calling code would not be able to catch it. This was a pretty
serious bug; upgrading is strongly recommended for anyone using catch
blocks.
- When `run()`, `txn()`, or `svp()` was called recursively from within a
second fixup execution, it was not respecting the fact that it was
recursive and could try to start a transaction again. This happened
*only* when a fixup run found that the database was disconnected and
successfully re-connected, so it's a pretty rare condition.
0.41 2010-12-08T21:02:32
- `connect()` no longer returns a disconnected database handle. Thanks
to John Siracusa for the spot (Issue #6).
- Added `disconnect_on_destroy()`, which can be used to disable
disconnecting the database handle when the connector object is
destroyed. Suggested by John Siracusa.
- bug #3418610 [interface] Links in navigation when
$cfg['MainPageIconic'] = false
- bug #3418849 [interface] Inline edit shows dropdowns even after closing
- bug [view] View renaming did not work
- bug [navi] Wrong icon for view (MySQL 5.5)
- bug #3420229 [doc] Missing documentation section
- bug #3423725 [pdf] Broken PDF file when exporting database to PDF
- [core] Allow to set language in URL
- bug #3425184 [doc] Fix links to PHP documentation
- bug #3426031 [export] Export to bzip2 is not working
* Replication: Previously, replication slaves could connect to the master
server only through master accounts that use native authentication. Now
replication slaves can also connect through master accounts that use
nonnative authentication (except Windows native authentication) if the
required client-side plugin is installed on the slave side in the directory
named by the slave plugin_dir system variable.
* 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.
* InnoDB Storage Engine: This fix improves the performance of instrumentation
code for InnoDB buffer pool operations.
* 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: 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.)
* Internal conversion of zero to binary and back could yield a result with
incorrect precision.
* Valgrind warnings generated by filesort operations were fixed.
* mysqld_safe did not properly check for an already running instance of mysqld.
* The help message for mysql_install_db did not indicate that it supports the
--defaults-file, --defaults-extra-file and --no-defaults options.
* An assertion designed to detect zero-length sort keys also was raised when
the entire key set fit in memory.
* myisampack could create corrupt FULLTEXT indexes when compressing tables.
* A linking problem prevented the FEDERATED storage engine plugin from loading.
Changes from previous:
0.764 (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.763 (12.30.2010) - John Siracusa <siracusa@gmail.com>
* Support for Rose::DB::Object 0.794
* Return from rollback() early if AutoCommit is set.
Changes from previous:
1.001013
- fixed functionality in last release by more deeply cloning parameters, which
prevents bad things when parameters get deleted in the wrong places. Also
be sure we clear state properly after a dump.
1.001012
- Added new method 'available_config_sets' which returns and caches a list of
all the json set configs found in the 'config_dir' directory. This was added
to make it easier when you need to dump all the fixtures programatically.
- Added method 'dump_config_sets' to let you dump more than one set at a time
more easily
- Added method 'dump_all_config_sets' which helps automate dumping all your
current config sets to a directory.
1.001011
- Added an excludes resultsource option to the ->dump({all=>1,...}) feature
- Allow you to directly set a configuration via a Perl HashRef instead of a
JSON file. Useful for testing and when you have simple or generated configs.
- New option to force use of ->create rather than ->populate.
- Fixed a bug in the test suite that would fail on certain JSON parsers
Welcome to phpMyAdmin 3.4.6, a bugfix and minor security release.
Please refer to the upcoming PMASA-2011-15 and -16 announcements on
http://www.phpmyadmin.net/home_page/security/.
GNU `dbm' is a library of functions implementing a hashed database
on a disk file. The software was written by Philip A. Nelson.
This is the optional dbm and ndbm API compatibility library and headers.
Change log:
This is the changelog file for the POCO C++ Libraries.
Release 1.4.2p1 (2011-09-24)
============================
- On Linux, the RTLD_DEEPBIND option is no longer passed to dlopen().
This change was introduced in 1.4.2 to solve a specific problem one customer
was having. Unfortunately, it leads to problems with RTTI.
- It's now possible to pass flags (SHLIB_GLOBAL, SHLIB_LOCAL) to
Poco::SharedLibrary::load() (and the constructor implicitly calling load()),
controlling the mode flags (RTLD_GLOBAL, RTLD_LOCAL) passed to dlopen().
On platforms not using dlopen(), these flags are ignored.
- fixed SF# 3400267: Path_WIN32.cpp bug
Release 1.4.2 (2011-08-28)
==========================
- added Poco::DateTimeFormat::ISO8601_FRAC_FORMAT
- added new Poco::DateTimeFormatter and Poco::DateTimeParser format specifier:
%s for seconds with optional fractions of a second
- fixed a problem with ioctl() on BSD platforms (including OS X) where the
second argument to ioctl() is unsigned long instead of int, causing bad
things on a OS X 64-bit kernel.
- fixed a potential endless loop when enumerating IPv6 network addresses
(reported by Laurent Carcagno)
- new compile-time config option on Windows to set thread names in
debugger. Enable with -DPOCO_WIN32_DEBUGGER_THREAD_NAMES. Available
only in debug builds.
- Cipher can now create Base64 and HexBinary encoded output without linefeeds
(suitable for use in cookies, etc.)
- added Poco::Path::popFrontDirectory()
- improved VxWorks support
- IPv6 fixes: added proper scope id handling in IPAddress, SocketAddress
and related classes.
- Added Poco::Net::ServerSocket::bind6() which allows control over the
IPPROTO_IPV6/IPV6_V6ONLY socket option.
- Removed Poco::MD2Engine class due to licensing issues (the
license for the MD2 code from RSA only allows non-commercial
use). Note that the MD4 and MD5 code from RSA does not have
this issue.
- fixed a Net HTTP client testsuite issue where some tests might
have failed due to prematurely aborted connections by
the HTTPTestServer.
- Poco::Net::SocketAddress: when there is more than one address
returned by a DNS lookup for a name, IPv4 addresses will be
preferred to IPv6 ones.
- NetworkInterface::list() now also returns IPv4 interfaces on Windows when
built with -DPOCO_HAVE_IPv6
- XMLWriter: fixed a bug with attribute namespaces (no namespace prefix
written if attribute namespace is the same as element namespace)
- fixed SF# 3378588: Mismatched new[]/delete (in RSAEncryptImpl and
RSADecryptImpl)
- fixed SF# 3212954 (OpenSSLInitializer::uninitialize() crash) and
SF# 3196862 (Static OpenSSLInitializer instance causes Windows
deadlocks) by removing the static Poco::Crypto::OpenSSLInitializer
instance. Automatic OpenSSL initialization is now done through
Poco::Crypto::Cipher, Poco::Crypto::CipherKey,
Poco::Crypto::X509Certificate, Poco::Net::Context classes; however,
it is still recommended to call Poco::Crypto::initializeCrypto()
and Poco::Crypto::uninitializeCrypto() early at application
startup, and late at shutdown respectively (or
Poco::Net::initializeSSL()/Poco::Net::uninitializeSSL() if the
NetSSL library is used) to avoid multiple full OpenSSL init/uninit
cycles during application runtime.
- Poco::Logger now also support a symbolic log level "none"
(for use with setLevel()) that disables logging completely
for that Logger (equivalent to setLevel(0)).
- Added experimental Android support, using the existing gmake-based
build system.
- fixed SF# 3288584: DateTimeFormatter link error
- fixed SF# 3187117: Typo in InflatingInputStream doc
- fixed SF# 3309731: _WIN32_WCE comparison should be with 0x600 not 600
- fixed SF# 3393026: RegularExpression.h identical enum value
- fixed SF# 3274222: AtomicCounter's postfix operators aren't atomic on Windows
- fixed SF# 3317177: Handle leak on windows
- fixed SF# 3181882: Poco::URI::getPathEtc() double-encodes query
- fixed SF# 3379935: ThreadPool Start Bug
- fixed SF# 3354451: Poco::Format::parsePrec never sets the precision to zero
- fixed SF# 3387258: _MAX_PATH used but unknown in Path_WIN32
- fixed a problem in RSAKeyImpl where direct access to the RSA in a EVP_PKEY
would no longer work in recent OpenSSL versions. Using EVP_PKEY_get1_RSA()
fixes the issue.
- added Poco::Crypto::EncryptingInputStream,
Poco::Crypto::EncryptingOutputStream, Poco::Crypto::DecryptingInputStream
and Poco::Crypto::DecryptingOutputStream.
- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException
- fixed SF# 3178098: Add constructor to Poco::TemporaryFile to specify directory
- fixed SF# 3175310: Absolute path when device
- fixed SF# 3301207: Guided tour example contradicts apidoc (API doc was wrong)
- Poco::Net::HTTPMessage::setContentLength() and
Poco::Net::HTTPMessage::getContentLength() now use std::streamsize
instead of int. This enables 64-bit Content-Length support at
least on 64-bit platforms.
- fixed SF# 3177530: TemporaryFile::tempName() + glob bug on xp
- fixed SF# 3177372: FileChannel documentation inconsistency
- added %E format specifier to Poco::PattermFormatter (epoch time in seconds
since midnight, January 1 1970)
- On Windows, Poco::Util::ServerApplication now supports a /description
command line argument for specifying a service description
(together with /registerService) - added
Poco::Util::WinService::setDescription() and
Poco::Util::WinService::getDescription()
- fixed SF# 3155477: Incorrect URI path handling
- fixed SF# 3309736: Extended Exception macros to set default exception code
new macro is named POCO_DECLARE_EXCEPTION_CODE
- added getter functions for modulus and exponents to Poco::Crypto::RSAKey.
- added Poco::Net::SocketAddress::operator == () and
Poco::Net::SocketAddress::operator != ()
- fixed SF# 3182746: IPAddress.cpp IPv6 bug on big-endian
- fixed SF# 3196961: Unix daemon fails to loadConfiguration() if
started from cwd
- fixed SF# 3393700: NotificationCenter may call a removed observer and crash.
- Reworked implementation of the events framework (Poco::BasicEvent
and friends). The framework is now completely multithreading
save (even in the case that an event subscriber object unsubscribes
and is deleted while an event is being dispatched). Also, the
restriction that any object can only register one delegate for
each event has been removed. For most cases, dispatching events
should be faster, as dispatching an event now needs less dynamic
memory allocations.
- fixed SF# 3178109: getNodeByPath() changes:
getNodeByPath() and getNodeByPathNS() have been moved to
Poco::XML::Node. Furthermore, when invoked on a Poco::XML::Document,
the behavior has changed so that the document element is now
included when traversing the path (previously, traversal would
start at the document element, now it starts at the document).
The path expression can now start with a double-slash, which
results in a recursive search for the path's first element in
the DOM tree.
- fixed SF# 3382935: String data being truncated using ODBC, and
SF# 2921813: Wrong implementation of the ODBC string binding
Release 1.4.1p1 (2011-02-08)
============================
- Poco::Mutex is now a recursive mutex again on Linux
(this was caused by an unfortunate feature test for
PTHREAD_MUTEX_RECURSIVE which did not work on Linux
as PTHREAD_MUTEX_RECURSIVE is an enum value and not
a macro)
- Poco::Net::SecureSocketImpl::abort() now only shuts
down the underlying socket connection and does not free
the SSL object, due to multithreading issues.
Release 1.4.1 (2011-01-29)
==========================
- fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly
- fixed SF# 3146326: SharedMemory issue
- made Poco::Net::HTTPSession::abort() virtual
- added Poco::Net::SecureStreamSocket::abort() to immediately close
a SSL/TLS connection without performing an orderly SSL/TLS shutdown.
- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException.
Added try/catch block to Poco::Net::SecureSocketImpl destructor.
- added additional constructor to Poco::Net::HTTPSClientSession, taking
both a socket and a session object.
- Poco::Net::HTTPSession::abort() now also can be used with a
Poco::Net::HTTPSClientSession.
- fixed SF# 3148045: make clean and distclean issues
- changed Data library names on Unix/Linux platforms to
match the names on Windows (PocoSQLite -> PocoDataSQLite,
PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC)
- added additional options to configure script
- added additional documentation to Poco::Net::HTTPClientSession
- Poco::Net::HTTPClientSession::receiveResponse() closes the connection
if an exception is thrown while reading the response header.
This ensures that a new connection will be set up for the next request
if persistent connections are used.
- improved Poco::Net::MultipartDecoder performance by reading directly from
streambuf
- improved performance of Poco::Base64Encoder, Poco::Base64Decoder,
Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the
given stream's streambuf.
- improved performance of MessageHeader::read() by reading directly from
streambuf instead of istream.
- it is now possible to specify additional MIME part header fields
for a MIME part through the Poco::Net::PartSource class.
- upgraded SQLite to release 3.7.4
- added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and
newer. Please see the VxWorks Platform Notes in the reference documentation
for more information. Currently, the VxWorks is untested; full support
will be available in release 1.4.2.
- fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float
- fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming
header
- made Poco::Task::cancel() virtual so that tasks can implement custom
cancellation behavior.
- added optional argument to Poco::Util::WinRegistryKey constructor
to specify additional flags (in addition to KEY_READ and KEY_WRITE)
for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx().
- improved Poco::BasicEvent::notify() performance by avoiding an
unnecessary heap allocation.
- added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp.
- added Poco::Net::MediaType::matchesRange()
- improved invalid socket handling: a Poco::Net::InvalidSocketException is
now thrown instead of an assertion when an operation is attempted
on a closed or otherwise uninitialized socket.
Changes from previous:
1.43
- Segregated into different packages
- Removed code coverage from POD
- Fixed bug rt49537 Basic support for named parameters
- Fixed bug rt70421 Build.PL now contains Test::Exception
1.42
- Fixed bug rt66815 DBD::Mock::Session error clobbered
- Fixed bug rt69460 Info on META.yml is outdated
- Fixed bug rt69055 Spelling mistakes in POD
- RaiseError now works