X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F10test.t;h=ceac4e1b3b47fff8e5a81b89f26385d2053363f2;hb=0769ac0e4022d40ded0dff13abe292d4867c9d09;hp=2a75d3290d0a846c44fc4ef4300d2d4c3e78bd58;hpb=54629227047dc5d90620442e090630f49e81fe85;p=scpubgit%2FQ-Branch.git diff --git a/t/10test.t b/t/10test.t index 2a75d32..ceac4e1 100644 --- a/t/10test.t +++ b/t/10test.t @@ -21,9 +21,8 @@ if (not $author and not $ENV{SQLATEST_TESTER} and not $ENV{AUTOMATED_TESTING}) { plan skip_all => 'Skipping resource intensive self-tests, use SQLATEST_TESTER=1 to run'; } - my @sql_tests = ( - # WHERE condition - equal + # WHERE condition - equal { equal => 1, statements => [ @@ -592,6 +591,8 @@ my @sql_tests = ( q/SELECT * FROM (SELECT * FROM bar WHERE ((b = 1) AND (c = 10))) AS foo WHERE (a = 2)/, ] }, + + # list permutations { equal => 0, statements => [ @@ -624,6 +625,40 @@ my @sql_tests = ( 'SELECT count(1) FROM foo', ] }, + # func + { + equal => 1, + statements => [ + 'SELECT foo() bar FROM baz', + 'SELECT foo ( )bar FROM baz', + 'SELECT foo (())bar FROM baz', + 'SELECT foo(( ) ) bar FROM baz', + ] + }, + { + equal => 0, + statements => [ + 'SELECT foo() FROM bar', + 'SELECT foo FROM bar', + 'SELECT foo FROM bar ()', + ] + }, + # math + { + equal => 0, + statements => [ + 'SELECT * FROM foo WHERE 1 = ( a > b)', + 'SELECT * FROM foo WHERE 1 = a > b', + 'SELECT * FROM foo WHERE (1 = a) > b', + ] + }, + { + equal => 1, + statements => [ + 'SELECT * FROM foo WHERE bar = baz(buzz)', + 'SELECT * FROM foo WHERE bar = (baz( buzz ))', + ] + }, ); my @bind_tests = ( @@ -856,10 +891,14 @@ 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: ' . Dumper SQL::Abstract::Test::parse ($sql1)); - note('ast2: ' . Dumper SQL::Abstract::Test::parse ($sql2)); + note("ast1: $ast1"); + note("ast2: $ast2"); } } }