Sequel 5.59.0 Released #1902
jeremyevans
started this conversation in
General
Replies: 1 comment 2 replies
-
@jeremyevans What are the pros/cons of using |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Sequel 5.59.0 has been released!
New Features
A require_valid_schema plugin has been added, for checking that
model classes have schema parsed as expected. By default, model
classes are not required to have valid schema, because it is
allowed to have model classes based on arbitrary datasets (such
as those using joins or set-returning functions), and it is not
possible to determine the schema for arbitary datasets.
Sequel swallows non-connection errors when trying to parse schema
for a model's dataset, but if schema parsing fails when you would
expect it to succeed, it results in a model where typecasting does
not work as expected.
The require_valid_schema plugin will raise an error when setting
the dataset for a model if schema parsing fails and the dataset
uses a simple table where you would expect schema parsing to
succeed. You can also provide an argument of :warn when loading
the plugin, to warn instead of raising an error.
This plugin may not work correctly in all cases for all adapters,
especially external adapters. Adapters are not required to support
schema parsing. Even if supported, adapters may not support
parsing schema for qualified tables, or parsing schema for views.
You should consider this plugin as a possible safety net. Users
are encouraged to try using it and report any unexpected breakage,
as that may help improve schema parsing in adapters that Sequel
ships.
is_json and is_not_json methods have been added to the pg_json_ops
extension, for the IS [NOT] JSON operator supported in PostgreSQL
15+.
Index creation methods on PostgreSQL 15+ now support a
:nulls_distinct option, for NULLS [NOT] DISTINCT. This allows you
to create unique indexes where NULL values are not considered
distinct.
View creation methods on PostgreSQL 15+ now support a
:security_invoker option to create a view where access is
determined by the permissions of the role that is accessing the
view, instead of the role that created the view.
Other Improvements
The :allow_eager association option is now set to false by default
for associations explicitly marked as :instance_specific, if the
:eager_loader association is not given.
The postgres adapter now supports the sequel-postgres-pr driver.
The sequel-postgres-pr driver is a slimmed down fork of the
postgres-pr driver designed specifically for use by Sequel.
Model code that explicitly does not swallow connection errors
will also now not swallow disconnect errors. This can fix issues
where model classes are being loaded at runtime, and the query to
get the columns/schema for the model uses a connection that has
been disconnected.
Model classes created from aliased expressions and literal
strings no longer use the simple_table optimization, as there
are cases where doing so is not safe.
Backwards Compatibility
connection errors can result in exceptions being raised which
weren't raised previously. In most cases, this will alert you
to issues in your application that should be fixed, but it
potentially it can result in regressions if you were OK with
the errors being swallowed. If this does result in regressions
in your application, please file an issue and we can probably
add a setting controlling this feature.
Thanks,
Jeremy
Beta Was this translation helpful? Give feedback.
All reactions