2 use Test::More qw(no_plan);
5 use Data::Query::Renderer::SQL::Naive;
7 BEGIN { require 't/expr.include' }
9 my $rend = Data::Query::Renderer::SQL::Naive->new({ quote_chars => [ "'" ] });
11 sub expr_sql_is (&;@) {
14 ? is_deeply($rend->render(_mk_expr($sub)), @_)
15 : ::Dwarn($rend->render(_mk_expr($sub)));
18 expr_sql_is { $_->foo }
20 "Simple identifier -> SQL";
22 expr_sql_is { $_->group }
24 "Simple identifier needing quoting -> SQL";
26 expr_sql_is { $_->foo->group }
28 "Complex identifier -> SQL";
30 expr_sql_is { $_->foo == 1 }
41 "Simple expression -> SQL";
43 expr_sql_is { ($_->foo == 1) & ($_->bar eq "foo") }
45 "( foo = ? AND bar = ? )",
61 "Compound expression -> SQL";
64 expr_sql_is { ($_->foo == 1) & ($_->bar eq "foo") & ($_->baz > 3) }
66 "( foo = ? AND bar = ? AND baz > ? )",
89 "Flatten expression ok";
91 expr_sql_is { !$_->foo }
93 "Unary expression ok";