[CDBI] Fwd: issues with utf8?

Jim Lambert <jlambert-1FONPbNgvBv2fBVCVOL8/[email protected]>
Newsgroups gmane.comp.lang.perl.modules.class-dbi
Message-ID <[email protected]>
I follow-up to my mail from last night....

I've been able to retrieve my HasMany relationship objects by making  
the following change to Class::DBI::Relationship::HasMany:

sub _hm_run_search {
         my $rel = shift;
         my ($class, $accessor) = ($rel->class, $rel->accessor);
         return sub {
             my ($self, @search_args) = @_;
             @search_args = %{ $search_args[0] } if ref $search_args 
[0] eq "HASH";
             my $meta = $class->meta_info($rel->name => $accessor);
             my ($f_class, $f_key, $args) =
                 ($meta->foreign_class, $meta->args->{foreign_key},  
$meta->args);
             if (ref $self) {    # For $artist->cds
		unshift @search_args, %{ $args->{constraint} }
                     if defined($args->{constraint}) && ref $args-> 
{constraint} eq 'HASH';

                 ## this-is-the-change
		my $id = $self->id;
                 utf8::downgrade($id) if utf8::is_utf8($id);
                 unshift @search_args, ($f_key => $id);
      		 ## end-of-change

                 push @search_args, { order_by => $args->{order_by} }
                     if defined $args->{order_by};
                 return $f_class->search(@search_args);
             } else {
		## blah, blah.... didn't change this so need to cut/paste it.
             }
         };
}

This is a horrible hack.... does anyone have a better fix for this  
utf8 problem?

thanks.

j.
--
Jim Lambert
jlambert-1FONPbNgvBv2fBVCVOL8/[email protected] / AIM: jimlambrt




Begin forwarded message:

> I'm having some issues with using Class::DBI with utf8 data in an  
> oracle database.
>
> I have to make all the columns 'Essential' or everything just hangs  
> when I try to retrieve non-primary key columns.
>
> Also, I can't seem to get has_many relationships to work with this  
> utf8 database.   When I try to retrieve a has_many relationship  
> objects, the query just hangs.
>
> I have noticed, that if I downgrade the utf8 data, then I can use  
> it to retrieve Class::DBI sub-classes.   Unfortunately, there's no  
> way to downgrade the primary key data used internally in Class::DBI  
> to retrieve has_many relationship objects.
>
> Any help would be appreciated.
>
> j.
> --
> Jim Lambert
> jlambert-1FONPbNgvBv2fBVCVOL8/[email protected] / AIM: jimlambrt
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.