Class OracleIndexColumnMetaData

java.lang.Object
org.tentackle.sql.metadata.IndexColumnMetaData
org.tentackle.sql.metadata.OracleIndexColumnMetaData
All Implemented Interfaces:
Comparable<IndexColumnMetaData>

public class OracleIndexColumnMetaData extends IndexColumnMetaData
Index column metadata for oracle.
Resolves the system-generated virtual columns oracle creates for filtered, function-based and descending indexes back to the model's view of the index, i.e. a column name, an optional function name and — for filtered indexes — the filter condition hidden in a CASE WHEN ... THEN ... END expression.
Author:
harald
See Also:
  • Constructor Details

    • OracleIndexColumnMetaData

      public OracleIndexColumnMetaData(IndexMetaData indexMetaData)
      Creates an index column.
      Parameters:
      indexMetaData - the index column belongs to
  • Method Details

    • parseColumnExpression

      public static OracleIndexColumnMetaData.ColumnExpression parseColumnExpression(String expression)
      Parses an index column expression as stored in ALL_IND_EXPRESSIONS.
      Understands the CASE WHEN &lt;condition&gt; THEN &lt;expression&gt; END form created for filtered indexes, the FUNC(&lt;column&gt;) form of function-based indexes and the plain "COLUMN" form of descending indexes. Oracle's double quotes are removed from all identifiers.
      Parameters:
      expression - the expression
      Returns:
      the parsed expression
    • validate

      public void validate()
      Description copied from class: IndexColumnMetaData
      Validates and post-processes the index column data.
      Overrides:
      validate in class IndexColumnMetaData
    • getColumnName

      public String getColumnName()
      Description copied from class: IndexColumnMetaData
      Gets the column columnName.
      Overrides:
      getColumnName in class IndexColumnMetaData
      Returns:
      the index column's columnName in lowercase
    • getFunctionName

      public String getFunctionName()
      Description copied from class: IndexColumnMetaData
      Gets the optional function name.
      Overrides:
      getFunctionName in class IndexColumnMetaData
      Returns:
      the function in uppercase, null if none