X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSQLMaker%2FLimitDialects.pm;h=846cab7f753f03d88b891ab183ca856ac8d63393;hb=a6646e1b0a25acfd21cc3e32b8c479dd0f3526ef;hp=723001d4aa6e594f471e1d6c30294d24d50f4957;hpb=d9672fb94b70dac86a6d4fed7ad46a48c5ee4527;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/SQLMaker/LimitDialects.pm b/lib/DBIx/Class/SQLMaker/LimitDialects.pm index 723001d..846cab7 100644 --- a/lib/DBIx/Class/SQLMaker/LimitDialects.pm +++ b/lib/DBIx/Class/SQLMaker/LimitDialects.pm @@ -348,7 +348,7 @@ sub _Top { my $inner_order = ($order_by_requested ? $requested_order : [ map - { join ('', $rs_attrs->{alias}, $self->{name_sep}||'.', $_ ) } + { "$rs_attrs->{alias}.$_" } ( $rs_attrs->{_rsroot_source_handle}->resolve->_pri_cols ) ] ); @@ -608,10 +608,7 @@ sub _subqueried_limit_attrs { croak 'Limit dialect implementation usable only in the context of DBIC (missing $rs_attrs)' unless ref ($rs_attrs) eq 'HASH'; - my ($re_sep, $re_alias) = map { quotemeta $_ } ( - $self->name_sep || '.', - $rs_attrs->{alias}, - ); + my ($re_sep, $re_alias) = map { quotemeta $_ } ( $self->{name_sep}, $rs_attrs->{alias} ); # correlate select and as, build selection index my (@sel, $in_sel_index); @@ -651,7 +648,11 @@ sub _subqueried_limit_attrs { # for possible further chaining) my (@in_sel, @out_sel, %renamed); for my $node (@sel) { - if (first { $_ =~ / (?{as}, $node->{unquoted_sql}) ) { + if ( + $node->{as} =~ / (?{unquoted_sql} =~ / (?{as} = $self->_unqualify_colname($node->{as}); my $quoted_as = $self->_quote($node->{as}); push @in_sel, sprintf '%s AS %s', $node->{sql}, $quoted_as; @@ -690,8 +691,7 @@ sub _subqueried_limit_attrs { sub _unqualify_colname { my ($self, $fqcn) = @_; - my $re_sep = quotemeta($self->name_sep || '.'); - $fqcn =~ s/ $re_sep /__/xg; + $fqcn =~ s/ \. /__/xg; return $fqcn; }