patch by Caleb Rackliffe; reviewed by Andres de la Peña for CASSANDRA-18112
Co-authored-by: Caleb Rackliffe <calebrackliffe@gmail.com>
Co-authored-by: Andres de la Peña <a.penya.garcia@gmail.com>
In addition - Fixed Three Valued Logic
patch by Piotr Kolaczkowski; reviewed by Benjamin Lerer, Ekaterina Dimitrova, Andres de la Pena for CASSANDRA-18584
Co-authored-by: Benjamin Lerer <b.lerer@gmail.com>
Co-authored by: Ekaterina Dimitrova<ekaterina.dimitrova@datastax.com>
patch by Lorina Poland; reviewed by Michael Semb Wever for CASSANDRA-19249, CASSANDRA-18990, CASSANDRA-15719
Co-authored-by: Annette Dennis <annette.dennis@datastax.com>
Co-authored-by: Mohsin Medmood <mohsin85mehmood@gmail.com>
Co-authored-by: Josh Wong <joshuarwong@outlook.com>
Allows to attach the native masking functions and UDFs to the definitions of
table columns in the schema, as defined by CEP-20.
The functions masking a column can be specified on CREATE TABLE queries, right
at the end of the column definition. The mask of a column can also be changed
or dropped with an ALTER TABLE query. Once a column is masked, SELECT queries
will always return the masked value of the column. That masking is done on the
coordinator, at the end of the query execution. Thus, masking won't affect any
filters or ordering, which would be based on the clear values of the masked
columns. Column masks are stored on the table system_schema.column_masks.
A new UNMASK permission allows to see the clear data of columns with an
attached mask. Also, a new SELECT_MASKED permission allows to run SELECT
queries restricting the clear values of masked columns. Superusers have both
permissions by default, whereas regular users don't have them.
Dynamic data masking can be enabled/disabled with the config property
dynamic_data_masking_enabled in cassandra.yaml. It is disabled by default.
This is the combination of multiple tickets:
* Add masking functions to column metadata (CASSANDRA-18068)
* Add UNMASK permission (CASSANDRA-18069)
* Add SELECT_MASKED permission (CASSANDRA-18070)
* Add support for using UDFs as masking functions (CASSANDRA-18071)
* Add feature flag for dynamic data masking (CASSANDRA-18316)
patch by Andrés de la Peña; reviewed by Benjamin Lerer and Berenguer Blasi for CASSANDRA-17940
Patch by Benjamin Lerer; review by Andres De la Pena and Yifan Cai for CASSANDRA-11871
The patch allow to use pure monotonic functions on the last attribute of the GROUP BY clause and introduce some floor functions that can be use to group by time range.
A function is pure if:
1. The function return values are identical for identical arguments
2. The function application has no side effects
A function is monotonic if it is either entirely nonincreasing or nondecreasing.
Removed the strategy from cqlsh autocomplete, including an array for replication_factor autocomplete that was only used for SimpleStrategy and OldNetworkTopologyStrategy.
patch by Pedro Gordo; reviewed by Anthony Grasso, Mick Semb Wever for CASSANDRA-13990
This patch introduces the following changes to fix MV timestamp issues:
- Add strict liveness for view with non-key base column in pk
- Deprecated shadowable tombstone and use expired livenessInfo instead
- Include partition deletion for existing base row
- Disallow dropping base column with MV
Patch by Zhao Yang and Paulo Motta; reviewed by Paulo Motta for CASSANDRA-11500