[DB-SIG] Remaining issues with DB API 1.1

Greg Stein gstein@lyra.org
Sun, 28 Mar 1999 06:19:30 -0800


M.-A. Lemburg wrote:
>...
> The updated spec now says:
> """
> fetchmany([size=cursor.arraysize])
>               Fetch the next set of rows of a query result, returning a
>               sequence of sequences (e.g. a list of tuples). An empty
>               sequence is returned when no more rows are available. The
>               number of rows to fetch is specified by the parameter. If it is not
>               given, the cursor's arraysize determines the number of rows to
>               be fetched.
> """

This is good, although we should probably elaborate a bit more: it is
possible that *fewer* than the requested number of rows (via the
parameter or cursor.arraysize) will be returned. Specifically, it will
almost always happen at the "end" of a query. IMO, it should also be
legal mid-query, but we don't need to explicitly state that. (although
we should be clear that returning fewer does *not* mean the
end-of-query... the only determining factor for that is an empty
sequence)

> > No need to specify in the spec exactly _what_ the default should
> > be - it seems sufficient to describe the behaviour - ie, "if not
> > specified", rather than "the default value is xxx"
> 
> Hmm, I don't quite follow you here. Why shouldn't the default
> be defined ? [After all, the 1.0 spec also defined the "default"
> to be cursor.arraysize.]

It should be defined. He's smoking something :-)  Your current text
looks good.

> If we were not to define the default value, then the definition
> of cursor.arraysize would be obsolete w/r to fetchmany():
> """
> arraysize
> ...
> """
> 
> Should we drop the reference to fetchmany() in the above definition ?

Nope.

Cheers,
-g

--
Greg Stein, http://www.lyra.org/