Class RoutineAliasInfo

java.lang.Object
org.apache.derby.catalog.types.MethodAliasInfo
org.apache.derby.catalog.types.RoutineAliasInfo
All Implemented Interfaces:
Externalizable, Serializable, AliasInfo, Formatable, TypedFormat

public class RoutineAliasInfo extends MethodAliasInfo
Describe a routine (procedure or function) alias.
See Also:
  • Field Details

    • SQL_CONTROL

      private static final String[] SQL_CONTROL
    • MODIFIES_SQL_DATA

      public static final short MODIFIES_SQL_DATA
      See Also:
    • READS_SQL_DATA

      public static final short READS_SQL_DATA
      See Also:
    • CONTAINS_SQL

      public static final short CONTAINS_SQL
      See Also:
    • NO_SQL

      public static final short NO_SQL
      See Also:
    • PS_JAVA

      public static final short PS_JAVA
      PARAMETER STYLE JAVA
      See Also:
    • PS_DERBY_JDBC_RESULT_SET

      public static final short PS_DERBY_JDBC_RESULT_SET
      PARAMETER STYLE DERBY_JDBC_RESULT_SET
      See Also:
    • PS_DERBY

      public static final short PS_DERBY
      PARAMETER STYLE DERBY
      See Also:
    • SQL_ALLOWED_MASK

      private static final short SQL_ALLOWED_MASK
      Masks for the sqlOptions field
      See Also:
    • DETERMINISTIC_MASK

      private static final short DETERMINISTIC_MASK
      See Also:
    • SECURITY_DEFINER_MASK

      private static final short SECURITY_DEFINER_MASK
      See Also:
    • VARARGS_MASK

      private static final short VARARGS_MASK
      See Also:
    • parameterCount

      private int parameterCount
    • parameterTypes

      private TypeDescriptor[] parameterTypes
      Types of the parameters. If there are no parameters then this may be null (or a zero length array).
    • parameterNames

      private String[] parameterNames
      Name of each parameter. As of DERBY 10.3, parameter names are optional. If the parameter is unnamed, parameterNames[i] is a string of length 0
    • parameterModes

      private int[] parameterModes
      IN, OUT, INOUT
    • dynamicResultSets

      private int dynamicResultSets
    • returnType

      private TypeDescriptor returnType
      Return type for functions. Null for procedures.
    • parameterStyle

      private short parameterStyle
      Parameter style - always PS_JAVA at the moment.
    • sqlOptions

      private short sqlOptions
      This field contains several pieces of information: bits 0-3 sqlAllowed = MODIFIES_SQL_DATA, READS_SQL_DATA,CONTAINS_SQL, or NO_SQL bit 4 on if function is DETERMINISTIC, off otherwise bit 5 on if running with definer's right, off otherwise
    • specificName

      private String specificName
      SQL Specific name (future)
    • calledOnNullInput

      private boolean calledOnNullInput
      True if the routine is called on null input. (always true for procedures).
    • aliasType

      private transient char aliasType
  • Constructor Details

    • RoutineAliasInfo

      public RoutineAliasInfo()
    • RoutineAliasInfo

      public RoutineAliasInfo(String methodName, int parameterCount, String[] parameterNames, TypeDescriptor[] parameterTypes, int[] parameterModes, int dynamicResultSets, short parameterStyle, short sqlAllowed, boolean isDeterministic, boolean hasVarargs)
      Create a RoutineAliasInfo for an internal PROCEDURE.
    • RoutineAliasInfo

      public RoutineAliasInfo(String methodName, int parameterCount, String[] parameterNames, TypeDescriptor[] parameterTypes, int[] parameterModes, int dynamicResultSets, short parameterStyle, short sqlAllowed, boolean isDeterministic, boolean hasVarargs, boolean definersRights, boolean calledOnNullInput, TypeDescriptor returnType)
      Create a RoutineAliasInfo for a PROCEDURE or FUNCTION
  • Method Details

    • getParameterCount

      public int getParameterCount()
    • getParameterTypes

      public TypeDescriptor[] getParameterTypes()
      Types of the parameters. If there are no parameters then this may return null (or a zero length array).
    • setParameterTypes

      public void setParameterTypes(TypeDescriptor[] parameterTypes)
      Set the paramter types. Useful if they need to be bound.
    • getParameterModes

      public int[] getParameterModes()
    • getParameterNames

      public String[] getParameterNames()
      Returns an array containing the names of the parameters. As of DERBY 10.3, parameter names are optional (see DERBY-183 for more information). If the i-th parameter was unnamed, parameterNames[i] will contain a string of length 0.
    • getMaxDynamicResultSets

      public int getMaxDynamicResultSets()
    • getParameterStyle

      public short getParameterStyle()
    • getSQLAllowed

      public short getSQLAllowed()
    • isDeterministic

      public boolean isDeterministic()
    • hasVarargs

      public boolean hasVarargs()
    • hasDefinersRights

      public boolean hasDefinersRights()
    • calledOnNullInput

      public boolean calledOnNullInput()
    • getReturnType

      public TypeDescriptor getReturnType()
    • isTableFunction

      public boolean isTableFunction()
      Description copied from interface: AliasInfo
      Return true if this alias is a Table Function.
      Specified by:
      isTableFunction in interface AliasInfo
      Overrides:
      isTableFunction in class MethodAliasInfo
    • readExternal

      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
      Read this object from a stream of stored objects.
      Specified by:
      readExternal in interface Externalizable
      Overrides:
      readExternal in class MethodAliasInfo
      Parameters:
      in - read this.
      Throws:
      IOException - thrown on error
      ClassNotFoundException - thrown on error
    • getStoredType

      public static TypeDescriptor getStoredType(Object onDiskType)
      Old releases (10.3 and before) wrote out the runtime DataTypeDescriptor for routine parameter and return types. 10.4 onwards (DERBY-2775) always writes out the catalog type TypeDescriptor. Here we see what object was read from disk and if it was the old type, now mapped to OldRoutineType, we extract the catalog type and use that.
      Parameters:
      onDiskType - The object read that represents the type.
      Returns:
      A type descriptor.
    • writeExternal

      public void writeExternal(ObjectOutput out) throws IOException
      Write this object to a stream of stored objects.
      Specified by:
      writeExternal in interface Externalizable
      Overrides:
      writeExternal in class MethodAliasInfo
      Parameters:
      out - write bytes here.
      Throws:
      IOException - thrown on error
    • getTypeFormatId

      public int getTypeFormatId()
      Get the formatID which corresponds to this class.
      Specified by:
      getTypeFormatId in interface TypedFormat
      Overrides:
      getTypeFormatId in class MethodAliasInfo
      Returns:
      the formatID of this class
    • toString

      public String toString()
      Get this alias info as a string. NOTE: The "ALIASINFO" column in the SYSALIASES table will return the result of this method on a ResultSet.getString() call. That said, since the dblook utility uses ResultSet.getString() to retrieve ALIASINFO and to generate the DDL, THIS METHOD MUST RETURN A STRING THAT IS SYNTACTICALLY VALID, or else the DDL generated by dblook will be incorrect.
      Overrides:
      toString in class MethodAliasInfo
      See Also:
    • parameterMode

      public static String parameterMode(int parameterMode)
    • setCollationTypeForAllStringTypes

      public void setCollationTypeForAllStringTypes(int collationType)
      Set the collation type of all string types declared for use in this routine to the given collation type.
      Parameters:
      collationType -