【发布时间】:2015-03-17 23:56:03
【问题描述】:
我在尝试为我的应用程序实现一些计数器时遇到了这种奇怪的行为。 基本上,我做了一个这样的柜台:
CREATE TABLE stats_dev.log_counters (
date text PRIMARY KEY,
all counter
);
然后我还想计算一些特定类型的消息,所以在我的 Go 应用程序中,我 ALTER 表以添加我以前没有的列。
我的应用程序正在增长,我开始有超过 30 列(不应超过 50 列),当我想检索所有这些计数器时,结果中缺少一些列。
query := s.Query(`SELECT * FROM `+_apiCountersTable+` WHERE date IN ?`, dates)
res, err := query.Iter().SliceMap()
这会返回 34 列中的 30 条。虽然,当我在 CQLSH 上提出请求时:
cqlsh:stats_dev> SELECT * FROM api_counters WHERE date = 'total';
我得到了正确的完整结果。所以:
- 这是否来自我的请求,应该有所不同?
- 可能来自gocql驱动程序?
- 这种模式完全愚蠢吗?
我的临时解决方案是从system.schema_columns 表中选择列名并将所有这些都添加到我的 SELECT 查询中...
非常感谢您的帮助。
【问题讨论】:
标签: go cassandra cql cassandra-2.0 gocql