Changeset 101
- Timestamp:
- 05/04/06 00:08:12 (4 years ago)
- Location:
- trunk
- Files:
-
- 2 modified
-
lib/Data/ObjectDriver/SQL.pm (modified) (1 diff)
-
t/11-sql.t (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Data/ObjectDriver/SQL.pm
r99 r101 84 84 if (ref($val) eq 'ARRAY') { 85 85 my $logic = 'OR'; 86 my @val = @$val; 86 87 if ($val->[0] eq '-and') { 87 88 $logic = 'AND'; 88 shift @ $val;89 shift @val; 89 90 } 90 91 my @terms; 91 for my $val (@ $val) {92 for my $val (@val) { 92 93 my($term, $bind) = $stmt->_mk_term($col, $val); 93 94 push @terms, $term; -
trunk/t/11-sql.t
r86 r101 4 4 5 5 use Data::ObjectDriver::SQL; 6 use Test::More tests => 49;6 use Test::More tests => 51; 7 7 8 8 my $stmt = ns(); … … 128 128 is($stmt->bind->[2], 'baz'); 129 129 130 ## regression bug. modified parameters 131 my %terms = ( foo => [-and => 'foo', 'bar', 'baz']); 132 $stmt = ns(); 133 $stmt->add_where(%terms); 134 is($stmt->as_sql_where, "WHERE (foo = ? AND foo = ? AND foo = ?)\n"); 135 $stmt->add_where(%terms); 136 is($stmt->as_sql_where, "WHERE (foo = ? AND foo = ? AND foo = ?) AND (foo = ? AND foo = ? AND foo = ?)\n"); 137 130 138 $stmt = ns(); 131 139 $stmt->add_select(foo => 'foo');
