Showing 3 changed files with 24 additions and 2 deletions
+2
Changes
... ...
@@ -1,4 +1,6 @@
1 1
 0.2101
2
+    - select method can receive odd number argument. In that case first argument
3
+      is column option.
2 4
     - fixed update_or_insert bug that when parameter don't contain any key-value
3 5
       this method throw exception.
4 6
 0.2100
+10 -2
lib/DBIx/Custom.pm
... ...
@@ -892,7 +892,10 @@ sub register_filter {
892 892
 }
893 893
 
894 894
 sub select {
895
-    my ($self, %opt) = @_;
895
+    my $self = shift;
896
+    my $column = shift if @_ % 2;
897
+    my %opt = @_;
898
+    $opt{column} = $column if defined $column;
896 899
 
897 900
     # Options
898 901
     my $tables = ref $opt{table} eq 'ARRAY' ? $opt{table}
... ...
@@ -2955,13 +2958,18 @@ Register filters, used by C<filter> option of many methods.
2955 2958
 =head2 C<select>
2956 2959
 
2957 2960
     my $result = $dbi->select(
2958
-        table  => 'book',
2959 2961
         column => ['author', 'title'],
2962
+        table  => 'book',
2960 2963
         where  => {author => 'Ken'},
2961 2964
     );
2962 2965
     
2963 2966
 Execute select statement.
2964 2967
 
2968
+You can pass odd number arguments. first argument is C<column>.
2969
+This is EXPERIMENTAL.
2970
+
2971
+    my $result = $dbi->select(['author', 'title'], table => 'book');
2972
+
2965 2973
 B<OPTIONS>
2966 2974
 
2967 2975
 C<select> method use all of C<execute> method's options,
+12
t/common.t
... ...
@@ -267,6 +267,12 @@ $model = $dbi->create_model(table => $table1);
267 267
 $model->insert({$key1 => 1, $key2 => 2});
268 268
 is_deeply($model->select->all, [{$key1 => 1, $key2 => 2}]);
269 269
 
270
+eval { $dbi->execute("drop table $table1") };
271
+$dbi->execute($create_table1);
272
+$model = $dbi->create_model(table => $table1);
273
+$model->insert({$key1 => 1, $key2 => 2});
274
+is_deeply($model->select($key1)->all, [{$key1 => 1}]);
275
+
270 276
 test 'DBIx::Custom::Result test';
271 277
 $dbi->delete_all(table => $table1);
272 278
 $dbi->insert({$key1 => 1, $key2 => 2}, table => $table1);
... ...
@@ -1121,6 +1127,12 @@ $result = $dbi->select(table => 'table', where => {select => 1});
1121 1127
 $rows   = $result->all;
1122 1128
 is_deeply($rows, [{select => 2, update => 2}], "reserved word");
1123 1129
 
1130
+eval { $dbi->execute("drop table $table1") };
1131
+$dbi->execute($create_table1);
1132
+$dbi->insert({$key1 => 1, $key2 => 2}, table => $table1);
1133
+$row = $dbi->select($key1, table => $table1)->one;
1134
+is_deeply($row, {$key1 => 1});
1135
+
1124 1136
 test 'fetch filter';
1125 1137
 eval { $dbi->execute("drop table $table1") };
1126 1138
 $dbi->register_filter(