Package org.apache.derby.iapi.types
Class SQLLongvarchar
- java.lang.Object
-
- org.apache.derby.iapi.types.DataType
-
- org.apache.derby.iapi.types.SQLChar
-
- org.apache.derby.iapi.types.SQLVarchar
-
- org.apache.derby.iapi.types.SQLLongvarchar
-
- All Implemented Interfaces:
java.io.Externalizable
,java.io.Serializable
,java.lang.Comparable
,Formatable
,Storable
,StreamStorable
,TypedFormat
,ConcatableDataValue
,DataValueDescriptor
,Orderable
,StringDataValue
,VariableSizeDataValue
- Direct Known Subclasses:
CollatorSQLLongvarchar
public class SQLLongvarchar extends SQLVarchar
SQLLongvarchar represents a LONG VARCHAR value with UCS_BASIC collation. SQLLongvarchar is mostly the same as SQLVarchar, so it is implemented as a subclass of SQLVarchar. Only those methods with different behavior are implemented here.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.derby.iapi.types.SQLChar
_clobValue, arg_passer, CHAR_HEADER_GENERATOR, RETURN_SPACE_THRESHOLD, stream
-
Fields inherited from interface org.apache.derby.iapi.types.DataValueDescriptor
UNKNOWN_LOGICAL_LENGTH
-
Fields inherited from interface org.apache.derby.iapi.types.Orderable
ORDER_OP_EQUALS, ORDER_OP_GREATEROREQUALS, ORDER_OP_GREATERTHAN, ORDER_OP_LESSOREQUALS, ORDER_OP_LESSTHAN
-
Fields inherited from interface org.apache.derby.iapi.types.StringDataValue
BOTH, COLLATION_DERIVATION_EXPLICIT, COLLATION_DERIVATION_IMPLICIT, COLLATION_DERIVATION_NONE, COLLATION_TYPE_TERRITORY_BASED, COLLATION_TYPE_TERRITORY_BASED_IDENTICAL, COLLATION_TYPE_TERRITORY_BASED_PRIMARY, COLLATION_TYPE_TERRITORY_BASED_SECONDARY, COLLATION_TYPE_TERRITORY_BASED_TERTIARY, COLLATION_TYPE_UCS_BASIC, LEADING, TRAILING
-
Fields inherited from interface org.apache.derby.iapi.types.VariableSizeDataValue
IGNORE_PRECISION
-
-
Constructor Summary
Constructors Constructor Description SQLLongvarchar()
SQLLongvarchar(java.lang.String val)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DataValueDescriptor
cloneValue(boolean forceMaterialization)
Clone this DataValueDescriptor.StringDataValue
concatenate(StringDataValue leftOperand, StringDataValue rightOperand, StringDataValue result)
The SQL concatenation '||' operator.DataValueDescriptor
getNewNull()
Get a new null value of the same type as this data value.int
getTypeFormatId()
Return my format identifier.java.lang.String
getTypeName()
Get the SQL name of the datatypeStringDataValue
getValue(java.text.RuleBasedCollator collatorForComparison)
Gets either SQLChar/SQLVarchar/SQLLongvarchar/SQLClob(base classes) or CollatorSQLChar/CollatorSQLVarchar/CollatorSQLLongvarch/CollatorSQLClob (subclasses).protected void
normalize(DataTypeDescriptor desiredType, java.lang.String sourceValue)
int
typePrecedence()
Each built-in type in JSQL has a precedence.-
Methods inherited from class org.apache.derby.iapi.types.SQLVarchar
growBy, normalize
-
Methods inherited from class org.apache.derby.iapi.types.SQLChar
ansiTrim, charLength, cloneHolder, compare, compare, copyState, equals, estimateMemoryUsage, getBoolean, getByte, getCharArray, getCollationKey, getCollatorForCollation, getDate, getDate, getDouble, getFloat, getInt, getLength, getLocaleFinder, getLong, getNewVarchar, getObject, getRawDataAndZeroIt, getShort, getStream, getStreamHeaderGenerator, getStreamWithDescriptor, getString, getTime, getTime, getTimestamp, getTimestamp, getTraceString, greaterOrEquals, greaterThan, hashCode, hashCodeForCollation, hasNonBlankChars, isNull, lessOrEquals, lessThan, like, like, loadStream, locate, lower, notEquals, readExternal, readExternal, readExternalClobFromArray, readExternalFromArray, restoreToNull, returnStream, setBigDecimal, setFrom, setInto, setLocaleFinder, setObjectForCast, setStream, setStreamHeaderFormat, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValueFromResultSet, setWidth, stringCompare, stringCompare, stringCompare, substring, throwStreamingIOException, toString, typeToBigDecimal, upper, writeClobUTF, writeExternal, zeroRawData
-
Methods inherited from class org.apache.derby.iapi.types.DataType
checkHostVariable, coalesce, compare, compare, compareTo, dataTypeConversion, equals, flip, genericSetObject, getBytes, getTypeName, hasStream, in, invalidFormat, isNotNull, isNullOp, outOfRange, recycle, setInto, setObject, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, throwLangSetMismatch, throwLangSetMismatch
-
-
-
-
Method Detail
-
getTypeName
public java.lang.String getTypeName()
Description copied from interface:DataValueDescriptor
Get the SQL name of the datatype- Specified by:
getTypeName
in interfaceDataValueDescriptor
- Overrides:
getTypeName
in classSQLVarchar
- Returns:
- The SQL name of the datatype
-
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 ifforceMaterialization
is set tofalse
. An example is if you need to access the value you just read usingcloneValue
after the current transaction has ended, or after the source result set has been closed.- Specified by:
cloneValue
in interfaceDataValueDescriptor
- Overrides:
cloneValue
in classSQLVarchar
- Parameters:
forceMaterialization
- any streams representing the data value will be materialized iftrue
, the data value will be kept as a stream if possible iffalse
- Returns:
- A clone of the
DataValueDescriptor
with the same initial value as this. - See Also:
DataValueDescriptor.cloneValue(boolean)
-
getNewNull
public DataValueDescriptor getNewNull()
Description copied from interface:DataValueDescriptor
Get a new null value of the same type as this data value.- Specified by:
getNewNull
in interfaceDataValueDescriptor
- Overrides:
getNewNull
in classSQLVarchar
- See Also:
DataValueDescriptor.getNewNull()
-
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 interfaceStringDataValue
- Overrides:
getValue
in classSQLVarchar
- See Also:
StringDataValue.getValue(RuleBasedCollator)
-
getTypeFormatId
public int getTypeFormatId()
Return my format identifier.- Specified by:
getTypeFormatId
in interfaceTypedFormat
- Overrides:
getTypeFormatId
in classSQLVarchar
- Returns:
- The identifier. (A UUID stuffed in an array of 16 bytes).
- See Also:
TypedFormat.getTypeFormatId()
-
normalize
protected void normalize(DataTypeDescriptor desiredType, java.lang.String sourceValue) throws StandardException
- Overrides:
normalize
in classSQLVarchar
- Throws:
StandardException
-
concatenate
public StringDataValue concatenate(StringDataValue leftOperand, StringDataValue rightOperand, StringDataValue result) throws StandardException
Description copied from interface:StringDataValue
The SQL concatenation '||' operator.- Specified by:
concatenate
in interfaceStringDataValue
- Overrides:
concatenate
in classSQLChar
- 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- See Also:
StringDataValue.concatenate(org.apache.derby.iapi.types.StringDataValue, org.apache.derby.iapi.types.StringDataValue, org.apache.derby.iapi.types.StringDataValue)
-
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 interfaceDataValueDescriptor
- Overrides:
typePrecedence
in classSQLVarchar
- Returns:
- The precedence of this type.
- See Also:
DataValueDescriptor.typePrecedence()
-
-