Thread: Updatable query and column aliases

Updatable query and column aliases

From
Anton Bobov
Date:
Hi folks.

I cant moveToInsertRow when use queries with assigned names in select
list.

Following code works good:

     stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                       ResultSet.CONCUR_UPDATABLE);
     rs = stmt.executeQuery("select id from test");
     rs.moveToInsertRow();

, but then I change query to "select id val from test" exception "The
column name id was not found in this ResultSet." raised on
moveToInsertRow.

Is it any limitation on updatable queries?

--
Anton


Re: Updatable query and column aliases

From
Stefan Reiser
Date:
Anton Bobov schrieb:
> Hi folks.
>
> I cant moveToInsertRow when use queries with assigned names in select
> list.
>
> Following code works good:
>
>     stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
>                                       ResultSet.CONCUR_UPDATABLE);
>     rs = stmt.executeQuery("select id from test");
>     rs.moveToInsertRow();
>
> , but then I change query to "select id val from test" exception "The
> column name id was not found in this ResultSet." raised on
> moveToInsertRow.
>
> Is it any limitation on updatable queries?
>
> --
> Anton
>
>
Hello Anton,

yes, the limitations are:
1) query must only use one table
2) no column aliases can be used

Point 2 is a bug which I have described here:
    http://archives.postgresql.org/pgsql-jdbc/2010-12/msg00084.php
and here:
    http://archives.postgresql.org/pgsql-jdbc/2011-08/msg00077.php

The patch mentioned above does not work anymore since some things have
changed in later versions of the driver.

Here is a patch for version 9.0.801 (the only file that has to be
changed is "AbstractJdbc2ResultSet").


http://home.arcor.de/stefanreiser/docs/postgresql/9.0.801/AbstractJdbc2ResultSet.java

... sorry, I'm not familiar with the versioning system - maybe one of
the developers can take a look at my patch?

Regards
Stefan Reiser

Re: Updatable query and column aliases

From
Stefan Reiser
Date:
Sorry, what I just posted is in fact for the current version _9.1-901_
an it can be found here:


http://home.arcor.de/stefanreiser/docs/postgresql/9.1-901/AbstractJdbc2ResultSet.java


Stefan Reiser schrieb:
> Anton Bobov schrieb:
>> Hi folks.
>>
>> I cant moveToInsertRow when use queries with assigned names in select
>> list.
>>
>> Following code works good:
>>
>>     stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
>>                                       ResultSet.CONCUR_UPDATABLE);
>>     rs = stmt.executeQuery("select id from test");
>>     rs.moveToInsertRow();
>>
>> , but then I change query to "select id val from test" exception "The
>> column name id was not found in this ResultSet." raised on
>> moveToInsertRow.
>>
>> Is it any limitation on updatable queries?
>>
>> --
>> Anton
>>
>>
> Hello Anton,
>
> yes, the limitations are:
> 1) query must only use one table
> 2) no column aliases can be used
>
> Point 2 is a bug which I have described here:
>    http://archives.postgresql.org/pgsql-jdbc/2010-12/msg00084.php
> and here:
>    http://archives.postgresql.org/pgsql-jdbc/2011-08/msg00077.php
>
> The patch mentioned above does not work anymore since some things have
> changed in later versions of the driver.
>
> Here is a patch for version 9.0.801 (the only file that has to be
> changed is "AbstractJdbc2ResultSet").
>
>
> http://home.arcor.de/stefanreiser/docs/postgresql/9.0.801/AbstractJdbc2ResultSet.java
>
> ... sorry, I'm not familiar with the versioning system - maybe one of
> the developers can take a look at my patch?
>
> Regards
> Stefan Reiser
>