Fix more bugs in the LEFT JOIN flattening optimization. Ticket 7fde638e94287d2c.
Changes carried forward from version 3.19.1 (2017-05-24):
Fix a bug in the LEFT JOIN flattening optimization. Ticket cad1ab4cb7b0fc.
Remove a surplus semicolon that was causing problems for older versions of MSVC.
* Disable PaX MPROTECT for bin/mongo
Changelog:
3.4.4 – Apr 21, 2017
Issues fixed:
SERVER-18794: Add an aggregation operator $objectToArray to convert an object to an array of key, value pairs.
SERVER-23310: Add an aggregation operator $arrayToObject to convert an array of pairs to an object.
SERVER-22611: ChunkManager refresh can occasionally cause a full reload.
3.4.4 Changelog
All JIRA issues closed in 3.4.4
3.4.3 – Mar 28, 2017
Issues fixed:
SERVER-27863: Reschedule firing of early alarms in NetworkInterfaceASIO to avoid mongos crash.
SERVER-28017: $ne should respect collection’s default collation.
SERVER-27700: Improve WiredTiger performance on secondary when cache is full.
3.4.3 Changelog
All JIRA issues closed in 3.4.3
3.4.2 – Feb 1, 2017
Issues fixed:
SERVER-27125: Arbiters in pv1 should vote no in elections if they can see a healthy primary of equal or greater priority to the candidate.
SERVER-27584 Add support for filter to listDatabases
WT-2670 Inefficient I/O when read full DB (poor readahead)
3.4.2 Changelog
All JIRA issues closed in 3.4.2
3.4.1 – Dec 20, 2016
Issues fixed:
SERVER-27124: Disallow readConcern: majority reads on replica set protocolVersion 0 (pv0).
SERVER-27201: $graphLookup triggers null pointer dereference.
SERVER-27207: Find operation with a sort on a view via mongos may incorrectly return empty result set.
SERVER-27213: Two $match pipeline stages can combine incorrectly to produce incorrect results.
3.4.1 Changelog
All JIRA issues closed in 3.4.1
Version 3.6.2 Released May 23, 2017 (git tag 3.6.2)
- Remove errant debugging aid from test suite
Version 3.6.1 Released May 22, 2017 (git tag 3.6.1)
- Various fixes to support testing against Postgres 10beta
[David Christensen]
---------------------
The SQLITE_READ authorizer callback is invoked once with a column name that is an empty string for every table referenced in a query from which no columns are extracted.
When using an index on an expression, try to use expression values already available in the index, rather than loading the original columns and recomputing the expression.
Enhance the flattening optimization so that it is able to flatten views on the right-hand side of a LEFT JOIN.
Use replace() instead of char() for escaping newline and carriage-return characters embedded in strings in the .dump output from the command-line shell.
Avoid unnecessary foreign key processing in UPDATE statements that do not touch the columns that are constrained by the foreign keys.
On a DISTINCT query that uses an index, try to skip ahead to the next distinct entry using the index rather than stepping through rows, when an appropriate index is available.
Avoid unnecessary invalidation of sqlite3_blob handles when making changes to unrelated tables.
Transfer any terms of the HAVING clause that use only columns mentioned in the GROUP BY clause over to the WHERE clause for faster processing.
Reuse the same materialization of a VIEW if that VIEW appears more than once in the same query.
Enhance PRAGMA integrity_check so that it identifies tables that have two or more rows with the same rowid.
Enhance the FTS5 query syntax so that column filters may be applied to arbitrary expressions.
Enhance the json_extract() function to cache and reuse parses of JSON input text.
Added the anycollseq.c loadable extension that allows a generic SQLite database connection to read a schema that contains unknown and/or application-specific collating sequences.
Bug Fixes:
----------
Fix a problem in REPLACE that can result in a corrupt database containing two or more rows with the same rowid.
Fix a problem in PRAGMA integrity_check that was causing a subsequent VACUUM to behave suboptimally.
Fix the PRAGMA foreign_key_check command so that it works correctly with foreign keys on WITHOUT ROWID tables.
Disallow leading zeros in numeric constants in JSON.
Disallow control characters inside of strings in JSON.
Limit the depth of recursion for JSON objects and arrays in order to avoid excess stack usage in the recursive descent parser.
=== Breaking changes
Settings::
- Remove support for default settings
=== Breaking Java changes
Aggregations::
- Move getProperty method out of MultiBucketsAggregation.Bucket
interface
- Remove getProperty method from Aggregations interface and impl
- Move getProperty method out of Aggregation interface
Java API::
- Fold InternalSearchHits and friends into their interfaces
=== Deprecations
Aggregations::
- Deprecate Stats#getCountAsString
Java API::
- Add BulkProcessor methods with XContentType parameter
Network::
- Deprecate Netty 3
Packaging::
- Add deprecation warnings for $ES_USER and $ES_GROUP
Plugin Delete By Query::
- Deprecate delete_by_query requests without an explicit query
Plugin Repository Azure::
- Deprecate global `repositories.azure` settings
Plugin Repository S3::
- Deprecate repositories.s3 settings
REST::
- Deprecate ldjson support and document ndjson for bulk/msearch
Stats::
- Deprecate `_field_stats` endpoint
=== New features
Analysis::
- Adds pattern keyword marker filter support
- Expose WordDelimiterGraphTokenFilter
Index APIs::
- Add FieldCapabilities (`_field_caps`) API
Search::
- Introduce incremental reduction of TopDocs
Similarities::
- Adds boolean similarity to Elasticsearch
=== Enhancements
Aggregations::
- Add BucketMetricValue interface
- Move aggs CommonFields and TYPED_KEYS_DELIMITER from
InternalAggregation to Aggregation
- Use ParseField for aggs CommonFields rather than String
- Share XContent rendering code in terms aggs
- Add unit tests for ParentToChildAggregator
- First step towards incremental reduction of query responses
Allocation::
- Trigger replica recovery restarts by master when primary relocation
completes
- Makes the same_shard host dynamically updatable
Analysis::
- Support Keyword type in Analyze API
Cluster::
- Prevent nodes from joining if newer indices exist in the cluster
Core::
- Detect remnants of path.data/default.path.data bug
- Await termination after shutting down executors
- Add early-access check
- Adapter action future should restore interrupts
- Disable bootstrap checks for single-node discovery
- Enable explicitly enforcing bootstrap checks
- Add equals/hashcode method to ReplicationResponse
Dates::
- Improve error handling for epoch format parser with time zone
(#22621)
Discovery::
- Introduce single-node discovery
- UnicastZenPing shouldn't ping the address of the local node
- MasterFaultDetection can start after the initial cluster state has
been processed
Highlighting::
- Add support for fragment_length in the unified highlighter
- Add BreakIteratorBoundaryScanner support
Index APIs::
- Wildcard cluster names for cross cluster search
Ingest::
- Lazy load the geoip databases
Internal::
- Add a dedicated TransportRemoteInfoAction for consistency
- Simplify sorted top docs merging in SearchPhaseController
- Synchronized CollapseTopFieldDocs with lucenes relatives
- Cleanup SearchPhaseController interface
- Do not create String instances in 'Strings' methods accepting
StringBuilder
Java API::
- Added types options to DeleteByQueryRequest
Java High Level REST Client::
- Convert suggestion response parsing to use NamedXContentRegistry
- UpdateRequest implements ToXContent
- Add javadoc for DocWriteResponse.Builders
- Expose WriteRequest.RefreshPolicy string representation
- Use `typed_keys` parameter to prefix suggester names by type in
search responses
- Add parsing methods to BulkItemResponse
Logging::
- Warn on not enough masters during election
Mapping::
- Improve error message for ipv6 on legacy ip fields
Nested Docs::
- Avoid adding unnecessary nested filters when ranges are used.
Network::
- Adjust default Netty receive predictor size to 64k
- Keep the pipeline handler queue small initially
- Set network receive predictor size to 32kb
- TransportService.connectToNode should validate remote node ID
Packaging::
- Introduce Java version check
- Cleanup some things after removal of joda-time hack
Percolator::
- Allowing range queries with now ranges inside percolator queries
- Add term extraction support for MultiPhraseQuery
Plugin Discovery EC2::
- Settings: Migrate ec2 discovery sensitive settings to elasticsearch
keystore
Plugin Lang Painless::
- Allow painless to load stored fields
- Start on custom whitelists for Painless
- Fix Painless's implementation of interfaces returning primitives
- Allow painless to implement more interfaces
Plugin Repository Azure::
- Add Backoff policy to azure repository
Plugin Repository S3::
- Removes the retry mechanism from the S3 blob store
- S3 Repository: Eagerly load static settings
Plugins::
- Modify permissions dialog for plugins
- Plugins: Add plugin cli specific exit codes
- Plugins: Output better error message when existing plugin is
incompatible
Query DSL::
- Make it possible to validate a query on all shards instead of a
single random shard
REST::
- Validate top-level keys when parsing mget requests
- Cluster stats should not render empty http/transport types
- Add parameter to prefix aggs name with type in search responses
Search::
- Set shard count limit to unlimited
- Streamline shard index availability in all SearchPhaseResults
- Search took time should use a relative clock
- Prevent negative `from` parameter in SearchSourceBuilder
- Remove unnecessary result sorting in SearchPhaseController
- Expose `batched_reduce_size` via `_search`
- Adding fromXContent to Suggest and Suggestion class
- Adding fromXContent to Suggestion.Entry and subclasses
- Add CollapseSearchPhase as a successor for the FetchSearchPhase
- Integrate IndexOrDocValuesQuery.
- Detach SearchPhases from AbstractSearchAsyncAction
- Fix GraphQuery expectation after Lucene upgrade to 6.5
- Nested queries should avoid adding unnecessary filters when
possible.
- Add xcontent parsing to completion suggestion option
- Add xcontent parsing to suggestion options
- Separate reduce (aggs, suggest and profile) from merging fetched
hits
Settings::
- Add secure file setting to keystore
- Add a setting which specifies a list of setting
- Add a property to mark setting as final
- Remove obsolete index setting `index.version.minimum_compatible`.
- Provide a method to retrieve a closeable char[] from a SecureString
- Update indices settings api to support CBOR and SMILE format
- Improve setting deprecation message
Snapshot/Restore::
- Change snapshot status error to use generic SnapshotException
Stats::
- Add cross-cluster search remote cluster info API
Task Manager::
- Allow task to be unregistered by ClusterStateApplier
- Limit IndexRequest toString() length
=== Bug fixes
Aggregations::
- Align behavior HDR percentiles iterator with percentile() method
- The `filter` and `significant_terms` aggregations should parse the
`filter` as a filter, not a query.
- Completion suggestion should also consider text if prefix/regex is
missing
- Fixes the per term error in the terms aggregation
- Fixes terms error count for multiple reduce phases
- Restore support for the `include/pattern` syntax.
Bulk::
- Reject empty IDs
CRUD::
- Fix backport executing ops as single item bulk
Cluster::
- Don't set local node on cluster state used for node join validation
- Allow a cluster state applier to create an observer and wait for a
better state
- Cluster allocation explain to never return empty response body
Core::
- Check for default.path.data included in path.data
- Improve performance of extracting warning value
- Reject duplicate settings on the command line
- Restrict build info loading to ES jar, not any jar
Discovery::
- ZenDiscovery - only validate min_master_nodes values if local node
is master
Index APIs::
- Fixes restore of a shrunken index when initial recovery node is gone
- Honor update request timeout
Ingest::
- Improve missing ingest processor error
- update _ingest.timestamp to use new ZonedDateTime
Inner Hits::
- Replace NestedChildrenQuery with ParentChildrenBlockJoinQuery
- Changed DisMaxQueryBuilder to extract inner hits from leaf queries
Internal::
- Add infrastructure to mark contexts as system contexts
- Always restore the ThreadContext for operations delayed due to a
block
Java High Level REST Client::
- Correctly parse BulkItemResponse.Failure's status
Java REST Client::
- Make buffer limit configurable in HeapBufferedConsumerFactory
- RestClient asynchronous execution should not throw exceptions
Mapping::
- Preserve response headers when creating an index
- Improves disabled fielddata error message
- Switch include_in_all in multifield to warning
- Fix MapperService StackOverflowError
- Fix NPE with scaled floats stats when field is not indexed
Network::
- Fix possible hang in local transport when nodes get concurrently
disconnected
- Respect promises on pipelined responses
- Ensure that releasing listener is called
Packaging::
- Fall back to non-atomic move when removing plugins
Percolator::
- Fix memory leak when percolator uses bitset or field data cache
Plugin Ingest Attachment::
- Remove support for Visio and potm files
Plugin Lang Painless::
- Fix painless's regex lexer and error messages
- Replace Painless's Cast with casting strategies
- Fix Bad Casts In Painless
Plugin Repository Azure::
- Azure blob store's readBlob() method first checks if the blob exists
Plugin Repository S3::
- Handle BlobPath's trailing separator case. Add test cases to
BlobPathTests.java
Plugins::
- Fix delete of plugin directory on remove plugin
- Use a marker file when removing a plugin
Query DSL::
- FuzzyQueryBuilder should error when parsing array of values
REST::
- [API] change wait_for_completion default according to docs
- Deprecate request_cache for clear-cache
- HTTP transport stashes the ThreadContext instead of the
RestController
- Ensure we try to autodetect content type for handlers that support
plain text
- Fix date format in warning headers
- Align REST specs for HEAD requests
- Correct warning header to be compliant
- Fix get HEAD requests
- Fix search scroll request with a plain text body
- Handle bad HTTP requests
- Fix get source HEAD requests
- Properly encode location header
- Fix template HEAD requests
- Fix index HEAD requests
- Fix alias HEAD requests
Recovery::
- Provide target allocation id as part of start recovery request
Reindex API::
- Fix throttled reindex_from_remote
- Fix reindex with a remote source on a version before 2.0.0
- Make reindex wait for cleanup before responding
Scripting::
- Remove unnecessary Groovy deprecation logging
- Convert script/template objects to json format internally
- Script: Fix value of `ctx._now` to be current epoch time in
milliseconds
Search::
- Cross Cluster Search: propagate original indices per cluster
- Query string default field
- Speed up parsing of large `terms` queries.
- IndicesQueryCache should delegate the scorerSupplier method.
- Fork LRUQueryCache from Lucene to work around LUCENE-7749
- Disable graph analysis at query time for shingle and cjk filters
producing tokens of different size
- Fix cross-cluster remote node gateway attributes
- Use a fixed seed for computing term hashCode in TermsSliceQuery
- Honor max concurrent searches in multi-search
- Avoid stack overflow in multi-search
- Fix query_string_query to transform "foo:*" in an exists query on
the field name
- Factor out filling of TopDocs in SearchPhaseController
- Replace blocking calls in ExpandCollapseSearchResponseListener by
asynchronous requests
Search Templates::
- No longer add illegal content type option to stored search templates
Settings::
- Do not set path.data in environment if not set
- Correct handling of default and array settings
- Fix merge scheduler config settings
- Settings: Fix keystore cli prompting for yes/no to handle console
returning null
Similarities::
- Fix similarity upgrade when "default" similarity is overridden
Snapshot/Restore::
- Fixes maintaining the shards a snapshot is waiting on
- Fixes snapshot status on failed snapshots
- Fixes snapshot deletion handling on in-progress snapshot failure
- Prioritize listing index-N blobs over index.latest in reading
snapshots
Stats::
- Avoid overflow when computing total FS stats
- Handle existence of cgroup version 2 hierarchy
- Handle long overflow when adding paths' totals
- Fix control group pattern
- Fix total disk bytes returning negative value
=== Regressions
Bulk::
- Fix _bulk response when it can't create an index
=== Upgrades
Aggregations::
- Upgrade HDRHistogram to 2.1.9
Core::
- Upgrade to Lucene 6.5.0
- Upgrade from JNA 4.2.2 to JNA 4.4.0
- Upgrade to lucene-6.5.0-snapshot-d00c5ca
- Upgrade to lucene-6.5.0-snapshot-f919485.
Logging::
- Upgrade to Log4j 2.8.2
Network::
- Upgrade to Netty 4.1.9
- Upgrade to Netty 4.1.8
Plugin Repository Azure::
- Update to Azure Storage 5.0.0
- Remove the playhouse.fields.AESEncryptedField over security concerns
described in ticket #1264.
- Correctly resolve explicit table dependencies when creating tables, refs
- Implement not equals comparison for CompositeKey.
leading and trailing spaces in server name don’t raise exception anymore - DitContentRule is properly read from the schema - added validator for Active Directory timestamp - Mock strategies raise an exception if a non-bytes value is added to the schema when no offline schema is provided (str and int are automatically converted) - added custom_validators property to Mock strategies - modifying objectClass with bytes values doesn’t raise an exception anymore (but it may fail anyway because of server constraints) - ensure that config sequence parameters are properly set - allow case insensitive attribute and class names in config parameters - added server.schema.is_valid() to check if the schema is available - empty schema properties are set to empty dict() instead of None - schema definitions with traling and leading spaces are now properly parsed and don’t raise an LDAPSchemaError exception anymore - fixed error when flaky servers (OpenLDAP) don’t return the correct response with StartTls
abstraction layer query converts int values to string (thanks dgadmin)
CaseInsensitiveDictWithAlias doesn’t raise an exception anymore if alias is set multiple times to the same key
friendly names in AttrDef are properly managed when performing commits in Writer cursors
no more errors when server returns an empty schema (thanks Glen)
range attributes in entries are properly recognized when auto_range is False
fixed random errors in auto_range searches (thanks James)
fixed checking of malformed schema
added configuration parameter IGNORE_MALFORMED_SCHEMA to not raise exception for servers that don’t follow the LDAP RFCs (defaults to False)
test config moved to test/config.py
testcase_id generated randomly for each test
added ATTRIBUTES_EXCLUDED_FROM_OBJECT_DEF parmeter to exclude some attribute from automatic populate of ObjectDef in Abstract Layer (helpful for AD)
added IGNORED_MANDATORY_ATTRIBUTES_IN_OBJECT_DEF parmeter to exclude some attribute from mandatory attribute list in ObjectDef in Abstract Layer (helpful for AD)
fixed error when using implicit assigning in WritableEntry
added LDAPInvalidValueError Exception
in Python 3 byte filter are converted to unicode before parsing
RESPONSE_DN_ENCODING parameter renamed to ADDITIONAL_ENCODINGS
to_unicode(value, encoding=None, additional_encodings=False) now checks for additional encoodings in ADDITIONAL_ENCODINGS list if additional_encoding is set to True
Reusable strategy uses not lazy Restartable connections
Lib/slapdtest.py
* SlapdObject now evaluates env var SLAPD for optionally pointing
to OpenLDAP's slapd executable (e.g. with OpenLDAP LTB builds)
* added LDAPI support in slaptest.SlapdObject which is internally used
in methods ldapadd() and ldapwhoami()
* added method slaptest.SlapdObject.ldapmodify()
* fixed enabling logger in slaptest
* directory name now contains port to be able to run several SlapdObject
instances side-by-side (e.g. with replication)
* added authz-regexp mapping to rootdn for user running the test
* internally use SASL/EXTERNAL via LDAPI to bind
* SlapdObject.server_id used as serverID in slapd.conf for MMR
* Removed method SlapdObject.started() because SlapdTestCase.setUpClass()
will be used to add initial entries
Tests/
* ReconnectLDAPObject is also tested by sub-classing test class
3.4.2
- PreProcessing is failling with "got invalid document size"
- mongo-replay crashes during playback
- nil pointer derereference when error occurs
3.4.1
- Stats collection has large playback performance impact
- Add option to set capture buffer size to avoid packet loss
- Playback file contains full reply payload
- mongoreplay: out of bounds error in "shortenreply" during record
- Add test for restoring a collection with a default collation
- nil pointer dereference in mongoreplay when error on new playback
file creation
3.2.10
- Don't create intents for system.profile.metadata.json files
- tools do not respect readPreference=secondary when connecting to a
mongos
- Mongodump SSL and GSSAPI authentication
- No numeric version in -version output
- Backport to v3.2
- Issue only one ApplyOps cmd per oplog entry
3.2.9
- Make -version spit out a bit more information.
3.2.8
- Mongostat with discover can find the same node twice in a sharded
cluster
- mongostat -discover does not alias localhost to the target hostname
- mongoimport returns exit code 0 even when error prevents records
from being inserted
- Wrong error message while using mongoimport
- add a "-assertExists" option to mongoexport
- Use v3.2.7 for qa tests
- mongoimport types jstest fails on functions
-------------------------------------------------------------------
(From https://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-56.html)
Changes in MySQL 5.5.56 (2017-05-02, General availability)
Binary packages for MySQL 5.5.56 are identical to those for MySQL
5.5.55, except for the version number. The change in 5.5.56 for Bug
#25942414 is applicable only to those who build from source.
Security Notes
For the WITH_SSL CMake option, no is no longer a permitted value or
the default value. The default is now bundled. Consequently, MySQL now
is always built with SSL support. (Bug #25942414)
-------------------------------------------------------------------
(pkgsrc changes)
- Removed ssl option both from PKG_{SUPPORTED,SUGGESTED}_OPTIONS.
This may give error if ssl is explicitly designated, but I believe
that is the (kind of) upstream intension.
(or left ssl in SUPPORTED and ignore it ?)
------------------------------------
1.06 Fri Apr 5 2013 Todd Rinaldo
Bump to production release now tests all pass on cpan testers
1.05_01 Thu Mar 28 2013 Todd Rinaldo
Fix for RT 58813 - Fix for File based DBDs
Fix for RT 84125 - Fix for mysqlPP
(pkgsrc changes)
- drop two patches, those were really provided by upstream after previous version
- Add do-test: target, for doing without any environment. Hope this will give PASS
-------------------------------------------
1.412 2017-04-06
* Release 1.411_001 without further changes as 1.412
1.411_001 2017-03-30
[Bug fixes]
* Fix http://www.perlmonks.org/?node_id=1167381 (NumericEval: fix
typo on error handling) (thanks to Yanick Champoux, James R. Leu)
* fix repo url and t/02execute.t (Reini Urban, Mohammad S Anwar)
* fix test failing with blead-perl (Jens Rehsack)
[Improvements]
* Refactor constraints processing (Ovidiu Gheorghies)
* Support parsing of complex JOIN clause (containing OR and ()'s) (James R. Leu)
* handle backtick quoting (Ben Hengst)
------------------------------------------
0.29 Sun Jan 15 15:44:09 2017 +0100
RT #119853 Fix spelling mistakes in the POD.
Thanks to gregor herrmann, Debian Perl Group.
0.28 Tue Jan 10 20:03:04 2017 +0100
Updated due to misuse of HTML::Lint 2.26.
PickleShare - a small shelve like datastore with concurrency support
Like shelve, a PickleShareDB object acts like a normal dictionary
Unlike shelve, many processes can access the database simultaneously
Changing a value in database is immediately visible to other processes
accessing the same database
=== Breaking changes
Settings::
- Remove support for default settings
=== Enhancements
Core::
- Detect remnants of path.data/default.path.data bug
Network::
- Adjust default Netty receive predictor size to 64k
REST::
- Cluster stats should not render empty http/transport types
=== Bug fixes
Aggregations::
- The `filter` and `significant_terms` aggregations should parse the
`filter` as a filter, not a query.
- Restore support for the `include/pattern` syntax.
Bulk::
- Reject empty IDs
Core::
- Improve performance of extracting warning value
- Restrict build info loading to ES jar, not any jar
Discovery::
- ZenDiscovery - only validate min_master_nodes values if local node
is master
Index APIs::
- Honor update request timeout
Inner Hits::
- Replace `NestedChildrenQuery` with `ParentChildrenBlockJoinQuery`
Internal::
- Add infrastructure to mark contexts as system contexts
Java REST Client::
- Make buffer limit configurable in HeapBufferedConsumerFactory
Mapping::
- Preserve response headers when creating an index
- Fix NPE with scaled floats stats when field is not indexed
Network::
- Fix possible hang in local transport when nodes get concurrently
disconnected
Plugin Repository Azure::
- Azure blob store's readBlob() method first checks if the blob exists
Reindex API::
- Fix reindex with a remote source on a version before 2.0.0
Search::
- Disable graph analysis at query time for shingle and cjk filters
producing tokens of different size
- Fix cross-cluster remote node gateway attributes
- Use a fixed seed for computing term hashCode in TermsSliceQuery
Settings::
- Do not set path.data in environment if not set
- Correct handling of default and array settings
Stats::
- Handle existence of cgroup version 2 hierarchy
=== Upgrades
Internal::
- upgrade to Lucene 6.4.2
=== 4.45.0 (2017-04-01)
* Correctly handle datasets with offsets but no limits used in compound datasets on MSSQL <2012 (jeremyevans)
* Correctly handle false values in the split_values plugin (bananarne) (#1333)
* Deprecate Dataset#dup/clone and Model.dup/clone (jeremyevans)
* Deprecate the schema and scissors plugins (jeremyevans)
* Deprecate Model.{lazy_attributes,nested_attributes,composition,serialization}_module accessors (jeremyevans)
* Deprecate Database#database_name on MySQL (jeremyevans)
* Deprecate Database#use on MySQL (jeremyevans)
* Make pg_hstore extension no longer update PG_NAMED_TYPES (jeremyevans)
* Deprecate Sequel::PG_NAMED_TYPES (jeremyevans)
* Add columns_updated plugin for making updated columns hash available in after_update and after_save hooks (jeremyevans)
* Deprecate accessing @columns_updated directly in model after_update and after_save hooks (jeremyevans)
* Deprecate Database#{add,remove}_servers when not using a sharded connection pool (jeremyevans)
* Deprecate Database#each_server (jeremyevans)
* Make Model#_valid? private method accept only an options hash (jeremyevans)
* Deprecate returning false from model before hooks to cancel the action, use Model#cancel_action (jeremyevans)
* Handle Model#cancel_action correctly in before hooks when Model#valid? is called (jeremyevans)
* Deprecate Sequel::BeforeHookFailed (jeremyevans)
* Deprecate passing multiple arguments as filter arguments when not using a conditions specifier (jeremyevans)
* Deprecate passing Procs as filter arguments, require they be passed as blocks (jeremyevans)
* Deprecate Sequel::Error::* exception class aliases (jeremyevans)
* Deprecate prepared_statements_associations and prepared_statements_with_pk plugins (jeremyevans)
* Deprecate Sequel::Unbinder, Sequel::UnbindDuplicate, and Dataset#unbind (jeremyevans)
* Deprecating calling Sequel::Qualifier with two arguments (jeremyevans)
* Add validation_contexts plugin for supporting custom contexts when validating (jeremyevans)
* Deprecate Sequel::Database.single_threaded singleton accessor (jeremyevans)
* Deprecate treating unrecognized prepared statement type as :select (jeremyevans)
* Deprecate Sequel.identifier_{in,out}put_method= and .quote_identifiers= singleton setters (jeremyevans)
* Deprecate Sequel::Database.identifier_{in,out}put_method and .quote_identifiers singleton accessors (jeremyevans)
* Deprecate loading the identifier_mangling by default, require it be loaded explicitly if needed (jeremyevans)
* Make Database#dump_{table_schema,schema_migration} in schema_dumper extension support :schema option (dadario) (#1328)
* Make Dataset#delete respect an existing limit on Microsoft SQL Server (jeremyevans)
* Add Dataset#skip_limit_check to mark a dataset as skipping the limit/offset check for updates and deletes (jeremyevans)
* Deprecate calling Dataset#{update/delete/truncate} on datasets with limits or offsets unless the database supports it (jeremyevans)
* Add deprecation message for using association_pks setter method with :delay_pks=>true association option (jeremyevans)
* Add deprecation message for using association_pks setter method without :delay_pks association option (jeremyevans)
* Deprecate having duplicate column names in subclass tables when using the class_table_inheritance plugin (jeremyevans)
* Deprecate do (DataObjects), swift, and jdbc/as400 adapters (jeremyevans)
* Deprecate support for Cubrid, Firebird, Informix, and Progress databases (jeremyevans)
* The :proxy_argument option passed to association_proxies plugin block is now an empty hash if no arguments are passed to the association method (jeremyevans)
* Deprecate passing non-hash arguments to association methods (jeremyevans)
* Deprecate passing multiple arguments to association methods (jeremyevans)
* Deprecate model transaction hook methods (jeremyevans)
* Drop support for pg <0.8.0 in the postgres adapter (jeremyevans)
* Deprecate passing a block to Database#from (jeremyevans)
* Deprecate Sequel::Model::ANONYMOUS_MODEL_CLASSES{,_MUTEX} (jeremyevans)
* Deprecate Sequel.cache_anonymous_models and Sequel.cache_anonymous_models= (jeremyevans)
* Automatically use from_self when using a dataset as part of a compound if it has an offset but no limit (jeremyevans)
* Drop order on existing datasets when using Dataset#union/intersect/except on Microsoft SQL Server unless a limit or offset is used (jeremyevans)
* Deprecate dataset mutation (jeremyevans)
* Handle dumping of autoincrementing 64-bit integer primary key columns correctly when using :same_db option in the schema dumper (jeremyevans) (#1324)
* Add Model.dataset_module_class accessor, allowing plugins to support custom behavior in dataset_module blocks (jeremyevans)
* Make ORDER BY come after UNION/INTERSECT/EXCEPT on Microsoft SQL Server and SQLAnywhere (jeremyevans)
* Make Database#indexes on MySQL handle qualified identifiers (jeremyevans) (#1316)
* Add oracle support to the odbc adapter (samuel02) (#1315)
## 2.9.2
- Fixed significant bug in the `savepoint` commit/rollback implementation.
- Added support for postgresql `INTERVAL` columns.
- Fixed bug where missing `sqlite3` library was causing other, unrelated
libraries to throw errors when attempting to import.
- Added a `case_sensitive` parameter to the SQLite `REGEXP` function
implementation. The default is `False`, to preserve backwards-compatibility.
- Fixed bug that caused tables not to be created when using the `dataset`
extension.
- Modified `drop_table` to raise an exception if the user attempts to drop
tables with `CASCADE` when the database backend does not support it.
- Fixed Python3 issue in the `AESEncryptedField`.
- Modified the behavior of string-typed fields to treat the addition operator
as concatenation
## 2.9.1
- Fixed#1218, where the use of `playhouse.flask_utils` was requiring the
`sqlite3` module to be installed.
- Fixed#1219 regarding the SQL generation for composite key sub-selects,
joins, etc.
## 2.9.0
In this release there are two notable changes:
- The ``Model.create_or_get()`` method was removed.
- The SQLite closure table extension gained support for many-to-many
relationships thanks to a nice PR by @necoro.
## 2.8.8
This release contains a single important bugfix for a regression in specifying
the type of lock to use when opening a SQLite transaction.
## 2.8.7
This release contains numerous cleanups.
### Bugs fixed
- #1087 - Fixed a misuse of the iteration protocol in the `sqliteq` extension.
- #1096 - Fix representation of recursive foreign key relations when using the
`model_to_dict` helper.
- #1126 - Allow `pskel` to be installed into `bin` directory.
- #1105 - Added a `Tuple()` type to Peewee to enable expressing arbitrary
tuple expressions in SQL.
- #1133 - Fixed bug in the conversion of objects to `Decimal` instances in the
`DecimalField`.
- Fixed an issue renaming a unique foreign key in MySQL.
- Remove the join predicate from CROSS JOINs.
- #1148 - Ensure indexes are created when a column is added using a schema
migration.
- #1165 - Fix bug where the primary key was being overwritten in queries using
the closure-table extension.
### New stuff
- Added properties to the `SqliteExtDatabase` to expose common `PRAGMA`
settings.
- Clarified documentation on calling `commit()` or `rollback()` from within the
scope of an atomic block.
- Allow table creation dependencies to be specified using new `depends_on` meta
option.
- Allow specification of the lock type used in SQLite transactions.
- Added support for `CROSS JOIN` expressions in select queries.
- Docs on how to implement optimistic locking
- Documented optional dependencies.
- Generic support for specifying select queries as locking the selected rows
`FOR X`, e.g. `FOR UPDATE` or `FOR SHARE`.
- Support for specifying the frame-of-reference in window queries, e.g.
specifying `UNBOUNDED PRECEDING`, etc.
### Backwards-incompatible changes
- As of 9e76c99, an `OperationalError` is raised if the user calls `connect()`
on an already-open Database object. Previously, the existing connection would
remain open and a new connection would overwrite it, making it impossible to
close the previous connection. If you find this is causing breakage in your
application, you can switch the `connect()` call to `get_conn()` which will
only open a connection if necessary. The error **is** indicative of a real
issue, though, so audit your code for places where you may be opening a
connection without closing it (module-scope operations, e.g.).
Notable changes since 3.2:
- Improve ways to write change migrations, making the old up & down
methods no longer necessary.
- Adds PostgreSQL array type support. Any datatype can be used to
create an array column, with full migration and schema dumper
support.
- Add Relation#load to explicitly load the record and return self.
- Model.all now returns an ActiveRecord::Relation, rather than an
array of records. Use Relation#to_a if you really want an array. In
some specific cases, this may cause breakage when upgrading.
- Added ActiveRecord::Migration.check_pending! that raises an error if
migrations are pending.
- Added custom coders support for ActiveRecord::Store.
- mysql and mysql2 connections will set SQL_MODE=STRICT_ALL_TABLES by
default to avoid silent data loss. This can be disabled by
specifying strict: false in your database.yml.
- Remove IdentityMap.
- Remove automatic execution of EXPLAIN queries. The option
active_record.auto_explain_threshold_in_seconds is no longer used
and should be removed.
- Adds ActiveRecord::NullRelation and ActiveRecord::Relation#none
implementing the null object pattern for the Relation class.
- Added create_join_table migration helper to create HABTM join
tables.
- Allows PostgreSQL hstore records to be created.
- Default scopes are no longer overridden by chained conditions.
- Added ActiveRecord::Base.to_param for convenient "pretty" URLs
derived from a model's attribute or method.
- Added ActiveRecord::Base.no_touching, which allows ignoring touch on
models.
- Unify boolean type casting for MysqlAdapter and
Mysql2Adapter. type_cast will return 1 for true and 0 for false.
- .unscope now removes conditions specified in default_scope.
- Added ActiveRecord::QueryMethods#rewhere which will overwrite an
existing, named where condition.
- Extended ActiveRecord::Base#cache_key to take an optional list of
timestamp attributes of which the highest will be used.
- Added ActiveRecord::Base#enum for declaring enum attributes where
the values map to integers in the database, but can be queried by
name.
- Type cast json values on write, so that the value is consistent with
reading from the database.
- Type cast hstore values on write, so that the value is consistent
with reading from the database.
- Make next_migration_number accessible for third party generators.
- Calling update_attributes will now throw an ArgumentError whenever
it gets a nil argument. More specifically, it will throw an error if
the argument that it gets passed does not respond to to
stringify_keys.
- CollectionAssociation#first/#last (e.g. has_many) use a LIMITed
query to fetch results rather than loading the entire collection.
- inspect on Active Record model classes does not initiate a new
connection. This means that calling inspect, when the database is
missing, will no longer raise an exception.
- Removed column restrictions for count, let the database raise if the
SQL is invalid.
- Rails now automatically detects inverse associations. If you do not
set the :inverse_of option on the association, then Active Record
will guess the inverse association based on heuristics.
- Handle aliased attributes in ActiveRecord::Relation. When using
symbol keys, ActiveRecord will now translate aliased attribute names
to the actual column name used in the database.
- The ERB in fixture files is no longer evaluated in the context of
the main object. Helper methods used by multiple fixtures should be
defined on modules included in
ActiveRecord::FixtureSet.context_class.
- Don't create or drop the test database if RAILS_ENV is specified
explicitly.
- Relation no longer has mutator methods like #map! and
#delete_if. Convert to an Array by calling #to_a before using these
methods.
- find_in_batches, find_each, Result#each and Enumerable#index_by now
return an Enumerator that can calculate its size.
- scope, enum and Associations now raise on "dangerous" name
conflicts.
- second through fifth methods act like the first finder.
- Make touch fire the after_commit and after_rollback callbacks.
- Enable partial indexes for sqlite >= 3.8.0.
- Make change_column_null revertible.
- Added a flag to disable schema dump after migration. This is set to
false by default in the production environment for new applications.
- SchemaDumper uses force: :cascade on create_table. This makes it
possible to reload a schema when foreign keys are in place.
- Added a :required option to singular associations, which defines a
presence validation on the association.
- ActiveRecord::Dirty now detects in-place changes to mutable
values. Serialized attributes on Active Record models are no longer
saved when unchanged. This also works with other types such as
string columns and json columns on PostgreSQL.
- Introduced the db:purge Rake task to empty the database for the
current environment.
- Introduced ActiveRecord::Base#validate! that raises
ActiveRecord::RecordInvalid if the record is invalid.
- Introduced validate as an alias for valid?.
- touch now accepts multiple attributes to be touched at once.
- The PostgreSQL adapter now supports the jsonb datatype in PostgreSQL
9.4+.
- The PostgreSQL and SQLite adapters no longer add a default limit of
255 characters on string columns.
- Added support for the citext column type in the PostgreSQL adapter.
- Added support for user-created range types in the PostgreSQL
adapter.
- sqlite3:///some/path now resolves to the absolute system path
/some/path. For relative paths, use sqlite3:some/path
instead. (Previously, sqlite3:///some/path resolved to the relative
path some/path. This behavior was deprecated on Rails 4.1).
- Added support for fractional seconds for MySQL 5.6 and above.
- Added ActiveRecord::Base#pretty_print to pretty print models.
- ActiveRecord::Base#reload now behaves the same as m =
Model.find(m.id), meaning that it no longer retains the extra
attributes from custom SELECTs.
- ActiveRecord::Base#reflections now returns a hash with string keys
instead of symbol keys.
- The references method in migrations now supports a type option for
specifying the type of the foreign key (e.g. :uuid).
Version 3.6.0 Released April 17, 2017 (git tag 3.6.0)
- Make sure we do not inadvertently modify the string passed to prepare() when
doing the new backslash escape manipulation.
[Greg Sabino Mullane]
(CPAN ticket #114000)
- Fix bug where $DBD::Pg::DBDPG_DEFAULT not picked up as a magic
string first time it is used in a script.
[Greg Sabino Mullane]
(CPAN ticket #112309)
- Fix UTF8 flag handling in pg_(get|put)copydata
[Dagfinn Ilmari Mannsåker]
- Fix UTF8 double-encoding with pg_enable_utf8 = 0
[Serge Pushkin]
(CPAN ticket #103137)
- Fix bug in quote_name which would fail to quote in some circumstances
(Github Issue #22)
- Allow clean parsing of new Postgres X.Y version format
[Erik Rijkers er at xs4all.nl]
- Add pg_canonical_ids() and pg_canonical_names(), which returns information
about each column in the result set.
[Warstone warstone at list.ru]
(CPAN ticket #106858)
- Map SQL_NUMERIC to PG_NUMERIC (instead of PG_FLOAT8)
[Alice Maz alice at alizemaz.com]
(CPAN ticket #120358)
- Force real, float, and double precision into SvNVs
[Greg Sabino Mullane]
(CPAN ticket #113683 and other places)
- Support for number of rows greater than an "int". Requires support for same
from a future version of libpq before it will work completely.
[Greg Sabino Mullane]
(CPAN ticket #102444)
- Fix skipped test counts in Win32 builds
[Andy Grundman]
- Allow tests to work against Postgres 8.4 by tweaking client_encoding calls.
[Pavel Raiskup praiskup at redhat.com]
(CPAN ticket #116179)
- Silence warnings in t/02attribs.t and t/04misc.t
[Dagfinn Ilmari Mannsåker]
- Support binary COPY format
[Dagfinn Ilmari Mannsåker]
- Ensure tests do not use $ENV{PGSERVICE} or $ENV{PGDATABASE}
[Erik Rijkers]
- Switched canonical repo to git://github.com/bucardo/dbdpg.git
3.9.0
Features
- cqlengine: remove elements by key from a map
Bug Fixes
- improve error handling when connecting to non-existent keyspace
- Sockets associated with sessions not getting cleaned up on
session.shutdown()
- rare flake on
integration.standard.test_cluster.ClusterTests.test_clone_shared_lbp
- MontonicTimestampGenerator.__init__ ignores class defaults
- race where callback or errback for request may not be called
- cqlengine: model.update() should not update columns with a default
value that hasn't changed
- cqlengine: field value manager's explicit flag is True when queried
back from cassandra
Other
- Connection not closed in example_mapper
- Remove mention of pre-2.0 C* versions from OSS 3.0+ docs
3.8.1
Bug Fixes
- implement __le__/__ge__/__ne__ on some custom types
- Fix bug in eventlet and gevent reactors that could cause hangs
- Fix DecimalType regression
------------------------------------------------------------
The ChangeLog since 5.1.72 is too huge, so the beginning some
lines are listed here:
------------------------------------------------------------
timestamp: Fri 2013-11-01 16:39:19 +0100
message:
Bug#17617945 BUFFER OVERFLOW IN GET_MERGE_MANY_BUFFS_COST WITH SMALL SORT_BUFFER_SIZE
get_cost_calc_buff_size() could return wrong value for the size of imerge_cost_buff.
------------------------------------------------------------
timestamp: Thu 2013-10-31 22:53:56 +0000
message:
BUG#17662398: REMOVE DUPLICATE TEST CASES
Remove duplicate test cases.
------------------------------------------------------------
timestamp: Thu 2013-10-31 23:02:44 +0530
message:
Bug #12917164 DROP USER CAN'T DROP USERS WITH LEGACY
UPPER CASE HOST NAME ANYMORE
Description:
It is not possible to drop users with host names with upper case
letters in them. i.e DROP USER 'root'@'Tmp_Host_Name'; is failing
with error.
Analysis: Since the fix 11748570 we came up with lower case hostnames
as standard. But in the current bug the hostname is created by
mysql_install_db script is still having upper case hostnames.
So, if we have the hostname with upper case letters like(Tmp_Host_Name)
then we will have as it is stored in the mysql.user table.
In this case if use "'DROP USER 'root'@'Tmp_Host_Name';" it gives
error because we do compare with the lower case of hostname since the
11748570 fix.
Fix: We need to convert the hostname to lower case before storing into
the mysql.user table when we run the mysql_install_db script.
------------------------------------------------------------
* Windows builds now use the default runtime libraries (builds use the /MD flag).
* CMake support was added for compiling with Developer Studio 12.6.
* MySQL failed to compile if -DENABLE_DEBUG_SYNC=OFF AND -DWITH_DEBUG=ON were both given. The ENABLE_DEBUG_SYNC option has been removed and enabling WITH_DEBUG enables Debug Sync.
* The --temp-pool server option is deprecated and will be removed in MySQL 8.0.
* Support for DTrace is deprecated and is removed in MySQL 8.0.
* Changes in RPM package structure require a larger set of packages to be removed to install MySQL Server cleanly.
* To avoid potential race conditions, Debian packages now use the GNU install utility rather than a combination of mkdir, touch, and chown.
* The my-default.cnf.sh file (used to produce a default my-default.cnf or my-default.ini file) is no longer included in source distributions and my-default.cnf and my-default.ini are no longer included in or installed by distribution packages.
* Reminder: MySQL 5.7 requires the Microsoft Visual C++ 2013 Redistributable Package to run on Windows platforms. Users should make sure the package has been installed on the system before starting the server. The package is available at the Microsoft Download Center.
* PROCEDURE ANALYSE() syntax is now deprecated and is removed in MySQL 8.0.
* The use of \N as a synonym for NULL in SQL statements is deprecated and is removed in MySQL 8.0. Use NULL instead.
* The linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.2k.
* Windows builds now use the default runtime libraries (builds use the /MD flag).
* CMake support was added for compiling with Developer Studio 12.6.
MySQL failed to compile if -DENABLE_DEBUG_SYNC=OFF AND -DWITH_DEBUG=ON were both given. The ENABLE_DEBUG_SYNC option has been removed and enabling WITH_DEBUG enables Debug Sync.
* Changes in RPM package structure require a larger set of packages to be removed to install MySQL Server cleanly.
* To avoid potential race conditions, Debian packages now use the GNU install utility rather than a combination of mkdir, touch, and chown.
* CMake-generated packaging for Debian/Ubuntu packages was refactored for improved maintainability. The change includes updated logic for correctly replacing native distribution packaging in Debian and Ubuntu.
* Reminder: MySQL 5.6 requires the Microsoft Visual C++ 2010 Redistributable Package to run on Windows platforms. Users should make sure the package has been installed on the system before starting the server. The package is available at the Microsoft Download Center.
* The linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.2k. For a description of issues fixed in this version, see http://www.openssl.org/news/vulnerabilities.html.
* The mysql_options() C API function now supports a MYSQL_OPT_SSL_MODE option.