## Rails 3.2.8 (Aug 9, 2012) ##
* Do not consider the numeric attribute as changed if the old value is zero
and the new value is not a string.
Fixes#7237.
*Rafael Mendonça França*
* Removes the deprecation of `update_attribute`. *fxn*
* Reverted the deprecation of `composed_of`. *Rafael Mendonça França*
* Reverted the deprecation of `*_sql` association options. They will be
deprecated in 4.0 instead. *Jon Leighton*
* Do not eager load AR session store. ActiveRecord::SessionStore depends on
the abstract store in Action Pack. Eager loading this class would break
client code that eager loads Active Record standalone.
Fixes#7160
*Xavier Noria*
* Do not set RAILS_ENV to "development" when using `db:test:prepare` and
related rake tasks.
This was causing the truncation of the development database data when using
RSpec.
Fixes#7175.
*Rafael Mendonça França*
Important Change: The YEAR(2) data type is now deprecated because it is problematic. Support for YEAR(2) will be removed in a future release of MySQL. For more information, see Section 11.3.4, “YEAR(2) Limitations and Migrating to YEAR(4)”.
=== 3.37.0 (2012-07-02)
* Allow specifying eager_graph alias base on a per-call basis using an AliasedExpression (jeremyevans)
* Allow bin/sequel to respect multiple -l options for logging to multiple files (jeremyevans)
* Correctly handle cases where SCOPE_IDENTITY is nil in the odbc/mssql adapter (stnoonan, jeremyevans)
* Add pg_interval extension, for returning interval types as ActiveSupport::Duration instances (jeremyevans)
* Save a new one_to_one associated object once instead of twice in the nested_attributes plugin (jeremyevans)
* Don't add unnecessary filter condition when passing a new object to a one_to_one setter method (jeremyevans)
* Differentiate between column references and method references in many_through_many associations (jeremyevans)
* Use :qualify=>:deep option when joining tables in model association datasets (jeremyevans)
* Support :qualify=>:deep option to Dataset#join_table to qualify subexpressions in the expression tree (jeremyevans)
* Support :qualify=>false option to Dataset#join_table to not automatically qualify keys/values (jeremyevans)
* Make filter by associations support use column references and method references correctly (jeremyevans)
* Call super in list plugin before_create (jeremyevans) (#504)
* Do not automatically cast String to text in pg_auto_parameterize extension (jeremyevans)
* Support alter_table validate_constraint on PostgreSQL for validating constraints previously declared with NOT VALID (jeremyevans)
* Support :not_valid option when adding foreign key constraints on PostgreSQL (jeremyevans)
* Support exclusion constraints on PostgreSQL (jeremyevans)
* Allow for overriding the create/alter table generators used per Database object (jeremyevans)
* Make casting to Date/(Time/DateTime) use date/datetime functions on SQLite (jeremyevans)
* Add pg_range_ops extension for DSL support for PostgreSQL range operators and functions (jeremyevans)
* The json library is now required when running the plugin/extension specs (jeremyevans)
* Use change migrations instead of up/down migrations in the schema_dumper (jeremyevans)
* Dump unsigned integer columns with a check >= 0 constraint in the schema_dumper (stu314)
* Switch the :key_hash entry to the association :eager_loader option to use the method symbol(s) instead of the column symbol(s) (jeremyevans)
* Add :id_map entry to the hash passed to the association :eager_loader option, for easier custom eager loading (jeremyevans)
* Fix dumping of non-integer foreign key columns in the schema_dumper (jeremyevans) (#502)
* Add nested_attributes :fields option to be a proc that is called with the associated object (chanks) (#498)
* Add split_array_nil extension, for compiling :col=>[1, nil] to col IN (1) OR col IS NULL (jeremyevans)
* Add Database#extension and Dataset#extension for loading extension modules into objects automatically (jeremyevans)
* Respect an existing dataset limit when updating on Microsoft SQL Server (jeremyevans)
* Add pg_range extension, for dealing with PostgreSQL 9.2+ range types (jeremyevans)
* Make pg_array extension convert array members when typecasting Array to PGArray (jeremyevans)
* Make jdbc/postgres adapter convert array type elements (e.g. date[] arrays are returned as arrays of Date instances) (jeremyevans)
* Make the pg_inet extension handle inet[]/cidr[]/macaddr[] types when used with the pg_array extension (jeremyevans)
* Make the pg_json extension handle json[] type when used with the pg_array extension (jeremyevans)
* Fix schema parsing of h2 clob types (jeremyevans)
* Make the pg_array extension handle array types for scalar types handled by the native postgres adapter (jeremyevans)
* Generalize handling of array types in the pg_array extension, allowing easy support of custom array types (jeremyevans)
* Remove type conversion of int2vector and money types on PostgreSQL, since previous conversions were wrong (jeremyevans)
* Add eval_inspect extension, which makes Sequel::SQL::Expression#inspect attempt to return a string suitable for eval (jeremyevans)
* When emulating offset with ROW_NUMBER, default to ordering by all columns if no specific order is given (stnoonan, jeremyevans) (#490)
* Work around JRuby 1.6 ruby 1.9 mode bug in Time -> SQLTime conversion (jeremyevans)
=== 3.36.1 (2012-06-01)
* Fix jdbc adapter when DriverManager#getConnection fails (aportnov) (#488)
== v0.14.0 [2012-06-17] Michael Granger <ged@FaerieMUD.org>
Bugfixes:
#47, #104
New Methods for PostgreSQL 9 and async API support:
PG
- ::library_version
PG::Connection
- ::ping
- #escape_literal
- #escape_identifier
- #set_default_encoding
PG::Result
- #check
New Samples:
This release also comes with a collection of contributed sample scripts for
doing resource-utilization reports, graphing database statistics,
monitoring for replication lag, shipping WAL files for replication,
automated tablespace partitioning, etc. See the samples/ directory.
v0.12.2
- Respect the start_key in get_range. Resolves Issue #127.
- Fix issue with differences in gemspec and what is required. Resolves
Issue #125.
- Update to Cassandra 0.8.7 and 1.0.2.
## Rails 3.2.7 (unreleased) ##
* `:finder_sql` and `:counter_sql` options on collection associations
are deprecated. Please transition to using scopes.
*Jon Leighton*
* `:insert_sql` and `:delete_sql` options on `has_and_belongs_to_many`
associations are deprecated. Please transition to using `has_many
:through`
*Jon Leighton*
* `composed_of` has been deprecated. You'll have to write your own accessor
and mutator methods if you'd like to use value objects to represent some
portion of your models.
*Steve Klabnik*
* `update_attribute` has been deprecated. Use `update_column` if
you want to bypass mass-assignment protection, validations, callbacks,
and touching of updated_at. Otherwise please use `update_attributes`.
*Steve Klabnik*
## Rails 3.0.16 (Jul 26, 2012)
* No changes.
## 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
Upstream ChangLog:
1.65 Mon Jul 23 20:16:08 PDT 2012
Finish the "Perl Data::Table Cookbook", should be a good learning material.
To download, visit https://sites.google.com/site/easydatabase/
Polish Data::Table::Excel for CPAN upload.
Minor patches to the code.
1.64 Sun Jul 8 22:01:17 PDT 2012
Add $keepRestCols to Data::Table::group();
We introduce new constants for fromCSV/fromTSV/fromFile/csv/tsv.
Data::Table::OS_UNIX = 0;
Data::Table::OS_PC = 1;
Data::Table::OS_MAC = 2;
Add method reorder(), redefine column orders
Add method melt() and cast(), concept borrowed from Reshape package in R
Add method each_group(), so one can apply a custom method to rows sharing the same key
Made a seemingly backward incompatible change to pivot()
pivot($colToSplit, $colToSplitIsNumeric, ...) is changed to
pivot($colToSplit, $colToSplitIsStringOrNumber, ...)
What is now pivot($colToSplit, $Data::Table::STRING, ...), where Data::Table::STRING has a value of 1,
was equivalent to pivot($colToSplit, 0, ...) in <= 1.63.
However, the $colToSplitIsStringOrNumber is now auto-guessed within the code, so the change is not very relevant.
Most existing code should run fine, without change.
Patch group(), piviot() to distinguish keys between empty string and undef.
Patch subTable() to take row mask array when {useRowMask=>1} is provided.
1.63 Tue Jun 12 17:05:43 PDT 2012
In this release, we patch addCol, delCol, addRow, rowMerge, colMerge to for an empty table
We introduce new methods isEmpty(), hasCol(), moveCol($colID, $newColIdx)
We introduce new constants for Data::Table::new()
Data::Table::ROW_BASED
Data::Table::COL_BASED
1.62 Fri May 25 11:40:09 PDT 2012
In this release, we address a few pain points
Data::Table::colMerge, update to support new options
{ renameCol => 1}
If specified, duplicate column names in the second table is automatically renamed (by appending _2) to avoid conflict
We introduce some constants, so we have fewer numbers to remember.
Data::Table::NUMBER
Data::Table::STRING
Data::Table::ASC
Data::Table::DESC
for sort(), you can use $t->sort('col2', Data::Table::NUMBER, Data::Table::DESC); it is equivalent to $t->sort('col2', 0, 1);
Data::Table::INNER_JOIN
Data::Table::LEFT_JOIN
Data::Table::RIGHT_JOIN
Data::Table::FULL_JOIN
for join(), you may use $t->sort($t2, Data::Table::FULL_JOIN, ['col1'], ['col1']);
it is equivalent to $t->sort($t2, 3, ['col1'], ['col1']).
match_string, match_pattern have been generating @Data::Table::OK, which is a class-level array.
$t->match_pattern() will now also store the results (array ref) in $t->{OK}, that should be used in the future.
However, @Data::Table::OK is still supported for compatibility reasons.
This is not a pain point, but conceptually nicer to be localized.
match_pattern_hash() is added. The difference is each row is fed to the pattern as a hash %_. In the case of
match_pattern, each row is fed as an array ref $_. The pattern for match_pattern_hash() becomes much cleaner.
If a table has two columns: Col_A as the 1st column and Col_B as the 2nd column, a filter "Col_A>2 AND Col_B<2"
is written before as
$t->match_pattern('$_->[0] > 2 && $_->[1] <2');
where we need to figure out $t->colIndex('Col_A') is 0 and $t->colIndex('Col_B') is 1, in order to build the pattern.
Now you can use column name directly in the pattern:
$t->match_pattern_hash('$_{Col_A} >2 && $_{Col_B} <2');
This method creates $t->{OK}, as well as @Data::Table::OK, same as match_pattern().
Data::Table::rowMerge, update to support new options
{ byName =>1, addNewCol => 1}
If byName is 1, rows in the second table are appended by matching their column names, so that the second table
can have columns in a different order.
If addNewCol is 1, columns not exist in the first table will be automatically added.
addNewCol is best used with byName. If used alone, addNewCol will just patch the two tables so that they have
the same number of columns.
Data::Table::subTable, update internal to remove side effect on column header array
Data::join add support for an option {renameCol => 1}.
If specified, duplicate column names in the second table is automatically renamed (by appending _2) to avoid conflict
1.61 Mon Feb 27 21:07:55 PST 2012
Data::Table::fromSQL now can take DBI::st instead of a SQL string. This is introduced, so that
variable binding (such as CLOB/BLOB) can be done outside the method.
1.60 Sat Feb 25 19:26:46 PST 2012
Data::Table::addRow now also can take a hash reference. Hash keys are column names,
undef will be the value, if a column name is not found in the hash.
Suggested by Federico
1.59 Sun Feb 5 00:20:00 PST 2012
I have never checked those CPAN ticket, happened to discover them and address them in this version.
Update document, explain Data::Table::fromCSV(\*STDIN, 1) can be used to read table from STDIN.
Add tbody and thead to Data::Table::html, if it's portrait.
Suggested by Ken Rosenberry.
Modify Data::Table::html and Data::Table::html2, so that it can accept coloring via CSS
The color now can be either specified as an array as before, or as three CSS class names
Suggested by Xavier Robin
1.58 Thu Feb 2 20:33:03 PST 2012
Patch join(), prior version of join considers two NULL keys to be equal
update document, clarify that rowMerge assumes table columns in the same order
Thanks to Ulrik Stervbo.
1.57 Thu Apr 23 15:22:36 PDT 2009
Patch pivot(), it throws warning before, when colToFill is undef.
1.56 Fri Aug 22 15:53:29 PDT 2008
When the first line in a TSV is not a header, but contains strings such as \t.
The program will not transform \t to a tab.
Modify fromTSV, so that \t, \N (etc) transformation is optional.
Add transform_element flag to fromTSV method to turn on/off the transformation.
Thanks to Bin Zhou.
1.55 Mon May 5 10:29:44 PDT 2008
Patch parseCSV. fromFile guesses the wrong delimiter if some ending columns are empty.
Version 5.0.4
-------------
Released: 22th March 2012
Bug fixes.
* Fix#3468882 "UPDATE single row with varchar key: empty where clause", reported by "Dirk Kraemer"
* Fix XSS in function.php, reported by Mateusz Goik
* Fix bug where renaming a tablespace was leading to an error
* Fix a bug where clicking to "Show all schemas" on schema privilege page leads back to the latest tab used in database level
* Fix a bug when executing a query from the history
* Fix bad confirmation message when droping an autovacuum table setup
* Fix bug #3429633 '"Back" link from "Browse" leads to error'
* Fix a PHP warning when Slony conf parameters are not set
* Show cancel/kill actions in process page only if role is a superuser
* Some more small code cleanup and fixes.
Version 5.0.3
-------------
Released: 3rd October 2011
Some bug fixes.
* Fix bug with enable/disable triggers on multiple triggers (Dawid 'DeyV' Polak)
* Fix bug #3353670: Error when executing a report with paging
* Fix bug with OpenBSD about where setting application_name using PGOPTIONS was raising an ERROR
* Two security fix about code injection, reported by Mateusz Goik, fixed by ioguix
* Fix character-encoding problem with autocomplete
- bug #3521416 [interface] JS error when editing index
- bug #3521313 [core] Call to undefined function __()
- bug #3521016 [edit] NOW() function incorrectly selected
- bug [GUI] Invalid HTML code on transformation_overview.php
- bug #3522930 [browse] Missing validation in Ajax mode
- bug Fix popup message on build SQL of import
- bug #3523499 [core] Make X-WebKit-CSP work better
- replace Highcharts with jqplot for query profiling, zoom search
- bug #3531584 [interface] No form validation in change password dialog
- bug #3531585 [interface] Broken password validation in copy user form
- bug #3531586 [unterface] Add user form prints JSON when user presses enter
- bug #3534121 [config] duplicate line in config.sample.inc.php
- bug #3534311 [interface] Grid editing incorrectly parses ENUM/SET values
- bug #3510196 [core] More clever URL rewriting with ForceSSL
Due to updated PKG_DEVELOPER checks, postgresql83-server started failing
with the following message:
ERROR: lib/postgresql/plpgsql.so: missing libintl.so.8
The plpgsql.so library had no rpath set other than what the base compiler
adds by default. On DragonFly, the libintl.so library would likely have
been found anyway as /usr/pkg/lib is part of the LD_CONFIG hint file
search path, but that isn't a guarantee.
The new patch adds ${libdir} to the plpgsql.so rpath so it passes
PKG_DEVELOPER checks now.
Due to updated PKG_DEVELOPER checks, postgresql84-server started failing
with the following message:
ERROR: lib/postgresql/plpgsql.so: missing libintl.so.8
The plpgsql.so library had no rpath set other than what the base compiler
adds by default. On DragonFly, the libintl.so library would likely have
been found anyway as /usr/pkg/lib is part of the LD_CONFIG hint file
search path, but that isn't a guarantee.
The new patch adds ${libdir} to the plpgsql.so rpath so it passes
PKG_DEVELOPER checks now.
Changes:
* autoconf 2.68 -> 2.69, automake 1.11.1 -> 1.12.2,
libtool 2.2.10 -> 2.4.2.
* Corrected dereference of NULL pointer in db_deinit_limit()
and db_deinit_threshold() introduced in the 1.0.2 version.
* Converted all flags to bool data type.
Provided by Andrey Simonenko in PR 46692.
from 1.35nb1 to 1.37.
Upstream changes (since 1.35):
1.37 to be released
- Updated to SQLite 3.7.12.1 (ISHIGAKI)
1.36_04 Sat 19 May 2012
- Final developer release
- Updated to SQLite 3.7.12 (ISHIGAKI)
- Tweaked Makefile.PL to behave better during the Bsymbolic
check (HMBRAND)
- Added SQLITE_WITHOUT_ZONEMALLOC for older MacOS X (ISHIGAKI)
1.36_03 Mon 7 May 2012
- Updated to SQLite 3.7.11 (ISHIGAKI)
- Fix >32bit integer truncation and other sqlite_set_result
condition issue (Yuriy Kaminskiy)
- Fix integer overflow in passing argument to perl function
(Yuriy Kaminskiy)
- Convert unsigned -> int64 when possible (Yuriy Kaminskiy)
- Turned datatype mismatch error (introduced in 1.34_02) into
a warning (you can disable this warning by setting PrintWarn
attribute to false). (ISHIGAKI)
- Refactored sqlite_is_number to fix various corner cases
(ISHIGAKI)
1.36_02 Thu 23 Feb 2012
- Downgraded SQLite to 3.7.9, as 3.7.10 turned out to be
broken on the latest MacOS X (due to a missing symbol),
and broke other modules that typically use temporary tables
under a few environments too. As of this writing, would-be
3.7.11 seems fine, but it would take another month to be
released. (ISHIGAKI)
1.36_01 Thu 19 Jan 2012
*** CHANGES THAT MAY POSSIBLY BREAK YOUR OLD APPLICATIONS ***
- Updated to SQLite 3.7.10 (ISHIGAKI)
Note that this release changed the default schema format
number, that means newly created database files will be
unreadable by SQLite version prior to 3.3.0 (2006-01-10)
(or DBD::SQLite prior to 1.12) unless you explicitly issue
"PRAGMA legacy_file_format=ON".
- Enabled SQLITE_ENABLE_FTS4
- Enabled SQLITE_ENABLE_STAT3
- Resolved#73159: FTS tokenizer segfault (ISHIGAKI)
- Resolved#73787: sqlite_see_if_its_a_number causes a buffer
overflow (ISHIGAKI)
- Resolved#73314 for DBD-SQLite: binding of 64bit integers fail
on 1.34_02 (ISHIGAKI)
- Implemented sqlite_trace and sqlite_profile methods for simpler
tracing/profiling; use DBI_TRACE/DBI_PROFILE for more
complicated cases (ISHIGAKI)
1.622.
pkgsrc changes:
- fixing download directory
Upstream changes:
Changes in DBI 1.622 (svn r15327) 6th June 2012
Fixed lack of =encoding in non-ASCII pod docs. RT#77588
Corrected typo in DBI::ProfileDumper thanks to Finn Hakansson.
Changes in DBI 1.621 (svn r15315) 21st May 2012
Fixed segmentation fault when a thread is created from
within another thread RT#77137, thanks to Dave Mitchell.
Updated previous Changes to credit Booking.com for sponsoring
Dave Mitchell's recent DBI optimization work.
Changes:
* Fix incorrect password transformation in contrib/pgcrypto's DES crypt()
function (Solar Designer)
* Ignore SECURITY DEFINER and SET attributes for a procedural language's call
handler (Tom Lane)
* Make contrib/citext's upgrade script fix collations of citext arrays and
domains over citext (Tom Lane)
* Allow numeric timezone offsets in timestamp input to be up to 16 hours away
from UTC (Tom Lane)
* Fix timestamp conversion to cope when the given time is exactly the last DST
transition time for the current timezone (Tom Lane)
* Fix text to name and char to name casts to perform string truncation
correctly in multibyte encodings (Karl Schnaitter)
* Fix memory copying bug in to_tsquery() (Heikki Linnakangas)
* Ensure txid_current() reports the correct epoch when executed in hot standby
(Simon Riggs)
* Fix planner's handling of outer PlaceHolderVars within subqueries (Tom Lane)
* Fix planning of UNION ALL subqueries with output columns that are not simple
variables (Tom Lane)
* Fix slow session startup when pg_attribute is very large (Tom Lane)
* Ensure sequential scans check for query cancel reasonably often (Merlin
Moncure)
* Ensure the Windows implementation of PGSemaphoreLock() clears
ImmediateInterruptOK before returning (Tom Lane)
* Show whole-row variables safely when printing views or rules (Abbas Butt, Tom
Lane)
* Fix COPY FROM to properly handle null marker strings that correspond to
invalid encoding (Tom Lane)
* Fix EXPLAIN VERBOSE for writable CTEs containing RETURNING clauses (Tom Lane)
* Fix PREPARE TRANSACTION to work correctly in the presence of advisory locks
(Tom Lane)
* Fix truncation of unlogged tables (Robert Haas)
* Ignore missing schemas during non-interactive assignments of search_path (Tom
Lane)
* Fix bugs with temporary or transient tables used in extension scripts (Tom
Lane)
* Ensure autovacuum worker processes perform stack depth checking properly
(Heikki Linnakangas)
* Fix logging collector to not lose log coherency under high load (Andrew
Dunstan)
* Fix logging collector to ensure it will restart file rotation after receiving
SIGHUP (Tom Lane)
* Fix "too many LWLocks taken" failure in GiST indexes (Heikki Linnakangas)
* Fix WAL replay logic for GIN indexes to not fail if the index was
subsequently dropped (Tom Lane)
* Correctly detect SSI conflicts of prepared transactions after a crash (Dan
Ports)
* Avoid synchronous replication delay when committing a transaction that only
modified temporary tables (Heikki Linnakangas)
* Fix error handling in pg_basebackup (Thomas Ogrisegg, Fujii Masao)
* Fix walsender to not go into a busy loop if connection is terminated (Fujii
Masao)
* Fix memory leak in PL/pgSQL's RETURN NEXT command (Joe Conway)
* Fix PL/pgSQL's GET DIAGNOSTICS command when the target is the function's
first variable (Tom Lane)
* Ensure that PL/Perl package-qualifies the _TD variable (Alex Hunsaker)
* Fix PL/Python functions returning composite types to accept a string for
their result value (Jan Urbanski)
* Fix potential access off the end of memory in psql's expanded display (\x)
mode (Peter Eisentraut)
* Fix several performance problems in pg_dump when the database contains many
objects (Jeff Janes, Tom Lane)
* Fix memory and file descriptor leaks in pg_restore when reading a
directory-format archive (Peter Eisentraut)
* Fix pg_upgrade for the case that a database stored in a non-default
tablespace contains a table in the cluster's default tablespace (Bruce Momjian)
* In ecpg, fix rare memory leaks and possible overwrite of one byte after the
sqlca_t structure (Peter Eisentraut)
* Fix contrib/dblink's dblink_exec() to not leak temporary database connections
upon error (Tom Lane)
* Fix contrib/dblink to report the correct connection name in error messages
(Kyotaro Horiguchi)
* Fix contrib/vacuumlo to use multiple transactions when dropping many large
objects (Tim Lewis, Robert Haas, Tom Lane)
* Update time zone data files to tzdata release 2012c for DST law changes in
Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron,
Morocco, Syria, and Tokelau Islands;
Changes:
* Fix incorrect password transformation in contrib/pgcrypto's DES crypt()
function (Solar Designer)
* Ignore SECURITY DEFINER and SET attributes for a procedural language's call
handler (Tom Lane)
* Allow numeric timezone offsets in timestamp input to be up to 16 hours away
from UTC (Tom Lane)
* Fix timestamp conversion to cope when the given time is exactly the last DST
transition time for the current timezone (Tom Lane)
* Fix text to name and char to name casts to perform string truncation
correctly in multibyte encodings (Karl Schnaitter)
* Fix memory copying bug in to_tsquery() (Heikki Linnakangas)
* Ensure txid_current() reports the correct epoch when executed in hot standby
(Simon Riggs)
* Fix planner's handling of outer PlaceHolderVars within subqueries (Tom Lane)
* Fix slow session startup when pg_attribute is very large (Tom Lane)
* Ensure sequential scans check for query cancel reasonably often (Merlin
Moncure)
* Ensure the Windows implementation of PGSemaphoreLock() clears
ImmediateInterruptOK before returning (Tom Lane)
* Show whole-row variables safely when printing views or rules (Abbas Butt, Tom
Lane)
* Fix COPY FROM to properly handle null marker strings that correspond to
invalid encoding (Tom Lane)
* Ensure autovacuum worker processes perform stack depth checking properly
(Heikki Linnakangas)
* Fix logging collector to not lose log coherency under high load (Andrew
Dunstan)
* Fix logging collector to ensure it will restart file rotation after receiving
SIGHUP (Tom Lane)
* Fix WAL replay logic for GIN indexes to not fail if the index was
subsequently dropped (Tom Lane)
* Fix memory leak in PL/pgSQL's RETURN NEXT command (Joe Conway)
* Fix PL/pgSQL's GET DIAGNOSTICS command when the target is the function's
first variable (Tom Lane)
* Fix potential access off the end of memory in psql's expanded display (\x)
mode (Peter Eisentraut)
* Fix several performance problems in pg_dump when the database contains many
*bjects (Jeff Janes, Tom Lane)
* Fix pg_upgrade for the case that a database stored in a non-default
tablespace contains a table in the cluster's default tablespace (Bruce Momjian)
* In ecpg, fix rare memory leaks and possible overwrite of one byte after the
sqlca_t structure (Peter Eisentraut)
* Fix contrib/dblink's dblink_exec() to not leak temporary database connections
upon error (Tom Lane)
* Fix contrib/dblink to report the correct connection name in error messages
(Kyotaro Horiguchi)
* Fix contrib/vacuumlo to use multiple transactions when dropping many large
*bjects (Tim Lewis, Robert Haas, Tom Lane)
* Update time zone data files to tzdata release 2012c for DST law changes in
Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron,
Morocco, Syria, and Tokelau Islands;
Changes:
* Fix incorrect password transformation in contrib/pgcrypto's DES crypt()
function (Solar Designer)
* Ignore SECURITY DEFINER and SET attributes for a procedural language's call
handler (Tom Lane)
* Allow numeric timezone offsets in timestamp input to be up to 16 hours away
from UTC (Tom Lane)
* Fix timestamp conversion to cope when the given time is exactly the last DST
transition time for the the current timezone (Tom Lane)
* Fix text to name and char to name casts to perform string truncation
correctly in multibyte encodings (Karl Schnaitter)
* Fix memory copying bug in to_tsquery() (Heikki Linnakangas)
* Fix planner's handling of outer PlaceHolderVars within subqueries (Tom Lane)
* Fix slow session startup when pg_attribute is very large (Tom Lane)
* Ensure sequential scans check for query cancel reasonably often (Merlin
Moncure)
* Ensure the Windows implementation of PGSemaphoreLock() clears
ImmediateInterruptOK before returning (Tom Lane)
* Show whole-row variables safely when printing views or rules (Abbas Butt, Tom
Lane)
* Fix COPY FROM to properly handle null marker strings that correspond to
invalid encoding (Tom Lane)
* Ensure autovacuum worker processes perform stack depth checking properly
(Heikki Linnakangas)
* Fix logging collector to not lose log coherency under high load (Andrew
Dunstan)
* Fix logging collector to ensure it will restart file rotation after receiving
SIGHUP (Tom Lane)
* Fix WAL replay logic for GIN indexes to not fail if the index was
subsequently dropped (Tom Lane)
* Fix memory leak in PL/pgSQL's RETURN NEXT command (Joe Conway)
* Fix PL/pgSQL's GET DIAGNOSTICS command when the target is the function's
first variable (Tom Lane)
* Fix potential access off the end of memory in psql's expanded display (\x)
mode (Peter Eisentraut)
* Fix several performance problems in pg_dump when the database contains many
objects (Jeff Janes, Tom Lane)
* Fix contrib/dblink's dblink_exec() to not leak temporary database connections
upon error (Tom Lane)
* Fix contrib/dblink to report the correct connection name in error messages
(Kyotaro Horiguchi)
* Update time zone data files to tzdata release 2012c for DST law changes in
Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron,
Morocco, Syria, and Tokelau Islands; also historical corrections for Canada.
Changes:
* Fix incorrect password transformation in contrib/pgcrypto's DES crypt() function (Solar Designer)
* If a password string contained the byte value 0x80, the remainder of the password was ignored, causing the password to be much weaker than it appeared. With this fix, the rest of the string is properly included in the DES hash. Any stored password values that are affected by this bug will thus no longer match, so the stored values may need to be updated. (CVE-2012-2143)
* Ignore SECURITY DEFINER and SET attributes for a procedural language's call handler (Tom Lane)
* Applying such attributes to a call handler could crash the server. (CVE-2012-2655)
* Allow numeric timezone offsets in timestamp input to be up to 16 hours away from UTC (Tom Lane)
* Some historical time zones have offsets larger than 15 hours, the previous limit. This could result in dumped data values being rejected during reload.
* Fix timestamp conversion to cope when the given time is exactly the last DST transition time for the current timezone (Tom Lane)
* This oversight has been there a long time, but was not noticed previously because most DST-using zones are presumed to have an indefinite sequence of future DST transitions.
* Fix text to name and char to name casts to perform string truncation correctly in multibyte encodings (Karl Schnaitter)
* Fix memory copying bug in to_tsquery() (Heikki Linnakangas)
* Fix slow session startup when pg_attribute is very large (Tom Lane)
* If pg_attribute exceeds one-fourth of shared_buffers, cache rebuilding code that is sometimes needed during session start would trigger the synchronized-scan logic, causing it to take many times longer than normal. The problem was particularly acute if many new sessions were starting at once.
* Ensure sequential scans check for query cancel reasonably often (Merlin Moncure)
* A scan encountering many consecutive pages that contain no live tuples would not respond to interrupts meanwhile.
* Ensure the Windows implementation of PGSemaphoreLock() clears ImmediateInterruptOK before returning (Tom Lane)
* This oversight meant that a query-cancel interrupt received later in the same query could be accepted at an unsafe time, with unpredictable but not good consequences.
* Show whole-row variables safely when printing views or rules (Abbas Butt, Tom Lane)
* Corner cases involving ambiguous names (that is, the name could be either a table or column name of the query) were printed in an ambiguous way, risking that the view or rule would be interpreted differently after dump and reload. Avoid the ambiguous case by attaching a no-op cast.
* Ensure autovacuum worker processes perform stack depth checking properly (Heikki Linnakangas)
* Previously, infinite recursion in a function invoked by auto-ANALYZE could crash worker processes.
* Fix logging collector to not lose log coherency under high load (Andrew Dunstan)
* The collector previously could fail to reassemble large messages if it got too busy.
* Fix logging collector to ensure it will restart file rotation after receiving SIGHUP (Tom Lane)
* Fix PL/pgSQL's GET DIAGNOSTICS command when the target is the function's first variable (Tom Lane)
* Fix several performance problems in pg_dump when the database contains many objects (Jeff Janes, Tom Lane)
* pg_dump could get very slow if the database contained many schemas, or if many objects are in dependency loops, or if there are many owned sequences.
* Fix contrib/dblink's dblink_exec() to not leak temporary database connections upon error (Tom Lane)
* Update time zone data files to tzdata release 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada.
Mysql2
Mysql2 is a modern, simple and very fast Mysql library for Ruby - binding to
libmysql.
The Mysql2 gem is meant to serve the extremely common use-case of connecting,
querying and iterating on results. Some database libraries out there serve as
direct 1:1 mappings of the already complex C API's available. This one is
not.
It also forces the use of UTF-8 (or binary) for the connection (and all
strings in 1.9, unless Encoding.default_internal is set then it'll convert
from UTF-8 to that encoding) and uses encoding-aware MySQL API calls where it
can.
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...