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 Thu, 14 Apr 2005 19:56:35 GMT
On 4/10/05, Mamta Satoor <msatoor@gmail.com> wrote:
> 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
> 

Hi,

Both Kathey and Satheesh seem to have trouble applying the patch I
last submitted and have asked me to resubmit a new patch. I have
synced up to the latest source and made some minor comment changes.
Can someone other than Kathey and Satheesh also try to apply this
latest patch to see if it applies fine on their system?

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

Thanks,
Mamta

Mime
View raw message