this isn't tested -- i'm writing it here in e-mail -- but it or something
very close to it might work. supporting prepare_cached or other forms of
sth reuse could require a way to clear the flag.
package DBIx::WrapActive;
our $AUTOLOAD;
### invoke like $sth = DBIx::WrapActive::wrap($sth);
sub wrap{ bless [$_[0], 0 ] };
sub active { $_[0]->[1] and $_[0]->active }
sub execute {
my $obj = shift;
$obj->[1] = 1;
$obj->[0]->execute(@_);
}
sub AUTOLOAD{
my ($method) = $AUTOLOAD =~ m/::([^:]+)$/;
*{$AUTOLOAD} = sub {
my $obj = shift;
$obj->[0]->$method(@_);
};
goto &$AUTOLOAD;
};