[Dbix-class] serializing DBIx::Class::ResultSourceHandle (Followup)

Ash Berlin ash_cpan at firemirror.com
Sat Feb 16 11:18:33 GMT 2008


On 16 Feb 2008, at 02:37, Jose Fonseca wrote:

> Sure. I asked because I'm working under Apache so freezing that DBH  
> works just fine. Apache::DBI will give you a brand new DBH everytime  
> your DBH is obsolete.

No it wont. It will try to and will get it wrong. DBIx::Class works  
around Apache::DBI being stupid and does a better job of it.

>
>
> Thanks for the pointer, I had not seen your solution in Schema.pm,  
> appreciate that. I either have to plug that into Apache::SessionX  
> instead of Storable or continue to $data->result_source($schema- 
> >source('User')); like Matt Trout suggested.
>
> What I know is that I really need that object in Apache's session  
> memory and not let it be recreated each time from disk(or dbh).

Why might I ask? Not doubting you - it just helps to have someone else  
check your logic.

>
>
> Regards,
> Ze
>
>
> On Feb 15, 2008 6:20 PM, Ash Berlin <ash_cpan at firemirror.com> wrote:
> Cos it contains a code-ref (the DBH) which can't be freezed.
>
> But since then I did come up with *a* way of doing it:
>
> http://search.cpan.org/~jrobinson/DBIx-Class-0.08009/lib/DBIx/Class/Schema.pm#thaw 
>  says
>
>> Provided as the recommened way of thawing schema objects. You can  
>> call Storable::thaw directly if you wish, but the thawed objects  
>> will not have a reference to any schema, so are rather useless
>
>
>
> There are also freeze and dclone methods for symmetry. This was a  
> new addition since 0.08009 2008-01-20 13:30
>
> -ash
>
>
> On 15 Feb 2008, at 19:57, Jose Fonseca wrote:
>
>> Hi, I just had the same problem that Bernhard Graf had in Sept.  
>> 2007 and caught up with this discussion:
>>
>> Ash Berlin Wrote:
>> "I wrote the ResultSourceHandle stuff, and I never could come up  
>> with a good way of specifying what schema to use in thawing the  
>> data."
>>
>> Quick question: why is the "schema" column of _source_handle  
>> undef'd when freeze()ing?
>>
>>
>> On Thu, Sep 20, 2007 at 10:18:10AM +0200, Bernhard Graf wrote:
>> > On Thursday 20 September 2007 09:42, Ash Berlin wrote:
>>
>> >
>> > > I wrote the ResultSourceHandle stuff, and I never could come up  
>> with
>>
>> > > a good way of specifying what schema to use in thawing the  
>> data. So
>> > > currently you'd have to do
>> > >
>> > > $data->_source_handle->schema($schema);
>>
>>
>> >
>> > Not pretty, but this works at least.
>>
>> $data->result_source($schema->source('User'));
>>
>> just like it's always been since before ResultSourceHandle existed.
>>
>>
>>
>> Never call an _ prefix method from outside the object or a subclass  
>> thereof.
>>
>> -- 
>>       Matt S Trout       Need help with your Catalyst or  
>> DBIx::Class project?
>>    Technical Director                    http://www.shadowcat.co.uk/catalyst/
>>
>>
>>  Shadowcat Systems Ltd.  Want a managed development or deployment  
>> platform?
>> http://chainsawblues.vox.com/            http://www.shadowcat.co.uk/servers/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/dbix-class/attachments/20080216/18b9ebf8/attachment-0001.htm


More information about the DBIx-Class mailing list