[Bast-commits] r6029 - in SQL-Abstract/1.x/trunk: lib/SQL t
ribasushi at dev.catalyst.perl.org
ribasushi at dev.catalyst.perl.org
Wed Apr 29 22:49:12 GMT 2009
Author: ribasushi
Date: 2009-04-29 23:49:12 +0100 (Wed, 29 Apr 2009)
New Revision: 6029
Modified:
SQL-Abstract/1.x/trunk/lib/SQL/Abstract.pm
SQL-Abstract/1.x/trunk/t/04modifiers.t
Log:
Make sure hash key sorting is maintained throughout SQLA
Adjust tests accordingly
Modified: SQL-Abstract/1.x/trunk/lib/SQL/Abstract.pm
===================================================================
--- SQL-Abstract/1.x/trunk/lib/SQL/Abstract.pm 2009-04-29 20:28:10 UTC (rev 6028)
+++ SQL-Abstract/1.x/trunk/lib/SQL/Abstract.pm 2009-04-29 22:49:12 UTC (rev 6029)
@@ -422,7 +422,6 @@
my ($self, $where) = @_;
my (@sql_clauses, @all_bind);
- # LDNOTE : don't really know why we need to sort keys
for my $k (sort keys %$where) {
my $v = $where->{$k};
@@ -463,7 +462,7 @@
HASHREF => sub {
if ($op eq 'OR') {
- return $self->_where_ARRAYREF([%$v], 'OR');
+ return $self->_where_ARRAYREF([ map { $_ => $v->{$_} } (sort keys %$v) ], 'OR');
}
else { # NEST | AND
return $self->_where_HASHREF($v);
Modified: SQL-Abstract/1.x/trunk/t/04modifiers.t
===================================================================
--- SQL-Abstract/1.x/trunk/t/04modifiers.t 2009-04-29 20:28:10 UTC (rev 6028)
+++ SQL-Abstract/1.x/trunk/t/04modifiers.t 2009-04-29 22:49:12 UTC (rev 6029)
@@ -176,8 +176,8 @@
{
where => { -and => [a => 1, b => 2, k => [11, 12] ], x => 9, -or => { c => 3, d => 4, l => { '=' => [21, 22] } } },
- stmt => 'WHERE a = ? AND b = ? AND (k = ? OR k = ?) AND ((l = ? OR l = ?) OR c = ? OR d = ? ) AND x = ?',
- bind => [qw/1 2 11 12 21 22 3 4 9/],
+ stmt => 'WHERE a = ? AND b = ? AND (k = ? OR k = ?) AND (c = ? OR d = ? OR (l = ? OR l = ?) ) AND x = ?',
+ bind => [qw/1 2 11 12 3 4 21 22 9/],
},
{
@@ -196,8 +196,8 @@
# explicit OR logic in arrays should leave everything intact
args => { logic => 'or' },
where => { -and => [a => 1, b => 2, k => [11, 12] ], x => 9, -or => { c => 3, d => 4, l => { '=' => [21, 22] } } },
- stmt => 'WHERE a = ? AND b = ? AND (k = ? OR k = ?) AND ( l = ? OR l = ? OR c = ? OR d = ? ) AND x = ? ',
- bind => [qw/1 2 11 12 21 22 3 4 9/],
+ stmt => 'WHERE a = ? AND b = ? AND (k = ? OR k = ?) AND ( c = ? OR d = ? OR l = ? OR l = ? ) AND x = ? ',
+ bind => [qw/1 2 11 12 3 4 21 22 9/],
},
{
@@ -361,8 +361,8 @@
},
{
where => {a => 1, -nest => {-or => {b => 2, c => 3}}},
- stmt => 'WHERE ( ( (c = ? OR b = ?) AND a = ? ) )',
- bind => [qw/3 2 1/],
+ stmt => 'WHERE ( ( (b = ? OR c = ?) AND a = ? ) )',
+ bind => [qw/2 3 1/],
},
{
where => [a => 1, -nest => {b => 2, c => 3}, -nest => [d => 4, e => 5]],
More information about the Bast-commits
mailing list