3.15.2
Fix bug where field-specific conversions were being applied to the pattern used for LIKE / ILIKE operations.
Fix possible infinite loop when accidentally invoking the __iter__ method on certain Column subclasses.
Add new helper for specifying which Model a particular selected column-like should be bound to, in queries with joins that select from multiple sources.
3.39.3.0
Test no longer fails if APSW was compiled without SQLITE_ENABLE_COLUMN_METADATA but sqlite3 was separately compiled with it. APSW should be compiled with the same flags as sqlite3 to match functionality and APIs. (APSW issue 363)
–use-system-sqlite-config setup.py build_ext option added to allow Matching APSW and SQLite options. (APSW issue 364)
* Symbol is allowed by default for YAML columns
Étienne Barrié
* Fix ActiveRecord::Store to serialize as a regular Hash
Previously it would serialize as an
ActiveSupport::HashWithIndifferentAccess which is wasteful and cause
problem with YAML safe_load.
Jean Boussier
* Add timestamptz as a time zone aware type for PostgreSQL
This is required for correctly parsing timestamp with time zone values in
your database.
If you don't want this, you can opt out by adding this initializer:
ActiveRecord::Base.time_zone_aware_types -= [:timestamptz]
Alex Ghiculescu
* Fix supporting timezone awareness for tsrange and tstzrange array columns.
# In database migrations
add_column :shops, :open_hours, :tsrange, array: true
# In app config
ActiveRecord::Base.time_zone_aware_types += [:tsrange]
# In the code times are properly converted to app time zone
Shop.create!(open_hours: [Time.current..8.hour.from_now])
Wojciech Wnętrzak
* Resolve issue where a relation cache_version could be left stale.
Previously, when reset was called on a relation object it did not reset
the cache_versions ivar. This led to a confusing situation where despite
having the correct data the relation still reported a stale cache_version.
Usage:
developers = Developer.all
developers.cache_version
Developer.update_all(updated_at: Time.now.utc + 1.second)
developers.cache_version # Stale cache_version
developers.reset
developers.cache_version # Returns the current correct cache_version
Fixes .
Austen Madden
* Fix load_async when called on an association proxy.
Calling load_async directly an association would schedule a query but
never use it.
comments = post.comments.load_async # schedule a query
comments.to_a # perform an entirely new sync query
Now it does use the async query, however note that it doesn't cause the
association to be loaded.
Jean Boussier
* Fix eager loading for models without primary keys.
Anmol Chopra, Matt Lawrence, and Jonathan Hefner
* rails db:schema:{dump,load} now checks ENV["SCHEMA_FORMAT"] before config
Since rails db:structure:{dump,load} was deprecated there wasn't a simple
way to dump a schema to both SQL and Ruby formats. You can now do this
with an environment variable. For example:
SCHEMA_FORMAT=sql rake db:schema:dump
Alex Ghiculescu
* Fix Hstore deserialize regression.
edsharp
Ruby on Rails 6.1.7 release on 9th September 2022.
Active Record and Active Storage are updated:
Active Record
* Symbol is allowed by default for YAML columns
Étienne Barrié
* Fix ActiveRecord::Store to serialize as a regular Hash
Previously it would serialize as an
ActiveSupport::HashWithIndifferentAccess which is wasteful and cause
problem with YAML safe_load.
Jean Boussier
* Fix PG.connect keyword arguments deprecation warning on ruby 2.7
Fixes .
Nikita Vasilevsky
Active Storage
* Respect Active Record's primary_key_type in Active Storage
migrations. Backported from 7.0.
fatkodima
Ruby on Rails 6.0.6 release on 9th September 2022 and
Active Record is only updated.
databases/ruby-activerecord60
* Symbol is allowed by default for YAML columns
Étienne Barrié
Here is quote from release note.
1.5.0 (2022-09-08)
Added
* SQLite3::SQLITE_LOADED_VERSION contains the version string of the sqlite3
library that is dynamically loaded (compare to SQLite3::SQLITE_VERSION
which is the version at compile-time).
Fixed
* SQLite3::Database#load_extensions now raises a TypeError unless a String
is passed as the file path. Previously it was possible to pass a
non-string and cause a segfault. [#339]
Changes in version 3.39.3 (2022-09-05):
Use a statement journal on DML statement affecting two or more database rows if the statement makes use of a SQL functions that might abort. See forum thread 9b9e4716c0d7bbd1.
Use a mutex to protect the PRAGMA temp_store_directory and PRAGMA data_store_directory statements, even though they are deprecated and documented as not being threadsafe. See forum post 719a11e1314d1c70.
Other bug and warning fixes. See the timeline for details.
Released 3.4.2 2022-07-06
This is a minor release to provide out-of-the-box compatibility with the merge
of libldap and libldap_r that happened with OpenLDAP's 2.5 release.
The following undocumented functions are deprecated and scheduled for removal:
- ``ldap.cidict.strlist_intersection``
- ``ldap.cidict.strlist_minus``
- ``ldap.cidict.strlist_union``
The following deprecated option has been removed:
- ``OPT_X_TLS``
Doc/
* SASL option usage has been clarified
Lib/
* ppolicy control definition has been updated to match Behera draft 11
Modules/
* By default, compile against libldap, checking whether it provides a
threadsafe implementation at runtime
* When decoding controls, the module can now distinguish between no value
(now exposed as ``None``) and an empty value (exposed as ``b''``)
* Several new OpenLDAP options are now supported:
* ``OPT_SOCKET_BIND_ADDRESSES``
* ``OPT_TCP_USER_TIMEOUT``
* ``OPT_X_SASL_MAXBUFSIZE``
* ``OPT_X_SASL_SECPROPS``
* ``OPT_X_TLS_ECNAME``
* ``OPT_X_TLS_PEERCERT``
* ``OPT_X_TLS_PROTOCOL``-related options and constants
Fixes:
* Encoding/decoding of boolean controls has been corrected
* ldap.schema.models.Entry is now usable
* ``method`` keyword to ReconnectLDAPObject.bind_s is now usable
3.39.2.1
PyPI now includes Python 3.11 builds.
Instead of using scripts, you can now run several tools directly:
tests: python3 -m apsw.tests [options]
tracer: python3 -m apsw.trace [options]
speed tester: python3 -m apsw.speedtest [options]
shell: python3 -m apsw [options]
The shell class has moved from apsw.Shell to apsw.shell.Shell (APSW issue 356). You can still reference it via the old name (ie existing code will not break, except on Python 3.6).
Shell: On Windows the native console support for colour is now used (previously a third party module was supported).
You can use –definevalues in setup.py build_ext to provide compiler defines used for configuring SQLite. (APSW issue 357)
If SQLITE_ENABLE_COLUMN_METADATA is enabled then Cursor.description_full is available providing all the column metadata available. (APSW issue 354)
Connection.cursor_factory attribute is now present and is used when Connection.cursor() is called. Added Connection.execute() and Connection.executemany() which automatically obtain the underlying cursor. See customizing connections and cursors in the Tips. (APSW issue 361)
3.39.2.0
Version numbering scheme change: Instead of a -r1 style suffix, there is .0 style suffix (APSW issue 340)
Updated building for PyPI to include more compiled platforms, including aarch64 (Linux) and universal (MacOS). Windows binaries are no longer separately provided since PyPI has them.
When the amalgamation is included into APSW, SQLITE_MAX_ATTACHED is set to 125 if not defined, up from the default of 10.
Updated typing information stubs with more detail and include docstrings. This is still ongoing, but core functionality is well covered. (APSW issue 338) (APSW issue 381)
Corrected the tips log handler of extended result code (APSW issue 342)
Added Connection.db_names() (APSW issue 343)
Added
prom_api.get_default_chunk_interval()
prom_api.get_metric_chunk_interval(TEXT)
_ps_trace.text_matches()
_ps_trace.tag_v_text_eq_matching_tags()
Fixed
Don't fail metric deletion if some tables or views are missing
Incorrect type coercion when using tag_map with = operator
During upgrade from 0.3.x only alter relations which actually exist
Changed
ps_trace.delete_all_traces() can only be executed when no Promscale
connectors are running
This release includes these noteworthy features:
time_bucket now supports bucketing by month, year and timezone
Improve performance of bulk SELECT and COPY for distributed hypertables
1 step CAgg policy management
Migrate Continuous Aggregates to the new format
packaging changes:
- require pgsql >= 11, per upstream
- enable address standardizer module
PostGIS 3.3.0
2022/08/26
This version requires PostgreSQL 11 or higher, GEOS 3.6 or higher, and Proj 5.2+.
Additional features are enabled if you are running GEOS 3.9+
ST_MakeValid enhancements with 3.10+, ST_ConcaveHull and several other enhancements with GEOS 3.11+.
Requires SFCGAL 1.4.1+ for ST_AlphaShape and ST_OptimalAlphaShape.
The new --enable-lto flag improves math computations. This new feature is disabled by default
because on some platforms, causes compilation errors (BSD and MingW64 issues have been raised)
Use below to enable it.
./configure --enable-lto flag
* New features *
- #5116, Topology export/import scripts (Sandro Santilli)
- ST_Letters creates geometries that look like letters (Paul Ramsey)
- #5037, postgis_sfcgal: ST_3DConvexHull (Loïc Bartoletti)
- postgis_sfcgal: sfcgal_full_version - reports BOOST and CGAL version
(Loïc Bartoletti)
- GH659, MARC21/XML, ST_GeomFromMARC21, ST_AsMARC21 (Jim Jones)
- #5132, GH683, sfcgal: ST_3DUnion aggregate function (Sergei Shoulbakov)
- #5143, SFCGAL ST_AlphaShape and ST_OptimalAlphaShape
Requires SFCGAL 1.4.1+ (Loïc Bartoletti)
- #5162, ST_TriangulatePolygon with GEOS 3.11+ (Paul Ramsey, Martin Davis)
- #5162, ST_SimplifyPolygonHull with GEOS 3.11+ (Paul Ramsey, Martin Davis)
- #5183, topology.RemoveUnusedPrimitives (Sandro Santilli)
* Breaking changes *
- Drop support for PostgreSQL 9.6 and 10 (Regina Obe)
- Change output for WKT MULTIPOINT. All points now
wrapped in parens. (Even Roualt)
- GH674, geometry validation and fixing is disabled
for ST_DumpAsPolygons and ST_Polygon so it works faster
but might produce invalid polygons. (Aliaksandr Kalenik)
* Enhancements *
- #2861, Add index on topology.node(containing_face) speeding up
splitting and merging of faces (Sandro Santilli)
- #2083, Speed up ST_RemEdge topology functions adding index on
relation(element_id) and edge_data(abs_next*) (Sandro Santilli)
- #5118, Allow dropping topologies with missing topogeometry sequences
(Sandro Santilli)
- #5111, faster topology face MBR computation (Sandro Santilli)
- postgis_extensions_upgrade() support for upgrades from any PostGIS
version, including yet to be released ones (Sandro Santilli)
- #5040, add postgis_sfcgal_full_version (Loïc Bartoletti)
- GH655, GiST: balance the tree splits better in recursive calls (Darafei Praliaskouski)
- GH657, GiST: do not call no-op decompress function (Aliaksandr Kalenik)
- #4939, #5161, ST_LineMerge now has option to keep the directions of input linestrings,
useful when processing road graphs. Requires GEOS 3.11. (Sergei Shoulbakov)
- ST_ConcaveHull GEOS 3.11+ native implementation (Paul Ramsey, Martin Davis)
- ST_ConcaveHull GEOS 3.11+ polygon-respecting native implementation (Paul Ramsey, Martin Davis)
- #4574, GH678, #5121 Enable Link-Time Optimizations using --enable-lto (Sergei Shoulbakov)
- GH676, faster ST_Clip (Aliaksandr Kalenik)
- #5135, Fast GiST index build is enabled by default for PostgreSQL 15+ (Sergei Shoulbakov)
- #4939, #5161, ST_LineMerge now has option to keep the directions of input linestrings,
useful when processing road graphs. Requires GEOS 3.11. (Sergei Shoulbakov)
- #5158, pgtopo_import / pgtopo_export manpages (Sandro Santilli)
- #5170, add a optional max_rows_per_copy to -Y option to raster2pgsql to
control number of rows per copy statement.
Default to 50 when not specified (Regina Obe)
- GH698, support parallel aggregate for ST_Union (Sergei Shoulbakov)
- #5024, Update spatial_ref_sys as part of ALTER EXTENSION update postgis (Paul Ramsey)
* Bug Fixe *
5.60.1 (2022-09-02)
* Revert conversion of respond_to? to defined?, as it breaks with unused
refinements on Ruby 2 (jeremyevans) (#1919)
5.60.0 (2022-09-01)
* Support arbitrary expressions for date_arithmetic interval values on
PostgreSQL 9.4+ (jeremyevans)
* Support native IS DISTINCT FROM on SQLite 3.39+ instead of emulating
support in the is_distinct_from extension (jeremyevans)
* Support HAVING without GROUP BY on SQLite 3.39+ (jeremyevans)
* Convert most respond_to? calls to equivalent defined? for better
performance (jeremyevans)
pkgsrc change:
* Switch to use gem, 3.0 release.
* Change HOMEPAGE to github page.
[3.0.1] - 2022-06-18
* LICENSE: correct author
* FIX: correct LOAD DATA LOCAL INFILE result information.
* FIX: reset SERVER_MORE_RESULTS_EXISTS when error packet is received.
* FIX: close the socket when the connection is disconnected.
* FIX: allow multiple results by default.
[3.0.0] - 2021-11-16
* Mysql.new no longer connect. use Mysql.connect or Mysql#connect.
* Mysql.init is removed. use Mysql.new instead.
* Mysql.new, Mysql.conncet and Mysql#connect takes URI object or URI string
or Hash object.
example:
Mysql.connect('mysql://user:password@hostname:port/dbname?charset=ascii')
Mysql.connect('mysql://user:password@%2Ftmp%2Fmysql.sock/dbname?charset=ascii') # for UNIX socket
Mysql.connect('hostname', 'user', 'password', 'dbname')
Mysql.connect(host: 'hostname', username: 'user', password: 'password', database: 'dbname')
* Mysql.options is removed. use Mysql#param = value instead. For example:
m = Mysql.init m.options(Mysql::OPT_LOCAL_INFILE, true)
m.connect(host, user, passwd)
change to
m = Mysql.new m.local_infile = true
m.connect(host, user, passwd)
or
m = Mysql.connect(host, user, passwd, local_infile: true)
* Mysql::Time is removed. Instead, Time object is returned for the DATE,
DATETIME, TIMESTAMP data, and Integer object is returned for the TIME
data. If DATE, DATETIME, TIMESTAMP are invalid values for Time, nil is
returned.
* meaningless methods are removed:
bind_result
client_info
client_version
get_proto_info
get_server_info
get_server_version
proto_info
query_with_result
* alias method are removed:
get_host_info: use host_info
real_connect: use connect
real_query: use query
* methods corresponding to deprecated APIs in MySQL are removed:
list_dbs: use SHOW DATABASES
list_fields: use SHOW COLUMNS
list_processes: use SHOW PROCESSLIST
list_tables: use SHOW TABLES
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.