Interface StringDataValue

    • Field Detail

      • COLLATION_DERIVATION_NONE

        static final int COLLATION_DERIVATION_NONE
        For a character string type, the collation derivation should always be "explicit"(not possible in Derby 10.3), "implicit" or "none". We will start by setting it to "implicit" in TypeDescriptorImpl. At runtime, only character string types which are results of aggregate methods dealing with operands with different collation types should have a collation derivation of "none". All the other character string types should have their collation derivation set to "implicit".
        See Also:
        Constant Field Values
      • COLLATION_TYPE_UCS_BASIC

        static final int COLLATION_TYPE_UCS_BASIC
        In Derby 10.3, it is possible to have database with one of the following two configurations 1)all the character columns will have a collation type of UCS_BASIC. This is same as what we do in Derby 10.2 release. 2)all the character string columns belonging to system tables will have collation type of UCS_BASIC but all the character string columns belonging to user tables will have collation type of TERRITORY_BASED. Data types will start with collation type defaulting to UCS_BASIC in TypeDescriptorImpl. This collation type of course makes sense for character string types only. It will be ignored for the rest of the types. If a character's collation type should be TERRITORY_BASED, then DTD.setCollationType can be called to change the default of UCS_BASIC. The collation types TERRITORY_BASED:PRIMARY through TERRITORY_BASED:IDENTICAL are variants of the TERRITORY_BASED type, with explicit collation strength.
        See Also:
        Constant Field Values
      • COLLATION_TYPE_TERRITORY_BASED_PRIMARY

        static final int COLLATION_TYPE_TERRITORY_BASED_PRIMARY
        See Also:
        Constant Field Values
      • COLLATION_TYPE_TERRITORY_BASED_SECONDARY

        static final int COLLATION_TYPE_TERRITORY_BASED_SECONDARY
        See Also:
        Constant Field Values
      • COLLATION_TYPE_TERRITORY_BASED_TERTIARY

        static final int COLLATION_TYPE_TERRITORY_BASED_TERTIARY
        See Also:
        Constant Field Values
      • COLLATION_TYPE_TERRITORY_BASED_IDENTICAL

        static final int COLLATION_TYPE_TERRITORY_BASED_IDENTICAL
        See Also:
        Constant Field Values
    • Method Detail

      • concatenate

        StringDataValue concatenate​(StringDataValue leftOperand,
                                    StringDataValue rightOperand,
                                    StringDataValue result)
                             throws StandardException
        The SQL concatenation '||' operator.
        Parameters:
        leftOperand - String on the left hand side of '||'
        rightOperand - String on the right hand side of '||'
        result - The result of a previous call to this method, null if not called yet.
        Returns:
        A ConcatableDataValue containing the result of the '||'
        Throws:
        StandardException - Thrown on error
      • locate

        NumberDataValue locate​(StringDataValue searchFrom,
                               NumberDataValue start,
                               NumberDataValue result)
                        throws StandardException
        Position in searchFrom of the first occurrence of this.value. The search begins from position start. 0 is returned if searchFrom does not contain this.value. Position 1 is the first character in searchFrom.
        Parameters:
        searchFrom - - The string to search from
        start - - The position to search from in string searchFrom
        result - - The object to return
        Returns:
        The position in searchFrom the fist occurrence of this.value. 0 is returned if searchFrom does not contain this.value.
        Throws:
        StandardException - Thrown on error
      • getCharArray

        char[] getCharArray()
                     throws StandardException
        Get a char array. Typically, this is a simple getter that is cheaper than getString() because we always need to create a char array when doing I/O. Use this instead of getString() where reasonable.

        WARNING: may return a character array that has spare characters at the end. MUST be used in conjunction with getLength() to be safe.

        Throws:
        StandardException - Thrown on error
      • getValue

        StringDataValue getValue​(java.text.RuleBasedCollator collatorForComparison)
        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.
      • getStreamHeaderGenerator

        StreamHeaderGenerator getStreamHeaderGenerator()
        Returns the stream header generator for the string data value.

        The generator writes the correct header into the destination buffer or stream and also keeps track of whether appending an end-of-stream marker is required or not.

        Note that the generator may fail to generate a header if there is no context at the time the header is asked for, and the mode hasn't been set explicitly.

        See Also:
        setStreamHeaderFormat(java.lang.Boolean)
      • setStreamHeaderFormat

        void setStreamHeaderFormat​(java.lang.Boolean usePreTenFiveHdrFormat)
        Tells the data value descriptor which CLOB stream header format to use.
        Parameters:
        usePreTenFiveHdrFormat - true if the database accessed is prior to version 10.5, false if the version is 10.5 or newer, and null if unknown at this time
      • getStreamWithDescriptor

        CharacterStreamDescriptor getStreamWithDescriptor()
                                                   throws StandardException
        Returns a descriptor for the input stream for this data value.

        The descriptor contains information about header data, current positions, length, whether the stream should be buffered or not, and if the stream is capable of repositioning itself.

        Returns:
        A descriptor for the stream, which includes a reference to the stream itself.
        Throws:
        StandardException - if obtaining the descriptor fails, or if the value isn't represented as a stream.