Kovacs Baldvin wrote:
> 
> Hi!
> 
> I would like to ask you, the developers about the following
> question.
> 
> Because I wanted to know after issuing a MOVE, that how many
> steps did really happen, I made a patch, and now the backend
> not only replies "MOVE" but "MOVE XXX", where XXX is the
> number of steps. It needed only a few new lines (3 or 4 :-)
> 
> Now the question is: should I use this solution,or should
> I use an other? Is it possible that others are also interested
> about this?

At least I would need it. I was myself contemplating adding a 
function that would tell me how many rows a select returned 
(without actually retrieving all of them) and this seems to 
cover it nicely

so I could do:

BEGIN;
DECLARE mycursor SCROLL cursor for SELECT * from t;
MOVE 2000000000 IN mycursor;
<parse out the real move into X>;
MOVE -(X+1) IN mycursor;
<do what I need>;
END;

> Is it possible, that including this into the
> source would be wrong, because some standards say "Say only
> move, but don't tell how many rows you really moved?"

I could not find _any_ MOVE command in ansi-iso-9075-2-1999.txt
so even our MOVE syntax is probably non-standard:

So seems to be our FETCH, as standard defines it as:

         <fetch statement> ::=
              FETCH [ [ <fetch orientation> ] FROM ]
                <cursor name> INTO <fetch target list>

         <fetch orientation> ::=
                NEXT
              | PRIOR
              | FIRST
              | LAST
              | { ABSOLUTE | RELATIVE } <simple value specification>

         <fetch target list> ::=
              <target specification> [ { <comma> <target specification>
}... ]

and this must be done after "OPEN cursorname";

----------------
Hannu

Reply via email to