3

简介 我正在使用 python cql 库来访问 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 不是一个选项)

提前致谢!

4

1 回答 1

3

自从提出这个问题以来,上游已经修复了布尔引用,尽管 Debian 软件包尚未更新。

因此解决方案是从源代码安装库。

于 2013-07-09T08:37:28.533 回答