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 int
private static final SQLBoolean
(package private) static final int
private static final SQLBoolean
private boolean
private boolean
(package private) static final SQLBoolean
private boolean
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
-
Constructor Summary
ConstructorsModifierConstructorDescriptionSQLBoolean
(boolean val) private
SQLBoolean
(boolean val, boolean isnull) SQLBoolean
(Boolean obj) -
Method Summary
Modifier and TypeMethodDescriptionand
(BooleanDataValue otherValue) The AND operator.cloneValue
(boolean forceMaterialization) Clone this DataValueDescriptor.boolean
compare
(int op, DataValueDescriptor other, boolean orderedNulls, boolean unknownRV) Compare this Orderable with a given Orderable for the purpose of qualification and sorting.int
compare
(DataValueDescriptor other) Compare this Orderable with a given Orderable for the purpose of index positioning.boolean
equals
(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.int
Estimate the memory usage in bytes of the data value and the overhead of the class.boolean
Gets the value in the data value descriptor as a boolean.byte
getByte()
Gets the value in the data value descriptor as a byte.double
Gets the value in the data value descriptor as a double.float
getFloat()
Gets the value in the data value descriptor as a float.Return an immutable BooleanDataValue with the same value as this.int
getInt()
Gets the value in the data value descriptor as a int.int
Gets the length of the data value.long
getLong()
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.short
getShort()
Gets the value in the data value descriptor as a short.Gets the value in the data value descriptor as a String.int
Return 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.int
hashCode()
is
(BooleanDataValue otherValue) The SQL IS operator - consult any standard SQL reference for an explanation.isNot
(BooleanDataValue otherValue) Implements NOT IS.boolean
isNull()
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 int
makeInt
(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.void
recycle()
Recycle this SQLBoolean object if possible.void
Restore this object to its (SQL)null value.void
setBigDecimal
(BigDecimal bigDecimal) Only to be called when the application sets a value using BigDecimalprotected void
setFrom
(DataValueDescriptor theValue) Set the value of this DataValueDescriptor based on the value of the specified DataValueDescriptor.final void
setInto
(PreparedStatement ps, int position) Set the value into a PreparedStatement.(package private) void
Set the value from an non-null object.void
setValue
(boolean theValue) Set the value.void
setValue
(byte theValue) Set the value of this DataValueDescriptor to the given byte value At DataType level just throws an error lower classes will overridevoid
setValue
(double theValue) Set the value of this DataValueDescriptor to the given double value At DataType level just throws an error lower classes will overridevoid
setValue
(float theValue) Set the value of this DataValueDescriptor to the given float value At DataType level just throws an error lower classes will overridevoid
setValue
(int theValue) Set the value of this DataValueDescriptor to the given int value At DataType level just throws an error lower classes will overridevoid
setValue
(long theValue) Set the value of this DataValueDescriptor to the given long value At DataType level just throws an error lower classes will overridevoid
setValue
(short theValue) Set the value of this DataValueDescriptor to the given short value At DataType level just throws an error lower classes will overridevoid
Set the value of this BooleanDataValue.void
Set the value of this BooleanDataValue to the given String.void
setValueFromResultSet
(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 SQLBoolean
truthValue
(boolean value) Get a truth value.static SQLBoolean
truthValue
(DataValueDescriptor leftOperand, DataValueDescriptor rightOperand, boolean truth) Return the SQL truth value for a comparison.static SQLBoolean
truthValue
(DataValueDescriptor leftOperand, DataValueDescriptor rightOperand, Boolean truth) same as above, but takes a Boolean, if it is null, unknownTruthValue is returnedint
Each built-in type in JSQL has a precedence.int
Implementation for BOOLEAN type.static SQLBoolean
Return an unknown truth value.void
Methods inherited from class org.apache.derby.iapi.types.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, throwLangSetMismatch
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
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
public boolean isNull()Description copied from interface:Storable
Return whether the value is null or not. -
getBoolean
public boolean getBoolean()Description copied from class:DataType
Gets 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:
getBoolean
in interfaceBooleanDataValue
- Specified by:
getBoolean
in interfaceDataValueDescriptor
- Overrides:
getBoolean
in classDataType
- Returns:
- The data value as a boolean.
-
makeInt
private static int makeInt(boolean b) -
getByte
public byte getByte()Description copied from class:DataType
Gets 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:
getByte
in interfaceDataValueDescriptor
- Overrides:
getByte
in classDataType
- Returns:
- The data value as a byte.
- See Also:
-
getShort
public short getShort()Description copied from class:DataType
Gets 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:
getShort
in interfaceDataValueDescriptor
- Overrides:
getShort
in classDataType
- Returns:
- The data value as a short.
- See Also:
-
getInt
public int getInt()Description copied from class:DataType
Gets 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:
getInt
in interfaceDataValueDescriptor
- Overrides:
getInt
in classDataType
- Returns:
- The data value as a int.
- See Also:
-
getLong
public long getLong()Description copied from class:DataType
Gets 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:
getLong
in interfaceDataValueDescriptor
- Overrides:
getLong
in classDataType
- Returns:
- The data value as a long.
- See Also:
-
getFloat
public float getFloat()Description copied from class:DataType
Gets 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:
getFloat
in interfaceDataValueDescriptor
- Overrides:
getFloat
in classDataType
- Returns:
- The data value as a float.
- See Also:
-
getDouble
public double getDouble()Description copied from class:DataType
Gets 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:
getDouble
in interfaceDataValueDescriptor
- Overrides:
getDouble
in 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:
typeToBigDecimal
in interfaceDataValueDescriptor
- Overrides:
typeToBigDecimal
in 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:DataValueDescriptor
Gets the value in the data value descriptor as a String. Throws an exception if the data value is not a string.- Specified by:
getString
in interfaceDataValueDescriptor
- Returns:
- The data value as a String.
-
getObject
Description copied from class:DataType
Gets 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:
getObject
in interfaceDataValueDescriptor
- Overrides:
getObject
in classDataType
- Returns:
- The data value as a int.
-
getLength
public int getLength()Description copied from interface:DataValueDescriptor
Gets 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:
getLength
in interfaceDataValueDescriptor
- Returns:
- The length of the data value
-
getTypeName
Description copied from interface:DataValueDescriptor
Get the SQL name of the datatype- Specified by:
getTypeName
in 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:
recycle
in interfaceDataValueDescriptor
- Overrides:
recycle
in 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:
getTypeFormatId
in interfaceTypedFormat
- Returns:
- The identifier. (A UUID stuffed in an array of 16 bytes).
- See Also:
-
writeExternal
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
readExternal
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
- See Also:
-
restoreToNull
public void restoreToNull()Description copied from interface:Storable
Restore this object to its (SQL)null value.- Specified by:
restoreToNull
in interfaceStorable
- See Also:
-
compare
Description copied from interface:DataValueDescriptor
Compare 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:
compare
in 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:DataValueDescriptor
Compare 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:
compare
in interfaceDataValueDescriptor
- Overrides:
compare
in 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: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
- 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:
-
getNewNull
Description copied from interface:DataValueDescriptor
Get a new null value of the same type as this data value.- Specified by:
getNewNull
in interfaceDataValueDescriptor
- See Also:
-
setValueFromResultSet
public void setValueFromResultSet(ResultSet resultSet, int colNumber, boolean isNullable) throws SQLException Description copied from interface:DataValueDescriptor
Set the value based on the value for the specified DataValueDescriptor from the specified ResultSet.- Specified by:
setValueFromResultSet
in 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:
setInto
in interfaceDataValueDescriptor
- Overrides:
setInto
in classDataType
- Throws:
SQLException
- Error setting value in PreparedStatement
-
setValue
public void setValue(boolean theValue) Description copied from class:DataType
Set the value. At DataType level just throws an error lower classes will override- Specified by:
setValue
in interfaceDataValueDescriptor
- Overrides:
setValue
in classDataType
- Parameters:
theValue
- Contains the boolean value to set this to- See Also:
-
setValue
Description copied from interface:BooleanDataValue
Set the value of this BooleanDataValue.- Specified by:
setValue
in 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:DataType
Set the value of this DataValueDescriptor to the given byte value At DataType level just throws an error lower classes will override- Specified by:
setValue
in interfaceDataValueDescriptor
- Overrides:
setValue
in classDataType
- Parameters:
theValue
- The value to set this DataValueDescriptor to
-
setValue
public void setValue(short theValue) Description copied from class:DataType
Set the value of this DataValueDescriptor to the given short value At DataType level just throws an error lower classes will override- Specified by:
setValue
in interfaceDataValueDescriptor
- Overrides:
setValue
in classDataType
- Parameters:
theValue
- The value to set this DataValueDescriptor to
-
setValue
public void setValue(int theValue) Description copied from class:DataType
Set the value of this DataValueDescriptor to the given int value At DataType level just throws an error lower classes will override- Specified by:
setValue
in interfaceDataValueDescriptor
- Overrides:
setValue
in classDataType
- Parameters:
theValue
- The value to set this DataValueDescriptor to
-
setValue
public void setValue(long theValue) Description copied from class:DataType
Set the value of this DataValueDescriptor to the given long value At DataType level just throws an error lower classes will override- Specified by:
setValue
in interfaceDataValueDescriptor
- Overrides:
setValue
in classDataType
- Parameters:
theValue
- The value to set this DataValueDescriptor to
-
setValue
public void setValue(float theValue) Description copied from class:DataType
Set the value of this DataValueDescriptor to the given float value At DataType level just throws an error lower classes will override- Specified by:
setValue
in interfaceDataValueDescriptor
- Overrides:
setValue
in classDataType
- Parameters:
theValue
- The value to set this DataValueDescriptor to
-
setValue
public void setValue(double theValue) Description copied from class:DataType
Set the value of this DataValueDescriptor to the given double value At DataType level just throws an error lower classes will override- Specified by:
setValue
in interfaceDataValueDescriptor
- Overrides:
setValue
in classDataType
- Parameters:
theValue
- The value to set this DataValueDescriptor to
-
setBigDecimal
Description copied from class:DataType
Only to be called when the application sets a value using BigDecimal- Specified by:
setBigDecimal
in interfaceDataValueDescriptor
- Overrides:
setBigDecimal
in 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:
setValue
in interfaceDataValueDescriptor
- Overrides:
setValue
in classDataType
- Parameters:
theValue
- The value to set this BooleanDataValue to- Throws:
StandardException
- Thrown on error
-
setObject
Description copied from class:DataType
Set the value from an non-null object. Usually overridden. This implementation throws an exception. The object will have been correctly typed from the call to setObjectForCast. -
setFrom
Description copied from class:DataType
Set the value of this DataValueDescriptor based on the value of the specified DataValueDescriptor.- Overrides:
setFrom
in 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:
equals
in interfaceDataValueDescriptor
- Overrides:
equals
in 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:
notEquals
in interfaceDataValueDescriptor
- Overrides:
notEquals
in 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:
lessThan
in interfaceDataValueDescriptor
- Overrides:
lessThan
in 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:
greaterThan
in interfaceDataValueDescriptor
- Overrides:
greaterThan
in 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:
lessOrEquals
in interfaceDataValueDescriptor
- Overrides:
lessOrEquals
in 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:
greaterOrEquals
in interfaceDataValueDescriptor
- Overrides:
greaterOrEquals
in 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:
and
in 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:
or
in 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:
is
in 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:
isNot
in 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:
throwExceptionIfFalse
in 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:BooleanDataValue
If this value is false and we have a deferred constraint, remember the violation and proceed, else throw. See alsoAndNoShortCircuitNode
.- Specified by:
throwExceptionIfImmediateAndFalse
in 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: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 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:
equals
in 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:
getImmutable
in interfaceBooleanDataValue
- Returns:
- An immutable BooleanDataValue with the same value as this.
-
toString
-
hashCode
public int hashCode() -
estimateMemoryUsage
public int estimateMemoryUsage()Description copied from interface:DataValueDescriptor
Estimate the memory usage in bytes of the data value and the overhead of the class.- Specified by:
estimateMemoryUsage
in interfaceDataValueDescriptor
- Returns:
- the estimated memory usage
-