[ 
https://issues.apache.org/jira/browse/CASSANDRA-5998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Ellis resolved CASSANDRA-5998.
---------------------------------------
    Resolution: Duplicate

UDF is the right way to do this now.

> Filters
> -------
>
>                 Key: CASSANDRA-5998
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5998
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Matt Stump
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> As a counterpart to the functionality provided in triggers it is desirable to 
> filter/mutate query results utilizing a user specified classes. 
> Some example use cases include:
> Row or cell level permissions
> Ad-hoc aggregation or filtering of column values
> Proposed changes include the following:
> * Alter CF metadata to allow the specification of filter classes and options.
> * Modification of the CQL(3) grammar and addition of create/drop filter 
> statements to allow the specification of filter classes.
> * Move cassandara/triggers/CustomClassLoader.java to 
> cassandara/CustomClassLoader.java and use the class loader for both triggers 
> and filters.
> * The addition of the following classes: FilterDefinition, FilterExecuter, 
> and IFilter.
> * Modification of StorageProxy::fetchRows, such that if the CF has a filter 
> specified, rows returned by the result set are run first through the filter 
> which has the authority of either dropping or modifying rows from the result 
> set. If no filter is specified then no filter will be invoked.
> * In order to enable the row/cell level authorization use case 
> StorageProxy::fetchRows must be modified to also require the ClientState. 
> Risks:
> My main concern with the current proposal is that the dependency on 
> ClientState in order to satisfy the cell/row level permissions use case will 
> introduce tight coupling between StorageProxy and ClientState. Another 
> possibility yet to be investigated is to pass ClientState to the filter when 
> the filter class is instantiated.



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

Reply via email to