X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F01generate.t;fp=t%2F01generate.t;h=fd47578f15bc7dc012cafcc5ef995b5f858c9eb3;hb=a3e7d9a72ba6a6854f3ea266ce72670462e5e3a2;hp=90e94f82c2c56ddaef6845ff51625d1af4ccc3fd;hpb=449e13208e09551b354d65df1fa055442be71ad0;p=dbsrgits%2FSQL-Abstract.git diff --git a/t/01generate.t b/t/01generate.t index 90e94f8..fd47578 100644 --- a/t/01generate.t +++ b/t/01generate.t @@ -538,9 +538,39 @@ my @tests = ( stmt_q => 'SELECT * FROM `test` WHERE ( `Y` = ( MAX( LENGTH( MIN ? ) ) ) )', bind => [[Y => 'x']], }, + { + func => 'select', + args => ['jeff', '*', + { '-func' => ['substr', 1010, 5, 6,], }, + ], + stmt => 'SELECT * FROM jeff WHERE (substr(?, ?, ?))', + stmt_q => 'SELECT * FROM `jeff` WHERE (substr(?, ?, ?))', + bind => [1010,5,6], + }, + { + func => 'select', + args => ['jeff', '*', + { 'a' => { + -func => + [ 'foo', { -func => [ 'max', 'bar'], }, + \['(SELECT crate FROM baz)'], + ], + }, + } + ], + stmt => 'SELECT * FROM jeff WHERE (a = foo((max(?)), (SELECT crate FROM baz)))', + stmt_q => 'SELECT * FROM `jeff` WHERE (`a` = foo((max(?)), (SELECT crate FROM baz)))', + bind => ['bar'], + }, + { + func => 'update', + args => ['test', {'b' => { -func => ['max', 500]}}, { a => { -func => ['max', \'a',]}, b => { -func => ['present', \'t', 'sophie', 30] },},], + stmt => 'UPDATE test SET b = max(?) WHERE ((a = max(a)) AND (b = present(t, ?, ?)))', + stmt_q => 'UPDATE `test` SET `b` = max(?) WHERE ((`a` = max(a)) AND (`b` = present(t, ?, ?)))', + bind => [500, 'sophie', 30], + }, ); - plan tests => scalar(grep { !$_->{warning_like} } @tests) * 2 + scalar(grep { $_->{warning_like} } @tests) * 4;