+ my @query;
+ if (ref($opt{query}) eq 'HASH') {
+ @query = ( $opt{query} );
+
+ if ( $order_by ) {
+ if ( $opt{query}->{'order_by'} ) {
+ if ( $opt{query}->{'order_by'} =~ /^(\s*ORDER\s+BY\s+)?(\S.*)$/is ) {
+ $opt{query}->{'order_by'} = "ORDER BY $order_by, $2";
+ } else {
+ warn "unparsable query order_by: ". $opt{query}->{'order_by'};
+ die "unparsable query order_by: ". $opt{query}->{'order_by'};
+ }
+ } else {
+ $opt{query}->{'order_by'} = "ORDER BY $order_by";
+ }
+ }
+
+ } elsif (ref($opt{query}) eq 'ARRAY') {
+ @query = @{ $opt{query} };
+ } else {
+ die "invalid query reference";
+ }
+