介绍
我正在使用python cql library库访问Cassandra 1.2数据库(CQL 3.0).我的表包含一个布尔列,如下所示:
CREATE TABLE test (
id text,
value boolean,
PRIMARY KEY (id)
);
问题
当我尝试使用cql库执行这样的查询时:
UPDATE test set value=True where id = 'someid'
并使用以下代码:
import cql
...
cql_statement = "UPDATE test set value=:value where id = :id"
rename_dict = {'id':'someid',
'value': True}
cursor.execute(cql_statement, rename_dict)
我收到此错误:
Bad Request: Invalid STRING constant (True) for value of type boolean
似乎cql库正在尝试执行此操作:
UPDATE test set value='True' where id = 'someid'
代替这个:
UPDATE test set value=True where id = 'someid'
问题
有没有解决此问题的方法或更好的方法/库? (我将Cassandra 1.2与CQL 3.0 CF配合使用,因此pycassa不是一个选择)
提前致谢!
解决方法:
自从询问此问题以来,布尔值引用has been fixed in the upstream,尽管Debian软件包尚未更新.
因此解决方案是从源代码安装库.