Class SQLBit

All Implemented Interfaces:
Externalizable, Serializable, Comparable, Formatable, Storable, StreamStorable, TypedFormat, BitDataValue, ConcatableDataValue, DataValueDescriptor, Orderable, VariableSizeDataValue
Direct Known Subclasses:
SQLVarbit

public class SQLBit extends SQLBinary
SQLBit represents the SQL type CHAR FOR BIT DATA
See Also:
  • Constructor Details

    • SQLBit

      public SQLBit()
      no-arg constructor, required by Formattable.
    • SQLBit

      public SQLBit(byte[] val)
  • Method Details

    • getObject

      public Object getObject() throws StandardException
      Description copied from class: DataType
      Gets the value in the data value descriptor as a int. Throws an exception if the data value is not receivable as a int.
      Specified by:
      getObject in interface DataValueDescriptor
      Overrides:
      getObject in class DataType
      Returns:
      The data value as a int.
      Throws:
      StandardException - Thrown on error
    • getTypeName

      public String getTypeName()
      Description copied from interface: DataValueDescriptor
      Get the SQL name of the datatype
      Returns:
      The SQL name of the datatype
    • getMaxMemoryUsage

      int getMaxMemoryUsage()
      Return max memory usage for a SQL Bit
      Specified by:
      getMaxMemoryUsage in class SQLBinary
    • getTypeFormatId

      public int getTypeFormatId()
      Return my format identifier.
      Returns:
      The identifier. (A UUID stuffed in an array of 16 bytes).
      See Also:
    • getNewNull

      public DataValueDescriptor getNewNull()
      Description copied from interface: DataValueDescriptor
      Get a new null value of the same type as this data value.
      See Also:
    • setValueFromResultSet

      public final void setValueFromResultSet(ResultSet resultSet, int colNumber, boolean isNullable) throws SQLException
      Obtain the value using getBytes. This works for all FOR BIT DATA types. Getting a stream is problematic as any other getXXX() call on the ResultSet will close the stream we fetched. Therefore we have to create the value in-memory as a byte array.
      Parameters:
      resultSet - The specified ResultSet.
      colNumber - The 1-based column # into the resultSet.
      isNullable - Whether or not the column is nullable (No need to call wasNull() if not)
      Throws:
      SQLException - Thrown on error
      See Also:
    • typePrecedence

      public int typePrecedence()
      Description copied from class: DataType
      Each built-in type in JSQL has a precedence. This precedence determines how to do type promotion when using binary operators. For example, float has a higher precedence than int, so when adding an int to a float, the result type is float. The precedence for some types is arbitrary. For example, it doesn't matter what the precedence of the boolean type is, since it can't be mixed with other types. But the precedence for the number types is critical. The SQL standard requires that exact numeric types be promoted to approximate numeric when one operator uses both. Also, the precedence is arranged so that one will not lose precision when promoting a type.
      Specified by:
      typePrecedence in interface DataValueDescriptor
      Overrides:
      typePrecedence in class DataType
      Returns:
      The precedence of this type.
      See Also:
    • setObject

      final void setObject(Object theValue) throws StandardException
      Set the value from an non-null object.
      Overrides:
      setObject in class DataType
      Throws:
      StandardException
    • normalize

      public void normalize(DataTypeDescriptor desiredType, DataValueDescriptor source) throws StandardException
      Normalization method - this method may be called when putting a value into a SQLBit, for example, when inserting into a SQLBit column. See NormalizeResultSet in execution.
      Specified by:
      normalize in interface DataValueDescriptor
      Overrides:
      normalize in class DataType
      Parameters:
      desiredType - The type to normalize the source column to
      source - The value to normalize
      Throws:
      StandardException - Thrown for null into non-nullable column, and for truncation error
    • setWidth

      public void setWidth(int desiredWidth, int desiredScale, boolean errorOnTrunc) throws StandardException
      Set the width of the to the desired value. Used when CASTing. Ideally we'd recycle normalize(), but the behavior is different (we issue a warning instead of an error, and we aren't interested in nullability).
      Parameters:
      desiredWidth - the desired length
      desiredScale - the desired scale (ignored)
      errorOnTrunc - throw error on truncation
      Throws:
      StandardException - Thrown on non-zero truncation if errorOnTrunc is true