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

James Masters james at masters.me.uk
Fri Aug 25 11:18:25 CEST 2006


  -----Original Message-----
  From: dbix-class-bounces at lists.rawmode.org
[mailto:dbix-class-bounces at lists.rawmode.org]On Behalf Of Brandon Black
  Sent: 24 August 2006 23:21
  To: dbix-class at lists.rawmode.org
  Subject: Re: [Dbix-class] Problem with DBIx::Class::Schema::Loader or





  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/20060825/aa7c0b5c/attachment.htm 


More information about the Dbix-class mailing list