This release brings:
* re-licensing to 2-clause BSD
* additional documentation
While there, move the manual pages to the correct directory.
Tested on NetBSD/amd64.
1.71 2021-09-24
- Add dot to load utils in tests for perl 5.26+
1.70 2021-09-24
- Enable queries processed with BuildSelectQuery and BuildSelectCountQuery
to use bind variables
1.69 2021-01-20
- New option to quote tablenames in queries, enabled automatically for MySQL 8
- Updated tests for new MySQL 8 reserved words and tablename quoting
This update fixes over 40 bugs that were reported in the last several months. The issues listed below affect PostgreSQL 14. Some of these issues may also affect other supported versions of PostgreSQL.
Included in this release:
Fix replay of CREATE DATABASE write-ahead log (WAL) records on standby servers when encountering a missing tablespace directory.
Add support for tablespaces that are plain directories instead of symbolic links to other directories.
Fix permission checks in CREATE INDEX to use the user's permissions. This fixes broken dump/restore scenarios that relied on the behavior prior to the fix for CVE-2022-1552.
In the extended query protocol, force an immediate commit after CREATE DATABASE and other commands that can't run in a transaction block.
Fix a race condition around checking transaction visibility that was more likely to happen when using synchronous replication.
Fix incorrect permission-checking code for extended statistics.
Fix extended statistics machinery to handle most common value (MCV)-type statistics on boolean-valued expressions.
Avoid planner core dump with constant = ANY(array) clauses when there are MCV-type extended statistics on the array variable.
Allow cancellation of ANALYZE while it is computing extended statistics.
Fix ALTER TABLE ... ENABLE/DISABLE TRIGGER to handle recursion for triggers on partitioned tables.
Reject ROW() expressions and functions in FROM that have more than 1600 columns.
Fix memory leak in logical replication subscribers.
Fix checks in logical replication of replica identity when the target table is partitioned.
Arrange to clean up after commit-time errors within SPI_commit(), rather than expecting callers to do that. This includes a fix for the same scenario in PL/Python, which had reported crashes on Python 3.11 and memory leaks on older versions of Python 3.
Improve handling in libpq of idle states in pipeline mode.
In the psql \watch command, echo a newline after cancellation with control-C.
Fix pg_upgrade to detect non-upgradable usages of functions accepting anyarray parameters.
Several postgres_fdw fixes, including prevention of batch insertions when there are WITH CHECK OPTION constraints present.
- Fixed an issue when testing Firebird on a host with Firebird installed
but no `isql`, and when using a local Firebird (e.g., the Engine12
provider), which allows only one connection at a time. Thanks to Slaven
Rezić for the the reproducible configuration (#597).
- Tweaked the Postgres engine to support Yugabyte. The only unsupported
features are explicit locks, so users need to manually ensure that only
one instance of Sqitch is updating the cluster at a time.
- Added support for CockroachDB. Almost exactly the same as for Postgres,
so the new App::Sqitch::Engine::cockroach class extends
App::Sqitch::Engine::pg to make a few changes. The SQL files with
the registry DDL varies in a few ways, so they're separate.
- Now require URI::db v0.20 for Cockroach and Yugabyte URI support.
- Dropped support for MySQL 5.0.
- Added explicit sorting for aggregated lists (such as the tags associated
with a commit) to the MySQL, Exasol, Snowflake, and Postgres (8.4 and
higher) engines.
- Fixed slow deploys on MariaDB thanks to fractional timestamp support
added in 5.03.05. Thanks to @rbrigot for the PR (#658)!
- Fixed a bug where destination locking failed on the first deploy to
MySQL. Bug introduced along with destination locking in v1.2.0.
Thanks Tom Bloor the report and to Alberto Simões for the help
replicating the issue (#601).
- Removed the `sqitch engine update-config` action, originally added for
compatibility reasons in 2014, and the prompt to use it was removed as
of 0.9999 in 2019.
- Fixed a warning when searching for the Firebird client on Windows.
pkgsrc changes:
- Enable 'sqlite' by default to pass the self-tests.
The package changed with the addition of its libepoll-shim dependency.
Otherwise, we can get:
ERROR: libepoll-shim>=0.0.20210418 is not installed; can't buildlink files.
1.4.4 (2022-06-14)
Fixes
* Compilation no longer fails against SQLite3 versions < 3.29.0. This issue
was introduced in v1.4.3. [#324] (Thank you, @r6e!)
1.4.3 (2022-05-25)
Enhancements
* Disable non-standard support for double-quoted string literals via the
:strict option. [#317] (Thank you, @casperisfine!)
* Column type names are now explicitly downcased on platforms where they may
have been in shoutcaps. [#315] (Thank you, @petergoldstein!)
* Support File or Pathname arguments to Database.new. [#283] (Thank you,
@yb66!)
* Support building on MSVC. [#285] (Thank you, @jmarrec!)
5.59.0 (2022-08-01)
* Set :allow_eager association option to false for instance specific
associations without eager loaders (jeremyevans)
* Add require_valid_schema plugin for checking that model classes have
schema parsed as expected (jeremyevans)
* Model classes created from aliased expressions and literal strings no
longer use the simple table optimization (jeremyevans)
* Model code that does not swallow connection errors will now also not
swallow disconnect errors (jeremyevans) (#1892)
* Add is_json and is_not_json methods to the pg_json_ops extension, for the
PostgreSQL 15+ IS [NOT] JSON operator (jeremyevans)
* Support :security_invoker view option on PostgreSQL 15+, for views where
access uses permissions of user instead of owner (jeremyevans)
* Support :nulls_distinct index option on PostgreSQL 15+, for NULLS [NOT]
DISTINCT (jeremyevans)
* Support sequel-postgres-pr driver in the postgres adapter (jeremyevans)
pkgsrc change: Update HOMEPAGE to GitHUb.
Here are quote from changes of two minor release, for full change, please
refer: <https://github.com/ged/ruby-pg/blob/master/History.rdoc>.
1.4.0 (2022-06-20)
Added:
* Add PG::Connection#hostaddr, present since PostgreSQL-12. #453
* Add PG::Connection.conninfo_parse to wrap PQconninfoParse. #453
Bugfixes:
* Try IPv6 and IPv4 addresses, if DNS resolves to both. #452
* Re-add block-call semantics to PG::Connection.new accidently removed in pg-1.3.0. #454
* Handle client error after all data consumed in #copy_data for output. #455
* Avoid spurious keyword argument warning on Ruby 2.7. #456
* Change connection setup to respect connect_timeout parameter. #459
* Fix indefinite hang in case of connection error on Windows #458
* Set connection attribute of PG::Error in various places where it was missing. #461
* Fix transaction leak on early break/return. #463
* Update Windows fat binary gem to OpenSSL-1.1.1o and PostgreSQL-14.4.
Enhancements:
* Don't flush at each put_copy_data call, but flush at get_result. #462
1.3.0 (2022-01-20)
Install Enhancements:
* Print some install help if libpq wasn't found. #396 This should help to
pick the necessary package without googling.
* Update Windows fat binary gem to OpenSSL-1.1.1m and PostgreSQL-14.1.
* Add binary Windows gems for Ruby 3.0 and 3.1.
* Make the library path of libpq available in ruby as
PG::POSTGRESQL_LIB_PATH and add it to the search paths on Windows similar
to rpath on Unix systems. #373
* Fall back to pkg-config if pg_config is not found. #380
* Add option to extconf.rb to disable nogvl-wrapping of libpq functions. All
methods (except PG::Connection.ping) are nonblocking now, so that GVL
unlock is in theory no longer necessary. However it can have some
advantage in concurrency, so that GVL unlock is still enabled by
default. Use:
gem inst pg – –disable-gvl-unlock
API Enhancements:
* Add full compatibility to Fiber.scheduler introduced in Ruby-3.0. #397
* Add support for pipeline mode of PostgreSQL-14. #401
* Allow specification of multiple hosts in PostgreSQL URI. #387
* Add new method conn.backend_key - used to implement our own cancel method.
Type cast enhancements:
* Add PG::BasicTypeMapForQueries::BinaryData for encoding of bytea columns. #348
* Reduce time to build coder maps and permit to reuse them for several type
maps per PG::BasicTypeRegistry::CoderMapsBundle.new(conn) . #376
* Make BasicTypeRegistry a class and use a global default instance of
it. Now a local type registry can be instanciated and given to the type
map, to avoid changing shared global states.
* Allow PG::BasicTypeMapForQueries to take a Proc as callback for undefined types.
Other Enhancements:
* Convert all PG classes implemented in C to TypedData objects. #349
* Support ObjectSpace.memsize_of(obj) on all classes implemented in C. #393
* Make all PG objects implemented in C memory moveable and therefore
GC.compact friendly. #349
* Update errorcodes and error classes to PostgreSQL-14.0.
* Add PG::CONNECTION_* constants for conn.status of newer PostgreSQL versions.
* Add better support for logical replication. #339
* Change conn.socket_io to read+write mode and to a BasicSocket object
instead of IO.
* Use rb_io_wait() and the conn.socket_io object if available for better
compatibility to Fiber.scheduler . Fall back to rb_wait_for_single_fd() on
ruby < 3.0.
* On Windows use a specialized wait function as a workaround for very poor
performance of rb_io_wait(). #416
Bugfixes:
* Release GVL while calling PQping which is a blocking method, but it didn't
release GVL so far.
* Fix Connection#transaction to no longer block on interrupts, for instance
when pressing Ctrl-C and cancel a running query. #390
* Avoid casting of OIDs to fix compat with Redshift database. #369
* Call conn.block before each conn.get_result call to avoid possible
blocking in case of a slow network and multiple query results.
* Sporadic Errno::ENOTSOCK when using conn.socket_io on Windows #398
Deprecated:
* Add deprecation warning to PG::BasicTypeRegistry.register_type and siblings.
Removed:
* Remove support of ruby-2.2, 2.3 and 2.4. Minimum is ruby-2.5 now.
* Remove support for PostgreSQL-9.2. Minimum is PostgreSQL-9.3 now.
* Remove constant PG::REVISION, which was broken since pg-1.1.4.
Repository:
* Replace Hoe by Bundler for gem packaging
* Add Github Actions CI and testing of source and binary gems.
1.23
Sync MANIFEST before closing in db_impl when creating a new DB. Add logging with debugging information when failing to load a version set.
Optimize leveldb block seeks to utilize the current iterator location. This is beneficial when iterators are reused and seeks are not random but increasing. It is additionally beneficial with larger block sizes and keys with common prefixes.
Documentation fixes
(cmumford/printf-fix) Fixed fprintf of 64-bit value.
(cmumford/benchmark) Added google/benchmark submodule.
Internal test cleanup
Internal cleanup migrating StatusOr.
avoid unnecessary memory copy
Fix accidental double std:: qualifiers.
Add some std:: qualifiers to types and functions.
Switch from C headers to C++ headers.
change const to constexpr
remove unnessary status judge
Remove leveldb::port::kLittleEndian.
Remove Windows workarounds in some tests.
Add Env::Remove{File,Dir} which obsolete Env::Delete{File,Dir}.
Defend against inclusion of windows.h in tests that invoke Env::DeleteFile.
Add WITHOUT ROWID to SQLite benchmark.
Switch testing harness to googletest.
Move CI to Visual Studio 2019.
Allow different C/C++ standards when this is used as a subproject.
Align CMake configuration with related projects.
Remove redundant PROJECT_SOURCE_DIR usage from CMake config.
Fix installed target definition.
Added return in Version::Get::State::Match to quiet warning.
Using CMake's check_cxx_compiler_flag to check support for -Wthread-safety.
Fix tsan problem in env_test.
Simplify unlocking in DeleteObsoleteFiles.
Add "leveldb" subdirectory to public include paths.
Align EnvPosix and EnvWindows.
Disable exceptions and RTTI in CMake configuration.
cache Saver in State object
fix bug(uninitialized options pointer in State)
remove TODO in Version::ForEachOverlapping
use ForEachOverlapping to impl Get
unsigned char -> uint8_t
Add explicit typecasts to avoid compiler warning.
Guard DBImpl::versions_ by mutex_.
Converted two for-loops to while-loops.
Switch to using C++ 11 override specifier.
Added unit test for InternalKey::DecodeFrom with empty string.
Using std::ostringstream in key DebugString.
Fix EnvPosix tests on Travis CI.
Clean up util/coding.{h,cc}.
Initialize Stats::start_ before first use in Stats::Start().
Add argument definition for void c functions.
Consolidate benchmark code to benchmarks/.
Convert missed virtual -> override in db_test.cc.
don't check current key in DBIter::Next()
Add O_CLOEXEC to open calls.
broken db: fix assertion in leveldb::InternalKey::Encode, mark base as corrupt
set const property
reduce lock's range in DeleteObsoleteFiles
block_builder header file dependency fixed
1.70 2021-08-01
- Switched to a production version
1.69_02 2021-07-30
- Fix doc to use the correct attribute with sqlite_ (GH#86, eekboek++)
- Modify the fix to silence the sqlite_unicode warning not to check
the attribute twice
- Fix an encoding issue of naive (GH#83, HaraldJoerg++)
1.69_01 2021-07-30
- Typo (GH#85, grr++)
- Silenced deprecation warning of sqlite_unicode not to break
tests of existing applications
1.68 2021-07-22
- Switched to a production version
1.67_07 2021-06-19
- Upgraded SQLite to 3.36.0
1.67_06 2021-06-14
- Experiment with another quadmath patch to see if it works
with an older version of FreeBSD
1.67_05 2021-06-13
- Made DBD_SQLITE_STRING_MODE constants exportable
1.67_04 2021-05-31
- Upgraded SQLite to 3.35.5
- Stop setting THREADSAFE=0 if perl has pthread (ie. 5.20+)
(Bjoern Hoehrmann++, GH#69, #72)
- Fixed a memory leak in ::VirtualTable
- Introduced "string_mode" handle attribute (Felipe Gasper++)
to fix long-standing issues of sqlite_unicode (GH#78, #68)
- Added a dependency from dbdimp.o to the *.inc files included
into dbdimp.c (Laurent Dami++, GH#74)
- Fixed an offset issue of VirtualTable (Laurent Dami++, GH#75)
1.67_03 2021-03-31
- Upgraded SQLite to 3.35.3
- Enabled math functions introduced in SQLite 3.35
- Fix quadmath issues (Tux++, leont++)
1.67_02 2020-12-06
- Upgraded SQLite to 3.34.0
- Added a few new constants
- Added sqlite_txn_state method to see internal state
of the backend
1.67_01 2020-11-24
- Switched to XSLoader (GH#63; toddr++)
- Use quadmath_snprintf if USE_QUADMATH is defined
- Use av_fetch instead of av_shift (norimy++)
changes in version 3.39.2 (2022-07-21):
Fix a performance regression in the query planner associated with rearranging the order of FROM clause terms in the presences of a LEFT JOIN.
Apply fixes for CVE-2022-35737, Chromium bugs 1343348 and 1345947, forum post 3607259d3c, and other minor problems discovered by internal testing.
5.58.0 (2022-07-01)
* Support :disable_split_materialized Database option on MySQL to work
around optimizer bug in MariaDB 10.5+ affecting association tests
(jeremyevans)
* Add Dataset#merge* methods to support MERGE statement on PostgreSQL 15+,
MSSQL, Oracle, DB2, H2, HSQLDB, and Derby (jeremyevans)
If we are using the "nls" PKG_OPTION together with pkgsrc gettext, then
we must ensure CPPFLAGS contains -I${PREFIX}/include/gettext.
The installed postgresql/server/c.h expects to be able to include
<libintl.h> using the CPPFLAGS that get installed in Makefile.global.
Without this it is not possible to develop PGXS extensions
outside of pkgsrc.
0.5.x is a major release of the Promscale Database Extension.
The Promscale extension is mandatory for the connector deployment starting
with this release, as all the SQL codebase has been migrated to the
Promscale extension.
This has been done to improve performance and the query experience.
As such this version should only be used with promscale 0.11 or higher.
This requires postgresql-promscale_extension greater than 0.5.0.
Please read the upstream release notes for migration instructions.
0.12.0
Update the PromQL module with Prometheus upstream.
Support hot reload for recording and alerting rules.
0.11.0
General Availability of OpenTelemetry trace data support.
Native support for PromQL-based alerting and recording rules.
Promscale extension is mandatory starting with this release.
Native support for the Jaeger query API in Promscale.
Out-of-the-box alerts, Dashboards, and Runbooks
Optimize continuous aggregate query performance and storage
The following query clauses and functions can now be used in a continuous
aggregate: FILTER, DISTINCT, ORDER BY as well as Ordered-Set Aggregate
and Hypothetical-Set Aggregate
Optimize now() query planning time
Improve COPY insert performance
Improve performance of UPDATE/DELETE on PG14 by excluding chunks
3.15.1
Fix issue introduced in Sqlite 3.39.0 regarding the propagation of column subtypes in subqueries. Affected sqlite changelog extension when used with JSON columns.
Fix bug where cockroachdb server version was not set when beginning a transaction on an unopened database.
Changes in version 3.39.1 (2022-07-13):
Fix an incorrect result from a query that uses a view that contains a compound SELECT in which only one arm contains a RIGHT JOIN and where the view is not the first FROM clause term of the query that contains the view. forum post 174afeae5734d42d.
Fix some harmless compiler warnings.
Fix a long-standing problem with ALTER TABLE RENAME that can only arise if the sqlite3_limit(SQLITE_LIMIT_SQL_LENGTH) is set to a very small value.
Fix a long-standing problem in FTS3 that can only arise when compiled with the SQLITE_ENABLE_FTS3_PARENTHESIS compile-time option.
Fix the build so that is works when the SQLITE_DEBUG and SQLITE_OMIT_WINDOWFUNC compile-time options are both provided at the same time.
Fix the initial-prefix optimization for the REGEXP extension so that it works correctly even if the prefix contains characters that require a 3-byte UTF8 encoding.
Enhance the sqlite_stmt virtual table so that it buffers all of its output.
Rails 7.0.3.1 (2022-07-12) updates databases/ruby-activerecord70 only.
databases/ruby-activerecord70
* Change ActiveRecord::Coders::YAMLColumn default to safe_load
This adds two new configuration options The configuration options are as
follows:
o config.active_storage.use_yaml_unsafe_load
When set to true, this configuration option tells Rails to use the old
"unsafe" YAML loading strategy, maintaining the existing behavior but
leaving the possible escalation vulnerability in place. Setting this
option to true is *not* recommended, but can aid in upgrading.
o config.active_record.yaml_column_permitted_classes
The "safe YAML" loading method does not allow all classes to be
deserialized by default. This option allows you to specify classes deemed
"safe" in your application. For example, if your application uses Symbol
and Time in serialized data, you can add Symbol and Time to the allowed
list as follows:
config.active_record.yaml_column_permitted_classes = [Symbol, Date, Time]
[CVE-2022-32224]
Rails 6.1.6.1 (2022-07-12) updates databases/ruby-activerecord61 only.
databases/ruby-activerecord61
* Change ActiveRecord::Coders::YAMLColumn default to safe_load
This adds two new configuration options The configuration options are as
follows:
o config.active_storage.use_yaml_unsafe_load
When set to true, this configuration option tells Rails to use the old
"unsafe" YAML loading strategy, maintaining the existing behavior but
leaving the possible escalation vulnerability in place. Setting this
option to true is *not* recommended, but can aid in upgrading.
o config.active_record.yaml_column_permitted_classes
The "safe YAML" loading method does not allow all classes to be
deserialized by default. This option allows you to specify classes deemed
"safe" in your application. For example, if your application uses Symbol
and Time in serialized data, you can add Symbol and Time to the allowed
list as follows:
config.active_record.yaml_column_permitted_classes = [Symbol, Date, Time]
[CVE-2022-32224]
Rails 6.0.5.1 (2022-07-12) updates databases/ruby-activerecord60 only.
databases/ruby-activerecord60
* Change ActiveRecord::Coders::YAMLColumn default to safe_load
This adds two new configuration options The configuration options are as
follows:
o config.active_storage.use_yaml_unsafe_load
When set to true, this configuration option tells Rails to use the old
"unsafe" YAML loading strategy, maintaining the existing behavior but
leaving the possible escalation vulnerability in place. Setting this
option to true is *not* recommended, but can aid in upgrading.
o config.active_record.yaml_column_permitted_classes
The "safe YAML" loading method does not allow all classes to be
deserialized by default. This option allows you to specify classes deemed
"safe" in your application. For example, if your application uses Symbol
and Time in serialized data, you can add Symbol and Time to the allowed
list as follows:
config.active_record.yaml_column_permitted_classes = [Symbol, Date, Time]
[CVE-2022-32224]
Rails 5.2.8.1 (2022-07-12) updates databases/ruby-activerecord52 only.
databases/ruby-activerecord52
* Change ActiveRecord::Coders::YAMLColumn default to safe_load
This adds two new configuration options The configuration options are as
follows:
o config.active_storage.use_yaml_unsafe_load
When set to true, this configuration option tells Rails to use the old
"unsafe" YAML loading strategy, maintaining the existing behavior but
leaving the possible escalation vulnerability in place. Setting this
option to true is *not* recommended, but can aid in upgrading.
o config.active_record.yaml_column_permitted_classes
The "safe YAML" loading method does not allow all classes to be
deserialized by default. This option allows you to specify classes deemed
"safe" in your application. For example, if your application uses Symbol
and Time in serialized data, you can add Symbol and Time to the allowed
list as follows:
config.active_record.yaml_column_permitted_classes = [Symbol, Date, Time]
[CVE-2022-32224]