[ https://issues.apache.org/jira/browse/CASSANDRA-18068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17695830#comment-17695830 ]
Andres de la Peña commented on CASSANDRA-18068: ----------------------------------------------- [~blerer] has convinced me on Slack for going back to the previous approach for the mask placement into the column definition. The key argument is that {{PRIMARY KEY}} is not entirely part of the individual column definition because it can appear isolated at the end of the list of column definitions. And the reasoning for putting {{STATIC}} before {{MASKED WITH ...}} is just that {{STATIC}} is more important that the mask, and it gets a bit lost after the multi-line mask definition. So I'm reverting the latter change about this and going back to: {code:java} CREATE TABLE t1(k int MASKED WITH mask_replace(-1) PRIMARY KEY); CREATE TABLE t2(k int, c int, s int STATIC MASKED WITH mask_replace(-1), PRIMARY KEY(k, c)); {code} [~bereng] please let me know if you agree with us on this. Another thing pointed out by Benjamin is that we don't support schema updates during rolling upgrades. Any attempt of creating or altering a table, masked or not, times out with a schema mismatch. So we don't really need the cluster min version check nor the entire upgrade test. I have removed both things [here|https://github.com/apache/cassandra/pull/2110/commits/6e563cbda336f5a4ee9f5083ea1797c9c0c7b643]. Finally, I'm adding [a new dtest|https://github.com/apache/cassandra/pull/2110/commits/33cef33c9102f2851b940bac177b0b2bf674550e] to verify that the masks are correctly propagated to other nodes in the cluster, and that they are correctly loaded from disk at startup. I think this and the solution for post-ordering address all the remaining review feedback. Here is a CI run for the latter changes: ||PR||CI|| |[trunk|https://github.com/apache/cassandra/pull/2110]|[j8|https://app.circleci.com/pipelines/github/adelapena/cassandra/2679/workflows/dd588207-d0c2-4315-ab63-42b1436db970] [j11|https://app.circleci.com/pipelines/github/adelapena/cassandra/2679/workflows/4fdbab9b-571b-4e7b-abd1-99bab92b531b]| > Allow to attach native masking functions to table columns > --------------------------------------------------------- > > Key: CASSANDRA-18068 > URL: https://issues.apache.org/jira/browse/CASSANDRA-18068 > Project: Cassandra > Issue Type: New Feature > Components: Feature/Dynamic Data Masking > Reporter: Andres de la Peña > Assignee: Andres de la Peña > Priority: Normal > Time Spent: 9h 10m > Remaining Estimate: 0h > > Allow to attach the native masking functions added by CASSANDRA-17941 to > table columns, as defined by > [CEP-20|https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-20%3A+Dynamic+Data+Masking]. > > {{CREATE TABLE}} statements would look like: > {code} > > CREATE TABLE patients ( > id timeuuid PRIMARY KEY, > name text MASKED WITH partial(2, 1), > birth date MASKED WITH default() > ); > > INSERT INTO patients(id, name, birth) VALUES (now(), 'alice', '1982-12-21); > > > SELECT name, birth FROM patients; > > name | birth > ---------+------------ > alXXXXe | 1900-01-01 > {code} > {{ALTER TABLE}} statements would look like: > {code} > > ALTER TABLE patients ALTER name MASKED WITH partial(2, 1); > > ALTER TABLE patients ALTER name WITHOUT MASK; > {code} > It won't be possible to use masked columns in the WHERE and IF clauses of > SELECT and UPDATE statements. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org