Cassandra中的用户定义类型(UDT)行为
如果有人有使用UDT(用户定义类型)的经验,我想了解向后兼容性是如何工作的 假设我有以下UDTCassandra中的用户定义类型(UDT)行为,cassandra,datastax,datastax-enterprise,cql3,datastax-java-driver,Cassandra,Datastax,Datastax Enterprise,Cql3,Datastax Java Driver,如果有人有使用UDT(用户定义类型)的经验,我想了解向后兼容性是如何工作的 假设我有以下UDT CREATE TYPE addr ( street1 text, zip text, state text ); 如果我修改“addr”UDT以具有更多属性(例如zip_code2 int和name text): 具有这些属性的旧行如何工作?它甚至兼容吗 谢谢新的UDT定义将与旧定义兼容。用户定义的类型可以为字段设置空值,因此如果更改类型定义,则该类型的所有现有值将为添加的字段设置空值。
CREATE TYPE addr (
street1 text,
zip text,
state text
);
如果我修改“addr”UDT以具有更多属性(例如zip_code2 int和name text):
具有这些属性的旧行如何工作?它甚至兼容吗
谢谢新的UDT定义将与旧定义兼容。用户定义的类型可以为字段设置空值,因此如果更改类型定义,则该类型的所有现有值将为添加的字段设置空值。新的UDT定义将与旧定义兼容。用户定义的类型可以为字段设置空值,因此如果更改类型定义,则该类型的所有现有值都将为添加的字段设置空值。这就是我的假设。int和boolean类型如何?int是否默认为0或其他值?您是指UDT中的int和boolean吗?这些也是无效的。Cassandra没有将任何类型默认为非空值(任何地方)。这是我的假设。int和boolean类型如何?int是否默认为0或其他值?您是指UDT中的int和boolean吗?这些也是无效的。Cassandra不会将任何类型默认为非空值(任意位置)。
CREATE TYPE addr (
street1 text,
zip text,
state text,
zip_code2 int,
name text
);