This is a copy of mongodb before the update to 4, with annotations to
explain why it exists. Reasons include:
- mongodb 4 is licensed under the Server Side Public License, to
which some have objected
- mongodb 4 requires c++17 (and hence gcc 8)
(ok to add during freeze by wiz@)
mongodb's build script says it needs a c11 compiler. However, one
can't add change c99 to c11 in USE_LANGUAGES like one would expect
because mk/compiler* doesn't yet have c11 support. Note this, to be
fixed when we have c11 support in mk/compiler*.
This package had been configured to use mongodb's bundled icu, but
something in the dependencies brought in icu anyway, and there were
type conflicts between pkgsrc and bundled. Apparently whatever was
trouble in earlier mongodb has been fixed, as the build gets much
further with "system" (pkgsrc) icu.
With gcc 5, as found on netbsd-8, there are multiple issues. With 6,
far more progress is made. Because this is not shocking for c++14,
just set GCC_REQD, as it will not harm netbsd-current, which is
currently the only platform with even a single report of successful
buildin..
mongodb requires C++14; change from c++ to c++14. It also seems to
require C11, but c11 seems not to be recognized by USE_LANGUAGES, so
change c to c99 and add a comment.
PKGREVISION in case there's anyplace this builds.
PostgreSQL 11.4, 10.9, 9.6.14, 9.5.18, 9.4.23, and 12 Beta 2 Released!
The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 11.4, 10.9, 9.6.14, 9.5.18, and 9.4.23, as well as the second beta of PostgreSQL 12. This release fixes one security issue and over 25 bugs since the previous cumulative update in May.
Security Issues
This release closes one security vulnerability:
CVE-2019-10164: Stack-based buffer overflow via setting a password
Versions affected: 10, 11, 12 beta.
Bug Fixes and Improvements
Fix assorted errors in run-time partition pruning that could lead to wrong answers in queries on partitioned tables
pg_dump now recreates table partitions using CREATE TABLE and ALTER TABLE .. ATTACH PARTITION rather than including PARTITION OF in the creation command
Improve how initdb determines which system time zone to select if there are equivalent names for the time zone. Also explicitly prefer UTC over UCT
Fix possible crash while trying to copy trigger definitions to a new partition
Fix failure of ALTER TABLE .. ALTER COLUMN TYPE when the table has a partial exclusion constraint
Fix failure of COMMENT command for comments on domains
Several fixes related to aggregation
Fix faulty generation of merge-append plans that could lead to "could not find pathkey item to sort" errors
Fix failures on dump/restore where views contained queries with duplicate join names
Fix conversion of JSON string literals to JSON-type output columns in json_to_record() and json_populate_record()
Fix incorrect optimization of {1,1} quantifiers in regular expressions
Fix issue for B-tree indexes during edge case failure involving columns covered with the INCLUDE clause, which manifests itself with errors during VACUUM. If you are affected by this issue, you will need to reindex the specific index
Fix race condition in check to see whether a pre-existing shared memory segment is still in use by a conflicting postmaster
Fix for the walreceiver process that avoids a crash or deadlock on shutdown
Avoid possible hang in libpq if using SSL and OpenSSL's pending-data buffer contains an exact multiple of 256 bytes
Fix ordering of GRANT commands emitted by pg_dump and pg_dumpall for databases and tablespaces
Fix misleading error reports from reindexdb
Ensure that vacuumdb returns correct status if an error occurs while using parallel jobs
Fix contrib/auto_explain to not cause problems in parallel queries, which resulted in failures like "could not find key N in shm TOC"
Account for possible data modifications by local BEFORE ROW UPDATE triggers in contrib/postgres_fdw
On Windows, avoid failure when the database encoding is set to SQL_ASCII and we attempt to log a non-ASCII string
ValueError: invalid literal for int() with base 10:
'_PATH_ORIG=/home/jmcneill/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/pkg/bin:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin'
Psycopg 2.8.3 released
We have released Psycopg 2.8.3, which includes a slight change to the logical replication.
Choosing the right frequency to send replication feedback messages from the client to the server was previously the developer's responsibility, with too many feedback messages being a waste of bandwidth and server resources, too few slowing down WAL cleanup and possibly preventing a server graceful shutdown.
Psycopg will now make sure that feedback is only sent after a certain period of time from the previous one, so that the client can simply call send_feedback() at each message without the fear of overwhelming the server.
For completeness, the changes included in the release are:
* Added interval_status parameter to start_replication() method and other facilities to send automatic replication keepalives at periodic intervals
* Fixed namedtuples caching introduced in 2.8
=== 5.21.0 (2019-06-01)
* Recognize additional DatabaseLockTimeout errors in mysql and mysql2 adapters (jeremyevans)
* Disallow eager_graph of ancestors and descendants associations when using the rcte_tree plugin (jeremyevans)
* Make jdbc/mysql adapter work when using JRuby with Java 11 (jeremyevans)
* Support window function options :window, :exclude, and :frame :type=>:groups, :start, and :end on SQLite 3.28.0+ (jeremyevans)
* Make the server_block extension respect the :servers_hash Database option (jeremyevans)
* Typecast string input for json/jsonb types as JSON strings instead of parsing as JSON in the pg_json extension when Database#typecast_json_strings is set to true (jeremyevans)
* Wrap JSON primitives (string, number, true, false, nil) in the pg_json extension when Database#wrap_json_primitives is set to true (jeremyevans)
* Convert the Database :timeout option to an integer in the sqlite adapter (jeremyevans) (#1620)
* Improve performance in ado adapter using more efficient inner loop (jeremyevans)
* Improve performance in ado adapter using faster callables for type conversion (jeremyevans)
* Fix handling of decimal values in the ado adapter when using locales where the decimal separator is , and not . (jeremyevans) (#1619)
3.9.6
Support nesting the Database instance as a context-manager. The outermost block will handle opening and closing the connection along with wrapping everything in a transaction. Nested blocks will use savepoints.
Add new session_start(), session_commit() and session_rollback() interfaces to the Database object to support using transactional controls in situations where a context-manager or decorator is awkward.
Fix error that would arise when attempting to do an empty bulk-insert.
Set isolation_level=None in SQLite connection constructor rather than afterwards using the setter.
Add create_table() method to Select query to implement CREATE TABLE AS.
Cleanup some declarations in the Sqlite C extension.
Add new example showing how to implement Reddit's ranking algorithm in SQL.
4.9.0.1 (2019-06-04)
- issue #14478 phpMyAdmin no longer streams the export data
- issue #14514 Tables with SYSTEM VERSIONING show up as views instead of tables
- issue #14515 Values cannot be edited in SYSTEM VERSIONING tables with INVISIBLE timestamps
- issue Fix header icon on server plugins page
- issue #14298 Fixed error 500 on MultiTableQuery page when a empty query is passed
- issue #14402 Fixed fatal javascript error while adding index to a new column
- issue #14896 Fixed issue with plus/minus icon when refreshing an expanded database
- issue #14922 Fixed json encode error in export
- issue #13975 Fixed missing query time in German (fix decimal number format issue)
- issue #14503 Fixed JavaScript events not activating on input (sql bookmark issue)
- issue #14898 Fixed Bottom table is blocked in database list (left panel)
- issue #14425 Fixed Null Checkbox automatically unmarked
- issue #14870 Display correct date and time in Zip files
- issue #14763 Fixed the loading symbol not appearing when refreshing the navigation
- issue #14607 Count rows only if needed
- issue #14832 Show Designer combo boxes when adding a constraint
- issue #14948 Fix change password is not showing password strength difference at the second attempt
- issue #14868 Fix edit view
- issue #14943 Fixed loading Forever when creating new view without filling any field
- issue #14843 Fix Bookmark::get() id matching SQL
- issue #14734 Fixed invalid default value for bit field
- issue #14311 Fixed undefined index in setup script
- issue #14991 Fixed TypeError in GIS editor
- issue Fixed GIS data editor for multi server setup
- issue #14312 Fixed type error in setup script when adding new server
- issue #14053 Fix missed padding on query results
- issue #14826 Fixed javascript error PMA_messages is not defined
- issue Show error message if config-set fails and not "loading..." forever
- issue #14359 Prevent multiple error modals, and error-report request spamming from script
- issue Fixed error reporting javascript errors on multi server setup
- issue Fixed wrong property name on TableStructureController
- issue #14811 Fix SHOW FULL TABLES FROM when a table is locked
- issue #14916 Fix bug when creating or editing views
- issue #14931 Fixed php error when using a query like SELECT 1 INTO @a; SELECT @a; in inline query edit
- issue #15074 Make the server logo visible on theme "original"
- issue #15077 Fixed incorrect page numbers
- issue #14205 Fixed "No tables found in database" when you delete all tables from last page
- issue #14957 Virtuality is not selected when editing generated column (added virtuality(stored) option for mariadb)
- issue #14853 Insert page should not allow entering things into virtual columns
- issue #15110 Fixed TypeError e.preventDefaulut is not a function
- issue #15115 Improved label in Settings export, clarifying that it's a JSON file
- issue #14816 Fixed [designer] Cannot read property 'style' of null
- issue Fixed [designer] Add new tables with database/table list modal
- issue Fixed query format on multi server setup
- issue Fixed remove partitioning on multi server setup
- issue Fixed normalization
- issue Fixed 'RESET SLAVE' button on replication slave
- issue Fixed sending a php error report on multi server setup
- issue Fixed downloading of monitor parameters for IE 11, Edge, Chrome and others
- issue #15141 Fixed php notice Undefined index: designer_settings
- issue #12729 Fixed sticky table header over dropdown menu
- issue #15140 Fixed edit link does not work on failed insert
- issue #14334 Fixed export table structure shows rows fields
- issue #15010 Fixed empty SQL preview modal on tbl_relation
- issue #14673 Fixed innodb & MySQL 8: DYNAMIC & COMPRESSED ROW_FORMAT missing
- issue Fixed empty success message when adding a new INDEX from left panel
- issue #15150 Fixed generate password hidden on second open of change password modal
- issue Fixed import XML data with leading zeros
- issue #15036 Fixed missing input fields checks for MaxSizeForInputField
- issue #15119 Fixed uninterpreted HTML on Settings->Export page
- issue #15159 Fixed missing query time and database in console
- issue #13713 Fixed column comments in the floating table header
- issue #15177 Fixed label alignment on login page
- issue #15210 Fixed a typo in the english name of the Albanian language
- issue Fixed issue when resetting charset in import.php
- issue #14460 Fixed forms where submitted multiple times on CTRL + ENTER
- issue #15038 Fixed console height was allowing a negative values
- issue #15219 Fixed 'No Password' option does not switch automatically to 'Use Text Field' in add user account
- issue Fixed importing the exported config on Server status monitor page
- issue #15228 Fixed php notice 'Undefined index: foreign_keys_data' on designer when the user has column access
- issue #12900 Fixed designer page saving gives error when configuration storage is not set up
- issue #15229 Fixed php notice, added support for 'DELETE HISTORY' table privilege (MariaDB >= 10.3.4)
- issue #14527 Fixed import settings function not working
- issue #14908 Fixed uninterpreted HTML on Settings->Import (missing data error descriptions)
- issue #14800 Fixed status->Processes doesn't show full query process list page
- issue #14833 Fixed sort by Time not working in process list page
- issue #14982 Fixed setting "null" keep an "enum" value
- issue #14401 Fixed insert rows keypress Enter behavior
- issue #15146 Fixed error reports can not be sent because they are too large
- issue #15205 Fixed useless backquotes on sql preview modal when deleting an index
- issue #13178 Fixed issues with uppercase table and database names (lower_case_table_names=1)
- issue #14383 Fixed warning when browsing certain tables (GIS data)
- issue #12865 Fixed MySQL 8.0.0 issues with GIS display
- issue #15059 Fixed "Server charset" in "Database server" tab showing wrong information
- issue #14614 Fixed mysql error "#2014 - Commands out of sync; you can't run this command now" on sql query
- issue #15238 Fixed phpMyAdmin 4.8.5 doesn't show privileges of procedures (raw html displayed instead)
- issue #13726 Fixed can not copy user on Percona Server 5.7
- issue #15239 Fixed javascript error while fetching latest version info and switching pages
- issue #14301 Fixed javascript error when editing a JSON data type column
- issue #15240 Fixed apply a Settings form with errors shows a JSON response after using return back
- issue #15043 Fixed multiple errors printing on Settings page
- issue #15037 Fixed unexpected behavior of reset button on Settings
- issue #15157 Fixed 'Settings' tab not marked as active when browsing 2FA settings
- issue #14934 Fixed all fields readonly on Edit/Insert screens
- issue #14588 Fixed export of geometry objects, GIS objects are now exported as hex
- issue #14412 Better handling of errors with Signon authentication type
- issue Added support for AUTO_INCREMENT when using ROCKSDB, on Operations page
- issue #15276 Fixed partitioning is missing in Structure page UI (MySQL 8.0)
- issue #14252 Fixed DisableIS and database tree list (new database missing when refreshing the list)
- issue #14621 Removed "Propose table structure" on MySQL 8.0
- issue Fixed editing of virtual columns on PerconaDB
- issue #13854 Fixed column options are ignored for GENERATED/VIRTUAL/STORED columns
- issue #15262 Fixed incorrect display of charset column (raw html)
- issue Added explicit parentheses in nested ternary operators
- issue #15287 Fix auto_increment field is too small
- issue #15283 Fix tries to change collation on views when changing collation on all tables/fields
- issue Fixed empty PMA_gotoWhitelist JavaScript array
- issue #15079 Fixed responsive behaviour of instruction dialog box
- issue #10846 Fixed javascript error when renaming a table
- issue Updated sql-parser to version 4.3.2
- issue [security] SQL injection in Designer (PMASA-2019-3)
- issue [security] CSRF attack on 'cookie' login form (PMASA-2019-4)
4.8.5 (2019-01-25)
- issue Developer debug data was saved to the PHP error log
- issue #14217 Fix issue when adding user on MySQL 8.0.11
- issue #13788 Exporting a view structure based on another view with a sub-query throws no database selected error
- issue #14635 Fix PHP error in GitRevision, error in processing request, error code 200
- issue #14787 Cannot execute stored procedure
- issue Add Burmese language
- issue #14794 Not responding to click, frozen interface, plugin Text_Plain_Sql error
- issue #14786 Table level Operations functions missing
- issue #14791 PHP warning, db_export.php#L91 urldecode()
- issue #14775 Export to SQL format not available for tables
- issue #14782 Error message shown instead of two-factor QR code when adding 2fa to a user
- issue [security] Arbitrary file read/delete relating to MySQL LOAD DATA LOCAL INFILE and an evil server instance (PMASA-2019-1)
- issue [security] SQL injection in Designer (PMASA-2019-2)
- Fixed test failure due to a hard-coded system error that may be
localized on non-en-US hosts. Thanks to Slaven Rezić for the catch
(#427).
- Now require Test::MockModule 0.17 to silence a warning during testing.
Thanks to Slaven Rezić for the suggestion.
- Fixed an error when Sqitch is run with no arguments. Thanks to Henrik
Tudborg for the report (#428).
- Fixed missing dependency on IO::Pager in the distribution metadata.
- Removed use of File::HomeDir, thanks to a PR from Karen Etheridge
(#433).
- Updated the tagline from "Sane database change management" to "Sensible
database change management" out of sensitivity to those subject to
mental illness (#435).
- Removed double-quoting of SQLite commands on Windows, inadvertently
added by the workaround for Windows quoting in v0.9999.
- Fixed a Snowflake issue where Sqitch failed to recognize the proper
error code for a missing table and therefore an uninitialized registry.
Thanks to @lerouxt and @kulmam92 for the report and fix (#439).
- Added check for project initialization when no engine config can be
found. When run from a directory with no configuration, Sqitch now
reports that the project is not initialized instead of complaining
about a lack of engine config (#437).
- Documented Snowflake key pair authentication in
`sqitch-authentication`, as well as `$SNOWSQL_PRIVATE_KEY_PASSPHRASE`
in `sqitch-environment`. Thanks to Casey Largent for figuring it out
(#441).
- Added the German localization. Thanks to Thomas Iguchi for the pull
request (#451).
- Renamed the French localization from "fr" to "fr_FR", so that systems
will actually find it.
- Added the `ask_yes_no()` method as a replacement for `ask_y_n()`, which
is now deprecated. The new method expects localized responses from the
user when translations are provided. Defaults to the English "yes" and
"no" when no translation is available. Suggested by German translator
Thomas Iguchi (#449).
- Fixed a bug where only project without a URI was allowed in the
registry. Thanks to Conding-Brunna for the report (#450).
- Clarified the role of project URIs for uniqueness: They don't allow
multiple projects with the same name, but do prevent the deployment of
a project with the same name but different URI.
- Fixed an issue where target variables could not be found when a target
name was not lowercase. Thanks to @maximejanssens for the report
(#454).
- Now require Config::GitLike 1.15 or higher.
- Fixed the indentation of variables emitted by the `show` actions of the
`target` and `engine` commands, fixing a "Negative repeat count does
nothing" warning in the process. Thanks to @maximejanssens for the
report (#454).
- Fixed a Snowflake test failure when the current system username has a
space or other character requiring URI escaping. Thanks to Ralph
Andrade for the report (#463).
- Fixed an issue where a wayward newline in some versions of SQLite
prevented Sqitch from parsing the version. Thanks to Kivanc Yazan
for the report (#465) and the fix (#465)!
- Fixed an error when Sqitch was run on a system without a valid
username, such as some Docker environments. Thanks to Ferdinand Salis
for the report (#459)!
- When Sqitch finds the registry does not exist on PostgreSQL, it now
sends a warning to the PostgreSQL log reporting that it will initialize
the database. This is to reduce confusion for folks watching the
PostgreSQL error log while Sqitch runs (#314).
Release 1.22
Corrected formatting to be compliant with the Google C++ Style Guide.
Specifically export the WriteBatch::Handler inner class for Windows link.
Merge pull request 665 from cheng-chang:coding.
Merge pull request 669 from pavel-pimenov:fix-readme-windows-mkdir.
Merge pull request 472 from zhoudayang:patch-1.
Merge pull request 339 from richcole-at-amazon:master.
Restore soname versioning with CMake build.
Other miscellaneous cleanups, fixes, and improvements.
Release 1.21
Switched to using Copybara for project synchronization.
Minor cleanup in ports.
Silence unused argument warnings in MSVC.
Add tests for empty keys and values.
Switch corruption_test to use InMemEnv.
Replace AtomicPointer with std::atomic.
Make InMemoryEnv more consistent with filesystem based Env's.
Align windows_logger with posix_logger.
Improve CI configuration and added AppVeyor (Windows CI) badge to README.
Added native support for Windows.
Make WriteBatch::ApproximateSize() const.
Fix PosixWritableFile::Sync() on Apple systems.
Fix fdatasync() feature detection in opensource build.
C++11 cleanup for util/mutexlock.h.
Rework threading in env_posix.cc.
Remove InitOnce from the port API.
Expose WriteBatch::Append().
Fix documentation for log file growth.
Add move constructor to Status.
Replace port_posix with port_stdcxx.
Reimplement ConsumeDecimalNumber.
Document the building process.
Replace NULL with nullptr in C++ files.
Remove PLATFORM_IS_LITTLE_ENDIAN from port/posix.h.
Add more thread safety annotations.
Require C++11.
Replace SIZE_MAX with std::numeric_limits.
Add CMake build support.
Enable thread safety annotations.
leveldb::DestroyDB will now delete empty directories.
Replace SSE-optimized CRC32C in POSIX port with external library.
Fix file writing bug in CL 170738066.
Fix use of uninitialized value in LRUHandle.
Fix issue 474: a race between the f*_unlocked() STDIO calls in env_posix.cc and concurrent application calls to fflush(NULL).
Use __APPLE__ instead of OS_MACOS. The former is compiler-provided.
Report missing CURRENT manifest file as database corruption.
LevelDB: Add WriteBatch::ApproximateSize().
Other minor fixes, code cleanup, and documentation improvements.
2.10.0:
[CHANGE/BUGFIX] API: Encode alert values as string to correctly represent Inf/NaN.
[FEATURE] Template expansion: Make external labels available as $externalLabels in alert and console template expansion.
[FEATURE] TSDB: Add prometheus_tsdb_wal_segment_current metric for the WAL segment index that TSDB is currently writing to.
[FEATURE] Scrape: Add scrape_series_added per-scrape metric.
[ENHANCEMENT] Discovery/kubernetes: Add labels __meta_kubernetes_endpoint_node_name and __meta_kubernetes_endpoint_hostname.
[ENHANCEMENT] Discovery/azure: Add label __meta_azure_machine_public_ip.
[ENHANCEMENT] TSDB: Simplify mergedPostings.Seek, resulting in better performance if there are many posting lists.
[ENHANCEMENT] Log filesystem type on startup.
[ENHANCEMENT] Cmd/promtool: Use POST requests for Query and QueryRange.
[ENHANCEMENT] Web: Sort alerts by group name.
[ENHANCEMENT] Console templates: Add convenience variables $rawParams, $params, $path.
[BUGFIX] TSDB: Don't panic when running out of disk space and recover nicely from the condition.
[BUGFIX] TSDB: Correctly handle empty labels.
[BUGFIX] TSDB: Don't crash on an unknown tombstone reference.
[BUGFIX] Storage/remote: Remove queue-manager specific metrics if queue no longer exists.
[BUGFIX] PromQL: Correctly display {__name__="a"}.
[BUGFIX] Discovery/kubernetes: Use service rather than ingress as the name for the service workqueue.
[BUGFIX] Discovery/azure: Don't panic on a VM with a public IP.
[BUGFIX] Discovery/triton: Always read HTTP body to completion.
[BUGFIX] Web: Fixed Content-Type for js and css instead of using /etc/mime.types.
1.3.4
orm
[orm] [bug]
Fixed issue where the AttributeEvents.active_history flag would not be set for an event listener that propgated to a subclass via the AttributeEvents.propagate flag. This bug has been present for the full span of the AttributeEvents system.
[orm] [bug]
Fixed regression where new association proxy system was still not proxying hybrid attributes when they made use of the @hybrid_property.expression decorator to return an alternate SQL expression, or when the hybrid returned an arbitrary PropComparator, at the expression level. This involved futher generalization of the heuristics used to detect the type of object being proxied at the level of QueryableAttribute, to better detect if the descriptor ultimately serves mapped classes or column expressions.
[orm] [bug]
Applied the mapper “configure mutex” against the declarative class mapping process, to guard against the race which can occur if mappers are used while dynamic module import schemes are still in the process of configuring mappers for related classes. This does not guard against all possible race conditions, such as if the concurrent import has not yet encountered the dependent classes as of yet, however it guards against as much as possible within the SQLAlchemy declarative process.
[orm] [bug]
A warning is now emitted for the case where a transient object is being merged into the session with Session.merge() when that object is already transient in the Session. This warns for the case where the object would normally be double-inserted.
[orm] [bug]
Fixed regression in new relationship m2o comparison logic first introduced at Improvement to the behavior of many-to-one query expressions when comparing to an attribute that is persisted as NULL and is in an un-fetched state in the mapped instance. Since the attribute has no explicit default, it needs to default to NULL when accessed in a persistent setting.
engine
[engine] [bug] [postgresql]
Moved the “rollback” which occurs during dialect initialization so that it occurs after additional dialect-specific initialize steps, in particular those of the psycopg2 dialect which would inadvertently leave transactional state on the first new connection, which could interfere with some psycopg2-specific APIs which require that no transaction is started. Pull request courtesy Matthew Wilkes.
sql
[sql] [bug]
Fixed that the GenericFunction class was inadvertently registering itself as one of the named functions. Pull request courtesy Adrien Berchet.
[sql] [bug]
Fixed issue where double negation of a boolean column wouldn’t reset the “NOT” operator.
[sql] [bug]
The GenericFunction namespace is being migrated so that function names are looked up in a case-insensitive manner, as SQL functions do not collide on case sensitive differences nor is this something which would occur with user-defined functions or stored procedures. Lookups for functions declared with GenericFunction now use a case insensitive scheme, however a deprecation case is supported which allows two or more GenericFunction objects with the same name of different cases to exist, which will cause case sensitive lookups to occur for that particular name, while emitting a warning at function registration time. Thanks to Adrien Berchet for a lot of work on this complicated feature.
postgresql
[postgresql] [bug] [orm]
Fixed an issue where the “number of rows matched” warning would emit even if the dialect reported “supports_sane_multi_rowcount=False”, as is the case for psycogp2 with use_batch_mode=True and others.
mysql
[mysql] [bug]
Added support for DROP CHECK constraint which is required by MySQL 8.0.16 to drop a CHECK constraint; MariaDB supports plain DROP CONSTRAINT. The logic distinguishes between the two syntaxes by checking the server version string for MariaDB presence. Alembic migrations has already worked around this issue by implementing its own DROP for MySQL / MariaDB CHECK constraints, however this change implements it straight in Core so that its available for general use. Pull request courtesy Hannes Hansen.
mssql
[mssql] [feature]
Added support for SQL Server filtered indexes, via the mssql_where parameter which works similarly to that of the postgresql_where index function in the PostgreSQL dialect.
[mssql] [bug]
Added error code 20047 to “is_disconnect” for pymssql. Pull request courtesy Jon Schuff.
misc
[misc] [bug]
Removed errant “sqla_nose.py” symbol from MANIFEST.in which created an undesirable warning message.
RRDtool 1.7.2:
Bugfixes
* Updated the Makefiles to properly include all needed files into the distribution tar
* Cleand up Compiler Warnings
* Improved compilation in MinGW environment
* fix segfault on non-existent RRD file when using rrdcached
* fix bounds handling, documentation and checking on rrdtool xport
* Fix %s/%S unit autoscaling in gprint for json/xml
* Optimized PDP Calculation
Release 0.3.0:
Notable Changes
* Remove support for Python 3.3.
Enhancements
* New formatting option "--indent_after_first"
* New formatting option "--indent_columns"
* Add UPSERT keyword
* Strip multiple whitespace within parentheses
* Support double slash (//) comments
* Support for Calcite temporal keywords
Bug Fixes
* Fix occasional IndexError
* Fix incorrect splitting of strings containing new lines
* Fix reindent issue for parenthesis
* Fix from( parsing issue
* Fix for get_real_name() to return correct name
* Wrap function params when wrap_after is set
* Fix parsing of "WHEN name" clauses
* Add missing EXPLAIN keyword
* Fix issue with strip_comments causing a syntax error
* Fix formatting on INSERT which caused staircase effect on values
by fredyw).
* Avoid formatting of psql commands
Internal Changes
* Unify handling of GROUP BY/ORDER BY
* Remove unnecessary compat shim for bytes
2.9.2:
[BUGFIX] Make sure subquery range is taken into account for selection
[BUGFIX] Exhaust every request body before closing it
[BUGFIX] Cmd/promtool: return errors from rule evaluations
[BUGFIX] Remote Storage: string interner should not panic in release
[BUGFIX] Fix memory allocation regression in mergedPostings.
2.9.1:
[BUGFIX] Discovery/kubernetes: fix missing label sanitization
[BUGFIX] Remote_write: Prevent reshard concurrent with calling stop
2.9.0:
This releases uses Go 1.12, which includes a change in how memory is released
to Linux. This will cause RSS to be reported as higher, however this is harmless
and the memory is available to the kernel when it needs it.
[CHANGE/ENHANCEMENT] Update Consul to support catalog.ServiceMultipleTags.
[FEATURE] Add honor_timestamps scrape option.
[ENHANCEMENT] Discovery/kubernetes: add present labels for labels/annotations.
[ENHANCEMENT] OpenStack SD: Add ProjectID and UserID meta labels.
[ENHANCEMENT] Add GODEBUG and retention to the runtime page.
[ENHANCEMENT] Add support for POSTing to /series endpoint.
[ENHANCEMENT] Support PUT methods for Lifecycle and Admin APIs.
[ENHANCEMENT] Scrape: Add global jitter for HA server.
[ENHANCEMENT] Check for cancellation on every step of a range evaluation.
[ENHANCEMENT] String interning for labels & values in the remote_write path.
[ENHANCEMENT] Don't lose the scrape cache on a failed scrape.
[ENHANCEMENT] Reload cert files from disk automatically.
[ENHANCEMENT] Use fixed length millisecond timestamp format for logs.
[ENHANCEMENT] Performance improvements for postings.
[BUGFIX] Remote Write: fix checkpoint reading.
[BUGFIX] Check if label value is valid when unmarshaling external labels from YAML.
[BUGFIX] Promparse: sort all labels when parsing.
[BUGFIX] Reload rules: copy state on both name and labels.
[BUGFIX] Exponentation operator to drop metric name in result of operation.
[BUGFIX] Config: resolve more file paths.
[BUGFIX] Promtool: resolve relative paths in alert test files.
[BUGFIX] Set TLSHandshakeTimeout in HTTP transport.
[BUGFIX] Use fsync to be more resilient to machine crashes.
[BUGFIX] Keep series that are still in WAL in checkpoints.
[BUGFIX] Fix output sample values for scalar-to-vector comparison operations.
Redis 5.0.5:
Upgrade urgency CRITICAL: This release fixes an important AOF fysnc bug
and other less critical issues.
Dear user,
Redis 5.0.5 fixes an important issue with AOF and adds multiple very useful
modules APIs. Moreover smaller bugs in other parts of Redis are fixed in
this release.
The AOF bug
The AOF bug happens when the fsync policy is set to "everysec", which is the
default: if the write load in the server drops immediately, the commands
executed in the latest second may not be fsync-ed to disk as it should.
This may lead to data loss in case the write load drops immediately and
successively a server crash happens.
Other things in this release
* Streams: a bug in the iterator could prevent certain items to be returned in
range queries under specific conditions.
* Memleak in bitfieldCommand fixed.
* Modules API: Preserve client->id for blocked clients.
* Fix memory leak when rewriting config file in case of write errors.
* New modules API: RedisModule_GetKeyNameFromIO().
* Fix non critical bugs in diskless replication.
* New mdouels API: command filtering. See RedisModule_RegisterCommandFilter();
* Tests improved to be more deterministic.
* Fix a Redis Cluster bug, manual failover may abort because of the master
sending PINGs to the replicas.
Fixes build with OpenSSL-1.1.
libgda 5.2.9
- Fix Sun JRE 1.8 detection
- Fix JDK 11.0 detection
- Drop unneeded JAVAH variable check
- Fix build for System Installed SQLite libs
- Non-Dates and Timestamps values returns 'NULL' string when converted
- Fix --with-ui, now UI is buildable when enable
libgda 5.2.8 2018-12-03
- Fix a typo on sv translation
- Please note: releases 5.2.6 and 5.2.7 were unable to be published at
downdload.gnome.org
libgda 5.2.7 2018-11-07
- SQLite provider uses system installed one by default
- Revome build's date from documentation
- introspection: removed system install in favor of --prefix
libgda 5.2.6 2018-10-03
- Fixed compilation on MacOS
- All Vala bindings and Vala extensions are built by default using --enable-vala,
added --disable* switch to disable some or all of them
- Fixes on outdated unit tests
- Removed unused Vala extensions
- Translations:
- es (Daniel Mustieles)
libgda 5.2.5 2018-09-25
- GdaConnection has removed the use of g_object_weak_*, improving
multi-threading behaviour
- Prepared statements now use GWeakRef for weak references
- GdaDataPivot use instance providers and locking
- GdaVConnectionDataModel use GRecMutex
- Updated SQLite to 3.8.11.1
- Fix SQLCipher build by embedding source code for 3.4.2 version
- Fix SQLCipher disabling
- Updated GObject Introspection annotations
- Fix Doc generation
- Bugs corrected: #787685#789382#761560#761529#760420#761424#754263#754208
- Corrected HTML output containing <SCRIPT> tag
- Correct some truncated help strings
- Don't use (deprecated) g_thread_supported()
- MySQL meta data: fixed case where schema is incomplete in MySQL database
- Allow introspection for gda_sql_builder_add_cond_v()
- SQLite: handle WITHOUT ROWID without any error
- Translations:
- es (Daniel Mustieles)
- da (Ask Hjorth Larsen)
- pt_BR (Rafael Fontenelle)
- eu (Inaki Larranaga Murgoitio)
- sr (Мирослав Николић)
- sv (Anders Jonsson)
- de (Mario Blättermann)
- cs (Marek Černocký)
- hu (Balázs Meskó)
- oc (Balázs Meskó)
- el (Tom Tryfonidis)
- po (Pedro Albuquerque)
- id (Andika Triwidada)
libgda 5.2.4, 2015-06-13
- Added missing file in distributed tarball, bug #750891
libgda 5.2.3, 2015-06-12
- Improved Vala and introspection
- Bugs corrected: #722531, #722773, #730813, #742312, #750191 and others
- Translations:
- zh_CN (Wylmer Wang)
- el (Dimitris Spingos)
- sr (Мирослав Николић)
- bs (Samir Ribic)
- pl (Piotr Drąg)
- cs (Marek Černocký)
- es (Daniel Mustieles)
- id (Andika Triwidada)
- eu (Inaki Larranaga Murgoitio)
- pt (Pedro Albuquerque)
InfluxDB is an open source time series database with no external
dependencies. It is useful for recording metrics, events, and
performing analytics.
Patches and testing provided by Bill Welliver in joyent/pkgsrc#194
PostgreSQL 11.3, 10.8, 9.6.13, 9.5.17, and 9.4.22 Released!
The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 11.3, 10.8, 9.6.13, 9.5.17, and 9.4.22. This release fixes two security issues in the PostgreSQL server, a security issue found in two of the PostgreSQL Windows installers, and over 60 bugs reported over the last three months.
Security Issues
Four security vulnerabilities have been closed by this release:
CVE-2019-10127: BigSQL Windows installer does not clear permissive ACL entries
CVE-2019-10128: EnterpriseDB Windows installer does not clear permissive ACL entries
Due to both the EnterpriseDB and BigSQL Windows installers not locking down the permissions of the PostgreSQL binary installation directory and the data directory, an unprivileged Windows user account and an unprivileged PostgreSQL account could cause the PostgreSQL service account to execute arbitrary code.
This vulnerability is present in all supported versions of PostgreSQL for these installers, and possibly exists in older versions. Both sets of installers have fixed the permissions for these directories for both new and existing installations. If you have installed PostgreSQL on Windows using other methods, we advise that you check that your PostgreSQL binary directories are writable only to trusted users and that your data directories are only accessible to trusted users.
The PostgreSQL project thanks Conner Jones for reporting this problem.
CVE-2019-10129: Memory disclosure in partition routing
Prior to this release, a user running PostgreSQL 11 can read arbitrary bytes of server memory by executing a purpose-crafted INSERT statement to a partitioned table.
CVE-2019-10130: Selectivity estimators bypass row security policies
PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user able to execute SQL queries with permissions to read a given column could craft a leaky operator that could read whatever data had been sampled from that column. If this happened to include values from rows that the user is forbidden to see by a row security policy, the user could effectively bypass the policy. This is fixed by only allowing a non-leakproof operator to use this data if there are no relevant row security policies for the table.
This issue is present in PostgreSQL 9.5, 9.6, 10, and 11. The PostgreSQL project thanks Dean Rasheed for reporting this problem.
Bug Fixes and Improvements
This update also fixes over 60 bugs that were reported in the last several months. Some of these issues affect only version 11, but many affect all supported versions.
Some of these fixes include:
Several catalog corruption fixes, including one related to running ALTER TABLE on a partitioned table
Several fixes for partitioning
Avoid server crash when an error occurs while trying to persist a cursor query across a transaction commit
Avoid O(N^2) performance issue when rolling back a transaction that created many tables
Fix possible “could not access status of transaction” failures in txid_status()
Fix updatable views to handle explicit DEFAULT items in INSERT .. VALUES statements where there are multiple VALUES rows
Fix CREATE VIEW to allow zero-column views
Add missing support for the CREATE TABLE IF NOT EXISTS .. AS EXECUTE .. statement
Ensure that sub-SELECTs appearing in row-level-security policy expressions are executed with the correct user's permissions
Accept XML documents as valid values of type xml when xmloption is set to content, as required by SQL:2006 and later
Fix incompatibility of GIN-index WAL records that were introduced in 11.2, 10.7, 9.6.12, 9.5.16, and 9.4.21 that affected replica servers running these versions reading in changes to GIN indexes from primary servers of older versions
Several memory leak fixes as well as fixes to management of dynamic shared memory
Relax panics on fsync and sync_file_range failures for certain cases where a failure indicated "operation not supported"
Several fixes to the query planner, several of which should lead to planning improvements
Fix race condition in which a hot-standby postmaster could fail to shut down after receiving a smart-shutdown request
Several fixes for SCRAM authentication
Fix handling of lc_time settings that imply an encoding different from the database's encoding
Create the current_logfiles file with the same permissions as other files in the server's data directory
Several ecpg fixes
Make pg_verify_checksums verify that the data directory it's pointed at is of the right PostgreSQL version
Several fixes for contrib/postgres_fdw, including one for remote partitions where an UPDATE could lead to incorrect results or a crash
Several Windows fixes
This update also contains tzdata release 2019a for DST law changes in Palestine and Metlakatla, plus historical corrections for Israel. Etc/UCT is now a backward-compatibility link to Etc/UTC, instead of being a separate zone that generates the abbreviation UCT, which nowadays is typically a typo. PostgreSQL will still accept UCT as an input zone abbreviation, but it won't output it.
=== 5.20.0 (2019-05-01)
* Fix reversing of alter_table add_foreign_key when :type option is used (jeremyevans) (#1615)
* Switch from using instance_exec to define_method for model associations and in some plugins (jeremyevans)
* Fix Database#server_version when using mysql2 adapter with mysql driver on MariaDB 10+ database (v-kolesnikov) (#1614)
* Make one_to_one setter method handle models that use joined datasets (jeremyevans) (#1612)
* Make auto_validations plugin work with the class_table_inheritance plugin (jeremyevans) (#1611)
* Avoid use of instance_exec for PlaceholderLiteralString#with_dataset (jeremyevans)
* Recognize float unsigned database types as float (keeguon, jeremyevans) (#1609)
* Support :savepoint options to Database#{after_commit,after_rollback} for making the hooks handle savepoints (jeremyevans)
* Avoid use of instance_exec in association_dependencies plugin (jeremyevans)
* Add pg_auto_constraint_validation_override to the pg_auto_constraint_validations plugin, for customizing columns and error message per constraint (jeremyevans)
* Make Database#check_constraints on PostgreSQL also include constraints where the related columns are not known (jeremyevans)
pkgsrc change: add "USE_LANGUAGES= # none".
1.1.1
* Adapters::Sequel - use prepared statements
* Adapters::Sqlite - use upsert for increment where supported
1.1.0
* Adapters::ActiveRecord - rewrite to use Arel directly; support for Rails 5
* Moneta::Server - close all connections when stopping
* Moneta::Shared - recover from socket errors
* Transformer - add :urlsafe_base64; use this by default for keys with Couch
adapter
* Adapters::MongoMoped - recover from failed increment
* Moneta::Pool - fix race condition in #pop (#144)
* Moneta::Client - raise EOFError if a read fails
* Moneta::Expires - use Rational objects to get much more accurate time
resolution
* Moneta::Lock/Moneta::Pool - allow wrapped methods to call other wrapped
methods
* Adapters::Sequel - add optimisations for MySQL, PostgreSQL and SQLite
* Adapters::Sequel - add Postgres+HStore backend
* Add Adapters::ActiveSupportCache
* Adapters::Sqlite - add :journal_mode option
* Add table creation options to Sequel and ActiveRecord adapters
* Adapters::ActiveRecord - support for forking (#159)
* Adapters::Cassandra - rewrite to use cassandra-driver gem (#81)
* Adapters::Couch - add a LRUHash to cache document revs
* Adapters::KyotoCabinet - implement atomic increment
* Add :each_key feature and implemented on many adapters; add
Moneta::WeakEachKey (#143; see feature matrix)
* Add bulk read/write methods to the spec; added default implementation to
Defaults and fast versions in many adapters (#116; see feature matrix)
* First class support for latest JRuby (#160)
* Minimum required MRI version is now 2.2.2 (#135)
pkgsrc change: allow any Ruby on Rails in pkgsrc.
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
1.0.10
bug
[bug] [commands]
Fixed bug introduced in release 0.9.0 where the helptext for commands inadvertently got expanded to include function docstrings from the command.py module. The logic has been adjusted to only refer to the first line(s) preceding the first line break within each docstring, as was the original intent.
[bug] [mysql] [operations]
Added an assertion in RevisionMap.get_revisions() and other methods which ensures revision numbers are passed as strings or collections of strings. Driver issues particularly on MySQL may inadvertently be passing bytes here which leads to failures later on.
[bug] [autogenerate] [mysql]
Fixed bug when using the EnvironmentContext.configure.compare_server_default flag set to True where a server default that is introduced in the table metadata on an Integer column, where there is no existing server default in the database, would raise a TypeError.
1.0.9
bug
[bug] [operations]
Simplified the internal scheme used to generate the alembic.op namespace to no longer attempt to generate full method signatures (e.g. rather than generic *args, **kw) as this was not working in most cases anyway, while in rare circumstances it would in fact sporadically have access to the real argument names and then fail when generating the function due to missing symbols in the argument signature.
1.3.3
orm
[orm] [bug]
Fixed 1.3 regression in new “ambiguous FROMs” query logic introduced in Query.join() handles ambiguity in deciding the “left” side more explicitly where a Query that explicitly places an entity in the FROM clause with Query.select_from() and also joins to it using Query.join() would later cause an “ambiguous FROM” error if that entity were used in additional joins, as the entity appears twice in the “from” list of the Query. The fix resolves this ambiguity by folding the standalone entity into the join that it’s already a part of in the same way that ultimately happens when the SELECT statement is rendered.
[orm] [bug]
Adjusted the Query.filter_by() method to not call and() internally against multiple criteria, instead passing it off to Query.filter() as a series of criteria, instead of a single criteria. This allows Query.filter_by() to defer to Query.filter()’s treatment of variable numbers of clauses, including the case where the list is empty. In this case, the Query object will not have a .whereclause, which allows subsequent “no whereclause” methods like Query.select_from() to behave consistently.
postgresql
[postgresql] [bug]
Fixed regression from release 1.3.2 caused by 4562 where a URL that contained only a query string and no hostname, such as for the purposes of specifying a service file with connection information, would no longer be propagated to psycopg2 properly. The change in 4562 has been adjusted to further suit psycopg2’s exact requirements, which is that if there are any connection parameters whatsoever, the “dsn” parameter is no longer required, so in this case the query string parameters are passed alone.
mssql
[mssql] [bug]
Fixed issue in SQL Server dialect where if a bound parameter were present in an ORDER BY expression that would ultimately not be rendered in the SQL Server version of the statement, the parameters would still be part of the execution parameters, leading to DBAPI-level errors. Pull request courtesy Matt Lewellyn.
misc
[bug] [pool]
Fixed behavioral regression as a result of deprecating the “use_threadlocal” flag for Pool, where the SingletonThreadPool no longer makes use of this option which causes the “rollback on return” logic to take place when the same Engine is used multiple times in the context of a transaction to connect or implicitly execute, thereby cancelling the transaction. While this is not the recommended way to work with engines and connections, it is nonetheless a confusing behavioral change as when using SingletonThreadPool, the transaction should stay open regardless of what else is done with the same engine in the same thread. The use_threadlocal flag remains deprecated however the SingletonThreadPool now implements its own version of the same logic.
[bug] [ext]
Fixed bug where using copy.copy() or copy.deepcopy() on MutableList would cause the items within the list to be duplicated, due to an inconsistency in how Python pickle and copy both make use of __getstate__() and __setstate__() regarding lists. In order to resolve, a __reduce_ex__ method had to be added to MutableList. In order to maintain backwards compatibility with existing pickles based on __getstate__(), the __setstate__() method remains as well; the test suite asserts that pickles made against the old version of the class can still be deserialized by the pickle module.
1.3.2
orm
[orm] [bug] [ext]
Restored instance-level support for plain Python descriptors, e.g. @property objects, in conjunction with association proxies, in that if the proxied object is not within ORM scope at all, it gets classified as “ambiguous” but is proxed directly. For class level access, a basic class level``__get__()`` now returns the AmbiguousAssociationProxyInstance directly, rather than raising its exception, which is the closest approximation to the previous behavior that returned the AssociationProxy itself that’s possible. Also improved the stringification of these objects to be more descriptive of current state.
[orm] [bug]
Fixed bug where use of with_polymorphic() or other aliased construct would not properly adapt when the aliased target were used as the Select.correlate_except() target of a subquery used inside of a column_property(). This required a fix to the clause adaption mechanics to properly handle a selectable that shows up in the “correlate except” list, in a similar manner as which occurs for selectables that show up in the “correlate” list. This is ultimately a fairly fundamental bug that has lasted for a long time but it is hard to come across it.
[orm] [bug]
Fixed regression where a new error message that was supposed to raise when attempting to link a relationship option to an AliasedClass without using PropComparator.of_type() would instead raise an AttributeError. Note that in 1.3, it is no longer valid to create an option path from a plain mapper relationship to an AliasedClass without using PropComparator.of_type().
sql
[sql] [bug] [documentation]
Thanks to TypeEngine methods bind_expression, column_expression work with Variant, type-specific types, we no longer need to rely on recipes that subclass dialect-specific types directly, TypeDecorator can now handle all cases. Additionally, the above change made it slightly less likely that a direct subclass of a base SQLAlchemy type would work as expected, which could be misleading. Documentation has been updated to use TypeDecorator for these examples including the PostgreSQL “ArrayOfEnum” example datatype and direct support for the “subclass a type directly” has been removed.
postgresql
[postgresql] [feature]
Added support for parameter-less connection URLs for the psycopg2 dialect, meaning, the URL can be passed to create_engine() as "postgresql+psycopg2://" with no additional arguments to indicate an empty DSN passed to libpq, which indicates to connect to “localhost” with no username, password, or database given. Pull request courtesy Julian Mehnle.
[postgresql] [bug]
Modified the Select.with_for_update.of parameter so that if a join or other composed selectable is passed, the individual Table objects will be filtered from it, allowing one to pass a join() object to the parameter, as occurs normally when using joined table inheritance with the ORM.
3.9.5
* Added small helper for setting timezone when using Postgres.
* Improved SQL generation for `VALUES` clause.
* Support passing resolution to `TimestampField` as a power-of-10.
* Small improvements to `INSERT` queries when the primary-key is not an
auto-incrementing integer, but is generated by the database server (eg uuid).
* Cleanups to virtual table implementation and python-to-sqlite value
conversions.
* Fixed bug related to binding previously-unbound models to a database using a
context manager.
SQLite Release 3.28.0:
Enhanced window functions:
Add support the EXCLUDE clause.
Add support for window chaining.
Add support for GROUPS frames.
Add support for "<expr> PRECEDING" and "<expr> FOLLOWING" boundaries in RANGE frames.
Added the new sqlite3_stmt_isexplain(S) interface for determining whether or not a prepared statement is an EXPLAIN.
Enhanced VACUUM INTO so that it works for read-only databases.
New query optimizations:
Enable the LIKE optimization for cases when the ESCAPE keyword is present and PRAGMA case_sensitive_like is on.
In queries that are driven by a partial index, avoid unnecessary tests of the constraint named in the WHERE clause of the partial index, since we know that constraint must always be true.
Enhancements to the TCL Interface:
Added the -returntype option to the function method.
Added the new bind_fallback method.
Enhancements to the CLI:
Added support for bound parameters and the .parameter command.
Fix the readfile() function so that it returns an empty BLOB rather than throwing an out-of-memory error when reading an empty file.
Fix the writefile() function so that when it creates new directories along the path of a new file, it gives them umask permissions rather than the same permissions as the file.
Change --update option in the .archive command so that it skips files that are already in the archive and are unchanged. Add the new --insert option that works like --update used to work.
Added the fossildelta.c extension that can create, apply, and deconstruct the Fossil DVCS file delta format that is used by the RBU extension.
Added the SQLITE_DBCONFIG_WRITABLE_SCHEMA verb for the sqlite3_db_config() interface, that does the same work as PRAGMA writable_schema without using the SQL parser.
Added the sqlite3_value_frombind() API for determining if the argument to an SQL function is from a bound parameter.
Security and compatibilities enhancements to fts3_tokenizer():
The fts3_tokenizer() function always returns NULL unless either the legacy application-defined FTS3 tokenizers interface are enabled using the sqlite3_db_config(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER) setting, or unless the first argument to fts3_tokenizer() is a bound parameter.
The two-argument version of fts3_tokenizer() accepts a pointer to the tokenizer method object even without the sqlite3_db_config(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER) setting if the second argument is a bound parameter
Improved robustness against corrupt database files.
Miscellaneous performance enhancements
3.9.4:
* Add Model.bulk_update() method for bulk-updating fields across multiple
model instances.
* Add lazy_load parameter to ForeignKeyField. When initialized with
lazy_load=False, the foreign-key will not use an additional query to
resolve the related model instance. Instead, if the related model instance is
not available, the underlying FK column value is returned (behaving like the
"_id" descriptor).
* Added Model.truncate_table() method.
* The reflection and pwiz extensions now attempt to be smarter about
converting database table and column names into snake-case. To disable this,
you can set snake_case=False when calling the Introspector.introspect()
method or use the -L (legacy naming) option with the pwiz script.
* Bulk insert via insert_many() no longer require specification of the
fields argument when the inserted rows are lists/tuples. In that case, the
fields will be inferred to be all model fields except any auto-increment id.
* Add DatabaseProxy, which implements several of the Database class context
managers. This allows you to reference some of the special features of the
database object without directly needing to initialize the proxy first.
* Add support for window function frame exclusion and added built-in support
for the GROUPS frame type.
* Add support for chaining window functions by extending a previously-declared
window function.
* Playhouse Postgresql extension TSVectorField.match() method supports an
additional argument plain, which can be used to control the parsing of the
TS query.
* Added very minimal JSONField to the playhouse MySQL extension.
2.8.2:
Fixed "there's no async cursor" error polling a connection with no cursor.
Fixed RealDictCursor when there are repeated columns.
Fixed RealDictRow modifiability.
Binary packages built with OpenSSL 1.1.1b. Should fix concurrency problems.
## Rails 5.2.3 (March 27, 2019) ##
* Fix different `count` calculation when using `size` with manual `select` with DISTINCT.
Fixes#35214.
*Juani Villarejo*
* Fix prepared statements caching to be enabled even when query caching is enabled.
*Ryuta Kamizono*
* Don't allow `where` with invalid value matches to nil values.
Fixes#33624.
*Ryuta Kamizono*
* Restore an ability that class level `update` without giving ids.
Fixes#34743.
*Ryuta Kamizono*
* Fix join table column quoting with SQLite.
*Gannon McGibbon*
* Ensure that `delete_all` on collection proxy returns affected count.
*Ryuta Kamizono*
* Reset scope after delete on collection association to clear stale offsets of removed records.
*Gannon McGibbon*
## Rails 5.2.2.1 (March 11, 2019) ##
* No changes.
=== 5.19.0 (2019-04-02)
* Use more optimized approach to merging hashes in ruby 2.5+ (jeremyevans)
* Use SQLite extended result codes when using ruby-sqlite3 1.4.0+ (jeremyevans)
* Recognize additional SQLite extended result codes in the shared sqlite adapter (jeremyevans)
* Add Database#rename_enum_value to the pg_enum extension (AlexWayfer) (#1603)
* Make Database#drop_table delete constraint validations metadata for that table if using the constraint_validations extension (jeremyevans)
* Speed up row fetching in the sqlite adapter (jeremyevans)
* Speed up row fetching and type conversion in the sqlanywhere adapter (jeremyevans)
2.6:
- fixed empty digestMd5.py file in 2.5.2 package
- explicitly declare digest module md5 in util.ntlm
- change object passed to modify() was unexpectedly mutated
- added LDAPInfoError exception
- added Server.has_control(control) method to check if a server has a specific control
- added Server.has_extension(extension) method to check if a server has a specific extension
- added Server.has_feature(feature) method to check if a server has a specific feature
- fixed checking of \\ in safe_dn
- fixed uuid checking with 5c byte value
- added single=True parameter to the ServerPool object definition. Servers state is shared between connections using the same pool
- updated copyright notice
Release 3.2.0:
Lib/
* Add support for X-ORIGIN in ldap.schema's ObjectClass
* Make initialize() pass extra keyword arguments to LDAPObject
* ldap.controls.sss: use str instead of basestring on Python 3
* Provide ldap._trace_* atributes in non-debug mode
Doc/
* Fix ReST syntax for links to set_option and get_option
Tests/
* Use intersphinx to link to Python documentation
* Correct type of some attribute values to bytes
* Use system-specific ENOTCONN value
Infrastructure:
* Add testing and document support for Python 3.7
* Add Python 3.8-dev to Tox and CI configuration
* Add Doc/requirements.txt for building on Read the Docs
4.3:
repmgr: add "daemon (start|stop)" command
repmgr: add --version-number command line option
repmgr: add --compact option to "cluster show"
repmgr: cluster show - differentiate between unreachable nodes
and nodes which are running but rejecting connections
repmgr: add --dry-run option to "standby promote"
repmgr: add "node check --data-directory-config"
repmgr: prevent potential race condition in "standby switchover"
when checking received WAL location
repmgr: ensure "standby switchover" verifies repmgr can read the
data directory on the demotion candidate
repmgr: ensure "standby switchover" verifies replication connection
exists
repmgr: add sanity check for correct extension version
repmgr: ensure "witness register --dry-run" does not attempt to read node
tables if repmgr extension not installed
repmgr: ensure "standby register" fails when --upstream-node-id is the
same as the local node ID
repmgrd: check binary and extension major versions match
repmgrd: on a cascaded standby, don't fail over if "failover=manual";
repmgrd: don't consider nodes where repmgrd is not running as promotion
candidates
repmgrd: add option "connection_check_type"
repmgrd: improve witness monitoring when primary node not available
repmgrd: handle situation where a primary has unexpectedly appeared
during failover
Psycopg 2.8 released
After about two years from the previous major release, psycopg 2.8 is finally
here!
Among the highlights, PostgreSQL errors are now mapped to Python exceptions for
a more idiomatic way to handle them. Several additions allow a better insight
of the connection status and query results.
Behind the scene, asynchronous communication and concurrency received several
improvements, and dropping support for older versions of Python gave the chance
to refactor and modernise the codebase (with the especial help from Jon
Dufresne who ruthlessly butchered our code into a streamlined pulp).
1.0.8
bug
[bug] [operations] Removed use of deprecated force parameter for SQLAlchemy quoting functions as this parameter will be removed in a future release. Pull request courtesy Parth Shandilya(ParthS007).
[bug] [autogenerate] [postgresql] [py3k] Fixed issue where server default comparison on the PostgreSQL dialect would fail for a blank string on Python 3.7 only, due to a change in regular expression behavior in Python 3.7.
1.3.1
orm
[orm] [bug] [ext] Fixed regression where an association proxy linked to a synonym would no longer work, both at instance level and at class level.
mssql
[mssql] [bug] A commit() is emitted after an isolation level change to SNAPSHOT, as both pyodbc and pymssql open an implicit transaction which blocks subsequent SQL from being emitted in the current transaction.
This change is also backported to: 1.2.19
[mssql] [bug] Fixed regression in SQL Server reflection due to 4393 where the removal of open-ended **kw from the Float datatype caused reflection of this type to fail due to a “scale” argument being passed.
1.3.0
orm
[orm] [feature] The Query.get() method can now accept a dictionary of attribute keys and values as a means of indicating the primary key value to load; is particularly useful for composite primary keys. Pull request courtesy Sanjana S.
[orm] [feature] A SQL expression can now be assigned to a primary key attribute for an ORM flush in the same manner as ordinary attributes as described in Embedding SQL Insert/Update Expressions into a Flush where the expression will be evaulated and then returned to the ORM using RETURNING, or in the case of pysqlite, works using the cursor.lastrowid attribute.Requires either a database that supports RETURNING (e.g. Postgresql, Oracle, SQL Server) or pysqlite.
engine
[engine] [feature] Revised the formatting for StatementError when stringified. Each error detail is broken up over multiple newlines instead of spaced out on a single line. Additionally, the SQL representation now stringifies the SQL statement rather than using repr(), so that newlines are rendered as is. Pull request courtesy Nate Clark.
See also
Changed StatementError formatting (newlines and %s)
sql
[sql] [bug] The Alias class and related subclasses CTE, Lateral and TableSample have been reworked so that it is not possible for a user to construct the objects directly. These constructs require that the standalone construction function or selectable-bound method be used to instantiate new objects.
schema
[schema] [feature] Added new parameters Table.resolve_fks and MetaData.reflect.resolve_fks which when set to False will disable the automatic reflection of related tables encountered in ForeignKey objects, which can both reduce SQL overhead for omitted tables as well as avoid tables that can’t be reflected for database-specific reasons. Two Table objects present in the same MetaData collection can still refer to each other even if the reflection of the two tables occurred separately
Redis 5.0.4
Upgrade urgency HIGH: This release fixes several Redis stability issues.
Dear Redis users, this release includes a number of fixes for bugs that may
result in Redis crashing in special conditions (not normal usage, but specific
artificial conditions), fixes to certain Redis behaviors especially around
Redis streams, and finally a set of new APIs for Redis Modules.
Specifically:
* Hyperloglog different coding errors leading to potential crashes were fixed.
* A replication bug leading to a potential crash in case of plain misuse of handshake commands was fixed.
* XCLAIM command incrementing of number of deliveries was fixed.
* LFU field management in objects was improved.
* A potential overflow in the redis-check-aof was fixed.
* A memory leak in case of API misuse was fixed.
* ZPOP* behavior when count is 0 is fixed.
* A few redis-cli --cluster bugs were fixed, plus a few improvements.
* Many other smaller bugs.
3.9.3
* Added cross-database support for NULLS FIRST/LAST when specifying the
ordering for a query. Previously this was only supported for Postgres. Peewee
will now generate an equivalent CASE statement for Sqlite and MySQL.
* Added [EXCLUDED](http://docs.peewee-orm.com/en/latest/peewee/api.html#EXCLUDED)
helper for referring to the EXCLUDED namespace used with INSERT...ON CONFLICT
queries, when referencing values in the conflicting row data.
* Added helper method to the model Metadata class for setting the table name
at run-time. Setting the Model._meta.table_name directly may have appeared
to work in some situations, but could lead to subtle bugs. The new API is
Model._meta.set_table_name().
* Enhanced helpers for working with Peewee interactively, [see doc](http://docs.peewee-orm.com/en/latest/peewee/interactive.html).
* Fix cache invalidation bug in DataSet that was originally reported on the
sqlite-web project.
* New example script implementing a [hexastore]
3.27.2-r1
Added constants:
* SQLITE_CONFIG_MEMDB_MAXSIZE, SQLITE_FCNTL_SIZE_LIMIT
Added support for the geopoly extension
Removed hash optimisation that isn’t useful any more
ldb is a LDAP-like embedded database. It is not at all LDAP standards
compliant, so if you want a standards compliant database then please see the
excellent OpenLDAP project.
What ldb does is provide a fast database with an LDAP-like API designed to be
used within an application. In some ways it can be seen as a intermediate
solution between key-value pair databases and a real LDAP database.
ldb is the database engine used in Samba4.
Features:
* The main features that separate ldb from other solutions are:
* Safe multi-reader, multi-writer, using byte range locking
* LDAP-like API
* fast operation
* choice of local tdb or remote LDAP backends
* integration with talloc
* schema-less operation, for trivial setup
* modules for extensions (such as schema support)
* easy setup of indexes and attribute properties
* LDIF for import/export
* ldbedit tool for database (via LDIF) editing (reminiscent of 'vipw')
The Prometheus monitoring system and time series database.
Prometheus, a Cloud Native Computing Foundation project, is a systems and
service monitoring system. It collects metrics from configured targets at
given intervals, evaluates rule expressions, displays the results, and
can trigger alerts if some condition is observed to be true.
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.
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.
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.
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.
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.
=== 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)
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.
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
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
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
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
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.
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
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.
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
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.
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.
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.
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.
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.
=== 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)
[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.
As discussed on tech-pkg, icons and application resources should be
installed uniformly on all Unix platforms. Previously, CMakeLists.txt
excluded these on Darwin but not on other Unix platforms.
Consequently, the PLIST was broken on Darwin. This was fixed with
upstream commit 21d8800ce613775c995212f61d7e95c2189f6da6, which has
been backported here to v3.8.0.
While here, add two buildlink3.mk files, also discussed on tech-pkg,
that should have been present all along but for some reason were not.
In the released distfile on PyPI for ldap3-2.5.2
ldap3/protocol/sasl/digestMd5.py was accidentally empty.
Populate it based on the v2.5.2.tar.gz distfile on GitHub.
PKGREVISION++
3.1.0:
* Connection URLs must have one of the following schemes:
redis://, rediss://, unix://.
* Fixed an issue with retry_on_timeout logic that caused some TimeoutErrors
to be retried.
* Added support for SNI for SSL.
* Fixed ConnectionPool repr for pools with no connections.
* Fixed GEOHASH to return a None value when specifying a place that
doesn't exist on the server.
* Fixed XREADGROUP to return an empty dictionary for messages that
have been deleted but still exist in the unacknowledged queue.
* Added an owned method to Lock objects. owned returns a boolean
indicating whether the current lock instance still owns the lock.
* Allow lock.acquire() to accept an optional token argument. If
provided, the token argument is used as the unique value used to claim
the lock.
* Added a reacquire method to Lock objects. reaquire attempts to renew
the lock such that the timeout is extended to the same value that the
lock was initially acquired with.
* Stream names found within XREAD and XREADGROUP responses now properly
respect the decode_responses flag.
* XPENDING_RANGE now requires the user the specify the min, max and
count arguments. Newer versions of Redis prevent ount from being
infinite so it's left to the user to specify these values explicitly.
* ZADD now returns None when xx=True and incr=True and an element
is specified that doesn't exist in the sorted set. This matches
what the server returns in this case.
* Added client_kill_filter that accepts various filters to identify
and kill clients.
* Fixed a race condition that occurred when unsubscribing and
resubscribing to the same channel or pattern in rapid succession.
* Added a LockNotOwnedError that is raised when trying to extend or
release a lock that is no longer owned. This is a subclass of LockError
so previous code should continue to work as expected.
* Fixed a bug in GEORADIUS that forced decoding of places without
respecting the decode_responses option.
1.0.7
[bug] [autogenerate] Fixed issue in new comment support where autogenerated Python code for comments wasn’t using repr() thus causing issues with quoting
1.2.17
[orm] [feature] Added new event hooks QueryEvents.before_compile_update() and QueryEvents.before_compile_delete() which complement QueryEvents.before_compile() in the case of the Query.update() and Query.delete() methods.
[orm] [bug] Fixed issue where when using single-table inheritance in conjunction with a joined inheritance hierarchy that uses “with polymorphic” loading, the “single table criteria” for that single-table entity could get confused for that of other entities from the same hierarchy used in the same query.The adaption of the “single table criteria” is made more specific to the target entity to avoid it accidentally getting adapted to other tables in the query.
[postgresql] [bug] Revised the query used when reflecting CHECK constraints to make use of the pg_get_constraintdef function, as the consrc column is being deprecated in PG 12. Thanks to John A Stevenson for the tip.
[oracle] [bug] Fixed regression in integer precision logic due to the refactor of the cx_Oracle dialect in 1.2. We now no longer apply the cx_Oracle.NATIVE_INT type to result columns sending integer values (detected as positive precision with scale ==0) which encounters integer overflow issues with values that go beyond the 32 bit boundary. Instead, the output variable is left untyped so that cx_Oracle can choose the best option
Upstream changes:
1.62 2018-12-29
- Switched to a production version
1.61_04 2018-12-22
- Added sqlite_db_config method and new constants for it
- Added sqlite_defensive option to disallow dangerous SQLite features
- Exposed some of the hidden extended result codes
1.61_03 2018-12-19
- Upgraded SQLite to 3.26.0, which reportedly has a security fix
1.61_02 2018-12-01
- Added sqlite_backup_from_dbh/sqlite_backup_to_dbh methods
- Introduced sqlite_prefer_numeric_type database handle attribute
that changes the value of TYPE statement handle attribute
from an array of string to an array of integer, as an experimental
feature. Setting this may break your applications.
- Changed preferred bugtracker
1.61_01 2018-12-01
- Added ability to configure SQLITE_MAX_LENGT with environmental
variable (Roy Storey)
- Added sqlite_limit database handle method to change run-time limits
- Upgraded SQLite to 3.25.3
- Updated constants
Upstream changes:
2018-10-25 Daniël van Eeden, Patrick Galbraith,
DBI/DBD community (4.050)
* Fix SQL syntax for statements that have "...limit = ?" #288
* Make tests pass on MySQL 4.1 #286
* Travis-CI: Install Test::Deep #281
* Fix undefined ssl_verify_set on MySQL 5.0 and before #283
* Fix compilation on MySQL 4.1 #283
* Move Travis to dbdeployer (#284) #284
* Fix compiling on 8.0.0 and 8.0.1 #285
* Fix compatibility with MariaDB 10.3 #291
Version 3.7.2 fixes a few issues discovered since the release of 3.7.1.
- Fixed a bug in retryable writes where a previous command's "txnNumber"
field could be sent leading to incorrect results.
- Fixed a memory leak of a few bytes on some insert, update, or delete
commands when running against MongoDB 3.6+.
- Fixed a bug that caused :meth:pymongo.collection.Collection.ensure_index
to only cache a single index per database.
- Updated the documentation examples to use
:meth:pymongo.collection.Collection.count_documents instead of
:meth:pymongo.collection.Collection.count and
:meth:pymongo.cursor.Cursor.count.
== v1.1.4 [2019-01-08] Michael Granger <ged@FaerieMUD.org>
- Fix PG::BinaryDecoder::Timestamp on 32 bit systems. # 284
- Add new error-codes of PostgreSQL-11.
- Add ruby-2.6 support for Windows fat binary gems and remove ruby-2.0 and 2.1.
3.8.2
Backwards-incompatible changes
The default row-type for INSERT queries executed with a non-default RETURNING clause has changed from tuple to Model instances. This makes INSERT behavior consistent with UPDATE and DELETE queries that specify a RETURNING clause. To revert back to the old behavior, just append a call to .tuples() to your INSERT ... RETURNING query.
Removing support for the table_alias model Meta option. Previously, this attribute could be used to specify a "vanity" alias for a model class in the generated SQL. As a result of some changes to support more robust UPDATE and DELETE queries, supporting this feature will require some re-working. As of the 3.8.0 release, it was broken and resulted in incorrect SQL for UPDATE queries, so now it is removed.
New features
Added playhouse.shortcuts.ReconnectMixin, which can be used to implement automatic reconnect under certain error conditions (notably the MySQL error 2006 - server has gone away).
Bugfixes
Fix SQL generation bug when using an inline window function in the ORDER BY clause of a query.
Fix possible zero-division in user-defined implementation of BM25 ranking algorithm for SQLite full-text search.
1.0.6
feature
[feature] [operations] Added Table and Column level comments for supported backends. New methods Operations.create_table_comment() and Operations.drop_table_comment() are added. A new arguments Operations.alter_column.comment and Operations.alter_column.existing_comment are added to Operations.alter_column(). Autogenerate support is also added to ensure comment add/drops from tables and columns are generated as well as that Operations.create_table(), Operations.add_column() both include the comment field from the source Table or Column object.
0.33.11:
- Added support for creating and dropping a PostgreSQL database when using pg8000 driver
0.33.10:
- Removed optional dependency to Flask-Babel. Now using Babel instead.
1.2.16:
engine
[engine] [bug] Fixed a regression introduced in version 1.2 where a refactor of the SQLAlchemyError base exception class introduced an inappropriate coercion of a plain string message into Unicode under python 2k, which is not handled by the Python interpreter for characters outside of the platform’s encoding (typically ascii). The SQLAlchemyError class now passes a bytestring through under Py2K for __str__() as is the behavior of exception objects in general under Py2K, does a safe coercion to unicode utf-8 with backslash fallback for __unicode__(). For Py3K the message is typically unicode already, but if not is again safe-coerced with utf-8 with backslash fallback for the __str__() method.
sql
[sql] [bug] [mysql] [oracle] Fixed issue where the DDL emitted for DropTableComment, which will be used by an upcoming version of Alembic, was incorrect for the MySQL and Oracle databases.
postgresql
[postgresql] [bug] Fixed issue where a postgresql.ENUM or a custom domain present in a remote schema would not be recognized within column reflection if the name of the enum/domain or the name of the schema required quoting. A new parsing scheme now fully parses out quoted or non-quoted tokens including support for SQL-escaped quotes.
[postgresql] [bug] Fixed issue where multiple postgresql.ENUM objects referred to by the same MetaData object would fail to be created if multiple objects had the same name under different schema names. The internal memoization the PostgreSQL dialect uses to track if it has created a particular postgresql.ENUM in the database during a DDL creation sequence now takes schema name into account.
sqlite
[sqlite] [bug] Reflection of an index based on SQL expressions are now skipped with a warning, in the same way as that of the Postgresql dialect, where we currently do not support reflecting indexes that have SQL expressions within them. Previously, an index with columns of None were produced which would break tools like Alembic.
misc
Fixed issue in “expanding IN” feature where using the same bound parameter name more than once in a query would lead to a KeyError within the process of rewriting the parameters in the query
3.8.1
New features
Sqlite SearchField now supports the match() operator, allowing full-text search to be performed on a single column (as opposed to the whole table).
Changes
Remove minimum passphrase restrictions in SQLCipher integration.
Bugfixes
Support inheritance of ManyToManyField instances.
Ensure operator overloads are invoked when generating filter expressions.
Fix incorrect scoring in Sqlite BM25, BM25f and Lucene ranking algorithms.
Support string field-names in data dictionary when performing an ON CONFLICT ... UPDATE query, which allows field-specific conversions to be applied.
=== 5.16.0 (2019-01-02)
* Convert integer columns to bigint columns when copying SQLite databases to other databases using bin/sequel -C (jeremyevans) (#1584)
* Use nicer error messages for missing or empty migration directories (Lavode) (#1585)
* Make alter table emulation work correctly in SQLite 3.26.0+ (jeremyevans) (#1582)
* Do not unset new one_to_one associated objects' reciprocal associations before saving associated objects in the nested_attributes plugin (jeremyevans)
* Do not validate new one_to_one associated objects twice when saving in the nested_attributes plugin (jeremyevans)
* Fix :qualify_tables option to class_table_inheritance plugin to work correctly with subclasses of subclasses (benalavi) (#1581)
* Make class_table_inheritance plugin use the schema cache instead of sending a query to get columns for tables (kenaniah) (#1580)
* Remove loading of mysqlplus in the mysql adapter (jeremyevans)
* Make mysql adapter work correctly on ruby 2.6+ (jeremyevans)
* Add Database#rollback_on_exit to rollback transactions instead of committing them when exiting the transaction block (jeremyevans)
* Enable window functions in SQLite 3.26.0+ (jeremyevans)
* Do not override existing methods when creating Sequel::Model attribute getter/setter methods (jeremyevans) (#1578)
* Use parentheses for expressions being subscripted (e.g. (array_agg(column))[1]) (jeremyevans)
Version 2.5:
- Add support for PostgreSQL 11
- Add check-backup command to verify that WAL files required for
consistency of a base backup are present in the archive. Barman now
adds a new state (WAITING_FOR_WALS) after completing a base backup,
and sets it to DONE once it has verified that all WAL files from
start to the end of the backup exist. This command is included in
the regular cron maintenance job. Barman now notifies users
attempting to recover a backup that is in WAITING_FOR_WALS state.
- Allow switch-xlog --archive to work on a standby (just for the
archive part)
- Bug fixes:
- Fix decoding errors reading external commands output
- Fix documentation regarding WAL streaming and backup from
standby
2.5.2:
- when starting tls before binding the connection is automatically open
- fixed changelog date
- support for AD timedeltas
- fixed WhoAmI in mock strategies
- prevent unnecessary exception in extend/standard/ModifyPassword
- added support for external gssapi credentials to be passed to the sasl connection
- added support for gssapi store in sasl connection
- fixed LdifProducer
- fixed NTLM bind
- server state in ServerPool is now a namedtuple "ServerState"
- fixed error when adding member to AD group with unsafe DN
- properly restore lazy status in reusable strategy
- ServerState namedtuple converted to class in core/pooling
- empty schema doesn't raise exception in Abstraction Layer
LMDB 0.9.23:
Fix loose pages in dirty list
Fix mdb_load flag init
Fix mdb_env_close in forked process
Documentation
mdb_cursor_del doesn't invalidate cursor
GET_MULTIPLE etc don't change passed in key
OpenLDAP 2.4.47:
Added slapd-sock DN qualifier for subtrees to be processed
Added slapd-sock ability to send extended operations to external listeners
Fixed liblber to avoid incremental access to user-supplied bv in dupbv
Fixed libldap dn to domain parsing with bad input
Fixed slapd slapcat to correctly honor -g option
Fixed slapd to correctly handle NO_SUCH_OBJECT with dynamic groups
Fixed slapd to check status of rdnNormalize
Fixed slapd cn=config when modifying slapo-syncprov config
Fixed slapd sasl authz-policy "all" behavior
Fixed slapd sasl minor typo
Fixed slapd to correctly hide hidden DBs in the rootDSE
Fixed slapd domainScope control to match Microsoft specification
Fixed slapd-bdb/hdb/mdb to not convert certain IDLs to ranges
Fixed slapo-accesslog deadlock during cleanup
Fixed slapo-memberof cn=config modifications
Fixed slapo-ppolicy with multimaster replication
Fixed slapo-syncprov with NULL modlist
Build Environment
Added slapd reproducible build support
Fixed missing includes with OpenSSL 1.0.2
Contrib
Fixed slapo-pbkdf2 hash generation
Documentation
admin24 fixed minor typo
3.8.0
**New features**
* Postgres BinaryJSONField now supports has_key(), concat() and
remove() methods (though remove may require pg10+).
* Add python_value() method to the SQL-function helper fn, to allow
specifying a custom function for mapping database values to Python values.
**Changes**
* Better support for UPDATE ... FROM queries, and more generally, more robust
support for UPDATE and RETURNING clauses. This means that the
QualifiedNames helper is no longer needed for certain types of queries.
* The SqlCipherDatabase no longer accepts a kdf_iter parameter. To
configure the various SQLCipher encryption settings, specify the setting
values as pragmas when initializing the database.
* Introspection will now, by default, only strip "_id" from introspected column
names if those columns are foreign-keys.
* Allow UUIDField and BinaryUUIDField to accept hexadecimal UUID strings as
well as raw binary UUID bytestrings (in addition to UUID instances, which
are already supported).
* Allow ForeignKeyField to be created without an index.
* Allow multiple calls to cast() to be chained.
* Add logic to ensure foreign-key constraint names that exceed 64 characters
are truncated using the same logic as is currently in place for long indexes.
* ManyToManyField supports foreign-keys to fields other than primary-keys.
* When linked against SQLite 3.26 or newer, support SQLITE_CONSTRAINT to
designate invalid queries against virtual tables.
* SQL-generation changes to aid in supporting using queries within expressions
following the SELECT statement.
**Bugfixes**
* Fixed bug in order_by_extend(), thanks @nhatHero.
* Fixed bug where the DataSet CSV import/export did not support non-ASCII
characters in Python 3.x.
* Fixed bug where model_to_dict would attempt to traverse explicitly disabled
foreign-key backrefs.
* Fixed bug when attempting to migrate SQLite tables that have a field whose
column-name begins with "primary_".
* Fixed bug with inheriting deferred foreign-keys.