] },
},
stmt => "WHERE (
- ( start0 BETWEEN ? AND upper ? )
+ ( start0 BETWEEN ? AND UPPER ? )
AND ( start1 BETWEEN ? AND ? )
AND ( start2 BETWEEN lower(x) AND upper(y) )
AND ( start3 BETWEEN lower(x) AND upper(?) )
bind => [1, 2, 1, 2, 'stuff'],
test => '-between POD test',
},
+ {
+ args => { bindtype => 'columns' },
+ where => {
+ start0 => { -between => [ 1, { -upper => 2 } ] },
+ start1 => { -between => \["? AND ?", [ start1 => 1], [start1 => 2] ] },
+ start2 => { -between => \"lower(x) AND upper(y)" },
+ start3 => { -between => [
+ \"lower(x)",
+ \["upper(?)", [ start3 => 'stuff'] ],
+ ] },
+ },
+ stmt => "WHERE (
+ ( start0 BETWEEN ? AND UPPER ? )
+ AND ( start1 BETWEEN ? AND ? )
+ AND ( start2 BETWEEN lower(x) AND upper(y) )
+ AND ( start3 BETWEEN lower(x) AND upper(?) )
+ )",
+ bind => [
+ [ start0 => 1 ],
+ [ start0 => 2 ],
+ [ start1 => 1 ],
+ [ start1 => 2 ],
+ [ start3 => 'stuff' ],
+ ],
+ test => '-between POD test',
+ },
{
parenthesis_significant => 1,
bind => [qw/A c/],
test => '-in with an array of function array refs with args',
},
+ {
+ where => { x => { -in => [ 1, undef ] } },
+ stmt => " WHERE ( x IN ( ?, NULL ) )",
+ bind => [ 1 ],
+ test => '-in with undef as an element',
+ },
+ {
+ where => { x => { -in => [ 1, undef, 2, 3, undef ] } },
+ stmt => " WHERE ( x IN ( ?, NULL, ?, ?, NULL ) )",
+ bind => [ 1, 2, 3 ],
+ test => '-in with undef as an element',
+ },
);
plan tests => @in_between_tests*4;