[
https://issues.apache.org/jira/browse/CASSANDRA-3783?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sylvain Lebresne updated CASSANDRA-3783:
----------------------------------------
Attachment: 3783-v4.txt
Sorry I wasn't clear, what I meant earlier is that CASSANDRA-5081 already has
the tests needed to handle null. Typically, the test the patch adds to
Operation is already in Constants.Setter and related collection methods (the
goal being to have the same code to handle prepared and non-prepared statement).
So attaching a v4 that reuse the code introduced by CASSANDRA-5081. It makes
{{null}} a separate object rather than another constant because that felt
slightly cleaner/simpler). Also, in the parser, {{null}} is a 'value' instead
of 'constant': the difference is minor but it avoid having to deal with
{{null}} in CREATE/ALTER property values (since they are 'constant').
The patch also validate that null values are not used inside a collection and
simplify/fix a few collections methods.
> Add 'null' support to CQL 3.0
> -----------------------------
>
> Key: CASSANDRA-3783
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3783
> Project: Cassandra
> Issue Type: Sub-task
> Components: API
> Reporter: Sylvain Lebresne
> Assignee: MichaĆ Michalski
> Priority: Minor
> Labels: cql3
> Fix For: 1.2.4
>
> Attachments: 3783-v2.patch, 3783-v3.patch, 3783-v4.txt,
> 3783-wip-v1.patch
>
>
> Dense composite supports adding records where only a prefix of all the
> component specifying the key is defined. In other words, with:
> {noformat}
> CREATE TABLE connections (
> userid int,
> ip text,
> port int,
> protocol text,
> time timestamp,
> PRIMARY KEY (userid, ip, port, protocol)
> ) WITH COMPACT STORAGE
> {noformat}
> you can insert
> {noformat}
> INSERT INTO connections (userid, ip, port, time) VALUES (2, '192.168.0.1',
> 80, 123456789);
> {noformat}
> You cannot however select that column specifically (i.e, without selecting
> column (2, '192.168.0.1', 80, 'http') for instance).
> This ticket proposes to allow that though 'null', i.e. to allow
> {noformat}
> SELECT * FROM connections WHERE userid = 2 AND ip = '192.168.0.1' AND port =
> 80 AND protocol = null;
> {noformat}
> It would then also make sense to support:
> {noformat}
> INSERT INTO connections (userid, ip, port, protocol, time) VALUES (2,
> '192.168.0.1', 80, null, 123456789);
> {noformat}
> as an equivalent to the insert query above.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira