[ 
http://issues.apache.org/jira/browse/DERBY-199?page=comments#action_65041 ]
     
Jean T. Anderson commented on DERBY-199:
----------------------------------------

Original patch deleted.

> Derby does not support array of column names or column indexes to execute or 
> executeUpdate. Document incorrectly implies that Derby supports this 
> functionality
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>          Key: DERBY-199
>          URL: http://issues.apache.org/jira/browse/DERBY-199
>      Project: Derby
>         Type: Bug
>   Components: Documentation
>     Versions: 10.1.0.0
>     Reporter: Mamta A. Satoor
>  Attachments: derby199modified.diff
>
> Derby Reference Manual at 
> http://incubator.apache.org/derby/manuals/reference/sqlj229.html#Header_296 
> (also at 
> http://publib.boulder.ibm.com/infocenter/cldscp10/index.jsp?topic=/com.ibm.cloudscape.doc/sqlj229.htm)
>  has incorrect information about generated keys and JDBC api support.
> In the middle of the first paragraph, the existing documentation says 
> "In JDBC 3.0, the method Statement.getGeneratedKeys can be called to retrieve 
> the value of such a column. This method returns a ResultSet object with a 
> column for each automatically generated key. Calling ResultSet.getMetaData on 
> the ResultSet object returned by getGeneratedKeys produces a 
> ResultSetMetaData object that can be used to determine the number, type, and 
> properties of the generated keys."
> The paragraph implies that a table can have more than one automatically 
> generated key. Derby supports only one identity column per table. Also, the 
> structure of ResultSet object returned by getGeneratedKeys is not what's 
> documented in the paragraph above. In fact, the ResultSet object returned by 
> Statement.getGeneratedKeys looks exactly similar to the ResultSet object 
> returned by function IDENTITY_VAL_LOCAL. The result of this function is a 
> DECIMAL (31,0), regardless of the actual data type of the corresponding 
> identity column. Rather than duplicating the information under Autogenerated 
> Keys section about the ResultSet, it might be helpful to point to 
> IDENTITY_VAL_LOCAL documentation.
> In addition, the Autogenerated Keys page at the link above says following
> "Additional methods allow you to specify the ordinals or names of the 
> specific columns to be returned. An exception is thrown for invalid column or 
> position names.
> There are three ways of using Autogenerated Keys for insert statements. You 
> can:
> Pass the flag Statement.RETURN_GENERATED_KEYS to execute or executeUpdate 
> method. 
> Send an array of column names to execute or executeUpdate, so only those 
> column's values are returned by getGeneratedKeys() resultset. 
> Send an array of column indexes to execute or executeUpdate. This array is an 
> index of columns for the target table. 
> If the Statement.RETURN_GENERATED_KEYS flag is passed to the execute or 
> executeUpdate method, rather than the column positions/names list, Derby 
> returns a ResultSet containing columns with default values (this includes 
> autoincrement column). To obtain a specific column, pass the column 
> positions/names array. If Statement.getGeneratedKeys is executed for a 
> non-insert statement, an exception is thrown.
> The key indexes array in AutoGeneratedKey is an index of columns into the 
> target table. You can send an array of column indexes to execute or 
> executeUpdate. This array is an index of columns into the target table. For 
> example:
> create table t1(c11 int, c12 int);
> int[ ] colIndexes = new int[1];
> colIndexes[0] = 1;
> statment.execute("insert into t1(c12, c11) values (2,1)",colIndexes);
> s.getGeneratedKeys();
> --- will return a resultset with column c11.
> See the Derby Developer's Guide for more information about arrays."
> This information is incorrect also. Derby supports only one way to using 
> Autogenerated Keys for insert statement and that is via passing the flag 
> Statement.RETURN_GENERATED_KEYS to execute or executeUpdate method. The other 
> 2 methods with array of column names or array of column indexes on 
> execute/executeUpdate will throw "not implemented" exception.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to