Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c4c2f760

Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt

  • ID c4c2f760ece99afd4738c28ce17e635a4f24d102
  • Vorgänger 91aac6c6
  • Nachfolger 6e00b261

Eine Funktion zum tabellarischen Ausgeben von SQL-Ergebnissen (erwartet eine Referenz auf ein Array mit Hashreferenzen) hinzugefügt.

Unterschiede anzeigen:

SL/LXDebug.pm
143 143
  $self->message($level, "dumping ${name}:\n" . YAML::Dump($variable));
144 144
}
145 145

  
146
sub dump_sql_result {
147
  my ($self, $level, $prefix, $results) = @_;
148

  
149
  if (!$results || !scalar @{ $results }) {
150
    $self->message($level, "Empty result set");
151
    return;
152
  }
153

  
154
  my %column_lengths;
155
  my $first_row = 1;
156

  
157
  foreach my $row (@{ $results }) {
158
    if ($first_row) {
159
      map { $column_lengths{$_} = length $_ } keys %{ $row };
160
      $first_row = 0;
161
    }
162

  
163
    map { $column_lengths{$_} = length $row->{$_} if (length $row->{$_} > $column_lengths{$_}) } keys %{ $row };
164
  }
165

  
166
  my @sorted_names = sort keys %column_lengths;
167
  my $format       = join '|', map { '%' . $column_lengths{$_} . 's' } @sorted_names;
168

  
169
  $prefix  =~ s|\s*$||;
170
  $prefix .=  ' ' if $prefix;
171

  
172
  $self->message($level, $prefix . sprintf($format, @sorted_names));
173
  $self->message($level, $prefix . join('+', map { '-' x $column_lengths{$_} } @sorted_names));
174

  
175
  foreach my $row (@{ $results }) {
176
    $self->message($level, $prefix . sprintf($format, map { $row->{$_} } @sorted_names));
177
  }
178
  $self->message($level, $prefix . sprintf('(%d row%s)', scalar @{ $results }, scalar @{ $results } > 1 ? 's' : ''));
179
}
180

  
146 181
sub enable_sub_tracing {
147 182
  my ($self) = @_;
148 183
  $self->{level} | TRACE;

Auch abrufbar als: Unified diff