[Bast-commits] r9220 -
DBIx-Class/0.08/trunk/t/sqlahacks/limit_dialects
castaway at dev.catalyst.perl.org
castaway at dev.catalyst.perl.org
Mon Apr 26 19:45:32 GMT 2010
Author: castaway
Date: 2010-04-26 20:45:32 +0100 (Mon, 26 Apr 2010)
New Revision: 9220
Added:
DBIx-Class/0.08/trunk/t/sqlahacks/limit_dialects/rownumberover.t
Modified:
DBIx-Class/0.08/trunk/t/sqlahacks/limit_dialects/toplimit.t
Log:
Add tests using select/as to sqlahacks
Added: DBIx-Class/0.08/trunk/t/sqlahacks/limit_dialects/rownumberover.t
===================================================================
--- DBIx-Class/0.08/trunk/t/sqlahacks/limit_dialects/rownumberover.t (rev 0)
+++ DBIx-Class/0.08/trunk/t/sqlahacks/limit_dialects/rownumberover.t 2010-04-26 19:45:32 UTC (rev 9220)
@@ -0,0 +1,36 @@
+use strict;
+use warnings;
+
+use Test::More;
+use lib qw(t/lib);
+use DBICTest;
+use DBIC::SqlMakerTest;
+
+my $schema = DBICTest->init_schema;
+
+delete $schema->storage->_sql_maker->{_cached_syntax};
+$schema->storage->_sql_maker->limit_dialect ('RowNumberOver');
+
+my $rs_selectas_rno = $schema->resultset ('BooksInLibrary')->search ({}, { '+select' => ['owner.name'], '+as' => ['owner_name'], join => 'owner', rows => 1 });
+
+is_same_sql_bind( $rs_selectas_rno->search({})->as_query,
+ "(SELECT
+ me.id, me.source, me.owner, me.title, me.price,
+ owner.name
+ FROM
+ (SELECT me.*,
+ ROW_NUMBER() OVER( ) AS rno__row__index
+ FROM
+ (SELECT me.id, me.source, me.owner, me.title, me.price, owner.name
+ FROM books me
+ JOIN owners owner ON owner.id = me.owner
+ WHERE ( source = ? )
+ ) me
+ ) me
+ JOIN owners owner ON owner.id = me.owner
+ WHERE rno__row__index BETWEEN 1 AND 1 )",
+ [ [ 'source', 'Library' ] ],
+ );
+
+
+done_testing;
Modified: DBIx-Class/0.08/trunk/t/sqlahacks/limit_dialects/toplimit.t
===================================================================
--- DBIx-Class/0.08/trunk/t/sqlahacks/limit_dialects/toplimit.t 2010-04-26 13:27:38 UTC (rev 9219)
+++ DBIx-Class/0.08/trunk/t/sqlahacks/limit_dialects/toplimit.t 2010-04-26 19:45:32 UTC (rev 9220)
@@ -119,7 +119,7 @@
my @default_tests = ( undef, '', {}, [] );
-plan (tests => scalar @tests + scalar @default_tests + 1);
+# plan (tests => scalar @tests + scalar @default_tests + 1);
test_order ($_) for @tests;
default_test_order ($_) for @default_tests;
@@ -150,3 +150,19 @@
ORDER BY title)' ,
[ [ source => 'Library' ], [ source => 'Library' ] ],
);
+
+my $rs_selectas_top = $schema->resultset ('BooksInLibrary')->search ({}, { '+select' => ['owner.name'], '+as' => ['owner_name'], join => 'owner', rows => 1 });
+
+is_same_sql_bind( $rs_selectas_top->search({})->as_query,
+ "(SELECT
+ TOP 1 me.id, me.source, me.owner, me.title, me.price,
+ owner.name
+ FROM books me
+ JOIN owners owner ON owner.id = me.owner
+ WHERE ( source = ? )
+ ORDER BY me.id ASC
+ )",
+ [ [ 'source', 'Library' ] ],
+ );
+
+done_testing;
More information about the Bast-commits
mailing list