plan skip_all => 'Set $ENV{DBICTEST_MSSQL_ODBC_DSN}, _USER and _PASS to run this test'
unless ($dsn && $user);
-plan tests => 21;
+plan tests => 19;
-my $schema = DBICTest::Schema->connect($dsn, $user, $pass, {AutoCommit => 1});
+my $schema = DBICTest::Schema->connect($dsn, $user, $pass);
{
no warnings 'redefine';
CREATE TABLE Owners (
id INT IDENTITY (1, 1) NOT NULL,
- [name] VARCHAR(100),
+ name VARCHAR(100),
)
SQL
#
{
- # try a ->has_many direction (due to a 'multi' accessor the select/group_by group is collapsed)
+ # try a ->has_many direction (group_by is not possible on has_many with limit)
my $owners = $schema->resultset ('Owners')->search ({
'books.id' => { '!=', undef }
}, {
prefetch => 'books',
- distinct => 1,
- #order_by => 'name',
- #page => 2,
- #rows => 5,
+ order_by => 'name',
+ page => 2,
+ rows => 4,
});
- my $owners2 = $schema->resultset ('Owners')->search ({ id => { -in => $owners->get_column ('me.id')->as_query }});
- for ($owners, $owners2) {
- is ($_->all, 8, 'Prefetched grouped search returns correct number of rows');
- is ($_->count, 8, 'Prefetched grouped search returns correct count');
+ TODO: {
+ local $TODO = 'limit past end of resultset problem';
+ is ($owners->all, 3, 'has_many prefetch returns correct number of rows');
+ is ($owners->count, 3, 'has-many prefetch returns correct count');
}
- # try a ->belongs_to direction (no select collapse)
+ # try a ->belongs_to direction (no select collapse, group_by should work)
my $books = $schema->resultset ('BooksInLibrary')->search ({
'owner.name' => 'wiggle'
}, {
- prefetch => 'owner',
distinct => 1,
- #order_by => 'name',
- #page => 2,
- #rows => 5,
+ prefetch => 'owner',
+ order_by => 'name',
+ rows => 5,
});
- my $books2 = $schema->resultset ('BooksInLibrary')->search ({ id => { -in => $books->get_column ('me.id')->as_query }});
- for ($books, $books2) {
- is ($_->all, 1, 'Prefetched grouped search returns correct number of rows');
- is ($_->count, 1, 'Prefetched grouped search returns correct count');
- }
+ is ($books->page(1)->all, 1, 'Prefetched grouped search returns correct number of rows');
+ is ($books->page(1)->count, 1, 'Prefetched grouped search returns correct count');
+
+ TODO: {
+ local $TODO = 'limit past end of resultset problem';
+ is ($books->page(2)->all, 0, 'Prefetched grouped search returns correct number of rows');
+ is ($books->page(2)->count, 0, 'Prefetched grouped search returns correct count');
+ }
}
# clean up our mess