Thread: UPDATE ... CURRENT OF cursorname

UPDATE ... CURRENT OF cursorname

From
"Richard Broersma"
Date:
I looking for an explination of how named cursor updates actually
work.  For example from the following link:
http://java.sun.com/javase/6/docs/technotes/guides/jdbc/getstart/resultset.html


the code seems to imply that all rows from a name cursor will be update.

...
stmt.setCursorName("x");
ResultSet rs = stmt.executeQuery(
        "SELECT . . . FROM . . . WHERE . . . FOR UPDATE . . .")
String cursorName = rs.getCursorName;
int updateCount = stmt2.executeUpdate(
        "UPDATE . . . WHERE CURRENT OF " + cursorName);
...

However from the postgresql manual, the verbase seems to indicate that
only the record currently pointed to in the cursor is updated.
http://www.postgresql.org/docs/8.3/interactive/sql-update.html

...
cursor_name
The name of the cursor to use in a WHERE CURRENT OF condition. The
->row<-  to be updated is the one most recently fetched from this
cursor.
...

--
Regards,
Richard Broersma Jr.

Visit the Los Angeles PostgreSQL Users Group (LAPUG)
http://pugs.postgresql.org/lapug

Re: UPDATE ... CURRENT OF cursorname

From
Oliver Jowett
Date:
Richard Broersma wrote:

> stmt.setCursorName("x");

The postgresql JDBC driver does not support positioned updates (as the
metadata will tell you), and setCursorName() is completely ignored.

-O

Re: UPDATE ... CURRENT OF cursorname

From
"Richard Broersma"
Date:
On Mon, Sep 1, 2008 at 3:21 PM, Oliver Jowett <oliver@opencloud.com> wrote:
> Richard Broersma wrote:
>
>> stmt.setCursorName("x");
>
> The postgresql JDBC driver does not support positioned updates (as the
> metadata will tell you), and setCursorName() is completely ignored.

Thanks!, since I am only in the learning/reading stage, I hadn't
performed any tests.  However, if the feature were to be added some
the future, what would the attended affect be?


--
Regards,
Richard Broersma Jr.

Visit the Los Angeles PostgreSQL Users Group (LAPUG)
http://pugs.postgresql.org/lapug

Re: UPDATE ... CURRENT OF cursorname

From
Oliver Jowett
Date:
Richard Broersma wrote:
> On Mon, Sep 1, 2008 at 3:21 PM, Oliver Jowett <oliver@opencloud.com> wrote:
>> Richard Broersma wrote:
>>
>>> stmt.setCursorName("x");
>> The postgresql JDBC driver does not support positioned updates (as the
>> metadata will tell you), and setCursorName() is completely ignored.
>
> Thanks!, since I am only in the learning/reading stage, I hadn't
> performed any tests.  However, if the feature were to be added some
> the future, what would the attended affect be?

Well, frankly, I doubt it will be added in the future, because the
driver does not map resultset operations directly to cursor operations
on the server.

-O