X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F10test.t;h=4d14014fdf99921910cf329e784ee07267c5658a;hb=b6251592f2832d5353d37bd05e522091f20ff38f;hp=c34dfabec5d4042d3935f18e25ff65a637dd883c;hpb=4d3dc03aeed178670e3284f8ad06e69d23b5d5dd;p=scpubgit%2FQ-Branch.git diff --git a/t/10test.t b/t/10test.t index c34dfab..4d14014 100644 --- a/t/10test.t +++ b/t/10test.t @@ -282,6 +282,17 @@ my @sql_tests = ( ] }, + # IS NULL (special LHS-only op) + { + equal => 1, + statements => [ + q/WHERE a IS NOT NULL AND b IS NULL/, + q/WHERE (a IS NOT NULL) AND b IS NULL/, + q/WHERE a IS NOT NULL AND (b IS NULL)/, + q/WHERE (a IS NOT NULL) AND ((b IS NULL))/, + ], + }, + # JOIN condition - equal { equal => 1, @@ -614,7 +625,7 @@ my @sql_tests = ( 'SELECT count(1) FROM foo', ] }, - # func + # misc func { equal => 1, statements => [ @@ -632,6 +643,38 @@ my @sql_tests = ( 'SELECT foo FROM bar ()', ] }, + { + equal => 0, + statements => [ + 'SELECT COUNT * FROM foo', + 'SELECT COUNT( * ) FROM foo', + ] + }, + # single ? of unknown funcs do not unroll unless + # explicitly allowed (e.g. Like) + { + equal => 0, + statements => [ + 'SELECT foo FROM bar WHERE bar > foo ?', + 'SELECT foo FROM bar WHERE bar > foo( ? )', + ] + }, + { + equal => 1, + statements => [ + 'SELECT foo FROM bar WHERE bar LIKE ?', + 'SELECT foo FROM bar WHERE bar LiKe (?)', + 'SELECT foo FROM bar WHERE bar lIkE( (?))', + ] + }, + # test multival + { + equal => 0, + statements => [ + 'SELECT foo FROM bar WHERE foo IN (?, ?)', + 'SELECT foo FROM bar WHERE foo IN ?, ?', + ] + }, # math { equal => 0, @@ -881,13 +924,13 @@ for my $test (@sql_tests) { if ($equal ^ $test->{equal}) { my ($ast1, $ast2) = map { SQL::Abstract::Test::parse ($_) } ($sql1, $sql2); - $_ = Dumper $_ for ($ast1, $ast2); - diag("sql1: $sql1"); - diag("sql2: $sql2"); - note("ast1: $ast1"); - note("ast2: $ast2"); + diag "sql1: $sql1"; + diag "sql2: $sql2"; + note $SQL::Abstract::Test::sql_differ; + note "ast1: $ast1"; + note "ast2: $ast2"; } } }