Module org.apache.derby.engine
Package org.apache.derby.vti

## Interface VTIEnvironment

-     public interface VTIEnvironment

  VTIEnvironment is the state variable created by the optimizer to help it place a Table Function in the join order. The methods of VTICosting use this state variable in order to pass information to each other and learn other details of the operating environment.

  See Also:
    `VTICosting`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `getOriginalSQL()` | Return the SQL text of the original SQL statement.
    `Object` | `getSharedState​(String key)` | Get an object associated with a key from set of objects maintained with the statement plan.
    `int` | `getStatementIsolationLevel()` | Get the specific JDBC isolation of the statement.
    `boolean` | `isCompileTime()` | Return true if this instance of the Table Function has been created for compilation, false if it is for runtime execution.
    `void` | `setSharedState​(String key, Serializable value)` | Saves an object associated with a key that will be maintained for the lifetime of the statement plan.

- - ### Method Detail

    - #### isCompileTime

          boolean isCompileTime()

      Return true if this instance of the Table Function has been created for compilation, false if it is for runtime execution.
      Returns:
        true if this instance of the Table Function has been created for compilation

    - #### getOriginalSQL

          String getOriginalSQL()

      Return the SQL text of the original SQL statement.
      Returns:
        the SQL text of the original SQL statement

    - #### getStatementIsolationLevel

          int getStatementIsolationLevel()

      Get the specific JDBC isolation of the statement. If it returns Connection.TRANSACTION_NONE then no isolation was specified and the connection's isolation level is implied.
      Returns:
        the specific JDBC isolation of the statement

    - #### setSharedState

          void setSharedState​(String key,
                              Serializable value)

      Saves an object associated with a key that will be maintained for the lifetime of the statement plan. Any previous value associated with the key is discarded. Any saved object can be seen by any JDBC Connection that has a Statement object that references the same statement plan.
      Parameters:
        `key` - Key into a cache of context variables
        `value` - Value to associate with the key

    - #### getSharedState

          Object getSharedState​(String key)

      Get an object associated with a key from set of objects maintained with the statement plan.
      Parameters:
        `key` - Key into a cache of context variables
      Returns:
        the value associated with the key