物化视图不应该在allow过滤机制之上提供一个读优化层吗?因为下面的语句似乎符合cassandra的标准,但是我得到了一些异常,它们抱怨update语句影响了主键,主键应该只在表上,而不是mat视图上。
我用一列主键创建了一个表
cqlSession.execute(createTable(NAME).ifNotExists()
.withPartitionKey(PKEY, DataTypes.TEXT)
.withColumn(C1, DataTypes.TEXT)
.withColumn(C2, DataTypes.TEXT)
.withColumn(C3, DataTypes.TEXT)
.build());
cqlSession.execute(createMaterializedView(MAT_NAME).ifNotExists()
.selectFrom(NAME)
.columns(PKEY, C1, C2, C3)
.whereColumn(PKEY).isNotNull()
.whereColumn(C1).isNotNull()
.withPartitionKey(PKEY)
.withClusteringColumn(C1)
.build());
....
PreparedStatement ps = session.prepare(
update(NAME).setColumn(C2, QueryBuilder.bindMarker())
.whereColumn(C1).isEqualTo(QueryBuilder.bindMarker())
.whereColumn(C2).isEqualTo(QueryBuilder.bindMarker())
.ifExists()
.build());
“ps”引发异常。根据我对cassandra驱动程序规范的阅读,这是不正确的。有人能解释一下吗?
java驱动程序4.11.0本机协议1.5.0 datastax cassandra版本4.1.10
暂无答案!
目前还没有任何答案,快来回答吧!