this.udtDefinition = new CUDTDefinition(((PersistenceManagerImpl)persistenceManager).protocolVersion, metadata);
this.dataType = DataType.userType(udtDefinition);
this.codec = TypeCodec.udtOf(udtDefinition);
for (CqlColumn column : allColumns) {
DataType fieldType = safeGetFieldType(udtDefinition, column);
fieldExists(updateStatus, column, fieldType, column.compatible(fieldType));
if (!column.isExists() && !column.isAllowNotExists()) {
schemaObjectInvalid(updateStatus, "type field %s.%s for %s does not exist - exists:%s compatible:%s (%s vs %s)", cqlTable,
column.getEscapedName(), this.type, column.isExists(), column.compatible(fieldType), column.getDataType(), fieldType);
}