[ 
https://issues.apache.org/jira/browse/CASSANDRA-11424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15366055#comment-15366055
 ] 

Sylvain Lebresne commented on CASSANDRA-11424:
----------------------------------------------

To be clear, I'm not really against the {{IGNORE_OMITTED}} approach, but I just 
want to explore all the options.

In fact, *if* our default had been to left omitted columns unset, then I'd have 
insisted more on that column idea since getting null for omitted values could 
have bee then done with {{INSERT INTO t( *) JSON ...}}, which is kind of 
consistent, but as that's not the case and it's too late to change, a simple 
flag is probably the most pragmatic option.

That said, to bikkeshed on syntax, we don't use underscore for keywords in CQL, 
and having it after the value reads a bit better imo, so:
{noformat}
INSERT INTO t JSON '{"k":"v"}' IGNORE OMITTED
{noformat}
In fact, to bikkeshed even further, an alternative would be to call it 
{{DEFAULT UNSET}} (as in, by default, columns are unset), and to also support 
{{DEFAULT NULL}}, which would be the default, but that you could add if you 
like explicitness. I have a slight preference for that later option but that's 
arguably totally subjective.

Anyway, [~thobbs] might also have an opinion since he added the JSON support 
and so may have though about this already.

> Add support to "unset" JSON fields in prepared statements
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-11424
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11424
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Ralf Steppacher
>
> CASSANDRA-7304 introduced the ability to distinguish between {{NULL}} and 
> {{UNSET}} prepared statement parameters.
> When inserting JSON objects it is not possible to profit from this as a 
> prepared statement only has one parameter that is bound to the JSON object as 
> a whole. There is no way to control {{NULL}} vs {{UNSET}} behavior for 
> columns omitted from the JSON object.
> Please extend on CASSANDRA-7304 to include JSON support.
> {color:grey}
> (My personal requirement is to be able to insert JSON objects with optional 
> fields without incurring the overhead of creating a tombstone of every column 
> not covered by the JSON object upon initial(!) insert.)
> {color}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to