Thanks!

Tim.

On Mon, Sep 03, 2001 at 01:06:23PM +0100, [EMAIL PROTECTED] wrote:
> I think this could be considered a bug in DBD::AdabasD or in the proxy
> server code.
> 
> DBI::ProxyServer::st::fetch() calls fetchall_arrayref().  This can
> cause and infinite recursion and indeed does so with DBD::AdabasD.
> 
> Fix is trivial, and for consistancy I also modifed table info to use
> SUPER::fetch() rather than fetchall_arrayref().
> 
> BTW: Is this the right place to post bugfixes?
> 
> *** ProxyServer.pm
> --- ProxyServer.pm
> ***************
> *** 289,295 ****
>       # DBI::st and not DBI::ProxyServer::st. We could fix this by permitting
>       # the client to execute method DBI::st, but I don't like this.
>       my @rows;
> !     while (my $row = $sth->fetchrow_arrayref()) {
>       push(@rows, [@$row]);
>       }
>       ($numFields, $names, $types, @rows);
> --- 289,295 ----
>       # DBI::st and not DBI::ProxyServer::st. We could fix this by permitting
>       # the client to execute method DBI::st, but I don't like this.
>       my @rows;
> !     while (my $row = $sth->SUPER::fetch()) {
>       push(@rows, [@$row]);
>       }
>       ($numFields, $names, $types, @rows);
> ***************
> *** 330,336 ****
>   sub fetch {
>       my $sth = shift; my $numRows = shift || 1;
>       my($ref, @rows);
> !     while ($numRows--  &&  ($ref = $sth->fetchrow_arrayref())) {
>       push(@rows, [@$ref]);
>       }
>       @rows;
> --- 330,336 ----
>   sub fetch {
>       my $sth = shift; my $numRows = shift || 1;
>       my($ref, @rows);
> !     while ($numRows--  &&  ($ref = $sth->SUPER::fetch())) {
>       push(@rows, [@$ref]);
>       }
>       @rows;
> 
> -- 
>      \\   ( )
>   .  _\\__[oo
>  .__/  \\ /\@
>  .  l___\\
>   # ll  l\\
>  ###LL  LL\\

Reply via email to