Поведение пользовательского типа (UDT) в Cassandra

если у кого-то есть опыт использования UDT (пользовательские типы), я хотел бы понять, как будет работать обратная совместимость.

Скажем, у меня есть следующий UDT

CREATE TYPE addr (
  street1 text,
  zip text,
  state text
);

Если я изменю «addr» UDT, чтобы иметь еще пару атрибутов (скажем, например, zip_code2 int и текст имени):

CREATE TYPE addr (
  street1 text,
  zip text,
  state text,
  zip_code2 int,
  name text
);

как работают старые строки с этими атрибутами? Это даже совместимо?

Спасибо


person im2kul    schedule 15.12.2015    source источник


Ответы (1)


Новое определение UDT будет совместимо со старым определением. Пользовательские типы могут иметь нулевые значения для полей, поэтому, если вы измените определение типа, все существующие значения для этого типа просто будут иметь нулевые значения для добавленных полей.

person Tyler Hobbs    schedule 15.12.2015
comment
Это то, что я предполагал. Как насчет типов int и boolean? Значение int по умолчанию равно 0 или что-то еще? - person im2kul; 16.12.2015
comment
Вы имеете в виду целые числа и логические значения в UDT? Они также нулевые. Cassandra не устанавливает по умолчанию для каких-либо типов ненулевое значение (где угодно). - person Tyler Hobbs; 16.12.2015