Closed rolftimmermans closed 1 year ago
Thank you for the report. In this case, this is not a bug. The cause is the subclass's dataset selects from a subquery, and the pg_auto_constraint_validations
plugin does not work with such datasets.
In your example, you want the subclasses to pick up constraint violations in every inserted table, not just the first inserted table, so class_table_inheritance
subclasses cannot just inherit the pg_auto_constraint_validations
metadata of the superclass, they need separate support that handles every table in the model's dataset, which is not something that pg_auto_constraint_validations
handles (it is limited to a single table).
In this case, you would want to add a separate plugin that specifically handles this case. The implementation would be similar to but significantly more complicated than pg_auto_constraint_validations
.
Looks like the pg_auto_constraint_validations
plugin does not currently document that it only works with model datasets that select from a single table. I'll update the documentation to fix that.
Thank you for the clarification! I'll handle this in a custom plugin in that case.
Complete Description of Issue
This issue occurs when using both the
class_table_inheritance
and thepg_auto_constraint_validations
plugin.pg_auto_constraint_validations
plugin correctly reraises a unique constraint error as aSequel::ValidationFailed
error.pg_auto_constraint_validations
plugin does not reraise a unique constraint error asSequel::ValidationFailed
, but instead raisesSequel::UniqueConstraintViolation
directly.I would expect
Sequel::ValidationFailed
in both cases.Simplest Possible Self-Contained Example Showing the Bug
Full Backtrace of Exception (if any)
SQL Log (if any)
No response
Ruby Version
2.7.5
Sequel Version
master