[Dbix-class] Can't locate object method "in_storage" via package "Math::BigInt"

Matt S Trout mst at shadowcat.co.uk
Tue Jan 24 22:30:41 GMT 2017


On Thu, Jan 05, 2017 at 01:42:04AM +0300, Alex Povolotsky wrote:
> Things are getting more and more strange.
> 
> Attempt to isolate code failed; simple one-liner works.
> 
> $inode->{owner}->{id} from the original code is not an object.
> 
> In fact, problem was in different line, where plain status => 1
> somehow turned into          'status' => bless( {
>                                'sign' => '+',
>                                'value' => [
>                                             1
>                                           ]
>                              }, 'Math::BigInt' ),

If statuf is set up as a relationship that'd explain DBIC calling
in_storage on it.
 
> I have no idea of how can it be...

Check your code for a 'use bigint;' - that uses overload::constant
to turn bare numbers into Math::BigInt objects, which would explain
how a plain 'status => 1' could do that. You could also check to
see if something's messing with it using:

    use Devel::Dwarn;
    Dwarn 1;

(you do already have that module, it's a dependency of ours)

-- 
Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue

http://shadowcat.co.uk/blog/matt-s-trout/   http://twitter.com/shadowcat_mst/

Email me now on mst (at) shadowcat.co.uk and let's chat about how our CPAN
commercial support, training and consultancy packages could help your team.



More information about the DBIx-Class mailing list