Showing 3 changed files with 28 additions and 4 deletions
+1
Changes
... ...
@@ -1,4 +1,5 @@
1 1
 0.1701
2
+    - added EXPERIMENTAL DBIx::Custom::Result header method
2 3
     - added EXPERIMENTAL last_sql attribute method
3 4
 0.1700
4 5
     - fixed end_filter DEPRECATED warnings bug
+16 -4
lib/DBIx/Custom/Result.pm
... ...
@@ -54,13 +54,15 @@ sub filter_on {
54 54
 sub fetch {
55 55
     my $self = shift;
56 56
     
57
+    # Info
58
+    my $columns = $self->{sth}->{NAME};
59
+    my $types = $self->{sth}->{TYPE};
60
+    
57 61
     # Fetch
58 62
     my @row = $self->{sth}->fetchrow_array;
59 63
     return unless @row;
60 64
     
61 65
     # Filtering
62
-    my $columns = $self->{sth}->{NAME};
63
-    my $types = $self->{sth}->{TYPE};
64 66
     my $type_rule1 = $self->type_rule->{from1} || {};
65 67
     my $type_rule2 = $self->type_rule->{from2} || {};
66 68
     my $filter = $self->filter;
... ...
@@ -117,6 +119,10 @@ sub fetch_first {
117 119
 sub fetch_hash {
118 120
     my $self = shift;
119 121
     
122
+    # Info
123
+    my $columns = $self->{sth}->{NAME};
124
+    my $types = $self->{sth}->{TYPE};
125
+    
120 126
     # Fetch
121 127
     my $row = $self->{sth}->fetchrow_arrayref;
122 128
     return unless $row;
... ...
@@ -125,8 +131,6 @@ sub fetch_hash {
125 131
     my $hash_row = {};
126 132
     my $filter  = $self->filter;
127 133
     my $end_filter = $self->{end_filter} || {};
128
-    my $columns = $self->{sth}->{NAME};
129
-    my $types = $self->{sth}->{TYPE};
130 134
     my $type_rule1 = $self->type_rule->{from1} || {};
131 135
     my $type_rule2 = $self->type_rule->{from2} || {};
132 136
     for (my $i = 0; $i < @$columns; $i++) {
... ...
@@ -215,6 +219,8 @@ sub fetch_multi {
215 219
     return $rows;
216 220
 }
217 221
 
222
+sub header { shift->sth->{NAME} }
223
+
218 224
 *one = \&fetch_hash_first;
219 225
 
220 226
 sub type_rule {
... ...
@@ -482,6 +488,12 @@ By default, filterin is on.
482 488
 Turn filtering by C<filter> method on.
483 489
 By default, filterin is on.
484 490
 
491
+=head2 C<header> EXPERIMENTAL
492
+
493
+    my $header = $result->header;
494
+
495
+Get header column names.
496
+
485 497
 =head2 C<one>
486 498
 
487 499
     my $row = $result->one;
+11
t/dbix-custom-core-sqlite.t
... ...
@@ -3327,4 +3327,15 @@ test 'last_sql';
3327 3327
     is($dbi->last_sql, 'aaa;');
3328 3328
     
3329 3329
 }
3330
+
3331
+test 'DBIx::Custom header';
3332
+{
3333
+    my $dbi = DBIx::Custom->connect(dsn => 'dbi:SQLite:dbname=:memory:');
3334
+    $dbi->execute("create table table1 (key1, key2)");
3335
+    my $result = $dbi->execute('select key1 as h1, key2 as h2 from table1');
3336
+    
3337
+    is_deeply($result->header, [qw/h1 h2/]);
3338
+    
3339
+}
3340
+
3330 3341
 =cut