[ https://issues.apache.org/jira/browse/DERBY-2347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Øystein Grøvlen updated DERBY-2347: ----------------------------------- Attachment: DERBY-2347.diff The attached patch, DERBY-2347.diff, adds the necessary code for the client to request locators to be sent instead of LOB values, and the corresponding code for the network server to handle such requests. This is achieved by using the DRDA OUTOVR (Output Override) command with the the first CNTQRY command for a query. It turned out that much of the necessary code for generating and handling OUTOVR was already there, and only few missing pieces were needed to get this to work. For now, the client will not request the use of locators since it is not yet able to handle locators. (This will be added in (several) later patches.) The DRDA spec also describes an outovropt parameter to the OPNQRY command. This can be used to specify whether an OUTOVR command will only be sent with the first CNTQRY for the query, or it can be sent with any CNTQRY. As stated above, this implementation will only send OUTOVR with the first CNTQRY, and since DRDA specifies this as the default behavior, I have not used the outovropt parameter. There is currently nothing in the network server that rely on OUTOVR only being used with the first CNTQRY, and no error is returned should later CNTQRY countain OUTOVR. Note that this patch is dependent on the patch for DERBY-2257 and should not be committed until that is committed.I have run the junit and derbyall test suites with this patch and the patch for DERBY-2257, and no new errors was seen. A more detailed explanation of the changes: M java/drda/org/apache/derby/impl/drda/DRDAResultSet.java If the client has requested an output type to be overridden, return the requested type. M java/drda/org/apache/derby/impl/drda/DRDAConnThread.java If the output type is a locator type, add the LOB reference to the locator-to-LOB-mapping of DERBY-2257, and write the returned locator as an integer. M java/client/org/apache/derby/client/net/CodePointNameTable.java Add tracing text for the DRDA OUTOVR command. (This is for client, already existed in the server version of this file.) M java/client/org/apache/derby/client/net/NetResultSetRequest.java Replaced the no-op code of buildOUTOVR() with the code to actually build the command. Only build it on the first CNTQRY command. This code will remain disabled until the necessary changes is made to make the client able to handle locators. M java/client/org/apache/derby/client/net/NetStatementRequest.java In OUTOVR commands, the client will request locators for all LOB columns. 4 bytes will be used for locators. > Add code to support request and return of locators over DRDA > ------------------------------------------------------------ > > Key: DERBY-2347 > URL: https://issues.apache.org/jira/browse/DERBY-2347 > Project: Derby > Issue Type: Sub-task > Components: Network Client, Network Server > Reporter: Øystein Grøvlen > Assigned To: Øystein Grøvlen > Attachments: DERBY-2347.diff > > > - Make the client able to send DRDA OUTOVR commands to request locators from > Network Server. > - Make the network server send locators instead of LOB values if locators has > been > requested. > This JIRA will not activate the code that request locators since the client > is not yet able to handle locators. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.