Re: getUdateCount() vs. RETURNING clause

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: getUdateCount() vs. RETURNING clause
Date: 2009-11-25 11:53:17
Message-ID: hej5r1$aqs$1@ger.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Oliver Jowett, 25.11.2009 12:13:
>
> You've done some selective editing there. The javadoc I referred to is
> this (from the Java 6 javadoc):
>
> getResultSet():
>
> Retrieves the current result as a ResultSet object. This method should
> be called only once per result.

Correct, once per *result* not per statement. If the statement returns more than one result, I should be allowed to call it multiple time.

I think the base of my (mis)understanding is that the term "current" lead me to believe that the "stack" of results a statement can hold, could look like this:

resultSet
update count = 3
update count = 2
resultSet
reslutSet

So if I create a loop using the condition stated in the Javadocs the program flow would be as follows:

1) stmt.execute() returns true, so I call getResultSet()
2) getMoreResults() returns false, but getUpdateCount() returns 3 ==> go on
3) getMoreResults() returns false, but getUpdateCount() returns 2 ==> go on
4) getMoreResults() returns true, so getResultSet() returns a result set ==> go on
5) getMoreResults() returns true, so getResultSet() returns a result set ==> go on
6) getMoreResults() returns false, getUpdateCount() returns -1 ==> everything was processed.

Apparently this interpretation of "current", "next" and "once per _result_" was wrong...

Regards
Thomas

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Oliver Jowett 2009-11-25 12:16:20 Re: getUdateCount() vs. RETURNING clause
Previous Message Oliver Jowett 2009-11-25 11:13:40 Re: getUdateCount() vs. RETURNING clause