3.0.20
- Include schema (if specified) when checking for table-existence.
- Correct placement of ORDER BY / LIMIT clauses in compound select
queries.
- Fix bug in back-reference lookups when using filter() API.
- Fix bug in SQL generation for ON CONFLICT queries with Postgres
3.0.19
- Support for more types of mappings in insert_many()
- Lots of documentation improvements.
- Fix bug when calling tuples() on a ModelRaw query. This was reported
originally as a bug with sqlite-web CSV export
0.33.0:
Added support for materialized views in PostgreSQL
Added Ltree.descendant_of and Ltree.ancestor_of
Dropped Python 3.3 support
Fixed EncryptedType padding
asyncpg v0.15.0
Behavior Changes
asyncpg no longer uses the common statement cache for explicit
prepared statements, so Connection.prepare() always returns a
new prepared statement
Bug Fixes
Initialize statement codecs immediately after Prepare
Fix server version parsing when it contains trailing data
version: 0.9.8
Fixed bug where the :meth:.Script.as_revision_number method
did not accommodate for the 'heads' identifier, which in turn
caused the :meth:.EnvironmentContext.get_head_revisions
and :meth:.EnvironmentContext.get_revision_argument methods
to be not usable when multiple heads were present.
The :meth:.EnvironmentContext.get_head_revisions method returns
a tuple in all cases as documented.
Fixed bug where autogenerate of :class:.ExcludeConstraint
would render a raw quoted name for a Column that has case-sensitive
characters, which when invoked as an inline member of the Table
would produce a stack trace that the quoted name is not found.
An incoming Column object is now rendered as sa.column('name').
Fixed bug where the indexes would not be included in a
migration that was dropping the owning table. The fix
now will also emit DROP INDEX for the indexes ahead of time,
but more importantly will include CREATE INDEX in the
downgrade migration.
Fixed the autogenerate of the module prefix
when rendering the text_type parameter of
postgresql.HSTORE, in much the same way that
we do for ARRAY's type and JSON's text_type.
Added support for DROP CONSTRAINT to the MySQL Alembic
dialect to support MariaDB 10.2 which now has real
CHECK constraints. Note this change does **not**
add autogenerate support, only support for op.drop_constraint()
to work.
v3.0.6 released 2018-01-04
New Features
- Improve pt-table-sync support for MyRocks
- pt-stalk now checks the RocksDB status
- pt-mysql-summary contains the RocksDB section
- pt-osc shows a message if trying to set the engine to rocksdb and
binlog_format != row.
- pt-table-checksum skips RocksDB tables.
Known Issues
- The information message implemented for PT-204 has a typo when
referring to the --ignore-engines parameter. This problem is planned
to be fixed in the next release.
- It has been detected that the implementation of PT-205 is not
complete and pt-osc may fail when altering tables. This problem is
planned to be fixed in the next release.
Bug Fixes
- The general log parser cannot handle timestamps which include time
zones
- pt-online-schema-change does not retry on a deadlock error when
using Percona Server 5.7
- pt-table-checksum ignores generated columns
v3.0.5 released 2017-11-20
New Features
- Improve MongoDB Profiler for PMM and PT
- The mongodb-query-digest supports MongoDB versions lower than 3.2;
incorrect output was fixed.
- The pt-summary, pt-mysql-summary, pt-mongodb-summary commands
provide output in the the JSON format.
- pt-mysql-summary shows the output of the Show Slave Hosts command.
- pt-table-sync supports replication channels (requires MySQL version
5.7.6 or higher)
Bug fixes
- pt-mext fails if the Rsa_public_key variable is empty.
- pt-mongodb-query-digest --version produced incorrect values.
- pt-online-schema-change incorrectly processed virtual columns.
- pt-online-schema-change command reported an error when the name of
an index contained ‘unique’ as as the prefix or suffix.
- pt-table-checksum did not detect differences on a system with the
ROW based replication active.
- pt-onine-schema-change --max-load paused if a status variable was
passed 0 as the value.
- pt-table-checksum reported a misleading error if a column comment
contained an apostrophe. For more information, see #1708749.
- In some cases, pt-table-checksum did not report that the same table
contained different values on the master and slave.
- pt-online-schema-change --alter could fail if field names contained
upper case characters. For more information, see #1705998.
- In some cases pt-mongodb-query-digest could not connect to a db
using authentication.
- In some cases, pt-kill could ignore the value of the --busy-time
parameter. For more information, see #1016272.
- When run with the --skip-check-slave-lag, the pt-table-checksum
could fail in some cases.
v3.0.4 released 2017-08-02
New Features
- Added collection of information about prepared statements by
pt-stalk when Performance Schema is enabled. For more information,
- Added the --preserve-triggers option for pt-online-schema-change to
support AFTER triggers.
- Added --output-format option for pt-mongodb-summary to choose
between JSON format and the default plain text.
- Added the --output-format=csv parameter for pt-archiver to archive
rows in CSV format.
- Added the --only-same-schema-fks option for pt-online-schema-change
to check foreigns keys only on tables with the same schema as the
original table. This should speed up the tool’s execution, but keep in
mind that if you have foreign keys referencing tables in other
schemas, they won’t be detected. For more information, see #1690122.
- Added the --check-unique-key-change option for
pt-online-schema-change to abort if the specified statement for
--alter is trying to add a unique index. This is supposed to avoid
adding duplicate keys that might lead to silently losing data.
- Added the --truncate-replicate-table option for pt-table-checksum to
ensure stale data is removed.
Bug fixes
- Fixed pt-table-checksum to support tables that have columns with
different collations or charsets. For more information, see
#1674266.
- Fixed primary key handling by pt-archiver. For more information, see
#1691630.
- Limited constraint name in the new table when running
pt-online-schema-change. For more information, see #1491674.
- Fixed the --no-check-binlog-format option for pt-table-checksum to
work as expected.
- Fixed the use of uninitialized value in printf() for
pt-online-schema-change. For more information, see #1693614.
- Fixed pt-table-sync to prevent field type point to be taken as
decimal.
- Reverted PT-116 to remove the --use-insert-ignore option from
pt-online-schema-change.
- Fixed the --skip-check-slave-lag feature for pt-table-checksum to
safely check for undefined values.
- Fixed regression in --check-slave-lag option for
pt-online-schema-change.
- Fixed regression in --skip-check-slave-lag option for
pt-online-schema-change.
- Fixed syntax error in pt-online-schema-change.
- Improved error messages when attempting to use a database class
for which the corresponding driver is not installed.
- Added tests showing the use of custom operator (a-la the docs).
- Fixed indentation issue in docs
- Fixed issue with the SQLite date_part issue
3.0.17
- Fix schema inheritance regression
- Add helper method to postgres migrator for setting search_path
3.0.16
- Improve model graph resolution when iterating results of a query
- Allow Model._meta.schema to be changed at run-time
What's new in psycopg 2.7.4
- Moving away from installing the wheel package by default.
Packages installed from wheel raise a warning on import. Added package
psycopg2-binary to install from wheel instead.
- Convert fields names into valid Python identifiers in
~psycopg2.extras.NamedTupleCursor.
- Fixed Solaris 10 support.
- cursor.mogrify() can be called on closed cursors.
- Fixed setting session characteristics in corner cases on autocommit
connections.
- Fixed ~psycopg2.extras.MinTimeLoggingCursor on Python 3.
- Fixed parsing of array of points as floats.
- Fixed ~psycopg2.__libpq_version__ building with libpq >= 10.1.
- Fixed ~cursor.rowcount after ~cursor.executemany() with :sql:RETURNING
statements.
- Fixed compatibility problem with pypy3.
- Wheel packages compiled against PostgreSQL 10.1 libpq and OpenSSL 1.0.2n.
- Wheel packages for Python 2.6 no more available (support dropped from
wheel building infrastructure).
This release fixes two security issues. This release also fixes issues with VACUUM, GIN indexes, and hash indexes that could lead to data corruption, as well as fixes for using parallel queries and logical replication.
Security Issues
* CVE-2018-1052: Fix the processing of partition keys containing multiple expressions
* CVE-2018-1053: Ensure that all temporary files made with "pg_upgrade" are non-world-readable
Bug Fixes and Improvements
* Fix crash and potential disclosure of backend memory when processing partition keys containing multiple expressions
* Fix potential disclosure of temporary files containing database passwords created by pg_upgrade by not allowing these files to be world-accessible
* Fix cases where VACUUM would not remove dead rows if they were updated while "key-share" locked, leading to potential data corruption
* Fix for GIN indexes to prevent bloat by ensuring the pending-insertions list is cleaned up by VACUUM
* Fix potential index corruption with hash indexes due to failure to mark metapages as dirty
* Fix several potential crash scenarios for parallel queries, including when a bitmap heap scan cannot allocate memory
* Fix several potential hang-ups in parallel queries, including when a parallel worker fails to start
* Fix collection of EXPLAIN statistics from parallel workers
* Prevent fake deadlock failures when multiple sessions are running CREATE INDEX CONCURRENTLY
* Fix for trigger behavior when using logical replication
* Several fixes for "walsender" functionality to improve stability as well as visibility into the replication process
* Fix logical decoding to correctly clean up disk files for crashed transactions
* Several fixes for identity columns, including disallowing identity columns on tables derived from composite types and partitions
* Fix handling of list partitioning constraints for partition keys of boolean and array types
* Fix incorrectly generated plans for UPDATE and DELETE queries when a table has a mix of inherited regular and foreign child tables
* Fix incorrect query results from cases involving GROUPING SETS when used with flattened subqueries
* Fix UNION/INTERSECT/EXCEPT over zero columns, e.g. "SELECT UNION SELECT;"
* Several fixes for subqueries within a LATERAL subquery
* Several improvements for query planning estimation
* Allow a client that supports SCRAM channel binding, such as a future version of PostgreSQL or libpq, to connect to a PostgreSQL 10 server
* Fix sample INSTR() functions used to help transition from Oracle(r) PL/SQL to PostgreSQL PL/pgSQL to correctly match Oracle functional behavior
* Fix pg_dump to make permissions (ACL), security label, and comment entries reliably identifiable in archive outputs
* Modify behavior for contrib/cube's "cube ~> int" operator to make it compatible with KNN search. This is a backwards incompatible change and any expression indexes or materialized views using this operator will need to be reindexed and refreshed, respectively.
* Several fixes in contrib/postgres_fdw to prevent query planner errors
* Added modern examples of auto-start scripts for PostgreSQL on macOS in the contrib/start-scripts/macos directory
* Several fixes for Windows, including postmaster startup and compatibility with libperl
* Spinlock fixes and support for Motorola 68K and 88K architectures
1.0.5
- Use same schema used for reflection in generated models.
- Preserve pragmas set on deferred Sqlite database if database is
re-initialized without re-specifying pragmas.
1.0.4
- Fix bug creating model instances on Postgres when model does not
have a primary key column.
- Extend postgresql reflection to support array types.
6.2.0
=== Breaking changes
Aggregations::
- Add a new cluster setting to limit the total number of buckets
returned by a request
Core::
- Forbid granting the all permission in production
Highlighting::
- Limit the analyzed text for highlighting
Search::
- Introduce limit to the number of terms in Terms Query
=== Breaking Java changes
Java API::
- Remove `operationThreaded` from Java API
Java High Level REST Client::
- REST high-level client: remove index suffix from indices client
method names
=== Deprecations
Analysis::
- Backport delimited payload filter renaming
Suggesters::
- deprecating `jarowinkler` in favor of `jaro_winkler`
- Deprecating `levenstein` in favor of `levensHtein`
=== New features
Plugin Ingest GeoIp::
- Enable ASN support for Ingest GeoIP plugin.
Plugin Lang Painless::
- Painless: Add spi jar that will be published for extending
whitelists
- Painless: Add a simple cache for whitelist methods and fields.
Plugins::
- Add the ability to bundle multiple plugins into a meta plugin
Rank Evaluation::
- Backport of ranking evaluation API (#27478)
Recovery::
- Backport for using lastSyncedGlobalCheckpoint in deletion policy
Reindex API::
- Add scroll parameter to _reindex API
=== Enhancements
Allocation::
- Fix cluster.routing.allocation.enable and
cluster.routing.rebalance.enable case
- Add node id to shard failure message
Analysis::
- Limit the analyzed text for highlighting (#27934)
- Allow TrimFilter to be used in custom normalizers
Circuit Breakers::
- Add accounting circuit breaker and track segment memory usage
Cluster::
- Adds wait_for_no_initializing_shards to cluster health API
Core::
- Introduce elasticsearch-core jar
- Rename core module to server
- Introduce elasticsearch-core jar
- Add Writeable.Reader support to TransportResponseHandler
- Simplify rejected execution exception
- Add node name to thread pool executor name
Discovery::
- Add information when master node left to DiscoveryNodes'
shortSummary()
Engine::
- Move uid lock into LiveVersionMap
- Optimize version map for append-only indexing
Geo::
- [GEO] Add WKT Support to GeoBoundingBoxQueryBuilder
- [Geo] Add Well Known Text (WKT) Parsing Support to ShapeBuilders
Highlighting::
- Include all sentences smaller than fragment_size in the unified
highlighter
Ingest::
- Enable convert processor to support Long and Double
Internal::
- Make KeyedLock reentrant
- Make AbstractQueryBuilder.declareStandardFields to be protected
- Tighten the CountedBitSet class
- Avoid doing redundant work when checking for self references.
Java API::
- Add missing delegate methods to NodeIndicesStats
- Java api clean-up : consistency for `shards_acknowledged` getters
Java High Level REST Client::
- add toString implementation for UpdateRequest.
- Add Close Index API to the high level REST client
- Add Open Index API to the high level REST client
- Added Create Index support to high-level REST client
- Add multi get api to the high level rest client
- Add msearch api to high level client
Mapping::
- Allow `_doc` as a type.
Network::
- Add NioGroup for use in different transports
- Add read timeouts to http module
- Implement byte array reusage in `NioTransport`
- Introduce resizable inbound byte buffer
- Decouple nio constructs from the tcp transport
Packaging::
- Extend JVM options to support multiple versions
- Add explicit coreutils dependency
- Detect mktemp from coreutils
- Enable GC logs by default
- Use private directory for temporary files
Percolator::
- also extract match_all queries when indexing percolator queries
Plugin Lang Painless::
- Painless: Add whitelist extensions
- Painless: Modify Loader to Load Classes Directly from Definition
- Clean Up Painless Cast Object
- Painless: Only allow Painless type names to be the same as the
equivalent Java class.
Plugins::
- Add client actions to action plugin
- Plugins: Add validation to plugin descriptor parsing
- Plugins: Add plugin extension capabilities
- Add support for filtering mappings fields
Rank Evaluation::
- Simplify RankEvalResponse output
Recovery::
- Truncate tlog cli should assign global checkpoint
- Replica starts peer recovery with safe commit
- Primary send safe commit in file-based recovery
- Fail resync-failed shards in subsequent writes
- Introduce promoting index shard state
- Non-peer recovery should set the global checkpoint
- Persist global checkpoint when finalizing a peer recovery
- Rollback a primary before recovering from translog
Rollover::
- Fail rollover if duplicated alias found in templates
Search::
- Use typeName() to check field type in GeoShapeQueryBuilder
- Optimize search_after when sorting in index sort order
Sequence IDs::
- Do not keep 5.x commits when having 6.x commits
- Use lastSyncedGlobalCheckpoint in deletion policy
- Use CountedBitSet in LocalCheckpointTracker
- Only fsync global checkpoint if needed
- Keep commits and translog up to the global checkpoint
- Adjust CombinedDeletionPolicy for multiple commits
- Keeps index commits up to the current global checkpoint
- Dedup translog operations by reading in reverse
Settings::
- Add validation of keystore setting names
Snapshot/Restore::
- Use AmazonS3.doesObjectExist() method in S3BlobContainer
- Remove XContentType auto detection in BlobStoreRepository
- Include include_global_state in Snapshot status API (#22423)
Task Manager::
- Add ability to associate an ID with tasks
Translog::
- Simplify MultiSnapshot#SeqNoset
- Enclose CombinedDeletionPolicy in SnapshotDeletionPolicy
=== Bug fixes
Aggregations::
- Adds metadata to rewritten aggregations
- Fix NPE on composite aggregation with sub-aggregations that need
scores
- StringTerms.Bucket.getKeyAsNumber detection type
- Fix incorrect results for aggregations nested under a nested
aggregation
- Fix global aggregation that requires breadth first and scores
- Fix composite aggregation when after term is missing in the shard
- Fix preserving FiltersAggregationBuilder#keyed field on rewrite
- Using DocValueFormat::parseBytesRef for parsing missing value
parameter
- Fix illegal cast of the "low cardinality" optimization of the
`terms` aggregation.
- Always include the _index and _id for nested search hits.
Allocation::
- Do not open indices with broken settings
Core::
- Fix lock accounting in releasable lock
- Fixes ByteSizeValue to serialise correctly
- Do not set data paths on no local storage required
- Ensure threadcontext is preserved when refresh listeners are invoked
- Ensure logging is configured for CLI commands
Engine::
- Replica recovery could go into an endless flushing loop
- Use `_refresh` to shrink the version map on inactivity
- Allow resize version map under lock even if there are pending
operations
- Reset LiveVersionMap on sync commit
Geo::
- Correct two equality checks on incomparable types
- Handle case where the hole vertex is south of the containing
polygon(s)
Highlighting::
- Fix highlighting on a keyword field that defines a normalizer
Inner Hits::
- Add version support for inner hits in field collapsing (#27822)
Internal::
- Never return null from Strings.tokenizeToStringArray
- Fallback to TransportMasterNodeAction for cluster health retries
- Retain originalIndex info when rewriting FieldCapabilities requests
Java REST Client::
- Do not use system properties when building the HttpAsyncClient
Mapping::
- Ignore null value for range field (#27845)
- Pass `java.locale.providers=COMPAT` to Java 9 onwards
- Allow update of `eager_global_ordinals` on `_parent`.
- Fix merging of _meta field
Network::
- Only bind loopback addresses when binding to local
- Remove potential nio selector leak
- Fix issue where the incorrect buffers are written
- Throw UOE from compressible bytes stream reset
- Bubble exceptions when closing compressible streams
Packaging::
- Allow custom service names when installing on windows
Percolator::
- Avoid TooManyClauses exception if number of terms / ranges is
exactly equal to 1024
Plugin Analysis ICU::
- Catch InvalidPathException in IcuCollationTokenFilterFactory
Plugin Analysis Phonetic::
- Fix daitch_mokotoff phonetic filter to use the dedicated Lucene
filter
Plugin Lang Painless::
- Painless: Fix variable scoping issue in lambdas
- Painless: Fix errors allowing void to be assigned to def.
Plugin Repository HDFS::
- Fix SecurityException when HDFS Repository used against HA Namenodes
Plugins::
- Make sure that we don't detect files as maven coordinate when
installing a plugin
- Fix upgrading indices which use a custom similarity plugin.
Recovery::
- Open engine should keep only starting commit
- Allow shrinking of indices from a previous major
- Set global checkpoint before open engine from store
- Check and repair index under the store metadata lock
- Flush old indices on primary promotion and relocation
Rollover::
- Make index rollover action atomic
Scripting::
- Ensure we protect Collections obtained from scripts from
self-referencing
Scroll::
- Reject scroll query if size is 0 (#22552)
- Fix scroll query with a sort that is a prefix of the index sort
Search::
- Fix simple_query_string on invalid input
- Use the underlying connection version for CCS connections
- Fix synonym phrase query expansion for cross_fields parsing
- Carry forward weights, etc on rescore rewrite
- Fix routing with leading or trailing whitespace
Sequence IDs::
- Recovery from snapshot may leave seq# gaps
- No longer unidle shard during recovery
- Obey translog durability in global checkpoint sync
Settings::
- Settings: Introduce settings updater for a list of settings
- Fix setting notification for complex setting (affixMap settings)
that could cause transient settings to be ignored
- Fix environment variable substitutions in list setting
- Allow index settings to be reset by wildcards
Snapshot/Restore::
- Consistent updates of IndexShardSnapshotStatus
- Avoid concurrent snapshot finalizations when deleting an INIT
snapshot
- Do not start snapshots that are deleted during initialization
- Do not swallow exception in ChecksumBlobStoreFormat.writeAtomic()
- Consistent update of stage and failure message in
IndexShardSnapshotStatus
- Fail restore when the shard allocations max retries count is reached
- Delete shard store files before restoring a snapshot
Stats::
- Fixes DocStats to properly deal with shards that report -1 index
size
- Include internal refreshes in refresh stats
Term Vectors::
- Fix term vectors generator with keyword and normalizer
=== Upgrades
Core::
- Dependencies: Update joda time to 2.9.9
- upgrade to lucene 7.2.1
- Upgrade jna from 4.4.0-1 to 4.5.1
Ingest::
- update ingest-attachment to use Tika 1.17 and newer deps
6.1.3
Engine::
- Replica recovery could go into an endless flushing loop
Internal::
- Never return null from Strings.tokenizeToStringArray
- Fallback to TransportMasterNodeAction for cluster health retries
Mapping::
- Allow update of `eager_global_ordinals` on `_parent`.
Scripting::
- Ensure we protect Collections obtained from scripts from
self-referencing
Settings::
- Fix setting notification for complex setting (affixMap settings)
that could cause transient settings to be ignored
- Fix environment variable substitutions in list setting
Snapshot/Restore::
- Avoid concurrent snapshot finalizations when deleting an INIT
snapshot
- Do not start snapshots that are deleted during initialization
3.0.13
- Fix bug where simple field aliases were being ignored.
- More strict about column type inference for postgres + pwiz.
3.0.12
- Fix queries of the form INSERT ... VALUES (SELECT...) so that
sub-select is wrapped in parentheses.
- Improve model-graph resolution when selecting from multiple tables
that are joined by foreign-keys, and an intermediate table is
omitted from selection.
- Docs update to reflect deletion of post_init signal.
3.0.11
- Add note to changelog about cursor() method.
- Add hash method to postgres indexedfield subclasses.
- Add TableFunction to sqlite_ext module namespace.
- Fix bug regarding NOT IN queries where the right-hand-side is an
empty set.
- Fallback implementations of bm25f and lucene search ranking
algorithms.
- Fixed DecimalField issue.
- Fixed issue with BlobField when database is a Proxy object.
- Fix Database.drop_tables() signature to support cascade argument
- Fix querying documentation for custom functions
- Added len() method to ModelBase for convenient counting.
- Fix bug related to unsaved relation population (thanks @conqp)
- Fix count() on compound select
- Support coerce keyword argument with fn.XXX()
- Support updating existing model instance with dict_to_model-like API
- Fix equality tests with ArrayField
3.0.9
- Add deprecation notice if passing autocommit as keyword argument to
the Database initializer.
- Add JSONPath and "J" helpers to sqlite extension.
3.0.8
- Add support for passing cascade=True when dropping tables.
- Fix issues with backrefs and inherited foreign-keys.
3.0.7
- Add select_extend() method to extend existing SELECT-ion.
- Accept set() as iterable value type
- Add test for model/field inheritance and fix bug relating to
recursion error when inheriting foreign-key field.
- Fix regression where consecutive calls to ModelSelect.select() with
no parameters resulted in an empty selection.
3.0.6
- Add constraints for ON UPDATE/ON DELETE to foreign-key constraint
3.0.5
- Adds Model.index(), a short-hand method for declaring ModelIndex
instances.
3.0.4
- Re-add a shim for PrimaryKeyField (renamed to AutoField) and log a
deprecation warning if you try to use it
3.0.3
- Includes fix for bug where column-name to field-name translation was
not being done when running select queries on models whose field
name differed from the underlying column name.
3.0.2
- Fixes missing pysqlite header files, which are needed to compile
certain C extensions.
3.0.0
- Complete rewrite of SQL AST and code-generation.
- Inclusion of new, low-level query builder APIs.
- List of backwards-incompatible changes since 2.x:
http://docs.peewee-orm.com/en/latest/peewee/changes.html
Upstream changes:
1.85 - 2018-01-27
- Restore perl version requirement missed in the Distar port
- Factor out the SET ... part of UPDATE for subclassability (GH#12)
Upstream changes:
Changes in DBI 1.640 - 28th January 2018
Fix test t/91_store_warning.t for perl 5.10.0
thanks to pali #57
Add Perl 5.10.0 and 5.8.1 specific versions to Travis testing
thanks to pali #57
Add registration of mariadb_ prefix for new DBD::MariaDB driver
thanks to pali #56
- Many 32 bit overflows were addressed in order to allow to use Redis with
a very significant amount of data, memory size permitting.
- MEMORY USAGE fixed for the list type.
- Allow read-only scripts in Redis Cluster.
- Fix AOF pipes setup in edge case.
- AUTH option for MIGRATE.
- HyperLogLogs are no longer converted from sparse to dense in order
to be merged.
- Fix AOF rewrite dead loop under edge cases.
- Fix processing of large bulk strings (>= 2GB).
- Added RM_UnlinkKey in modules API.
- Fix Redis Cluster crashes when certain commands with a variable number
of arguments are called in an improper way.
- Fix memory leak in lazyfree engine.
- Fix many potentially successful partial synchronizations that end
doing a full SYNC, because of a bug destroying the replication
backlog on the slave. So after a failover the slave was often not able
to PSYNC with masters, and a full SYNC was triggered. The bug only
happened after 1 hour of uptime so escaped the unit tests.
- Improve anti-affinity in master/slave allocation for Redis Cluster
when the cluster is created.
- Improve output buffer handling for slaves, by not limiting the amount
of writes a slave could receive.
1.2.2:
orm
[orm] [bug] Fixed 1.2 regression regarding new bulk_replace event where a backref would fail to remove an object from the previous owner when a bulk-assignment assigned the object to a new owner.
mysql
[mysql] [bug] Added more MySQL 8.0 reserved words to the MySQL dialect for quoting purposes. Pull request courtesy Riccardo Magliocchetti.
mssql
[mssql] [bug] Added ODBC error code 10054 to the list of error codes that count as a disconnect for ODBC / MSSQL server.
oracle
[oracle] [bug] The cx_Oracle dialect now calls setinputsizes() with cx_Oracle.NCHAR unconditionally when the NVARCHAR2 datatype, in SQLAlchemy corresponding to sqltypes.Unicode(), is in use. Per cx_Oracle’s author this allows the correct conversions to occur within the Oracle client regardless of the setting for NLS_NCHAR_CHARACTERSET.
Version 1.14.1 - 2018-01-03
* Increment soname current version number.
Version 1.14 - 2018-01-01
* Make sure created databases are byte-for-byte reproducible
This fixes two longstanding bugs: (1) when allocating database file
header blocks, the unused memory is filled with zeroes; (2) when expanding
a mmapped memory area, the added extent is filled with zeroes.
* Fix build with --enable-gdbm-export
* Make gdbm_error global variable thread safe.
* Fix possible segmentation violation in gdbm_setopt
* Fix handling of group headers in --help output.
Upstream changes:
2.033004 2018-01-26 09:33:20-08:00 America/Los_Angeles
- Fix ::RemoveColumns and ::AutoRemoveColumns to not wreak havoc when select/as
is used (Thanks Vladimir Melnik for test and ribasushi for hint at fix!)
- Allow easily subclassing types to be skipped in ::ToJSON
(Thanks Paul Williams!) (closes GH#79 and GH#80)
0.8:
* **BACKWARD INCOMPATIBLE** binary_prefix option is added and off
by default because of compatibility with mysqlclient.
When you need PyMySQL 0.7 behavior, you have to pass binary_prefix=True.
* **BACKWARD INCOMPATIBLE** MULTI_STATEMENTS client flag is no longer
set by default, while it was on PyMySQL 0.7. You need to pass
client_flag=CLIENT.MULTI_STATEMENTS when you connect to explicitly
enable multi-statement mode.
* Fixed AuthSwitch packet handling.
* Raise OperationalError for MariaDB's constraint error.
* executemany() accepts query without space between VALUES and (.
* Support config file containing option without value.
* Fixed Connection.ping() returned unintended value.
Release 3.22.0:
The output of sqlite3_trace_v2() now shows each individual SQL statement run within a trigger.
Add the ability to read from WAL mode databases even if the application lacks write permission on the database and its containing directory, as long as the -shm and -wal files exist in that directory.
Added the rtreecheck() scalar SQL function to the R-Tree extension.
Added the sqlite3_vtab_nochange() and sqlite3_value_nochange() interfaces to help virtual table implementations optimize UPDATE operations.
Added the sqlite3_vtab_collation() interface.
Added support for the "^" initial token syntax in FTS5.
New extensions:
The Zipfile virtual table can read and write a ZIP Archive.
Added the fsdir(PATH) table-valued function to the fileio.c extension, for listing the files in a directory.
The sqlite_btreeinfo eponymous virtual table for introspecting and estimating the sizes of the btrees in a database.
The Append VFS is a VFS shim that allows an SQLite database to be appended to some other file. This allows (for example) a database to be appended to an executable that then opens and reads the database.
Query planner enhancements:
The optimization that uses an index to quickly compute an aggregate min() or max() is extended to work with indexes on expressions.
The decision of whether to implement a FROM-clause subquery as a co-routine or using query flattening now considers whether the result set of the outer query is "complex" (if it contains functions or expression subqueries). A complex result set biases the decision toward the use of co-routines.
The planner avoids query plans that use indexes with unknown collating functions.
The planner omits unused LEFT JOINs even if they are not the right-most joins of a query.
Other performance optimizations:
A smaller and faster implementation of text to floating-point conversion subroutine: sqlite3AtoF().
The Lemon parser generator creates a faster parser.
Use the strcspn() C-library routine to speed up the LIKE and GLOB operators.
Improvements to the command-line shell:
The ".schema" command shows the structure of virtual tables.
Added support for reading and writing SQL Archive files using the .archive command.
Added the experimental .expert command
Added the ".eqp trigger" variant of the ".eqp" command
Enhance the ".lint fkey-indexes" command so that it works with WITHOUT ROWID tables.
If the filename argument to the shell is a ZIP archive rather than an SQLite database, then the shell automatically opens that ZIP archive using the Zipfile virtual table.
Added the edit() SQL function.
Added the .excel command to simplify exporting database content to a spreadsheet.
Databases are opened using Append VFS when the --append flag is used on the command line or with the .open command.
Enhance the SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option so that it works for WITHOUT ROWID tables.
Provide the sqlite_offset(X) SQL function that returns the byte offset into the database file to the beginning of the record holding value X, when compiling with -DSQLITE_ENABLE_OFFSET_SQL_FUNC.
Bug fixes
2.4.1:
- tested against pyasn1 from version 0.1.8 up to version 0.4.2, Python 2.6.6, Python 2.7.14, Python 3.6.4
- auto_encode parameter is honored when binding
- fixed organizationalName definition in oid
- automatic byte to int conversion working again
- mock connection searchs correctly escape filters
- fixed bind with not unicode characters in Python 2
- extended filter attributes should work again with pyasn1 0.4.1
- fixed error when reading incomplete server info
- NOT keyword properly handled in dit_content_rules
- operational attributes are prorerly returned in Cursor whit get_operational_attributes = True
- start_tls() is properly executed with AD when raise_exceptions=True
- reopening a Connection honours auto_bind setting
- an attribute returned with no value from a flaky server doesn't raise exception anymore
- pwdLastSet in AD is valid only for -1
- fixed docs for ldifProducer
- fixed monkeypatching of pyasn1 for Boolean Value in BER encoding
- check_names was not honoured while validating attribute values
- locks refactored in Connection and in Async strategy
- socket properly closed when checking availability of an invalid server
== 6.1.2
=== Enhancements
Internal::
- Make AbstractQueryBuilder.declareStandardFields to be protected
=== Bug fixes
Aggregations::
- Fix incorrect results for aggregations nested under a nested
aggregation
- Fix composite aggregation when after term is missing in the shard
- Fix preserving FiltersAggregationBuilder#keyed field on rewrite
Engine::
- Use `_refresh` to shrink the version map on inactivity
- Allow resize version map under lock even if there are pending
operations
Network::
- Only bind loopback addresses when binding to local
Recovery::
- Allow shrinking of indices from a previous major
Search::
- Use the underlying connection version for CCS connections
- Carry forward weights, etc on rescore rewrite
Snapshot/Restore::
- Fail restore when the shard allocations max retries count is reached
Translog::
- Only sync translog when global checkpoint increased
== 6.1.1
=== Enhancements
Snapshot/Restore::
- Use AmazonS3.doesObjectExist() method in S3BlobContainer
=== Bug fixes
Inner Hits::
- Add version support for inner hits in field collapsing
Java REST Client::
- Do not use system properties when building the HttpAsyncClient
Search::
- Fix routing with leading or trailing whitespace
Sequence IDs::
- Recovery from snapshot may leave seq# gaps
- No longer unidle shard during recovery
=== Upgrades
Ingest::
- update ingest-attachment to use Tika 1.17 and newer deps
Add missing DEPENDS
Upstream changes:
0.07048 2018-01-20
- Fix for PostgreSQL enums not in the schema search path (RT#123234)
- Fix 'default now()' test for PostgreSQL v10
- Work around incompatible change in Hash::Merge (GH#16)
- Fix skip count for non-InnoDB MySQL test
1.2.1:
[orm] [bug] Fixed bug where an object that is expunged during a rollback of a nested or subtransaction which also had its primary key mutated would not be correctly removed from the session, causing subsequent issues in using the session.
[orm] [bug] Fixed regression where pickle format of a Load / _UnboundLoad object (e.g. loader options) changed and __setstate__() was raising an UnboundLocalError for an object received from the legacy format, even though an attempt was made to do so. tests are now added to ensure this works.
[orm] [bug] Fixed regression caused by new lazyload caching scheme in 3954 where a query that makes use of loader options with of_type would cause lazy loads of unrelated paths to fail with a TypeError.
[orm] [bug] Fixed bug in new “selectin” relationship loader where the loader could try to load a non-existent relationship when loading a collection of polymorphic objects, where only some of the mappers include that relationship, typically when PropComparator.of_type() is being used.
sql
[sql] [bug] Fixed bug in Insert.values() where using the “multi-values” format in combination with Column objects as keys rather than strings would fail. Pull request courtesy Aubrey Stark-Toller.
mssql
[mssql] [bug] Fixed regression in 1.2 where newly repaired quoting of collation names in 3785 breaks SQL Server, which explicitly does not understand a quoted collation name. Whether or not mixed-case collation names are quoted or not is now deferred down to a dialect-level decision so that each dialect can prepare these identifiers directly.
oracle
[oracle] [bug] Fixed regression where the removal of most setinputsizes rules from cx_Oracle dialect impacted the TIMESTAMP datatype’s ability to retrieve fractional seconds.
[oracle] [bug] Fixed regression in Oracle imports where a missing comma caused an undefined symbol to be present. Pull request courtesy Miroslav Shubernetskiy.
misc
[bug] [ext] Fixed regression in association proxy due to 3769 (allow for chained any() / has()) where contains() against an association proxy chained in the form (o2m relationship, associationproxy(m2o relationship, m2o relationship)) would raise an error regarding the re-application of contains() on the final link of the chain.
[bug] [tests] Removed an oracle-specific requirements rule from the public test suite that was interfering with third party dialect suites.
[bug] [tests] Added a new exclusion rule group_by_complex_expression which disables tests that use “GROUP BY <expr>”, which seems to be not viable for at least two third party dialects.
0.9.7
[bug] [autogenerate] Fixed regression caused by 421 which would cause case-sensitive quoting rules to interfere with the comparison logic for index names, thus causing indexes to show as added for indexes that have case-sensitive names. Works with SQLAlchemy 0.9 and later series.
[bug] [autogenerate] [postgresql] Fixed bug where autogenerate would produce a DROP statement for the index implicitly created by a Postgresql EXCLUDE constraint, rather than skipping it as is the case for indexes implicitly generated by unique constraints. Makes use of SQLAlchemy 1.0.x’s improved “duplicates index” metadata and requires at least SQLAlchemy version 1.0.x to function correctly.
MySQL 5.7.21
Audit Log Notes
* MySQL Enterprise Audit now supports compression and encryption of audit log files. Encryption is based on a user-defined password. To use this feature, the MySQL keyring must be enabled because audit logging uses it for password storage. MySQL Enterprise Audit also now supports logging in JSON format, in addition to the existing XML formats. For JSON format, functions are available that provide runtime log reading capabilities. For additional information, see MySQL Enterprise Audit.
Configuration Notes
* For RHEL, SLES, and Fedora RPMs, the default plugin directory for debug builds has been changed from /usr/lib64/mysql/plugin to /usr/lib64/mysql/plugin/debug.
* The installation scripts for MySQL Enterprise Audit and MySQL Enterprise Firewall now create their associated tables in the mysql system database as InnoDB rather than MyISAM tables.
* The hardcoded memory page size of 8KB for the memory-mapped transaction coordinator was too small for platforms such as ARM64 and PowerPC where the page size is much larger. The server now invokes a system call to get the page size of the current platform rather than using a hardcoded value. A consequence for the --log-tc-size option is that the minimum and default values are now 6 times the page size. Also, the value must be a multiple of the page size. Thanks to Alexey Kopytov for the patch.
Performance Schema Notes
* The Performance Schema setup_timers table is now deprecated, to be removed in MySQL 8.0, as is the TICK row in the performance_timers table.
Pluggable Authentication
* For the LDAP authentication plugins, handling of the group search attribute indicated by the authentication_ldap_sasl_group_search_attr and authentication_ldap_simple_group_search_attr system variables is more flexible. If the group search attribute is isMemberOf, LDAP authentication directly retrieves the user attribute isMemberOf value and assign it as group information. If the group search attribute is not isMemberOf, LDAP authentication searches for all groups where the user is a member. (The latter is the default behavior.) This behavior is based on how LDAP group information can be stored two ways: 1) A group entry can have an attribute named memberUid or member with a value that is a user name; 2) A user entry can have an attribute named isMemberOf with values that are group names.
* The LDAP authentication plugins now permit the authentication string that provides user DN information to begin with a + character. In the absence of this character, the authentication string value is treated as is without modification, as it has been previously. If the authentication string begins with +, the plugin constructs the full user DN value from the account user name as the cn attribute value, together with the authentication string (with the + removed). The authentication string is stored as given in the mysql.user system table, with the full user DN constructed on the fly before authentication.
* For the LDAP authentication plugins, the group search attribute was fixed and not configurable. Two new system variables now enable using custom group filters: authentication_ldap_sasl_group_search_filter and authentication_ldap_simple_group_search_filter.
Security Notes
* Incompatible Change: Passwords are now restricted to a maximum of 256 characters for the sha256_password authentication plugin, and for the PASSWORD() function when old_passwords=2. Also, the number of password hashing rounds is capped to limit CPU time used.
* The linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.2n. Issues fixed in the new OpenSSL version are described at http://www.openssl.org/news/vulnerabilities.html.
* This change does not affect the Oracle-produced MySQL Community build of MySQL Server, which uses the yaSSL library instead.
* MySQL now supports key migration between underlying keyring keystores. This enables DBAs to switch a MySQL installation from one keyring plugin to another. See Migrating Keys Between Keyring Keystores.
* MySQL Enterprise Edition now includes a keyring plugin, keyring_encrypted_file, that is similar to the keyring_file plugin in its use of a local data file for key storage, but that also encrypts the file based on a user-defined password. See Using the keyring_encrypted_file Keyring Plugin.
MySQL 5.6.39
Configuration Notes
* For RHEL, SLES, and Fedora RPMs, the default plugin directory for debug builds has been changed from /usr/lib64/mysql/plugin to /usr/lib64/mysql/plugin/debug.
Security Notes
* Incompatible Change: Passwords are now restricted to a maximum of 256 characters for the sha256_password authentication plugin, and for the PASSWORD() function when old_passwords=2. Also, the number of password hashing rounds is capped to limit CPU time used.
* The linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.2n. Issues fixed in the new OpenSSL version are described at http://www.openssl.org/news/vulnerabilities.html.
* This change does not affect the Oracle-produced MySQL Community build of MySQL Server, which uses the yaSSL library instead.
Test Suite Notes
* Documentation for the MySQL Test Suite is now maintained in the MySQL source tree using Doxygen (see http://dev.mysql.com/doc/dev/mysql-server/latest/PAGE_MYSQL_TEST_RUN.html). The related Unix man pages that previously were produced from the old test suite manual are no longer updated and have gone out of date. Consequently, they are no longer included in MySQL distributions.
Bugs Fixed
* InnoDB: An ALTER TABLE operation caused the server to halt.
* InnoDB: A FLUSH TABLES operation failed to drop an aborted index. While removing the table from the cache, the clustered index was dropped prior to checking for the aborted index.
* InnoDB: Warnings that should only appear in a debug version of MySQL were printed to the error log when the length of the history list exceeded 2000000.
* InnoDB: Full-text search on indexed columns that use a binary collation did not return case sensitive matches.
* Partitioning: In certain cases when fetching heap records a partition ID could be set to zero.
* Replication: With semisynchronous replication in use, if RESET MASTER was issued while an active transaction was waiting for an acknowledgement from the slave, the count of waiting sessions in the Rpl_semi_sync_master_wait_sessions server status variable was incorrect after the wait was completed.
* Microsoft Windows: On Windows, with the myisam_use_mmap and flush system variables enabled, MyISAM did not always flush table files properly.
* Microsoft Windows: On Windows, resolution was improved of a timer used for query performance assessment.
* VALUES() was not handled correctly in some cases.
* The Performance Schema now stores rewritten rather than raw SQL statement text when available.
* Incorrect results or a server exit could result when SHA2() was passed a user-defined variable in some character sets.
* Creating a table with excessive index information could cause a server exit.
* REFERENCES privilege checking could use the incorrect database in some cases.
* Some statements could cause a buffer overflow in the digest code. Thanks to Laurynas Biveinis and Roel van de Paar for the patch.
* Incorrect results could occur on a table with a unique index when the optimizer chose a loose index scan even though the unique index had no index extensions.
* Executing a stored procedure containing a statement that created a table from the contents of certain SELECT statements could result in a memory leak.
* For geometry calculations, invalid input parameters could lead to an incorrect result buffer and cause an assertion to be raised or a server exit.
* Setting the MYSQL_GROUP_SUFFIX environment variable had no effect.
* A circular dependency problem involving sql/sql_builtin.cc was resolved.
* A prepared statement containing an ORDER BY list that referred to a parameter was not always handled correctly.
MySQL 5.5.59:
Configuration Notes
* For RHEL, SLES, and Fedora RPMs, the default plugin directory for debug builds has been changed from /usr/lib64/mysql/plugin to /usr/lib64/mysql/plugin/debug.
Test Suite Notes
* Documentation for the MySQL Test Suite is now maintained in the MySQL source tree using Doxygen (see http://dev.mysql.com/doc/dev/mysql-server/latest/PAGE_MYSQL_TEST_RUN.html). The related Unix man pages that previously were produced from the old test suite manual are no longer updated and have gone out of date. Consequently, they are no longer included in MySQL distributions.
Bugs Fixed
* InnoDB: Warnings that should only appear in a debug version of MySQL were printed to the error log when the length of the history list exceeded 2000000.
* Packaging: Initialization of the MySQL Server Docker container failed with the message “hostname: command not found” when the server was being initialized. That was due to a missing library in the Docker image.
* Partitioning: Queries involving NULL were not always handled correctly on tables that were partitioned by LIST.
* Microsoft Windows: On Windows, with the myisam_use_mmap and flush system variables enabled, MyISAM did not always flush table files properly.
* VALUES() was not handled correctly in some cases.
* Incorrect results or a server exit could result when SHA2() was passed a user-defined variable in some character sets.
* Creating a table with excessive index information could cause a server exit.
* Setting the MYSQL_GROUP_SUFFIX environment variable had no effect.
* A circular dependency problem involving sql/sql_builtin.cc was resolved.
* A prepared statement containing an ORDER BY list that referred to a parameter was not always handled correctly.