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

s3fp2yjn  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(454)

简介我正在使用python cql库访问cassandra1.2数据库(cql3.0)。我的表包含一个布尔列,如下所示:

  1. CREATE TABLE test (
  2. id text,
  3. value boolean,
  4. PRIMARY KEY (id)
  5. );

当我尝试使用cql库执行这样的查询时,问题是:

  1. UPDATE test set value=True where id = 'someid'

使用这个代码:

  1. import cql
  2. ...
  3. cql_statement = "UPDATE test set value=:value where id = :id"
  4. rename_dict = {'id':'someid',
  5. 'value': True}
  6. cursor.execute(cql_statement, rename_dict)

我得到这个错误:

  1. Bad Request: Invalid STRING constant (True) for value of type boolean

似乎cql库正在尝试执行以下操作:

  1. UPDATE test set value='True' where id = 'someid'

而不是这样:

  1. UPDATE test set value=True where id = 'someid'

问题
是否有任何解决方法可供此方法或更好的方法/库使用(我正在使用cassandra1.2和cql3.0cfs,所以pycassa不是一个选项)
提前谢谢!

deikduxw

deikduxw1#

自从提出这个问题以来,在上游已经修复了布尔引用,尽管debian包还没有更新。
因此,解决方案是从源代码安装库。

相关问题