X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI.pm;h=aabb975114085c32b9d858e0701bf6f9fdf70619;hb=484c9dda865880cd4e1cda8e0117f1d073a6aa7e;hp=8b35adbd18dae74aca62bd6e20f2bd7882e152c8;hpb=73856587c4eb3b77e0906414a1a8a67f27186e24;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI.pm b/lib/DBIx/Class/Storage/DBI.pm index 8b35adb..aabb975 100644 --- a/lib/DBIx/Class/Storage/DBI.pm +++ b/lib/DBIx/Class/Storage/DBI.pm @@ -12,12 +12,7 @@ package DBIC::SQL::Abstract; # Temporary. Merge upstream. use base qw/SQL::Abstract::Limit/; -sub select { - my ($self, $ident, @rest) = @_; - return $self->SUPER::select($self->from($ident), @rest); -} - -sub from { +sub _table { my ($self, $from) = @_; if (ref $from eq 'ARRAY') { return $self->_recurse_from(@$from); @@ -47,7 +42,7 @@ sub _recurse_from { if (ref $to eq 'ARRAY') { push(@sqlf, '(', $self->_recurse_from(@$to), ')'); } else { - push(@sqlf, '(', $self->_make_as($to), ')'); + push(@sqlf, $self->_make_as($to)); } push(@sqlf, ' ON ', $self->_join_condition($on)); } @@ -56,7 +51,8 @@ sub _recurse_from { sub _make_as { my ($self, $from) = @_; - return join(' AS ', reverse each %{$self->_skip_options($from)}); + return join(' ', map { $self->_quote($_) } + reverse each %{$self->_skip_options($from)}); } sub _skip_options { @@ -71,10 +67,16 @@ sub _join_condition { my ($self, $cond) = @_; die "no chance" unless ref $cond eq 'HASH'; my %j; - for (keys %$cond) { my $x = '= '.$cond->{$_}; $j{$_} = \$x; }; + for (keys %$cond) { my $x = '= '.$self->_quote($cond->{$_}); $j{$_} = \$x; }; return $self->_recurse_where(\%j); } +sub _quote { + my ($self, $label) = @_; + return '' unless defined $label; + return $self->SUPER::_quote($label); +} + } # End of BEGIN block use base qw/DBIx::Class/; @@ -91,16 +93,6 @@ sub new { return $new; } -sub get_simple { - my ($self, $get) = @_; - return $self->{$get}; -} - -sub set_simple { - my ($self, $set, $val) = @_; - return $self->{$set} = $val; -} - =head1 NAME DBIx::Class::Storage::DBI - DBI storage handler