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