[ http://issues.apache.org/jira/browse/DERBY-343?page=all ]
Andrew McIntyre updated DERBY-343:
----------------------------------
Fix Version: 10.1.0.0
(was: 10.2.0.0)
> Clean up DRDA classes handling of OPNQRY options
> ------------------------------------------------
>
> Key: DERBY-343
> URL: http://issues.apache.org/jira/browse/DERBY-343
> Project: Derby
> Type: Sub-task
> Components: Network Server
> Versions: 10.0.2.1, 10.0.2.0
> Reporter: Philip Wilder
> Assignee: Philip Wilder
> Priority: Minor
> Fix For: 10.1.0.0
> Attachments: Derby213.diff
>
> The follow is a list of changes to be implemented in the DRDAConnThread,
> DRDAStatement and DRDAResultSet. It is hoped that these changes will clean up
> code related to DERBY-213 and make the fix easier to implement.
> ###################################
> Step 1:
> In org.apache.derby.impl.drda.DRDAResultSet add
> public static final int QRYCLSIMP_DEFAULT = CodePoint.QRYCLSIMP_NO;
> ############################
> Step 2:
> Copy the org.apache.derby.impl.drda.DRDAStatement.setOPNQRYOptions() method
> to the org.apache.derby.impl.drda.DRDAResultSet class and
> change the logic of set setOPNQRYOptions() to remove the setting of the
> qryclsimp value to QRYCLSIMP_SERVER_CHOICE. Only the values of YES or NO will
> ever be stored internally.
> e.g.
> DRDAResultSet.setOPNQRYOptions(int blksize, int qryblkctl, int maxblkext, int
> outovropt, int qryrowset,
> int qryclsimpl) {
> this.blksize = blksize;
> setQryprctyp(qryblkctl);
> this.maxblkext = maxblkext;
> this.outovropt = outovropt;
> this.qryrowset = qryrowset;
> this.qryclsimp = (qryclsimpl == CodePoint.QRYCLSIMP_SERVER_CHOICE)
> ? DRDAResultSet.QRYCLSIMP_DEFAULT : qryclsimpl;
> }
> Thereafter change to the DRDAStatement.setOPNQRYOptions() to a delegation
> method which calls the method in DRDAResultSet
> e.g.
> DRDAStatement.setOPNQRYOptions(int blksize, int qryblkctl,
> int maxblkext, int outovropt,int
> qryrowset,int qryclsimpl)
> {
> currentDrdaRs.setOPNQRYOptions(blksize, qryblkctl, maxblkext,
> outovropt, qryrowset, qryclsimpl);
> }
> ###################################
> Step 3:
> Add org.apache.derby.impl.drda.DRDAResultSet.isRSCloseImplicit() which will
> test to see if the resultset should close implicitly
> e.g.
> boolean DRDAResultSet.isRSCloseImplicit() {
> return currentDrdaRs.qryclsimp == CodePoint.QRYCLSIMP_YES &&
> stmt.getQryprctyp() != CodePoint.LMTBLKPRC
> }
> Then add a corresponding delegation method in
> org.apache.derby.impl.drda.DRDAStatement()
> boolean DRDAStatement.isRSCloseImplicit() {
> return currentDrdaRs.isRSCloseImplicit();
> }
> ###################################
> Step 4:
> Remove org.apache.derby.impl.drda.DRDAStatment.setQryclsimp(int value)
> ###################################
> Step 5:
> Remove all references to
> if (qryclsimp == CodePoint.QRYCLSIMP_YES &&
> stmt.getQryprctyp() != CodePoint.LMTBLKPRC) { ...
> logic and replace with
> if (drdaStatement.isRSCloseImplicit()) { ...
> This should remove all references to
> org.apache.derby.impl.drda.DRDAStatment.getQryclsimp() which can in turn be
> removed.
> ###################################
> Step 6:
> In org.apache.derby.drda.impl.DRDAResultSet change:
> protected int qryclsimp
> to
> private int qryclsimp;
> ###################################
> Step 7:
> In org.apache.derby.drda.impl.DRDAConnThread.parseOPNQRY() change the line
> int qryclsimp = CodePoint.QRYCLSIMP_DEFAULT;
> to
> int qryclsimp = DRDAResultSet.QRYCLSIMP_DEFAULT
> ###################################
> Step 8:
> In org.apache.derby.drda.impl.CodePoint remove
> static final int QRYCLSIMP_DEFAULT = QRYCLSIMP_SERVER_CHOICE;
> ###################################
> Step 9: Insure that the new methods and changed methods have appropriate java
> documentation.
> ###################################
> Step 10: Organize the import for the DRDAConnThread, DRDAStatement and
> DRDAResultSet classes found in the org.apache.derby.drda.impl package.
--
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