编程语言
首页 > 编程语言> > Python CQL库无法使用查询替换更新布尔列

Python 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'

问题

有没有解决此问题的方法或更好的方法/库? (我将Cassandra 1.2与CQL 3.0 CF配合使用,因此pycassa不是一个选择)

提前致谢!

解决方法:

自从询问此问题以来,布尔值引用has been fixed in the upstream,尽管Debian软件包尚未更新.

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

标签:cassandra,cql,python
来源: https://codeday.me/bug/20191123/2066474.html