Class GetProcedureColumns

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.ResultSet, java.sql.Wrapper, AwareVTI

    public class GetProcedureColumns
    extends VTITemplate

    Use of VirtualTableInterface to provide support for DatabaseMetaData.getProcedureColumns().

    This class is called from a Query constructed in java/org.apache.derby.impl.jdbc/metadata.properties:

    
    
        

    The VTI will return columns 3-14, an extra column to the specification METHOD_ID is returned to distinguish between overloaded methods.

    1. PROCEDURE_CAT String => procedure catalog (may be null)
    2. PROCEDURE_SCHEM String => procedure schema (may be null)
    3. PROCEDURE_NAME String => procedure name
    4. COLUMN_NAME String => column/parameter name
    5. COLUMN_TYPE Short => kind of column/parameter:
      • procedureColumnUnknown - nobody knows
      • procedureColumnIn - IN parameter
      • procedureColumnInOut - INOUT parameter
      • procedureColumnOut - OUT parameter
      • procedureColumnReturn - procedure return value
      • procedureColumnResult - result column in ResultSet
    6. DATA_TYPE int => SQL type from java.sql.Types
    7. TYPE_NAME String => SQL type name, for a UDT type the type name is fully qualified
    8. PRECISION int => precision
    9. LENGTH int => length in bytes of data
    10. SCALE short => scale
    11. RADIX short => radix
    12. NULLABLE short => can it contain NULL?
      • procedureNoNulls - does not allow NULL values
      • procedureNullable - allows NULL values
      • procedureNullableUnknown - nullability unknown
    13. REMARKS String => comment describing parameter/column
    14. METHOD_ID Short => Derby extra column (overloading)
    15. PARAMETER_ID Short => Derby extra column (output order)
    • Field Detail

      • isProcedure

        private boolean isProcedure
      • isFunction

        private boolean isFunction
      • rowCount

        private int rowCount
      • returnedTableColumnCount

        private int returnedTableColumnCount
      • tableFunctionReturnType

        private TypeDescriptor tableFunctionReturnType
      • paramCursor

        private int paramCursor
      • method_count

        private short method_count
      • param_number

        private short param_number
      • columnName

        private java.lang.String columnName
      • columnType

        private short columnType
      • nullable

        private final short nullable
      • metadata

        private static final java.sql.ResultSetMetaData metadata
    • Constructor Detail

      • GetProcedureColumns

        public GetProcedureColumns​(AliasInfo aliasInfo,
                                   java.lang.String aliasType)
                            throws java.sql.SQLException
        Throws:
        java.sql.SQLException
    • Method Detail

      • translate

        private int translate​(int val)
      • getMetaData

        public java.sql.ResultSetMetaData getMetaData()
        Specified by:
        getMetaData in interface java.sql.ResultSet
        Overrides:
        getMetaData in class VTITemplate
      • next

        public boolean next()
                     throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getString

        public java.lang.String getString​(int column)
                                   throws java.sql.SQLException
        Specified by:
        getString in interface java.sql.ResultSet
        Overrides:
        getString in class VTITemplate
        Throws:
        java.sql.SQLException
      • getInt

        public int getInt​(int column)
                   throws java.sql.SQLException
        Specified by:
        getInt in interface java.sql.ResultSet
        Overrides:
        getInt in class VTITemplate
        Throws:
        java.sql.SQLException
      • getShort

        public short getShort​(int column)
                       throws java.sql.SQLException
        Specified by:
        getShort in interface java.sql.ResultSet
        Overrides:
        getShort in class VTITemplate
        Throws:
        java.sql.SQLException
      • close

        public void close()