Python cql库无法使用查询替换更新布尔列

时间:2013-05-16 19:50:26

标签: python cassandra cql

简介 我正在使用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'

问题

是否有使用此方法或更好方法/库的解决方法? (我正在使用带有CQL 3.0 CF的Cassandra 1.2,所以pycassa不是一个选项)

提前致谢!

1 个答案:

答案 0 :(得分:3)

布尔引用has been fixed in the upstream因为问了这个问题,虽然Debian软件包还没有更新。

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