org.apache.derby.vti
Interface IFastPath


public interface IFastPath

An internal api for VTIs to allow VTI's written in terms of the datatype system, e.g. returning rows. This allows passing of data from the VTI into the query engine without a conversion through a JDBC ResultSet.


Field Summary
static int GOT_ROW
          Indicates nextRow() found a row..
static int NEED_RS
          Indicates nextRow() has completed its scan but executeQuery must be called to complete the query.
static int SCAN_COMPLETED
          Indicates nextRow() has completed its scan.
 
Method Summary
 void currentRow(java.sql.ResultSet rs, DataValueDescriptor[] row)
          A call from the VTI execution layer back into the supplied VTI.
 boolean executeAsFastPath()
          Start a query.
 int nextRow(DataValueDescriptor[] row)
          When operating in fast path mode return the next row into the passed in row parameter.
 void rowsDone()
          Called once the ResultSet returned by executeQuery() has emptied all of its rows (next() has returned false).
 

Field Detail

SCAN_COMPLETED

public static final int SCAN_COMPLETED
Indicates nextRow() has completed its scan.

See Also:
Constant Field Values

GOT_ROW

public static final int GOT_ROW
Indicates nextRow() found a row..

See Also:
Constant Field Values

NEED_RS

public static final int NEED_RS
Indicates nextRow() has completed its scan but executeQuery must be called to complete the query.

See Also:
Constant Field Values
Method Detail

executeAsFastPath

public boolean executeAsFastPath()
                          throws StandardException,
                                 java.sql.SQLException
Start a query. Returns true if the VTI will start out as a fast path query and thus rows will be returned by nextRow(). Returns false if the engine must call the VTI's PreparedStatement.executeQuery() method to execute as a regular ResultSet VTI.

Throws:
StandardException
java.sql.SQLException

nextRow

public int nextRow(DataValueDescriptor[] row)
            throws StandardException,
                   java.sql.SQLException
When operating in fast path mode return the next row into the passed in row parameter. Returns GOT_ROW if a valid row is found. Returns SCAN_COMPLETED if the scan is complete. Returns NEED_RS if the rest of the query must be handled as a regular ResultSet VTI by the engine calling the VTI's PreparedStatement.executeQuery()

Throws:
StandardException
java.sql.SQLException

currentRow

public void currentRow(java.sql.ResultSet rs,
                       DataValueDescriptor[] row)
                throws StandardException,
                       java.sql.SQLException
A call from the VTI execution layer back into the supplied VTI. Presents the row just processed as an array of DataValueDescriptors. This only called when the VTI is being executed as a regular ResultSet VTI

Throws:
StandardException
java.sql.SQLException

rowsDone

public void rowsDone()
              throws StandardException,
                     java.sql.SQLException
Called once the ResultSet returned by executeQuery() has emptied all of its rows (next() has returned false).

Throws:
StandardException
java.sql.SQLException


Apache Derby V10.0 Engine Documentation - Copyright © 1997,2004 The Apache Software Foundation or its licensors, as applicable.