X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=xt%2Fclauses.t;h=7fed67fb57fb51820f7a7326c361c6b9ee8f5344;hb=58ebc7fa5f9ccaabc1ce23d57ab642c6825bdebc;hp=37ef05754d7ab982dbc9bf2bda37eb7322fadf2a;hpb=7250aa13440fae80201e48286f4a5939abc97ee7;p=scpubgit%2FQ-Branch.git diff --git a/xt/clauses.t b/xt/clauses.t index 37ef057..7fed67f 100644 --- a/xt/clauses.t +++ b/xt/clauses.t @@ -131,4 +131,37 @@ is_same_sql( WHERE NOT EXISTS (SELECT 1 FROM bar WHERE foo.id = bar.foo_id)}, ); +is_same_sql( + $sqlac->select({ + select => '*', + from => 'foo', + where => { id => { + '=' => { -select => { select => { -max => 'id' }, from => 'foo' } } + } }, + }), + q{SELECT * FROM foo WHERE id = (SELECT MAX(id) FROM foo)}, +); + +{ + my $sqlac = $sqlac->clone + ->clauses_of( + select => ( + $sqlac->clauses_of('select'), + qw(limit offset), + ) + ); + + ($sql, @bind) = $sqlac->select({ + select => '*', + from => 'foo', + limit => 10, + offset => 20, + }); + + is_same_sql_bind( + $sql, \@bind, + q{SELECT * FROM foo LIMIT ? OFFSET ?}, [ 10, 20 ] + ); +} + done_testing;