... | ... |
@@ -604,11 +604,11 @@ sub select { |
604 | 604 |
|
605 | 605 |
my $columns = ref $_[0] eq 'ARRAY' ? shift : []; |
606 | 606 |
my $where_params = ref $_[0] eq 'HASH' ? shift : {}; |
607 |
- my $append_statement = shift unless ref $_[0] || ''; |
|
607 |
+ my $append_statement = $_[0] && !ref $_[0] ? shift : ''; |
|
608 | 608 |
my $query_edit_cb = shift if ref $_[0] eq 'CODE'; |
609 | 609 |
|
610 | 610 |
# Check rest argument |
611 |
- croak($self->_select_usage) unless @_; |
|
611 |
+ croak($self->_select_usage) if @_; |
|
612 | 612 |
|
613 | 613 |
# SQL template for select statement |
614 | 614 |
my $template = 'select '; |
... | ... |
@@ -618,13 +618,14 @@ sub select { |
618 | 618 |
foreach my $column (@$columns) { |
619 | 619 |
$template .= "$column, "; |
620 | 620 |
} |
621 |
- $template .= s/, $/ /; |
|
621 |
+ $template =~ s/, $/ /; |
|
622 | 622 |
} |
623 | 623 |
else { |
624 | 624 |
$template .= '* '; |
625 | 625 |
} |
626 | 626 |
|
627 | 627 |
# Join table |
628 |
+ $template .= 'from '; |
|
628 | 629 |
foreach my $table (@$tables) { |
629 | 630 |
$template .= "$table, "; |
630 | 631 |
} |
... | ... |
@@ -632,8 +632,15 @@ $dbi = DBI::Custom->new($NEW_ARGS->{0}); |
632 | 632 |
$dbi->do($CREATE_TABLE->{0}); |
633 | 633 |
$dbi->insert('table1', {key1 => 1, key2 => 2}); |
634 | 634 |
$dbi->insert('table1', {key1 => 3, key2 => 4}); |
635 |
- |
|
636 |
-$rows = $dbi->select('table1')->fetch_hash_all; |
|
635 |
+$rows = $dbi->select('table1')->fetch_all_hash; |
|
637 | 636 |
is_deeply($rows, [{key1 => 1, key2 => 2}, |
638 | 637 |
{key1 => 3, key2 => 4}], "$test : table"); |
639 | 638 |
|
639 |
+$rows = $dbi->select('table1', ['key1'])->fetch_all_hash; |
|
640 |
+is_deeply($rows, [{key1 => 1}, {key1 => 3}], "$test : table and columns and where key"); |
|
641 |
+ |
|
642 |
+$rows = $dbi->select('table1', {key1 => 1})->fetch_all_hash; |
|
643 |
+is_deeply($rows, [{key1 => 1, key2 => 2}], "$test : table and columns and where key"); |
|
644 |
+ |
|
645 |
+$rows = $dbi->select('table1', ['key1'], {key1 => 3})->fetch_all_hash; |
|
646 |
+is_deeply($rows, [{key1 => 3}], "$test : table and columns and where key"); |