| java.lang.Object org.apache.derby.iapi.types.DataType org.apache.derby.iapi.types.SQLBinary
All known Subclasses: org.apache.derby.iapi.types.SQLBlob, org.apache.derby.iapi.types.SQLBit,
SQLBinary | abstract class SQLBinary extends DataType implements BitDataValue(Code) | | SQLBinary is the abstract class for the binary datatypes.
- CHAR FOR BIT DATA
- VARCHAR FOR BIT DATA
- LONG VARCHAR
- BLOB
Format :
Length is encoded to support Cloudscape 5.x databases where the length was stored as the number of bits.
The first bit of the first byte indicates if the format is an old (Cloudscape 5.x) style or a new Derby style.
Derby then uses the next two bits to indicate how the length is encoded.
is one of N styles.
- (5.x format zero) 4 byte Java format integer value 0 - either is 0 bytes/bits or an unknown number of bytes.
- (5.x format bits) 4 byte Java format integer value >0 (positive) - number of bits in , number of bytes in
is the minimum number of bytes required to store the number of bits.
- (Derby format) 1 byte encoded length (0 <= L <= 31) - number of bytes of - encoded = 0x80 & L
- (Derby format) 3 byte encoded length (32 <= L < 64k) - number of bytes of - encoded = 0xA0
- (Derby format) 5 byte encoded length (64k <= L < 2G) - number of bytes of - encoded = 0xC0
- (future) to be determined L >= 2G - encoded 0xE0
(0xE0 is an esacape to allow any number of arbitary encodings in the future).
When the value was written from a byte array the Derby encoded byte
length format was always used from Derby 10.0 onwards (ie. all open
source versions).
When the value was written from a stream (e.g. PreparedStatement.setBinaryStream)
then the Cloudscape '5.x format zero' was used by 10.0 and 10.1.
The was due to the class RawToBinaryFormatStream always writing
four zero bytes for the length before the data.
The Cloudscape '5.x format bits' format I think was never used by Derby.
|
Constructor Summary | |
| SQLBinary() no-arg constructor, required by Formattable. | | SQLBinary(byte[] val) |
Method Summary | |
final public NumberDataValue | charLength(NumberDataValue result) This method implements the char_length function for bit. | final public void | checkHostVariable(int declaredLength) Host variables are rejected if their length is
bigger than the declared length, regardless of
if the trailing bytes are the pad character. | final public Object | cloneObject() From CloneableObject
Shallow clone a StreamStorable without objectifying. | final public boolean | compare(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV) | final public int | compare(DataValueDescriptor other) | final public BitDataValue | concatenate(BitDataValue left, BitDataValue right, BitDataValue result) | final public BooleanDataValue | equals(DataValueDescriptor left, DataValueDescriptor right) The = operator as called from the language module, as opposed to
the storage module. | public int | estimateMemoryUsage() | final public byte[] | getBytes() | final public DataValueDescriptor | getClone() | final public int | getLength() | abstract int | getMaxMemoryUsage() | final public InputStream | getStream() | final public String | getString() Used by JDBC -- string should not contain
SQL92 formatting. | byte[] | getValue() | final public BooleanDataValue | greaterOrEquals(DataValueDescriptor left, DataValueDescriptor right) The >= operator as called from the language module, as opposed to
the storage module. | final public BooleanDataValue | greaterThan(DataValueDescriptor left, DataValueDescriptor right) The > operator as called from the language module, as opposed to
the storage module. | final public int | hashCode() | final public boolean | isNull() see if the Bit value is null. | final public BooleanDataValue | lessOrEquals(DataValueDescriptor left, DataValueDescriptor right) The <= operator as called from the language module, as opposed to
the storage module. | final public BooleanDataValue | lessThan(DataValueDescriptor left, DataValueDescriptor right) The < operator as called from the language module, as opposed to
the storage module. | final public void | loadStream() | final public BooleanDataValue | notEquals(DataValueDescriptor left, DataValueDescriptor right) The <> operator as called from the language module, as opposed to
the storage module. | boolean | objectNull(Object o) | final public void | readExternal(ObjectInput in) | final public void | readExternalFromArray(ArrayInputStream in) | final public void | restoreToNull() | final public InputStream | returnStream() | final protected void | setFrom(DataValueDescriptor theValue) | public void | setInto(PreparedStatement ps, int position) 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. | final public void | setStream(InputStream newStream) Set me to the value represented by this stream.
The format of the stream is the on-disk format
described in this class's javadoc. | final public void | setValue(byte[] theValue) | final public void | setValue(InputStream theStream, int valueLength) Set the value from the stream which is in the on-disk format. | final public ConcatableDataValue | substring(NumberDataValue start, NumberDataValue length, ConcatableDataValue result, int maxLen) The SQL substr() function. | final public String | toString() | final public void | writeExternal(ObjectOutput out) Write the value out from the byte array (not called if null)
using the 8.1 encoding. |
PAD | final static byte PAD(Code) | | |
dataValue | byte[] dataValue(Code) | | |
stream | InputStream stream(Code) | | Value as a stream, this stream represents the on-disk
format of the value. That is it has length information
encoded in the first fe bytes.
|
streamValueLength | int streamValueLength(Code) | | Length of the value in bytes when this value
is set as a stream. Represents the length of the
value itself and not the length of the stream
which contains this length encoded as the first
few bytes. If the value of the stream is unknown
then this will be set to -1. If this value is
not set as a stream then this value should be ignored.
|
SQLBinary | SQLBinary()(Code) | | no-arg constructor, required by Formattable.
|
SQLBinary | SQLBinary(byte[] val)(Code) | | |
checkHostVariable | final public void checkHostVariable(int declaredLength) throws StandardException(Code) | | Host variables are rejected if their length is
bigger than the declared length, regardless of
if the trailing bytes are the pad character.
exception: StandardException - Variable is too big. |
cloneObject | final public Object cloneObject()(Code) | | From CloneableObject
Shallow clone a StreamStorable without objectifying. This is used to avoid
unnecessary objectifying of a stream object. The only difference of this method
from getClone is this method does not objectify a stream. beetle 4896
|
estimateMemoryUsage | public int estimateMemoryUsage()(Code) | | |
getMaxMemoryUsage | abstract int getMaxMemoryUsage()(Code) | | Return max memory usage for a SQL Binary
|
greaterOrEquals | final public BooleanDataValue greaterOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException(Code) | | The >= operator as called from the language module, as opposed to
the storage module.
Parameters: left - The value on the left side of the >= Parameters: right - The value on the right side of the >= A SQL boolean value telling whether the first operand isgreater than or equal to the second operand exception: StandardException - Thrown on error |
hashCode | final public int hashCode()(Code) | | |
lessOrEquals | final public BooleanDataValue lessOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException(Code) | | The <= operator as called from the language module, as opposed to
the storage module.
Parameters: left - The value on the left side of the <= Parameters: right - The value on the right side of the <= A SQL boolean value telling whether the first operand isless than or equal to the second operand exception: StandardException - Thrown on error |
setInto | public void setInto(PreparedStatement ps, int position) throws SQLException, StandardException(Code) | | 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.
|
setStream | final public void setStream(InputStream newStream)(Code) | | Set me to the value represented by this stream.
The format of the stream is the on-disk format
described in this class's javadoc. That is the
length is encoded in the first few bytes of the
stream.
|
setValue | final public void setValue(byte[] theValue)(Code) | | |
setValue | final public void setValue(InputStream theStream, int valueLength)(Code) | | Set the value from the stream which is in the on-disk format.
Parameters: theStream - On disk format of the stream Parameters: valueLength - length of the logical value in bytes. |
writeExternal | final public void writeExternal(ObjectOutput out) throws IOException(Code) | | Write the value out from the byte array (not called if null)
using the 8.1 encoding.
exception: IOException - io exception |
Methods inherited from org.apache.derby.iapi.types.DataType | public void checkHostVariable(int declaredLength) throws StandardException(Code)(Java Doc) public Object cloneObject()(Code)(Java Doc) public DataValueDescriptor coalesce(DataValueDescriptor[] argumentsList, DataValueDescriptor returnValue) throws StandardException(Code)(Java Doc) public boolean compare(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV) throws StandardException(Code)(Java Doc) final protected StandardException dataTypeConversion(String targetType)(Code)(Java Doc) public BooleanDataValue equals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException(Code)(Java Doc) public boolean equals(Object other)(Code)(Java Doc) protected static int flip(int operator)(Code)(Java Doc) void genericSetObject(Object theValue) throws StandardException(Code)(Java Doc) public boolean getBoolean() throws StandardException(Code)(Java Doc) public byte getByte() throws StandardException(Code)(Java Doc) public byte[] getBytes() throws StandardException(Code)(Java Doc) public Date getDate(Calendar cal) throws StandardException(Code)(Java Doc) public double getDouble() throws StandardException(Code)(Java Doc) public float getFloat() throws StandardException(Code)(Java Doc) public int getInt() throws StandardException(Code)(Java Doc) public long getLong() throws StandardException(Code)(Java Doc) protected String getNationalString(LocaleFinder localeFinder) throws StandardException(Code)(Java Doc) public Object getObject() throws StandardException(Code)(Java Doc) public short getShort() throws StandardException(Code)(Java Doc) public InputStream getStream() throws StandardException(Code)(Java Doc) public Time getTime(Calendar cal) throws StandardException(Code)(Java Doc) public Timestamp getTimestamp(Calendar cal) throws StandardException(Code)(Java Doc) public String getTraceString() throws StandardException(Code)(Java Doc) String getTypeName(String className)(Code)(Java Doc) public BooleanDataValue greaterOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException(Code)(Java Doc) public BooleanDataValue greaterThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException(Code)(Java Doc) public BooleanDataValue in(DataValueDescriptor left, DataValueDescriptor[] inList, boolean orderedList) throws StandardException(Code)(Java Doc) final protected StandardException invalidFormat()(Code)(Java Doc) final public BooleanDataValue isNotNull()(Code)(Java Doc) final public BooleanDataValue isNullOp()(Code)(Java Doc) public BooleanDataValue lessOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException(Code)(Java Doc) public BooleanDataValue lessThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException(Code)(Java Doc) public void normalize(DataTypeDescriptor desiredType, DataValueDescriptor source) throws StandardException(Code)(Java Doc) public BooleanDataValue notEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException(Code)(Java Doc) final protected StandardException outOfRange()(Code)(Java Doc) public void setBigDecimal(Number bigDecimal) throws StandardException(Code)(Java Doc) protected void setFrom(DataValueDescriptor dvd) throws StandardException(Code)(Java Doc) public void setInto(PreparedStatement ps, int position) throws SQLException, StandardException(Code)(Java Doc) public void setInto(ResultSet rs, int position) throws SQLException, StandardException(Code)(Java Doc) void setObject(Object theValue) throws StandardException(Code)(Java Doc) public void setObjectForCast(Object theValue, boolean instanceOfResultType, String resultTypeClassName) throws StandardException(Code)(Java Doc) public void setToNull()(Code)(Java Doc) public void setValue(Time theValue) throws StandardException(Code)(Java Doc) public void setValue(Time theValue, Calendar cal) throws StandardException(Code)(Java Doc) public void setValue(Timestamp theValue) throws StandardException(Code)(Java Doc) public void setValue(Timestamp theValue, Calendar cal) throws StandardException(Code)(Java Doc) public void setValue(Date theValue) throws StandardException(Code)(Java Doc) public void setValue(Date theValue, Calendar cal) throws StandardException(Code)(Java Doc) public void setValue(String theValue) throws StandardException(Code)(Java Doc) public void setValue(int theValue) throws StandardException(Code)(Java Doc) public void setValue(double theValue) throws StandardException(Code)(Java Doc) public void setValue(float theValue) throws StandardException(Code)(Java Doc) public void setValue(short theValue) throws StandardException(Code)(Java Doc) public void setValue(long theValue) throws StandardException(Code)(Java Doc) public void setValue(byte theValue) throws StandardException(Code)(Java Doc) public void setValue(boolean theValue) throws StandardException(Code)(Java Doc) public void setValue(byte[] theValue) throws StandardException(Code)(Java Doc) final public void setValue(DataValueDescriptor dvd) throws StandardException(Code)(Java Doc) public void setValue(InputStream theStream, int valueLength) throws StandardException(Code)(Java Doc) public void throwLangSetMismatch(Object value) throws StandardException(Code)(Java Doc) void throwLangSetMismatch(String argTypeName) throws StandardException(Code)(Java Doc) public int typePrecedence()(Code)(Java Doc) public int typeToBigDecimal() throws StandardException(Code)(Java Doc)
|
|
|