Rather than open coding it.
Also remove all statement->finish calls, they are almost never required.
$row = $args{Fields};
}
elsif ( $args{ID} ) {
- my $sth = $dbh->prepare( "
+ $row = $dbh->selectrow_arrayref( "
SELECT $SELECT_FIELDS FROM bugs WHERE bug_id = ?
- " );
- $sth->execute( $args{ID} ) or die "Failed to lookup bug";
- $row = $sth->fetchrow_arrayref;
+ ", {}, $args{ID} );
return undef unless $row;
- $sth->finish;
}
else { die "Emesinae::Bug->new needs ID or Fields"; }
WHERE bug_id = ?
" );
$sth->execute( $value, $self->{id} ) or die "Setting $field";
- $sth->finish;
$self->{$field} = $value;
}
sub _lookup_tag($$$) {
my ( $self, $ns, $tag ) = @_;
- my $sth = $self->{dbh}->prepare( "
+ my $row = $self->{dbh}->selectrow_arrayref( "
SELECT tag_id
FROM tags
WHERE namespace = ?
AND name = ?
- " );
- $sth->execute( $ns, $tag ) or die "Unable to find tag $ns:$tag";
- my $row = $sth->fetchrow_arrayref;
- $row or die "Unable to find tag $ns:$tag";
- $sth->finish;
+ ", {}, $ns, $tag ) || die "Unable to find tag $ns:$tag";
return $row->[0];
}
$sth->execute( $self->{id}, $tag_id )
or die "Setting tag $ns:$tag on Bug #" . $self->{id};
$sth->rows == 1 or die "Failed to set tag $ns:$tag on Bug #" . $self->{id};
-
- $sth->finish;
}
sub clear_tag($$$) {
" );
$sth->execute( $self->{id}, $tag_id )
or die "Clearing tag $ns:$tag on Bug #" . $self->{id};
-
- $sth->finish;
}
sub tags($$) {
my ( $self, $ns ) = @_;
- my $sth = $self->{dbh}->prepare( "
+ my $tref = $self->{dbh}->selectall_arrayref( "
SELECT tags.name
FROM tags,bug2tag
WHERE tags.tag_id == bug2tag.tag_id
AND tags.namespace == ?
AND bug2tag.bug_id == ?
- " );
- $sth->execute( $ns, $self->{id} )
- or die "Listing $ns tags on Bug #" . $self->{id};
+ ", {}, $ns, $self->{id} ) || die "Listing $ns tags on Bug #" . $self->{id};
- # An array ref (rows) of array refs (columns)
- my $tref = $sth->fetchall_arrayref();
- $sth->finish;
return map { $_->[0] } @{$tref};
}
$sth->execute( $open ? "true" : "false", $self->{id} )
or die "Failed to set status";
- $sth->finish;
$self->{open} = $open;
}
$sth->execute( $add ? "true" : "false", $self->{id}, $m->{id} )
or die "Failed to insert";
- $sth->finish;
}
sub add_subthread {
sub list_tags($$) {
my ( $dbh, $ns ) = @_;
- my $sth = $dbh->prepare( "
+ my $tags = $dbh->selectall_arrayref( "
SELECT name,active,advanced
FROM tags
WHERE namespace = ?
ORDER BY sort_order DESC
- " );
- $sth->execute($ns) or die "Unable to obtain list of tags in namesapce $ns";
+ ", { Slice => {} }, $ns )
+ || die "Unable to obtain list of tags in namespace $ns";
- # Gets an array ref of hash refs.
- my $tags = $sth->fetchall_arrayref( {} );
-
- $sth->finish;
return @{$tags};
}
my $dbh = shift;
my $id = shift;
- my $sth = $dbh->prepare(
+ my $row = $dbh->selectrow_arrayref(
q{
SELECT msgid_hdr_raw,present,inserttime,msgtype,msgdate_hdr_raw,msgfrom_hdr_raw,msgto_hdr_raw,msgcc_hdr_raw,subject_hdr_raw
FROM messages
WHERE message_id = ?
- }
+ }, {}, $id
);
- $sth->execute($id);
-
- my $row = $sth->fetch;
-
return undef unless defined $row;
my ( $msgid, $present, $inserted, $msgtype, $date, $from, $to, $cc, $subj )
= @{$row};
- $sth->finish;
-
my $self = {
dbh => $dbh,
present => $present eq "true",
$args{Insert} = 0 unless exists $args{Insert};
- my $sth = $dbh->prepare(
+ my $row = $dbh->selectrow_arrayref(
q{
SELECT message_id,present,inserttime,msgtype,msgdate_hdr_raw,msgfrom_hdr_raw,msgto_hdr_raw,msgcc_hdr_raw,subject_hdr_raw
FROM messages
WHERE msgid_hdr_raw = ?
- }
+ }, {}, $msgid
);
- $sth->execute($msgid);
-
- my $row = $sth->fetch;
-
- $sth->finish;
-
my ( $id, $present, $inserted, $msgtype, $date, $from, $to, $cc, $subj );
if ( defined $row ) {
( $id, $present, $inserted, $msgtype, $date, $from, $to, $cc, $subj ) =
WHERE message_id = ?1}
) or die "prepare type update";
$sth->execute( $self->{id}, $type ) or die "execute type update";
- $sth->finish or die "finish type update";
$self->{msgtype} = $type;
}
$to ? $to->stringify : undef,
$cc ? $cc->stringify : undef
) or die "execute update";
- $sth->finish or die "finish update";
my $irt = $header->get('in-reply-to');
if ( defined $irt ) {
default.
- Refactor email addresses into their own table and create references instead
of inlining into the record. Should enable better searching.
- - Use Perl DBI select_* interface instead of prepare/executre/fetch/finish
documentation:
- have some