Commit | Line | Data |
fda85b28 |
1 | use strictures 1; |
2 | use Test::More qw(no_plan); |
3 | |
4 | use Devel::Dwarn; |
5 | use Data::Query::Renderer::SQL::Naive; |
6 | use Data::Query::ExprHelpers; |
7 | |
8 | my $rend = Data::Query::Renderer::SQL::Naive->new({ quote_chars => [ "'" ] }); |
9 | |
10 | sub binding { map perl_scalar_value($_), @_ } |
11 | |
12 | sub dq_sql_is { |
13 | my $expr = shift; |
14 | #::Dwarn($expr); return; |
15 | my $rendered = $rend->render($expr); |
16 | is_deeply($rendered, @_); |
17 | } |
18 | |
19 | dq_sql_is |
20 | Select([ Identifier('*') ], Identifier('foo')), |
21 | ['SELECT * FROM foo'], |
22 | 'simple select'; |
23 | |
24 | dq_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 | |
33 | dq_sql_is |
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 | |