fixups for HAVING clauses
[dbsrgits/Data-Query.git] / t / expr-helpers.t
CommitLineData
fda85b28 1use strictures 1;
2use Test::More qw(no_plan);
3
4use Devel::Dwarn;
5use Data::Query::Renderer::SQL::Naive;
6use Data::Query::ExprHelpers;
7
8my $rend = Data::Query::Renderer::SQL::Naive->new({ quote_chars => [ "'" ] });
9
10sub binding { map perl_scalar_value($_), @_ }
11
12sub dq_sql_is {
13 my $expr = shift;
14#::Dwarn($expr); return;
15 my $rendered = $rend->render($expr);
16 is_deeply($rendered, @_);
17}
18
e6de85d7 19dq_sql_is
fda85b28 20 Select([ Identifier('*') ], Identifier('foo')),
21 ['SELECT * FROM foo'],
22 'simple select';
23
24dq_sql_is
25 Join(
26 Select([ Identifier('*') ], Identifier('foo')),
27 Identifier('bar'),
28 perl_operator('==', Identifier('foo', 'x'), Identifier('bar', 'y'))
29 ),
30 ['SELECT * FROM foo JOIN bar ON foo.x = bar.y'],
31 'join on with dots';
32
e6de85d7 33dq_sql_is
fda85b28 34 Where(
35 perl_operator(
36 '==',
37 Identifier('x'),
38 Literal('SQL', '?', [ binding(1) ],),
39 ),
40 Select([ Identifier('*') ], Identifier('foo')),
41 ),
42 ['SELECT * FROM foo WHERE x = ?', binding(1)],
43 'simple select with where and bind';
44