db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mamta Satoor <msat...@gmail.com>
Subject Re: [PATCH] Jira-189 ResultSetMetaData.getSchemaName and ResultSetMetaData.isWritable donot return correct values
Date Mon, 11 Apr 2005 04:37:50 GMT
On Apr 6, 2005 9:44 PM, Mamta Satoor <msatoor@gmail.com> wrote:
> On Apr 5, 2005 2:50 PM, Mamta Satoor <msatoor@gmail.com> wrote:
> > I guess, it will help to actually attach the patch.
> >
> > thanks,
> > Mamta
> >
> > On Apr 5, 2005 1:40 PM, Mamta Satoor <msatoor@gmail.com> wrote:
> > > Hi,
> > >
> > > I have sent 2 patches for Derby engine code in the past(and they are
> > > already commited) in preparation for making updatable resultset
> > > functionality available in Network Server mode. Here is another patch
> > > to make progress towards that goal.
> > >
> > > The problem is that Derby does not return correct values for
> > > ResultSetMetaData.getSchemaName and ResultSetMetaData.isWritable. And
> > > these 2 methods are crucial to have updatable resultset functionality
> > > under Network Server mode.
> > >
> > > Following is the description of the issue from Jira
> > > "Derby Net Client and JCC driver rely on getSchemanName method to
> > > construct the correct "update where current of sql" for an updatRow.
> > > For eg, if the user is in say schema s1 and the updatable resultset is
> > > issued on a table from schema s2 with the sql "select c11 from s2.t1
> > > for update". Currenly, getSchemaName returns null and hence, the
> > > client code constructs a sql like "update t1 ... where current of
> > > ...". ie the update is being issued against table t1 in schema s1.
> > > getSchemaName should return s2, so the driver can correctly genereat
> > > sql as "update s2.t1 ... where current of ...".
> > >
> > > In addition, the client code lets a user issue an updateXXX on a
> > > column only if the column is writable and it determines that by
> > > looking at the return value of isWritable(). Derby engine currently
> > > always returns false for this method and because of that, updateXXX
> > > fails in Network Server mode. Derby should return true for the columns
> > > which can be updated in the given resultset. For eg for "select c11,
> > > c12 from t1 for update of c11", isWritable should return true for c11
> > > and false for c12. "
> > >
> > > Most of the changes in this patch are to add methods and variables
> > > related to  schema name and writable status to columns so they are
> > > available correctly to EmbedResultSetMetaData.java. These changes went
> > > into ResultColumn.java, VirtualColumnNode.java, BaseColumnNode.java,
> > > ColumnReference.java, ValueNode.java, GenericColumnDescriptor.java,
> > > ColumnDescriptor.java, ResultColumnDescriptor.java
> > >
> > > CursorNode.java currently marks the columns updatable in FromTable
> > > object only. The columns need to be marked correctly in
> > > ResultSetColumnList associated with the cursor also. That is what the
> > > change in CursorNode.java does.
> > >
> > > ResultColumnList.java currently doesn't handle marking columns
> > > updatable for the column list associated with a cursor node. Added
> > > markColumnsInSelectListUpdatableByCursor method to handle that.
> > >
> > > Change in EmbedResultSet.java is to catch updateXXX on read-only
> > > columns of the resultset. Have added test for this.
> > >
> > > Change in EmbedResultSetMetaData.java is have isWritable method return
> > > the column's updatableByCursor state. And to call the correct schema
> > > name method on the column in getSchemaName method.
> > >
> > > svn stat
> > > M      java\engine\org\apache\derby\impl\sql\compile\ResultColumn.java
> > > M      java\engine\org\apache\derby\impl\sql\compile\VirtualColumnNode.java
> > > M      java\engine\org\apache\derby\impl\sql\compile\CursorNode.java
> > > M      java\engine\org\apache\derby\impl\sql\compile\BaseColumnNode.java
> > > M      java\engine\org\apache\derby\impl\sql\compile\ColumnReference.java
> > > M      java\engine\org\apache\derby\impl\sql\compile\ValueNode.java
> > > M      java\engine\org\apache\derby\impl\sql\compile\ResultColumnList.java
> > > M      java\engine\org\apache\derby\impl\sql\GenericColumnDescriptor.java
> > > M      java\engine\org\apache\derby\impl\jdbc\EmbedResultSet.java
> > > M      java\engine\org\apache\derby\impl\jdbc\EmbedResultSetMetaData.java
> > > M      java\engine\org\apache\derby\iapi\sql\dictionary\ColumnDescriptor.java
> > > M      java\engine\org\apache\derby\iapi\sql\ResultColumnDescriptor.java
> > > M      java\testing\org\apache\derbyTesting\functionTests\tests\lang\updatableResultSet.java
> > > M      java\testing\org\apache\derbyTesting\functionTests\master\DerbyNet\updatableResultSet.out
> > > M      java\testing\org\apache\derbyTesting\functionTests\master\DerbyNet\resultset.out
> > > M      java\testing\org\apache\derbyTesting\functionTests\master\DerbyNetClient\updatableResultSet.out
> > > M      java\testing\org\apache\derbyTesting\functionTests\master\DerbyNetClient\resultset.out
> > > M      java\testing\org\apache\derbyTesting\functionTests\master\updatableResultSet.out
> > > M      java\testing\org\apache\derbyTesting\functionTests\master\jdk14\updatableResultSet.out
> > > M      java\testing\org\apache\derbyTesting\functionTests\master\resultset.out
> > >
> > > If no objection from anyone, can a commiter commit this patch?
> > >
> > > thanks,
> > > Mamta
> > >
> >
> >
> >
> 
> Hi,
> 
> If the changes look good, can a commiter please commit this patch for me?
> 
> thanks,
> Mamta
> 

Hi,

Can a commiter please commit this?

thanks,
Mamta

Mime
View raw message