The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 11.1, 10.6, 9.6.11, 9.5.15, 9.4.20, and 9.3.25. This release fixes one security issue as well as bugs reported over the last three months.
All users using the affected versions of PostgreSQL should update as soon as possible. Please see the notes on "Updating" below for any post-update steps that may be required if you are using pg_stat_statements in your installation.
This update is also the final release for PostgreSQL 9.3, which is now end-of-life and will no longer receive any bug or security fixes. If your environment still uses PostgreSQL 9.3, please make plans to update to a community supported version as soon as possible. Please see our versioning policy for more information.
Security Issues
One security vulnerability has been closed by this release:
CVE-2018-16850: SQL injection in pg_upgrade and pg_dump, via CREATE TRIGGER ... REFERENCING.
Versions Affected: 10, 11
Using a purpose-crafted trigger definition, an attacker can run arbitrary SQL statements with superuser privileges when a superuser runs pg_upgrade on the database or during a pg_dump dump/restore cycle. This attack requires a CREATE privilege on some non-temporary schema or a TRIGGER privilege on a table. This is exploitable in the default PostgreSQL configuration, where all users have CREATE privilege on public schema.
Bug Fixes and Improvements
This update also fixes numerous bugs that were reported in the last several months. Some of these issues affect only version 11, but many affect all supported versions.
These releases include fixes that:
Ensure that automatically created child indexes are created in the same tablespace as the parent partitioned index
Fix several crashes with triggers
Fix problems with applying ON COMMIT DELETE ROWS to a partitioned temporary table
Fix how NULL values are handled when using LEFT JOIN with a parallelized hash join
Several fixes around using named or defaulted arguments in CALL statements
Fix for strict aggregate functions (i.e. aggregates that cannot accept NULL inputs) with ORDER BY columns that enforces the strictness check
Fix with CASE statements where an expression was cast to an array type
Disable an optimization for updating expression indexes in order to prevent a crash
Fix a memory leak that occurred on a specific case of using a SP-GiST index
Fix for pg_verify_checksums incorrectly reporting on files that are not expected to have checksums
Prevent the PostgreSQL server from starting when wal_level is set to a value that cannot support an existing replication slot
Ensure that the server will process already-received NOTIFY and SIGTERM interrupts before waiting for client input
Allow PL/Ruby to work with newer versions of PostgreSQL
Fix for character-class checks on Windows for Unicode characters above U+FFFF, which affected full-text search as well as contrib/ltree and contrib/pg_trgm
Fix a case where psql would not report the receipt of a message from a NOTIFY call until after the next command
Fix build problems on macOS 10.14 (Mojave)
Several build fixes for the Windows platform
This updates also contains tzdata release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia (Volgograd), plus historical corrections for China, Hawaii, Japan, Macau, and North Korea.
SQLite Release 3.25.3:
Disallow the use of window functions in the recursive part of a CTE.
Fix the behavior of typeof() and length() on virtual tables.
Strengthen defenses against deliberately corrupted database files.
Fix a problem in the query planner that results when a row-value expression is used with a PRIMARY KEY with redundant columns.
Fix the query planner so that it works correctly for IS NOT NULL operators in the ON clause of a LEFT JOIN with the SQLITE_ENABLE_STAT4 compile-time option.
asyncpg v0.18.1:
Fix DSN parsing regression
asyncpg v0.18.0:
Improvements
Implement Record.get()
Internal asyncpg errors are now consistently raised as InternalClientError
Allow mappings as composite type input
Add BitString.to_int() and BitString.from_int()
Allow 'sslmode' in DSNs
Add support for specifying multiple host addresses when connecting
Low-level protocol implementation has been tweaked and
optimized for slightly better performance in certain scenarios
Queries with cached statements now generate fewer TCP packets
Allow aliasing builtin types by name in set_builtin_type_codec()
Factor out generic PostgreSQL protocol helpers into a separate package
Fix tests and enable CI for PostgreSQL 11
Bug Fixes
Handle and ignore permission errors when attempting to read .pgpass
Fix decoding of fractional timestamps before Postgres epoch
* pkgsrc change: make USE_LANGUAGES empty.
=== 5.14.0 (2018-11-01)
* Drop defaulting the :port option to 5432 in the postgres adapter, so that
setting the :service option in :driver_options works (jeremyevans) (#1558)
* Do not cache values for columns without parseable defaults when using :cache
option in defaults_setter plugin (jeremyevans)
* Emulate NULLS FIRST/LAST ordering on databases that do not natively support
it (jeremyevans)
* Do not modify boolean expressions created from string or array if string or
array is modified (jeremyevans)
* Make roots and roots_dataset dataset methods instead of class methods in the
tree plugin (JelF) (#1554)
* Do not cache dataset SQL if dataset uses subquery that cannot cache SQL
(jeremyevans)
* Make Model#=== work correctly for models with composite primary keys
(jeremyevans)
* Add Model#pk_equal? as a more descriptive name for Model#=== (AlexWayfer)
(#1550)
* Do not push down expression inversion in cases where it may result in
incorrect behavior (e.g. ANY/SOME/ALL operators) (jeremyevans) (#1549)
1.0.2:
[bug] [autogenerate] The system=True flag on Column, used primarily in conjunction with the Postgresql “xmin” column, now renders within the autogenerate render process, allowing the column to be excluded from DDL. Additionally, adding a system=True column to a model will produce no autogenerate diff as this column is implicitly present in the database.
[bug] [mssql] Fixed issue where usage of the SQL Server mssql_include option within a Operations.create_index() would raise a KeyError, as the additional column(s) need to be added to the table object used by the construct internally.
Upstream changes:
Changes in DBI 1.642 - 28th October 2018
Fix '.' in @INC for proxy test under parallel load
thanks to H.Merijn Brand.
Fix driver-related croak() in DBI->connect to report the original DSN
thanks to maxatome #67
Introduce a new statement DBI method $sth->last_insert_id()
thanks to pali #64
Allow to call $dbh->last_insert_id() method without arguments
thanks to pali #64
Added a new XS API function variant dbd_db_do6()
thanks to Pali #61
Fix misprints in doc of selectall_hashref
thanks to Perlover #69
Remove outdated links to DBI related training resources. RT#125999
In all cases they were trying to use variables that aren't used in the build
process, the sqlite include paths had typos, and sqlite3 was trying to use
sqlite2's buildlink3.mk
repmgr 4.2 is a major release, with the main new feature being the ability to pause repmgrd, e.g. during planned maintenance operations. Various other usability enhancements and a couple of bug fixes are also included.
PostgreSQL 11 provides users with improvements to overall performance of the database system, with specific enhancements associated with very large databases and high computational workloads. Further, PostgreSQL 11 makes significant improvements to the table partitioning system, adds support for stored procedures capable of transaction management, improves query parallelism and adds parallelized data definition capabilities, and introduces just-in-time (JIT) compilation for accelerating the execution of expressions in queries.
Released 3.1.0:
This release brings two minor API changes:
- Long-deprecated functions ldap.open() and ldap.init() are removed
- LDAPObject.compare_s() and compare_ext_s return bool instead of 0 or 1
All changes since 3.0.0:
Lib/
* Remove long deprecated functions ldap.open() and ldap.init()
* LDAPObject.compare_s() and LDAPObject.compare_ext_s() now return a bool
instead of 1 or 0.
* Make iteration over cidict yield same values as keys()
* Fail if pyasn1 is not installed
* Fix parsing of PPolicyControl ASN.1 structure
* Use items() when appropriate in dict iteration
* Add support for tracing LDAP calls. Tracing can now be enabled with
the env var PYTHON_LDAP_TRACE_LEVEL and redirected to a file with
PYTHON_LDAP_TRACE_FILE.
(This is mainly intended for debugging and internal testing; the
configuration or output may change in future versions.)
Modules/
* Fix ref counting bug in LDAPmessage_to_python
Doc/
* Remove warning about unreleased version
* Doc: Replace Mac OS X -> macOS
Tests/
* Add tests and coverage for tracing
* Disable warnings-as-errors for Python 3.4
* Fix assertTrue to assertEqual
* Mark several test values as bytes
Lib/slapdtest/
* Fix error message for missing commands
* Make SlapdObject a context manager
* Disable SASL external when missing SASL support
* Make SlapdObject.root_dn a property
* In SlapdObject, build include directives dynamically
* Move import statements to top level
Code style:
* Add Makefile rules for automatic formatting of C and Python code
* Reformat and indent all C files
* Trim white space throughout the project
Infrastructure:
* Add py3-trace tox environment to Travis CI config
* Add new Pytest cache directory to gitignore
General:
* Update all pypi.python.org URLs to pypi.org
Released 3.0.0:
Notable changes since 2.4.45 (please see detailed logs below):
* Python 3 support and bytes_mode
see: https://python-ldap.readthedocs.io/en/latest/bytes_mode.html
* The module ldap.async is renamed to ldap.asyncsearch
* New dependencies: pyasn1, pyasn1_modules
* Dropped support for Python 2.6 and 3.3
1.0.1:
Fixed an issue where revision descriptions were essentially being formatted twice. Any revision description that contained characters like %, writing output to stdout will fail because the call to config.print_stdout attempted to format any additional args passed to the function. This fix now only applies string formatting if any args are provided along with the output text.
Fixed issue where removed method union_update() was used when a customized MigrationScript instance included entries in the .imports data member, raising an AttributeError.
=== 5.13.0 (2018-10-01)
* Support :single_value type in prepared statements (rintaun) (#1547)
* Make Model.all in static_cache plugin accept a block (AlexWayfer, jeremyevans) (#1543)
* Add constant_sql_override extension for overriding SQL used for constants such as CURRENT_TIMESTAMP (celsworth) (#1538)
* Do not cache from_self datasets if options are given (jeremyevans)
3.7.1:
New features
* Added table_settings model Meta option, which should be a list of strings
specifying additional options for CREATE TABLE, which are placed *after*
the closing parentheses.
* Allow specification of on_update and on_delete behavior for many-to-many
relationships when using ManyToManyField.
Bugfixes
* Fixed incorrect SQL generation for Postgresql ON CONFLICT clause when the
conflict_target is a named constraint (rather than an index expression). This
introduces a new keyword-argument to the on_conflict() method:
conflict_constraint, which is currently only supported by Postgresql.
* Fixed incorrect SQL for sub-selects used on the right side of IN
expressions. Previously the query would be assigned an alias, even though an
alias was not needed.
* Fixed incorrect SQL generation for Model indexes which contain SQL functions
as indexed columns.
* Fixed bug in the generation of special queries used to perform operations on
SQLite FTS5 virtual tables.
* Allow frozenset to be correctly parameterized as a list of values.
* Allow multi-value INSERT queries to specify columns as a list of strings.
* Support CROSS JOIN for model select queries.
Changes in Version 3.7.1
Version 3.7.1 fixes a few issues discovered since the release of 3.7.0.
Calling :meth:~pymongo.database.Database.authenticate more than once with the same credentials results in OperationFailure.
Authentication fails when SCRAM-SHA-1 is used to authenticate users with only MONGODB-CR credentials.
A millisecond rounding problem when decoding datetimes in the pure Python BSON decoder on 32 bit systems and AWS lambda.
Issues Resolved
Changes in Version 3.7.0
Version 3.7 adds support for MongoDB 4.0. Highlights include:
Support for single replica set multi-document ACID transactions. See :ref:transactions-ref.
Support for wire protocol compression. See the :meth:~pymongo.mongo_client.MongoClient documentation for details.
Support for Python 3.7.
New count methods, :meth:~pymongo.collection.Collection.count_documents and :meth:~pymongo.collection.Collection.estimated_document_count. :meth:~pymongo.collection.Collection.count_documents is always accurate when used with MongoDB 3.6+, or when used with older standalone or replica set deployments. With older sharded clusters is it always accurate when used with Primary read preference. It can also be used in a transaction, unlike the now deprecated :meth:pymongo.collection.Collection.count and :meth:pymongo.cursor.Cursor.count methods.
Support for watching changes on all collections in a database using the new :meth:pymongo.database.Database.watch method.
Support for watching changes on all collections in all databases using the new :meth:pymongo.mongo_client.MongoClient.watch method.
Support for watching changes starting at a user provided timestamp using the new start_at_operation_time parameter for the watch() helpers.
Better support for using PyMongo in a FIPS 140-2 environment. Specifically, the following features and changes allow PyMongo to function when MD5 support is disabled in OpenSSL by the FIPS Object Module:
Support for the :ref:SCRAM-SHA-256 <scram_sha_256> authentication mechanism. The :ref:GSSAPI <gssapi>, :ref:PLAIN <sasl_plain>, and :ref:MONGODB-X509 <mongodb_x509> mechanisms can also be used to avoid issues with OpenSSL in FIPS environments.
MD5 checksums are now optional in GridFS. See the disable_md5 option of :class:~gridfs.GridFS and :class:~gridfs.GridFSBucket.
:class:~bson.objectid.ObjectId machine bytes are now hashed using FNV-1a instead of MD5.
The :meth:~pymongo.database.Database.list_collection_names and :meth:~pymongo.database.Database.collection_names methods use the nameOnly option when supported by MongoDB.
The :meth:pymongo.collection.Collection.watch method now returns an instance of the :class:~pymongo.change_stream.CollectionChangeStream class which is a subclass of :class:~pymongo.change_stream.ChangeStream.
SCRAM client and server keys are cached for improved performance, following RFC 5802.
If not specified, the authSource for the :ref:PLAIN <sasl_plain> authentication mechanism defaults to $external.
wtimeoutMS is once again supported as a URI option.
When using unacknowledged write concern and connected to MongoDB server version 3.6 or greater, the bypass_document_validation option is now supported in the following write helpers: :meth:~pymongo.collection.Collection.insert_one, :meth:~pymongo.collection.Collection.replace_one, :meth:~pymongo.collection.Collection.update_one, :meth:~pymongo.collection.Collection.update_many.
Deprecations:
Deprecated :meth:pymongo.collection.Collection.count and :meth:pymongo.cursor.Cursor.count. These two methods use the count command and may or may not be accurate, depending on the options used and connected MongoDB topology. Use :meth:~pymongo.collection.Collection.count_documents instead.
Deprecated the snapshot option of :meth:~pymongo.collection.Collection.find and :meth:~pymongo.collection.Collection.find_one. The option was deprecated in MongoDB 3.6 and removed in MongoDB 4.0.
Deprecated the max_scan option of :meth:~pymongo.collection.Collection.find and :meth:~pymongo.collection.Collection.find_one. The option was deprecated in MongoDB 4.0. Use maxTimeMS instead.
Deprecated :meth:~pymongo.mongo_client.MongoClient.close_cursor. Use :meth:~pymongo.cursor.Cursor.close instead.
Deprecated :meth:~pymongo.mongo_client.MongoClient.database_names. Use :meth:~pymongo.mongo_client.MongoClient.list_database_names instead.
Deprecated :meth:~pymongo.database.Database.collection_names. Use :meth:~pymongo.database.Database.list_collection_names instead.
Deprecated :meth:~pymongo.collection.Collection.parallel_scan. MongoDB 4.2 will remove the parallelCollectionScan command.
Unavoidable breaking changes:
Commands that fail with server error codes 10107, 13435, 13436, 11600, 11602, 189, 91 (NotMaster, NotMasterNoSlaveOk, NotMasterOrSecondary, InterruptedAtShutdown, InterruptedDueToReplStateChange, PrimarySteppedDown, ShutdownInProgress respectively) now always raise :class:~pymongo.errors.NotMasterError instead of :class:~pymongo.errors.OperationFailure.
:meth:~pymongo.collection.Collection.parallel_scan no longer uses an implicit session. Explicit sessions are still supported.
Unacknowledged writes (w=0) with an explicit session parameter now raise a client side error. Since PyMongo does not wait for a response for an unacknowledged write, two unacknowledged writes run serially by the client may be executed simultaneously on the server. However, the server requires a single session must not be used simultaneously by more than one operation. Therefore explicit sessions cannot support unacknowledged writes. Unacknowledged writes without a session parameter are still supported.
repmgr 4.1.1 contains a number of usability enhancements and bug fixes.
We recommend upgrading to this version as soon as possible. This release can be installed as a simple package upgrade from repmgr 4.0 ~ 4.1.0; repmgrd (if running) should be restarted. See Upgrading repmgr for more details.
- Fixed an issue where Sqitch would sometimes truncate the registry
version number fetched from MySQL, most likely because the Perl runtime
was using 32-bit integers. Fixed by casting the version to CHAR in the
query, before Perl ever see it. Thanks to Allen Godfrey David for the
report.
- Added the Snowflake engine.
- Now require URI::db v0.19 for Snowflake URI support.
- The Vertica and Exasol engines now require DBD::ODBC 1.59, which fixes
a Unicode issue. Thanks to Martin J. Evans for the quick fix
(perl5-dbi/DBD-ODBC#8)!
- Added the `bundle` command to `./Build`. This command installs only the
runtime dependencies into the `--install_base` directory. This should
simplify building distribution packages, binary installs, Docker images,
and the like.
- Added the `--with` option to `./Build`, to require that Sqitch be build
with the specified engine. Pass once for each engine. See the README
for the list of supported engines.
- Added a check for Hash::Merge 0.298 during installation, since that
release has a fatal bug that breaks Sqitch. If it's installed, the
installer will issue a warning and added v0.299 to its list of
dependencies. Thanks to Slaven Rezić for the suggestion (#377).
- Fixed the PostgreSQL engine so it properly checks the `psql` client
version to determine whether or not the `:registry` variable is
supported. Previously it relied on the server version, which would fail
if the server version was greater than 8.4 but the `psql` client was
not. Thanks to multiple folks reporting issues with registry names and
search paths (#314).
- The plan parser will now complain if a change specifies a duplicate
dependency. This should be less confusing than a database unique
violation. Thanks to Eric Bréchemier for the suggestion (#344).
- Moved the project to its own GitHub organization:
https://github.com/sqitchers.
- Fixed likely cause of Oracle buffer allocation bug when selecting
timestamp strings. Thanks to @johannwilfling for the bug report and to
@nmaqsudov for the analysis and solution (#316).
- Changed the way the conninfo string is passed to `psql` to eliminate
argument ordering problems on Windows. Thanks to @highlowhighlow for
the report (#384).
- Added `$SQITCH_USERNAME` environment variable to complement
`$SQITCH_PASSWORD`. It can be used to override the username set in
for a target.
- Added the `$SQITCH_FULLNAME` and `$SQITCH_EMAIL` environment
variables, which take precedence over the values of the `user.name` and
`user.email` config variables.
- Added the `$SQITCH_ORIG_SYSUSER`, `$SQITCH_ORIG_FULLNAME` and
`$SQITCH_ORIG_EMAIL` environment variables. For those situations when
Sqitch attempts to read OS data for user information, These new
environment variables override these system-derived values. The
intention is to allow an originating host to set these values on
another host where Sqitch will actually execute.
- Fixed an error triggered by whitespace trailing an engine name in the
configuration. Thanks to Jeremy Simkins for the report (#400).
- Refactored the engine-specific username and password attributes to
support a consistent search for values. Sqitch searches first for one
of its own environment variables (`$SQITCH_USERNAME` and
`$SQITCH_PASSSWORD`), then the target URI, and finally any engine-
specific values, which might include additional environment variables,
configuration files, the system user, or none at all.
- Database engines that implicitly relied on username and/or password
environment variables or on the system username now explicitly rely on
them. These include the Firebird, MySQL, Postgres, and Vertical
engines. This change should exhibit no change in the behavior of these
engines.
- Added support for the `$MYSQL_HOST` and `$MYSQL_TCP_PORT` environment
variables to the MySQL engine.
- Documented all supported engine-specific environment variables in the
sqitch-environment guide.
- Renamed the sqitch-passwords guide to sqitch-authentication and added a
section on username specification.
- Updated all URLs to use the https scheme. Only exceptions are tt2.org,
which doesn't support TLS, and conferences.embarcadero.com, which
appears to be down.
pkgsrc changes:
- Add options: mysql odbc oracle pgsql sqlite
SQLite Release 3.25.2:
Add the PRAGMA legacy_alter_table=ON command that causes the "ALTER TABLE RENAME" command to behave as it did in SQLite versions 3.24.0 and earlier: references to the renamed table inside the bodies of triggers and views are not updated. This new pragma provides a compatibility work around for older programs that expected the older, wonky behavior of ALTER TABLE RENAME.
Fix a problem with the new window functions implementation that caused a malfunction when complicated expressions involving window functions were used inside of a view.
Fixes for various other compiler warnings and minor problems associated with obscure configurations.
(Upstream also has news for beta and rc, and it's not clear if those
are additional or folded into the following.)
PostGIS 2.5.0
2018/09/23
WARNING: If compiling with PostgreSQL+JIT, LLVM >= 6 is required
Supported PostgreSQL versions for this release are:
PostgreSQL 9.4 - PostgreSQL 12 (in development)
GEOS >= 3.5
* New Features *
- #1847, spgist 2d and 3d support for PG 11+
(Esteban Zimányi and Arthur Lesuisse from Université Libre de Bruxelles (ULB),
Darafei Praliaskouski)
- #4056, ST_FilterByM (Nicklas Avén)
- #4050, ST_ChaikinSmoothing (Nicklas Avén)
- #3989, ST_Buffer single sided option (Stephen Knox)
- #3876, ST_Angle function (Rémi Cura)
- #3564, ST_LineInterpolatePoints (Dan Baston)
- #3896, PostGIS_Extensions_Upgrade() (Regina Obe)
- #3913, Upgrade when creating extension from unpackaged (Sandro Santilli)
- #2256, _postgis_index_extent() for extent from index (Paul Ramsey)
- #3176, Add ST_OrientedEnvelope (Dan Baston)
- #4029, Add ST_QuantizeCoordinates (Dan Baston)
- #4063, Optional false origin point for ST_Scale (Paul Ramsey)
- #4082, Add ST_BandFileSize and ST_BandFileTimestamp,
extend ST_BandMetadata (Even Rouault)
- #2597, Add ST_Grayscale (Bborie Park)
- #4007, Add ST_SetBandPath (Bborie Park)
- #4008, Add ST_SetBandIndex (Bborie Park)
* Breaking Changes *
- #4054, ST_SimplifyVW changed from > tolerance to >= tolerance
- #3885, version number removed from address_standardize lib file
(Regina Obe)
- #3893, raster support functions can only be loaded in the same schema
with core PostGIS functions. (Sandro Santilli)
- #4035, remove dummy pgis_abs type from aggregate/collect routines.
(Paul Ramsey)
- #4069, drop support for GEOS < 3.5 and PostgreSQL < 9.4 (Regina Obe)
- #4082, ST_BandMetaData extended to include filesize, timestamp (Even Rouault)
* Enhancements and Fixes*
- Upgrade scripts from multiple old versions are now all symlinks
to a single upgrade script (Sandro Santilli)
- #3944, Update to EPSG register v9.2 (Even Rouault)
- #3927, Parallel implementation of ST_AsMVT
- #3925, Simplify geometry using map grid cell size before generating MVT
- #3899, BTree sort order is now defined on collections of EMPTY and
same-prefix geometries (Darafei Praliaskouski)
- #3864, Performance improvement for sorting POINT geometries
(Darafei Praliaskouski)
- #3900, GCC warnings fixed, make -j is now working (Darafei Praliaskouski)
- TopoGeo_addLinestring robustness improvements (Sandro Santilli)
#1855, #1946, #3718, #3838
- #3234, Do not accept EMPTY points as topology nodes (Sandro Santilli)
- #1014, Hashable geometry, allowing direct use in CTE signatures (Paul Ramsey)
- #3097, Really allow MULTILINESTRING blades in ST_Split() (Paul Ramsey)
- #3942, geojson: Do not include private header for json-c >= 0.13 (Björn Esser)
- #3954, ST_GeometricMedian now supports point weights (Darafei Praliaskouski)
- #3965, #3971, #3977, #4071 ST_ClusterKMeans rewritten: better initialization,
faster convergence, K=2 even faster (Darafei Praliaskouski)
- #3982, ST_AsEncodedPolyline supports LINESTRING EMPTY and MULTIPOINT EMPTY
(Darafei Praliaskouski)
- #3986, ST_AsText now has second argument to limit decimal digits
(Marc Ducobu, Darafei Praliaskouski)
- #4020, Casting from box3d to geometry now returns correctly connected
PolyhedralSurface (Matthias Bay)
- #2508, ST_OffsetCurve now works with collections (Darafei Praliaskouski)
- #4006, ST_GeomFromGeoJSON support for json and jsonb as input
(Paul Ramsey, Regina Obe)
- #4038, ST_Subdivide now selects pivot for geometry split that reuses input
vertices. (Darafei Praliaskouski)
- #4025, #4032 Fixed precision issue in ST_ClosestPointOfApproach,
ST_DistanceCPA, and ST_CPAWithin (Paul Ramsey, Darafei Praliaskouski)
- #4076, Reduce use of GEOS in topology implementation (Björn Harrtell)
- #4080, Add external raster band index to ST_BandMetaData
- Add Raster Tips section to Documentation for information about
Raster behavior (e.g. Out-DB performance, maximum open files)
- #4084: Fixed wrong code-comment regarding front/back of BOX3D (Matthias Bay)
- #4060, #4094, PostgreSQL JIT support (Raúl Marín, Laurenz Albe)
- #3960, ST_Centroid now uses lwgeom_centroid (Darafei Praliaskouski)
- #4027, Remove duplicated code in lwgeom_geos (Darafei Praliaskouski,
Daniel Baston)
- #4115, Fix a bug that created MVTs with incorrect property values under
parallel plans (Raúl Marín).
- #4120, ST_AsMVTGeom: Clip using tile coordinates (Raúl Marín).
- #4132, ST_Intersection on Raster now works without throwing TopologyException
(Vinícius A.B. Schmidt, Darafei Praliaskouski)
- #4177, #4180 Support for PostgreSQL 12 dev branch (Laurenz Albe, Raúl Marín)
- #4156, ST_ChaikinSmoothing: also smooth start/end point of
polygon by default (Darafei Praliaskouski)
Currently, this package builds with all versions of postgreqsl in
pkgsrc, and it is likely to do so in the future, so there is no need
for an explicit list.
== v1.1.3 [2018-09-06] Michael Granger <ged@FaerieMUD.org>
- Revert opimization that was sometimes causing EBADF in rb_wait_for_single_fd().
== v1.1.2 [2018-08-28] Michael Granger <ged@FaerieMUD.org>
- Don't generate aliases for JOHAB encoding.
This avoids linking to deprecated/private function rb_enc(db)_alias().
== v1.1.1 [2018-08-27] Michael Granger <ged@FaerieMUD.org>
- Reduce deprecation warnings to only one message per deprecation.
== v1.1.0 [2018-08-24] Michael Granger <ged@FaerieMUD.org>
Deprecated (disable warnings per PG_SKIP_DEPRECATION_WARNING=1):
- Forwarding conn.exec to conn.exec_params is deprecated.
- Forwarding conn.exec_params to conn.exec is deprecated.
- Forwarding conn.async_exec to conn.async_exec_params.
- Forwarding conn.send_query to conn.send_query_params is deprecated.
- Forwarding conn.async_exec_params to conn.async_exec is deprecated.
PG::Connection enhancements:
- Provide PG::Connection#sync_* and PG::Connection#async_* query methods for explicit calling syncronous or asynchronous libpq API.
- Make PG::Connection#exec and siblings switchable between sync and async API per PG::Connection.async_api= and change the default to async flavors.
- Add async flavors of exec_params, prepare, exec_prepared, describe_prepared and describe_portal.
They are identical to their syncronous counterpart, but make use of PostgreSQL's async API.
- Replace `rb_thread_fd_select()` by faster `rb_wait_for_single_fd()` in `conn.block` and `conn.async_exec` .
- Add PG::Connection#discard_results .
- Raise an ArgumentError for strings containing zero bytes by #escape, #escape_literal, #escape_identifier, #quote_ident and PG::TextEncoder::Identifier. These methods previously truncated strings.
Result retrieval enhancements:
- Add PG::Result#tuple_values to retrieve all field values of a row as array.
- Add PG::Tuple, PG::Result#tuple and PG::Result#stream_each_tuple .
PG::Tuple offers a way to lazy cast result values.
- Estimate PG::Result size allocated by libpq and notify the garbage collector about it when running on Ruby-2.4 or newer.
- Make the estimated PG::Result size available to ObjectSpace.memsize_of(result) .
Type cast enhancements:
- Replace Ruby code by a faster C implementation of the SimpleDecoder's timestamp decode functions. github #20
- Interpret years with up to 7 digists and BC dates by timestamp decoder.
- Add text timestamp decoders for UTC vs. local timezone variations.
- Add text timestamp encoders for UTC timezone.
- Add decoders for binary timestamps: PG::BinaryDecoder::Timestamp and variations.
- Add PG::Coder#flags accessor to allow modifications of de- respectively encoder behaviour.
- Add a flag to raise TypeError for invalid input values to PG::TextDecoder::Array .
- Add a text decoder for inet/cidr written in C.
- Add a numeric decoder written in C.
- Ensure input text is zero terminated for text format in PG::Coder#decode .
Source code enhancements:
- Fix headers and permission bits of various repository files.
Bugfixes:
- Properly decode array with prepended dimensions. #272
For now dimension decorations are ignored, but a correct Array is returned.
- Array-Decoder: Avoid leaking memory when an Exception is raised while parsing. Fixes#279
0.5.2 (2018/07/06)
New Features
None
Bug Fixes
* Bounds-check the encoding translation array from MySQL to Ruby encodings.
Changes
* Add more encoding translations for MySQL 8 compatibility.
Upstream changes:
2018-09-15 Daniël van Eeden, Patrick Galbraith, Michiel Beijen,
DBI/DBD community (4.048)
* Fix corrupted META.json so cpan installations work as expected.
https://github.com/perl5-dbi/DBD-mysql/issues/263
0.33.5:
Added optional attr parameter for locale calleble in TranslationHybrid
Fixed an issue with PasswordType so that it is compatible with older versions of passlib
0.33.4:
Made PasswordType use hash function instead of deprecated encrypt function
Release 1.2.12 includes a series of mostly minor bugfixes, as well as one critical issue allowing the recently released version 7.0 of the cx_Oracle DBAPI to work correctly.
SQLite Release 3.25.1:
Extra sanity checking added to ALTER TABLE in the 3.25.0 release sometimes raises a false-positive when the table being modified has a trigger that updates a virtual table. The false-positive caused the ALTER TABLE to rollback, thus leaving the schema unchanged.
The fix in the 3.25.0 release for the endless-loop in the byte-code associated with the ORDER BY LIMIT optimization did not work for some queries involving window functions. An additional correction is required.
SQLite Release 3.25.0:
Add support for window functions
Enhancements the ALTER TABLE command:
- Add support for renaming columns within a table using ALTER TABLE table RENAME COLUMN oldname TO newname.
- Fix table rename feature so that it also updates references to the renamed table in triggers and views.
Query optimizer improvements:
- Avoid unnecessary loads of columns in an aggregate query that are not within an aggregate function and that are not part of the GROUP BY clause.
- The IN-early-out optimization: When doing a look-up on a multi-column index and an IN operator is used on a column other than the left-most column, then if no rows match against the first IN value, check to make sure there exist rows that match the columns to the right before continuing with the next IN value.
- Use the transitive property to try to propagate constant values within the WHERE clause. For example, convert "a=99 AND b=a" into "a=99 AND b=99".
Use a separate mutex on every inode in the unix VFS, rather than a single mutex shared among them all, for slightly better concurrency in multi-threaded environments.
Enhance the PRAGMA integrity_check command for improved detection of problems on the page freelist.
Output infinity as 1e999 in the ".dump" command of the command-line shell.
Added the SQLITE_FCNTL_DATA_VERSION file-control.
Added the Geopoly module
Bug fixes:
The ORDER BY LIMIT optimization might have caused an infinite loop in the byte code of the prepared statement under very obscure circumstances, due to a confluence of minor defects in the query optimizer.
On an UPSERT when the order of constraint checks is rearranged, ensure that the affinity transformations on the inserted content occur before any of the constraint checks.
Avoid using a prepared statement for ".stats on" command of the CLI after it has been closed by the ".eqp full" logicc.
The LIKE optimization was generating incorrect byte-code and hence getting the wrong answer if the left-hand operand has numeric affinity and the right-hand-side pattern is '/%' or if the pattern begins with the ESCAPE character.
v3.0.12 released 2018-09-13
- Fixed bug PT-1611: pt-archiver fails with UTF-8 chars
- Fixed bug PT-1574: pt-online-schema-change fails on UK and NULLs
- Fixed bug PT-1572: Better usage of ENUM fields in keys in
NibbleIterator
- Fixed bug PT-1422: pt-mysql-summary may get stuck when Time: NULL
in processlist
- Improvement PT-1321: Add required MySQL privileges to
pt-online-schema-change documentation
v3.0.11 released 2018-07-06
- Improvement PT-1571 : Improved hostname recognition in
pt-secure-collect
- Fixed bug PT-1570 : pt-archiver fails to detect columns with the
word GENERATED as part of the comment
- Improvement PT-1569 : Disabled --alter-foreign-keys-method=drop_swap
in pt-osc
- Fixed bug PT-1563 : Fixed pt-show-grants for MySQL 5.6
- Improvement PT-1562 : pt-mysql-summary: Fix mysqld command for
Travis
- Fixed bug PT-1551 : pt-table-checksum fails on MySQL 8.0.11
- Improvement PT-242 : (pt-stalk) Include SHOW SLAVE STATUS on 5.7
- Fixed bug PT-241 : (pt-stalk) Slave queries doesn't run on 5.7
v3.0.10 released 2018-05-21
- Fixed bug PT-1556 : pt-table-checksum 3.0.9 doesn't change
binlog_format to statement anymore
- Improvement PT-1546 : Improved support of MySQL 8 roles
- Improvement PT-1543 : Encrypted table status query causes high load
over multiple minutes
- Improvement PT-1536 : Add info about encrypted tablespaces in
pt-mysql-summary
- Feature PT-131 : Make pt-table checksum to disable QRT plugin
- Feature PT-118 : pt-table-checksum report the number of rows of
difference between master and slave
v3.0.9 released 2018-04-17
- Feature PT-1530 : Add support for encryption status to
mysql-summary
- Feature PT-1526 : Add ndb status to pt-mysql-summary
- Feature PT-1525 : Added support for MySQL 8 roles into
pt-mysql-summary
- Feature PT-1509 : Only set binlog_format when necessary
- Feature PT-1508 : Adding --read-only-interval flag, and
read-only check on wake-up
- Improvement PT-1507 : pt-summary does not reliably read in the
transparent huge pages setting
- New tool PT-1501 : pt-secure-collect - New tool to collect and
sanitize pt-tools outputs
- Feature PT-243 : Adding --max-hostname-length and
--max-line-length to pt-query-digest
v3.0.8 released 2018-03-13
- Feature PT-1500 : add --secure-slowlog option to pt-query digest
v3.0.7 released 2018-03-01
- Fixed Bug PT-244 : pt-online-schema-change --data-dir option
broken for partitioned table
- Feature PT-633 : Added --mysql-only option to pt-stalk for RDS
- Fixed bug PT-1256: pt-table-sync does not use the character set
for the table it is synchronizing
- Fixed bug PT-1455: pt-osc is stuck when the table that is being
altered is filtered out in the slave
- Fixed bug PT-1485: pt-mysql-summary has broken Security section
in versions bigger then 5.6
- Fixed bug PMM-1905: Explain fails if encounters negative
"ntoreturn"
=== 5.12.0 (2018-08-31)
* Make constraint_validations extension respect Database#constraint_validations_table setting (jeremyevans)
* Make Sequel.extension load files from gems (jeremyevans)
* Map clob prepared statement argument type to OCI8::CLOB in the oracle adapter (pipistrellka) (#1534)
* Make Model.load_cache public in the static_cache plugin (AlexWayfer) (#1533)
* Enable support for NOWAIT on MariaDB 10.3+ (jeremyevans)
* Enable support for INTERSECT and EXCEPT on MariaDB 10.3+ (jeremyevans)
* Make tactical_eager_loading plugin handle automatic eager loading for associated objects created by eager_graph (jeremyevans)
* Cache eager_graph loader to speed up subsequent loads from the same dataset (jeremyevans)
* Add caller_logging database extension to log callers before queries, useful during development (jeremyevans)
* Add Database#call_procedure in the postgres adapter for calling PostgreSQL 11+ procedures (jeremyevans)
* Add eager_graph_eager plugin for chaining eager association loads after eager_graph association loads (jeremyevans)
* Support using Dataset#eager_graph in eager load callback for associations using join tables (jeremyevans)
* Make Dataset#graph handle existing selections without determinable aliases by forcing a subselect (jeremyevans)
* Freeze prepared statement arguments before returning the prepared statement (jeremyevans)
* Refactor emulated prepared statement internals to use a placeholder literalizer (jeremyevans)
=== 5.11.0 (2018-08-01)
* Fix using the jdbc/sqlserver adapter on JRuby 9.2+ (jeremyevans)
* Fix dumping schema for numeric/decimal columns with default values, broken starting in 5.9.0 (jeremyevans)
* Recognize additional check constraint violations on certain versions of SQLite (jeremyevans)
* Use cached model instances for Model.first calls without an argument or with a single integer argument in the static_cache plugin (AlexWayfer) (#1529)
* Support ON CONFLICT clause for INSERT on SQLite 3.24+ (jeremyevans)
* Support Dataset#window for WINDOW clause on MySQL 8 and SQLAnywhere (jeremyevans)
* Enable window function support on SQLAnywhere (jeremyevans)
* Support using a hash as a window function :frame option value, with support for ROWS/RANGE/GROUPS, numeric offsets, and EXCLUDE (jeremyevans)
* Allow using set_column_default with a nil value to remove the default value for a column on MySQL when the column is NOT NULL (jeremyevans)
=== 5.10.0 (2018-07-01)
* Use input type casts when using the postgres adapter with pg 0.18+ to reduce string allocations for some primitive types used as prepared statement arguments (jeremyevans)
* Assume local time if database timezone not specified when handling BC timestamps on JRuby 9.2.0.0 in the pg_extended_date_support extension (jeremyevans)
* Fix parsing of timetz types in the jdbc/postgresql adapter (jeremyevans)
* Make SQLTime.parse respect SQLTime.date and Sequel.application_timezone (jeremyevans)
* Add :top as an option in the list plugin (celsworth) (#1526)
* Fix Model#{ancestors,descendants,self_and_siblings} in the tree plugin when custom parent/children association names are used (jeremyevans) (#1525)
* Treat read-only mode error as disconnect error on mysql and mysql2 adapters, for better behavior on AWS Aurora cluster (jeremyevans)
* Don't use cached placeholder literalizers for in Dataset#{first,where_all,where_each,where_single_value} if argument is empty array or hash (jeremyevans)
* Support :tablespace option when adding tables, indexes, and materialized views on PostgreSQL (jeremyevans)
* Support :include option for indexes on PostgreSQL 11+ (jeremyevans)
* Allow the use of IN/NOT IN operators with set returning functions for Sequel::Model datasets (jeremyevans)
* Make many_to_pg_array associations in the pg_array_associations plugin work on PostgreSQL 11 (jeremyevans)
* Only load strscan library in pg_array extension if it is needed (jeremyevans)
* Don't remove related many_to_one associations from cache when setting column value to existing value for model instances that have not been persisted (jeremyevans) (#1521)
* Support ruby 2.6+ endless ranges in the pg_range extension (jeremyevans)
* Support ruby 2.6+ endless ranges in filters, using just a >= operator for them (jeremyevans)
2018-09-08 Daniël van Eeden, Patrick Galbraith, DBI/DBD community (4.047)
* Add options needed for public key based security.
* Allow several spaces after LIMIT clause.
* Basic GTID tracking.
* Fix GCC 8.1 warnings
* Fix warning: unused variable ‘buffer_len’
* Fix warning about bind->is_null assignment with incompatible pointer type
* Get rid of warning about unused variable ssl_verify_set
* Fix space/tab issue which leads to misleading indentation
* Change spaces/tabs to get rid of GCC8 warning
2018-03-09 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.046_01)
* Updated documentation re. multithreading (Daniël van Eeden)
* Remove #IFDEFs for code detecting ancient DBI versions. The minimum
DBI version we require is version 1.609 from 2009!
* ChopBlanks should not trim binary fields (urcheon)
* Skipped test which failed on OpenBSD because Proc::ProcessTable does not
come with a 'size' attribute on this platform (glasswalk3r, pali)
* Improved test suite with regards to MySQL 8.0
* Improved macOS installation notes.
* Use Devel::CheckLib 1.09 or newer, fixes
https://github.com/perl5-dbi/DBD-mysql/issues/109
* Specify bigint as test dependency
* Add recommends and suggests tests dependencies (pali)
* Check only for libs via Devel::CheckLib in Makefile.PL (pali)
* Remove param --with-mysql from Makefile.PL documentation (pali)
* Check if specified Makefile.PL settings are working (pali)
Fixes https://rt.cpan.org/Ticket/Display.html?id=119902
* Remember mysql_config value for Makefile.PL (pali)
* Locate MySQL libs using Devel::CheckLib (pali)
* Added a fix for 30insertfetch failure when using server-side prepared
statements. The stmt was being freed for DML statements before
the handle attribute was read, mysql_info was reading back nulls
3.7.0:
Backwards-incompatible changes
* Pool database close_all() method renamed to close_idle() to better
reflect the actual behavior.
* Databases will now raise InterfaceError when connect() or close() are
called on an uninitialized, deferred database object.
New features
* Add methods to the migrations extension to support adding and dropping table
constraints.
* Add Model.bulk_create() method for bulk-inserting unsaved model instances.
* Add close_stale() method to the connection pool to support closing stale
connections.
* The FlaskDB class in playhouse.flask_utils now accepts a model_class
parameter, which can be used to specify a custom base-class for models.
Bugfixes
* Parentheses were not added to subqueries used in function calls with more
than one argument.
* Fixed bug when attempting to serialize many-to-many fields which were created
initially with a DeferredThroughModel.
* Fixed bug when using the Postgres ArrayField with an array of BlobField.
* Allow Proxy databases to be used as a context-manager.
* Fixed bug where the APSW driver was referring to the SQLite version from the
standard library sqlite3 driver, rather than from apsw.
* Reflection library attempts to wrap server-side column defaults in quotation
marks if the column data-type is text/varchar.
* Missing import in migrations library, which would cause errors when
attempting to add indexes whose name exceeded 64 chars.
* When using the Postgres connection pool, ensure any open/pending transactions
are rolled-back when the connection is recycled.
* Even *more* changes to the setup.py script. In this case I've added a
helper function which will reliably determine if the SQLite3 extensions can
be built. This follows the approach taken by the Python YAML package.
6.4.0 release highlights
Analysis
- Option to index phrases on text fields
- Korean analysis tools
- Add multiplexing token filter
Machine learning
- Improve your machine learning results with custom rules
- The {ml} analytics can now detect specific change points in a time
series
Mappings
- alias field type
- _ignored meta field
Rank Eval API
- Expected Reciprocal Rank metric for Rank Eval API
Search
- Cross Cluster Search will no longer use dedicated master nodes as
gateway nodes
- Format option for doc_value fields
- Support second level of field collapse
Security
- Kerberos authentication support is now available
- {es} now offers a FIPS 140-2 compliant mode
6.3.0 release highlights
- SQL: This experimental feature enables users who are familiar with
SQL to use SQL statements to query {es} indices.
- Rollups: This experimental feature enables you to summarize and
store historical data so that is still available for analysis, but
consumes significantly less storage space.
- Java 10 Support
For full releases since 6.2.4 please see
https://www.elastic.co/guide/en/elasticsearch/reference/6.4/release-notes-6.3.1.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/6.4/release-notes-6.3.2.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/6.4/release-notes-6.3.0.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/6.4/release-notes-6.4.0.html
Features
--------
- Parse Virtual Keyspace Metadata
Bug Fixes
---------
- Tokenmap.get_replicas returns the wrong value if token coincides
with the end of the range
- Python Driver fails with "more than 255 arguments" python exception
when > 255 columns specified in query response
- Hang in
integration.standard.test_cluster.ClusterTests.test_set_keyspace_twice
- Asyncore reactors should use a global variable instead of a class
variable for the event loop
Other
-----
- Use global variable for libev loops so it can be subclassed
- Update SchemaParser for V4
- Bump Cython dependency version to 0.28
From Michael Moll via GH #29 ( https://github.com/NetBSD/pkgsrc/pull/29 )
v3.5.5
[CORE-2851] - includeAll tag with a relative path duplicates the database changes with an absolute and with a relative changelog
v3.5.4
[CORE-2851] - includeAll tag with a relative path duplicates the database changes with an absolute and with a relative changelog
[CORE-2863] - Issue with Spring boot 1.4.0 - 1.4.3
[CORE-2898] - includeAll broken in 3.5.1
[CORE-2948] - Changelog with includeAll will not find child changelogs in Spring Boot's executable JAR
[CORE-2978] - AddAutoIncrement on Postgres does not work when no schema is specified
[CORE-3123] - ResourceComparator is not applied for includeAll
[CORE-3139] - ClassLoaderResourceAccessor cannot read jar path resources from SpringLiquibase
[CORE-3015] - Oracle: diffChangeLog TIMESTAMP WITH LOCAL TIME ZONE correctly
1.842 14 July 2018
* Document the MaocOS build failures & how MacPort can work around th eissue.
# 125238
# 125585
# RT 133280
* Write all test db files into a directory created by File::Temp
Protects against any possible races if running a parallel build.
* #96357: DB_File destructor is not thread-safe
Added CLONE_SKIP to DB_File.pm and included the test db-threads.t from the patch.
Note - This only works with perl >= 5.8.7
2.2.7
- Fix warning with flex 2.6+
- Fix compile errors with PG11
- Fix bug in with regex in 'set add sequence' when
specifying the sequence as a regular expression.
It was not being escaped properly
- Add support to Slonik to specify the share direcotry
using the environment variable SLONY_SHARE_DIR
- Add slon config setting remote_listen_serializable_transactions
to use read committed instead of read-only-serializable deferable
transactions(default true)
- Add slon config setting enable_version_check to disable
the slony version check that ensures all nodes run the
same slony version (default true, version check enabled)
Redis 4.0.11:
Upgrade urgency HIGH: not critical but very important bugs fixed.
Dear users, this is just a bugfix release of Redis 4. All new work
is now focused on Redis 5, however we backported a number of bug fixes here:
* The disconnection time between the master and slave was reset in an
incorrect place, sometimes a good slave will not be able to failover
because it claims it was disconnected for too much time from the master.
* A replication bug, rare to trigger but non impossible, is in Redis for
years. It was lately discovered at Redis Labs and fixed by Oran Agra.
It may cause disconnections, desynchronizations and other issues.
* RANDOMKEY may go in infinite loop on rare situations. Now fixed.
* EXISTS now works in a more consistent way on slaves.
* Sentinel: backport of an option to deny a potential security problem
when the SENTINEL command is used to configure an arbitrary script
to execute.
5.7.23:
Functionality Added or Changed
Previously, for the --ssl-mode=VERIFY_IDENTITY or --ssl-verify-server-cert option, the client checked whether the host name that it used for connecting matched the Common Name value in the certificate but not the Subject Alternative Name value. Now, if the client uses OpenSSL 1.0.2 or higher, the client checks whether the host name matches either the Subject Alternative Name value or the Common Name value in the server certificate. Thanks to Daniël van Eeden for a patch on which this change was based.
Bugs Fixed
Important Change; Partitioning: After creating partitioned InnoDB tables with very long names, the table_name columns in the corresponding entries in the mysql.innodb_index_stats and mysql.innodb_table_stats system tables were truncated. To fix this issue, the length of the table_name column in each of these tables has been increased from 64 to 199 characters. In both cases, this is now the same as the lengths of these columns in MySQL 8.0.
InnoDB: The ngram full-text search parser permitted comma and period characters to be tokenized as words, which caused an inconsistency between boolean and natural language mode search results. Comma and period characters are no longer tokenized.
InnoDB: An I/O error returned by an fsync() operation is now treated as a hard error.
InnoDB: A schema mismatch error reported during an import tablespace operation failed to print mismatched table flags in a readable format.
InnoDB: A DDL operation failed to wait for a FULLTEXT index optimization operation to finish.
InnoDB: An unnecessary check for read-only transactions was removed from the trx_set_rw_mode() function. Thanks to Sandeep Sethia for the patch.
InnoDB: A DDL operation that added a foreign key constraint raised an assertion when it accessed a stale memory object that belonged to the parent table.
InnoDB: A DDL operation on a table with a FULLTEXT index during full-text index cache synchronization caused an assertion failure.
InnoDB: A failing assertion occurred after initiating a memcached get operation.
InnoDB: A corrupt index ID encountered during a foreign key check raised an assertion.
InnoDB: An internal deadlock during a DDL operation resulted in a long semaphore wait followed by a server exit.
InnoDB: A DDL operation encountered a serious error due to an invalid lock upgrade.
InnoDB: On a Windows 64-bit system, invalid buffer pool configuration values caused the server to exit on startup.
Partitioning: For a partitioned table, partition update time could be incorrect after rebuilding the table or restarting the server.
Partitioning: An extraneous row lock was imposed by an update to a partitioned InnoDB table.
Replication: The log messages generated when a member fails to join the group have been improved, for example when group_replication_group_name on the member joining the group does not match the seed's group_replication_group_name this is now described in the log message.
Replication: The ER_GRP_RPL_SQL_SERVICE_FAILED_TO_RUN_SQL_QUERY error was being logged incorrectly.
Replication: The use of replication filters or binary log filters can cause issues when they are applied to tables that are updated with XA transactions. Filtering of tables could cause an XA transaction to be empty on a replication slave, and empty XA transactions are not supported. Also, with the settings master_info_repository=TABLE and relay_log_info_repository=TABLE on a replication slave, which became the defaults in MySQL 8.0, the internal state of the data engine transaction is changed following a filtered XA transaction, and can become inconsistent with the replication transaction context state.
Due to these issues, the use of replication filters or binary log filters in combination with XA transactions is not supported. This fix adds the new error ER_XA_REPLICATION_FILTERS, which is logged whenever an XA transaction is impacted by a replication filter, whether or not the transaction was empty as a result. If the transaction is not empty, the replication slave is able to continue running, but you should take steps to discontinue the use of replication filters with XA transactions in order to avoid potential issues. If the transaction is empty, the replication slave stops. In that event, the replication slave might be in an undetermined state in which the consistency of the replication process might be compromised. In particular, the gtid_executed set on a slave of the slave might be inconsistent with that on the master. To resolve this situation, isolate the master and stop all replication, then check GTID consistency across the replication topology. Undo the XA transaction that generated the error message, then restart replication.
Replication: When a transaction larger than the binary log transaction cache size (binlog_cache_size) was flushed to a temporary file during processing, and the flush failed due to a lack of space in the temporary directory, the flush error was not handled correctly. No message was written to the error log, and the binary log cache was not cleared after the transaction was rolled back. Now, in this situation, the server takes an appropriate action based on the binlog_error_action setting (shut down the server or halt logging), and writes a message to the error log. When the transaction is rolled back, the server checks for flush errors and clears the binary log cache if any occurred.
Replication: Using an IP address or hostname in any Group Replication related configuration on macOS was failing.
Replication: When GTIDs are in use for replication, replicated transactions that are filtered out on the slave are persisted. If binary logging is enabled on the slave, the filtered-out transaction is written to the binary log as a Gtid_log_event followed by an empty transaction containing only BEGIN and COMMIT statements. If binary logging is disabled, the GTID of the filtered-out transaction is written to the mysql.gtid_executed table. This process ensures that there are no gaps in the set of executed GTIDs, and that the filtered-out transactions are not retrieved again if the slave reconnects to the master. Previously, this process was not done for CREATE DATABASE, ALTER DATABASE, and DROP DATABASE statements, but it is now carried out for those statements as well as for others.
Replication: On a multithreaded slave, when a STOP SLAVE statement is executed on the slave, followed by a START SLAVE statement, the error log can report a different position in the binary log for the slave SQL thread when exiting, compared to the position reported for the slave SQL thread at the subsequent initialization.
For a multithreaded slave, the position reported for the SQL thread on exit is a low water mark, up to which the replication stream is consistent and has no gaps. Transactions appearing before the position are guaranteed to have committed, but transactions after the position may have committed or not. However, this low water mark was being reported before the process to stop the worker threads was actually carried out, and the low water mark was subsequently updated by a checkpoint routine during that process. The timing of the log message has now been changed so that the final low water mark is reported as the position for the SQL thread on exit.
Replication: In certain situations, such as during distributed recovery procedure, the certification info garbage collection was purging more data than it should, resulting in conflicts not being detected. The garbage collection procedure has been improved to take this case in consideration.
Replication: When the group_replication_applier channel's applier thread encountered an error, the master_log_name and end_log_pos in the error message were incorrect. In Group Replication, the events of a transaction are replicated before they are written to the binary log of the member where the transaction originated. The result is that the final master_log_name and the end_log_pos of those events are unknown at the time they are applied on the replica by group_replication_applier channel's applier thread. To avoid confusion, now any such error messages encountered by a group_replication_applier channel do not contain the binary log name and the binary log position.
A heap overflow vulnerability in the MySQL client library was fixed.
For generated columns that used the INTERVAL() function, incorrect behavior could occur.
The exec_in_background command for mysqltest is now available in MySQL 5.7.
An unencrypted connection could result from a client connection attempt specifying that an encrypted connection was required, if the server was not configured to support SSL.
A BETWEEN clause comparing negative values could lead to erroneous results.
Audit log filter rules did not permit class names to be specified as an array of strings.
shared-mime-info 1.10 (2018-28-06)
* Add mime-type for MJPEG raw streams
* Add MPEG-4 Ringtone mime-type
* Add mime-type for HEIF images
* Add application/vnd.sqlite3, application/x-sqlite2 IANA types
* Add application/pkcs8-encrypted
* Add audio/usac
* Add application/vnd.youtube.yt
* Add mime-types for raw floppy disk images
* Add aliases for SAP and HFE floppy images mime-types
* Use new application/vnd.comicbook-rar IANA type
* Remove magic from STL binary
* Add *.adts and *.ass globs from IANA to audio/aac
* Use new IANA type for application/xliff+xml
* Use new IANA type for model/stl
* Add text/x-perl alias to application/x-perl
* Bump priority for our DjVu mime-types
* Differentiate Neo Geo Pocket Color ROMs from non-Color ones
* Remove *.bin from application/octet-stream
* Add an application/xps alias for application/oxps
* Change Qt Linguist file type to text/vnd.qt.linguist
* Fix the QML magic
Tools:
- Don't warn with unknown top level type names
- Look in obsolete KDE sub-dirs for clean up opportunities
- Add some debug when parsing XML package files
Spec:
- ASCII check should be done with 128 leading bytes, not 32 bytes
Version 2.4:
- Add standard and retry hook scripts for backup deletion (pre/post)
- Add standard and retry hook scripts for recovery (pre/post)
- Add standard and retry hook scripts for WAL deletion (pre/post)
- Add --standby-mode option to barman recover to add standby_mode = on
in pre-generated recovery.conf
- Add --target-action option to barman recover, allowing users to add
shutdown, pause or promote to the pre-generated recovery.conf file
- Improve usability of point-in-time recovery with consistency checks
(e.g. recovery time is after end time of backup)
- Minor documentation improvements
- Drop support for Python 3.3
Relevant bug fixes:
- Fix remote get_file_content method, preventing
incremental recovery from happening
- Unicode issues with command
- Add --wal-method=none when pg_basebackup >= 10
Minor bug fixes:
- Stop process manager module from ovewriting lock files content
- Relax the rules for rsync output parsing
- Ignore vanished files in streaming directory
- Case insensitive slot names
- Make DataTransferFailure.from_command_error() more resilient
- Rename command() to barman_command()
- Initialise synchronous standby names list if not set
- Correct placeholders ordering
- Force datestyle to iso for replication connections
- Returns error if delete command does not remove the backup
- Fix exception when calling is_power_of_two(None)
- Downgraded sync standby names messages to debug
Version 2.3:
- Add support to PostgreSQL 10
- Follow naming changes in PostgreSQL 10:
- The switch-xlog command has been renamed to switch-wal.
- In commands output, the xlog word has been changed to WAL and
location has been changed to LSN when appropriate.
- Add the --network-compression/--no-network-compression options to
barman recover to enable or disable network compression at run-time
- Add --target-immediate option to recover command, in order to exit
recovery when a consistent state is reached (end of the backup,
available from PostgreSQL 9.4)
- Show cluster state (master or standby) with barman status command
- Documentation improvements
- Bug fixes:
- Fix high memory usage with parallel_jobs > 1
- Better handling of errors using parallel copy
- Make barman diagnose more robust with system exceptions
- Let archive-wal ignore files with .tmp extension
Version 2.2:
- Implement parallel copy for backup/recovery through the
parallel_jobs global/server option to be overridden by the --jobs or
-j runtime option for the backup and recover command. Parallel
backup is available only for the rsync copy method. By default, it
is set to 1 (for behaviour compatibility with previous versions).
- Support custom WAL size for PostgreSQL 8.4 and newer. At backup
time, Barman retrieves from PostgreSQL wal_segment_size and
wal_block_size values and computes the necessary calculations.
- Improve check command to ensure that incoming directory is empty
when archiver=off, and streaming directory is empty when
streaming_archiver=off
- Add external_configuration to backup_options so that users can
instruct Barman to ignore backup of configuration files when they
are not inside PGDATA (default for Debian/Ubuntu installations). In
this case, Barman does not display a warning anymore.
- Add --get-wal and --no-get-wal options to barman recover
- Add max_incoming_wals_queue global/server option for the check
command so that a non blocking error is returned in case incoming
WAL directories for both archiver and the streaming_archiver contain
more files than the specified value.
- Documentation improvements
- File format changes:
- The format of backup.info file has changed. For this reason a
backup taken with Barman 2.2 cannot be read by a previous
version of Barman. But, backups taken by previous versions can
be read by Barman 2.2.
- Minor bug fixes:
- Allow replication-status to work against a standby
- Close any PostgreSQL connection before starting pg_basebackup
- Safely handle paths containing special characters
- Archive .partial files after promotion of streaming source
- Recursively create directories during recovery
- Improve xlog.db locking
- Remove tablespace_map file during recover
- Reconnect to PostgreSQL if connection drops
Version 2.1:
- Add --archive and --archive-timeout options to switch-xlog command
- Preliminary support for PostgreSQL 10
- Minor additions:
- Add last archived WAL info to diagnose output
- Add start time and execution time to the output of delete
command
- Minor bug fixes:
- Return failure for get-wal command on inactive server
- Make streaming_archiver_names and streaming_backup_name options
global
- Fix rsync failures due to files truncated during transfer
- Correctly handle compressed history files
- Avoid de-referencing symlinks in pg_tblspc when preparing
recovery
- Fix comparison of last archiving failure
- Avoid failing recovery if postgresql.conf is not writable
- Fix output of replication-status command
- Exclude files from backups like pg_basebackup
- Exclude directories from other Postgres versions while copying
tablespaces
- Make retry hook script options global
Version 2.0 - 27 Sep 2016
- Support for pg_basebackup and base backups over the PostgreSQL
streaming replication protocol with backup_method=postgres
(PostgreSQL 9.1 or higher required)
- Support for physical replication slots through the slot_name
configuration option as well as the --create-slot and --drop-slot
options for the receive-wal command (PostgreSQL 9.4 or higher
required). When slot_name is specified and streaming_archiver is
enabled, receive-wal transparently integrates with pg_receivexlog,
and check makes sure that slots exist and are actively used
- Support for the new backup API introduced in PostgreSQL 9.6, which
transparently enables concurrent backups and backups from standby
servers using the standard rsync method of backup. Concurrent backup
was only possible for PostgreSQL 9.2 to 9.5 versions through the
pgespresso extension. The new backup API will make pgespresso
redundant in the future
- If properly configured, Barman can function as a synchronous standby
in terms of WAL streaming. By properly setting the
streaming_archiver_name in the synchronous_standby_names priority
list on the master, and enabling replication slot support, the
receive-wal command can now be part of a PostgreSQL synchronous
replication cluster, bringing RPO=0 (PostgreSQL 9.5.5 or
higher required)
- Introduce barman-wal-restore, a standard and robust script written
in Python that can be used as restore_command in recovery.conf files
of any standby server of a cluster. It supports remote parallel
fetching of WAL files by efficiently invoking get-wal through SSH.
Currently available as a separate project called barman-cli. The
barman-cli package is required for remote recovery when get-wal is
listed in recovery_options
- Control the maximum execution time of the check command through the
check_timeout global/server configuration option (30 seconds
by default)
- Limit the number of WAL segments that are processed by an
archive-wal run, through the archiver_batch_size and
streaming_archiver_batch_size global/server options which control
archiving of WAL segments coming from, respectively, the standard
archiver and receive-wal
- Removed locking of the XLOG database during check operations
- The show-backup command is now aware of timelines and properly
displays which timelines can be used as recovery targets for a given
base backup. Internally, Barman is now capable of parsing .history
files
- Improved the logic behind the retry mechanism when copy operations
experience problems. This involves backup (rsync and postgres) as
well as remote recovery (rsync)
- Code refactoring involving remote command and physical copy
interfaces
- Bug fixes:
- Correctly handle .history files from streaming
- Fix replication-status on PostgreSQL 9.1
- Fix replication-status when sent and write locations are not
available
- Fix misleading message on pg_receivexlog termination
Features
- RECONNECT command
- WAIT_CLOSE command
- Fast close - Disconnect a server in session pool mode immediately
if it is in "close_needed" (reconnect) mode.
- Add close_needed column to SHOW SERVERS
Fixes
- Avoid double-free in parse_filename
- Avoid NULL pointer deref in parse_line
Cleanups
- Port mkauth.py to Python 3
- Improve signals documentation
- Improve quick start documentation
- Document SET command
- Correct list of required software
- Fix -Wimplicit-fallthrough warnings
- Add missing documentation for various SHOW fields
- Document reconnect behavior on reload and DNS change
- Document that KILL requires RESUME afterwards
- Clarify documentation of server_lifetime
- Typos and capitalization fixes in messages and docs
- Fix psql invocation in tests
- Various other test setup improvements
4.1.0:
Configuration file changes
* Default for log_level is now INFO. This produces additional informative log output, without creating excessive additional log file volume, and matches the setting assumed for examples in the documentation.
* recovery_min_apply_delay now accepts a minimum value of zero
repmgr enhancements
* repmgr: always exit with an error if an unrecognised command line option is provided. This matches the behaviour of other PostgreSQL utilities such as psql.
* repmgr: add -q/--quiet option to suppress non-error output.
* repmgr cluster show, repmgr node check and repmgr node status return non-zero exit code if node status issues detected.
* Add --csv output option for repmgr cluster event.
* repmgr witness unregister can be run on any node, by providing the ID of the witness node with --node-id.
* repmgr standby switchover will refuse to run if an exclusive backup is taking place on the current primary.
repmgrd enhancements
repmgrd: create a PID file by default. For details, see repmgrd's PID file.
repmgrd: daemonize process by default. In case, for whatever reason, the user does not wish to daemonize the process, provide --daemonize=false.
Bug fixes
repmgr standby register --wait-sync: fix behaviour when no timeout provided.
repmgr cluster cleanup: add missing help options.
Ensure witness node follows new primary after switchover.
repmgr node check and repmgr node status: fix witness node handling.
2.3.7:
Fix for pkg-config file update on no linux platforms
Add W entry for GUI work
Various fixes for SQLBrowseConnect/W, SQLGetConnectAttr/W,and SQLSetConnectAttr/W
Fix buffer overflows in SQLConnect/W and refine behaviour of SQLGet/WritePrivateProfileString
SQLBrowseConnect/W allow disconnecting a started browse session after error
Add --with-stats-ftok-name configure option to allow the selection of a file name used to generate the IPC id when collecting stats. Default is the system odbc.ini file
Improve diag record handling with the behavior of Windows DM and export SQLCancelHandle
Bug fix when SQLGetPrivateProfileString() is called to get a list of sections or a list of keys
Connection pooling: Fix liveness check for Unicode drivers
The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 10.5, 9.6.10, 9.5.14, 9.4.19, 9.3.24. This release fixes two security issues as well as bugs reported over the last three months.
SECURITY ISSUES:
CVE-2018-10915: CERTAIN HOST CONNECTION PARAMETERS DEFEAT CLIENT-SIDE SECURITY DEFENSES
CVE-2018-10925: MEMORY DISCLOSURE AND MISSING AUTHORIZATION IN INSERT ... ON CONFLICT DO UPDATE
BUG FIXES AND IMPROVEMENTS
Several fixes related to VACUUM, including an issue that could lead to data corruption in certain system catalog tables
Several fixes for replaying write-ahead logs, including a case where a just-promoted standby server would not restart if it crashed before its first post-recovery checkpoint
Several performance improvements for replaying write-ahead logs
Several fixes for logical replication and logical decoding, including ensuring logical WAL senders are reporting the streaming state correctly
Allow replication slots to be dropped in single-user mode
Fix to have variance and similar aggregate functions return accurate results when executed using parallel query
Fix SQL-standard FETCH FIRST syntax to allow parameters ($n), as the standard expects
Fix to ensure that a process doing a parallel index scan will respond to signals, such as one to abort a query
Fix EXPLAIN's accounting for resource usage, particularly buffer accesses, in parallel workers
Several fixes for the query planner including improving the cost estimates for hash-joins and choosing to use indexes for mergejoins on composite type columns
Fix performance regression related to POSIX semaphores for multi-CPU systems running Linux or FreeBSD
Fix for GIN indexes that could lead to an assertion failure after a pg_upgrade from a version before PostgreSQL 9.4
Fix for SHOW ALL to display superuser configuration settings to roles that are allowed to read all settings
Fix issue where COPY FROM .. WITH HEADER would drop a line after every 4,294,967,296 lines processed
Several fixes for XML support, including using the document node as the context for XPath queries as defined in the SQL standard, which affects the xpath and xpath_exists functions, as well as XMLTABLE
Fix libpq for certain cases where hostaddr is used
Several ecpg fixes for Windows
Fix password prompting in Windows client programs so that echo is properly disabled
Several pg_dump fixes, including correctly outputting REPLICA IDENTITY properties for constraint indexes
Make pg_upgrade check that the old server was shut down cleanly
2.5.1:
connection.result is populated when exception raised with raise_exceptions=True
fixed objectSid in mocking strategies
fixed circular reference in exception history
added objectSid validator
byte values are properly searched in MOCK strategies
exception history refactored
connections in context manager don’t bind anymore when auto_bind is set to AUTO_BIND_NONE
Cython compatible build
more detailed exception message in Mock strategy
exceptions flow refactored in reusable strategy
pwdlastset accept any positive integer
fixed an exception while logging packet with pyasn1 decoder
fixed importing abc from collections for Python 3.8
Redis 4.0.10 fixes a number of important issues:
* Important security issues related to the Lua scripting engine.
Please check https://github.com/antirez/redis/issues/5017
for more information.
* A bug with SCAN, SSCAN, HSCAN and ZSCAN, that may not return all the elements.
We also add a regression test that can trigger the issue often when present, and
may in theory be able to find unrelated regressions.
* A PSYNC2 bug is fixed: Redis should not expire keys when saving RDB files
because otherwise it is no longer possible to use such RDB file as a base
for partial resynchronization. It no longer represents the right state.
* Compatibility of AOF with RDB preamble when the RDB checksum is disabled.
* Sentinel bug that in some cases prevented Sentinel to detect that the master
was down immediately. A delay was added to the detection.
* Other minor issues.
From upstream ITS #8885
Add a configure test for hdb_generate_key_set_password() prototype
contrib/slapd-modules/smbk5pwd uses hdb_generate_key_set_password() from
Heimdal, which was shortly turned from a 5 arguments function to a 7 arguments
function before the prototype change was rolled back to address API
incompatibility.
Unfortunately, the 7 arguments hdb_generate_key_set_password() made it into
released NetBSD 8.0, causing a build break in contrib/slapd-modules/smbk5pwd.
This change adds a configure test for 7 arguments prototype so that
contrib/slapd-modules/smbk5pwd build again on NetBSD 8.0, and other OS that
would include the 7 arguments hdb_generate_key_set_password().
Each R package should include ../../math/R/Makefile.extension, which also
defines MASTER_SITES. Consequently, it is redundant for the individual
packages to do the same. Package-specific definitions also prevent
redefining MASTER_SITES in a single common place.
1.0.0:
[feature] [general] For Alembic 1.0, Python 2.6 / 3.3 support is being dropped, allowing a fixed setup.py to be built as well as universal wheels. Pull request courtesy Hugo.
[feature] [general] With the 1.0 release, Alembic’s minimum SQLAlchemy support version moves to 0.9.0, previously 0.7.9.
[bug] [batch] Fixed issue in batch where dropping a primary key column, then adding it back under the same name but without the primary_key flag, would not remove it from the existing PrimaryKeyConstraint. If a new PrimaryKeyConstraint is added, it is used as-is, as was the case before.
1.2.10:
[orm] [bug] Fixed bug in Bundle construct where placing two columns of the same name would be de-duplicated, when the Bundle were used as part of the rendered SQL, such as in the ORDER BY or GROUP BY of the statement.
[orm] [bug] Fixed regression in 1.2.9 due to 4287 where using a Load option in conjunction with a string wildcard would result in a TypeError.
[sql] [bug] Fixed bug where a Sequence would be dropped explicitly before any Table that refers to it, which breaks in the case when the sequence is also involved in a server-side default for that table, when using MetaData.drop_all(). The step which processes sequences to be dropped via non server-side column default functions is now invoked after the table itself is dropped.
3.6.4:
Take a whole new approach, following what simplejson does. Allow the
build_ext command class to fail, and retry without extensions in the event we
run into issues building extensions.
3.6.3:
Add check in setup.py to determine if a C compiler is available before
building C extensions.
3.6.2:
Use ctypes.util.find_library to determine if libsqlite3 is installed.
Should fix problems people are encountering installing when SQLite3 is not
available.
3.6.1:
Fixed issue with setup script.
3.6.0:
* Support for Python 3.7, including bugfixes related to new StopIteration
handling inside of generators.
* Support for specifying ROWS or RANGE window frame types.
* Add APIs for user-defined window functions if using [pysqlite3](https://github.com/coleifer/pysqlite3)
and sqlite 3.25.0 or newer.
* TimestampField now uses 64-bit integer data-type for storage.
* Added support to pwiz and playhouse.reflection to enable generating
models from VIEWs.
* Added lower-level database API for introspecting VIEWs.
* Revamped continuous integration setup for better coverage, including 3.7 and
3.8-dev.
* Allow building C extensions even if Cython is not installed, by distributing
pre-generated C source files.
* Switch to using setuptools for packaging.
3.24.0-r1
Added constants:
* SQLITE_DBCONFIG_RESET_DATABASE, and support for it in Connection.config()
* SQLITE_LOCKED_VTAB, and SQLITE_CORRUPT_SEQUENCE extended result codes
Added keywords and updated the shell to use it.
Upstream changes:
1.86 - 2018-07-09
- Remove obsolete documentation about arrayrefref as the $source
argument for ->select (removed in version 1.74)
- Factor out the field list part of SELECT for subclassability (GH#13)
- Do not replace literal '0' with empty string in WHERE clauses (GH#14)
asyncpg v0.17.0:
Improvements
Official support for Python 3.7.
Bug Fixes
Fix garbage collection of connections and emit a ResourceWarning
if an unclosed connection is garbage collected.
Raise a clear error if there's a race in pool intialization.
Channel names in Connection.add_listener() and
Connection.remove_listener() are now quoted properly.
Fixed endianness detection on *BSD systems.
Fixed handling of large type OIDs.
Notable changes since 0.9.15:
- Python 3 support
- fallocate and sparse support in whisper-create
- Support FADVISE_RANDOM for create/update/update_many
- Add update-storage-times.py - a tool to change storage schemas for
whisper files and update the data. Threaded to vastly improve speed
over whisper-auto-resize.py
- Add optional destinationPath for rrd2whisper
- Add json output to whisper-diff.py script
- Add whisper-set-xfilesfactor.py utility
- whisper-fetch: add –time-format option
- Numerous bug fixes
Performing substitutions during post-patch breaks tools such as mkpatches,
making it very difficult to regenerate correct patches after making changes,
and often leading to substituted string replacements being committed.
3.5.2:
New guide to using window functions in Peewee.
New and improved table name auto-generation. This feature is not backwards compatible, so it is disabled by default. To enable, set legacy_table_names=False in your model's Meta options. For more details, see table names documentation.
Allow passing single fields/columns to window function order_by and partition_by arguments.
Support for FILTER (WHERE...) clauses with window functions and aggregates.
Added IdentityField class suitable for use with Postgres 10's new identity column type. It can be used anywhere AutoField or BigAutoField was being used previously.
Fixed bug creating indexes on tables that are in attached databases (SQLite).
Fixed obscure bug when using prefetch() and ModelAlias to populate a back-reference related model.
3.5.1:
New features
------------
New documentation for working with relationships in Peewee.
Improved tests and documentation for MySQL upsert functionality.
Allow database parameter to be specified with ModelSelect.get() method.
Add QualifiedNames helper to peewee module exports.
Add temporary= meta option to support temporary tables.
Allow a Database object to be passed to constructor of DataSet helper.
Bug fixes
---------
Fixed edge-case where attempting to alias a field to it's underlying column-name (when different), Peewee would not respect the alias and use the field name instead.
Raise a ValueError when joining and aliasing the join to a foreign-key's object_id_name descriptor. Should prevent accidentally introducing O(n) queries or silently ignoring data from a joined-instance.
Fixed bug for MySQL when creating a foreign-key to a model which used the BigAutoField for it's primary-key.
Fixed bugs in the implementation of user-defined aggregates and extensions with the APSW SQLite driver.
Fixed regression introduced in 3.5.0 which ignored custom Model __repr__().
Fixed regression from 2.x in which inserting from a query using a SQL() was no longer working.
Version 1.2.9
Fixed issue where chaining multiple join elements inside of Query.join() might not correctly adapt to the previous left-hand side, when chaining joined inheritance classes that share the same base class.
Fixed bug in cache key generation for baked queries which could cause a too-short cache key to be generated for the case of eager loads across subclasses. This could in turn cause the eagerload query to be cached in place of a non-eagerload query, or vice versa, for a polymorhic “selectin” load, or possibly for lazy loads or selectin loads as well.
Fixed bug in new polymorphic selectin loading where the BakedQuery used internally would be mutated by the given loader options, which would both inappropriately mutate the subclass query as well as carry over the effect to subsequent queries.
Fixed regression caused by 4256 (itself a regression fix for 4228) which breaks an undocumented behavior which converted for a non-sequence of entities passed directly to the Query constructor into a single-element sequence. While this behavior was never supported or documented, it’s already in use so has been added as a behavioral contract to Query.
Fixed an issue that was both a performance regression in 1.2 as well as an incorrect result regarding the “baked” lazy loader, involving the generation of cache keys from the original Query object’s loader options. If the loader options were built up in a “branched” style using common base elements for multiple options, the same options would be rendered into the cache key repeatedly, causing both a performance issue as well as generating the wrong cache key. This is fixed, along with a performance improvement when such “branched” options are applied via Query.options() to prevent the same option objects from being applied repeatedly.
version 0.9.10
The "op.drop_constraint()" directive will now render using repr() for
the schema name, in the same way that "schema" renders for all the other op
directives.
Added basic capabilities for external dialects to support rendering of
"nested" types, like arrays, in a manner similar to that of the Postgresql
dialect.
Fixed issue where "autoincrement=True" would not render for a column that
specified it, since as of SQLAlchemy 1.1 this is no longer the default
value for "autoincrement". Note the behavior only takes effect against the
SQLAlchemy 1.1.0 and higher; for pre-1.1 SQLAlchemy, "autoincrement=True"
does not render as was the case before.
What's new in psycopg 2.7.5:
- Allow non-ascii chars in namedtuple fields
- Fixed adaptation of arrays of arrays of nulls
- Fixed building on Solaris 11 and derivatives such as SmartOS and illumos
- Maybe fixed building on MSYS2
- Allow string subclasses in connection and other places
- Don't raise an exception closing an unused named cursor
- Wheel package compiled against PostgreSQL 10.4 libpq and OpenSSL 1.0.2o
asyncpg v0.16.0:
Behavior Changes
----------------
Pool.close() now waits until all acquired connections are released.
Hence, the below code will now hang indefinitely:
conn = await pool.acquire()
await pool.close()
Asyncpg will log a warning if pool.close() takes over 60 seconds to
complete. It is advisable to use asyncio.wait_for() to set a timeout.
Improvements
------------
Add support for reading passwords from .pgpass
Add Connection.is_in_transaction()
Added codec for built-in type tid
Allow setting custom codecs on domains and enumerated types
Allow passing datetime.date instances as timestamp input
Implement support for pool connection rotation
Bug Fixes
---------
Prohibit non-iterable containers to be passed as array input
Decode numeric zeros with correct scale
Fix handling of OIDs >= 2**31
Make Pool.close() wait until all checked out connections are released
Fix type codec cache races
Raise a consistent exception on input encoding errors
patch-configure and patch-src_Makefile.in removed since
they have applied upstream.
Changes from release notes:
* updated SQLStatement::fetchColumns() to return an empty
hash when no data is available
* fixed a bug where DBI-SELECT-ROW-ERROR exceptions were
being raised as MYSQL-SELECT-ROW-ERROR exceptions
* fixed formatting bugs in invalid value specification
error messages
* updated configure to find and compile with MariaDB and
Percona includes and libs
* placeholders and quotes in SQL comments are ignored
* fixed time column retrieval; the date component is now
set to 1970-01-01
* fixed binary and varbinary column handling
* fixed the "optimal-numbers" option with decimal values
with decimal points
* fixed returning result sets with duplicate column names
Changes from release notes:
* updated SQLStatement::fetchColumns() to return an empty
hash when no data is available
* fixed a formatting bug in an error message
* fixed selecting numeric values between 0 and 1
* fixed a bug where DBI-SELECT-ROW-ERROR exceptions were
being raised as PGSQL-SELECT-ROW-ERROR exceptions
2.2.12
======
Upgrading
---------
- See MAXIMUM TTL EXPIRATION DATE NOTICE above.
- Cassandra is now relying on the JVM options to properly shutdown on OutOfMemoryError. By default it will
rely on the OnOutOfMemoryError option as the ExitOnOutOfMemoryError and CrashOnOutOfMemoryError options
are not supported by the older 1.7 and 1.8 JVMs. A warning will be logged at startup if none of those JVM
options are used. See CASSANDRA-13006 for more details.
- Cassandra is not logging anymore by default an Heap histogram on OutOfMemoryError. To enable that behavior
set the 'cassandra.printHeapHistogramOnOutOfMemoryError' System property to 'true'. See CASSANDRA-13006
for more details.
2.2.11
======
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.10
======
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.9
=====
Upgrading
---------
- Compaction now correctly drops sstables out of CompactionTask when there
isn't enough disk space to perform the full compaction. This should reduce
pending compaction tasks on systems with little remaining disk space.
Deprecation
-----------
Since the security manager added in 3.0 only allows Java and JavaScript
UDFs to be run, UDFs for other languages are deprecated and support for
non-Java and non-JavaScript UDFs is deprecated in 2.2 and has been removed
in version 3.0.11.
2.2.8
=====
Upgrading
---------
- The ReversedType behaviour has been corrected for clustering columns of
BYTES type containing empty value. Scrub should be run on the existing
SSTables containing a descending clustering column of BYTES type to correct
their ordering. See CASSANDRA-12127 for more details.
2.2.7
=====
New features
------------
- JSON timestamps are now in UTC and contain the timezone information, see
CASSANDRA-11137 for more details.
Upgrading
---------
- Ec2MultiRegionSnitch will no longer automatically set broadcast_rpc_address
to the public instance IP if this property is defined on cassandra.yaml.
2.2.6
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.5
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.4
=====
Deprecation
-----------
- Pig support has been deprecated, and will be removed in 3.0.
Please see CASSANDRA-10542 for more details.
- Configuration parameter memory_allocator in cassandra.yaml has been deprecated
and will be removed in 3.0.0. As mentioned below for 2.2.0, jemalloc is
automatically preloaded on Unix platforms.
Operations
----------
- Switching data center or racks is no longer an allowed operation on a node
which has data. Instead, the node will need to be decommissioned and
rebootstrapped. If moving from the SimpleSnitch, make sure that the data
center and rack containing all current nodes is named "datacenter1" and
"rack1". To override this behaviour use -Dcassandra.ignore_rack=true and/or
-Dcassandra.ignore_dc=true.
- Reloading the configuration file of GossipingPropertyFileSnitch has been disabled.
- GC logging is now enabled by default (but you can disable it if you want by
commenting the relevant lines of the cassandra-env file).
Upgrading
---------
- The default for the inter-DC stream throughput setting
(inter_dc_stream_throughput_outbound_megabits_per_sec in cassandra.yaml) is
the same than the one for intra-DC one (200Mbps) instead of being unlimited.
Having it unlimited was never intended and was a bug.
New features
------------
- Time windows in DTCS are now limited to 1 day by default to be able to
handle bootstrap and repair in a better way. To get the old behaviour,
increase max_window_size_seconds.
- DTCS option max_sstable_age_days is now deprecated and defaults to 1000 days.
- Native protocol server now allows both SSL and non-SSL connections on
the same port.
2.2.3
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
2.2.2
=====
Upgrading
---------
- Version 1 and 2 of the native protocol are now deprecated and support
will be removed in Cassandra 3.0. You are encouraged to upgrade to a
client driver using version 3 of the native protocol.
Changed Defaults
----------------
- commitlog_total_space_in_mb will use the smaller of 8192, and 1/4
of the total space of the commitlog volume. (Before: always used
8192)
- Incremental repair is on by default since 2.2.0, run full repairs by
providing the '-full' parameter to nodetool repair.
- Parallel repairs are the default since 2.2.0, run sequential repairs
by providing the '-seq' parameter to nodetool repair.
- The following INFO logs were reduced to DEBUG level and will now show
on debug.log instead of system.log:
- Memtable flushing actions
- Commit log replayed files
- Compacted sstables
- SStable opening (SSTableReader)
New features
------------
- Custom QueryHandlers can retrieve the column specifications for the bound
variables from QueryOptions by using the hasColumnSpecifications()
and getColumnSpecifications() methods.
- A new default assynchronous log appender debug.log was created in addition
to the system.log appender in order to provide more detailed log debugging.
In order to disable debug logging, you must comment-out the ASYNCDEBUGLOG
appender on conf/logback.xml. See CASSANDRA-10241 for more information.
2.2.1
=====
Upgrading
---------
- Nothing specific to this release, but please see 2.2 if you are upgrading
from a previous version.
New features
------------
- COUNT(*) and COUNT(1) can be selected with other columns or functions
2.2
===
Upgrading
---------
- The authentication & authorization subsystems have been redesigned to
support role based access control (RBAC), resulting in a change to the
schema of the system_auth keyspace. See below for more detail.
For systems already using the internal auth implementations, the process
for converting existing data during a rolling upgrade is straightforward.
As each node is restarted, it will attempt to convert any data in the
legacy tables into the new schema. Until enough nodes to satisfy the
replication strategy for the system_auth keyspace are upgraded and so have
the new schema, this conversion will fail with the failure being reported
in the system log.
During the upgrade, Cassandra's internal auth classes will continue to use
the legacy tables, so clients experience no disruption. Issuing DCL
statements during an upgrade is not supported.
Once all nodes are upgraded, an operator with superuser privileges should
drop the legacy tables, system_auth.users, system_auth.credentials and
system_auth.permissions. Doing so will prompt Cassandra to switch over to
the new tables without requiring any further intervention.
While the legacy tables are present a restarted node will re-run the data
conversion and report the outcome so that operators can verify that it is
safe to drop them.
New features
------------
- The LIMIT clause applies now only to the number of rows returned to the user,
not to the number of row queried. By consequence, queries using aggregates will not
be impacted by the LIMIT clause anymore.
- Very large batches will now be rejected (defaults to 50kb). This
can be customized by modifying batch_size_fail_threshold_in_kb.
- Selecting columns,scalar functions, UDT fields, writetime or ttl together
with aggregated is now possible. The value returned for the columns,
scalar functions, UDT fields, writetime and ttl will be the ones for
the first row matching the query.
- Windows is now a supported platform. Powershell execution for startup scripts
is highly recommended and can be enabled via an administrator command-prompt
with: 'powershell set-executionpolicy unrestricted'
- It is now possible to do major compactions when using leveled compaction.
Doing that will take all sstables and compact them out in levels. The
levels will be non overlapping so doing this will still not be something
you want to do very often since it might cause more compactions for a while.
It is also possible to split output when doing a major compaction with
STCS - files will be split in sizes 50%, 25%, 12.5% etc of the total size.
This might be a bit better than old major compactions which created one big
file on disk.
- A new tool has been added bin/sstableverify that checks for errors/bitrot
in all sstables. Unlike scrub, this is a non-invasive tool.
- Authentication & Authorization APIs have been updated to introduce
roles. Roles and Permissions granted to them are inherited, supporting
role based access control. The role concept supercedes that of users
and CQL constructs such as CREATE USER are deprecated but retained for
compatibility. The requirement to explicitly create Roles in Cassandra
even when auth is handled by an external system has been removed, so
authentication & authorization can be delegated to such systems in their
entirety.
- In addition to the above, Roles are also first class resources and can be the
subject of permissions. Users (roles) can now be granted permissions on other
roles, including CREATE, ALTER, DROP & AUTHORIZE, which removesthe need for
superuser privileges in order to perform user/role management operations.
- Creators of database resources (Keyspaces, Tables, Roles) are now automatically
granted all permissions on them (if the IAuthorizer implementation supports
this).
- SSTable file name is changed. Now you don't have Keyspace/CF name
in file name. Also, secondary index has its own directory under parent's
directory.
- Support for user-defined functions and user-defined aggregates have
been added to CQL.
************************************************************************
IMPORTANT NOTE: user-defined functions can be used to execute
arbitrary and possibly evil code in Cassandra 2.2, and are
therefore disabled by default. To enable UDFs edit
cassandra.yaml and set enable_user_defined_functions to true.
CASSANDRA-9402 will add a security manager for UDFs in Cassandra
3.0. This will inherently be backwards-incompatible with any 2.2
UDF that perform insecure operations such as opening a socket or
writing to the filesystem.
Per the previous note about adding a security manager in 3.0, this security manager
means that non JavaScipt UDF's won't run, there for their use is deprecated.
************************************************************************
- Row-cache is now fully off-heap.
- jemalloc is now automatically preloaded and used on Linux and OS-X if
installed.
- Please ensure on Unix platforms that there is no libjnadispath.so
installed which is accessible by Cassandra. Old versions of
libjna packages (< 4.0.0) will cause problems - e.g. Debian Wheezy
contains libjna versin 3.2.x.
- The node now keeps up when streaming is failed during bootstrapping. You can
use new `nodetool bootstrap resume` command to continue streaming after resolving
an issue.
- Protocol version 4 specifies that bind variables do not require having a
value when executing a statement. Bind variables without a value are
called 'unset'. The 'unset' bind variable is serialized as the int
value '-2' without following bytes.
In an EXECUTE or BATCH request an unset bind value does not modify the value and
does not create a tombstone, an unset bind ttl is treated as 'unlimited',
an unset bind timestamp is treated as 'now', an unset bind counter operation
does not change the counter value.
Unset tuple field, UDT field and map key are not allowed.
In a QUERY request an unset limit is treated as 'unlimited'.
Unset WHERE clauses with unset partition column, clustering column
or index column are not allowed.
- New `ByteType` (cql tinyint). 1-byte signed integer
- New `ShortType` (cql smallint). 2-byte signed integer
- New `SimpleDateType` (cql date). 4-byte unsigned integer
- New `TimeType` (cql time). 8-byte long
- The toDate(timeuuid), toTimestamp(timeuuid) and toUnixTimestamp(timeuuid) functions have been added to allow
to convert from timeuuid into date type, timestamp type and bigint raw value.
The functions unixTimestampOf(timeuuid) and dateOf(timeuuid) have been deprecated.
- The toDate(timestamp) and toUnixTimestamp(timestamp) functions have been added to allow
to convert from timestamp into date type and bigint raw value.
- The toTimestamp(date) and toUnixTimestamp(date) functions have been added to allow
to convert from date into timestamp type and bigint raw value.
- SizeTieredCompactionStrategy parameter cold_reads_to_omit has been removed.
- The default JVM flag -XX:+PerfDisableSharedMem will cause the following tools JVM
to stop working: jps, jstack, jinfo, jmc, jcmd as well as 3rd party tools like Jolokia.
If you wish to use these tools you can comment this flag out in cassandra-env.{sh,ps1}
Upgrading
---------
- Thrift rpc is no longer being started by default.
Set `start_rpc` parameter to `true` to enable it.
- Pig's CqlStorage has been removed, use CqlNativeStorage instead
- Pig's CassandraStorage has been deprecated. CassandraStorage
should only be used against tables created via thrift.
Use CqlNativeStorage for all other tables.
- IAuthenticator been updated to remove responsibility for user/role
maintenance and is now solely responsible for validating credentials,
This is primarily done via SASL, though an optional method exists for
systems which need support for the Thrift login() method.
- IRoleManager interface has been added which takes over the maintenance
functions from IAuthenticator. IAuthorizer is mainly unchanged. Auth data
in systems using the stock internal implementations PasswordAuthenticator
& CassandraAuthorizer will be automatically converted during upgrade,
with minimal operator intervention required. Custom implementations will
require modification, though these can be used in conjunction with the
stock CassandraRoleManager so providing an IRoleManager implementation
should not usually be necessary.
- Fat client support has been removed since we have push notifications to clients
- cassandra-cli has been removed. Please use cqlsh instead.
- YamlFileNetworkTopologySnitch has been removed; switch to
GossipingPropertyFileSnitch instead.
- CQL2 has been removed entirely in this release (previously deprecated
in 2.0.0). Please switch to CQL3 if you haven't already done so.
- The results of CQL3 queries containing an IN restriction will be ordered
SQLite Release 3.24.0:
Add support for PostgreSQL-style UPSERT.
Add support for auxiliary columns in r-tree tables.
Add C-language APIs for discovering SQL keywords used by SQLite: sqlite3_keyword_count(), sqlite3_keyword_name(), and sqlite3_keyword_check().
Add C-language APIs for dynamic strings based on the sqlite3_str object.
Enhance ALTER TABLE so that it recognizes "true" and "false" as valid arguments to DEFAULT.
Add the sorter-reference optimization as a compile-time option. Only available if compiled with SQLITE_ENABLE_SORTER_REFERENCES.
Improve the format of the EXPLAIN QUERY PLAN raw output, so that it gives better information about the query plan and about the relationships between the various components of the plan.
Added the SQLITE_DBCONFIG_RESET_DATABASE option to the sqlite3_db_config() API.
CLI Enhancements:
Automatically intercepts the raw EXPLAIN QUERY PLAN output and reformats it into an ASCII-art graph.
Lines that begin with "#" and that are not in the middle of an SQL statement are interpreted as comments.
Added the --append option to the ".backup" command.
Added the ".dbconfig" command.
Performance:
UPDATE avoids unnecessary low-level disk writes when the contents of the database file do not actually change. For example, "UPDATE t1 SET x=25 WHERE y=?" generates no extra disk I/O if the value in column x is already 25. Similarly, when doing UPDATE on records that span multiple pages, only the subset of pages that actually change are written to disk. This is a low-level performance optimization only and does not affect the behavior of TRIGGERs or other higher level SQL structures.
Queries that use ORDER BY and LIMIT now try to avoid computing rows that cannot possibly come in under the LIMIT. This can greatly improve performance of ORDER BY LIMIT queries, especially when the LIMIT is small relative to the number of unrestricted output rows.
The OR optimization is allowed to proceed even if the OR expression has also been converted into an IN expression. Uses of the OR optimization are now also more clearly shown in the EXPLAIN QUERY PLAN output.
The query planner is more aggressive about using automatic indexes for views and subqueries for which it is not possible to create a persistent index.
Make use of the one-pass UPDATE and DELETE query plans in the R-Tree extension where appropriate.
Performance improvements in the LEMON-generated parser.
Bug fixes:
For the right-hand table of a LEFT JOIN, compute the values of expressions directly rather than loading precomputed values out of an expression index as the expression index might not contain the correct value.
Do not attempt to use terms from the WHERE clause to enable indexed lookup of the right-hand table of a LEFT JOIN.
Fix a memory leak that can occur following a failure to open error in the CSV virtual table
Fix a long-standing problem wherein a corrupt schema on the sqlite_sequence table used by AUTOINCREMENT can lead to a crash.
Fix the json_each() function so that it returns valid results on its "fullkey" column when the input is a simple value rather than an array or object.
=== 5.9.0 (2018-06-01)
* Support generated columns on MySQL 5.7+ and MariaDB 5.2+ (wjordan, jeremyevans) (#1517)
* Add escaped_like extension for creation of LIKE expressions with placeholders in the pattern without access to a dataset (jeremyevans)
* Modify jdbc adapter exception handling to work around ::NativeException deprecation in JRuby 9.2 (jeremyevans)
* Work around broken BC date handling in JRuby 9.2.0.0 (jeremyevans)
* Switch use of BigDecimal.new() to BigDecimal(), since the former is deprecated (jeremyevans)
* Add Sequel::VERSION_NUMBER for easier version comparisons (jeremyevans)
* Add Model.has_dataset? to determine if the model class has a dataset (AlexWayfer) (#1508)
* Support use of LIKE with ANY function on PostgreSQL by avoiding unnecessary use of ESCAPE syntax (jeremyevans)
* Disconnect connections left allocated by dead threads instead of returning the connections to the pool (jeremyevans)
* Make both threaded connection pools avoid disconnecting connections while holding the connection pool mutex (jeremyevans)
* Don't deadlock when disconnecting connections in the sharded_threaded connection pool when using connection_validator or connection_expiration extensions (jeremyevans)
* Don't modify hash argument passed in Model.nested_attributes in the nested_attributes plugin (jeremyevans)
* Avoid unnecessary hash creation in many places (jeremyevans)
* Fix duplicate objects in nested associations when eager_graphing cascaded many_to_one=>one_to_many associations (jeremyevans)
Backwards-incompatible changes
- Custom Model repr no longer use the convention of overriding
__unicode__, and now use __str__.
- Redesigned the sqlite json1 integration and changed some of the APIs
and semantics of various JSONField methods.
New features
- Better default repr for model classes and fields.
- ForeignKeyField() accepts a new initialization parameter,
deferrable, for specifying when constraints should be enforced.
- BitField.flag() can be called without a value parameter for the
common use-case of using flags that are powers-of-2.
- SqliteDatabase pragmas can be specified as a dict (previously
required a list of 2-tuples).
- SQLite TableFunction (docs) will print Python exception tracebacks
raised in the initialize and iterate callbacks, making debugging
significantly easier.
Bug fixes
- Fixed bug in migrator.add_column() where, if the field being added
declared a non-standard index type (e.g., binary json field with GIN
index), this index type was not being respected.
- Fixed bug in database.table_exists() where the implementation did
not match the documentation.
- Fixed bug in SQLite TableFunction implementation which raised errors
if the return value of the iterate() method was not a tuple.
Add a variable MAJOR, currently 2.4, and instead of open-coding 2.4 in
PLIST, use ${MAJOR}, and teach print-PLIST how to invert that in only
the right places.
No functional change; this just reduces work on updating.
Release 1.2.8 includes a fairly broad spectrum of fixes, including fixes for some memory/synchronization issues within the connection pool, automap and statement caching functionalities, as well as some issues that were introduced in the 1.2 series related to the horizontal sharding extension as well as the dogpile.caching example. Users of the dogpile.cache recipe should review the changes here when migrating to SQLAlchemy 1.2.
- Fixed possible CVE-2018-1058 attack paths
- Fixed "unexpected index definition" after CVE-2018-1058 changes in
PostgreSQL
- Fixed build with recent Ubuntu packages
Backwards-incompatible changes
- The regexp() operation is now case-sensitive for MySQL and Postgres.
To perform case-insensitive regexp operations, use iregexp().
- The SQLite BareField() field-type now supports all column
constraints except specifying the data-type. Previously it silently
ignored any column constraints.
- LIMIT and OFFSET parameters are now treated as parameterized values
instead of literals.
- The schema parameter for SQLite database introspection methods is no
longer ignored by default. The schema corresponds to the name given
to an attached database.
- ArrayField now accepts a new parameter field_kwargs, which is used
to pass information to the array field's field_class initializer.
New features and other changes
- SQLite backup interface supports specifying page-counts and a
user-defined progress handler.
- GIL is released when doing backups or during SQLite busy timeouts
(when using the peewee SQLite busy-handler).
- Add NATURAL join-type to the JOIN helper.
- Improved identifier quoting to allow specifying distinct
open/close-quote characters. Enables adding support for MSSQL, for
instance, which uses square brackets, e.g. [table].[column].
- Unify timeout interfaces for SQLite databases (use seconds
everywhere rather than mixing seconds and milliseconds, which was
confusing).
- Added attach() and detach() methods to SQLite database, making it
possible to attach additional databases (e.g. an in-memory cache
db).
- New change streams API functions were not marked extern "C"
- mongoc_collection_watch now accepts a pipeline argument as a BSON
array, in addition to accepting a BSON document with a "pipeline"
array field
- Crashes in several change stream error handling paths
- Commands could return false with an empty bson_error_t after a
replica set reconfig
- Network error messages omitted the command name when using OP_MSG
3.3.4
- Added a BinaryUUIDField class for efficiently storing UUIDs in
16-bytes.
- Fix dataset's update_cache() logic so that when updating a single
table that was newly-added, we also ensure that all dependent tables
are updated at the same time.
3.3.3
- More efficient implementation of model dependency-graph generation.
Improves performance of recursively deleting related objects by
omitting unnecessary subqueries.
- Added union(), union_all(), intersect() and except_() to the
Model-specific query implementations. This was an oversight that
should have been patched in 3.3.2, but is fixed in 3.3.3.
- Major cleanup to test runner and standardized test skipping logic to
integrate with standard-library unittest conventions.
3.3.2
- Add methods for union(), union_all, intersect() and except_().
Previously, these methods were only available as operator overloads.
- Removed some Python 2.6-specific support code, as 2.6 is no longer
officially supported.
- Fixed model-graph resolution logic for deferred foreign-keys.
- Better support for UPDATE...FROM queries (Postgresql).
SECURITY ISSUES
One security vulnerability has been closed by this release:
CVE-2018-1115: Too-permissive access control list on function pg_logfile_rotate()
Please see the "Updating" section below for post-update steps.
BUG FIXES AND IMPROVEMENTS
This update also fixes over 50 bugs reported in the last several months. Some of these issues affect only version 10, but many affect all supported versions.
These fixes include:
Fix incorrect volatility and parallel-safety markings on several built-in functions to ensure correct query planning optimizations
Several fixes for partitioning, including potential crashes as well as allowing TRUE and FALSE to be used as partition bounds
Fix where a new TOAST value could be assigned to a dead-but-not-yet-vacuumed TOAST OID, which would result in an error similar to "unexpected chunk number 0 (expected 1) for toast value nnnnn"
Fix "CREATE TABLE ... LIKE" with bigint identity columns on 32-bit platforms
Fix memory leak within the runtime of a query that repeatedly executes hash joins
Several crash fixes around queries using GROUPING SET
Avoid failure if a query-cancel or session-termination interrupt occurs while committing a prepared transaction
Reduce locking during autovacuum worker scheduling, which prevents loss of potential worker concurrency
Fix possible slow execution of REFRESH MATERIALIZED VIEW CONCURRENTLY
Several fixes around query plans that use "index-only" scans
Avoid deadlocks in concurrent CREATE INDEX CONCURRENTLY commands that are run under SERIALIZABLE or REPEATABLE READ transaction isolation
Several fixes for SP-GiST indexes, including one collation-aware searches on text columns
Fixes related to counting the number of tuples in partial GiST, SP-GiST, and Bloom indexes
Several fixes for logical decoding and replication
Fix misquoting of values for list-valued GUC variables (e.g. local_preload_libraries, session_preload_libraries, shared_preload_libraries, temp_tablespaces) in dumps
Several fixes for pg_stat_activity
Several fixes for ecpg
Fix for pg_recvlogical to ensure compatibility with PostgreSQL versions released before 10
Several fixes for pg_rewind
1.22.2:
* Include the Negator when reverse engineering SQL for operators
* Fix the psql plugin command on OSX to work more reliably
* Prevent a crash in some situtions where the database connection is lost and needs to be reset.
* Fix display of elapsed query time for queries running longer than 1 hour
1.22.1:
* Don't barf when connecting to Greenplum or Greenplum HAWQ
* Fix selection of conversion functions in the CREATE CONVERSION dialogue
* Properly quote type names in the Type dialogue, and ensure range information is displayed for existing types
Notable changes since 1.0.0:
- RSQLite has been rewritten (essentially from scratch) in C++ with
Rcpp.
- You can now use SQLite’s URL specification for databases.
- Queries, query parameters and table data are always converted to
UTF-8 before being sent to the database.
- New strategy for prepared queries. Create a prepared query with
dbSendQuery() or dbSendStatement() and bind values with dbBind().
- dbSendQuery(), dbGetQuery(), dbSendStatement() and dbExecute() also
support inline parameterised queries.
- Improve column type inference.
- dbFetch() uses the same row name strategy as dbReadTable().
- dbColumnInfo() will now return information even before you’ve
retrieved any data.
- New sqliteVersion() prints the header and library versions of
RSQLite.
- Deprecation warnings are given only once, with a clear reference to
the source.
- datasetsDb() now returns a read-only database, to avoid
modifications to the installed file.
- Values of class "integer64" are now supported for dbWriteTable() and
dbBind().
- New connections now automatically load default RSQLite extensions.
- Implement dbUnquoteIdentifier().
=== 5.8.0 (2018-05-01)
* Don't mark SQLAnywhere as supporting WITH in INSERT statement (jeremyevans)
* Support :search_path as a shard option on PostgreSQL (jeremyevans)
* Add Dataset#nowait for raising a Sequel::DatabaseLockTimeout when a locked row is encountered, supported on PostgreSQL, MySQL 8+, MSSQL, and Oracle (jeremyevans)
* Support Dataset#skip_locked on MySQL 8+ (jeremyevans)
* Make schema modification methods in the pg_enum extension work on a frozen Database object (jeremyevans)
* Support common table expressions and window functions on MySQL 8+ (jeremyevans)
* Ignore Dataset#explain :extended option on MySQL 5.7+, since extended output is then the MySQL default (jeremyevans)
* Work around REGEXP BINARY not working correctly on MySQL 8+ by using REGEXP_LIKE with the 'c' match_type (jeremyevans)
* Force correct column order in Database#foreign_key_list on MySQL (jeremyevans)
* Add ConnectionPool#connection_expiration_random_delay to connection_expiration extension, to avoid thundering herd if preallocating connections (hex2a, jeremyevans) (#1503)
* Emit deprecation warning in association_proxies plugin if using #filter on an association proxy, since behavior will change on ruby 2.6+ (utilum) (#1497)
* Handle multiple add_constraint calls and a set_column_null call in the same alter_table block on SQLite (jeremyevans) (#1498)
* Add Database#rename_enum to the pg_enum extension (AlexWayfer) (#1495)
* Make tactical_eager_loading plugin respect the :allow_eager association option (jeremyevans) (#1494)
* Add pg_auto_constraint_validations plugin, for automatically converting constraint violations to validation failures on PostgreSQL (jeremyevans)
* Don't make Model#_valid? public in the error_splitter plugin (jeremyevans)
* Support Database#indexes :include_partial option on PostgreSQL for including partial indexes (jeremyevans)
* Include more diagnostic information in Database#error_info on PostgreSQL (jeremyevans)
* Support Database#foreign_key_list :reverse option on PostgreSQL for parsing foreign key constraints that reference a given table (jeremyevans)
* Add Database#check_constraints on PostgreSQL for parsing CHECK constraints (jeremyevans)
* Don't use identity columns if :serial=>true or :type=>:serial|:bigserial column options are used (#1490) (jeremyevans)
* Cache Dataset#select_all datasets if no arguments are given (jeremyevans)
* Cache Dataset#returning datasets if no arguments are given (jeremyevans)
* Cache Dataset#qualify datasets if no argument is given (jeremyevans)
* Cache Dataset#lateral datasets (jeremyevans)
* Cache Dataset#from_self datasets if no options are given (jeremyevans)
* Cache Dataset#distinct datasets if no arguments or block is given (jeremyevans)
=== 5.7.0 (2018-04-01)
* Add Sequel.start_timer and .elapsed_seconds_since for more accurate elapsed time calculations on ruby 2.1+ (jeremyevans)
* Run Dataset#with_sql_{all,each,first,single_value} using a cached dataset to avoid clobbering the dataset's columns (jeremyevans)
* Add Database#convert_serial_to_identity on PostgreSQL 10.2+, which requires superuser access (jeremyevans)
* Fix Database#server_version when connecting to PostgreSQL 10.1+ in certain cases (jeremyevans)
* Free temporary clobs in the jdbc/oracle adapter to prevent a memory leak (jeremyevans) (#1482)
* Treat prepared statement errors due to changing types as disconnect errors in the postgres adapter (jeremyevans) (#1481)
* Add integer64 extension for treating Integer as a 64-bit integer when used as a generic type (jeremyevans)
* Allow many_to_pg_array remove_all_* method cast appropriately to work correctly for non-integer types (jeremyevans)
* Fix array_type for pg_array_to_many and many_to_pg_array associations in pg_array_associations plugin (jeremyevans)
* Use identity columns instead of serial columns for primary keys on PostgreSQL 10.2+ (jeremyevans)
* Support :identity option when creating columns on PostgreSQL 10+ to create identity columns (jeremyevans)
* Add Dataset#overriding_{system,user}_value on PostgreSQL for use with PostgreSQL 10+ identity columns (jeremyevans)
* Set :auto_increment schema entry correctly for PostgreSQL 10+ identity columns (jeremyevans)
0.5.1 (2018/04/11)
New Features
* None
Bug Fixes
* Fix with --with-mysql-dir (#952)
* Prevent command out of sync errors with Prepared Statements (#956, #957, #958)
Changes
* Specs: Use the prepared statement performance schema if available (#960)
* README mysql2 0.5.x works with Rails 5.0.7, 5.1.6, and higher
* README be sure to read about the known limitations of prepared statements
Wed Feb 28 2018 version 0.99999 released
* update to compile with newer Ruby releases, thanks
Lars Kanis for patch
* added ODBC::Database.login_timeout to get/set the
SQL_LOGIN_TIMEOUT connection attribute
Wed Feb 15 2017 version 0.99998 released
* minor update to compile with Ruby 2.4, thangs to Kevin Deisz
* preset output vars before SQLColAttributes() call
patch-ab no longer needed just since 15 Jan 2018(!)
5 years worth of changes including:
- C++11 is now required. Your compiler must have shared_ptr, noexcept, etc.
- Removed pqxx::items. Use the new C++11 initialiser syntax.
- Removed maketemporary. We weren't using it.
- Can now be built outside the source tree.
- New, simpler, lambda-friendly transactor framework.
- New, simpler, prepared statements and parameterised statements.
- Result rows can be passed around independently.
- New exec0(): perform query, expect zero rows of data.
- New exec1(): perform query, expect (and return) a single row of data.
- New exec_n(): perform query, expect exactly n rows of data.
- No longer defines Visual Studio's NOMINMAX in headers.
- Much faster configure script.
- Most configuration items are gone.
- Retired all existing capability flags.
- Documentation on readthedocs.org, thanks Tim Sheerman-Chase.
- Expose SQLSTATE error codes in sql_error exceptions.
- Adds a first-generation parser for SQL arrays.
Changes in MySQL 5.7.22:
Deprecation and Removal Notes
These compatibility SQL modes are now deprecated and will be removed in MySQL 8.0: DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS. These deprecations have two implications:
Assigning a deprecated mode to the sql_mode system variable produces a warning.
With the MAXDB SQL mode enabled, using CREATE TABLE or ALTER TABLE to add a TIMESTAMP column to a table produces a warning.
Statements that use these deprecated SQL modes may fail when replicated from a MySQL 5.7 master to a MySQL 8.0 slave, or may have different effects on master and slave. To avoid such problems, applications that use the modes deprecated in MySQL 5.7 should be revised not to use them.
Test Suite Notes
Reduction of compiler and platform differences in GIS handling of floating-point results enables simplification of related test cases that no longer need rounding to avoid spurious test failures.
X Plugin Notes
X Plugin connection attempts using the X Protocol did not return an error when the default database specified in the connection options was invalid, and the connection was allowed with a null default database. Connection attempts using the classic MySQL protocol did return an error and disallowed the connection. X Protocol connection attempts now also disallow the connection if an invalid schema is specified.
Functionality Added or Changed
Replication: Changes introduced in version 8 which enable XCom to identify members using the concept of an incarnation have been merged in to version 5.7. These underlying changes add a UUID to members each time they join a group and this information can be used to distinguish among different member incarnations.
Replication: It is now possible to specify whether information written into the binary log enables replication slaves to parallelize based on commit timestamps, or on transaction write sets.
JSON: The JSON_MERGE() function is renamed to JSON_MERGE_PRESERVE().
JSON: Added the JSON utility function JSON_PRETTY(), which prints an existing JSON value, or any string that can successfully be parsed as a JSON document, in a format that can be easily read by humans. Each JSON object member or array value is displayed on a separate line of the output; each child object or array is intended 2 spaces with respect to its parent.
Bugs Fixed
Version 5.0.5 (2018-04-25)
------------------------------
- This version officially supports the new PostgreSQL 10.
- The memory for the string with the number of rows affected by a classic pg
module query() was already freed (bug report and fix by Peifeng Qiu).
Ok OWNER.
- Fixed long-standing bug in 3.x regarding using column aliases with
queries that utilize the ModelCursorWrapper (typically queries with
one or more joins).
- Fix typo in model metadata code, thanks @klen.
- Add examples of using recursive CTEs to docs.
5.26.2:
Security
[CVE-2018-6797] heap-buffer-overflow (WRITE of size 1) in S_regatom (regcomp.c)
A crafted regular expression could cause a heap buffer write overflow, with control over the bytes written.
[CVE-2018-6798] Heap-buffer-overflow in Perl__byte_dump_string (utf8.c)
Matching a crafted locale dependent regular expression could cause a heap buffer read overflow and potentially information disclosure.
[CVE-2018-6913] heap-buffer-overflow in S_pack_rec
pack() could cause a heap buffer write overflow with a large item count.
Assertion failure in Perl__core_swash_init (utf8.c)
Control characters in a supposed Unicode property name could cause perl to crash. This has been fixed.
Updated Modules and Pragmata
Module::CoreList has been upgraded from version 5.20170922_26 to 5.20180414_26.
PerlIO::via has been upgraded from version 0.16 to 0.17.
Term::ReadLine has been upgraded from version 1.16 to 1.17.
Unicode::UCD has been upgraded from version 0.68 to 0.69.
Selected Bug Fixes
The readpipe() built-in function now checks at compile time that it has only one parameter expression, and puts it in scalar context, thus ensuring that it doesn't corrupt the stack at runtime.
Fixed a use after free bug in pp_list introduced in Perl 5.27.1.
Parsing a sub definition could cause a use after free if the sub keyword was followed by whitespace including newlines (and comments).
The tokenizer now correctly adjusts a parse pointer when skipping whitespace in an ${identifier} construct.
Accesses to ${^LAST_FH} no longer assert after using any of a variety of I/O operations on a non-glob.
sort now performs correct reference counting when aliasing $a and $b, thus avoiding premature destruction and leakage of scalars if they are re-aliased during execution of the sort comparator.
Some convoluted kinds of regexp no longer cause an arithmetic overflow when compiled.
Fixed a duplicate symbol failure with -flto -mieee-fp builds. pp.c defined _LIB_VERSION which -lieee already defines.
A NULL pointer dereference in the S_regmatch() function has been fixed.
Failures while compiling code within other constructs, such as with string interpolation and the right part of s///e now cause compilation to abort earlier.
- Added support for SQLite's new ON CONFLICT clause, which is modelled
on the syntax used by Postgresql and will be available in SQLite
3.24.0 and onward.
- Added better support for using common table expressions and a
cleaner way of implementing recursive CTEs, both of which are also
tested with integration tests (as opposed to just checking the
generated SQL).
- Modernized the CI environment to utilize the latest MariaDB
features, so we can test window functions and CTEs with MySQL (when
available).
- Reorganized and unified the feature-flags in the test suite.
- Added ValuesList for representing values lists.
- DateTimeField, DateField and TimeField will parse formatted-string
before sending to the database. Previously this only occurred when
reading values from the database.
- Smarter handling of model-graph when dealing with compound queries
(union, intersect, etc).
- If the same column-name is selected multiple times, first value
wins.
- If ModelSelect.switch() is called without any arguments, default to
the query's model.
- Fix issue where cloning a ModelSelect query did not result in the
joins being cloned.
=== Bug fixes
Engine::
- Harden periodically check to avoid endless flush loop
Ingest::
- Don't allow referencing the pattern bank name in the pattern bank
Java High Level REST Client::
- Bulk processor#awaitClose to close scheduler
Java Low Level REST Client::
- REST client: hosts marked dead for the first time should not be
immediately retried
Network::
- Cross-cluster search and default connections can get crossed
Percolator::
- Fixed bug when non percolator docs end up in the search hits
- Fixed a msm accounting error that can occur during analyzing a
percolator query
- Fix more query extraction bugs.
- Fix some query extraction bugs.
Plugins::
- Plugins: Fix native controller confirmation for non-meta plugin
Search::
- Propagate ignore_unmapped to inner_hits
Settings::
- Archive unknown or invalid settings on updates
3.14.0
======
Features
--------
- Add one() function to the ResultSet API
- Create an utility function to fetch concurrently many keys from the
same replica
- Allow filter queries with fields that have an index managed outside
of cqlengine
- Twisted SSL Support
- Support IS NOT NULL operator in cqlengine
Other
-----
- Fix Broken Links in Docs
- Reevaluate MONKEY_PATCH_LOOP in test codebase
- Remove CASS_SERVER_VERSION and replace it for CASSANDRA_VERSION in
tests
- Refactor CASSANDRA_VERSION to a some kind of version object
- Log warning when driver configures an authenticator, but server does
not request authentication
- Warn users when using the deprecated
Session.default_consistency_level
- Add DSE smoke test to OSS driver tests
- Document long compilation times and workarounds
- Improve error for batch WriteTimeouts
- Deprecate ResultSet indexing
3.13.0
======
Features
--------
- cqlengine: LIKE filter operator
- Support cassandra.query.BatchType with cqlengine BatchQuery
Bug Fixes
---------
- AttributeError: 'NoneType' object has no attribute 'add_timer'
- Support retry_policy in PreparedStatement
- __del__ method in Session is throwing an exception
- LZ4 import issue with recent versions
- ResponseFuture._connection can be None when returning request_id
- ResultSet.was_applied doesn't support batch with LWT statements
Other
-----
- cqlengine: avoid warning when unregistering connection on shutdown
- Fix DeprecationWarning of log.warn
- Fix example_mapper.py for python3
- Possible deadlock on cassandra.concurrent.execute_concurrent
- Add some known deprecated warnings for 4.x
- Remove copyright dates from copyright notices
- Remove "Experimental" tag from execution profiles documentation
- request_timer metrics descriptions are slightly incorrect
- Remove "Experimental" tag from cqlengine connections documentation
- Set in documentation default consistency for operations is LOCAL_ONE
2.5:
- abstract layer now handles auxiliary classes
- pwdLAstSet in AD is valid for 0 and -1
- fixed extend.novell.get_universal_password
- entryUUID is properly validated in search filters
- custom attribute formatters are properly applied when parsing the search filter
- REUSABLE strategy now honours credentials when changed in the original connection
- add operation doesn't change passed attribute dict anymore
- missing entry's attribute return False when searching instead of raising an exception
- fixed ad_timestamp evaluation for integers
- wrong exception raised when user name is empty in simple binding
- exception is raised if size limit is exceed when searchin in mocking strategies with raise_exceptions=True
- fixed validator for novell guid
- fixed validator for openldap EntryUUID
- fixed validator for AD objectGUID, now follows MS-DTYP
- fixed formatter for AD objectGUID
- fixed exception when adding binary values
- added escape_rdn_chars() to ldap3.utils.dn for safe checking untrusted input while building DNs
- fixed search for binary values in mock strategies
- fixed exception with unicode chars in subfilters for python 2
- connection.extend.paged_search() doens't miss the last entries anymore when size limit is exceeded for the search on the server
- validators are not applied when loading data from json dump in Mock strategies
- additional validator to check for erroneous bytes to string conversion in Python 3
- additional formatter and validator to check for generalizedtime with 0 year
- added ADDITIONAL_CLIENT_ENCODINGS parameter
- fixed AD dir_sync extended operation
- ad_unlock_account works properly
- added Microsoft security descriptor control
- fixed search in mock strategies when raise_exceptions=True
- formatters never raise exceptions but returns the raw_value when unable to format
- fixed comtrols duplication in paged search
- pwiz tool will capture column defaults defined as part of the
table schema.
- Fixed a misleading error message.
- Ensure reuse_if_open parameter has effect on pooled databases.
- Added support for on update/delete when migrating foreign-key.
- Fixed bug in SQL generation for subqueries in aliased functions.
SQLiteC++ offers an encapsulation arround the native C APIs of SQLite,
with a few intuitive and well documented C++ class. It is designed
using the Resource Acquisition Is Initialization (RAII) idom, and
throwing exceptions in case of SQLite errors (exept in destructors,
where assert() are used instead). Each SQLiteC++ object must be
constructed with a valid SQLite database connection, and then is
always valid until destroyed.
2.3.6:
Single bug fix that ws a possible security issue so I have pushed a version out.
Fix order of arguments in SQLWriteFileDSN.c, fix unwanted free() in iusql.c
Add pkg-config files
SQLite Release 3.23.1:
Fix two problems in the new LEFT JOIN strength reduction optimization.
Fix misbehavior of the FTS5 xBestIndex method.
Fix a harmless reference to an uninitialized virtual machine register.
Fix the CLI so that it builds with -DSQLITE_UNTESTABLE
Fix the eval.c extension so that it works with PRAGMA empty_result_callbacks=ON.
Fix the generate_series virtual table so that it correctly returns no rows if any of its constraints are NULL.
Performance enhancements in the parser.
- Compatibility with Sphinx 1.7.0
- Ensure a change stream uses the proper session id while iterating
- Fix a rare crash in pooled mode when a replica set member was
disconnected
Upstream changes:
1.58 2018-03-28
- Switched to a production version.
1.57_01 2018-03-21
- Made it an error to fetch attributes from a statement
handle whose database handle is inactive (ribasushi++)
6.2.0
------------------
- cleanup for SSL Context
- Add X-Pack clients to -py
- Adding Gzip support for capacity constrained networks
- ``_routing`` in bulk action has been deprecated in ES. Introduces a
breaking change if you use ``routing`` as a field in your documents.
6.1.1
------------------
- Updates to SSLContext logic to make it easier to use and have saner
defaults.
- Doc updates
6.1.0
------------------
- Bad release
=== Enhancements
Highlighting::
- Limit analyzed text for highlighting (improvements)
Recovery::
- Require translogUUID when reading global checkpoint
=== Bug fixes
Core::
- Remove special handling for _all in nodes info
Engine::
- Avoid class cast exception from index writer
- Maybe die before failing engine
- Never block on key in `LiveVersionMap#pruneTombstones`
Ingest::
- Continue registering pipelines after one pipeline parse failure.
Java High Level REST Client::
- REST high-level client: encode path parts
Packaging::
- Delay path expansion on Windows
Percolator::
- Fix percolator query analysis for function_score query
- Improved percolator's random candidate query duel test
Snapshot/Restore::
- Fix NPE when using deprecated Azure settings
Stats::
- Fix AdaptiveSelectionStats serialization bug
3.2.2
- Added support for passing Model classes to the returning() method
when you intend to return all columns for the given model.
- Fixed a bug when using user-defined sequences, and the underlying
sequence already exists.
- Added drop_sequences parameter to drop_table() method which allows
you to conditionally drop any user-defined sequences when dropping
the table.
3.2.1
- If both mysql-python and pymysql libraries are installed, Peewee
will use pymysql by default.
- Added new module playhouse.mysql_ext which includes
MySQLConnectorDatabase, a database implementation that works with
the mysql-connector driver.
- Added new field to ColumnMetadata class which captures a database
column's default value. ColumnMetadata is returned by
Database.get_columns().
- Added documentation on making Peewee async.
3.2.0
- Potentially backwards-incompatible change: Field.coerce renamed to
Field.adapt.
3.1.6
- Added rekey() method to SqlCipher database for changing encryption
key and documentation for set_passphrase() method.
- Added convert_values parameter to ArrayField constructor, which will
cause the array values to be processed using the underlying
data-type's conversion logic.
- Fixed unreported bug using TimestampField with sub-second
resolutions.
- Fixed bug where options were not being processed when calling
drop_table().
- Some fixes and improvements to signals extension.
Version 2.8.3
-------------
- Fixed bug where cursor.description was an emtpy tuple instead of None for
non-SELECT statements
Version 2.8.2
-------------
- Make sure pysqlite compiles with Visual Studio, which does not support C99
- Switch to sqlite3_open_v2. The flags parameter is now exposed. You can use it
to modify the behaviour of the opened database connection, for example
opening a database file in read-only mode or enable URI mode.
Version 2.8.1
-------------
BUG FIXES
- Fixed multiple refcount problems.
IMPROVEMENTS
- Added versionchanged about changed transaction behaviour wrt DDL statements
to documentation.
- I was informed by Roger Binns that FTS5 is not stable yet. The amalgamation
is now built with FTS3 and FTS4 instead.
Version 2.8.0
-------------
NEW FEATURES
- No new features, but tons of bugfixes. These mean that things now work that
didn't before:
- Transactional DDL now works
- You can use SAVEPOINTs now
BUILD PROCESS
- Python 2.7.x is now required. If trying to use it with Python 3, print a
useful error message. Integrated all fixes from the sqlite3 module in Python
2.7.10.
MAJOR IMPROVEMENTS
- Completety got rid of statement parsing. We now use SQLite functions to
determine if a statement modifies the database or not. If a statement
modifies the database, then we implicitly start a transaction. For backwards
compatibility reasons, we do NOT implicitly start a transaction if we
encounter a DDL statement.
You can, however, now have transactional DDL if you want to:
cur = con.cursor()
cur.execute("begin")
cur.execute("create table foo(bar)")
con.rollback()
This also means that people can now finally use SAVEPOINTS.
- Use sqlite3_get_autocommit() to determine if we are within a transaction
instead of trying to be smart.
- Switch to v2 statement API. This simplified the code and will increase
stability.
MINOR IMPROVEMENTS
- You can use unicode strings as index for Row objects.
BUGFIXES
- Fixed a regression: statements should not be reset after a commit.
GENERAL CLEANUP AND DEPRECATIONS
- Since december 2005, row_factory is a feature of the Connection class
instead of the Cursor class.
- DEPRECATE converters and adapters.
- DEPRECATE text_factory.
- Remove compatibility workarounds for old Python versions.
- Remove workarounds for old SQLite versions.
- Remove apsw related code.
Version 2.7.0
-------------
NEW FEATURES
- The limit functionality of SQLite is now wrapped.
BUILD PROCESS
- Instead of fts3, build fts5 extension when using amalgamation.
- use pkg-config for finding SQLite if available
- Removed the download/unpacking of SQLite amalgamation files.
IMPROVEMENTS
- Use toc.db file from the SQLite web site and a custom script to make sure
that we have all integer constants mapped to Python.
- Use Travis CI
- Added Trove classifier to make sure Python 3 users do not accidentally
try to install it.
BUGFIXES
- Fix for parsing fractional second part of timestamps.
- Fixed bug where when using converters, empty strings ended up as None
on the Python side.
- SQLite can cope with text with embedded NUL. We can now, too.
- many others
- Fix a critical AOF bug when fsync policy set to "always"
- Latency monitor could report wrong latencies under certain conditions.
- AOF rewriting could fail when a backgronud rewrite is triggered and
at the same time the AOF is switched on/off.
- Redis Cluster crash-recovery safety improved.
- Other smaller fixes (check commnits).
- Redis Cluster has now the ability to configure certain slaves so that
they'll never attempt a failover.
- Keyspace notifications API in modules.
- RM_Call() is now faster by reusing the same client.
- Tracking of the percentage of keys already logically expired but yet
not evicted.
SQLite Release 3.23.0:
Add the sqlite3_serialize() and sqlite3_deserialize() interfaces when the SQLITE_ENABLE_DESERIALIZE compile-time option is used.
Recognize TRUE and FALSE as constants. (For compatibility, if there exist columns named "true" or "false", then the identifiers refer to the columns rather than Boolean constants.)
Support operators IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE.
Added the SQLITE_DBSTATUS_CACHE_SPILL option to sqlite3_db_status() for reporting the number of cache spills that have occurred.
The "alternate-form-2" flag ("!") on the built-in printf implementation now causes string substitutions to measure the width and precision in characters instead of bytes.
If the xColumn method in a virtual table implementation returns an error message using sqlite3_result_error() then give that error message preference over internally-generated messages.
Added the -A command-line option to the CLI to make it easier to manage SQLite Archive files.
Add support for INSERT OR REPLACE, INSERT OR IGNORE, and UPDATE OR REPLACE in the Zipfile virtual table.
Enhance the sqlite3changeset_apply() interface so that it is hardened against attacks from deliberately corrupted changeset objects.
Added the sqlite3_normalize() extension function.
Query optimizer enhancements:
Improve the omit-left-join optimization so that it works in cases where the right-hand table is UNIQUE but not necessarily NOT NULL.
Improve the push-down optimization so that it works for many LEFT JOINs.
Add the LEFT JOIN strength reduction optimization that converts a LEFT JOIN into an ordinary JOIN if there exist terms in the WHERE clause that would prevent the extra all-NULL row of the LEFT JOIN from appearing in the output set.
Avoid unnecessary writes to the sqlite_sequence table when an AUTOINCREMENT table is updated with an rowid that is less than the maximum.
Bug fixes:
Fix the parser to accept valid row value syntax.
Fix the query planner so that it takes into account dependencies in the arguments to table-valued functions in subexpressions in the WHERE clause.
Fix incorrect result with complex OR-connected WHERE and STAT4.
Fix potential corruption in indexes on expressions due to automatic datatype conversions.
Assertion fault in FTS4.
Incorrect result on the less-than operator in row values.
Always interpret non-zero floating-point values as TRUE, even if the integer part is zero.
Fix an issue in the fsdir(PATH) table-valued function to the fileio.c extension, that caused a segfault if the fsdir() table was used as the inner table of a join.
Issue an error rather instead of an assertion-fault or null-pointer dereference when the sqlite_master table is corrupted so that the sqlite_sequence table root page is really a btree-index page.
Fix the ANALYZE command so that it computes statistics on tables whose names begin with "sqlite".
Additional fixes for issues detected by OSSFuzz:
Fix a possible infinite loop on VACUUM for corrupt database files.
Disallow parameters in the WITH clause of triggers and views.
Fix a potential memory leak in row value processing.
Improve the performance of the replace() SQL function for cases where there are many substitutions on megabyte-sized strings, in an attempt to avoid OSSFuzz timeouts during testing.
Provide an appropriate error message when the sqlite_master table contains a CREATE TABLE AS statement. Formerly this caused either an assertion fault or null pointer dereference. Problem found by OSSFuzz on the GDAL project.
Incorrect assert() statement removed.
Fix a problem with using the LIKE optimization on an INTEGER PRIMARY KEY.
OpenLDAP 2.4.46 Release (2018/03/22)
Fixed libldap connection delete callbacks when TLS fails to start
Fixed libldap to not reuse tls_session if TLS hostname check fails
Fixed libldap cross-compiling with OpenSSL 1.1
Fixed libldap OpenSSL 1.1.1 compatibility with BIO_method
Fixed libldap MozNSS CA certificate hash matching
Fixed libldap MozNSS with PEM certs when also using an NSS cert db
Fixed libldap MozNSS initialization
Fixed libldap GnuTLS with GNUTLS_E_AGAIN
Fixed libldap memory leak with cancel operations
Fixed slapd Eventlog registry key creation on 64-bit Windows
Fixed slapd to maintain SSF across SASL binds
Fixed slapd syncrepl deadlock when updating cookie
Fixed slapd syncrepl callback to always be last in the stack
Fixed slapd telephoneNumberNormalize when the value is spaces and hyphens
Fixed slapd CSN queue processing
Fixed slapd-ldap TLS connection timeout with high latency connections
Fixed slapd-ldap to ignore unknown schema when omit-unknown-schema is set
Fixed slapd-mdb with an optimization for long lived read transactions
Fixed slapd-meta assert when olcDbRewrite is modified
Fixed slapd-sock with LDAP_MOD_INCREMENT operations
Fixed slapo-accesslog cleanup to only occur on failed operations
Fixed slapo-dds entryTTL to actually decrease as per RFC 2589
Fixed slapo-syncprov memory leak with delete operations
Fixed slapo-syncprov to not clear pending operation when checkpointing
Fixed slapo-syncprov to correctly record contextCSN values in the accesslog
Fixed slapo-syncprov not to log checkpoints to accesslog db
Fixed slapo-syncprov to process changes from this SID on REFRESH
Fixed slapo-syncprov session log parsing to not block other operations
Build Environment
Fixed Windows build with newer MINGW version
Fixed compiler warnings and removed unused variables
Contrib
Fixed ldapc++ Control structure
Documentation
Delete stub manpage for back-ldbm
Fixed ldap_bind(3) to mention the LDAP_SASL_SIMPLE mechanism
Fixed ldap.conf(5) to note SASL_MECH/SASL_REALM are no longer user-only
Fixed slapd-config(5) typo for olcTLSCipherSuite
Fixed slapo-syncprov(5) indexing requirements
Release 1.2.6 includes a variety of fixes including a connection-pool related issue which could cause a connection to be added to the pool without all of the "connect" event handlers being called.
0.07049 - 2018-03-21
- Fix tests when the path to perl has spaces in it (GH#19)
- Inline String::CamelCase::wordsplit() due to RT#123030
- Get enum values from DBD::Pg if it's new enough
- Remove dependency on DBIx::Class::IntrospectableM2M
0.07048_01 - 2018-02-23
- Convert from Module::Install to ExtUtils::MakeMaker + Distar (GH#17)
0.51 - 2018-03-24, H.Merijn Brand
* Dot-in-inc (cpantesters)
0.50 - 2018-03-21, H.Merijn Brand
* Explain more about header folding
* It's 2017
* BOM handling
* Some documentation enhancements
* Ignore DBI_DSN if it is not CSV
* It's 2018
* Test with perl-5.26, DBI-1.641, SQL::Statement-1.412, and
Text::CSV_XS-1.35
0.5.0 2018/3/21
Breaking Changes
* Ruby 2.0 or higher required. Ruby 1.8.7 and Ruby 1.9.3 are not supported.
* MySQL 5.5 or higher required. MySQL 5.0 and 5.1 are not supported.
New Features
* Expose mysql_set_server_option to turn multiple statements on and off (#943)
* Accept query options on Statement#execute (#912)
* Support connect attributes and the program_name attribute (#760)
* Make server_status variable available (#755)
Bug Fixes
* Fix wrong value of type YEAR on big endian environment (#921)
* MySQL 8.0.3 Release Candidate removes MYSQL_SECURE_AUTH (#891)
* Suppress Fixnum and Bignum warnings on Ruby 2.4 (#907)
Changes
* Resolve warnings for my_bool vs. bool types (#916, #919)
* Call BigDecimal(num) instead of BigDecimal.new(num) (#925, #928)
* GitHub is HTTPS by default (#922)
* Misc Cleanups (#918)
* More specific exception classes (#260, #404, #870, 911)
* Update RuboCop to 0.50.x (#752)
* Prefix more C functions with rb_mysql_ (#910)
* Fix compat with RubyInstaller-2.4 on Windows (#875)
0.9.9:
feature
Added new flag --indicate-current to the alembic history command. When listing versions, it will include the token “(current)” to indicate the given version is a current head in the target database.
bug
The fix for 455 in version 0.9.6 involving MySQL server default comparison was entirely non functional, as the test itself was also broken and didn’t reveal that it wasn’t working. The regular expression to compare server default values like CURRENT_TIMESTAMP to current_timestamp() is repaired.
Fixed bug where MySQL server default comparisons were basically not working at all due to incorrect regexp added in 455. Also accommodates for MariaDB 10.2 quoting differences in reporting integer based server defaults.
Fixed bug in op.drop_constraint() for MySQL where quoting rules would not be applied to the constraint name.
Changes in DBI 1.641 - 19th March 2018
Remove dependency on Storable 2.16 introduced in DBI 1.639
thanks to Ribasushi #60
Avoid compiler warnings in Driver.xst #59
thanks to pali #59
pkgsrc change:
* Update HOMEPAGE
* Add LICENSE
* Support multiple rails.
2.6.1
* Fix homepage URL in gemspec.
2.6.0
* Add the join alias helper.
* Add ability to pass table aliases to join_association.
2.5.0
* Add license information to gemspec so it is parsed by verifiers
(@petergoldstein #31)
* Update QueryBuilder#reflect to create deep copy of builder (@wycleffsean
#32)
= Active Record -- Object-relational mapping put on rails
Active Record connects classes to relational database tables to establish an
almost zero-configuration persistence layer for applications. The library
provides a base class that, when subclassed, sets up a mapping between the new
class and an existing table in the database. In context of an application,
these classes are commonly referred to as *models*. Models can also be
connected to other models; this is done by defining *associations*.
This is for Ruby on Rails 5.1.
Add some missing dependencies.
0.9997 2018-03-15T21:13:52Z
- Fixed the Firebird engine to properly detect multiple instances of a
change specified to `revert` and `verify`, matching the behavior of
displaying tag-qualified alternates added to the other engines in
v0.9996.
- Fixed test failure on Windows.
- Updated the MySQL and PostgreSQL tests to use process-specific database
names, to try to avoid conflicts when tests are being run by multiple
processes on the same box, as happens with CPAN smoke testing boxes.
- Fixed an issue where Sqitch would sometimes truncate the registry
version number fetched from Postgres, most likely because the Perl
runtime was using 32-bit integers. Fixed by casting the version to text
in the query, before Perl ever see it. Thanks to Malte Legenhausen for
the report (#343).
- The MySQL engine will now read the username from MySQL configuration
files. Thanks to Eliot Alter for the bug report (#353).
- Added Italian translation, with thanks to Luca Ferrari and @BeaData!
- Improved multi-value config examples in the `sqitch-config`
documentation to be a bit less confusing. Thanks to Emil for reporting
where he got confused!
- Added the Exasol engine. Thanks to Johan Wärlander for the PR (#362)!
- Fixed an issue where URI::db needed to be explicitly loaded. Thanks to
Hugh Esco for the report (#370)!
- Changed the exit value for `rebase` and `revert` from 1 to 0 when there
is no work to do. This is to match the expectation of non-zero exit
statuses only when a command is unsuccessful, as well as the behavior
of `deploy` as of v0.995. Nothing to do is considered successful.
Thanks to Paul Williams for the PR (#374)!
- Update `psql` options to use a conninfo string to honor connection
parameter key words for PostgreSQL targets. It can now take advantage
of the connection service file using `db:pg:///?service=$PGSERVICE` as
well as other connection parameters. Thanks to Paul Williams for the PR
(#375)!
## 3.1.5
- Fixed Python 2/3 incompatibility with `itertools.izip_longest()`.
## 3.1.4
- Added `BigAutoField` to support 64-bit auto-incrementing primary
keys.
- Use Peewee-compatible datetime serialization when exporting JSON
from a `DataSet`. Previously the JSON export used ISO-8601 by default.
- Added `Database.batch_commit` helper to wrap iterators in chunked
transactions.
## 3.1.3
- Fixed issue where scope-specific settings were being updated
in-place instead of copied.
- Fixed bug where setting a `ForeignKeyField` did not add it to the
model's "dirty" fields list.
- Use pre-fetched data when using `prefetch()` with `ManyToManyField`.
- Use `JSON` data-type for SQLite `JSONField` instances.
- Add a `json_contains` function for use with SQLite `json1` extension.
- Various documentation updates and additions.
## Rails 4.2.10 (September 27, 2017) ##
* `Relation#joins` is no longer affected by the target model's
`current_scope`, with the exception of `unscoped`.
Fixes#29338.
*Sean Griffin*
## Rails 4.2.9 (June 26, 2017) ##
* Fix regression caused by `collection_singular_ids=` ignoring different primary key on relationship.
*Nick Pezza*
* Fix `rake db:schema:load` with subdirectories.
*Ryuta Kamizono*
* Fix `rake db:migrate:status` with subdirectories.
*Ryuta Kamizono*
* Fix regression of #1969 with SELECT aliases in HAVING clause.
*Eugene Kenny*
* Fix `wait_timeout` to configurable for mysql2 adapter.
Fixes#26556.
*Ryuta Kamizono*
* Make `table_name=` reset current statement cache,
so queries are not run against the previous table name.
*namusyaka*
- Fixed issue where scope-specific settings were being updated
in-place instead of copied.
- Fixed bug where setting a ForeignKeyField did not add it to
the model's "dirty" fields list.
- Use pre-fetched data when using prefetch() with ManyToManyField.
- Use JSON data-type for SQLite JSONField instances.
- Add a json_contains function for use with SQLite json1 extension.
- Various documentation updates and additions.
Release 1.2.5 includes a series of fixes across the Core and ORM components including CTE fixes, an adjustment for Python 3.7, as well as bugs involving new 1.2 features.
=== 5.6.0 (2018-03-01)
* Dedup :db_type strings in schema hashes on Ruby 2.5+ (jeremyevans)
* Make schema_caching extension work with :callable_default schema values (jeremyevans)
* Freeze string valuse in hashes returned by Database#schema when using the schema_caching extension (jeremyevans)
* Protect migration file loading with a mutex to not break when multiple threads load migration files simultaneously (jeremyevans)
* Respect identifier mangling rules when renaming columns on Microsoft SQL Server (jeremyevans)
1.56 2018-02-28
- Switched to a production version.
1.55_07 2018-01-27
- This is a developer release to help testing DBIx::Class
- Upgraded SQLite to 3.22.0
- Disabled two STAT compile time options (tentatively),
which fixes RT-124227 anyway
1.55_06 2018-01-27
- This is a developer release to help testing DBIx::Class
- Downgraded SQLite to 3.19.3 because of a SQLite regression
(RT-124227, ribasushi++)
- Fixed some tests to adapt to a change in error format
introduced by the latest DBI
- Remove no warnings test from t/43_fts.t which failed under
some environments
1.55_05 2017-12-16
- Implemented ParamValues statement handle attribute (RT-123886)
1.55_04 2017-11-22
- Updated SQLite to 3.21.0
- Resolved#122581: statistics_info() doesn't work correctly
(John Deighan)
- Fixed typo (GH#26, ReneNyffenegger)
- Silenced some warnings (GH#25, Jacques Germishuys)
- Fixed no dot in @INC issue (GH#24, ribasushi)
- Fixed zero-length BLOB value is retrieved as undef
(GH#23, SATO Kentaro)
- Fixed VirtualTable::PerlData to use new ops added in SQLite 3.21.0
(GH#28, fschlich)
- noted on sqlite_extended_result_codes handle attribute
1.55_03 2017-02-14
- Updated SQLite to 3.17.0
1.55_02 2017-01-08
- Updated SQLite to 3.16.2
- Fixed statistics_info when only unique indexes were requested (Dave
Rolsky++). GitHub #21
1.55_01 2017-01-04
- Updated SQLite to 3.16.0
* O.k. by gdt@
Changelog:
PostGIS 2.4.3
2018/01/17
* Bug fixes *
- #3713, Support encodings that happen to output a '\' character
- #3827, Set configure default to not do interrupt testing,
was causing false negatives for many people (Regina Obe)
revised to be standards compliant in #3988 (Greg Troxel)
- #3930, Minimum bounding circle issues on 32-bit platforms
- #3965, ST_ClusterKMeans used to lose some clusters on initialization
(Darafei Praliaskouski)
- #3956, Brin opclass object does not upgrade properly (Sandro Santilli)
- #3982, ST_AsEncodedPolyline supports LINESTRING EMPTY and MULTIPOINT EMPTY
(Darafei Praliaskouski)
- #3975, ST_Transform runs query on spatial_ref_sys without schema
qualification. Was causing restore issues. (Paul Ramsey)
* Enhancements *
- #3944, Update to EPSG register v9.2 (Even Rouault)
PostgreSQL 10.3, 9.6.8, 9.5.12, 9.4.17, and 9.3.22:
The purpose of this release is to address CVE-2018-1058, which describes how a user can create like-named objects in different schemas that can change the behavior of other users' queries and cause unexpected or malicious behavior, also known as a "trojan-horse" attack. Most of this release centers around added documentation that describes the issue and how to take steps to mitigate the impact on PostgreSQL databases.