Showing 3 changed files with 15 additions and 3 deletions
+1
Changes
... ...
@@ -1,6 +1,7 @@
1 1
 0.1687
2 2
     - added EXPERIMENTAL type_rule method
3 3
     - added EXPERIMENTAL execute() type_rule_off option
4
+    - execute method can second argument as parameter
4 5
 0.1686
5 6
     - select() column option can receive array reference in array.
6 7
       This is EXPERIMENTAL
+8 -3
lib/DBIx/Custom.pm
... ...
@@ -427,10 +427,15 @@ sub each_column {
427 427
 our %EXECUTE_ARGS = map { $_ => 1 } @COMMON_ARGS, 'param';
428 428
 
429 429
 sub execute {
430
-    my ($self, $query, %args)  = @_;
430
+    my $self = shift;
431
+    my $query = shift;
432
+    my $param;
433
+    $param = shift if @_ % 2;
434
+    my %args = @_;
431 435
     
432 436
     # Arguments
433
-    my $param  = delete $args{param} || {};
437
+    my $p = delete $args{param} || {};
438
+    $param ||= $p;
434 439
     my $tables = delete $args{table} || [];
435 440
     $tables = [$tables] unless ref $tables eq 'ARRAY';
436 441
     my $filter = delete $args{filter};
... ...
@@ -1977,7 +1982,7 @@ column name and column information.
1977 1982
 
1978 1983
     my $result = $dbi->execute(
1979 1984
         "select * from book where title = :title and author like :author",
1980
-        param => {title => 'Perl', author => '%Ken%'}
1985
+        {title => 'Perl', author => '%Ken%'}
1981 1986
     );
1982 1987
 
1983 1988
 Execute SQL, containing tags.
+6
t/dbix-custom-core-sqlite.t
... ...
@@ -163,6 +163,12 @@ $result = $dbi->execute($query, param => {key1 => 1, key2 => 3, key3 => 4, key4
163 163
 $rows = $result->fetch_hash_all;
164 164
 is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "basic tag1");
165 165
 
166
+$source = "select * from table1 where {= key1} and {<> key2} and {< key3} and {> key4} and {>= key5};";
167
+$query = $dbi->create_query($source);
168
+$result = $dbi->execute($query, {key1 => 1, key2 => 3, key3 => 4, key4 => 3, key5 => 5});
169
+$rows = $result->fetch_hash_all;
170
+is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "basic tag1");
171
+
166 172
 $source = "select * from table1 where {<= key1} and {like key2};";
167 173
 $query = $dbi->create_query($source);
168 174
 $result = $dbi->execute($query, param => {key1 => 1, key2 => '%2%'});