【发布时间】:2015-03-18 07:19:56
【问题描述】:
我正在使用 CQL 3.1 中的用户定义类型(以下 cqlsh 信息):
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]
我创建了以下用户定义类型(此处为演示目的进行了简化):
create type fullname ( firstname text, lastname text );
然后我创建了一个包含一组 fulsome 类型的表:
create table people ( id UUID primary key, names set < frozen <fullname>> );
我可以使用以下方法将行插入表中:
insert into people (id, names) values (
now(),
{{firstname: 'Jim', lastname: 'Jones'}}
);
结果看起来不错:
select * from people;
id | names
--------------------------------------+-----------------------------------------
69ba9d60-a06b-11e4-9923-0fa29ba414fb | {{firstname: 'Jim', lastname: 'Jones'}}
我的问题是:如何获取所有名字条目?如果我没有使用 set,而只是使用全名,我可以使用点符号:
select name.firstname from people;
但这显然行不通,因为我使用的是一套。在正常使用中(没有 UDT),集合永远不需要点符号,因为所有条目都是简单类型(文本、UUID 等)。我尝试使用来自其他编程语言的所有常见嫌疑人......
select names.firstname...
select names[].firstname...
select names['firstname']...
关于网络上 UDT 的唯一信息来自 DataStax web site,此用例未涉及。
以前有人试过吗?还是我正在做的事情是完全不允许的?
谢谢,
约翰
【问题讨论】:
标签: cassandra set cql user-defined-types