Changeset 1881
- Timestamp:
- 04/14/08 06:16:02 (22 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/release-34/lib/MT/ObjectDriver/Driver/DBI.pm
r1873 r1881 122 122 my ($agg_func, $class, $terms, $args) = @_; 123 123 my $props = $class->properties; 124 if ($props->{class_type}) {125 my $class_col = $props->{class_column};126 unless ($terms->{$class_col}) {127 $terms->{$class_col} = $class->class_type;128 }129 }130 124 if ($args->{no_class}) { 131 125 delete $terms->{$props->{class_column}}; 132 126 delete $args->{no_class}; 127 } 128 else { 129 $class->pre_search_scope_terms_to_class( $terms, $args ); 133 130 } 134 131 my $order = delete $args->{sort}; … … 159 156 ## Ugly. 160 157 my $sql = $stmt->as_sql; 158 159 ## Set statement's ORDER clause if any. 161 160 if ($order) { 162 $sql .= "\nORDER BY " . $decorate->($order); 163 if ($direction) { 164 $sql .= $direction eq 'descend' ? ' DESC' : ' ASC'; 161 if (! ref($order)) { 162 $sql .= "\nORDER BY " . $decorate->($order); 163 if ($direction) { 164 $sql .= $direction eq 'descend' ? ' DESC' : ' ASC'; 165 } 166 } else { 167 my @order; 168 foreach my $ord (@$order) { 169 push @order, { 170 column => $decorate->($ord->{column}), 171 desc => $ord->{desc}, 172 }; 173 } 174 $stmt->order(\@order); 175 $sql .= "\n" . $stmt->as_aggregate('order'); 165 176 } 166 177 } … … 168 179 my $dbh = $driver->r_handle; 169 180 $driver->start_query($sql, $stmt->bind); 170 my $sth = $dbh->prepare_cached($sql) or die $sql;171 $sth->execute(@{ $stmt->bind }) or die $sql;181 my $sth = $dbh->prepare_cached($sql); 182 $sth->execute(@{ $stmt->bind }); 172 183 173 184 my @bindvars;
