| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
package DBIx::Custom; |
| 2 | 2 |
|
| 3 |
-our $VERSION = '0.1666'; |
|
| 3 |
+our $VERSION = '0.1667'; |
|
| 4 | 4 |
|
| 5 | 5 |
use 5.008001; |
| 6 | 6 |
use strict; |
| ... | ... |
@@ -783,8 +783,7 @@ sub register_filter {
|
| 783 | 783 |
sub register_tag { shift->query_builder->register_tag(@_) }
|
| 784 | 784 |
|
| 785 | 785 |
our %SELECT_ARGS |
| 786 |
- = map { $_ => 1 } @COMMON_ARGS, qw/column where append relation
|
|
| 787 |
- selection join/; |
|
| 786 |
+ = map { $_ => 1 } @COMMON_ARGS, qw/column where append relation join/;
|
|
| 788 | 787 |
|
| 789 | 788 |
sub select {
|
| 790 | 789 |
my ($self, %args) = @_; |
| ... | ... |
@@ -801,7 +800,6 @@ sub select {
|
| 801 | 800 |
: defined $table ? [$table] |
| 802 | 801 |
: []; |
| 803 | 802 |
my $columns = delete $args{column};
|
| 804 |
- my $selection = delete $args{selection} || '';
|
|
| 805 | 803 |
my $where = delete $args{where} || {};
|
| 806 | 804 |
my $append = delete $args{append};
|
| 807 | 805 |
my $join = delete $args{join} || [];
|
| ... | ... |
@@ -816,17 +814,7 @@ sub select {
|
| 816 | 814 |
my @sql; |
| 817 | 815 |
push @sql, 'select'; |
| 818 | 816 |
|
| 819 |
- # Selection |
|
| 820 |
- if ($selection) {
|
|
| 821 |
- push @sql, $selection; |
|
| 822 |
- if ($selection =~ /from\s+(?:\{table\s+)?([^\s\{]+?)\b/) {
|
|
| 823 |
- unshift @$tables, $1; |
|
| 824 |
- } |
|
| 825 |
- unshift @$tables, @{$self->_tables($selection)};
|
|
| 826 |
- } |
|
| 827 |
- |
|
| 828 |
- # Column clause |
|
| 829 |
- elsif ($columns) {
|
|
| 817 |
+ if ($columns) {
|
|
| 830 | 818 |
|
| 831 | 819 |
$columns = [$columns] if ! ref $columns; |
| 832 | 820 |
|
| ... | ... |
@@ -884,21 +872,19 @@ sub select {
|
| 884 | 872 |
else { push @sql, '*' }
|
| 885 | 873 |
|
| 886 | 874 |
# Table |
| 887 |
- unless ($selection) {
|
|
| 888 |
- push @sql, 'from'; |
|
| 889 |
- if ($relation) {
|
|
| 890 |
- my $found = {};
|
|
| 891 |
- foreach my $table (@$tables) {
|
|
| 892 |
- push @sql, ($table, ',') unless $found->{$table};
|
|
| 893 |
- $found->{$table} = 1;
|
|
| 894 |
- } |
|
| 895 |
- } |
|
| 896 |
- else {
|
|
| 897 |
- my $main_table = $tables->[-1] || ''; |
|
| 898 |
- push @sql, $main_table; |
|
| 875 |
+ push @sql, 'from'; |
|
| 876 |
+ if ($relation) {
|
|
| 877 |
+ my $found = {};
|
|
| 878 |
+ foreach my $table (@$tables) {
|
|
| 879 |
+ push @sql, ($table, ',') unless $found->{$table};
|
|
| 880 |
+ $found->{$table} = 1;
|
|
| 899 | 881 |
} |
| 900 |
- pop @sql if ($sql[-1] || '') eq ','; |
|
| 901 | 882 |
} |
| 883 |
+ else {
|
|
| 884 |
+ my $main_table = $tables->[-1] || ''; |
|
| 885 |
+ push @sql, $main_table; |
|
| 886 |
+ } |
|
| 887 |
+ pop @sql if ($sql[-1] || '') eq ','; |
|
| 902 | 888 |
|
| 903 | 889 |
# Main table |
| 904 | 890 |
croak "Not found table name" unless $tables->[-1]; |
| ... | ... |
@@ -1340,13 +1340,6 @@ $result = $dbi->select( |
| 1340 | 1340 |
); |
| 1341 | 1341 |
is($result->fetch_first->[0], 'B'); |
| 1342 | 1342 |
|
| 1343 |
-test 'selection'; |
|
| 1344 |
-$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 1345 |
-$dbi->execute($CREATE_TABLE->{0});
|
|
| 1346 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2});
|
|
| 1347 |
-$result = $dbi->select(selection => '* from {table table1}', where => {key1 => 1});
|
|
| 1348 |
-is_deeply($result->fetch_hash_all, [{key1 => 1, key2 => 2}]);
|
|
| 1349 |
- |
|
| 1350 | 1343 |
test 'Model class'; |
| 1351 | 1344 |
use MyDBI1; |
| 1352 | 1345 |
$dbi = MyDBI1->connect($NEW_ARGS->{0});
|