Class SQLBoolean
- All Implemented Interfaces:
Externalizable, Serializable, Comparable, Formatable, Storable, TypedFormat, BooleanDataValue, DataValueDescriptor, Orderable
Because DataType is a subtype of DataType, SQLBoolean can play a role in either a DataType/Row or a DataType/Row, interchangeably.
We assume the store has a flag for nullness of the value, and simply return a 0-length array for the stored form when the value is null.
PERFORMANCE: There are likely alot of performance improvements possible for this implementation -- it new's Integer more than it probably wants to.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final SQLBoolean(package private) static final intprivate static final SQLBooleanprivate booleanprivate boolean(package private) static final SQLBooleanprivate booleanFields inherited from interface DataValueDescriptor
UNKNOWN_LOGICAL_LENGTHFields inherited from interface Orderable
ORDER_OP_EQUALS, ORDER_OP_GREATEROREQUALS, ORDER_OP_GREATERTHAN, ORDER_OP_LESSOREQUALS, ORDER_OP_LESSTHAN -
Constructor Summary
ConstructorsModifierConstructorDescriptionSQLBoolean(boolean val) privateSQLBoolean(boolean val, boolean isnull) SQLBoolean(Boolean obj) -
Method Summary
Modifier and TypeMethodDescriptionand(BooleanDataValue otherValue) The AND operator.cloneValue(boolean forceMaterialization) Clone this DataValueDescriptor.booleancompare(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV) Compare this Orderable with a given Orderable for the purpose of qualification and sorting.intcompare(DataValueDescriptor other) Compare this Orderable with a given Orderable for the purpose of index positioning.booleanequals(boolean val) Determine whether this SQLBoolean contains the given boolean value.equals(DataValueDescriptor left, DataValueDescriptor right) The = operator as called from the language module, as opposed to the storage module.intEstimate the memory usage in bytes of the data value and the overhead of the class.booleanGets the value in the data value descriptor as a boolean.bytegetByte()Gets the value in the data value descriptor as a byte.doubleGets the value in the data value descriptor as a double.floatgetFloat()Gets the value in the data value descriptor as a float.Return an immutable BooleanDataValue with the same value as this.intgetInt()Gets the value in the data value descriptor as a int.intGets the length of the data value.longgetLong()Gets the value in the data value descriptor as a long.Get a new null value of the same type as this data value.Gets the value in the data value descriptor as a int.shortgetShort()Gets the value in the data value descriptor as a short.Gets the value in the data value descriptor as a String.intReturn my format identifier.Get the SQL name of the datatypegreaterOrEquals(DataValueDescriptor left, DataValueDescriptor right) The >= operator as called from the language module, as opposed to the storage module.greaterThan(DataValueDescriptor left, DataValueDescriptor right) The > operator as called from the language module, as opposed to the storage module.inthashCode()is(BooleanDataValue otherValue) The SQL IS operator - consult any standard SQL reference for an explanation.isNot(BooleanDataValue otherValue) Implements NOT IS.booleanisNull()Return whether the value is null or not.lessOrEquals(DataValueDescriptor left, DataValueDescriptor right) The <= operator as called from the language module, as opposed to the storage module.lessThan(DataValueDescriptor left, DataValueDescriptor right) The < operator as called from the language module, as opposed to the storage module.private static intmakeInt(boolean b) notEquals(DataValueDescriptor left, DataValueDescriptor right) The <> operator as called from the language module, as opposed to the storage module.or(BooleanDataValue otherValue) The OR operator.voidrecycle()Recycle this SQLBoolean object if possible.voidRestore this object to its (SQL)null value.voidsetBigDecimal(BigDecimal bigDecimal) Only to be called when the application sets a value using BigDecimalprotected voidsetFrom(DataValueDescriptor theValue) Set the value of this DataValueDescriptor based on the value of the specified DataValueDescriptor.final voidsetInto(PreparedStatement ps, int position) Set the value into a PreparedStatement.(package private) voidSet the value from an non-null object.voidsetValue(boolean theValue) Set the value.voidsetValue(byte theValue) Set the value of this DataValueDescriptor to the given byte value At DataType level just throws an error lower classes will overridevoidsetValue(double theValue) Set the value of this DataValueDescriptor to the given double value At DataType level just throws an error lower classes will overridevoidsetValue(float theValue) Set the value of this DataValueDescriptor to the given float value At DataType level just throws an error lower classes will overridevoidsetValue(int theValue) Set the value of this DataValueDescriptor to the given int value At DataType level just throws an error lower classes will overridevoidsetValue(long theValue) Set the value of this DataValueDescriptor to the given long value At DataType level just throws an error lower classes will overridevoidsetValue(short theValue) Set the value of this DataValueDescriptor to the given short value At DataType level just throws an error lower classes will overridevoidSet the value of this BooleanDataValue.voidSet the value of this BooleanDataValue to the given String.voidsetValueFromResultSet(ResultSet resultSet, int colNumber, boolean isNullable) Set the value based on the value for the specified DataValueDescriptor from the specified ResultSet.throwExceptionIfFalse(String sqlState, String tableName, String constraintName) Throw an exception with the given SQLState if this BooleanDataValue is false.throwExceptionIfImmediateAndFalse(String sqlState, String tableName, String constraintName, Activation a, int savedUUIDIdx) If this value is false and we have a deferred constraint, remember the violation and proceed, else throw.toString()static SQLBooleantruthValue(boolean value) Get a truth value.static SQLBooleantruthValue(DataValueDescriptor leftOperand, DataValueDescriptor rightOperand, boolean truth) Return the SQL truth value for a comparison.static SQLBooleantruthValue(DataValueDescriptor leftOperand, DataValueDescriptor rightOperand, Boolean truth) same as above, but takes a Boolean, if it is null, unknownTruthValue is returnedintEach built-in type in JSQL has a precedence.intImplementation for BOOLEAN type.static SQLBooleanReturn an unknown truth value.voidMethods inherited from class DataType
checkHostVariable, cloneHolder, coalesce, compare, compare, compareTo, dataTypeConversion, equals, flip, genericSetObject, getBytes, getDate, getStream, getTime, getTimestamp, getTraceString, getTypeName, hasStream, in, invalidFormat, isNotNull, isNullOp, normalize, outOfRange, readExternalFromArray, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, throwLangSetMismatch, throwLangSetMismatchMethods inherited from interface DataValueDescriptor
checkHostVariable, cloneHolder, coalesce, compare, compare, getBytes, getDate, getStream, getTime, getTimestamp, getTraceString, hasStream, in, isNotNull, isNullOp, normalize, readExternalFromArray, setInto, setObjectForCast, setToNull, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValue
-
Field Details
-
BOOLEAN_LENGTH
static final int BOOLEAN_LENGTH- See Also:
-
BOOLEAN_TRUE
-
BOOLEAN_FALSE
-
UNKNOWN
-
BASE_MEMORY_USAGE
private static final int BASE_MEMORY_USAGE -
value
private boolean value -
isnull
private boolean isnull -
immutable
private boolean immutable
-
-
Constructor Details
-
SQLBoolean
public SQLBoolean() -
SQLBoolean
public SQLBoolean(boolean val) -
SQLBoolean
-
SQLBoolean
private SQLBoolean(boolean val, boolean isnull)
-
-
Method Details
-
isNull
-
getBoolean
public boolean getBoolean()Description copied from class:DataTypeGets the value in the data value descriptor as a boolean. Throws an exception if the data value is not receivable as a boolean.- Specified by:
getBooleanin interfaceBooleanDataValue- Specified by:
getBooleanin interfaceDataValueDescriptor- Overrides:
getBooleanin classDataType- Returns:
- The data value as a boolean.
-
makeInt
private static int makeInt(boolean b) -
getByte
public byte getByte()Description copied from class:DataTypeGets the value in the data value descriptor as a byte. Throws an exception if the data value is not receivable as a byte.- Specified by:
getBytein interfaceDataValueDescriptor- Overrides:
getBytein classDataType- Returns:
- The data value as a byte.
- See Also:
-
getShort
public short getShort()Description copied from class:DataTypeGets the value in the data value descriptor as a short. Throws an exception if the data value is not receivable as a short.- Specified by:
getShortin interfaceDataValueDescriptor- Overrides:
getShortin classDataType- Returns:
- The data value as a short.
- See Also:
-
getInt
public int getInt()Description copied from class:DataTypeGets the value in the data value descriptor as a int. Throws an exception if the data value is not receivable as a int.- Specified by:
getIntin interfaceDataValueDescriptor- Overrides:
getIntin classDataType- Returns:
- The data value as a int.
- See Also:
-
getLong
public long getLong()Description copied from class:DataTypeGets the value in the data value descriptor as a long. Throws an exception if the data value is not receivable as a long.- Specified by:
getLongin interfaceDataValueDescriptor- Overrides:
getLongin classDataType- Returns:
- The data value as a long.
- See Also:
-
getFloat
public float getFloat()Description copied from class:DataTypeGets the value in the data value descriptor as a float. Throws an exception if the data value is not receivable as a float.- Specified by:
getFloatin interfaceDataValueDescriptor- Overrides:
getFloatin classDataType- Returns:
- The data value as a float.
- See Also:
-
getDouble
public double getDouble()Description copied from class:DataTypeGets the value in the data value descriptor as a double. Throws an exception if the data value is not receivable as a double.- Specified by:
getDoublein interfaceDataValueDescriptor- Overrides:
getDoublein classDataType- Returns:
- The data value as a double.
- See Also:
-
typeToBigDecimal
public int typeToBigDecimal()Implementation for BOOLEAN type. Convert to a BigDecimal using long- Specified by:
typeToBigDecimalin interfaceDataValueDescriptor- Overrides:
typeToBigDecimalin classDataType- Returns:
- Types.CHAR for String conversion through getString Types.DECIMAL for BigDecimal through getObject or Types.BIGINT for long conversion through getLong
-
getString
Description copied from interface:DataValueDescriptorGets the value in the data value descriptor as a String. Throws an exception if the data value is not a string.- Specified by:
getStringin interfaceDataValueDescriptor- Returns:
- The data value as a String.
-
getObject
Description copied from class:DataTypeGets the value in the data value descriptor as a int. Throws an exception if the data value is not receivable as a int.- Specified by:
getObjectin interfaceDataValueDescriptor- Overrides:
getObjectin classDataType- Returns:
- The data value as a int.
-
getLength
public int getLength()Description copied from interface:DataValueDescriptorGets the length of the data value. The meaning of this is implementation-dependent. For string types, it is the number of characters in the string. For numeric types, it is the number of bytes used to store the number. This is the actual length of this value, not the length of the type it was defined as. For example, a VARCHAR value may be shorter than the declared VARCHAR (maximum) length.- Specified by:
getLengthin interfaceDataValueDescriptor- Returns:
- The length of the data value
-
getTypeName
Description copied from interface:DataValueDescriptorGet the SQL name of the datatype- Specified by:
getTypeNamein interfaceDataValueDescriptor- Returns:
- The SQL name of the datatype
-
recycle
Recycle this SQLBoolean object if possible. If the object is immutable, create and return a new object.- Specified by:
recyclein interfaceDataValueDescriptor- Overrides:
recyclein classDataType- Returns:
- a new SQLBoolean if this object is immutable; otherwise, this object with value set to null
-
getTypeFormatId
public int getTypeFormatId()Return my format identifier.- Specified by:
getTypeFormatIdin interfaceTypedFormat- Returns:
- The identifier. (A UUID stuffed in an array of 16 bytes).
- See Also:
-
writeExternal
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOException- See Also:
-
restoreToNull
public void restoreToNull()Description copied from interface:StorableRestore this object to its (SQL)null value.- Specified by:
restoreToNullin interfaceStorable- See Also:
-
compare
Description copied from interface:DataValueDescriptorCompare this Orderable with a given Orderable for the purpose of index positioning. This method treats nulls as ordered values - that is, it treats SQL null as equal to null and greater than all other values.- Specified by:
comparein interfaceDataValueDescriptor- Parameters:
other- The Orderable to compare this one to.- Returns:
- <0 - this Orderable is less than other. 0 - this Orderable equals other. >0 - this Orderable is greater than other. The code should not explicitly look for -1, or 1.
- Throws:
StandardException- thrown on error
-
compare
public boolean compare(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV) throws StandardException Description copied from interface:DataValueDescriptorCompare this Orderable with a given Orderable for the purpose of qualification and sorting. The caller gets to determine how nulls should be treated - they can either be ordered values or unknown values.- Specified by:
comparein interfaceDataValueDescriptor- Overrides:
comparein classDataType- Parameters:
op- Orderable.ORDER_OP_EQUALS means do an = comparison. Orderable.ORDER_OP_LESSTHAN means compare this < other. Orderable.ORDER_OP_LESSOREQUALS means compare this <= other.other- The DataValueDescriptor to compare this one to.orderedNulls- True means to treat nulls as ordered values, that is, treat SQL null as equal to null, and less than all other values. False means to treat nulls as unknown values, that is, the result of any comparison with a null is the UNKNOWN truth value.unknownRV- The return value to use if the result of the comparison is the UNKNOWN truth value. In other words, if orderedNulls is false, and a null is involved in the comparison, return unknownRV. This parameter is not used orderedNulls is true.- Returns:
- true if the comparison is true (duh!)
- Throws:
StandardException- thrown on error
-
cloneValue
Description copied from interface:DataValueDescriptorClone 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 ifforceMaterializationis set tofalse. An example is if you need to access the value you just read usingcloneValueafter the current transaction has ended, or after the source result set has been closed.- Specified by:
cloneValuein interfaceDataValueDescriptor- 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
DataValueDescriptorwith the same initial value as this. - See Also:
-
getNewNull
Description copied from interface:DataValueDescriptorGet a new null value of the same type as this data value.- Specified by:
getNewNullin interfaceDataValueDescriptor- See Also:
-
setValueFromResultSet
public void setValueFromResultSet(ResultSet resultSet, int colNumber, boolean isNullable) throws SQLException Description copied from interface:DataValueDescriptorSet the value based on the value for the specified DataValueDescriptor from the specified ResultSet.- Specified by:
setValueFromResultSetin interfaceDataValueDescriptor- Parameters:
resultSet- The specified ResultSet.colNumber- The 1-based column # into the resultSet.isNullable- Whether or not the column is nullable (No need to call wasNull() if not)- Throws:
SQLException- Thrown on error- See Also:
-
setInto
Set the value into a PreparedStatement.- Specified by:
setIntoin interfaceDataValueDescriptor- Overrides:
setIntoin classDataType- Throws:
SQLException- Error setting value in PreparedStatement
-
setValue
public void setValue(boolean theValue) Description copied from class:DataTypeSet the value. At DataType level just throws an error lower classes will override- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- Contains the boolean value to set this to- See Also:
-
setValue
Description copied from interface:BooleanDataValueSet the value of this BooleanDataValue.- Specified by:
setValuein interfaceBooleanDataValue- Parameters:
theValue- Contains the boolean value to set this BooleanDataValue to. Null means set this BooleanDataValue to null.
-
setValue
public void setValue(byte theValue) Description copied from class:DataTypeSet the value of this DataValueDescriptor to the given byte value At DataType level just throws an error lower classes will override- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- The value to set this DataValueDescriptor to
-
setValue
public void setValue(short theValue) Description copied from class:DataTypeSet the value of this DataValueDescriptor to the given short value At DataType level just throws an error lower classes will override- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- The value to set this DataValueDescriptor to
-
setValue
public void setValue(int theValue) Description copied from class:DataTypeSet the value of this DataValueDescriptor to the given int value At DataType level just throws an error lower classes will override- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- The value to set this DataValueDescriptor to
-
setValue
public void setValue(long theValue) Description copied from class:DataTypeSet the value of this DataValueDescriptor to the given long value At DataType level just throws an error lower classes will override- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- The value to set this DataValueDescriptor to
-
setValue
public void setValue(float theValue) Description copied from class:DataTypeSet the value of this DataValueDescriptor to the given float value At DataType level just throws an error lower classes will override- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- The value to set this DataValueDescriptor to
-
setValue
public void setValue(double theValue) Description copied from class:DataTypeSet the value of this DataValueDescriptor to the given double value At DataType level just throws an error lower classes will override- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- The value to set this DataValueDescriptor to
-
setBigDecimal
Description copied from class:DataTypeOnly to be called when the application sets a value using BigDecimal- Specified by:
setBigDecimalin interfaceDataValueDescriptor- Overrides:
setBigDecimalin classDataType- Parameters:
bigDecimal- required to be a BigDecimal or null.- Throws:
StandardException
-
setValue
Set the value of this BooleanDataValue to the given String. String is trimmed and upcased. If resultant string is not TRUE or FALSE, then an error is thrown.- Specified by:
setValuein interfaceDataValueDescriptor- Overrides:
setValuein classDataType- Parameters:
theValue- The value to set this BooleanDataValue to- Throws:
StandardException- Thrown on error
-
setObject
-
setFrom
Description copied from class:DataTypeSet the value of this DataValueDescriptor based on the value of the specified DataValueDescriptor.- Overrides:
setFromin classDataType- Parameters:
theValue- The DataValueDescriptor that holds the value to which we want to set this DataValueDescriptor's value.- Throws:
StandardException
-
equals
public BooleanDataValue equals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException The = operator as called from the language module, as opposed to the storage module.- Specified by:
equalsin interfaceDataValueDescriptor- Overrides:
equalsin classDataType- Parameters:
left- The value on the left side of the =right- The value on the right side of the =- Returns:
- A SQL boolean value telling whether the two parameters are equal
- Throws:
StandardException- Thrown on error
-
notEquals
public BooleanDataValue notEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException The <> operator as called from the language module, as opposed to the storage module.- Specified by:
notEqualsin interfaceDataValueDescriptor- Overrides:
notEqualsin classDataType- Parameters:
left- The value on the left side of the operatorright- The value on the right side of the operator- Returns:
- A SQL boolean value telling whether the two parameters are not equal
- Throws:
StandardException- Thrown on error
-
lessThan
public BooleanDataValue lessThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException The < operator as called from the language module, as opposed to the storage module.- Specified by:
lessThanin interfaceDataValueDescriptor- Overrides:
lessThanin classDataType- Parameters:
left- The value on the left side of the operatorright- The value on the right side of the operator- Returns:
- A SQL boolean value telling whether the left operand is less than the right operand
- Throws:
StandardException- Thrown on error
-
greaterThan
public BooleanDataValue greaterThan(DataValueDescriptor left, DataValueDescriptor right) throws StandardException The > operator as called from the language module, as opposed to the storage module.- Specified by:
greaterThanin interfaceDataValueDescriptor- Overrides:
greaterThanin classDataType- Parameters:
left- The value on the left side of the operatorright- The value on the right side of the operator- Returns:
- A SQL boolean value telling whether the left operand is greater than the right operand
- Throws:
StandardException- Thrown on error
-
lessOrEquals
public BooleanDataValue lessOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException The <= operator as called from the language module, as opposed to the storage module.- Specified by:
lessOrEqualsin interfaceDataValueDescriptor- Overrides:
lessOrEqualsin classDataType- Parameters:
left- The value on the left side of the operatorright- The value on the right side of the operator- Returns:
- A SQL boolean value telling whether the left operand is less than or equal to the right operand
- Throws:
StandardException- Thrown on error
-
greaterOrEquals
public BooleanDataValue greaterOrEquals(DataValueDescriptor left, DataValueDescriptor right) throws StandardException The >= operator as called from the language module, as opposed to the storage module.- Specified by:
greaterOrEqualsin interfaceDataValueDescriptor- Overrides:
greaterOrEqualsin classDataType- Parameters:
left- The value on the left side of the operatorright- The value on the right side of the operator- Returns:
- A SQL boolean value telling whether the left operand is greater than or equal to the right operand
- Throws:
StandardException- Thrown on error
-
and
The AND operator. This implements SQL semantics for AND with unknown truth values - consult any standard SQL reference for an explanation.- Specified by:
andin interfaceBooleanDataValue- Parameters:
otherValue- The other boolean to AND with this one- Returns:
- this AND otherValue
-
or
The OR operator. This implements SQL semantics for OR with unknown truth values - consult any standard SQL reference for an explanation.- Specified by:
orin interfaceBooleanDataValue- Parameters:
otherValue- The other boolean to OR with this one- Returns:
- this OR otherValue
-
is
The SQL IS operator - consult any standard SQL reference for an explanation. Implements the following truth table: otherValue | TRUE | FALSE | UNKNOWN this |---------------------------- | TRUE | TRUE | FALSE | FALSE FALSE | FALSE | TRUE | FALSE UNKNOWN | FALSE | FALSE | TRUE- Specified by:
isin interfaceBooleanDataValue- Parameters:
otherValue- BooleanDataValue to compare to. May be TRUE, FALSE, or UNKNOWN.- Returns:
- whether this IS otherValue
-
isNot
Implements NOT IS. This reverses the sense of the is() call.- Specified by:
isNotin interfaceBooleanDataValue- Parameters:
otherValue- BooleanDataValue to compare to. May be TRUE, FALSE, or UNKNOWN.- Returns:
- NOT( this IS otherValue )
-
throwExceptionIfFalse
public BooleanDataValue throwExceptionIfFalse(String sqlState, String tableName, String constraintName) throws StandardException Throw an exception with the given SQLState if this BooleanDataValue is false. This method is useful for evaluating constraints.- Specified by:
throwExceptionIfFalsein interfaceBooleanDataValue- Parameters:
sqlState- The SQLState of the exception to throw if this SQLBoolean is false.tableName- The name of the table to include in the exception message.constraintName- The name of the failed constraint to include in the exception message.- Returns:
- this
- Throws:
StandardException- Thrown if this BooleanDataValue is false.
-
throwExceptionIfImmediateAndFalse
public BooleanDataValue throwExceptionIfImmediateAndFalse(String sqlState, String tableName, String constraintName, Activation a, int savedUUIDIdx) throws StandardException Description copied from interface:BooleanDataValueIf this value is false and we have a deferred constraint, remember the violation and proceed, else throw. See alsoAndNoShortCircuitNode.- Specified by:
throwExceptionIfImmediateAndFalsein interfaceBooleanDataValue- Parameters:
sqlState- The SQLState of the exception to throw if this SQLBoolean is false.tableName- The name of the table to include in the exception message.constraintName- The name of the failed constraint to include in the exception message.a- The activationsavedUUIDIdx- The saved object number of the constraint's UUID.- Returns:
- this
- Throws:
StandardException- Thrown if this BooleanDataValue is false.
-
typePrecedence
public int typePrecedence()Description copied from class:DataTypeEach 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:
typePrecedencein interfaceDataValueDescriptor- Overrides:
typePrecedencein classDataType- Returns:
- The precedence of this type.
- See Also:
-
truthValue
public static SQLBoolean truthValue(DataValueDescriptor leftOperand, DataValueDescriptor rightOperand, boolean truth) Return the SQL truth value for a comparison. This method first looks at the operands - if either is null, it returns the unknown truth value. This implements "normal" SQL null semantics, where if any operand is null, the result is null. Note that there are cases where these semantics are incorrect - for example, NULL AND FALSE is supposed to be FALSE, not NULL (the NULL truth value is the same as the UNKNOWN truth value). If neither operand is null, it returns a static final variable containing the SQLBoolean truth value. It returns different values depending on whether the truth value is supposed to be nullable. This method always returns a pre-allocated static final SQLBoolean. This is practical because there are so few possible return values. Using pre-allocated values allows us to avoid constructing new SQLBoolean values during execution.- Parameters:
leftOperand- The left operand of the binary comparisonrightOperand- The right operand of the binary comparisontruth- The truth value of the comparison- Returns:
- A SQLBoolean containing the desired truth value.
-
truthValue
public static SQLBoolean truthValue(DataValueDescriptor leftOperand, DataValueDescriptor rightOperand, Boolean truth) same as above, but takes a Boolean, if it is null, unknownTruthValue is returned -
truthValue
Get a truth value.- Parameters:
value- The value of the SQLBoolean- Returns:
- A SQLBoolean with the given truth value
-
unknownTruthValue
Return an unknown truth value. Check to be sure the return value is nullable.- Returns:
- A SQLBoolean representing the UNKNOWN truth value
-
equals
public boolean equals(boolean val) Determine whether this SQLBoolean contains the given boolean value. This method is used by generated code to determine when to do short-circuiting for an AND or OR.- Specified by:
equalsin interfaceBooleanDataValue- Parameters:
val- The value to look for- Returns:
- true if the given value equals the value in this SQLBoolean, false if not
-
getImmutable
Return an immutable BooleanDataValue with the same value as this.- Specified by:
getImmutablein interfaceBooleanDataValue- Returns:
- An immutable BooleanDataValue with the same value as this.
-
toString
-
hashCode
-
estimateMemoryUsage
public int estimateMemoryUsage()Description copied from interface:DataValueDescriptorEstimate the memory usage in bytes of the data value and the overhead of the class.- Specified by:
estimateMemoryUsagein interfaceDataValueDescriptor- Returns:
- the estimated memory usage
-