[Dbix-class] Problem with DBIx::Class::Schema::Loader or

Brandon Black blblack at gmail.com
Fri Aug 25 00:20:33 CEST 2006


On 8/24/06, James Masters <james at masters.me.uk> wrote:
>
>  Thanks for the advice.  I have been re-reading the documentation and have
> made some progress by using the Loader Debugger.
>
> Firstly, let me reply to your 2 points.  Of course, I did first try to use
> ->load_classes.  This didn't work - the error said I was missing a module; I
> can't remember the name of it now but I couldn't find a win32 version of it
> so gave up
>

First, you should stop right there and work on that problem.  What is this
missing module, why is it missing, and can it be fixed?  This doesn't sound
sane/normal.  I've haven't heard about people who cannot use load_classes.
And no, "use MG::Schema::Foo" is *not* an adequate substitute.

Anyway, with the debugger, I have learnt that the Loader was working fine. I
> can see all the tables, columns and PKs being loaded.  Also I got
> the resultsets to work - the problem was that I was specifying CountryCode
> (which is indeed the correct name of my column) but to get it to work I have
> to use lower case "countrycode".  Someone has told me that this is
> because MySQL columns are not case-sensitive and all columns are stored in
> lower case.  [ Still, I don't think this is ideal behaviour personally as I
> like my "cased" column names.  Wouldn't a better behaviour be for the
> methods to accept any case?  Not sure if possible as might mess up other
> database interfaces - just wondering. ]
>

The Loader currently does force all column names to lower case.  Normal
DBIx::Class lets you specify them however you like, and honors that
specification.  The decision to lowercase them all in Schema::Loader just
makes the code *much* simpler than dealing with all of the cross-vendor case
issues that exist for what Loader is doing.  At least for the time being, if
you want CamelCase column names in DBIx::Class, you have to do it for
yourself.

However, I am left with a problem.  The following error:
>
> *Attempt to free unreferenced scalar: SV 0x1fa7a5c, Perl interpreter:
> 0x224234 at C:/Perl/site/lib/SQL/Abstract/Limit.pm line 325.
> *
> occurs every time I attempt to use a resultset.  Tinkering has established
> that it occurs with each of the following lines.
> my @livecountries > my $m > my @allcountries > my $country  > my $r > my $p > If I put all 6 lines, it occurs 6 times.  It happens if this is the last
> thing in the script.
>
> This only happens when the schema is loaded via Loader - it did not appear
> when the schema was loaded via my manually created module. The Loader
> debugger does not give any clues.  If anyone can point me in the right
> direction for further reading/investigation, I'd be very grateful.
>

The error itself is pointing you somewhere.  What's on line 325 of S::A::L?
(and what version do you have installed from where?).

-- Brandon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rawmode.org/pipermail/dbix-class/attachments/20060824/97c84270/attachment-0001.htm 


More information about the Dbix-class mailing list