},
{
where => {
- start0 => { -between => [ 1, 2 ] },
+ start0 => { -between => [ 1, { -upper => 2 } ] },
start1 => { -between => \["? AND ?", 1, 2] },
start2 => { -between => \"lower(x) AND upper(y)" },
start3 => { -between => [
] },
},
stmt => "WHERE (
- ( start0 BETWEEN ? AND ? )
+ ( start0 BETWEEN ? AND UPPER ? )
AND ( start1 BETWEEN ? AND ? )
AND ( start2 BETWEEN lower(x) AND upper(y) )
AND ( start3 BETWEEN lower(x) AND upper(?) )
{
parenthesis_significant => 1,
where => {
+ status => { -in => \"(SELECT status_codes\nFROM states)" },
+ },
+ # failed to open outer parens on a multi-line query in 1.61 (semifor)
+ stmt => " WHERE ( status IN ( SELECT status_codes FROM states )) ",
+ bind => [],
+ test => '-in multi-line subquery test',
+ },
+ {
+ parenthesis_significant => 1,
+ where => {
customer => { -in => \[
'SELECT cust_id FROM cust WHERE balance > ?',
2000,
bind => [2000],
test => '-in POD test',
},
+ {
+ where => { x => { -in => [ \['LOWER(?)', 'A' ], \'LOWER(b)', { -lower => 'c' } ] } },
+ stmt => " WHERE ( x IN ( LOWER(?), LOWER(b), LOWER ? ) )",
+ bind => [qw/A c/],
+ test => '-in with an array of function array refs with args',
+ },
);
plan tests => @in_between_tests*4;