Modifier and Type | Field | Description |
---|---|---|
(package private) boolean |
blocking_ |
|
(package private) java.util.ArrayList<byte[]> |
extdtaData_ |
Queue to hold EXTDTA data that hasn't been correlated to its
column number.
|
(package private) java.util.HashMap<java.lang.Integer,java.lang.Integer> |
extdtaPositions_ |
|
(package private) boolean[] |
isGraphic_ |
|
(package private) int |
maximumRowSize_ |
|
private NetAgent |
netAgent_ |
|
(package private) NetResultSet |
netResultSet_ |
|
private boolean |
qryclsimpEnabled_ |
Flag indicating whether the result set on the server is
implicitly closed when end-of-data is received.
|
(package private) Typdef |
qrydscTypdef_ |
|
(package private) boolean |
rtnextrow_ |
|
(package private) int[] |
typeToUseForComputingDataLength_ |
agent_, BYTES, ccsid_, charset_, columnDataComputedLength_, columnDataIsNullCache_, columnDataLengthCache_, columnDataPosition_, columnDataPositionCache_, columns_, currentRowPosition_, dataBuffer_, dataBufferStream_, fdocaLength_, hasLobs_, isNull_, jdbcTypes_, lastValidBytePosition_, NULL_TERMINATED_BYTES, NULL_TERMINATED_STRING, nullable_, position_, STRING, VARIABLE_SHORT_STRING, VARIABLE_STRING
Constructor | Description |
---|---|
NetCursor(NetAgent netAgent) |
|
NetCursor(NetAgent netAgent,
int qryprctyp) |
Modifier and Type | Method | Description |
---|---|---|
private void |
adjustColumnOffsetsForColumnsPreviouslyCalculated(int index) |
Adjust column offsets after fetching the next part of a split row.
|
private int[] |
allocateColumnDataComputedLengthArray(int row) |
|
private boolean[] |
allocateColumnDataIsNullArray(int row) |
|
private int[] |
allocateColumnDataPositionArray(int row) |
|
(package private) void |
allocateColumnOffsetAndLengthArrays() |
|
protected boolean |
calculateColumnOffsetsForRow_(int rowIndex,
boolean allowServerFetch) |
Calculate the column offsets for a row.
|
(package private) void |
calculateLobColumnPositionsForRow() |
|
private void |
checkAndThrowReceivedEndqryrm() |
|
private void |
checkAndThrowReceivedEndqryrm(int lastValidBytePositionBeforeFetch) |
|
private void |
checkForSplitRowAndComplete(int length) |
Check if the data we want crosses a row split, and fetch more data
if necessary.
|
private void |
checkForSplitRowAndComplete(int length,
int index) |
Check if the data we want crosses a row split, and fetch more data
if necessary.
|
protected void |
clearLobData_() |
|
private int |
completeSplitRow(int index) |
Fetch more data for a row that has been split up.
|
private byte[] |
findExtdtaData(int column) |
|
ClientBlob |
getBlobColumn_(int column,
Agent agent,
boolean toBePublished) |
Returns a
Blob object. |
ClientClob |
getClobColumn_(int column,
Agent agent,
boolean toBePublished) |
Returns a
Clob object. |
protected int |
getDecimalLength(int index) |
|
protected void |
getMoreData_() |
|
(package private) boolean |
getQryclsimpEnabled() |
Check whether QRYCLSIMP is enabled on this cursor.
|
(package private) void |
initializeColumnInfoArrays(Typdef typdef,
int columnCount) |
|
private boolean |
isNonTrivialDataLob(int index) |
|
protected int |
locator(int column) |
Get locator for LOB of the designated column
|
void |
nullDataForGC() |
|
private NetSqlca[] |
parseSQLCAGRP(Typdef typdef) |
|
private NetSqlca[] |
parseSQLCARD(Typdef typdef) |
|
private void |
parseSQLCAXGRP(Typdef typdef,
NetSqlca netSqlca) |
|
private NetSqlca |
parseSQLDCGRP() |
|
private NetSqlca |
parseSQLDCROW() |
|
private void |
parseSQLDCTOKS() |
|
private void |
parseSQLDCXGRP() |
|
private NetSqlca[] |
parseSQLDIAGCI() |
|
private void |
parseSQLDIAGCN() |
|
private NetSqlca[] |
parseSQLDIAGGRP() |
|
private void |
parseSQLDIAGSTT() |
|
private java.lang.String |
parseVCS(Typdef typdefInEffect) |
|
private byte[] |
readFdocaBytes(int length) |
|
private int |
readFdocaInt() |
|
private int |
readFdocaOneByte() |
|
private int |
readFdocaOneByte(int index) |
|
private java.lang.String |
readFdocaString(int length,
java.nio.charset.Charset encoding) |
|
private int |
readFdocaTwoByteLength() |
|
private int |
readFdocaTwoByteLength(int index) |
|
private void |
resetCurrentRowPosition() |
|
(package private) void |
scanDataBufferForEndOfData() |
Scan the data buffer to see if end of data (SQL state 02000)
has been received.
|
void |
setAllRowsReceivedFromServer(boolean b) |
Set the value of value of allRowsReceivedFromServer_.
|
(package private) void |
setQryclsimpEnabled(boolean flag) |
Set a flag indicating whether QRYCLSIMP is enabled.
|
private void |
shiftPartialRowToBeginning() |
|
private int |
skipFdocaBytes(int length) |
|
private int |
skipFdocaBytes(int length,
int index) |
allocateCharBuffer, allRowsReceivedFromServer, get_INTEGER, getIsRowUpdated, getIsUpdateDeleteHole, incrementRowsReadEvent, makeNextRowPositionCurrent, markNextRowPosition, next, resetDataBuffer, setIsRowUpdated, setIsUpdataDeleteHole, setNumberOfColumns, stepNext
NetResultSet netResultSet_
private NetAgent netAgent_
Typdef qrydscTypdef_
int maximumRowSize_
boolean blocking_
int[] typeToUseForComputingDataLength_
boolean[] isGraphic_
java.util.HashMap<java.lang.Integer,java.lang.Integer> extdtaPositions_
java.util.ArrayList<byte[]> extdtaData_
boolean rtnextrow_
private boolean qryclsimpEnabled_
NetCursor(NetAgent netAgent)
NetCursor(NetAgent netAgent, int qryprctyp)
protected boolean calculateColumnOffsetsForRow_(int rowIndex, boolean allowServerFetch) throws SqlException, DisconnectException
Pseudo-code:
calculateColumnOffsetsForRow_
in class Cursor
rowIndex
- row indexallowServerFetch
- if true, allow fetching more data from
servertrue
if the current row position is a
valid row position.SqlException
DisconnectException
void scanDataBufferForEndOfData() throws SqlException
SqlException
private int readFdocaInt() throws DisconnectException, SqlException
DisconnectException
SqlException
private int readFdocaOneByte() throws DisconnectException, SqlException
DisconnectException
SqlException
private int readFdocaOneByte(int index) throws DisconnectException, SqlException
DisconnectException
SqlException
private byte[] readFdocaBytes(int length) throws DisconnectException, SqlException
DisconnectException
SqlException
private int readFdocaTwoByteLength() throws DisconnectException, SqlException
DisconnectException
SqlException
private int readFdocaTwoByteLength(int index) throws DisconnectException, SqlException
DisconnectException
SqlException
private int skipFdocaBytes(int length) throws DisconnectException, SqlException
DisconnectException
SqlException
private int skipFdocaBytes(int length, int index) throws DisconnectException, SqlException
DisconnectException
SqlException
private void shiftPartialRowToBeginning()
private void adjustColumnOffsetsForColumnsPreviouslyCalculated(int index)
index
- the index of the column that was split, or -1 when not
fetching column dataprivate void resetCurrentRowPosition()
void calculateLobColumnPositionsForRow()
private boolean isNonTrivialDataLob(int index)
protected void clearLobData_()
clearLobData_
in class Cursor
private NetSqlca[] parseSQLCARD(Typdef typdef) throws DisconnectException, SqlException
DisconnectException
SqlException
private NetSqlca[] parseSQLCAGRP(Typdef typdef) throws DisconnectException, SqlException
DisconnectException
SqlException
private void parseSQLCAXGRP(Typdef typdef, NetSqlca netSqlca) throws DisconnectException, SqlException
DisconnectException
SqlException
private NetSqlca[] parseSQLDIAGGRP() throws DisconnectException, SqlException
DisconnectException
SqlException
private void parseSQLDIAGSTT() throws DisconnectException, SqlException
DisconnectException
SqlException
private NetSqlca[] parseSQLDIAGCI() throws DisconnectException, SqlException
DisconnectException
SqlException
private void parseSQLDIAGCN() throws DisconnectException, SqlException
DisconnectException
SqlException
private NetSqlca parseSQLDCGRP() throws DisconnectException, SqlException
DisconnectException
SqlException
private NetSqlca parseSQLDCROW() throws DisconnectException, SqlException
DisconnectException
SqlException
private void parseSQLDCTOKS() throws DisconnectException, SqlException
DisconnectException
SqlException
private void parseSQLDCXGRP() throws DisconnectException, SqlException
DisconnectException
SqlException
private java.lang.String parseVCS(Typdef typdefInEffect) throws DisconnectException, SqlException
DisconnectException
SqlException
private java.lang.String readFdocaString(int length, java.nio.charset.Charset encoding) throws SqlException
SqlException
void allocateColumnOffsetAndLengthArrays()
private byte[] findExtdtaData(int column)
protected int locator(int column)
Note that this method cannot be invoked on a LOB column that is NULL.
public ClientBlob getBlobColumn_(int column, Agent agent, boolean toBePublished) throws SqlException
Cursor
Blob
object.getBlobColumn_
in class Cursor
column
- 1-based column indexagent
- associated agenttoBePublished
- whether the Blob will be published to the userSqlException
- if getting the Blob
failsCursor.getBlobColumn_(int, org.apache.derby.client.am.Agent, boolean)
public ClientClob getClobColumn_(int column, Agent agent, boolean toBePublished) throws SqlException
Cursor
Clob
object.getClobColumn_
in class Cursor
column
- 1-based column indexagent
- associated agenttoBePublished
- whether the Clob will be published to the userjava.sql.Clob
object.SqlException
- if getting the Clob
failsCursor.getClobColumn_(int, org.apache.derby.client.am.Agent, boolean)
void initializeColumnInfoArrays(Typdef typdef, int columnCount) throws DisconnectException
DisconnectException
protected void getMoreData_() throws SqlException
getMoreData_
in class Cursor
SqlException
public void nullDataForGC()
nullDataForGC
in class Cursor
private void checkForSplitRowAndComplete(int length, int index) throws SqlException
length
- the length in bytes of the data neededindex
- the index of the column to be fetched, or -1 when not
fetching column dataSqlException
private void checkForSplitRowAndComplete(int length) throws SqlException
checkForSplitRowAndComplete(int, int)
for that.length
- the length in bytes of the data neededSqlException
private void checkAndThrowReceivedEndqryrm() throws SqlException
SqlException
private void checkAndThrowReceivedEndqryrm(int lastValidBytePositionBeforeFetch) throws SqlException
SqlException
private int completeSplitRow(int index) throws DisconnectException, SqlException
index
- the index of the column that was split, or -1 when not
fetching column datalastValidBytePosition_
before more data
was fetchedDisconnectException
SqlException
private int[] allocateColumnDataPositionArray(int row)
private int[] allocateColumnDataComputedLengthArray(int row)
private boolean[] allocateColumnDataIsNullArray(int row)
protected int getDecimalLength(int index)
public final void setAllRowsReceivedFromServer(boolean b)
setAllRowsReceivedFromServer
in class Cursor
b
- a boolean
value indicating whether all
rows are received from the serverfinal void setQryclsimpEnabled(boolean flag)
flag
- true if QRYCLSIMP is enabledfinal boolean getQryclsimpEnabled()
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.