cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-11424) Add support to "unset" JSON fields in prepared statements
Date Thu, 07 Jul 2016 12:57:11 GMT

    [ 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)

Mime
View raw message