Class SQLVarchar

    • Constructor Detail

      • SQLVarchar

        public SQLVarchar()
      • SQLVarchar

        public SQLVarchar​(java.lang.String val)
      • SQLVarchar

        public SQLVarchar​(java.sql.Clob val)
      • SQLVarchar

        public SQLVarchar​(char[] val)

        This is a special constructor used when we need to represent a password as a VARCHAR (see DERBY-866). If you need a general-purpose constructor for char[] values and you want to re-use this constructor, make sure to read the comment on the SQLChar( char[] ) constructor.

    • Method Detail

      • cloneValue

        public DataValueDescriptor cloneValue​(boolean forceMaterialization)
        Description copied from interface: DataValueDescriptor
        Clone this DataValueDescriptor. Results in a new object that has the same value as this but can be modified independently.

        Even though the objects can be modified independently regardless of the value of forceMaterialization, both the clone and the original may be dependent on the store state if forceMaterialization is set to false. An example is if you need to access the value you just read using cloneValue after the current transaction has ended, or after the source result set has been closed.

        Specified by:
        cloneValue in interface DataValueDescriptor
        Overrides:
        cloneValue in class SQLChar
        Parameters:
        forceMaterialization - any streams representing the data value will be materialized if true, the data value will be kept as a stream if possible if false
        Returns:
        A clone of the DataValueDescriptor with the same initial value as this.
        See Also:
        DataValueDescriptor.cloneValue(boolean)
      • getValue

        public StringDataValue getValue​(java.text.RuleBasedCollator collatorForComparison)
        Description copied from interface: StringDataValue
        Gets either SQLChar/SQLVarchar/SQLLongvarchar/SQLClob(base classes) or CollatorSQLChar/CollatorSQLVarchar/CollatorSQLLongvarch/CollatorSQLClob (subclasses). Whether this method returns the base class or the subclass depends on the value of the RuleBasedCollator. If RuleBasedCollator is null, then the object returned would be baseclass otherwise it would be subcalss.
        Specified by:
        getValue in interface StringDataValue
        Overrides:
        getValue in class SQLChar
        See Also:
        StringDataValue.getValue(RuleBasedCollator)
      • normalize

        public void normalize​(DataTypeDescriptor desiredType,
                              DataValueDescriptor source)
                       throws StandardException
        Normalization method - this method may be called when putting a value into a SQLVarchar, for example, when inserting into a SQLVarchar column. See NormalizeResultSet in execution.
        Specified by:
        normalize in interface DataValueDescriptor
        Overrides:
        normalize in class SQLChar
        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
      • 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 SQLChar
        Returns:
        The precedence of this type.
        See Also:
        DataValueDescriptor.typePrecedence()
      • growBy

        protected final int growBy()
        returns the reasonable minimum amount by which the array can grow . See readExternal. when we know that the array needs to grow by at least one byte, it is not performant to grow by just one byte instead this amount is used to provide a resonable growby size.
        Overrides:
        growBy in class SQLChar
        Returns:
        minimum reasonable growby size