$Data::Dumper::Terse = 1;
$Data::Dumper::Sortkeys = 1;
-# equivalent to $Module::Install::AUTHOR
-my $author = (
- ( not -d './inc' )
- or
- ( -e ($^O eq 'VMS' ? './inc/_author' : './inc/.author') )
-);
-
-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 => [
q/SELECT * FROM (SELECT * FROM bar WHERE ((b = 1) AND (c = 10))) AS foo WHERE (a = 2)/,
]
},
+
+ # list permutations
{
equal => 0,
statements => [
'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 = (
}
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");
}
}
}