BOOLEAN
Description
BOOLEAN (alias: BOOL) is a data type in DataKanu Warehouse that represents boolean values: true and false.
Internally, BOOLEAN is stored as a uint8 value, where 0 represents false and 1 represents true.
Unlike MySQL where BOOLEAN is an alias for TINYINT(1), DataKanu Warehouse treats BOOLEAN as a separate data type, similar to PostgreSQL, Oracle, and other database systems.
Value Range
BOOLEAN values can only be:
true(represented as 1 when displayed)false(represented as 0 when displayed)
In memory, BOOLEAN type only exists as 0 or 1, with no other possible values.
Literal Values
In DataKanu Warehouse, you can use the keywords true and false (case-insensitive) to represent boolean literal values:
mysql> select TrUe, False, true;
+------+-------+------+
| TrUe | False | true |
+------+-------+------+
| 1 | 0 | 1 |
+------+-------+------+
Supported Operations
Logical Operations
BOOLEAN type supports logical operations such as AND, OR, NOT, and XOR:
mysql> select true AND false, true OR false, NOT true, true XOR false;
+----------------+---------------+----------+----------------+
| true AND false | true OR false | NOT true | true XOR false |
+----------------+---------------+----------+----------------+
| 0 | 1 | 0 | 1 |
+----------------+---------------+----------+----------------+
Arithmetic Operations
While BOOLEAN doesn't directly support arithmetic operations, expressions like true + true will work due to implicit type conversion:
mysql> select true + true;
+-------------+
| true + true |
+-------------+
| 2 |
+-------------+
This works because the boolean values are implicitly cast to SMALLINT: CAST(TRUE AS smallint) + CAST(TRUE AS smallint).
Type Conversion
It's important to note that BOOLEAN is not equivalent to TINYINT in DataKanu Warehouse, even though they may appear similar due to MySQL conventions.
When inserting a boolean literal into a TINYINT column, implicit type conversion occurs:
CREATE TABLE test_boolean(
u8 TINYINT
)
properties("replication_num" = "1");
mysql> insert into test_boolean values(true);
In this example, the boolean literal true is converted to a TINYINT value.
Keywords
BOOL, BOOLEAN