Package org.apache.derby.iapi.types
Class SQLVarbit
- java.lang.Object
-
- org.apache.derby.iapi.types.DataType
-
- org.apache.derby.iapi.types.SQLBinary
-
- org.apache.derby.iapi.types.SQLBit
-
- org.apache.derby.iapi.types.SQLVarbit
-
- All Implemented Interfaces:
java.io.Externalizable
,java.io.Serializable
,java.lang.Comparable
,Formatable
,Storable
,StreamStorable
,TypedFormat
,BitDataValue
,ConcatableDataValue
,DataValueDescriptor
,Orderable
,VariableSizeDataValue
- Direct Known Subclasses:
SQLLongVarbit
public class SQLVarbit extends SQLBit
SQLVarbit represents the SQL type VARCHAR FOR BIT DATA It is an extension of SQLBit and is virtually indistinguishable other than normalization.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.derby.iapi.types.SQLBinary
_blobValue, dataValue, PAD, stream, streamValueLength
-
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.VariableSizeDataValue
IGNORE_PRECISION
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) int
getMaxMemoryUsage()
Return max memory usage for a SQL VarbitDataValueDescriptor
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 datatypevoid
normalize(DataTypeDescriptor desiredType, DataValueDescriptor source)
Normalization method - this method may be called when putting a value into a SQLBit, for example, when inserting into a SQLBit column.void
setWidth(int desiredWidth, int desiredScale, boolean errorOnTrunc)
Set the width of the to the desired value.int
typePrecedence()
Each built-in type in JSQL has a precedence.-
Methods inherited from class org.apache.derby.iapi.types.SQLBit
getObject, setObject, setValueFromResultSet
-
Methods inherited from class org.apache.derby.iapi.types.SQLBinary
charLength, checkHostVariable, cloneHolder, cloneValue, compare, compare, concatenate, equals, estimateMemoryUsage, getBytes, getLength, getStream, getString, getTraceString, getValue, greaterOrEquals, greaterThan, hashCode, isNull, lessOrEquals, lessThan, loadStream, notEquals, objectNull, readExternal, restoreToNull, returnStream, setFrom, setInto, setStream, setValue, setValue, setValue, substring, toString, truncate, writeExternal
-
Methods inherited from class org.apache.derby.iapi.types.DataType
coalesce, compare, compare, compareTo, dataTypeConversion, equals, flip, genericSetObject, getBoolean, getByte, getDate, getDouble, getFloat, getInt, getLong, getShort, getTime, getTimestamp, getTypeName, hasStream, in, invalidFormat, isNotNull, isNullOp, outOfRange, readExternalFromArray, recycle, setBigDecimal, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, throwLangSetMismatch, throwLangSetMismatch, typeToBigDecimal
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.derby.iapi.types.DataValueDescriptor
coalesce, compare, compare, getBoolean, getByte, getDate, getDouble, getFloat, getInt, getLong, getShort, getTime, getTimestamp, hasStream, in, isNotNull, isNullOp, readExternalFromArray, recycle, setBigDecimal, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, typeToBigDecimal
-
-
-
-
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 classSQLBit
- Returns:
- The SQL name of the datatype
-
getMaxMemoryUsage
int getMaxMemoryUsage()
Return max memory usage for a SQL Varbit- Overrides:
getMaxMemoryUsage
in classSQLBit
-
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 classSQLBit
- See Also:
DataValueDescriptor.getNewNull()
-
getTypeFormatId
public int getTypeFormatId()
Return my format identifier.- Specified by:
getTypeFormatId
in interfaceTypedFormat
- Overrides:
getTypeFormatId
in classSQLBit
- Returns:
- The identifier. (A UUID stuffed in an array of 16 bytes).
- See Also:
TypedFormat.getTypeFormatId()
-
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 interfaceDataValueDescriptor
- Overrides:
normalize
in classSQLBit
- Parameters:
desiredType
- The type to normalize the source column tosource
- 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).- Specified by:
setWidth
in interfaceVariableSizeDataValue
- Overrides:
setWidth
in classSQLBit
- Parameters:
desiredWidth
- the desired lengthdesiredScale
- the desired scale (ignored)errorOnTrunc
- throw error on truncation- Throws:
StandardException
- Thrown on non-zero truncation if errorOnTrunc is true
-
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 classSQLBit
- Returns:
- The precedence of this type.
- See Also:
DataValueDescriptor.typePrecedence()
-
-