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

Aleksey Yeschenko commented on CASSANDRA-5576:
----------------------------------------------

Yes, options should definitely be a map<text, text>. Question is, should class 
be a separate column or should it be simply one of the options in that map.

Cases where class is part of the options and not a separate column:
- custom 2i (schema_columns.index_options)
- compression (schema_columnfamilies.compression_parameters)

Cases where class is a separate column:
- replication (schema_keyspaces.strategy_class)
- compaction (schema_columnfamilies.compaction_strategy_class)

In the last two cases, even though they are stored separately, in CQL3 
CREATE/ALTER the class is still conceptually part of the options map:
- CREATE KEYSPACE <name> WITH replication = {'class': 'path.to.strategy.class', 
'option1': 'value1', 'optionX': ...}
- ALTER TABLE <name> WITH compaction = {'class': 
'SizeTieredCompactionStrategy', 'option1': 'value1', 'optionX': ...}

Now, once we add parameters support to triggers, we could just add 
trigger_options map<text, text> and to keep all but class there. Adding columns 
to system tables is okay, dropping them isn't. But adding trigger_options 
map<text,text> right now and storing the class there (with 'class' key) will 
let us to leave schema_triggers schema like this forever, future-proofing it 
(this is what I suggested in 
https://issues.apache.org/jira/browse/CASSANDRA-5576?focusedCommentId=13681562&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13681562
 and in 
https://issues.apache.org/jira/browse/CASSANDRA-5576?focusedCommentId=13669381&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13669381
 before that).
                
> CREATE/DROP TRIGGER in CQL
> --------------------------
>
>                 Key: CASSANDRA-5576
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5576
>             Project: Cassandra
>          Issue Type: Bug
>          Components: API, Core
>            Reporter: Jonathan Ellis
>            Assignee: Vijay
>             Fix For: 2.0
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to