$mid_sel .= ', ' . $extra_order_sel->{$extra_col};
}
+
+ # since whatever order bindvals there are, they will be realiased
+ # and need to show up in front of the entire initial inner subquery
+ # Unshift *from_bind* to make this happen (horrible, horrible, but
+ # we don't have another mechanism yet)
+ unshift @{$self->{from_bind}}, @{$self->{order_bind}};
}
# and this is order re-alias magic
# Can this fail without throwing an exception anyways???
my $rv = $sth->execute();
- $self->throw_exception($sth->errstr) if !$rv;
+ $self->throw_exception(
+ $sth->errstr || $sth->err || 'Unknown error: execute() returned false, but error flags were not set...'
+ ) if !$rv;
$self->_query_end( $sql, @$bind );
is ($limited_rs->count_rs->next, 6, "$test_type: Correct count_rs of limited right-sorted joined resultset");
my $queries;
+ my $orig_debug = $schema->storage->debug;
$schema->storage->debugcb(sub { $queries++; });
$schema->storage->debug(1);
is ($queries, 1, "$test_type: Only one query with prefetch");
$schema->storage->debugcb(undef);
- $schema->storage->debug(0);
+ $schema->storage->debug($orig_debug);
is_deeply (
[map { $_->name } ($limited_rs->search_related ('owner')->all) ],
my ($sql, @bind) = @${$owners->page(3)->as_query};
is_deeply (
\@bind,
- [ ([ 'me.name' => 'somebogusstring' ], [ test => 'xxx' ]) x 2 ], # double because of the prefetch subq
+ [
+ $dialect eq 'Top' ? [ test => 'xxx' ] : (), # the extra re-order bind
+ ([ 'me.name' => 'somebogusstring' ], [ test => 'xxx' ]) x 2 # double because of the prefetch subq
+ ],
);
is ($owners->page(1)->all, 3, "$test_type: has_many prefetch returns correct number of rows");