java.lang.Object
org.apache.derby.iapi.types.DataType
org.apache.derby.iapi.types.SQLBinary
org.apache.derby.iapi.types.SQLBlob
- All Implemented Interfaces:
- BitDataValue, CloneableObject, ConcatableDataValue, DataValueDescriptor, java.io.Externalizable, org.apache.derby.iapi.services.io.Formatable, Orderable, java.io.Serializable, org.apache.derby.iapi.services.io.Storable, org.apache.derby.iapi.services.io.StreamStorable, org.apache.derby.iapi.services.io.TypedFormat, VariableSizeDataValue
- public class SQLBlob
- extends SQLBinary
SQLBlob satisfies the DataValueDescriptor,
interfaces (i.e., OrderableDataType).
It uses the SQLLongVarbit implementation, which implements a String holder,
e.g. for storing a column value; it can be specified
when constructed to not allow nulls. Nullability cannot be changed
after construction.
Because LOB types are not orderable, we'll override those
methods...
| Methods inherited from class org.apache.derby.iapi.types.SQLBinary |
charLength, checkHostVariable, cloneObject, compare, compare, concatenate, equals, estimateMemoryUsage, getBytes, getClone, getLength, getStream, getString, getValue, greaterOrEquals, greaterThan, hashCode, isNull, lessOrEquals, lessThan, loadStream, notEquals, objectNull, readExternal, readExternalFromArray, restoreToNull, returnStream, setFrom, setStream, setValue, setValue, substring, toString, writeExternal |
| Methods inherited from class org.apache.derby.iapi.types.DataType |
coalesce, dataTypeConversion, equals, flip, genericSetObject, getBoolean, getByte, getDate, getDouble, getFloat, getInt, getLong, getNationalString, getObject, getShort, getTime, getTimestamp, in, invalidFormat, isNotNull, isNullOp, outOfRange, setBigDecimal, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, throwLangSetMismatch, throwLangSetMismatch, typeToBigDecimal |
| Methods inherited from interface org.apache.derby.iapi.types.DataValueDescriptor |
coalesce, getBoolean, getByte, getDate, getDouble, getFloat, getInt, getLong, getObject, getShort, getTime, getTimestamp, in, isNotNull, isNullOp, setBigDecimal, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, typeToBigDecimal |
SQLBlob
public SQLBlob()
SQLBlob
public SQLBlob(byte[] val)
getTypeName
public java.lang.String getTypeName()
- Description copied from interface:
DataValueDescriptor
- Get the SQL name of the datatype
getNewNull
public DataValueDescriptor getNewNull()
- Description copied from interface:
DataValueDescriptor
- Get a new null value of the same type as this data value.
normalize
public void normalize(DataTypeDescriptor desiredType,
DataValueDescriptor source)
throws org.apache.derby.iapi.error.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
setWidth
public DataValueDescriptor setWidth(int desiredWidth,
int desiredScale,
boolean errorOnTrunc)
throws org.apache.derby.iapi.error.StandardException
getTypeFormatId
public int getTypeFormatId()
- Return my format identifier.
setValueFromResultSet
public void setValueFromResultSet(java.sql.ResultSet resultSet,
int colNumber,
boolean isNullable)
throws java.sql.SQLException
- Description copied from interface:
DataValueDescriptor
- Set the value based on the value for the specified DataValueDescriptor
from the specified ResultSet.
typePrecedence
public int typePrecedence()
- Description copied from interface:
DataValueDescriptor
- 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
setInto
public void setInto(java.sql.PreparedStatement ps,
int position)
throws java.sql.SQLException,
org.apache.derby.iapi.error.StandardException
- Description copied from class:
SQLBinary
- Adding this method to ensure that super class' setInto method doesn't get called
that leads to the violation of JDBC spec( untyped nulls ) when batching is turned on.
- Specified by:
setInto in interface DataValueDescriptor- Overrides:
setInto in class SQLBinary