pkgsrc change: add RUBY_RAILS_STRICT_DEP which will be enabled later.
## Rails 3.1.6 (Jun 12, 2012)
* protect against the nesting of hashes changing the
table context in the next call to build_from_hash. This fix
covers this case as well.
CVE-2012-2695
pkgsrc change: add RUBY_RAILS_STRICT_DEP which will be enabled later.
## Rails 3.0.14 (Jun 12, 2012)
* protect against the nesting of hashes changing the
table context in the next call to build_from_hash. This fix
covers this case as well.
CVE-2012-2695
## Rails 3.2.6 (Jun 12, 2012) ##
* protect against the nesting of hashes changing the
table context in the next call to build_from_hash. This fix
covers this case as well.
CVE-2012-2695
* Revert earlier 'perf fix' (see 3.2.4 changelog / GH #6289). This
change introduced a regression (GH #6609). assoc.clear and
assoc.delete_all have loaded the association before doing the delete
since at least Rails 2.3. Doing the delete without loading the
records means that the `before_remove` and `after_remove` callbacks do
not get invoked. Therefore, this change was less a fix a more an
optimisation, which should only have gone into master.
*Jon Leighton*
* In-memory databases that are specified using URI filenames are allowed to use
shared cache, so that the same in-memory database can be accessed from
multiple database connections.
* Recognize and use the mode=memory query parameter in URI filenames.
* Avoid resetting the schema of shared cache connections when any one
connection closes. Instead, wait for the last connection to close before
reseting the schema.
* In the RTREE extension, when rounding 64-bit floating point numbers to 32-bit
for storage, always round in a direction that causes the bounding box to get
larger.
* Adjust the unix driver to avoid unnecessary calls to fchown().
* Add interfaces sqlite3_quota_ferror() and sqlite3_quota_file_available() to
the test_quota.c module.
* The sqlite3_create_module() and sqlite3_create_module_v2() interfaces return
SQLITE_MISUSE on any attempt to overload or replace a virtual table module.
The destructor is always called in this case, in accordance with historical
and current documentation.
PR 46534 by Wen Heping.
While here, set LICENSE=php.
Changes since 1.7.13:
All drivers:
* Made the definition of DB_common::raiseError() compatible with
PEAR::raiseError() by adding dummy parameters. Request 11581.
* Fixed SKIP block in the 20locale.phpt test.
* Fixed non-persistent connections to really be non-persistent when unserialising.
Bug 15115.
ibase:
* Changed the order of regular expressions applied when mapping errors so that
constraint violations in PHP 4.4 are actually reported as constraint
violations and not table not found errors.
* Fixed a test that should have been skipped in PHP 4.4.
ifx:
* Use PCRE rather than ereg. Bug 17722, patch by Olle Jonsson.
mssql:
* Fix escaping of string values with lines ending in a backslash character.
Bug 16117.
oci8:
* Fix for last_query reconstruction with lots of placeholders. Bug 12418, patch
by Nicholas Evans.
* Fix replacement of values in last_query for :bind's numbered over 10.
Bug 14603.
* Unset $_prepared_queries in freePrepared(). Bug 14271.
pgsql:
* Added special-case to handle SAVEPOINT queries as manip queries. Bug 12260.
* Implement rudimentary support for WITH...SELECT queries. Bug 17136.
sqlite:
* Added support for another error message in the SQLite driver. Bug 12105, patch
by Adam Ashley.
* Implement auto_increment support in tableInfo(). Request 13193.
* The --safe-mode server option now is deprecated and will be removed in MySQL
5.6.
* Performance: InnoDB: Improved the algorithm related to adaptive flushing.
This fix increases the rate of flushing in cases where compression is used
and the data set is larger than the buffer pool, leading to eviction.
* InnoDB: In a transaction using the REPEATABLE READ isolation level, an UPDATE
or DELETE statement for an InnoDB table could sometimes overlook rows
recently committed by other transactions. As explained in Section 14.3.9.2,
“Consistent Nonlocking Reads”, DML statements within a REPEATABLE READ
transaction apply to rows committed by other transactions, even if a query
could not see those rows.
* InnoDB: The Innodb_buffer_pool_pages_flushed status variable was incorrectly
set to twice the value it should be. Its value should never exceed the value
of Innodb_pages_written.
* InnoDB: The error handling and message was improved for attempting to create
a foreign key with a column referencing itself. The message suggested
a potential problem with the data dictionary, when no such problem existed.
* InnoDB: The CHECK TABLE statement could fail for a large InnoDB table due to
a timeout value of 2 hours. For typical storage devices, the issue could
occur for tables that exceeded approximately 200 or 350 GB, depending on I/O
speed. The fix relaxes the locking performed on the table being checked,
which makes the timeout less likely. It also makes InnoDB recognize the
syntax CHECK TABLE QUICK, which avoids the possibility of the timeout
entirely.
* Replication: It was theoretically possible for concurrent execution of more
than one instance of SHOW BINLOG EVENTS to crash the MySQL Server.
* Replication: Statements using AUTO_INCREMENT, LAST_INSERT_ID(), RAND(), or
user variables could be applied in the wrong context on the slave when using
statement-based replication and replication filtering server options (see
Section 16.2.3, “How Servers Evaluate Replication Filtering Rules”).
* Replication: An INSERT into a table that has a composite primary key that
includes an AUTO_INCREMENT column that is not the first column of this
composite key is not safe for statement-based binary logging or replication.
Such statements are now marked as unsafe and fail with an error when using
the STATEMENT binary logging format. For more information, see Section
16.1.2.3, “Determination of Safe and Unsafe Statements in Binary Logging”, as
well as Section 16.4.1.1, “Replication and AUTO_INCREMENT”.
3.2.4 had some regression related problem.
## Rails 3.2.4 (May 31, 2012) ##
* Perf fix: Don't load the records when doing assoc.delete_all.
GH #6289. *Jon Leighton*
* Association preloading shouldn't be affected by the current scoping.
This could cause infinite recursion and potentially other problems.
See GH #5667. *Jon Leighton*
* Datetime attributes are forced to be changed. GH #3965
* Fix attribute casting. GH #5549
* Fix#5667. Preloading should ignore scoping.
* Predicate builder should not recurse for determining where columns.
Thanks to Ben Murphy for reporting this! CVE-2012-2661
## Rails 3.1.5 (May 31, 2012) ##
* Fix type_to_sql with text and limit on mysql/mysql2. Fix GH #3931.
* only log an error if there is a logger. fixes#5226
* fix activerecord query_method regression with offset into Fixnum
* predicate builder should not recurse for determining where columns.
Thanks to Ben Murphy for reporting this! CVE-2012-2661
* Rails 3.0.13 (May 31, 2012)
* Bugfix circular reference while saving has_one relationship
* Test for circular reference while saving has_one relationship
* Fixed typo in composed_of example with Money#<=>
* predicate builder should not recurse for determining where columns.
Thanks to Ben Murphy for reporting this! CVE-2012-2661
=== 3.36.0 (2012-06-01)
* Use Bignum generic type when dumping unsigned integer types that could potentially overflow 32-bit signed integer values (stu314)
* Support :transform option in the nested_attributes plugin, for automatically preprocessing input hashes (chanks)
* Support :unmatched_pk option in the nested_attributes plugin, can be set to :create for associated objects with natural keys (chanks)
* Support composite primary keys in the nested_attributes plugin (chanks)
* Allow Model#from_json in the json_serializer plugin to use set_fields if a :fields option is given (jeremyevans)
* Support :using option to set_column_type on PostgreSQL, to force a specific conversion from the old value to the new value (jeremyevans)
* Drop indexes in the reverse order that they were added in the schema dumper (jeremyevans)
* Add :index_names option to schema dumper method, can be set to false or :namespace (stu314, jeremyevans)
* Add Database#global_index_namespace? for checking if index namespace is global or per table (jeremyevans)
* Fix typecasting of time columns on jdbc/postgres, before could be off by a millisecond (jeremyevans)
* Add document explaining Sequel's object model (jeremyevans)
* Attempt to detect more disconnect errors in the mysql2 adapter (jeremyevans)
* Add is_current? and check_current to the migrators, for checking/raising if there are unapplied migrations (pvh, jeremyevans) (#487)
* Add a jdbc subadapter for the Progress database (Michael Gliwinski, jeremyevans)
* Add pg_inet extension, for working with PostgreSQL inet and cidr types (jeremyevans)
* Fix bug in model column setters when passing an object that raises an exception for ==('') (jeremyevans)
* Add eager_each plugin, which makes each on an eagerly loaded dataset do eager loading (jeremyevans)
* Fix bugs when parsing foreign keys for tables with explicit schema on PostgreSQL (jeremyevans)
* Remove Database#case_sensitive_like on SQLite (jeremyevans)
* Remove Database#single_value in the native sqlite adapter (jeremyevans)
* Make Dataset#get work with nil and false arguments (jeremyevans)
* Make json_serializer plugin respect :root=>:collection and :root=>:instance options (jeremyevans)
* Support savepoints in prepared transactions on MySQL 5.5.23+ (jeremyevans)
* Add pg_json extension, for working with PostgreSQL 9.2's new json type (jeremyevans)
* In the optimistic locking plugin, make refresh and save after a failed save work correctly (jeremyevans)
* Support partial indexes on Microsoft SQL Server 2008 (jeremyevans)
* Make Database#call pass blocks (jeremyevans)
* Support :each when preparing statements, useful for iterating over large datasets (jeremyevans)
* Support :if_exists and :cascade options when dropping indexes on PostgreSQL (jeremyevans)
* Support :concurrently option when adding and dropping indexes on PostgreSQL (jeremyevans)
* Make Database#transaction on PostgreSQL recognize :synchronous, :read_only, and :deferrable options (jeremyevans)
* Support :sql_mode option when connecting to MySQL (jeremyevans)
* Apply :timeout MySQL connection setting on do, jdbc, and swift adapters (jeremyevans)
* Don't set Sequel::Model.db automatically when creating an anonymous class with an associated database object (jeremyevans)
* Add :connection_handling=>:queue option to the threaded connection pools, may reduce chance of stale connections (jeremyevans) (#481)
* Handle JRuby 1.7 exception handling changes when connecting in the jdbc adapter (jeremyevans) (#477)
* Make *_to_one association setters be noops if you pass a value that is the same as the cached value (jeremyevans)
* Make Model#refresh return self when using dirty plugin (jeremyevans)
=== 3.35.0 (2012-05-01)
* Correctly handle parsing schema for tables in other databases on MySQL (jeremyevans)
* Add DSL support for the modulus operator (%), similar to the bitwise operators (jeremyevans)
* Fix possible thread-safety issues on non-GVL ruby implementations (jeremyevans)
* Allow truncation of multiple tables at the same time on PostgreSQL (jeremyevans)
* Allow truncate to take a :cascade, :only, and :restart options on PostgreSQL (hgimenez, jeremyevans)
* Allow json and xml serializers to support :array option in class to_json method to serialize existing array of model instances (jeremyevans)
* Add dirty plugin, which saves the initial value of the column when the value is changed (jeremyevans)
* create_table now supports an :as option to create a table directly from the results of a query (jeremyevans)
* The :index option when creating columns in the schema generator can now be a hash of options passed to index (jeremyevans)
* Parsing the default column values in the oracle adapter no longer requires superuser privileges (Jason Hines)
* Add Database#cache_schema to allow schema caching to be turned of, useful for development modes where models are reloaded (jeremyevans)
* Correctly handle errors that occur when rolling back transactions (jeremyevans)
* Recognize identity type in the schema dumper (jeremyevans) (#468)
* Don't assign instance variables to Java objects, for future JRuby 2.0 support (jeremyevans) (#466)
* Use date and timestamp formats that are multilanguage and not DATEFORMAT dependent on Microsoft SQL Server (jeremyevans)
* Add Database#log_exception, which logs when a query raises an exception, for easier overriding (jeremyevans) (#465)
* Make the migrators only use transactions by default if the database supports transactional DDL (jeremyevans)
* Add Database#supports_transactional_ddl? for checking if DDL statements can be rolled back in transactions (jeremyevans)
* Don't use auto parameterization when using cursors in the pg_auto_parameterize extension (jeremyevans) (#463)
* No longer escape backslashes in strings by default, fixes doubled backslashes on some adapters (jeremyevans)
* Escape blackslash-carriage return-line feed in strings on Microsoft SQL Server (mluu, jeremyevans) (#462, #461)
* Remove Array#all_two_pairs? (jeremyevans)
* Remove Dataset#disable_insert_returning on PostgreSQL (jeremyevans)
* Remove support for PostgreSQL <8.2 (jeremyevans)
* Remove support for Ruby <1.8.7 (jeremyevans)
* Fixed incompatibility problems of Java DPL with JDK7, so DPL will now work
with JDK7.
* Added a flag to allow database locking to be disabled from the SQL API.
* Fixed a bug that could allocate a heap data page in a region after the region
creation has been undone.
* Redundant whitespaces are now ignored in DB_CONFIG lines pertaining to
directories, e.g. set_data_dir.
* Fixed a bug that caused DB_ENV->backup to stop early if DB_BACKUP_FILES was
not set and a non-DB file was in the data directory.
* Fixed a rare race condition that could cause a crash if two processes opened
the same database at the same time.
* Fixed missing cross compiling capability for the JDBC driver.
* Allow the same system/machine to host both a master and a replica database
through the use of relative pathnames.
* Fixed a bug in the Java API where EnvironmentConfig.setCreateDir would fail
to configure the environment.
* Fixed an assert failure in btreeCompare when allocating memory in the wrong
thread was causing a memory leak.
* Fixed a bug in the Java API where concurrent operations that change the
database schema could lead to a hang.
* Added JDBC code to the code base and updated the windows build files to
include the JDBC solution.
* Fixed a bug where the heap's region size was not getting swapped correctly in
mixed-endian environments.
* Fixed a bug in the db_sql_jdbc project file for vs2010 that was preventing it
from building correctly.
0.52 2012-05-29T18:32:42Z
- The DBI params are now encapsulated in a code reference, rather than
stored as the passed array, so that the password is less likely to be
displayed in a dump. Idea borrowed from Rose::DB. Patch from Brad
Bowman.
- Eliminated warning about the non-portability of a v-string on older
Perls. Thanks to Mark Lawrence for the report (Issue #17).
- Removed a couple of leftover examples of the `catch` feature removed
in v0.50. Thanks to Randy Stauner for the patch!
- Eliminated more "Use of qw(...) as parentheses" syntax errors in tests
when running on Perl 5.17.
- Add mention of DBI Callbacks parameter to the docs, as folks often ask
for this functionality, not realizing that the DBI already provides
it. Randy Stauner.
0.51 2012-02-18T00:14:48Z
- Fixed internal exception handling on Perls less than 5.14, where some
exceptions woult not be propagated to the caller.
0.50 2012-02-14T18:25:07Z
- The `catch` functionality has been completely removed. Any `catch`
block passed to `run()`, `txn()`, or `svp()` will be ignored. Errors
will trigger fatal exceptions.
- Removed the `with` method, which was deprecated in 0.34. Use `mode()`
instead.
- Fixed bad method call attempted when an `svp()` block failed. Thanks
to Ricardo SIGNES for the regression test and the fix.
- Fixed creation of the SQLite driver savepoint methods so that they
exist and work even if the driver is loaded before DBD::SQLite. Thanks
to Ricardo SIGNES for the regression test and the fix.
SQLAlchemy 0.6.9, a maintenance release of the 0.6 branch, is now
available.
The 0.6 series has not seen a release since 0.6.8 was released
nearly a year ago. During that time, the 0.7 series has gone through
over six releases, gaining many new features and bug fixes. A
portion of these fixes have been backported to 0.6 since 0.6.8,
including twelve ORM fixes, so 0.6.9 is an effort to make these
fixes widely available to those installations who have not yet
upgraded to 0.7. The release coincides at the same time as release
0.7.7, which is also fast approaching maintenance-only mode with
0.8 now well underway and close to initial beta releases.
Care has been taken in 0.6.9 to minimize as much as possible the
potential for backwards-incompatibilities with existing code, which
sometimes can occur if an application is unknowingly relying upon
a buggy behavior that is then fixed. So while 0.6.9 is a very
conservative release, it does still represent changes over a year's
time; users are strongly urged to carefully review the CHANGES file
to see exactly what's been adjusted, and to test it fully in their
existing 0.6 applications before promoting it to production.
* Fix a bug in the 3.7.12 release that can cause a segfault for certain obscure
nested aggregate queries.
* Fix various other minor test script problems.
Version 2.19.2 Released March 12, 2012
- Fix errors when multiple same-named placeholders are used. [GSM]
(CPAN bug #75713)
Version 2.19.1 Released March 10, 2012 (git commit db6f6da00467c7ea28d32c4df97e93ccc4d38f2b)
- Fix crash when passing in an array with undefined elements. [GSM]
Version 2.19.0 Released March 9, 2012 (git commit 05ab092905ce6891ed83e173412ee70d6cdb8cb5)
- Use proper formatting for warn() and croak() (CPAN bug #75642)
[Niko Tyni]
- Fix localized regex in test (CPAN bug #70759)
- Fix for named placeholders (CPAN bug #70953) [Jan Pazdziora]
- Various fixes to the array-marshalling code [Noah Misch, Mark
Stosberg, and David Christensen] (CPAN bug #58552)
- Allow hi-bit chars in dollar-quoted identifiers
[David Christensen] (CPAN bug #73832)
- Have do() return count for things such as CREATE TABLE .. AS SELECT
Will only work on 9.0 or better. (CPAN bug #71073) [Pavel Stehule]
- Better error message when trying to do things post-disconnect [GSM]
- Always respect pg_server_prepare=0 by using PQexec not PQexecParams. [GSM]
- Fix error in async docs (CPAN bug #72812)
- Switch from subversion to git.
git clone git://bucardo.org/dbdpg.git [GSM]
* Add the SQLITE_DBSTATUS_CACHE_WRITE option for sqlite3_db_status().
* Optimize the typeof() and length() SQL functions so that they avoid unnecessary reading of database content from disk.
* Add the FTS4 "merge" command, the FTS4 "automerge" command, and the FTS4 "integrity-check" command.
* Report the name of specific CHECK constraints that fail.
* In the command-line shell, use popen() instead of fopen() if the first character of the argument to the ".output" command is "|".
* Make use of OVERLAPPED in the windows VFS to avoid some system calls and thereby obtain a performance improvement.
* More aggressive optimization of the AND operator when one side or the other is always false.
* Improved performance of queries with many OR-connected terms in the WHERE clause that can all be indexed.
* Add the SQLITE_RTREE_INT_ONLY compile-time option to force the R*Tree Extension Module to use integer instead of floating point values for both storage and computation.
* Enhance the PRAGMA integrity_check command to use much less memory when processing multi-gigabyte databases.
* New interfaces added to the test_quota.c add-on module.
* Added the ".trace" dot-command to the command-line shell.
* Allow virtual table constructors to be invoked recursively.
* Improved optimization of ORDER BY clauses on compound queries.
* Improved optimization of aggregate subqueries contained within an aggregate query.
* Bug fix: Fix the RELEASE command so that it does not cancel pending queries. This repairs a problem introduced in 3.7.11.
* Bug fix: Do not discard the DISTINCT as superfluous unless a subset of the result set is subject to a UNIQUE constraint and it none of the columns in that subset can be NULL.
* Bug fix: Do not optimize away an ORDER BY clause that has the same terms as a UNIQUE index unless those terms are also NOT NULL.
Changes (http://dev.mysql.com/doc/refman/5.5/en/news-5-5-24.html):
Functionality Added or Changed
* Important Change: Replication: INSERT ON DUPLICATE KEY UPDATE is now
marked as unsafe for statement-based replication if the target table has
more than one primary or unique key. For more information, see Section
16.1.2.3, "Determination of Safe and Unsafe Statements in Binary
Logging".
Bugs Fixed
* Security Fix: Bug #64884 was fixed.
* InnoDB: Replication: When binary log statements were replayed on the
slave, the Com_insert, Com_update, and Com_delete counters were
incremented by BEGIN statements initiating transactions affecting InnoDB
tables but not by COMMIT statements ending such transactions. This
affected these statements whether they were replicated or they were run
using mysqlbinlog. (Bug #12662190)
* If the --bind-address option was given a host name value and the host
name resolved to more than one IP address, the server failed to
start. For example, with --bind-address=localhost, if localhost resolved
to both 127.0.0.1 and ::1, startup failed. Now the server prefers the
IPv4 address in such cases. (Bug #61713, Bug #12762885)
* mysql_store_result() and mysql_use_result() are not for use with
prepared statements and are not intended to be called following
mysql_stmt_execute(), but failed to return an error when invoked that
way in libmysqld. (Bug #62136, Bug #13738989)
References: See also Bug #47485.
* On Windows, mysqlslap crashed for attempts to connect using shared
memory. (Bug #31173, Bug #11747181, Bug #59107, Bug #11766072)
Changes (http://dev.mysql.com/doc/refman/5.1/en/news-5-1-63.html):
* Security Fix: Bug #64884 was fixed.
* Security Fix: Bug #59387 was fixed.
* InnoDB: Deleting a huge amount of data from InnoDB tables
within a short time could cause the purge operation that
flushes data from the buffer pool to stall. If this issue
occurs, restart the server to work around it. This issue is
only likely to occur on 32-bit platforms. (Bug #13847885)
* InnoDB: If the server crashed during a TRUNCATE TABLE or
CREATE INDEX statement for an InnoDB table, or a DROP DATABASE
statement for a database containing InnoDB tables, an index
could be corrupted, causing an error message when accessing
the table after restart:
InnoDB: Error: trying to load index index_name for table
table_name
InnoDB: but the index tree has been freed!
In MySQL 5.1, this fix applies to the InnoDB Plugin, but not
the built-in InnoDB storage engine. (Bug #12861864, Bug
#11766019)
* InnoDB: When data was removed from an InnoDB table, newly
inserted data might not reuse the freed disk blocks, leading
to an unexpected size increase for the system tablespace or
.ibd file (depending on the setting of innodb_file_per_table.
The OPTIMIZE TABLE could compact a .ibd file in some cases but
not others. The freed disk blocks would eventually be reused
as additional data was inserted. (Bug #11766634, Bug #59783)
* Partitioning: After updating a row of a partitioned table and
selecting that row within the same transaction with the query
cache enabled, then performing a ROLLBACK, the same result was
returned by an identical SELECT issued in a new transaction.
(Bug #11761296, Bug #53775)
* Replication: The --relay-log-space-limit option was sometimes
ignored.
More specifically, when the SQL thread went to sleep, it
allowed the I/O thread to queue additional events in such a
way that the relay log space limit was bypassed, and the
number of events in the queue could grow well past the point
where the relay logs needed to be rotated. Now in such cases,
the SQL thread checks to see whether the I/O thread should
rotate and provide the SQL thread a chance to purge the logs
(thus freeing space).
Note that, when the SQL thread is in the middle of a
transaction, it cannot purge the logs; it can only ask for
more events until the transaction is complete. Once the
transaction is finished, the SQL thread can immediately
instruct the I/O thread to rotate. (Bug #12400313, Bug #64503)
References: See also Bug #13806492.
* Mishandling of NO_BACKSLASH_ESCAPES SQL mode within stored
procedures on slave servers could cause replication failures.
(Bug #12601974)
* If the system time was adjusted backward during query
execution, the apparent execution time could be negative. But
in some cases these queries would be written to the slow query
log, with the negative execution time written as a large
unsigned number. Now statements with apparent negative
execution time are not written to the slow query log. (Bug
#63524, Bug #13454045) References: See also Bug #27208.
* mysql_store_result() and mysql_use_result() are not for use
with prepared statements and are not intended to be called
following mysql_stmt_execute(), but failed to return an error
when invoked that way in libmysqld. (Bug #62136, Bug
#13738989) References: See also Bug #47485.
* SHOW statements treated stored procedure, stored function, and
event names as case sensitive. (Bug #56224, Bug #11763507)
* On Windows, mysqlslap crashed for attempts to connect using
shared memory. (Bug #31173, Bug #11747181, Bug #59107, Bug
#11766072)
Changes:
2011-08-15 Patrick Galbraith (work of others) <patg at patg dot net> (4.021)
* Fix to enable PERL_NO_GET_CONTEXT to spee up DBD on thread Perls
(Dave Mitchell <davem at iabyn dot com>) Thank you!
* Fix to is_prefix not being exported by mysql Aran Deltax <bluefeet at gmail dot com> Thank you!
* Eliminate DBIS usage Dagfinn Ilmari Mannsåker <ilmari at ilmari dot org> Thank you!
* Enhanced / Fixed server side prepared statement checks (Steven Hartland) Thank you!
* Fix missprint in doc of DBD::mysql of mysql_bind_type_guessing (Perlover http://blog.perloever.com) Thank you!
* Misprint in lib/DBD/mysql.pm (Perlover) Thank you!
Changes:
=head2 Changes in DBI 1.620 (svn r15300) 25th April 2012
Modified column renaming in fetchall_arrayref, added in 1.619,
to work on column index numbers not names (an incompatible change).
Reworked the fetchall_arrayref documentation.
Hash slices in fetchall_arrayref now detect invalid column names.
=head2 Changes in DBI 1.619 (svn r15294) 23rd April 2012
Fixed the connected method to stop showing the password in
trace file (Martin J. Evans).
Fixed _install_method to set CvFILE correctly
thanks to sprout RT#76296
Fixed SqlEngine "list_tables" thanks to David McMath
and Norbert Gruener. RT#67223 RT#69260
Optimized DBI method dispatch thanks to Dave Mitchell.
Optimized driver access to DBI internal state thanks to Dave Mitchell.
Optimized driver access to handle data thanks to Dave Mitchell.
Optimized fetchall_arrayref with hash slice thanks
to Dagfinn Ilmari Mannsåker. RT#76520
Allow renaming columns in fetchall_arrayref hash slices
thanks to Dagfinn Ilmari Mannsåker. RT#76572
Reserved snmp_ and tree_ for DBD::SNMP and DBD::TreeData
- browse-mode improvements
- grid editing
- remember recent tables
- remember last sort order by table
- flexible column width
- reorder columns
- more compact navigation bar
- AJAXification of many operations
- reorganised server status page, with server monitoring
- improved support for stored routines, events and triggers
- openGIS support
- zoom-search in table search
- Drizzle support
- improved ENUM/SET editor
## Rails 3.2.3 (unreleased) ##
* Added find_or_create_by_{attribute}! dynamic method. *Andrew White*
* Whitelist all attribute assignment by default. Change the default for newly generated applications to whitelist all attribute assignment. Also update the generated model classes so users are reminded of the importance of attr_accessible. *NZKoz*
* Update ActiveRecord::AttributeMethods#attribute_present? to return false for empty strings. *Jacobkg*
* Fix associations when using per class databases. *larskanis*
* Revert setting NOT NULL constraints in add_timestamps *fxn*
* Fix mysql to use proper text types. Fixes#3931. *kennyj*
* Fix#5069 - Protect foreign key from mass assignment through association builder. *byroot*
=== 1.3.6 / 2012-04-16
* Enhancements
* Windows: build against SQLite 3.7.11
* Added SQLite3::ResultSet#each_hash for fetching each row as a hash.
* Added SQLite3::ResultSet#next_hash for fetching one row as a hash.
* Bugfixes
* Support both UTF-16LE and UTF-16BE encoding modes on PPC. Closes#63
* Protect parameters to custom functions from being garbage collected too
soon. Fixes#60. Thanks hirataya!
* Fix backwards compatibility with 1.2.5 with bind vars and `query` method.
Fixes#35.
* Fix double definition error caused by defining sqlite3_int64/uint64.
* Fix suspicious version regexp.
* Deprecations
* ArrayWithTypesAndFields#types is deprecated and the class will be removed
in version 2.0.0. Please use the `types` method on the ResultSet class
that created this object.
* ArrayWithTypesAndFields#fields is deprecated and the class will be removed
in version 2.0.0. Please use the `columns` method on the ResultSet class
that created this object.
* The ArrayWithTypesAndFields class will be removed in 2.0.0
* The ArrayWithTypes class will be removed in 2.0.0
* HashWithTypesAndFields#types is deprecated and the class will be removed
in version 2.0.0. Please use the `types` method on the ResultSet class
that created this object.
* HashWithTypesAndFields#fields is deprecated and the class will be removed
in version 2.0.0. Please use the `columns` method on the ResultSet class
that created this object.
Based on maintainer update request per PR 46084.
(let to register egg-info, set LICENSE, fix DOS style EOL of some files)
Changes since 0.8.0:
Tue Apr 23 23:00:00 2009 Andrzej Kukula <akukula@gmail.com>
+ bugfix: fixed rare quoting bug in select_db()
+ feature: added 'max_conn' parameter to pymssql.connect() and
_mssql.connect() which defaults to 25, thanks Daniel Watrous
<dwmaillist@gmail.com>
* nagios-plugin update - thanks Josselin Mouette <joss@debian.org>:
+ Include a -P port option, to avoid having to passing it with the
host name
+ Fix the encoding of the comments; utf-8 is the declared encoding
of the file and must be followed
+ Fix a typo in the SQL syntax
+ Connect explicitly to the "master" database (required since 1.0.0)
+ Improve perfdata output.
* version 1.0.2
Tue Apr 21 22:56:00 2009 Andrzej Kukula <akukula@gmail.com>
* mssqldbmodule.c:
+ bugfix in format_and_run_query(): query strings were sometimes
overwritten with garbage due to DECREF in wrong place; thanks
Igor Nazarenko <igor.n.nazarenko@gmail.com>
+ bugfix in get_result(): if a query batch contained DECLARE or
possibly other T-SQL statements, no results were returned
thanks Kay Schluehr <schluehrk@users.sourceforge.net>
+ bugfix in execute_scalar(): check if there are any columns in result
+ bugfix: check for FAIL after each dbnextrow()
+ feature: Add support for bigint - #2660972; thanks Alexandr
Zamaraev <shura_zam@users.sourceforge.net>
* pymssql.c:
+ bugfix in execute(): if execute is called without second argument,
don't treat '%' in query string as formatting character; restored
compatibility with common sense and with pymssql < 1.0.0; thanks
Corey Bertram <corey.bertram@monitoredsecurity.com>,
Wes McKinney <wesmckinn@gmail.com>
+ feature: it is possible to specify 'as_dict' to pymssql.connect
and rows will be returned as dictionaries instead of tuples;
thanks Daniel Watrous <dwmaillist@gmail.com>
Thu Jan 30 18:36:00 2009 Andrzej Kukula <akukula@gmail.com>
* mssqldbmodule.c:
+ Pyssize_t error on x64 - thanks Josselin Mouette <joss@debian.org>
+ critical charset updates, thanks Josselin Mouette <joss@debian.org>
+ more Py_ssize_t updates, further code cleanups
+ fixed some compiler warnings
* pymssql.py:
+ execute() failed, thanks Josselin Mouette <joss@debian.org>
+ critical charset updates, thanks Josselin Mouette <joss@debian.org>
+ removed warnings, users don't want them and they are not 'MUST'
priority in DB-API spec
* nagios-plugin: introducted Nagios plugin, thanks Julien Blache
and Josselin Mouette
* version 1.0.1
Thu Jan 29 19:23:00 2009 Andrzej Kukula <akukula@gmail.com>
* version 1.0.0
* so many changes I'll not put them here, I'll document
changes from now on.
Mon Sep 25 20:18:00 2006 Andrzej Kukula <akukula@gmail.com>
* setup.py: fix for Fink (http://Fink.SF.Net) under OS X (thanks
Terrence Brannon <metaperl@gmail.com>)
Mar 27 2012, V3.52.8:
* Converted from CVS to GIT
* Added build support for Mac OS X 10.5, 10.6 and 10.7
* Converted old Mac OS X .nib format to newer .xib format
* Fixed issue with using buffer after free
* Fixed use ssize_t where appropriate
* Fixed issue with strlen if param can be NULL
* Fixed use ssize_t for length of string
* Fixed tracing SQLGetData using multiple chunks
* Fixed problem tracing on big-endian machines
* Fixed wrong type label
* Fixed compiler warnings
* The close() methods on connections and cursors don't raise exceptions if
called on already closed objects.
* Fixed fetchmany() with no argument in cursor subclasses.
* Use lo_creat() instead of lo_create() when possible for better interaction
with pgpool-II.
* Error and its subclasses are picklable, useful for multiprocessing interaction
* Better efficiency and formatting of timezone offset objects thanks to Menno
Smits.
* Fixed rownumber during iteration on cursor subclasses. Regression introduced
in 2.4.4.
* Added support for inet arrays.
* Fixed commit() concurrency problem.
* Codebase cleaned up using the GCC Python plugin's static analysis tool, which
has revealed several unchecked return values, possible NULL dereferences,
reference counting problems.
- bug #3486970 [import] Exception on XML import
- bug #3488777 [navi] $cfg['ShowTooltipAliasTB'] and blank names in
navigation
- bug #3512565 [navi] Fixed missing word "Rows" in table list tooltip
after cli
- [security] Fixed local path disclosure vulnerability, see PMASA-2012-2
Bugs Fixed
* Security Fix: Bug 59533 was fixed.
* Performance: Partitioning: InnoDB Storage Engine: The statistics used by the
optimizer for queries against partitioned InnoDB tables were based only on the
first partition of each such table, leading to use of the wrong execution
plan.
* References: This bug was introduced by Bug 11756867.
* Performance: InnoDB Storage Engine: Improved the performance of the DROP TABLE
statement for InnoDB tables, especially on systems with a large buffer pool.
The fix speeds up the processing for freeing entries in the adaptive hash
index.
* InnoDB Storage Engine: Deleting a huge amount of data from InnoDB tables
within a short time could cause the purge operation that flushes data from the
buffer pool to stall. If this issue occurs, restart the server to work around
it. This issue is only likely to occur on 32-bit platforms.
* InnoDB Storage Engine: If the server crashed during a TRUNCATE TABLE or CREATE
INDEX statement for an InnoDB table, or a DROP DATABASE statement for
a database containing InnoDB tables, an index could be corrupted, causing an
error message when accessing the table after restart:
InnoDB: Error: trying to load index index_name for table table_name
InnoDB: but the index tree has been freed!
In MySQL 5.1, this fix applies to the InnoDB Plugin, but not the built-in
InnoDB storage engine.
* InnoDB Storage Engine: When data was removed from an InnoDB table, newly
inserted data might not reuse the freed disk blocks, leading to an unexpected
size increase for the system tablespace or .ibd file (depending on the
setting of innodb_file_per_table. The OPTIMIZE TABLE could compact a .ibd file
in some cases but not others. The freed disk blocks would eventually be
reused as additional data was inserted.
More...
MySQL 5.0 series.
5.0.96
* yaSSL was upgraded from version 1.7.2 to 2.2.0.
5.0.95
* No change log entries.
5.0.94
* Some files in the MySQL Server sources containing legacy code still used the
LGPL license. Such files that were no longer in use have been removed. Any
such code that remains following this removal now appears under the GPL
only. (Bug #11896296)
References: See also Bug #11840513.
* Under some circumstances, the result of SUBSTRING_INDEX() incorrectly
depended on the contents of the previous row. (Bug #42404, Bug #11751514)
5.0.93
* Security Fix: The PolyFromWKB() function could crash the server when
improper WKB data was passed to the function. (Bug #51875, Bug #11759554,
CVE-2010-3840)
* Security Fix: Bug #36544 was fixed.
* Security Fix: Bug #49124 and Bug #11757121 were fixed.
* Two unused test files in storage/ndb/test/sql contained incorrect versions
of the GNU Lesser General Public License. The files and the directory
containing them have been removed. (Bug #11810224)
References: See also Bug #11810156.
* On FreeBSD and OpenBSD, the server incorrectly checked the range of the
system date, causing legal values to be rejected. (Bug #55755, Bug
#11763089)
* New utf8_general_mysql500_ci and ucs2_general_mysql500_ci collations have
been added that preserve the behavior of utf8_general_ci and ucs2_general_ci
from versions of MySQL previous to 5.1.24. Bug 27877 corrected an error in
the original collations but introduced an incompatibility for columns that
contain German 'ß' LATIN SMALL LETTER SHARP S. (As a result of the fix, that
character compares equal to characters with which it previously compared
different.) A symptom of the problem after upgrading to MySQL 5.1.24 or newer
from a version older than 5.1.24 is that CHECK TABLE produces this error:
* yaSSL was upgraded from version 1.7.2 to 2.2.0.
* Bugs Fixed
Remove devel/py-ctypes (only needed by and supporting python24).
Remove PYTHON_VERSIONS_ACCEPTED and PYTHON_VERSIONS_INCOMPATIBLE
lines that just mirror defaults now.
Miscellaneous cleanup while editing all these files.
* InnoDB Storage Engine: A deprecation warning is now issued when
--ignore-builtin-innodb is used.
* yaSSL was upgraded from version 1.7.2 to 2.2.0.
* Security Fix: Bug 13510739 and Bug 63775 were fixed.
* Important Change: InnoDB Storage Engine: When a row grew in size due to an
UPDATE operation, other (non-updated) columns could be moved to off-page
storage so that information about the row still fit within the constraints of
the InnoDB page size. The pointer to the new allocated off-page data was not
set up until the pages were allocated and written, potentially leading to
lost data if the system crashed while the column was being moved out of the
page. The problem was more common with tables using ROW_FORMAT=DYNAMIC or
ROW_FORMAT=COMPRESSED along with the Barracuda file format, particularly with
the innodb_file_per_table setting enabled, because page allocation operations
are more common as the .ibd tablespace files are extended. Still, the problem
could occur with any combination of InnoDB version, file format, and row
format.
* InnoDB Storage Engine: An erroneous assertion could occur, in debug builds
only, when creating an index on a column containing zero-length values (that
is, '').
* InnoDB Storage Engine: A DDL operation such as ALTER TABLE ... ADD COLUMN
could stall, eventually timing out with an Error 1005: Can't create table
message referring to fil_rename_tablespace.
* InnoDB Storage Engine: A DDL operation for an InnoDB table could cause a busy
MySQL server to halt with an assertion error:
More...
Changes:
1.951 2012-03-13T10:17:09Z
* Remove Tie::StdHash from our dependencies list, its part of core
and it creates problems with some CPAN clients
1.950 2012-03-12T13:54:10Z
* DEPRECATED: the encoding attribute to new() - we will not support
automatic decoding after 2.000, so please test your code with
encoding => undef now.
* Add pipeline support: Aaron Crane arc@github++!
* Cache AUTOLOAD calls: improves performance a bit, fixes#2
* Fix: apply reconnect logic to KEYS and INFO
* Fix: forbid PING and SHUTDOWN in SUBSCRIBE mode
* Updated docs covering pipelining and multi/exec
* Updated docs to point users to Github for code and issues
Changes:
=head2 Changes in DBI 1.618 (svn r15170) 25rd February 2012
Fixed compiler warnings in Driver_xst.h (Martin J. Evans)
Fixed compiler warning in DBI.xs (H.Merijn Brand)
Fixed Gofer tests failing on Windows RT74975 (Manoj Kumar)
Fixed my_ctx compile errors on Windows (Dave Mitchell)
Significantly optimized method dispatch via cache (Dave Mitchell)
Significantly optimized DBI internals for threads (Dave Mitchell)
Xsub to xsub calling optimization now enabled for threaded perls.
Corrected typo in example in docs (David Precious)
Added note that calling clone() without an arg may warn in future.
Minor changes to the install_method() docs in DBI::DBD.
Updated dbipport.h from Devel::PPPort 3.20
=head2 Changes in DBI 1.617 (svn r15107) 30th January 2012
NOTE: The officially supported minimum perl version will change
from perl 5.8.1 (2003) to perl 5.8.3 (2004) in a future release.
(The last change, from perl 5.6 to 5.8.1, was announced
in July 2008 and implemented in DBI 1.611 in April 2010.)
Fixed ParamTypes example in the pod (Martin J. Evans)
Fixed the definition of ArrayTupleStatus and remove confusion over
rows affected in list context of execute_array (Martin J. Evans)
Fixed sql_type_cast example and typo in errors (Martin J. Evans)
Fixed Gofer error handling for keeperr methods like ping (Tim Bunce)
Fixed $dbh->clone({}) RT73250 (Tim Bunce)
Fixed is_nested_call logic error RT73118 (Reini Urban)
Enhanced performance for threaded perls (Dave Mitchell, Tim Bunce)
Enhanced and standardized driver trace level mechanism (Tim Bunce)
Removed old code that was an inneffective attempt to detect
people doing DBI->{Attrib}.
Clear ParamValues on bind_param param count error RT66127 (Tim Bunce)
Changed DBI::ProxyServer to require DBI at compile-time RT62672 (Tim Bunce)
Added pod for default_user to DBI::DBD (Martin J. Evans)
Added CON, ENC and DBD trace flags and extended 09trace.t (Martin J. Evans)
Added TXN trace flags and applied CON and TXN to relevant methods (Tim Bunce)
Added some more fetchall_arrayref(..., $maxrows) tests (Tim Bunce)
Clarified docs for fetchall_arrayref called on an inactive handle.
Clarified docs for clone method (Tim Bunce)
Added note to DBI::Profile about async queries (Marcel Grünauer).
Reserved spatialite_ as a driver prefix for DBD::Spatialite
Reserved mo_ as a driver prefix for DBD::MO
Updated link to the SQL Reunion 95 docs, RT69577 (Ash Daminato)
Changed links for DBI recipes. RT73286 (Martin J. Evans)
* Enhance the INSERT syntax to allow multiple rows to be inserted via
the VALUES clause.
* Enhance the CREATE VIRTUAL TABLE command to support the IF NOT EXISTS clause.
* Added the sqlite3_stricmp() interface as a counterpart to sqlite3_strnicmp().
* Added the sqlite3_db_readonly() interface.
* Added the SQLITE_FCNTL_PRAGMA file control, giving VFS implementations
the ability to add new PRAGMA statements or to override built-in PRAGMAs.
* Queries of the form: "SELECT max(x), y FROM table" returns the value of y on
the same row that contains the maximum x value.
* Added support for the FTS4 languageid option.
* Documented support for the FTS4 content option. This feature has actually
been in the code since version 3.7.9 but is only now considered to be
officially supported.
* Pending statements no longer block ROLLBACK. Instead, the pending statement
will return SQLITE_ABORT upon next access after the ROLLBACK.
* Improvements to the handling of CSV inputs in the command-line shell
* Fix a bug introduced in version 3.7.10 that might cause a LEFT JOIN to be
incorrectly converted into an INNER JOIN if the WHERE clause indexable terms
connected by OR.
## Rails 3.2.1 (January 26, 2012) ##
* The threshold for auto EXPLAIN is ignored if there's no logger. *fxn*
* Call `to_s` on the value passed to `table_name=`, in particular symbols
are supported (regression). *Sergey Nartimov*
* Fix possible race condition when two threads try to define attribute
methods for the same class. *Jon Leighton*
## Rails 3.2.0 (January 20, 2012) ##
* Added a `with_lock` method to ActiveRecord objects, which starts
a transaction, locks the object (pessimistically) and yields to the block.
The method takes one (optional) parameter and passes it to `lock!`.
Before:
class Order < ActiveRecord::Base
def cancel!
transaction do
lock!
# ... cancelling logic
end
end
end
After:
class Order < ActiveRecord::Base
def cancel!
with_lock do
# ... cancelling logic
end
end
end
*Olek Janiszewski*
* 'on' and 'ON' boolean columns values are type casted to true
*Santiago Pastorino*
* Added ability to run migrations only for given scope, which allows
to run migrations only from one engine (for example to revert changes
from engine that you want to remove).
Example:
rake db:migrate SCOPE=blog
*Piotr Sarnacki*
* Migrations copied from engines are now scoped with engine's name,
for example 01_create_posts.blog.rb. *Piotr Sarnacki*
* Implements `AR::Base.silence_auto_explain`. This method allows the user to
selectively disable automatic EXPLAINs within a block. *fxn*
* Implements automatic EXPLAIN logging for slow queries.
A new configuration parameter `config.active_record.auto_explain_threshold_in_seconds`
determines what's to be considered a slow query. Setting that to `nil` disables
this feature. Defaults are 0.5 in development mode, and `nil` in test and production
modes.
As of this writing there's support for SQLite, MySQL (mysql2 adapter), and
PostgreSQL.
*fxn*
* Implemented ActiveRecord::Relation#pluck method
Method returns Array of column value from table under ActiveRecord model
Client.pluck(:id)
*Bogdan Gusiev*
* Automatic closure of connections in threads is deprecated. For example
the following code is deprecated:
Thread.new { Post.find(1) }.join
It should be changed to close the database connection at the end of
the thread:
Thread.new {
Post.find(1)
Post.connection.close
}.join
Only people who spawn threads in their application code need to worry
about this change.
* Deprecated:
* `set_table_name`
* `set_inheritance_column`
* `set_sequence_name`
* `set_primary_key`
* `set_locking_column`
Use an assignment method instead. For example, instead of `set_table_name`, use `self.table_name=`:
class Project < ActiveRecord::Base
self.table_name = "project"
end
Or define your own `self.table_name` method:
class Post < ActiveRecord::Base
def self.table_name
"special_" + super
end
end
Post.table_name # => "special_posts"
*Jon Leighton*
* Generated association methods are created within a separate module to allow overriding and
composition using `super`. For a class named `MyModel`, the module is named
`MyModel::GeneratedFeatureMethods`. It is included into the model class immediately after
the `generated_attributes_methods` module defined in ActiveModel, so association methods
override attribute methods of the same name. *Josh Susser*
* Implemented ActiveRecord::Relation#explain. *fxn*
* Add ActiveRecord::Relation#uniq for generating unique queries.
Before:
Client.select('DISTINCT name')
After:
Client.select(:name).uniq
This also allows you to revert the unqueness in a relation:
Client.select(:name).uniq.uniq(false)
*Jon Leighton*
* Support index sort order in sqlite, mysql and postgres adapters. *Vlad Jebelev*
* Allow the :class_name option for associations to take a symbol (:Client) in addition to
a string ('Client').
This is to avoid confusing newbies, and to be consistent with the fact that other options
like :foreign_key already allow a symbol or a string.
*Jon Leighton*
* In development mode the db:drop task also drops the test database. For symmetry with
the db:create task. *Dmitriy Kiriyenko*
* Added ActiveRecord::Base.store for declaring simple single-column key/value stores *DHH*
class User < ActiveRecord::Base
store :settings, accessors: [ :color, :homepage ]
end
u = User.new(color: 'black', homepage: '37signals.com')
u.color # Accessor stored attribute
u.settings[:country] = 'Denmark' # Any attribute, even if not specified with an accessor
* MySQL: case-insensitive uniqueness validation avoids calling LOWER when
the column already uses a case-insensitive collation. Fixes#561.
*Joseph Palermo*
* Transactional fixtures enlist all active database connections. You can test
models on different connections without disabling transactional fixtures.
*Jeremy Kemper*
* Add first_or_create, first_or_create!, first_or_initialize methods to Active Record. This is a
better approach over the old find_or_create_by dynamic methods because it's clearer which
arguments are used to find the record and which are used to create it:
User.where(:first_name => "Scarlett").first_or_create!(:last_name => "Johansson")
*Andrés Mejía*
* Fix nested attributes bug where _destroy parameter is taken into account
during :reject_if => :all_blank (fixes#2937)
*Aaron Christy*
* Add ActiveSupport::Cache::NullStore for use in development and testing.
*Brian Durand*
Tweak COMMENT.
## Rails 3.1.4 (unreleased) ##
* Fix a custom primary key regression *GH 3987*
*Jon Leighton*
* Perf fix (second try): don't load records for `has many :dependent =>
:delete_all` *GH 3672*
*Jon Leighton*
* Fix accessing `proxy_association` method from an association extension
where the calls are chained. *GH #3890*
(E.g. `post.comments.where(bla).my_proxy_method`)
*Jon Leighton*
* Perf fix: MySQL primary key lookup was still slow for very large
tables. *GH 3678*
*Kenny J*
* Perf fix: If a table has no primary key, don't repeatedly ask the database
for it.
*Julius de Bruijn*
=== 3.33.0 (2012-03-01)
* Add ability to force or disable transactions completely in the migrators
using the :use_transactions option (jeremyevans)
* Add ability to turn off transactions for migrations by calling
no_transaction inside the Sequel.migration block (jeremyevans)
* Allow specifically choosing which migrator to use via
TimestampMigrator.apply or IntegerMigrator.apply (jeremyevans)
* Add arbitrary_servers extension to allow the use of arbitrary servers/shards
by providing a hash of options as the server (jeremyevans)
* Add server_block extension to scope database access inside the block to a
specific default server/shard (jeremyevans)
* Respect :collate column option on MySQL (jeremyevans) (#445)
* Use Mysql2::Client::FOUND_ROWS to get accurate number of rows matched in the
mysql2 adapter (jeremyevans)
* Use Mysql#info to get accurate number of rows matched in the mysql adapter
(jeremyevans)
* Make mock adapter with specific SQL dialect use appropriate defaults for
quoting identifiers (jeremyevans)
* Make list plugin automatically set position field value on creation if not
already set (jeremyevans)
* Add Database#integer_booleans setting on SQLite to store booleans as
integers (jeremyevans)
* Typecast columns stored as integers/floats in the SQLite adapter (jeremyevans)
* In the instance_hooks plugin, (before|after)_*_hook instance methods now
return self (jeremyevans)
* Handle NaN, Infinity, and -Infinity floats on PostgreSQL (kf8a, jeremyevans)
(#444)
* Support an :sslmode option when using the postgres adapter with the pg
driver (jeremyevans)
* Add Database#create_schema and #drop_schema to the shared postgres adapter
(tkellen, jeremyevans) (#440)
* Add Database#supports_savepoints_in_prepared_transactions?, false on MySQL
>=5.5.12 (jeremyevans) (#437)
* Support an identifier output method in the mysql2 adapter (jeremyevans)
* Make foreign key creation work on MySQL with InnoDB engine without
specifying :key option (jeremyevans)
* Allow disabling use of sudo with SUDO='' when running the rake
install/uninstall tasks (jeremyevans) (#433)
There is postgresql.gem named 0.8.1 and its README.txt says:
This is an old, deprecated version of the Ruby PostgreSQL driver
that hasn't been maintained or supported since early 2008.
You should install/require 'pg' instead.
So, say good-by to databases/ruby-postgresql and use databases/ruby-pg.
* ldapobject.ReconnectLDAPObject.reconnect() now does kind of
an internal locking to pause other threads while reconnecting
is pending.
* Changes to bind- and startTLS-related operation methods of
class ReconnectLDAPObject for more robustness
* New constant ldap.OPT_NAMES_DICT contains mapping from
integer to variable name for all option-related constants.
Otherwise, with non-native kerberos, bdb.buildlink3.mk is included by
heimdal's bl3.mk before BDB_ACCEPTED is set, we get the wrong answer out,
and the package fails to build.
It's a good thing heimdal doesn't also need to set BDB_ACCEPTED I guess...
* Require execute permission on the trigger function for CREATE TRIGGER
* Convert newlines to spaces in names written in pg_dump comments
* Fix btree index corruption from insertions concurrent with vacuuming
* Allow non-existent values for some settings in ALTER USER/DATABASE SET
* Track the OID counter correctly during WAL replay, even when it wraps around
* Fix regular expression back-references with * attached
* Fix recently-introduced memory leak in processing of inet/cidr values
* Avoid double close of file handle in syslogger on Windows
* Fix I/O-conversion-related memory leaks in plpgsql
* Improve pg_dump's handling of inherited table columns
* Fix pg_restore's direct-to-database mode for INSERT-style table data
* Fix error in contrib/intarray's int[] & int[] operator
* Fix error detection in contrib/pgcrypto's encrypt_iv() and decrypt_iv()
* Fix one-byte buffer overrun in contrib/test_parser
* Use __sync_lock_test_and_set() for spinlocks on ARM, if available
* Use -fexcess-precision=standard option when building with gcc versions that
accept it
* Allow use of threaded Python on FreeBSD
* Require execute permission on the trigger function for CREATE TRIGGER
* Convert newlines to spaces in names written in pg_dump comments
* Fix btree index corruption from insertions concurrent with vacuuming
* Allow non-existent values for some settings in ALTER USER/DATABASE SET
* Track the OID counter correctly during WAL replay, even when it wraps around
* Fix regular expression back-references with * attached
* Fix recently-introduced memory leak in processing of inet/cidr values
* Avoid double close of file handle in syslogger on Windows
* Fix I/O-conversion-related memory leaks in plpgsql
* Improve pg_dump's handling of inherited table columns
* Fix pg_restore's direct-to-database mode for INSERT-style table data
* Fix error in contrib/intarray's int[] & int[] operator
* Fix error detection in contrib/pgcrypto's encrypt_iv() and decrypt_iv()
* Fix one-byte buffer overrun in contrib/test_parser
* Use __sync_lock_test_and_set() for spinlocks on ARM, if available
* Use -fexcess-precision=standard option when building with gcc versions that
accept it
* Allow use of threaded Python on FreeBSD
* Fix btree index corruption from insertions concurrent with vacuuming
* Recover from errors occurring during WAL replay of DROP TABLESPACE
* Fix transient zeroing of shared buffers during WAL replay
* Fix postmaster to attempt restart after a hot-standby crash
* Fix corner case in SSI transaction cleanup
* Update per-column permissions, not only per-table permissions, when changing
table owner
* Fix handling of data-modifying WITH subplans in READ COMMITTED rechecking
* Fix for "could not find plan for CTE" failures
* Fix unsupported node type error caused by COLLATE in an INSERT expression
* Avoid crashing when we have problems deleting table files post-commit
* Fix recently-introduced memory leak in processing of inet/cidr
* Fix GIN cost estimation to handle column IN (...) index conditions
* Fix I/O-conversion-related memory leaks in plpgsql
* Teach pg_upgrade to handle renaming of plpython's shared library (affecting
upgrades to 9.1)
tokyocabinet aims to be a complete python wrapper for the ass-kicking
Tokyo Cabinet database library by Mikio Hirabayashi
(http://1978th.net/). While there are other wrappers out there none
were found to be comprehensive enough. At present, the btree, hash and
table APIs are available as hand-written C extensions.
A similar effort is underway for the Tokyo Tyrant client API here:
http://code.google.com/p/python-tokyotyrant-client/
Omissions, bugs, patches and feedback are greatly welcome. This
package is written and maintained by Elisha Cook.
Lib/
* Fixed overzealous check for non-unique NAMEs in
ldap.schema.subentry.SubSchema.__init__()
* Fixed typos in control decoding method
ldap.controls.simple.OctetStringInteger.decodeControlValue()
* Added experimental support for draft-vchu-ldap-pwd-policy
=== 3.32.0 (2012-02-01)
* Make serialization_modification_detection plugin work correctly with
new objects and after saving existing objects (jeremyevans) (#432)
* Make refreshes after model creation clear the deserialized values in
the serialization plugin (jeremyevans)
* Add Dataset#update_ignore on MySQL, for using UPDATE IGNORE in
queries (danielb2) (#429)
* Allow select_map/select_order_map to take both a column argument and
a block (jeremyevans)
* Fix virtual row block handling in select_map/select_order_map if
block returns an array (jeremyevans) (#428)
* Add Sequel.empty_array_handle_nulls setting, can be set to false for
possible better performance on some databases (jeremyevans)
* Change exclude(:b=>[]) to not return rows where b is NULL (jeremyevans) (#427)
* Support ActiveModel 3.2 in the active_model plugin, by adding
support for to_partial_path (jeremyevans)
* Fix metadata methods (e.g. tables) on Oracle when custom identifier
input methods are used (jeremyevans)
* Fix Database#indexes on DB2 (jeremyevans)
* Make DateTime/Time columns with Sequel::CURRENT_TIMESTAMP default
values use timestamp column on MySQL (jeremyevans)
* Wrap column default values in extra parens on SQLite, fixes some
cases (jeremyevans)
* Make Database#indexes not include primary key indexes on Derby,
HSQLDB, Oracle, and DB2 using the jdbc adapter (jeremyevans)
* Support Database#indexes in shared MSSQL adapter (jeremyevans)
* Support :include option when creating indexes on MSSQL, for storing
column values in the index (crawlik) (#426)
* Make set_column_type not modify defaults and NULL/NOT NULL setting
on MSSQL, H2, and SQLite (jeremyevans)
* Qualify identifiers when filtering/excluding by associations (jeremyevans)
* Make table_exists? better handle tables where you don't have
permissions for all columns (jeremyevans) (#422)
* Using new association options, support associations based on columns
that clash with ruby method names (jeremyevans) (#417)
* Add use_after_commit_rollback setting to models, can be turned off
to allow model usage with prepared transactions (jeremyevans)
* Fix alter table emulation on SQLite when foreign keys reference the
table being altered (jeremyevans)
* Fix progress shared adapter, broken since the dataset literalization
refactoring (jeremyevans) (#414)
* Support :map and :to_hash prepared statement types (jeremyevans)
* Make Dataset#naked! work correctly (jeremyevans)
* Remove Dataset#paginate!, as it was broken (jeremyevans)
* Fix query extension to not break usage of #clone without arguments
(jeremyevans) (#413)
=== 3.31.0 (2012-01-03)
* Dataset#from no longer handles :a__b__c___d as a.b.c AS d (jeremyevans)
* Support many_to_one associations with the same name as their column,
using the :key_column option (jeremyevans)
* Add Model.def_column_alias for defining alias methods for columns
(jeremyevans)
* Support :server option in Dataset#import and #multi_insert (jeremyevans)
* Respect existing RETURNING/OUTPUT clauses in #import/#multi_insert on
PostgreSQL/MSSQL (jeremyevans)
* Support :return=>:primary_key option to Dataset#import and #multi_insert
(jeremyevans)
* Correctly handle return value for Dataset#insert with column array and value
array on PostgreSQL <8.2 (jeremyevans)
* Dataset#insert_multiple now returns an array of inserted primary keys
(jeremyevans) (#408)
* Support RETURNING with DELETE and UPDATE on PostgreSQL 8.2+ (funny-falcon)
* Raise error if tables from two separate schema are detected when parsing the
schema for a single table on PostgreSQL (jeremyevans)
* Handle clob types as string instead of blob on H2 (jeremyevans)
* Add database type support to the mock adapter, e.g. mock://postgres
(jeremyevans)
* Allow creation of full text indexes on Microsoft SQL Server, but you need to
provide a :key_index option (jeremyevans)
* Allow Dataset#full_text_search usage with prepared statements (jeremyevans)
* Make Dataset#exists use a PlaceholderLiteralString so it works with prepared
statements (jeremyevans)
* Fix Dataset#empty? for datasets with offsets when offset support is emulated
(jeremyevans)
* Add Dataset#group_rollup and #group_cube methods for GROUP BY ROLLUP and
CUBE support (jeremyevans)
* Add support for custom serialization formats to the serialization plugin
(jeremyevans)
* Support a :login_timeout option in the jdbc adapter (glebpom) (#406)
== v0.13.2 [2012-02-22] Michael Granger <ged@FaerieMUD.org>
- Make builds against PostgreSQL earlier than 8.3 fail with a descriptive
message instead of a compile failure.
== v0.13.1 [2012-02-12] Michael Granger <ged@FaerieMUD.org>
- Made use of a finished PG::Connection raise a PG::Error instead of
a fatal error (#110).
- Added missing BSDL license file (#108)
== v0.13.0 [] Michael Granger <ged@FaerieMUD.org>
Reorganization of modules/classes to be better Ruby citizens (with backward-compatible aliases):
- Created toplevel namespace 'PG' to correspond with the gem name.
- Renamed PGconn to PG::Connection (with ::PGconn alias)
- Renamed PGresult to PG::Result (with ::PGresult alias)
- Renamed PGError to PG::Error (with ::PGError alias)
- Declare all constants inside PG::Constants, then include them in
PG::Connection and PG::Result for backward-compatibility, and
in PG for convenience.
- Split the extension source up by class/module.
- Removed old compatibility code for PostgreSQL versions < 8.3
Documentation:
- Clarified licensing, updated to Ruby 1.9's license.
- Merged authors list, added some missing people to the Contributor's
list.
- Cleaned up the sample/ directory
- Making contact info a bit clearer, link to the Google+ page and
the mailing list
Enhancements:
- Added a convenience method: PG.connect -> PG::Connection.new
Bugfixes:
- Fixed LATIN5-LATIN10 Postgres<->Ruby encoding conversions
* A new CMake option, MYSQL_PROJECT_NAME, can be set on Windows or Mac OS X to
be used in the project name.
Bugs Fixed
* Performance: InnoDB Storage Engine: Memory allocation for InnoDB tables was
reorganized to reduce the memory overhead for large numbers of tables or
partitions, avoiding situations where the “resident set size” could grow
regardless of FLUSH TABLES statements. The problem was most evident for tables
with large row size.
* Incompatible Change: An earlier change (in MySQL 5.1.62 and 5.5.21) was found
to modify date-handling behavior in General Availability-status series (MySQL
5.1 and 5.5). This change has been reverted.
* The change was that several functions became more strict when passed a DATE()
function value as their argument, thus they rejected incomplete dates with
a day part of zero. These functions were affected: CONVERT_TZ(), DATE_ADD(),
DATE_SUB(), DAYOFYEAR(), LAST_DAY(), TIMESTAMPDIFF(), TO_DAYS(), TO_SECONDS(),
WEEK(), WEEKDAY(), WEEKOFYEAR(), YEARWEEK(). The previous behavior has been
restored.
* InnoDB Storage Engine: A Valgrind error was fixed in the function
os_aio_init().
* InnoDB Storage Engine: The server could crash when creating an InnoDB
temporary table under Linux, if the $TMPDIR setting points to a tmpfs
filesystem and innodb_use_native_aio is enabled, as it is by default in MySQL
5.5.4 and higher.
* InnoDB Storage Engine: References to C preprocessor symbols and macros
HAVE_purify, UNIV_INIT_MEM_TO_ZERO, and UNIV_SET_MEM_TO_ZERO were removed
from the InnoDB source code. They were only used in debug builds instrumented
for Valgrind. They are replaced by calls to the UNIV_MEM_INVALID() macro.
Changes from previous:
----------------------
0.02006 Wed Dec 21 16:58:00 2011
- Repackaged with Module::Install 1.00
- Migrated repository from svn to git and added links to meta tags
Changes from previous:
----------------------
1.01 2011-08-23
- Update to modern build practices.
- Make tests work with SQLite, so they don't need to be configured.
- Document its depricated status.
=== 1.3.5 / 2011-12-03 - ZOMG Holidays are here Edition!
* Enhancements
* Windows: build against SQLite 3.7.9
* Static: enable SQLITE_ENABLE_COLUMN_METADATA
* Added Statement#clear_bindings! to set bindings back to nil
* Bugfixes
* Fixed a segv on Database.new. Fixes#34 (thanks nobu!)
* Database error is not reset, so don't check it in Statement#reset!
* Remove conditional around Bignum statement bindings.
Fixes#52. Fixes#56. Thank you Evgeny Myasishchev.
* Internal
* Use proper endianness when testing database connection with UTF-16.
Fixes#40. Fixes#51
* Use -fPIC for static compilation when host is x86_64.
=== 1.3.4 / 2011-07-25
* Enhancements:
* Windows: build against SQLite 3.7.7.1
* Windows: build static binaries that do not depend on sqlite3.dll be
installed anymore
* Bugfixes
* Backup API is conditionaly required so that older libsqlite3 can be used.
Thanks Hongli Lai.
* Fixed segmentation fault when nil is passed to SQLite3::Statement.new
* Fix extconf's hardcoded path that affected installation on certain systems.