$sql_maker->where({ foo => { -ident => undef } })
} qr/-ident requires a single plain scalar argument/;
+ throws_ok {
+ local $sql_maker->{disable_old_special_ops} = 1;
+ $sql_maker->where({'-or' => [{'-ident' => 'foo'},'foo']})
+ } qr/Illegal.*top-level/;
+
+ throws_ok {
+ local $sql_maker->{disable_old_special_ops} = 1;
+ $sql_maker->where({'-or' => [{'-ident' => 'foo'},{'=' => \'bozz'}]})
+ } qr/Illegal.*top-level/;
+
my ($sql, @bind) = $sql_maker->select('artist', '*', { 'artist.name' => { -ident => 'artist.pseudonym' } } );
is_same_sql_bind (
$sql,
",
[],
);
+
+ ($sql) = $sql_maker->select(
+ \(my $from = 'foo JOIN bar ON foo.bar_id = bar.id'),
+ [ { -ident => [ 'foo', 'name' ] }, { -ident => [ 'bar', '*' ] } ]
+ );
+
+ is_same_sql_bind(
+ $sql,
+ undef,
+ "SELECT ${q}foo${q}.${q}name${q}, ${q}bar${q}.*
+ FROM $from"
+ );
}
done_testing;