Commit graph

8176 commits

Author SHA1 Message Date
gdt
548424443d databases/postgresql-postgis2: Update to 2.5.2
PostGIS 2.5.2
2019/03/11

 * Bug fixes *

  - #4231, Support for PostgreSQL 12dev (remove use of pg_constraint.consrc)
           (Regina Obe, Laurenz Albe)
  - #4247, Avoid undefined behaviour in next_float functions (Raúl Marín)
  - #4249, Fix undefined behaviour in raster intersection (Raúl Marín)
  - #4246, Fix undefined behaviour in ST_3DDistance (Raúl Marín)
  - #4244, Avoid unaligned memory access in BOX2D_out (Raúl Marín)
  - #4139, Make mixed-dimension ND index build tree correctly.
  WARNING: REINDEX your ND index on tables that have records with different M/Z
           dimensions for &&& operator to work predictably.
           (Darafei Praliaskouski, Arthur Lesuisse, Andrew Gierth, Raúl Marín)
  - #4262, Document MULTISURFACE compatibility of ST_LineToCurve (Steven Ottens)
  - #4267, Enable Proj 6 deprecated APIs (Darafei Praliaskouski, Raúl Marín)
  - #4276, ST_AsGeoJSON documentation refresh (Darafei Praliaskouski)
  - #4273, Tighter parsing of WKT (Paul Ramsey)
  - #4292, ST_AsMVT: parse JSON numeric values with decimals as doubles (Raúl Marín)
  - #4300, ST_AsMVTGeom: Always return the simplest geometry (Raúl Marín)
  - #4301, ST_Subdivide: fix endless loop on coordinates near coincident to bounds
           (Darafei Praliaskouski)
  - #4261, Use AccessShareLock in spatial_index_read_extent (Paul Ramsey)
  - #4289, ST_AsMVTGeom: Transform coordinates space before clipping (Raúl Marín)
  - #4275, Avoid passing a NULL pointer to GEOSisEmpty (Raúl Marín)
  - #4296, Use `server_version_num` instead of parsing `version()` (Raúl Marín)
  - #4290, More robust geography distance (Paul Ramsey)
  - #4283, Avoid final point duplicates for circle stroking (Paul Ramsey)
  - #4314, ST_ClipByBox2D: Do not throw when the geometry is invalid (Raúl Marín)
  - #4313, #4307, PostgreSQL 12 compatibility (Laurenz Albe, Raúl Marín)
  - #4290, Schema qualify geometry casts in raster functions (Regina Obe)
  - #4086, Constraint violation loading tiger_data (zcta5 geometry type) (Regina Obe)
2019-03-12 00:18:28 +00:00
bsiegert
7455fa5a88 all: revbump Go packages, now that they use go112 to build 2019-03-09 10:05:01 +00:00
adam
41ac3bab4a py-peewee: updated to 3.9.2
3.9.2:
This release contains a fix for a test that was failing when 3.9.1 was tagged and released.

3.9.1:
Includes a bugfix for an AttributeError that occurs when using MySQL with the MySQLdb client.
2019-03-06 18:36:13 +00:00
adam
40a42c4335 py-peewee: updated to 3.9.0
3.9.0:
New and improved stuff
Added new document describing how to use peewee interactively.
Added convenience functions for generating model classes from a pre-existing database, printing model definitions and printing CREATE TABLE sql for a model. See the "use peewee interactively" section for details.
Added a __str__ implementation to all Query subclasses which converts the query to a string and interpolates the parameters.
Improvements to sqlite_ext.JSONField regarding the serialization of data, as well as the addition of options to override the JSON serialization and de-serialization functions.
Added index_type parameter to Field
Added DatabaseProxy, which allows one to use database-specific decorators with an uninitialized Proxy object.
Added support for INSERT ... ON CONFLICT when the conflict target is a partial index (e.g., contains a WHERE clause). The OnConflict and on_conflict() APIs now take an additional conflict_where parameter to represent the WHERE clause of the partial index in question.
Enhanced the playhouse.kv extension to use efficient upsert for all database engines. Previously upsert was only supported for sqlite and mysql.
Re-added the orwhere() query filtering method, which will append the given expressions using OR instead of AND.
Added some new examples to the examples/ directory
Added select_from() API for wrapping a query and selecting one or more columns from the wrapped subquery. Docs.
Added documentation on using row values.
Removed the (defunct) "speedups" C extension, which as of 3.8.2 only contained a barely-faster function for quoting entities.

Bugfixes
Fix bug in SQL generation when there was a subquery that used a common table expressions.
Enhanced prefetch() and fixed bug that could occur when mixing self-referential foreign-keys and model aliases.
MariaDB 10.3.3 introduces backwards-incompatible changes to the SQL used for upsert. Peewee now introspects the MySQL server version at connection time to ensure proper handling of version-specific features.
Fixed bug where TimestampField would treat zero values as None when reading from the database.
2019-03-06 08:37:57 +00:00
adam
56be3855fe mongodb: updated to 4.0.6
4.0.6:
Issues fixed:
SERVER-37778: Platform Support: Add Community & Enterprise Ubuntu 18.04 (zSeries)
SERVER-37777: Platform Support: Add Community SLES12 (zSeries)
SERVER-37775: Platform Support: Add Community RHEL7 (zSeries)
SERVER-39180: Wrong initial chunk owner shard can be selected when sharding non-empty collection with pre-created zones
SERVER-32146: Log slow oplog entry application
SERVER-38293: Make listDatabases understand collection privileges
SERVER-38887: Mongo.getDBs() does not correctly inspect privileges

4.0.5:
Issues fixed:
SERVER-36437: The dbstats command should lock the database in MODE_IS instead of MODE_S
SERVER-37182: Different values when referencing whole object vs. a field of that object after $arrayToObject
SERVER-37200: $match stage following $listSessions not working against mongos
SERVER-37557: Add startup warning about enableMajorityReadConcern and usage of arbiters

4.0.4:
Issues fixed:
SERVER-26854: LockStats for sub-operations should not include time for previous sub ops
SERVER-35323: sessionId matching ignores userId part of the lsid
SERVER-37058: Update with numeric field names inside an array can cause validation to fail
SERVER-37132: Negation of $in with regex can incorrectly plan from the cache, leading to missing query results
TOOLS-2069: mongoreplay does not support SCRAM-SHA-256
TOOLS-2131: mongorestore hang in replaying oplog with –archive and –oplogReplay option

4.0.3:
Issues fixed:
SERVER-19815: Make repair more robust with the WiredTiger storage engine
SERVER-35989: db.collection.countDocuments() and db.collection.estimatedDocumentCount() helpers
SERVER-36982: Reintroduce enableMajorityReadConcern:false server parameter

4.0.2:
Issues fixed:
SERVER-35720: Allow zones to be created on non-existent collection
SERVER-35441: drop/dropDatabase does not cleanup config.tags
SERVER-36102: Create initial chunks on appropriate shards for zoned sharding
SERVER-36070: Aggregation with $out results in error when Auditing is enabled
SERVER-34846: Covered index with collated field returns incorrect result when collation not involved in match or sort
SERVER-34664: Commands that are unsupported in a transaction should error

4.0.1:
Issues fixed:
SERVER-33000: Platform Support: add Ubuntu 18.04.
SERVER-34933: PCRE verb support.
SERVER-35101: Handle bindIp argument that contains whitespaces.
SERVER-36027: Enterprise build does not recognize the --redactClientLogData flag.
2019-03-05 19:35:58 +00:00
jaapb
228210efdc Updated databases/ocaml-sqlite3 for dune compatibility.
Package is now compatible with dune 1.7; revbump.
2019-03-05 16:25:25 +00:00
taca
9f0215308b databases/ruby-cassandra: remove package
Remove a package which dose not maintained any more.
2019-03-05 15:56:38 +00:00
taca
2ae8a436f6 databases/Makefile: remove ruby-cassandra 2019-03-05 15:55:13 +00:00
taca
99fd98f157 databases/Makefile: remove ruby-activerecord-cassandra 2019-03-05 15:52:13 +00:00
taca
8c46ace0ca databases/ruby-activerecord-cassandra: remove package
Remove a package which dose not maintained any more.
Source codes moved from GitHub to bitbucket, but no commit since then.
2019-03-05 15:51:26 +00:00
adam
13b04ccf99 php-mongodb: updated to 1.5.3
MongoDB PHP Driver 1.5.0:

It supports all new features for MongoDB 2.6, including:

Aggregate can now return a cursor
Aggregation pipelines can now be explained
Possible to set maxTimeMS for commands and queries
Transparent support for the new command-based MongoDB write API
New MongoWriteBatch classes (using the new MongoDB write API)
Support for MongoDB Enterprise features (e.g. Kerberos, LDAP, X509)
Option to tune acceptable server latency for secondary reads (secondaryAcceptableLatencyMS)
With this release, some driver functionality which was previously documented as deprecated will now formally raise deprecation notices. This includes:

Instantiating the Mongo class
Calling MongoCursor::slaveOkay()
"wtimeout" and "safe" options for MongoCollection write operations
Manipulating public properties on core classes (such as $collection->w)


MongoDB PHP Driver 1.4.0:

The 1.4 series introduced fundemental changes in how connections are created to the MongoDB servers. The driver now utilizes PHP native streams, so all normal PHP stream options apply. Furthermore, an experimental Stream Context Support was added.

The 1.4.x series also added support for MongoDB 2.4.x.

The most important improvements however deal with the handling of replica sets, especially nodes that timeout and nodes that are unreachable for various reasons. Besides the improvements to replica set handling, this release addresses issues with read preferences through mongos nodes. It also adds support for SSL enabled connections as well as journal and fsync connection string options.
2019-03-05 14:26:42 +00:00
adam
22d9ab4943 mongo-c-driver: updated to 1.14.0
mongo-c-driver 1.14.0
=====================
It is my pleasure to announce the MongoDB C Driver 1.14.0.

Features:
  * Support for OpenSSL 1.1.1 and its implementation of TLS v1.3.
  * New function mongoc_stream_should_retry.
  * New accessor mongoc_server_description_last_update_time.
  * New method mongoc_client_reset to be called after forking.

Bug fixes:
  * OP_MSG with unacknowledged writes (write concern of w:0) would serialize
    incorrectly on big-endian platforms, causing writes to use the default
    write concern of w:1.
  * mongoc_collection_update_many and mongoc_collection_delete_many would fail
    with the URI option retryWrites=true.
  * In a transaction, the driver now properly ignores the readConcern configured
    on a client, database, or collection: only the mongoc_transaction_opt_t's
    readConcern is used.
  * Remove timestamp from uninstall scripts to permit reproducible build.
  * Setting mongoc_ssl_opt_t.pem_file or ca_file to a bad file path caused a
    hang with Darwin SSL.
  * Fix the ENABLE_SASL cmake option:
    * Remove unnecessary GSSAPI value. It was equivalent to specifying ENABLE_SASL=CYRUS.
    * ENABLE_SASL=AUTO now correctly chooses SSPI on Windows instead of CYRUS.
  * The client pool failed to set proper apm callbacks for clients created
    via try_pop().


mongo-c-driver 1.13.1
=====================
It is my pleasure to announce the MongoDB C Driver 1.13.1.

Bug fixes:
  * mongoc_collection_update_many and mongoc_collection_delete_many would fail
    with the URI option retryWrites=true.
  * Remove timestamp from uninstall scripts to permit reproducible build.
  * Add missing header files to the release tarball to fix compilation when
    configuring with ENABLE_SASL=GSSAPI.
  * Separate libmongoc and libbson uninstall scripts so they do not overwrite
    each other.
  * Fix running make install with DESTDIR.


mongo-c-driver 1.13.0
=====================
It is my pleasure to announce the MongoDB C Driver 1.13.0.

Features:
  * Report a new error code, MONGOC_ERROR_GRIDFS_CORRUPT, when a chunk larger
    than chunkSize is detected. Before, the driver had crashed with an assert.
  * Restructure of install directory. All mongoc headers are under mongoc/
    and all bson headers are under bson/. The preferred way of including the
    headers are mongoc/mongoc.h and bson/bson.h respectively.
    Forwarding headers in the root are provided for backwards compatibility.
  * The default CMake build type had been unspecified, now it is RelWithDebInfo.
  * Support LibreSSL 2.7+.

Bug fixes:
  * mongoc_collection_replace_one is now a correctly exported symbol.
  * Fix multiple issues with readConcern and writeConcern inheritance.
  * Fix rare crash with mongodb+srv URIs on Windows.
  * mongoc_gridfs_create_file_from_stream ignored errors while writing chunks
    to the server.
  * The following functions should not have taken a "bypassDocumentValidation"
    option in bson_t *opts, the option is now prohibited:
    - mongoc_bulk_operation_insert_with_opts
    - mongoc_bulk_operation_update_one_with_opts
    - mongoc_bulk_operation_update_many_with_opts
    - mongoc_bulk_operation_replace_one_with_opts
  * The heartbeat-succeeded and heartbeat-failed events (part of SDAM
    Monitoring) had uninitialized "duration" fields, they are now set correctly.


mongo-c-driver 1.12.0
=====================
It is my pleasure to announce the MongoDB C Driver 1.12.0.

Features:
  * New function mongoc_client_session_in_transaction to check if a multi-
    document transaction is started.
  * New examples for change streams and transactions, improved guide for
    migrating from mongoc_collection_count to mongoc_collection_count_documents

Bug fixes:
  * Fix occasional crash in sharded queries
  * Retry all retryable write concern errors
  * mongoc_client_session_commit_transaction sets the correct error label when
    the primary is unavailable
  * mongoc_collection_find_with_opts had prohibited read preference "primary"
    in a transaction
  * mongoc_collection_aggregate had not inherited its mongoc_collection_t's
    read preference; only an explicitly provided read preference was used.
  * Allow unencoded delimiters in username/password if unambiguous


mongo-c-driver 1.11.0
=====================
It is my pleasure to announce the MongoDB C Driver 1.11.0. This release adds
support for MongoDB 4.0 features. It includes the following additions and
improvements:
  * Multi-document transactions, see mongoc_client_session_start_transaction
  * New function mongoc_error_has_label to check for specific error labels such
    as "TransientTransactionError" or "UnknownTransactionCommitResult" in
    error replies.
  * New functions to subscribe to changes on an entire client or database:
    - mongoc_client_watch
    - mongoc_database_watch
  * New option for change streams, "startAtOperationTime".
  * mongoc_collection_count_with_opts is deprecated for two new functions:
    - mongoc_collection_count_documents
    - mongoc_collection_estimated_document_count
  * Support for SCRAM-SHA-256 authentication, including support for non-ASCII
    passwords using libicu is an optional dependency.
  * Faster mongoc_database_get_collection_names_with_opts fetches only names,
    not the entire collection metadata.

Additional changes not specific to MongoDB 4.0:
  * All "destroy" functions such as mongoc_collection_destroy now ignore a NULL
    argument.
  * The driver now returns an error if you attempt to use "arrayFilters" in an
    update with a MongoDB server older than 3.6.
  * Update functions include a new "upsertedCount" field in the reply document.
  * Replace MD5 with FNV-1a hash to generate ObjectIds (for FIPS compliance).

Bug fixes:
  * Functions incorrectly marked with the "const" compiler attribute are now
    marked as "pure", fixes build error when link-time optimization is enabled.


mongo-c-driver 1.10.3
=====================
No change since 1.10.2; released to keep pace with libbson's version.


mongo-c-driver 1.10.2
=====================
It is my pleasure to announce the MongoDB C Driver 1.10.2. This release fixes
the libbson and libmongoc installed library filenames and SONAMEs on Linux.
They had changed unintentionally with the switch to CMake in 1.10.0; they are
now consistent with 1.9.x and previous releases. Thanks to Roberto C. Sánchez
for the fix.


mongo-c-driver 1.10.1
=====================
It is my pleasure to announce the MongoDB C Driver 1.10.1. This release fixes
the following bugs introduced in version 1.10.0:

  * Client sessions were not prohibited with unacknowledged write concern and
    mongoc_bulk_operation_execute; now they are prohibited. Client sessions have
    been prohibited with all other unacknowledged writes since 1.10.
  * The "arrayFilters" update option, new in MongoDB 3.6 and supported since
    libmongoc 1.9.0, was inadvertently prohibited by
    mongoc_bulk_operation_update_one_with_opts and
    mongoc_bulk_operation_update_many_with_opts in 1.10. The option is now
    permitted again.
  * The mongoc-stat tool for displaying shared counters was disabled on Linux
    and not installed; it is now restored.


mongo-c-driver 1.10.0
=====================
It is my pleasure to announce MongoDB C Driver 1.10.0. This version drops
support for MongoDB 2.6 and adds the following features and bugfixes:

  * libbson and libmongoc are now maintained in the mongo-c-driver repository,
    although they are still built as separate libraries, and libbson can still
    be used without libmongoc.
  * Building libbson and libmongoc now requires CMake on all platforms. The
    Autotools build scripts ("configure" and related scripts) have been deleted.
    See the "installing" page for updated instructions, including the new
    ENABLE_MONGOC option and changes to the ENABLE_BSON option.
  * IPv6 is now fully supported and conforms to RFC-6555. If a hostname has both
    IPv4 and IPv6 DNS records, the driver tries connecting with IPv6 first. If a
    connection can't be established after 250ms then IPv4 is tried in parallel.
    Whichever succeeds connection first cancels the other. The successful DNS
    result is cached for 10 minutes.
  * If CMake is configured with ENABLE_SSL=AUTO (the default), libmongoc now
    uses native TLS libraries on Mac and Windows, and OpenSSL everywhere else.
    Before, it would search for OpenSSL on all platforms and only use native
    TLS on Mac and Windows as a fallback.
  * The driver now handshakes SSL connections to multiple servers in a replica
    set or sharded cluster in parallel, so long as it uses OpenSSL or Windows
    SChannel. (SSL handshakes with Apple's Secure Transport are still serial.)
    A larger receive buffer with SChannel increases performance over slow
    connections.
  * All functions that accept read concern now prohibit it, if MongoDB is too
    old to support it (MongoDB 3.0).
  * Client sessions are now prohibited with unacknowledged writes.
  * mongoc_collection_find_and_modify_with_opts now prohibits write concern if
    MongoDB is too old to support it (MongoDB 3.0).
  * Other helper functions for commands that write, now prohibit write concern
    if MongoDB is too old to support it (pre-3.4):
      mongoc_client_read_write_command_with_opts
      mongoc_client_write_command_with_opts
      mongoc_collection_read_write_command_with_opts
      mongoc_collection_write_command_with_opts
      mongoc_database_read_write_command_with_opts
      mongoc_database_write_command_with_opts
      mongoc_collection_aggregate with $out
      mongoc_collection_drop_index_with_opts
      mongoc_collection_drop_with_opts
      mongoc_collection_rename_with_opts
      mongoc_database_drop_with_opts
    Write concern behavior is unchanged for regular CRUD functions.
  * Setting a negative writeConcern level of -2 or smaller, via the "opts"
    parameter to functions that accept BSON options, is now prohibited. The
    special "w" values -2 through -4 are only used internally. The deprecated
    "w=-1" is still allowed, as a synonym for "w=0".
  * The Kerberos URI option authMechanismProperties=CANONICALIZE_HOST_NAME:true
    is now implemented with the Windows Kerberos provider, SSPI.
  * This repository now includes GDB and LLDB customizations for pretty-printing
    bson_t structs as JSON while debugging. See the "debugging" page.
  * The internal preprocessor symbol HAVE_STRINGS_H has been renamed
    BSON_HAVE_STRINGS_H. If you maintain a handwritten bson-config.h you must
    rename this symbol.
  * The following helper functions do not work with mongoc_client_session_t,
    they are deprecated in favor of running MongoDB commands directly with a
    function like mongoc_client_read_command_with_opts:
      mongoc_client_get_server_status
      mongoc_collection_stats
      mongoc_collection_validate
  * mongoc_cursor_is_alive is now deprecated for mongoc_cursor_more, which is
    functionally equivalent.
2019-03-05 14:24:13 +00:00
markd
b925d2c20b postgresql10-contrib: fix build on linux 2019-03-04 07:21:55 +00:00
taca
61c3122cbc databases/ruby-arel30: remove package
Remove ruby-arel30 package which is kept for ruby-activerecord32 package.
2019-03-03 16:14:30 +00:00
taca
dc7eb4231e databases/Makefile: remove ruby-arel30 2019-03-03 16:13:44 +00:00
taca
5a2982286f databases/ruby-activerecord32: remove package
Remove ruby-activerecord32, a part of Ruby on Rails 3.2 packages which is
already EOL.
2019-03-03 16:02:00 +00:00
taca
51994ea724 databases/Makefile: remove ruby-activerecord32 2019-03-03 16:01:30 +00:00
taca
550612e794 databases/ruby-dm-rails: remove package
Remove ruby-dm-rails_model package which supported by Ruby on Rails 3.2.
2019-03-03 15:32:21 +00:00
taca
2a77e1fdbb databases/ruby-dm-active_model: remove package
Remove ruby-dm-active_model package which supported by Ruby on Rails 3.2.
2019-03-03 15:31:51 +00:00
taca
2754c3f171 databases/Makefile: remove ruby-dm-active_model and ruby-dm-rails
Remove ruby-dm-active_model and ruby-dm-rails.
2019-03-03 15:30:56 +00:00
taca
900aa17be3 databases/ruby-sequel update to 5.18.0
=== 5.18.0 (2019-03-01)

* Use singleton .call methods on plain objects instead of procs/methods for faster type conversion (jeremyevans)

* Add Sequel::SQL::Blob.call to avoid indirection when converting values from the database (jeremyevans)

* Use while instead of each for inner loops in sqlite and jdbc adapters for better performance (jeremyevans)

* Make after_initialize plugin not make the argument to Model.call optional (jeremyevans)

* Allow Dataset#paged_each to be called without a block in the postgres and mysql2 adapters (jeremyevans)

* Remove flow-control exceptions in connection_expiration and connection_validator extensions (jeremyevans)

* Add throw_failures plugin for throwing ValidationFailed and HookFailed exceptions instead of raising them, up to 10x performance increase on JRuby (jeremyevans)

* Support tzinfo 2 in addition to tzinfo 1 in the named_timezones extension (jeremyevans) (#1596)
2019-03-03 15:24:03 +00:00
taca
55339aef36 databases/freetds: update to 1.00.111
Update freetds to 1.00.111.

Various bug fixes and please refer ChangeLog in detail.

<https://github.com/FreeTDS/freetds/blob/Branch-1_00/ChangeLog>
2019-03-03 15:10:32 +00:00
taca
65754000e9 databases/Makefile: add ruby-activerecord52 2019-03-03 14:55:53 +00:00
taca
ee1fc35a62 databases/ruby-activerecord52: add version 5.2.2 package
Add ruby-activerecord52 version 5.2.2 package.

= 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.2.
2019-03-03 14:55:02 +00:00
adam
a498b81514 tdb: updated to 1.3.18
1.3.18:
Unknown changes
2019-03-02 14:06:52 +00:00
adam
c0c2ea2db7 sqlite3: updated to 3.27.2
SQLite Release 3.27.2:
Fix a bug in the IN operator that was introduced by an attempted optimization in version 3.27.0.
Fix a bug causing a crash when a window function is misused.
Fix various documentation typos
2019-02-25 18:04:29 +00:00
taca
91bccc778f databases/ruby-sqlite3: update to 1.4.0
=== 1.4.0

* Enhancements
  * Better aggregator support

* Bugfixes
  * Various
2019-02-25 14:16:04 +00:00
taca
41e9754fb4 databases/ruby-activeldap: update to 5.2.3
5.2.3: 2019-02-15

Improvements

* Changed to use add and delete for modify if it's needed.
  [GitHub#156][Patch by David Klotz]

* Added support for timezone with munites offset such as @0530@.
  [GitHub#160][GitHub#161][Patch by Neng Xu]

* Added support for Ruby 2.6.

Thanks

* David Klotz

* Neng Xu
2019-02-25 14:10:29 +00:00
adam
7354a91953 py-sqlalchemy-migrate: updated to 0.12.0
0.12.0
* Change title in README.rst
* Don't use deprecated / non-functional "force" parameter
* Use legacy\_alter\_table ON in sqlite recreate\_table
* Remove py26 support
* Add .eggs in .gitignore
* Import MutableMapping from the correct Python module
* Update mailinglist from dev to discuss
* Get rid of psycopg2 warnings by disabling wheels
* Enforce that pbr used is >= 1.8
2019-02-20 15:58:24 +00:00
adam
aa6f780932 py-sqlalchemy: updated to 1.2.18
1.2.18:
orm

[orm] [bug] Fixed a regression in 1.2 where a wildcard/load_only loader option would not work correctly against a loader path where of_type() were used to limit to a particular subclass. The fix only works for of_type() of a simple subclass so far, not a with_polymorphic entity which will be addressed in a separate issue; it is unlikely this latter case was working previously.

[orm] [bug] Fixed fairly simple but critical issue where the SessionEvents.pending_to_persistent() event would be invoked for objects not just when they move from pending to persistent, but when they were also already persistent and just being updated, thus causing the event to be invoked for all objects on every update.

sql
[sql] [bug] Fixed issue where the JSON type had a read-only JSON.should_evaluate_none attribute, which would cause failures when making use of the TypeEngine.evaluates_none() method in conjunction with this type. Pull request courtesy Sanjana S.

mysql
[mysql] [bug] Fixed a second regression caused by 4344 (the first was 4361), which works around MySQL issue 88718, where the lower casing function used was not correct for Python 2 with OSX/Windows casing conventions, which would then raise TypeError. Full coverage has been added to this logic so that every codepath is exercised in a mock style for all three casing conventions on all versions of Python. MySQL 8.0 has meanwhile fixed issue 88718 so the workaround is only applies to a particular span of MySQL 8.0 versions.

sqlite
[sqlite] [bug] Fixed bug in SQLite DDL where using an expression as a server side default required that it be contained within parenthesis to be accepted by the sqlite parser. Pull request courtesy Bartlomiej Biernacki.

mssql
[mssql] [bug] Fixed bug where the SQL Server “IDENTITY_INSERT” logic that allows an INSERT to proceed with an explicit value on an IDENTITY column was not detecting the case where Insert.values() were used with a dictionary that contained a Column as key and a SQL expression as a value
2019-02-20 15:56:15 +00:00
hauke
808a1e949f Add support for mutexes on aarch64 with GCC via databases/db4. 2019-02-19 15:18:19 +00:00
adam
cc09d3d0eb py-redis: updated to 3.2.0
3.2.0
* Added support for select.poll to test whether data can be read
  on a socket. This should allow for significantly more connections to
  be used with pubsub.
* Attempt to guarentee that the ConnectionPool hands out healthy
  connections. Healthy connections are those that have an established
  socket connection to the Redis server, are ready to accept a command
  and have no data available to read.
* Use the socket.IPPROTO_TCP constant instead of socket.SOL_TCP.
  IPPROTO_TCP is available on more interpreters (Jython for instance).
* Fixed a regression introduced in 3.0 that mishandles exceptions not
  derived from the base Exception class. KeyboardInterrupt and
  gevent.timeout notable.
* Significant improvements to handing connections with forked processes.
  Parent and child processes no longer trample on each others' connections.
* PythonParser no longer closes the associated connection's socket. The
  connection itself will close the socket.
2019-02-18 11:29:34 +00:00
adam
48a6761f85 Reset PKGREVISION 2019-02-17 08:27:51 +00:00
adam
1c3841db67 postgresqlNN: updated to 11.2, 10.7, 9.6.12, 9.5.16, and 9.4.21
PostgreSQL 11.2, 10.7, 9.6.12, 9.5.16, and 9.4.21 Released!
This release changes the behavior in how PostgreSQL interfaces with fsync() and includes fixes for partitioning and over 70 other bugs that were reported over the past three months.

Fix handling of unique indexes with INCLUDE columns on partitioned tables
Ensure that NOT NULL constraints of a partitioned table are honored within its partitions
Several fixes for constraints on partitioned tables
Fix problems with applying ON COMMIT DROP and ON COMMIT DELETE ROWS to partitioned tables and tables with inheritance children
Disallow COPY FREEZE on partitioned tables
Several fixes for the ALTER TABLE .. ADD COLUMN with a non-nullable default feature, including a possible index corruption case
Several fixes in GIN indexes, including avoiding a deadlock with vacuuming and concurrent index insertions (which partially reverts a performance improvement introduced in PostgreSQL 10)
Fix possible crashes in logical replication when index expressions or predicates are in use
Several fixes for the write-ahead log (WAL)
Fix possible crash in UPDATE with a multiple SET clause using a sub-SELECT
Fix crash when zero rows are provided to json[b]_populate_recordset() or json[b]_to_recordset()
Several fixes related to collation handling, including the parsing of collation-sensitive expressions in the arguments of a CALL statement
Several fixes for the query planner, including an improvement to planning speed for large inheritance or partitioning table groups
Several fixes for TRUNCATE
Ensure ALTER TABLE ONLY ADD COLUMN IF NOT EXISTS is processed correctly
Allow UNLISTEN in hot-standby (replica) mode
Fix parsing of space-separated lists of host names in the ldapserver parameter of LDAP authentication entries in pg_hba.conf
Several fixes for ecpg
Several fixes for psql, including having \g target work with COPY TO STDOUT
The random number generation for pgbench is now fully deterministic and platform-independent when --random-seed=N is specified
Fix pg_basebackup and pg_verify_checksums to appropriately ignore temporary files
Several fixes for pg_dump, including having ALTER INDEX SET STATISTICS commands present
Prevent false index-corruption reports from contrib/amcheck caused by inline-compressed data
Support new Makefile variables to help with building extensions
2019-02-17 08:26:11 +00:00
thorpej
05fd79eb85 Add support for mutexes on aarch64 with GCC. Bump PKGREVISION to 1. 2019-02-14 14:36:06 +00:00
adam
5fe776fd5e sqlite3: updated to 3.27.1
SQLite Release 3.27.1:
Fix a bug in the query optimizer: an adverse interaction between the OR optimization and the optimization that tries to use values read directly from an expression index instead of recomputing the expression.
Hashes:

Changes carried forward from version 3.27.0:
Added the VACUUM INTO command
Issue an SQLITE_WARNING message on the error log if a double-quoted string literal is used.
The sqlite3_normalized_sql() interface works on any prepared statement created using sqlite3_prepare_v2() or sqlite3_prepare_v3(). It is no longer necessary to use sqlite3_prepare_v3() with SQLITE_PREPARE_NORMALIZE in order to use sqlite3_normalized_sql().
Added the remove_diacritics=2 option to FTS3 and FTS5.
Added the SQLITE_PREPARE_NO_VTAB option to sqlite3_prepare_v3(). Use that option to prevent circular references to shadow tables from causing resource leaks.
Enhancements to the sqlite3_deserialize() interface:
Add the SQLITE_FCNTL_SIZE_LIMIT file-control for setting an upper bound on the size of the in-memory database created by sqlite3_deserialize. The default upper bound is 1GiB, or whatever alternative value is specified by sqlite3_config(SQLITE_CONFIG_MEMDB_MAXSIZE) and/or SQLITE_MEMDB_DEFAULT_MAXSIZE.
Honor the SQLITE_DESERIALIZE_READONLY flag, which was previously described in the documentation, but was previously a no-op.
Enhance the "deserialize" command of the TCL Interface to give it new "--maxsize N" and "--readonly BOOLEAN" options.
Enhancements to the CLI, mostly to support testing and debugging of the SQLite library itself:
Add support for ".open --hexdb". The "dbtotxt" utility program used to generate the text for the "hexdb" is added to the source tree.
Add support for the "--maxsize N" option on ".open --deserialize".
Add the "--memtrace" command-line option, to show all memory allocations and deallocations.
Add the ".eqp trace" option on builds with SQLITE_DEBUG, to enable bytecode program listing with indentation and PRAGMA vdbe_trace all in one step.
Add the ".progress" command for accessing the sqlite3_progress_handler() interface.
Add the "--async" option to the ".backup" command.
Add options "--expanded", "--normalized", "--plain", "--profile", "--row", "--stmt", and "--close" to the ".trace" command.
Increased robustness against malicious SQL that is run against a maliciously corrupted database.

Bug fixes:
Do not use a partial index to do a table scan on an IN operator.
Fix the query flattener so that it works on queries that contain subqueries that use window functions.
Ensure that ALTER TABLE modifies table and column names embedded in WITH clauses that are part of views and triggers.
Fix a parser bug that prevented the use of parentheses around table-valued functions.
Fix a problem with the OR optimization on indexes on expressions.
Fix a problem with the LEFT JOIN strength reduction optimization in which the optimization was being applied inappropriately due to an IS NOT NULL operator.
Fix the REPLACE command so that it is no longer able to sneak a NULL value into a NOT NULL column even if the NOT NULL column has a default value of NULL.
Fix a problem with the use of window functions used within correlated subqueries.
Fix the ALTER TABLE RENAME COLUMN command so that it works for tables that have redundant UNIQUE constraints.
Fix a bug that caused zeroblob values to be truncated when inserted into a table that uses an expression index.
2019-02-11 10:45:20 +00:00
adam
65198e5551 rrdtool: updated to 1.7.1
RRDtool 1.7.1:

Bugfixes
* about 38949 assorted fixes for the windows build of rrdtool
* fix many compile time warnings
* Re-enable 0-width lines
* Include rrd_pdpcalc.pod in Makefile.am also
* Lots of spelling fixes for rrdtool source and documentation
* fix off by one issue in rrdtool xport output
* fix lua extension build
* fix python bindings
* fix multiple static variable issues in conflict with MT
* make translations actually work
* Fixed configure --enable / --disable options
* rrd_daemon stability fixes
* fix tcl bindings
* do not call umask ever (not MT safe)

Features
* Multiline Titles
* French translation
* Added support for --allow-shrink with --rigid flag
* Added SUSPEND/RESUME/SUSPENDALL/RESUMEALL commands for rrd_cached
* include the daemon name in the error messag
2019-02-11 08:22:44 +00:00
wen
e1061ea75f Update to 1.60
Upstream changes:
1.60 2018-10-31

  [BUG FIXES]

  Merged pull request 11 from audun which fixes some issues with the AutoCommit flag
  on commit and rollback.

  [MISCELLANEOUS]

  Merged pull request 10 from vadz which fixed typo (affecting license) in README.md.
2019-02-09 00:27:49 +00:00
wen
b1858db368 Update to 1.77
Upstream changes:
1.77 Wed Jan 23 14:02:24 PST 2019
  No code change, add more examples under match_pattern_hash
  Suggested by James Volkman
2019-02-09 00:20:12 +00:00
tonio
dc876d7e74 databases/lbdb: update to 0.48.1
Fix PR pkg/53953
2019-02-08 22:25:32 +00:00
schmonz
84a6b361ab As suggested by joerg@, "cd /" works even when initdb hasn't happened yet.
Ride previous PKGREVISION bump.
2019-02-06 22:33:43 +00:00
schmonz
7c3c8c505d ${PGUSER} doesn't have read permission in every conceivable working
directory, which causes errors for several actions. But the caller's
working directory isn't needed for anything. cd into ${pgsql_home}
early, just after reading rc.conf. Bump PKGREVISION.
2019-02-06 18:45:55 +00:00
adam
16d9fd4d79 mysql57-{client,server}: updated to 5.7.25
Changes in MySQL 5.7.25

Deprecation and Removal Notes

The resolveip and resolve_stack_dump utilities are now deprecated and will be removed in MySQL 8.0. nslookup, host, or dig can be used instead of resolveip. Stack traces from official MySQL builds are always symbolized, so there is no need to use resolve_stack_dump.

Pluggable Authentication

If the LDAP port number is configured as 636 or 3269, the plugin now uses LDAPS (LDAP over SSL) instead of LDAP. The port number is settable using the authentication_ldap_sasl_server_port or authentication_ldap_simple_server_port system variable. (LDAPS differs from startTLS.)

Previously, for LDAP authentication with proxying, LDAP authentication plugins used the first group name returned by the LDAP server as the MySQL proxy user account name. The authentication string for a MySQL account now can specify a list of groups to match, in preference order, and can optionally map the matching group name to a specified MySQL proxy user name. See LDAP Pluggable Authentication.

Security Notes

The linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.2q. Issues fixed in the new OpenSSL version are described at http://www.openssl.org/news/vulnerabilities.html.

This change does not affect the Oracle-produced MySQL Community build of MySQL Server, which uses the yaSSL library instead.

Functionality Added or Changed

Microsoft Windows: The access control granted to clients on the named pipe created by the MySQL server now is set to the minimum necessary for successful communication on Windows. Newer MySQL client software can open named pipe connections without any additional configuration. If older client software cannot be upgraded immediately, the new named_pipe_full_access_group server system variable can be used to give a Windows group the necessary permissions to open a named pipe connection. Membership in the full-access group should be restricted and temporary.

Bugs Fixed

InnoDB: A dangling pointer caused a memory leak.

InnoDB: An ON DELETE CASCADE operation on table with a foreign key constraint and an indexed virtual column caused the server to exit.

InnoDB: An incorrectly written DML log involving a virtual column value raised an assertion.

InnoDB: Using the O_DIRECT_NO_FSYNC innodb_flush_method setting could cause the system to hang due to file system metadata becoming unsynchronized. To prevent this issue from occurring in O_DIRECT_NO_FSYNC mode, InnoDB now calls fsync() after creating a new file, after increasing file size, and after closing a file. The fsync() system call is still skipped after each write operation.

With the changes described above, O_DIRECT_NO_FSYNC mode can now be safely used on EXT4 and XFS file systems.

InnoDB: An assertion was raised when attempting to write to a tablespace file greater than 4GB in size on a 64-bit Windows system. The failure was due to a narrowing cast.

Partitioning: Repeated ALTER TABLE statements on partitioned tables containing BLOB or TEXT columns were not always handled correctly.

Partitioning: ALTER TABLE ... EXCHANGE PARTITION did not work when the partitioned table had one or more partition definitions using the DATA DIRECTORY option. This fix supports partitioned tables using the InnoDB storage engine only.

Replication: A patch to correct the handling of quotes for identifiers in ROLLBACK TO SAVEPOINT statements in the binary log was not correctly applied to subsequent MySQL versions.

Replication: Following a patch in MySQL 5.7.23, LOAD DATA statements stopped statement-based replication from a MySQL 5.7.22 master to a replication slave at a later release. The problem has now been fixed.

Replication: In some circumstances, the CHANGE MASTER TO statement could not be used on a replication slave if the master info log had been changed from a table (master_info_repository=TABLE) into a file (master_info_repository=FILE).

Replication: When the system variables binlog_transaction_dependency_tracking and binlog_transaction_dependency_history_size were set or read, the types of lock that were required could result in a deadlock scenario, because the same locks were also required for working with the active binary logs. A new lock type is now used instead for access to the transaction dependency tracking system variables, so that this deadlock cannot occur.

Replication: The PURGE BINARY LOGS TO 'log_name' statement failed for binary log files that had been moved to another location using mysqlbinlogmove. Such files are still listed in the binary log index file, but they are listed using an absolute path, rather than a path relative to the directory where the binary log files are normally stored. MySQL Server can now locate and purge moved binary log files successfully.

Replication: If autocommit was set to 0 for a replication slave or Group Replication group member where GTIDs were in use and super_read_only=ON was set, server shutdown was prevented by a transaction that did not complete. The transaction was attempting to save GTIDs to the mysql.gtid_executed table, but the update failed because super_read_only=ON was set. (With autocommit set to 1, the transaction would complete in this situation, and the mysql.gtid_executed table would instead be updated at server startup.) Now, the check for the super_read_only setting is skipped for this task, so the transaction is able to save the GTIDs to the mysql.gtid_executed table and complete regardless of the combination of super_read_only and autocommit settings.

Replication: An assertion was raised in debug builds if an XA ROLLBACK statement was issued for an unknown transaction identifier when the gtid_next value had been set manually. The server now does not attempt to update the GTID state if an XA ROLLBACK statement fails with an error.

Replication: The value returned by a SHOW SLAVE STATUS statement for the total combined size of all existing relay log files (Relay_Log_Space) could become much larger than the actual disk space used by the relay log files. The I/O thread did not lock the variable while it updated the value, so the SQL thread could automatically delete a relay log file and write a reduced value before the I/O thread finished updating the value. The I/O thread then wrote its original size calculation, ignoring the SQL thread's update and so adding back the space for the deleted file. The Relay_Log_Space value is now locked during updates to prevent concurrent updates and ensure an accurate calculation.

Replication: If the relay log index file was temporarily locked for viewing by a backup process for a replication slave, and MySQL Server also attempted to access the file at that time for rename or delete operations, the backup completed with warnings, but MySQL Server experienced an unexpected halt. MySQL Server now retries the file access operation a number of times in case this or a similar scenario is the explanation and the file becomes available again before long.

Replication: With sync_binlog=1 set, if the binary log was rotated during a commit before the binary log end position was updated, replication stopped on the slave because the server attempted to use the old binary log end position with the new binary log file. The server now compares the binary log file name with the active binary log file when updating the binary log end position, so that the issue does not occur.

Replication: When adding a new member to a group, if the certification information was too big to transmit, an event was generated that caused failures in all group members. To avoid this situation, now if the certification information is too large an error is generated which makes the joining member leave the group.

Replication: When stopping replication, any channels that had pending transactions could cause a deadlock in Group Replication.

The keyring_aws plugin was missing from Commercial packages for macOS.

The supported macOS versions for this plugin now are macOS 10.13 and 10.14.

MySQL Enterprise Firewall did not work well if the audit_log plugin was installed.

The server permitted creation of databases with the same name as redo log files, which could result in unexpected server behavior. Such names are no longer permitted as database names.

Removal of Sun RPC and XDR from glibc into a separate libtirpc library caused problems with libasan on some platforms.

In LDAP group search filter values, special characters were not escaped. Special characters in the user DN now are escaped with their hexadecimal equivalant as follows:

*  =>  \2a
(  =>  \28
)  =>  \29
\  =>  \5c
\0 =>  \00

A memory leak was caused by GET_LOCK() calls with a zero timeout that failed due to concurrent connections holding the same user-level lock.

mysqlpump did not free all allocated resources when it encountered an error, resulting in memory leaks.

For debug builds, the server could exit when attempting to roll back CREATE USER statements.

Mishandling of deprecated system variables could cause output from queries on the Performance Schema variables_by_thread table to be incorrect.

When a subquery contained a UNION, the count of the number of subquery columns was calculated incorrectly.

On a GTID-enabled server, concurrent statements on the INFORMATION_SCHEMA.COLUMNS table could deadlock.

Comparing log file names as strings using the memcmp() function resulted in uninitialized memory read errors. The comparison now uses the strncmp() function. Thanks to Zsolt Parragi and Laurynas Biveinis for their contributions.

The optimizer skipped the second column in a composite index when executing an inner join with a LIKE clause against the second column.

CREATE TABLE ... SELECT could create date columns with “zero” date default values when it should have created them without a default value.

The transformation of IN subquery predicates into semijoins was not handled correctly for a very large number of tables.

Server mishandling of SIGHUP signals could result in a server exit.

When the character set of one string comparison operand was a superset of the character set of the other operand, some comparisons were disallowed that should be permitted by converting the operand with the “smaller” character set to the “larger” character set. utf8mb4 and utf32 are considered to be a superset of any other encoding.

Improper memory handling by account management statements could result in server misbehavior.

Executing a prepared statement to do a multiple-row insert with large number of placeholders consumed excessive memory and could execute slowly.

The parser accepted invalid SET statement syntax in trigger definitions that could result in a server exit.

The server failed to start if the keyring_encrypted_file plugin keyring file was invalid.

Keyring migration failed with source and destination keyring plugins of keyring_okv and keyring_encrypted_file, respectively.

When executing a prepared statement with a procedure call with the CURSOR_TYPE_READ_ONLY flag set, the client library hung if the procedure performed a SELECT that returned an empty result set.

The parser performed some out-of-memory checks incorrectly.

When binlog_format is ROW or MIXED, operations on temporary tables are not logged. Previously, the exception to this rule was that when the connection was terminated at the end of the session, the statement DROP TEMPORARY TABLE IF EXISTS was logged for any temporary tables that had been opened in the session. For row-based replication, this behavior caused an unnecessary write to the binary log, and added a transaction sequence number for the GTID where these were enabled.

Now, when a temporary table is created in a session, the binary logging format is tracked. The DROP TEMPORARY TABLE IF EXISTS statement is only logged at the end of the session if statement-based format was in effect when the temporary table was created, so the CREATE TEMPORARY TABLE statement was logged. If row-based or mixed-format binary logging was in use when the table was created, the DROP TEMPORARY TABLE IF EXISTS statement is not logged.

Thanks to Laurynas Biveinis for the patch.

DML statements using IGNORE were not always handled correctly on tables having generated columns.

A query employing a dynamic range and an index merge could use more memory than expected.
2019-02-05 20:19:55 +00:00
adam
07c3475527 mysql56-client: fix some pkglint issues 2019-02-05 20:18:43 +00:00
adam
d656eaf44d Fix pkgbase 2019-02-05 20:14:56 +00:00
adam
dc484f316d mysql56-{client,server}: updated to 5.6.43
Changes in MySQL 5.6.43:

Functionality Added or Changed

Microsoft Windows: The access control granted to clients on the named pipe created by the MySQL server now is set to the minimum necessary for successful communication on Windows. Newer MySQL client software can open named pipe connections without any additional configuration. If older client software cannot be upgraded immediately, the new named_pipe_full_access_group server system variable can be used to give a Windows group the necessary permissions to open a named pipe connection. Membership in the full-access group should be restricted and temporary.


Bugs Fixed

Replication: A patch to correct the handling of quotes for identifiers in ROLLBACK TO SAVEPOINT statements in the binary log was not correctly applied to subsequent MySQL versions.

Replication: In some circumstances, the CHANGE MASTER TO statement could not be used on a replication slave if the master info log had been changed from a table (master_info_repository=TABLE) into a file (master_info_repository=FILE).

Replication: The value returned by a SHOW SLAVE STATUS statement for the total combined size of all existing relay log files (Relay_Log_Space) could become much larger than the actual disk space used by the relay log files. The I/O thread did not lock the variable while it updated the value, so the SQL thread could automatically delete a relay log file and write a reduced value before the I/O thread finished updating the value. The I/O thread then wrote its original size calculation, ignoring the SQL thread's update and so adding back the space for the deleted file. The Relay_Log_Space value is now locked during updates to prevent concurrent updates and ensure an accurate calculation.

Replication: If the relay log index file was temporarily locked for viewing by a backup process for a replication slave, and MySQL Server also attempted to access the file at that time for rename or delete operations, the backup completed with warnings, but MySQL Server experienced an unexpected halt. MySQL Server now retries the file access operation a number of times in case this or a similar scenario is the explanation and the file becomes available again before long.

The server permitted creation of databases with the same name as redo log files, which could result in unexpected server behavior. Such names are no longer permitted as database names.

When a subquery contained a UNION, the count of the number of subquery columns was calculated incorrectly.

Comparing log file names as strings using the memcmp() function resulted in uninitialized memory read errors. The comparison now uses the strncmp() function. Thanks to Zsolt Parragi and Laurynas Biveinis for their contributions.

The transformation of IN subquery predicates into semijoins was not handled correctly for a very large number of tables.

Executing a prepared statement to do a multiple-row insert with large number of placeholders consumed excessive memory and could execute slowly.

The parser accepted invalid SET statement syntax in trigger definitions that could result in a server exit.

MyISAM index corruption could occur for bulk-insert and table-repair operations that involve the repair-by-sorting algorithm and many (more than 450 million) rows.

A query employing a dynamic range and an index merge could use more memory than expected.
2019-02-05 20:06:06 +00:00
adam
88e9d46e8a py-psycopg2: updated to 2.7.7
What's new in psycopg 2.7.7
- Cleanup of the cursor results assignment code, which might have solved
  double free and inconsistencies in concurrent usage.
- Wheel package compiled against OpenSSL 1.0.2q.
2019-02-05 11:39:19 +00:00
taca
6af8872967 Add missing Ruby 2.6 support. 2019-02-03 22:20:35 +00:00
taca
ff41e5cbe2 databases/ruby-sequel: update to 5.17.0
=== 5.17.0 (2019-02-01)

* Support skip_auto_validations instance method in auto_validations plugin
  (oldgreen, jeremyevans) (#1592)

* Support :preconnect_extensions Database option for loading extensions before
  :preconnect option (jeremyevans)

* Avoid usage of Proc.new with implicit block as ruby 2.7+ deprecates this
  behavior (jeremyevans)

* Allow Sequel[].as to be used for constructing aliases with eager_graph
  (e.g. Model.eager_graph(Sequel[:a].as(:b))) (jeremyevans) (#1588)
2019-02-03 14:30:59 +00:00
schmonz
91c8476e7e Update to 0.9999. From the changelog:
[Bug Fixes]
- Fixed a test failure with the MySQL max limit value, mostly exhibited
  on BSD platforms.
- Removed fallback in the PostgreSQL engine on the `$PGUSER` and
  `$PGPASSWORD` environnement variables, as well as the system username,
  since libpq does all that automatically, and collects data from other
  sources that we did not (e.g., the password and connection service
  files). Thanks to Tom Bloor for the report (issue #410).
- Changed dependency validation to prevent an error when a change required
  from a different project has been reworked. Previously, when a when
  requiring a change such as `foo:greeble`, Sqitch would raise an error if
  `foo:greeble` was reworked, suggesting that the dependency be
  tag-qualified to eliminate ambiguity. Now reworked dependencies may be
  required without tag-qualification, though tag-qualification should still
  be specified if functionality as of a particular tag is required.
- Added a workaround for the shell quoting issue on Windows. Applies to
  IPC::System::Simple 1.29 and lower. See
  [pjf/ipc-system-simple#29](https://github.com/pjf/ipc-system-simple/pull/29)
  for details (#413).
- Fixed an issue with the MariaDB client where a deploy, revert, or
  verify failure was not properly propagated to Sqitch. Sqitch now passes
  `--abort-source-on-error` to the Maria `mysql` client to ensure that
  SQL errors cause the client to abort with an error so that Sqitch can
  properly handle it. Thanks to @mvgrimes for the original report and,
  years later, the fix (#209).
- Fixed an issue with command argument parsing so that it truly never
  returns a target without an engine specified, as documented.
- Removed documentation for methods that don't exist.
- Fixed test failures due to a change in Encode v2.99 that's stricter
  about `undef` arguments that should be defined.

[Improvements]
- The Snowflake engine now consults the `connections.warehousename`,
  `connections.dbname`, and `connections.rolename` variables in the
  SnowSQL configuration file (`~/.snowsql/config`) before falling back on
  the hard-coded warehouse name "sqitch" and using the system username as
  the database name and no default for the role.
- Switched to using a constant internally to optimize windows-specific
  code paths at compile time.
- When `deploy` detects undeployed dependencies, it now eliminates
  duplicates before listing them in the error message.
- Now requiring IO::Pager v0.34 or later for its more consistent
  interface.
- Added notes about creating databases to the tutorials. Thanks to Dave
  Rolsky for the prompt (#315).
- Added a status message to tell the user when the registry is being
  updated, rather than just show each individual update. Thanks to Ben
  Hutton for the suggestion (#276).
- Added support for a `$SQITCH_TARGET` environment variable, which takes
  precedence over all other target specifications except for command-line
  options and arguments. Thanks to @mvgrimes for the suggestion (#203).
- Fixed target/engine/change argument parsing so it won't automatically
  fail when `core.engine` isn't set unless no targets are found. This
  lets engines be determined strictly from command-line arguments --
  derived from targets, or just listed on their own -- whether or not
  `core.engine` is set. This change eliminates the need for the
  `no_default` parameter to the `parse_args()` method of App::Sqitch
  Command. It also greatly reduces the need for the core `--engine`
  option, which was previously required to work around this issue (see
  below for its removal).
- Refactored config handling in tests to use a custom subclass of
  App::Sqitch::Config instead of various mocks, temporary files, and the
  like.
- Added advice to use the PL/pgSQL `ASSERT()` function for verify scripts
  to the Postgres tutorial. Thanks to Sergii Tkachenko for the PR (#425).

[Target Variables]
- The `verify` command now reads `deploy.variables`, and individual
  `verify.variables override `deploy.variables`, on the assumption that
  the verify variables in general ought to be the same as the deploy
  variables. This makes `verify` variable configuration consistent with
  `revert` variable configuration.
- Variables set via the `--set-deploy` option on the `rebase` and
  `checkout` commands no longer apply to both reverts and deploys, but
  only deploys. Use the `--set` option to apply a variable to both
  reverts and deploys.
- Added support for core, engine, and target variable configuration. The
  simplest way to use them is via the `--set` option on the `init`,
  `engine`, and `target` commands. These commands allow the configuration
  of database client variables for specific engines and targets, as well
  as defaults that apply to all change execution commands (`deploy`,
  `revert`, `verify`, `rebase`, and `checkout`). The commands merge the
  variables from each level in this priority order:
  * `--set-deploy` and `--set-revert` options on `rebase` and `checkout`
  * `--set` option
  * `target.$target.variables`
  * `engine.$engine.variables`
  * `deploy.variables`, `revert.variables`, and `verify.variables`
  * `core.variables`
  See `sqitch-configuration` for general documentation of of the
  hierarchy for merging variables and the documentation for each command
  for specifics.

[Options Unification]
- Added the `--chdir`/`--cd`/`-C` option to specify a directory to change
  to before executing any Sqitch commands. Thanks to Thomas Sibley for
  the suggestion (#411).
- Added the `--no-pager` option to disable the pager (#414).
- Changed command-line parsing to allow core and command options to
  appear anywhere on the line. Previously, core options had to come
  before the command name, and command options after. No more. The caveat
  is that command options that take arguments should either appear after
  the command or use the `--opt=val` syntax instead of `--opt val`, so
  that Sqitch doesn't think `val` is the command. Even in that case, it
  will search the rest of the arguments to find a valid command.
  However, to minimize this challenge, the documentation now suggests
  and demonstrates putting all options after the command, like so:
  `sqitch [command] [options]`.
- Simplified and clarified the distinction between core and command
  options by removing all options from the core except those that affect
  output and runtime context. The core options are:
  * -C --chdir --cd <dir>  Change to directory before performing any actions
  *    --etc-path          Print the path to the etc directory and exit
  *    --no-pager          Do not pipe output into a pager
  *    --quiet             Quiet mode with non-error output suppressed
  * -V --verbose           Increment verbosity
  *    --version           Print the version number and exit
  *    --help              Show a list of commands and exit
  *    --man               Print the introductory documentation and exit
- Relatedly, single-letter core options will now always be uppercase,
  while single-letter command options will be lowercase. As such, `-V`
  has been added as an alias for `--version`, although `-v` remains for
  now, undocumented. It may be removed in the future should a compelling
  use for `-v` in a command be discovered.
- All other options have been moved to the commands they affect. Their
  use should remain mostly unchanged now that command options are parsed
  from anywhere on the command-line, although we recommend that all
  options come after commands. The options were moved as follows:
  * `--registry`, `--client`, `--db-name`, `--db-user`, `--db-host`, and
    `--db-port` (and their aliases) have been moved to the `checkout`,
    `deploy`, `log`, `rebase`, `revert`, `status`, `upgrade`, and
    `verify` commands.
  * `--plan-file` and `--top-dir` (deprecated; see below) have been moved
    to the `add`, `bundle`, `checkout`, `deploy`, `rebase`, `revert`,
    `rework`, `show`, `status`, `tag`, and `verify` commands. They were
    already supported by the `init`, `engine`, and `target` commands
    (where `--top-dir` is not deprecated).
- Because some command options conflicted with core options, a few
  options have been removed altogether, including:
  * The `--verbose` option on the `--engine` and `--target` commands has
    been removed, but no visible change should be apparent, since those
    commands now read the core `--verbose` option.
  * The undocumented `--dir` alias for `--top-dir` has been removed, as
    it conflicted with the option of the same name but different meaning
    in the `init`, `engine`, and `target` commands.
  * The `-d` alias for `--set-deploy` in the `rebase` and `checkout`
    commands has been changed to `-e` so as not to conflict with the `-d`
    alias for `--db-name`.
  * Added tests for all commands to ensure none of their options conflict
    with core options. Will help prevent conflicts in the future.

[Deprecations & Removals]
- Deprecated the `--top-dir` option in favor of `--chdir` with a warning
  except when used for configuration in the `init`, `engine`, and
  `target` commands.
- Removed the core `--deploy-dir`, `--revert-dir`, and `--verify-dir`
  options, which have been deprecated and triggering warnings since
  v0.9993 (August 2015). The `--dir` option to the `init`, `engine`, and
  `target` commands remains the favored interface for specifying script
  directories.
- Removed the deprecated core `--engine` option. The `init` command still
  supports it, while other commands are able to parse the engine name as
  an argument — e.g., `sqitch deploy mysql` — or implicitly as part of a
  target, as in `sqitch revert db:pg:tryme`. When Sqitch is unable to
  determine the engine for a command, the error message no longer
  mentions `--engine` and instead suggests specifying the engine via the
  target. This option never triggered an error, but demonstration of its
  use has been limited to `init` examples.
- Removed support for reading the `core.$engine` configuration, which has
  been deprecated with warnings in favor of `engine.$engine` since 0.997
  (November 2014). The `sqitch engine update-config` action remains
  available to update old configurations, but may be removed in the
  future.
- Removed the `--deploy`, `--revert`, and `--verify` options on the `add`
  command, as well as their `--no-*` variants. They have been deprecated
  with warnings in favor of the `--with` and `--without` options since
  v0.990 (January 2014).
- Removed the `--deploy-template`, `--revert-template`, and
  `--verify-template` options to the `add` command. They have been
  deprecated with warnings in favor of the `--use` option since v0.990
  (January 2014).
- Removed the `add.deploy_template`, `add.revert_template`, and
      `add.verify_template` configuration settings. They have been deprecated
      with warnings in favor of the `add.templates` configuration section
  since v0.990 (January 2014).
- Removed the `@FIRST` and `@LAST` symbolic tags, which have been
  deprecated with warnings in favor of `@ROOT` and `@HEAD`, respectively,
  since 0.997 (November 2014).
- Removed the command-specific options with the string "target" in them,
  such as `--to-target`, `--upto-target`, which have been deprecated with
  warnings in in favor of options containing the string "change", such as
  `--to-change` and `--upto-change`, since v0.997 (November 2014).
- Remove the `engine` and `target` command `set-*` actions and their
  corresponding methods, which have been deprecated in favor of the
  `alter` action since v0.9993 (August 2015).
- Removed the automatic updating of change and tag IDs in the Postgres
  engine. This functionality was added in v0.940 (December 2012), when
  Postgres was the only engine, and the SHA-1 hash for change and tag IDs
  was changed. There were very few deployments at the time, and all
  should long since have been updated.

[API Changes]
- Added the URI-overriding parameters `user`, `host`, `port`, and
  `dbname` to App::Sqitch::Target so that command options can be used to
  easily set them.
- Added support for passing attribute parameters to the `all_targets`
  group constructor on App::Sqitch::Target, so that command-line options
  can be used to assign attributes to all targets read from the
  configuration.
- Aded the `target_params` method to App::Sqitch::Command and updated all
  commands to use it when constructing targets. This allows commands to
  define options for Target parameters, as required for moving options to
  commands as described above.
- Added the `class_for` method to App::Sqitch::Command so that the new
  options parser described above can load a command class without
  instantiating an instance. Useful for searching command-line arguments
  for a command name.
- Added the `create` constructor to App::Sqitch::Command to let Sqitch
  instantiate an instance of a command once it finds one via `class_for`.
  Previously, Sqitch used the `load` method, which handled the
  functionality of both `class_for` and `create`. That method still
  exists but is used only in tests.
- Added the ConnectingCommand role to define database connection options
  for the commands that need them.
- Added the ContextCommand role to define command options for the
  location of the plan file and top directory. This is also where use of
  the deprecated form of `--top-dir` triggers a warning.
- Removed the `verbosity` attribute from App::Sqitch::Command::engine and
  App::Sqitch::Command::target, since the `--verbose` option is no longer
  needed. These commands now rely on the core `--verbose` option.
- Removed the copying of core options from the target class and
  TargetConfigCommand role, since the attributes fetched from there are
  no longer core options, but provided as attribute parameters to the
  constructors by commands.
- Removed documentation for the optional `config` parameter to the
  `all_targets` constructor of App::Sqitch::Target, since it was never
  used by Sqitch. It always fetched the config from the required `sqitch`
  parameter. Support for the `config` parameter has not been removed,
  since third-parties might use it.
- Removed the `set_*` methods in the `engine` and `target` commands,
  which have been deprecated in favor of the new `alter` method since
  v0.9993 (August 2015).
- Removed the `old_id` and `old_info` methods from Change and Tag, which
  date from v0.940 (December 2012), and were provided only to allow
  existing Postgres databases to be updated from the old to new ID
  format, now removed. There should be no other use case for these
  methods.
2019-02-02 16:59:30 +00:00