From: Peter Rabbitson Date: Mon, 4 Nov 2013 09:03:54 +0000 (+0100) Subject: Move database-independent mysql SQLMaker test X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=b945237ab974c8cbc0a4eaa9228445d3627dfee3;p=dbsrgits%2FDBIx-Class.git Move database-independent mysql SQLMaker test --- diff --git a/t/71mysql.t b/t/71mysql.t index 58a5669..1e31e8c 100644 --- a/t/71mysql.t +++ b/t/71mysql.t @@ -214,29 +214,6 @@ lives_ok { $cd->set_producers ([ $producer ]) } 'set_relationship doesnt die'; ); } -{ - # Test support for straight joins - my $cdsrc = $schema->source('CD'); - my $artrel_info = $cdsrc->relationship_info ('artist'); - $cdsrc->add_relationship( - 'straight_artist', - $artrel_info->{class}, - $artrel_info->{cond}, - { %{$artrel_info->{attrs}}, join_type => 'straight' }, - ); - is_same_sql_bind ( - $cdsrc->resultset->search({}, { prefetch => 'straight_artist' })->as_query, - '( - SELECT `me`.`cdid`, `me`.`artist`, `me`.`title`, `me`.`year`, `me`.`genreid`, `me`.`single_track`, - `straight_artist`.`artistid`, `straight_artist`.`name`, `straight_artist`.`rank`, `straight_artist`.`charfield` - FROM cd `me` - STRAIGHT_JOIN `artist` `straight_artist` ON `straight_artist`.`artistid` = `me`.`artist` - )', - [], - 'straight joins correctly supported for mysql' - ); -} - ## Can we properly deal with the null search problem? ## ## Only way is to do a SET SQL_AUTO_IS_NULL = 0; on connect diff --git a/t/sqlmaker/mysql.t b/t/sqlmaker/mysql.t index b00691f..2755a3d 100644 --- a/t/sqlmaker/mysql.t +++ b/t/sqlmaker/mysql.t @@ -115,4 +115,27 @@ bless ( $schema->storage, 'DBIx::Class::Storage::DBI::mysql' ); $schema->storage->debug ($orig_debug); } +# Test support for straight joins +{ + my $cdsrc = $schema->source('CD'); + my $artrel_info = $cdsrc->relationship_info ('artist'); + $cdsrc->add_relationship( + 'straight_artist', + $artrel_info->{class}, + $artrel_info->{cond}, + { %{$artrel_info->{attrs}}, join_type => 'straight' }, + ); + is_same_sql_bind ( + $cdsrc->resultset->search({}, { prefetch => 'straight_artist' })->as_query, + '( + SELECT `me`.`cdid`, `me`.`artist`, `me`.`title`, `me`.`year`, `me`.`genreid`, `me`.`single_track`, + `straight_artist`.`artistid`, `straight_artist`.`name`, `straight_artist`.`rank`, `straight_artist`.`charfield` + FROM cd `me` + STRAIGHT_JOIN `artist` `straight_artist` ON `straight_artist`.`artistid` = `me`.`artist` + )', + [], + 'straight joins correctly supported for mysql' + ); +} + done_testing;