Subject: | Upcoming DBIC change will break this module entirely (PATCH attached) |
The culprit is this DBIC-side change: https://github.com/dbsrgits/dbix-class/commit/096ab902a
Please see comment in attached patch.
Thank you!
Subject: | 0001-Fix-for-upcoming-DBIx-Class-0.082900-release.patch |
From c9cf3198cf3754180a833847ccfd379ddc2ce679 Mon Sep 17 00:00:00 2001
From: Peter Rabbitson <ribasushi@cpan.org>
Date: Tue, 17 May 2016 09:50:12 +0200
Subject: [PATCH] Fix for upcoming DBIx::Class 0.082900 release
This is not ideal, but neither is the way this module repurposes _column_data
So far testing indicated this is the only module that did something similar,
thus I am opting to not revert DBIC's behavior, but instead to patch your code
If more failcases are discovered, it is not out of the question to simply
revert 096ab902a within DBIC and institute a different way of handling things
Sorry for the trouble :/
---
lib/DBIx/Class/FrozenColumns.pm | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/lib/DBIx/Class/FrozenColumns.pm b/lib/DBIx/Class/FrozenColumns.pm
index f3672dd..daeff88 100644
--- a/lib/DBIx/Class/FrozenColumns.pm
+++ b/lib/DBIx/Class/FrozenColumns.pm
@@ -304,7 +304,17 @@ sub get_dirty_columns {
sub _ensure_column_unpacked {
my ($self, $column, $type) = @_;
unless ( ref (my $packed = $self->get_column($column)) ) {
- $self->store_column($column, $type->recover(\$packed));
+ $self->store_column(
+ $column,
+ my $struct = $type->recover(\$packed)
+ );
+
+ # workaround for DBIx::Class::Row::store_column >= 0.082900 no longer
+ # allowing blessed refs in _column_data ( 096ab902a )
+ # Ideally this needs to be rewritten to use a separate data stash
+ # just like e.g. DBIx::Class::FilterColumn does
+ $self->{_column_data}{$column} = $struct
+ if exists $self->{_column_data}{$column};
}
}
--
2.1.4