use Test::More;
use Test::Deep;
+use Test::Warn;
use SQL::Abstract::Tree;
my $sqlat = SQL::Abstract::Tree->new;
]
], 'Lists parsed correctly');
+# test for recursion warnings on huge selectors
+warnings_are {
+ my $sql = sprintf 'SELECT %s FROM foo', join (', ', map { qq|"$_"| } 'aa' .. 'zz' );
+ my $tree = $sqlat->parse($sql);
+
+ is_deeply( $tree, [
+ [
+ "SELECT",
+ [
+ [
+ "LIST",
+ [
+ map { [ "LITERAL", [ qq|"$_"| ] ] } ('aa' .. 'zz')
+ ]
+ ]
+ ]
+ ],
+ [
+ "FROM",
+ [
+ [
+ "LITERAL",
+ [
+ "foo"
+ ]
+ ]
+ ]
+ ]
+ ], 'long list parsed correctly');
+
+ is( $sqlat->unparse($tree), $sql, 'roundtrip ok');
+} [], 'no recursion warnings on insane SQL';
+
done_testing;