Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 05ACD11124 for ; Mon, 12 May 2014 11:53:56 +0000 (UTC) Received: (qmail 67368 invoked by uid 500); 12 May 2014 11:47:16 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 67330 invoked by uid 500); 12 May 2014 11:47:16 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 67241 invoked by uid 99); 12 May 2014 11:47:16 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 May 2014 11:47:16 +0000 Date: Mon, 12 May 2014 11:47:16 +0000 (UTC) From: "Robert Stupp (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (CASSANDRA-7206) UDT - allow null / non-existant attributes MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Robert Stupp created CASSANDRA-7206: --------------------------------------- Summary: UDT - allow null / non-existant attributes Key: CASSANDRA-7206 URL: https://issues.apache.org/jira/browse/CASSANDRA-7206 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Robert Stupp C* 2.1 CQL User-Defined-Types are really fine and useful. But it lacks the possibility to omit attributes or set them to null. Would be great to have the possibility to create UDT "instances" with some attributes missing. Also changing the UDT definition (for example: {{alter type add new_attr}}) will break running applications that rely on the "previous" definition of the UDT. For exmple: {code} CREATE TYPE foo ( attr_one text, attr_two int ); CREATE TABLE bar ( id int, comp foo ); {code} {code} INSERT INTO bar (id, com) VALUES (1, {attr_one: 'cassandra', attr_two: 2}); {code} works {code} INSERT INTO bar (id, com) VALUES (1, {attr_one: 'cassandra'}); {code} does not work {code} ALTER TYPE foo ADD attr_three timestamp; {code} {code} INSERT INTO bar (id, com) VALUES (1, {attr_one: 'cassandra', attr_two: 2}); {code} will no longer work (missing attribute) -- This message was sent by Atlassian JIRA (v6.2#6252)