Coder
Coder

Reputation: 3262

Boolean in Cassandra

I see an issue in Cassandra boolean datatype,

I have a table with one field as boolean

CREATE TABLE keyspace.issuetable (
    "partitionId" text,
    "name" text,
    "field" text,
    "testboolean" boolean,
    PRIMARY KEY ("partitionId", "name"));

Now when I try to insert in table, I didn't add the boolean 'testboolean'

    INSERT into keyspace.issuetable("partitionId", "name", "field")
VALUES ('testpartition', 'cluster1_name','testfiled');

Issue :

1) If the boolean entry (say testboolean entry) in INSERT query is not added so as per the data type it needs to be 'false' but it is added as null

SELECT * FROM issuetable ;

 partitionId   | name          | field     | testboolean
---------------+---------------+-----------+-------------
 testpartition | cluster1_name | testfiled |        null

Could you someone explain why? Also let me know the solution to solve this, I expect 'false' not 'null'

Upvotes: 1

Views: 5227

Answers (1)

Nestor Sokil
Nestor Sokil

Reputation: 2272

Cassandra is not like the traditional SQL databases. It does not store rows in tables. The best way to think about Cassandra's data model is to imagine a sortedMap<rowKey, map<columnKey, value>>.

This means that any particular row is not required to have the same fields/columns as any other one. In your example the inserted row simply does not have a property named testboolean.

To understand more I can recommend referring here. And no, you cannot set a default value for a column (or rather you can do it only on application side).

Upvotes: 2

Related Questions