You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/02/20 20:39:08 UTC

[3/4] Remove CQL2

http://git-wip-us.apache.org/repos/asf/cassandra/blob/26217071/src/java/org/apache/cassandra/cql/Cql.g
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/Cql.g b/src/java/org/apache/cassandra/cql/Cql.g
deleted file mode 100644
index 3c41f44..0000000
--- a/src/java/org/apache/cassandra/cql/Cql.g
+++ /dev/null
@@ -1,656 +0,0 @@
-
-/*
- * 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * 
- */
- 
-grammar Cql;
-
-options {
-    language = Java;
-}
-
-@header {
-    package org.apache.cassandra.cql;
-    import java.util.Map;
-    import java.util.HashMap;
-    import java.util.Collections;
-    import java.util.List;
-    import java.util.ArrayList;
-    import org.apache.cassandra.exceptions.SyntaxException;
-    import org.apache.cassandra.utils.Pair;
-    import org.apache.cassandra.db.ConsistencyLevel;
-
-    import static org.apache.cassandra.cql.AlterTableStatement.OperationType;
-}
-
-@members {
-    private List<String> recognitionErrors = new ArrayList<String>();
-    private int currentBindMarkerIdx = -1;
-    
-    public void displayRecognitionError(String[] tokenNames, RecognitionException e)
-    {
-        String hdr = getErrorHeader(e);
-        String msg = getErrorMessage(e, tokenNames);
-        recognitionErrors.add(hdr + " " + msg);
-    }
-    
-    public List<String> getRecognitionErrors()
-    {
-        return recognitionErrors;
-    }
-    
-    public void throwLastRecognitionError() throws SyntaxException
-    {
-        if (recognitionErrors.size() > 0)
-            throw new SyntaxException(recognitionErrors.get((recognitionErrors.size()-1)));
-    }
-
-    // used by UPDATE of the counter columns to validate if '-' was supplied by user
-    public void validateMinusSupplied(Object op, final Term value, IntStream stream) throws MissingTokenException
-    {
-        if (op == null && Long.parseLong(value.getText()) > 0)
-            throw new MissingTokenException(102, stream, value);
-    }
-}
-
-@lexer::header {
-    package org.apache.cassandra.cql;
-    import org.apache.cassandra.exceptions.SyntaxException;
-}
-
-@lexer::members {
-    List<Token> tokens = new ArrayList<Token>();
-    
-    public void emit(Token token) {
-        state.token = token;
-        tokens.add(token);
-    }
-    
-    public Token nextToken() {
-        super.nextToken();
-        if (tokens.size() == 0)
-            return Token.EOF_TOKEN;
-        return tokens.remove(0);
-    }
-    
-    private List<String> recognitionErrors = new ArrayList<String>();
-    
-    public void displayRecognitionError(String[] tokenNames, RecognitionException e)
-    {
-        String hdr = getErrorHeader(e);
-        String msg = getErrorMessage(e, tokenNames);
-        recognitionErrors.add(hdr + " " + msg);
-    }
-    
-    public List<String> getRecognitionErrors()
-    {
-        return recognitionErrors;
-    }
-    
-    public void throwLastRecognitionError() throws SyntaxException
-    {
-        if (recognitionErrors.size() > 0)
-            throw new SyntaxException(recognitionErrors.get((recognitionErrors.size()-1)));
-    }
-}
-
-query returns [CQLStatement stmnt]
-    : selectStatement   { $stmnt = new CQLStatement(StatementType.SELECT, $selectStatement.expr, currentBindMarkerIdx); }
-    | insertStatement endStmnt { $stmnt = new CQLStatement(StatementType.INSERT, $insertStatement.expr, currentBindMarkerIdx); }
-    | updateStatement endStmnt { $stmnt = new CQLStatement(StatementType.UPDATE, $updateStatement.expr, currentBindMarkerIdx); }
-    | batchStatement { $stmnt = new CQLStatement(StatementType.BATCH, $batchStatement.expr, currentBindMarkerIdx); }
-    | useStatement      { $stmnt = new CQLStatement(StatementType.USE, $useStatement.keyspace, currentBindMarkerIdx); }
-    | truncateStatement { $stmnt = new CQLStatement(StatementType.TRUNCATE, $truncateStatement.cf, currentBindMarkerIdx); }
-    | deleteStatement endStmnt { $stmnt = new CQLStatement(StatementType.DELETE, $deleteStatement.expr, currentBindMarkerIdx); }
-    | createKeyspaceStatement { $stmnt = new CQLStatement(StatementType.CREATE_KEYSPACE, $createKeyspaceStatement.expr, currentBindMarkerIdx); }
-    | createColumnFamilyStatement { $stmnt = new CQLStatement(StatementType.CREATE_COLUMNFAMILY, $createColumnFamilyStatement.expr, currentBindMarkerIdx); }
-    | createIndexStatement { $stmnt = new CQLStatement(StatementType.CREATE_INDEX, $createIndexStatement.expr, currentBindMarkerIdx); }
-    | dropIndexStatement   { $stmnt = new CQLStatement(StatementType.DROP_INDEX, $dropIndexStatement.expr, currentBindMarkerIdx); }
-    | dropKeyspaceStatement { $stmnt = new CQLStatement(StatementType.DROP_KEYSPACE, $dropKeyspaceStatement.ksp, currentBindMarkerIdx); }
-    | dropColumnFamilyStatement { $stmnt = new CQLStatement(StatementType.DROP_COLUMNFAMILY, $dropColumnFamilyStatement.cfam, currentBindMarkerIdx); }
-    | alterTableStatement { $stmnt = new CQLStatement(StatementType.ALTER_TABLE, $alterTableStatement.expr, currentBindMarkerIdx); }
-    ;
-
-// USE <KEYSPACE>;
-useStatement returns [String keyspace]
-    : K_USE name=( IDENT | INTEGER | STRING_LITERAL ) { $keyspace = $name.text; } endStmnt
-    ;
-
-/**
- * SELECT
- *  (REVERSED)? <expression>
- * FROM
- *     <CF>
- * USING
- *     CONSISTENCY <LEVEL>
- * WHERE
- *     KEY = "key1" AND KEY = "key2" AND
- *     COL > 1 AND COL < 100
- * LIMIT <NUMBER>;
- */
-selectStatement returns [SelectStatement expr]
-    : { 
-          int numRecords = 10000;
-          SelectExpression expression = null;
-          boolean isCountOp = false;
-          ConsistencyLevel cLevel = ConsistencyLevel.ONE;
-      }
-      K_SELECT
-          ( s1=selectExpression                 { expression = s1; }
-          | K_COUNT '(' s2=selectExpression ')' { expression = s2; isCountOp = true; }
-          )
-          K_FROM (keyspace=(IDENT | STRING_LITERAL | INTEGER) '.')? columnFamily=( IDENT | STRING_LITERAL | INTEGER )
-          ( K_USING K_CONSISTENCY K_LEVEL { cLevel = ConsistencyLevel.valueOf($K_LEVEL.text.toUpperCase()); } )?
-          ( K_WHERE whereClause )?
-          ( K_LIMIT rows=INTEGER { numRecords = Integer.parseInt($rows.text); } )?
-          endStmnt
-      {
-          return new SelectStatement(expression,
-                                     isCountOp,
-                                     $keyspace.text,
-                                     $columnFamily.text,
-                                     cLevel,
-                                     $whereClause.clause,
-                                     numRecords);
-      }
-    ;
-
-// [FIRST n] [REVERSED] name1[[[,name2],nameN],...]
-// [FIRST n] [REVERSED] name1..nameN
-selectExpression returns [SelectExpression expr]
-    : {
-          int count = 10000;
-          boolean reversed = false;
-          boolean hasFirstSet = false;
-      }
-      ( K_FIRST { hasFirstSet = true; } cols=INTEGER { count = Integer.parseInt($cols.text); } )?
-      ( K_REVERSED { reversed = true; } )?
-      ( first=term { $expr = new SelectExpression(first, count, reversed, hasFirstSet); }
-            (',' next=term { $expr.and(next); })*
-      | start=term RANGEOP finish=term { $expr = new SelectExpression(start, finish, count, reversed, false, hasFirstSet); }
-      | '\*' { $expr = new SelectExpression(new Term(), new Term(), count, reversed, true, hasFirstSet); }
-      )
-    ;
-
-// relation [[AND relation] ...]
-whereClause returns [WhereClause clause]
-    @init {
-        WhereClause inClause = new WhereClause();
-    }
-    : first=relation { $clause = new WhereClause(first); } 
-          (K_AND next=relation { $clause.and(next); })*
-      | key_alias=term { inClause.setKeyAlias(key_alias.getText()); }
-           K_IN '(' f1=term { inClause.andKeyEquals(f1); }
-                  (',' fN=term { inClause.andKeyEquals(fN); } )* ')'
-        { inClause.setMultiKey(true); $clause = inClause; }
-    ;
-
-/**
- * INSERT INTO
- *    <CF>
- *    (KEY, <column>, <column>, ...)
- * VALUES
- *    (<key>, <value>, <value>, ...)
- * (USING
- *    CONSISTENCY <level>
- *   (AND TIMESTAMP <long>)?
- * )?;
- *
- * Consistency level is set to ONE by default
- */
-insertStatement returns [UpdateStatement expr]
-    : {
-          Attributes attrs = new Attributes();
-
-          List<Term> columnNames  = new ArrayList<Term>();
-          List<Term> columnValues = new ArrayList<Term>();
-      }
-      K_INSERT K_INTO (keyspace=(IDENT | STRING_LITERAL | INTEGER) '.')? columnFamily=( IDENT | STRING_LITERAL | INTEGER )
-          '(' key_alias=term ( ',' column_name=term  { columnNames.add($column_name.item); } )+ ')'
-        K_VALUES
-          '(' key=term ( ',' column_value=term { columnValues.add($column_value.item); })+ ')'
-        ( usingClause[attrs] )?
-      {
-          return new UpdateStatement($keyspace.text, $columnFamily.text, key_alias.getText(), columnNames, columnValues, Collections.singletonList(key), attrs);
-      }
-    ;
-
-usingClause[Attributes attrs]
-    : K_USING usingClauseObjective[attrs] ( K_AND? usingClauseObjective[attrs] )*
-    ;
-
-usingClauseDelete[Attributes attrs]
-    : K_USING usingClauseDeleteObjective[attrs] ( K_AND? usingClauseDeleteObjective[attrs] )*
-    ;
-
-usingClauseDeleteObjective[Attributes attrs]
-    : K_CONSISTENCY K_LEVEL  { attrs.setConsistencyLevel(ConsistencyLevel.valueOf($K_LEVEL.text.toUpperCase())); }
-    | K_TIMESTAMP ts=INTEGER { attrs.setTimestamp(Long.valueOf($ts.text)); }
-    ;
-
-usingClauseObjective[Attributes attrs]
-    : usingClauseDeleteObjective[attrs]
-    | K_TTL t=INTEGER        { attrs.setTimeToLive(Integer.parseInt($t.text)); }
-    ;
-
-/**
- * BEGIN BATCH [USING CONSISTENCY <LVL>]
- *   UPDATE <CF> SET name1 = value1 WHERE KEY = keyname1;
- *   UPDATE <CF> SET name2 = value2 WHERE KEY = keyname2;
- *   UPDATE <CF> SET name3 = value3 WHERE KEY = keyname3;
- *   ...
- * APPLY BATCH
- *
- * OR
- *
- * BEGIN BATCH [USING CONSISTENCY <LVL>]
- *   INSERT INTO <CF> (KEY, <name>) VALUES ('<key>', '<value>');
- *   INSERT INTO <CF> (KEY, <name>) VALUES ('<key>', '<value>');
- *   ...
- * APPLY BATCH
- *
- * OR
- *
- * BEGIN BATCH [USING CONSISTENCY <LVL>]
- *   DELETE name1, name2 FROM <CF> WHERE key = <key>
- *   DELETE name3, name4 FROM <CF> WHERE key = <key>
- *   ...
- * APPLY BATCH
- */
-batchStatement returns [BatchStatement expr]
-    : {
-          Attributes attrs = new Attributes();
-          attrs.setConsistencyLevel(ConsistencyLevel.ONE);
-
-          List<AbstractModification> statements = new ArrayList<AbstractModification>();
-      }
-      K_BEGIN K_BATCH ( usingClause[attrs] )?
-          s1=batchStatementObjective ';'? { statements.add(s1); } ( sN=batchStatementObjective ';'? { statements.add(sN); } )*
-      K_APPLY K_BATCH endStmnt
-      {
-          return new BatchStatement(statements, attrs);
-      }
-    ;
-
-batchStatementObjective returns [AbstractModification statement]
-    : i=insertStatement  { $statement = i; }
-    | u=updateStatement  { $statement = u; }
-    | d=deleteStatement  { $statement = d; }
-    ;
-
-/**
- * UPDATE
- *     <CF>
- * (USING
- *     CONSISTENCY.ONE
- *    (AND TIMESTAMP <long>)?
- * )?
- * SET
- *     name1 = value1,
- *     name2 = value2
- * WHERE
- *     KEY = keyname;
- */
-updateStatement returns [UpdateStatement expr]
-    : {
-          Attributes attrs = new Attributes();
-          Map<Term, Operation> columns = new HashMap<Term, Operation>();
-          List<Term> keyList = null;
-      }
-      K_UPDATE (keyspace=(IDENT | STRING_LITERAL | INTEGER) '.')? columnFamily=( IDENT | STRING_LITERAL | INTEGER )
-          ( usingClause[attrs] )?
-          K_SET termPairWithOperation[columns] (',' termPairWithOperation[columns])*
-          K_WHERE ( key_alias=term ('=' key=term { keyList = Collections.singletonList(key); }
-                                    |
-                                    K_IN '(' keys=termList { keyList = $keys.items; } ')' ))
-      {
-          return new UpdateStatement($keyspace.text, $columnFamily.text, key_alias.getText(), columns, keyList, attrs);
-      }
-    ;
-
-/**
- * DELETE
- *     name1, name2
- * FROM
- *     <CF>
- * USING
- *     CONSISTENCY.<LVL>
- * WHERE
- *     KEY = keyname;
- */
-deleteStatement returns [DeleteStatement expr]
-    : {
-          Attributes attrs = new Attributes();
-          List<Term> keyList = null;
-          List<Term> columnsList = Collections.emptyList();
-      }
-      K_DELETE
-          ( cols=termList { columnsList = $cols.items; })?
-          K_FROM (keyspace=(IDENT | STRING_LITERAL | INTEGER) '.')? columnFamily=( IDENT | STRING_LITERAL | INTEGER )
-          ( usingClauseDelete[attrs] )?
-          ( K_WHERE key_alias=term ('=' key=term           { keyList = Collections.singletonList(key); }
-                                   | K_IN '(' keys=termList { keyList = $keys.items; } ')')
-                  )?
-      {
-          return new DeleteStatement(columnsList, $keyspace.text, $columnFamily.text, key_alias.getText(), keyList, attrs);
-      }
-    ;
-
-
-
-/** CREATE KEYSPACE <KEYSPACE> WITH attr1 = value1 AND attr2 = value2; */
-createKeyspaceStatement returns [CreateKeyspaceStatement expr]
-    : {
-          Map<String, String> attrs = new HashMap<String, String>();
-      }
-      K_CREATE K_KEYSPACE keyspace=( IDENT | STRING_LITERAL | INTEGER )
-          K_WITH  a1=( COMPIDENT | IDENT ) '=' v1=( STRING_LITERAL | INTEGER | IDENT ) { attrs.put($a1.text, $v1.text); }
-          ( K_AND aN=( COMPIDENT | IDENT ) '=' vN=( STRING_LITERAL | INTEGER | IDENT ) { attrs.put($aN.text, $vN.text); } )*
-          endStmnt
-      {
-          return new CreateKeyspaceStatement($keyspace.text, attrs);
-      }
-    ;
-    
-/**
- * CREATE COLUMNFAMILY <CF> (
- *     <name1> <type>,
- *     <name2> <type>,
- *     <name3> <type>
- * ) WITH comparator = <type> [AND ...];
- */
-createColumnFamilyStatement returns [CreateColumnFamilyStatement expr]
-    : K_CREATE K_COLUMNFAMILY name=( IDENT | STRING_LITERAL | INTEGER ) { $expr = new CreateColumnFamilyStatement($name.text); }
-      ( '(' createCfamColumns[expr] ( ',' createCfamColumns[expr] )* ')' )?
-      ( K_WITH prop1=(COMPIDENT | IDENT) '=' arg1=createCfamKeywordArgument { $expr.addProperty($prop1.text, $arg1.arg); }
-          ( K_AND propN=(COMPIDENT | IDENT) '=' argN=createCfamKeywordArgument { $expr.addProperty($propN.text, $argN.arg); } )*
-      )?
-      endStmnt
-    ;
-
-createCfamColumns[CreateColumnFamilyStatement expr]
-    : n=term v=createCfamColumnValidator { $expr.addColumn(n, $v.validator); }
-    | k=term v=createCfamColumnValidator K_PRIMARY K_KEY { $expr.setKeyAlias(k.getText()); $expr.setKeyType($v.validator); }
-    ;
-
-createCfamColumnValidator returns [String validator]
-    : comparatorType { $validator = $comparatorType.text; }
-    | STRING_LITERAL { $validator = $STRING_LITERAL.text; }
-    ;
-
-createCfamKeywordArgument returns [String arg]
-    : comparatorType { $arg = $comparatorType.text; }
-    | value=( STRING_LITERAL | IDENT | INTEGER | FLOAT ) { $arg = $value.text; }
-    ;
-
-/** CREATE INDEX [indexName] ON columnFamily (columnName); */
-createIndexStatement returns [CreateIndexStatement expr]
-    : K_CREATE K_INDEX (idxName=IDENT)? K_ON cf=( IDENT | STRING_LITERAL | INTEGER ) '(' columnName=term ')' endStmnt
-      { $expr = new CreateIndexStatement($idxName.text, $cf.text, columnName); }
-    ;
-/**
- * DROP INDEX ON <CF>.<COLUMN_OR_INDEX_NAME>
- * DROP INDEX <INDEX_NAME>
- */
-dropIndexStatement returns [DropIndexStatement expr]
-    :
-      K_DROP K_INDEX index=( IDENT | STRING_LITERAL | INTEGER ) endStmnt
-      { $expr = new DropIndexStatement($index.text); }
-    ;
-
-/** DROP KEYSPACE <KSP>; */
-dropKeyspaceStatement returns [String ksp]
-    : K_DROP K_KEYSPACE name=( IDENT | STRING_LITERAL | INTEGER ) endStmnt { $ksp = $name.text; }
-    ;
-
-
-alterTableStatement returns [AlterTableStatement expr]
-    :
-    {
-        OperationType type = null;
-        String columnFamily = null, columnName = null, validator = null;
-        Map<String, String> propertyMap = null;
-    }
-    K_ALTER K_COLUMNFAMILY name=( IDENT | STRING_LITERAL | INTEGER ) { columnFamily = $name.text; }
-          ( K_ALTER { type = OperationType.ALTER; }
-               (col=( IDENT | STRING_LITERAL | INTEGER ) { columnName = $col.text; })
-               K_TYPE alterValidator=comparatorType { validator = $alterValidator.text; }
-          | K_ADD { type = OperationType.ADD; }
-               (col=( IDENT | STRING_LITERAL | INTEGER ) { columnName = $col.text; })
-               addValidator=comparatorType { validator = $addValidator.text; }
-          | K_DROP { type = OperationType.DROP; }
-               (col=( IDENT | STRING_LITERAL | INTEGER ) { columnName = $col.text; })
-          | K_WITH { type = OperationType.OPTS; propertyMap = new HashMap<String, String>(); }
-               prop1=(COMPIDENT | IDENT) '=' arg1=createCfamKeywordArgument { propertyMap.put($prop1.text, $arg1.arg); }
-               ( K_AND propN=(COMPIDENT | IDENT) '=' argN=createCfamKeywordArgument { propertyMap.put($propN.text, $argN.arg); } )* )
-    endStmnt
-      {
-          $expr = new AlterTableStatement(columnFamily, type, columnName, validator, propertyMap);
-      }
-    ;
-
-/** DROP COLUMNFAMILY <CF>; */
-dropColumnFamilyStatement returns [String cfam]
-    : K_DROP K_COLUMNFAMILY name=( IDENT | STRING_LITERAL | INTEGER ) endStmnt { $cfam = $name.text; }
-    ;
-
-comparatorType
-    : 'blob' | 'ascii' | 'text' | 'varchar' | 'int' | 'varint' | 'bigint' | 'uuid' | 'counter' | 'boolean' | 'timestamp' | 'float' | 'double' | 'decimal'
-    ;
-
-term returns [Term item]
-    : (( t=K_KEY | t=STRING_LITERAL | t=INTEGER | t=UUID | t=IDENT | t=FLOAT ) { $item = new Term($t.text, $t.type); }
-       | t=QMARK { $item = new Term($t.text, $t.type, ++currentBindMarkerIdx); }
-      )
-    ;
-
-termList returns [List<Term> items]
-    : { $items = new ArrayList<Term>(); }
-      t1=term { $items.add(t1); } (',' tN=term { $items.add(tN); })*
-    ;
-
-// term = term
-termPair[Map<Term, Term> columns]
-    :   key=term '=' value=term { columns.put(key, value); }
-    ;
-
-intTerm returns [Term integer]
-    : t=INTEGER { $integer = new Term($t.text, $t.type); }
-    ;
-
-termPairWithOperation[Map<Term, Operation> columns]
-    : key=term '=' (value=term { columns.put(key, new Operation(value)); }
-		               | c=term ( '+'  v=term { columns.put(key, new Operation(c, org.apache.cassandra.cql.Operation.OperationType.PLUS, v)); }
-                            | op='-'? v=intTerm
-                                  { validateMinusSupplied(op, v, input);
-                                    if (op != null) v = new Term(-(Long.valueOf(v.getText())), v.getType());
-                                    columns.put(key, new Operation(c, org.apache.cassandra.cql.Operation.OperationType.MINUS, v)); } ))
-    ;
-
-// Note: ranges are inclusive so >= and >, and < and <= all have the same semantics.  
-relation returns [Relation rel]
-    : name=term type=('=' | '<' | '<=' | '>=' | '>') t=term
-      { return new Relation($name.item, $type.text, $t.item); }
-    ;
-
-// TRUNCATE <CF>;
-truncateStatement returns [Pair<String,String> cf]
-    : K_TRUNCATE (keyspace=( IDENT | STRING_LITERAL | INTEGER ) '.')? columnFamily=( IDENT | STRING_LITERAL | INTEGER ) { $cf = Pair.create($keyspace.text, $columnFamily.text); } endStmnt
-    ;
-
-endStmnt
-    : ';'?  EOF
-    ;
-
-
-// Case-insensitive keywords
-K_SELECT:      S E L E C T;
-K_FROM:        F R O M;
-K_WHERE:       W H E R E;
-K_AND:         A N D;
-K_KEY:         K E Y;
-K_INSERT:      I N S E R T;
-K_UPDATE:      U P D A T E;
-K_WITH:        W I T H;
-K_LIMIT:       L I M I T;
-K_USING:       U S I N G;
-K_CONSISTENCY: C O N S I S T E N C Y;
-K_LEVEL:       ( O N E 
-               | Q U O R U M 
-               | A L L
-               | A N Y
-               | L O C A L '_' Q U O R U M
-               | E A C H '_' Q U O R U M
-               | T W O
-               | T H R E E
-               )
-               ;
-K_USE:         U S E;
-K_FIRST:       F I R S T;
-K_REVERSED:    R E V E R S E D;
-K_COUNT:       C O U N T;
-K_SET:         S E T;
-K_BEGIN:       B E G I N;
-K_APPLY:       A P P L Y;
-K_BATCH:       B A T C H;
-K_TRUNCATE:    T R U N C A T E;
-K_DELETE:      D E L E T E;
-K_IN:          I N;
-K_CREATE:      C R E A T E;
-K_KEYSPACE:    ( K E Y S P A C E
-                 | S C H E M A );
-K_COLUMNFAMILY:( C O L U M N F A M I L Y
-                 | T A B L E );
-K_INDEX:       I N D E X;
-K_ON:          O N;
-K_DROP:        D R O P;
-K_PRIMARY:     P R I M A R Y;
-K_INTO:        I N T O;
-K_VALUES:      V A L U E S;
-K_TIMESTAMP:   T I M E S T A M P;
-K_TTL:         T T L;
-K_ALTER:       A L T E R;
-K_ADD:         A D D;
-K_TYPE:        T Y P E;
-
-// Case-insensitive alpha characters
-fragment A: ('a'|'A');
-fragment B: ('b'|'B');
-fragment C: ('c'|'C');
-fragment D: ('d'|'D');
-fragment E: ('e'|'E');
-fragment F: ('f'|'F');
-fragment G: ('g'|'G');
-fragment H: ('h'|'H');
-fragment I: ('i'|'I');
-fragment J: ('j'|'J');
-fragment K: ('k'|'K');
-fragment L: ('l'|'L');
-fragment M: ('m'|'M');
-fragment N: ('n'|'N');
-fragment O: ('o'|'O');
-fragment P: ('p'|'P');
-fragment Q: ('q'|'Q');
-fragment R: ('r'|'R');
-fragment S: ('s'|'S');
-fragment T: ('t'|'T');
-fragment U: ('u'|'U');
-fragment V: ('v'|'V');
-fragment W: ('w'|'W');
-fragment X: ('x'|'X');
-fragment Y: ('y'|'Y');
-fragment Z: ('z'|'Z');
-    
-STRING_LITERAL
-    : '\''
-      { StringBuilder b = new StringBuilder(); }
-      ( c=~('\'') { b.appendCodePoint(c);}
-      | '\'' '\''            { b.appendCodePoint('\'');}
-      )*
-      '\''
-      { setText(b.toString()); }
-    ;
-
-fragment DIGIT
-    : '0'..'9'
-    ;
-
-fragment LETTER
-    : ('A'..'Z' | 'a'..'z')
-    ;
-    
-fragment HEX
-    : ('A'..'F' | 'a'..'f' | '0'..'9')
-    ;
-
-RANGEOP
-    : '..'
-    ;
-
-INTEGER
-    : '-'? DIGIT+
-    ;
-    
-QMARK
-    : '?'
-    ;
-
-
-/* Normally a lexer only emits one token at a time, but ours is tricked out
- * to support multiple (see @lexer::members near the top of the grammar).
- */
-FLOAT
-    : d=INTEGER r=RANGEOP
-      {
-          $d.setType(INTEGER);
-          emit($d);
-          $r.setType(RANGEOP);
-          emit($r);
-      }
-      | INTEGER '.' INTEGER
-    ;
-
-IDENT
-    : LETTER (LETTER | DIGIT | '_')*
-    ;
-    
-COMPIDENT
-    : IDENT ( ':' (IDENT | INTEGER))*
-    ;
-   
-UUID
-    : HEX HEX HEX HEX HEX HEX HEX HEX '-'
-      HEX HEX HEX HEX '-'
-      HEX HEX HEX HEX '-'
-      HEX HEX HEX HEX '-'
-      HEX HEX HEX HEX HEX HEX HEX HEX HEX HEX HEX HEX
-    ;
-
-WS
-    : (' ' | '\t' | '\n' | '\r')+ { $channel = HIDDEN; }
-    ;
-
-COMMENT
-    : ('--' | '//') .* ('\n'|'\r') { $channel = HIDDEN; }
-    ;
-    
-MULTILINE_COMMENT
-    : '/*' .* '*/' { $channel = HIDDEN; }
-    ;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/26217071/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
deleted file mode 100644
index e568dd7..0000000
--- a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.cql;
-
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ColumnDefinition;
-import org.apache.cassandra.db.composites.SimpleDenseCellNameType;
-import org.apache.cassandra.db.ColumnFamilyType;
-import org.apache.cassandra.db.marshal.AbstractType;
-import org.apache.cassandra.db.marshal.TypeParser;
-import org.apache.cassandra.exceptions.ConfigurationException;
-import org.apache.cassandra.exceptions.InvalidRequestException;
-import org.apache.cassandra.exceptions.SyntaxException;
-import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.io.compress.CompressionParameters;
-
-/** A <code>CREATE COLUMNFAMILY</code> parsed from a CQL query statement. */
-public class CreateColumnFamilyStatement
-{
-    private final String name;
-    private final Map<Term, String> columns = new HashMap<Term, String>();
-    private final List<String> keyValidator = new ArrayList<String>();
-    private ByteBuffer keyAlias = null;
-    private final CFPropDefs cfProps = new CFPropDefs();
-
-    public CreateColumnFamilyStatement(String name)
-    {
-        this.name = name;
-    }
-
-    /** Perform validation of parsed params */
-    private void validate(List<ByteBuffer> variables) throws InvalidRequestException
-    {
-        // Ensure that exactly one key has been specified.
-        if (keyValidator.size() < 1)
-            throw new InvalidRequestException("You must specify a PRIMARY KEY");
-        else if (keyValidator.size() > 1)
-            throw new InvalidRequestException("You may only specify one PRIMARY KEY");
-
-        AbstractType<?> comparator;
-
-        try
-        {
-            cfProps.validate();
-            comparator = cfProps.getComparator();
-        }
-        catch (ConfigurationException e)
-        {
-            throw new InvalidRequestException(e.toString());
-        }
-        catch (SyntaxException e)
-        {
-            throw new InvalidRequestException(e.toString());
-        }
-
-        for (Map.Entry<Term, String> column : columns.entrySet())
-        {
-            ByteBuffer name = column.getKey().getByteBuffer(comparator, variables);
-
-            if (keyAlias != null && keyAlias.equals(name))
-                throw new InvalidRequestException("Invalid column name: "
-                                                  + column.getKey().getText()
-                                                  + ", because it equals to the key_alias.");
-
-        }
-    }
-
-    /** Map a column name to a validator for its value */
-    public void addColumn(Term term, String comparator)
-    {
-        columns.put(term, comparator);
-    }
-
-    public void setKeyType(String validator)
-    {
-        keyValidator.add(validator);
-    }
-
-    public String getKeyType()
-    {
-        return keyValidator.get(0);
-    }
-
-    public void setKeyAlias(String alias)
-    {
-        // if we got KEY in input we don't need to set an alias
-        if (!alias.toUpperCase().equals("KEY"))
-            keyAlias = ByteBufferUtil.bytes(alias);
-    }
-
-    /** Map a keyword to the corresponding value */
-    public void addProperty(String name, String value)
-    {
-        cfProps.addProperty(name, value);
-    }
-
-    /** Name of the column family to create */
-    public String getName()
-    {
-        return name;
-    }
-
-    // Column definitions
-    private List<ColumnDefinition> getColumns(CFMetaData cfm) throws InvalidRequestException
-    {
-        List<ColumnDefinition> columnDefs = new ArrayList<>(columns.size());
-
-        for (Map.Entry<Term, String> col : columns.entrySet())
-        {
-            try
-            {
-                ByteBuffer columnName = cfm.comparator.asAbstractType().fromStringCQL2(col.getKey().getText());
-                String validatorClassName = CFPropDefs.comparators.containsKey(col.getValue())
-                                          ? CFPropDefs.comparators.get(col.getValue())
-                                          : col.getValue();
-                AbstractType<?> validator = TypeParser.parse(validatorClassName);
-                columnDefs.add(ColumnDefinition.regularDef(cfm, columnName, validator, null));
-            }
-            catch (ConfigurationException e)
-            {
-                InvalidRequestException ex = new InvalidRequestException(e.toString());
-                ex.initCause(e);
-                throw ex;
-            }
-            catch (SyntaxException e)
-            {
-                InvalidRequestException ex = new InvalidRequestException(e.toString());
-                ex.initCause(e);
-                throw ex;
-            }
-        }
-
-        return columnDefs;
-    }
-
-    /**
-     * Returns a CFMetaData instance based on the parameters parsed from this
-     * <code>CREATE</code> statement, or defaults where applicable.
-     *
-     * @param keyspace keyspace to apply this column family to
-     * @return a CFMetaData instance corresponding to the values parsed from this statement
-     * @throws InvalidRequestException on failure to validate parsed parameters
-     */
-    public CFMetaData getCFMetaData(String keyspace, List<ByteBuffer> variables) throws InvalidRequestException
-    {
-        validate(variables);
-
-        CFMetaData newCFMD;
-        try
-        {
-            AbstractType<?> comparator = cfProps.getComparator();
-
-            newCFMD = new CFMetaData(keyspace,
-                                     name,
-                                     ColumnFamilyType.Standard,
-                                     new SimpleDenseCellNameType(comparator));
-
-            if (CFMetaData.DEFAULT_COMPRESSOR != null && cfProps.compressionParameters.isEmpty())
-                cfProps.compressionParameters.put(CompressionParameters.SSTABLE_COMPRESSION, CFMetaData.DEFAULT_COMPRESSOR);
-            int maxCompactionThreshold = getPropertyInt(CFPropDefs.KW_MAXCOMPACTIONTHRESHOLD, CFMetaData.DEFAULT_MAX_COMPACTION_THRESHOLD);
-            int minCompactionThreshold = getPropertyInt(CFPropDefs.KW_MINCOMPACTIONTHRESHOLD, CFMetaData.DEFAULT_MIN_COMPACTION_THRESHOLD);
-            if (minCompactionThreshold <= 0 || maxCompactionThreshold <= 0)
-                throw new ConfigurationException("Disabling compaction by setting compaction thresholds to 0 has been deprecated, set the compaction option 'enabled' to false instead.");
-
-            newCFMD.addAllColumnDefinitions(getColumns(newCFMD))
-                   .comment(cfProps.getProperty(CFPropDefs.KW_COMMENT))
-                   .readRepairChance(getPropertyDouble(CFPropDefs.KW_READREPAIRCHANCE, CFMetaData.DEFAULT_READ_REPAIR_CHANCE))
-                   .dcLocalReadRepairChance(getPropertyDouble(CFPropDefs.KW_DCLOCALREADREPAIRCHANCE, CFMetaData.DEFAULT_DCLOCAL_READ_REPAIR_CHANCE))
-                   .gcGraceSeconds(getPropertyInt(CFPropDefs.KW_GCGRACESECONDS, CFMetaData.DEFAULT_GC_GRACE_SECONDS))
-                   .defaultValidator(cfProps.getValidator())
-                   .minCompactionThreshold(minCompactionThreshold)
-                   .maxCompactionThreshold(maxCompactionThreshold)
-                   .keyValidator(TypeParser.parse(CFPropDefs.comparators.get(getKeyType())))
-                   .compactionStrategyClass(cfProps.compactionStrategyClass)
-                   .compactionStrategyOptions(cfProps.compactionStrategyOptions)
-                   .compressionParameters(CompressionParameters.create(cfProps.compressionParameters))
-                   .caching(CFMetaData.Caching.fromString(getPropertyString(CFPropDefs.KW_CACHING, CFMetaData.DEFAULT_CACHING_STRATEGY.toString())))
-                   .rowsPerPartitionToCache(CFMetaData.RowsPerPartitionToCache.fromString(cfProps.getPropertyString(CFPropDefs.KW_ROWS_PER_PARTITION_TO_CACHE, CFMetaData.DEFAULT_ROWS_PER_PARTITION_TO_CACHE.toString())))
-                   .speculativeRetry(CFMetaData.SpeculativeRetry.fromString(getPropertyString(CFPropDefs.KW_SPECULATIVE_RETRY, CFMetaData.DEFAULT_SPECULATIVE_RETRY.toString())))
-                   .bloomFilterFpChance(getPropertyDouble(CFPropDefs.KW_BF_FP_CHANCE, null))
-                   .memtableFlushPeriod(getPropertyInt(CFPropDefs.KW_MEMTABLE_FLUSH_PERIOD, 0))
-                   .defaultTimeToLive(getPropertyInt(CFPropDefs.KW_DEFAULT_TIME_TO_LIVE, CFMetaData.DEFAULT_DEFAULT_TIME_TO_LIVE))
-                   .populateIoCacheOnFlush(getPropertyBoolean(CFPropDefs.KW_POPULATE_IO_CACHE_ON_FLUSH, CFMetaData.DEFAULT_POPULATE_IO_CACHE_ON_FLUSH));
-
-            // CQL2 can have null keyAliases
-            if (keyAlias != null)
-                newCFMD.addColumnDefinition(ColumnDefinition.partitionKeyDef(newCFMD, keyAlias, newCFMD.getKeyValidator(), null));
-        }
-        catch (ConfigurationException e)
-        {
-            throw new InvalidRequestException(e.toString());
-        }
-        catch (SyntaxException e)
-        {
-            throw new InvalidRequestException(e.toString());
-        }
-        return newCFMD;
-    }
-
-    private String getPropertyString(String key, String defaultValue)
-    {
-        return cfProps.getPropertyString(key, defaultValue);
-    }
-
-    private Boolean getPropertyBoolean(String key, Boolean defaultValue)
-    {
-        return cfProps.getPropertyBoolean(key, defaultValue);
-    }
-
-    private Double getPropertyDouble(String key, Double defaultValue) throws InvalidRequestException
-    {
-        return cfProps.getPropertyDouble(key, defaultValue);
-    }
-
-    private Integer getPropertyInt(String key, Integer defaultValue) throws InvalidRequestException
-    {
-        return cfProps.getPropertyInt(key, defaultValue);
-    }
-
-    private Set<String> getPropertySet(String key, Set<String> defaultValue)
-    {
-        return cfProps.getPropertySet(key, defaultValue);
-    }
-
-    public Map<Term, String> getColumns()
-    {
-        return columns;
-    }
-
-}
-

http://git-wip-us.apache.org/repos/asf/cassandra/blob/26217071/src/java/org/apache/cassandra/cql/CreateIndexStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/CreateIndexStatement.java b/src/java/org/apache/cassandra/cql/CreateIndexStatement.java
deleted file mode 100644
index 54b5eef..0000000
--- a/src/java/org/apache/cassandra/cql/CreateIndexStatement.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.cql;
-
-/** A <code>CREATE INDEX</code> statement parsed from a CQL query. */
-public class CreateIndexStatement
-{
-    private final String columnFamily;
-    private final String indexName;
-    private final Term columnName;
-
-    public CreateIndexStatement(String indexName, String columnFamily, Term columnName)
-    {
-        this.indexName = indexName;
-        this.columnFamily = columnFamily;
-        this.columnName = columnName;
-    }
-
-    /** Column family namespace. */
-    public String getColumnFamily()
-    {
-        return columnFamily;
-    }
-
-    /** Column name to index. */
-    public Term getColumnName()
-    {
-        return columnName;
-    }
-
-    /** Index name (or null). */
-    public String getIndexName()
-    {
-        return indexName;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/26217071/src/java/org/apache/cassandra/cql/CreateKeyspaceStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/CreateKeyspaceStatement.java b/src/java/org/apache/cassandra/cql/CreateKeyspaceStatement.java
deleted file mode 100644
index 8c2aa1b..0000000
--- a/src/java/org/apache/cassandra/cql/CreateKeyspaceStatement.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.cql;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.cassandra.exceptions.InvalidRequestException;
-
-/** A <code>CREATE KEYSPACE</code> statement parsed from a CQL query. */
-public class CreateKeyspaceStatement
-{
-    private final String name;
-    private final Map<String, String> attrs;
-    private String strategyClass;
-    private final Map<String, String> strategyOptions = new HashMap<String, String>();
-
-    /**
-     * Creates a new <code>CreateKeyspaceStatement</code> instance for a given
-     * keyspace name and keyword arguments.
-     *
-     * @param name the name of the keyspace to create
-     * @param attrs map of the raw keyword arguments that followed the <code>WITH</code> keyword.
-     */
-    public CreateKeyspaceStatement(String name, Map<String, String> attrs)
-    {
-        this.name = name;
-        this.attrs = attrs;
-    }
-
-    /**
-     * The <code>CqlParser</code> only goes as far as extracting the keyword arguments
-     * from these statements, so this method is responsible for processing and
-     * validating, and must be called prior to access.
-     *
-     * @throws InvalidRequestException if arguments are missing or unacceptable
-     */
-    public void validate() throws InvalidRequestException
-    {
-        // required
-        if (!attrs.containsKey("strategy_class"))
-            throw new InvalidRequestException("missing required argument \"strategy_class\"");
-        strategyClass = attrs.get("strategy_class");
-
-        // optional
-        for (String key : attrs.keySet())
-            if ((key.contains(":")) && (key.startsWith("strategy_options")))
-                strategyOptions.put(key.split(":")[1], attrs.get(key));
-    }
-
-    public String getName()
-    {
-        return name;
-    }
-
-    public String getStrategyClass()
-    {
-        return strategyClass;
-    }
-
-    public Map<String, String> getStrategyOptions()
-    {
-        return strategyOptions;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/26217071/src/java/org/apache/cassandra/cql/DeleteStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/DeleteStatement.java b/src/java/org/apache/cassandra/cql/DeleteStatement.java
deleted file mode 100644
index 71942e4..0000000
--- a/src/java/org/apache/cassandra/cql/DeleteStatement.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.cql;
-
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.cassandra.auth.Permission;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.Schema;
-import org.apache.cassandra.db.Mutation;
-import org.apache.cassandra.db.composites.CellName;
-import org.apache.cassandra.db.IMutation;
-import org.apache.cassandra.db.marshal.AbstractType;
-import org.apache.cassandra.exceptions.InvalidRequestException;
-import org.apache.cassandra.exceptions.UnauthorizedException;
-import org.apache.cassandra.thrift.ThriftClientState;
-
-import static org.apache.cassandra.thrift.ThriftValidation.validateColumnFamily;
-import static org.apache.cassandra.cql.QueryProcessor.validateColumnName;
-
-/**
- * A <code>DELETE</code> parsed from a CQL query statement.
- *
- */
-public class DeleteStatement extends AbstractModification
-{
-    private List<Term> columns;
-    private List<Term> keys;
-
-    public DeleteStatement(List<Term> columns, String keyspace, String columnFamily, String keyName, List<Term> keys, Attributes attrs)
-    {
-        super(keyspace, columnFamily, keyName, attrs);
-
-        this.columns = columns;
-        this.keys = keys;
-    }
-
-    public List<Term> getColumns()
-    {
-        return columns;
-    }
-
-    public List<Term> getKeys()
-    {
-        return keys;
-    }
-
-    public List<IMutation> prepareRowMutations(String keyspace, ThriftClientState clientState, List<ByteBuffer> variables)
-    throws InvalidRequestException, UnauthorizedException
-    {
-        return prepareRowMutations(keyspace, clientState, null, variables);
-    }
-
-    public List<IMutation> prepareRowMutations(String keyspace, ThriftClientState clientState, Long timestamp, List<ByteBuffer> variables)
-    throws InvalidRequestException, UnauthorizedException
-    {
-        CFMetaData metadata = validateColumnFamily(keyspace, columnFamily);
-
-        clientState.hasColumnFamilyAccess(keyspace, columnFamily, Permission.MODIFY);
-        AbstractType<?> keyType = Schema.instance.getCFMetaData(keyspace, columnFamily).getKeyValidator();
-
-        List<IMutation> mutations = new ArrayList<IMutation>(keys.size());
-
-        for (Term key : keys)
-            mutations.add(mutationForKey(key.getByteBuffer(keyType, variables), keyspace, timestamp, clientState, variables, metadata));
-
-        return mutations;
-    }
-
-    public Mutation mutationForKey(ByteBuffer key, String keyspace, Long timestamp, ThriftClientState clientState, List<ByteBuffer> variables, CFMetaData metadata)
-    throws InvalidRequestException
-    {
-        Mutation mutation = new Mutation(keyspace, key);
-
-        QueryProcessor.validateKeyAlias(metadata, keyName);
-
-        if (columns.size() < 1)
-        {
-            // No columns, delete the partition
-            mutation.delete(columnFamily, (timestamp == null) ? getTimestamp(clientState) : timestamp);
-        }
-        else
-        {
-            // Delete specific columns
-            AbstractType<?> at = metadata.comparator.asAbstractType();
-            for (Term column : columns)
-            {
-                CellName columnName = metadata.comparator.cellFromByteBuffer(column.getByteBuffer(at, variables));
-                validateColumnName(columnName);
-                mutation.delete(columnFamily, columnName, (timestamp == null) ? getTimestamp(clientState) : timestamp);
-            }
-        }
-
-        return mutation;
-    }
-
-    public String toString()
-    {
-        return String.format("DeleteStatement(columns=%s, keyspace=%s, columnFamily=%s, consistency=%s keys=%s)",
-                             columns,
-                             keyspace,
-                             columnFamily,
-                             cLevel,
-                             keys);
-    }
-}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/26217071/src/java/org/apache/cassandra/cql/DropIndexStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/DropIndexStatement.java b/src/java/org/apache/cassandra/cql/DropIndexStatement.java
deleted file mode 100644
index bc9bbbc..0000000
--- a/src/java/org/apache/cassandra/cql/DropIndexStatement.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.cql;
-
-import org.apache.cassandra.config.*;
-import org.apache.cassandra.exceptions.InvalidRequestException;
-
-public class DropIndexStatement
-{
-    public final String indexName;
-    private String keyspace;
-
-    public DropIndexStatement(String indexName)
-    {
-        this.indexName = indexName;
-    }
-
-    public void setKeyspace(String keyspace)
-    {
-        this.keyspace = keyspace;
-    }
-
-    public String getColumnFamily() throws InvalidRequestException
-    {
-        return findIndexedCF().cfName;
-    }
-
-    public CFMetaData generateCFMetadataUpdate() throws InvalidRequestException
-    {
-        return updateCFMetadata(findIndexedCF());
-    }
-
-    private CFMetaData updateCFMetadata(CFMetaData cfm)
-    {
-        ColumnDefinition column = findIndexedColumn(cfm);
-        assert column != null;
-        CFMetaData cloned = cfm.clone();
-        ColumnDefinition toChange = cloned.getColumnDefinition(column.name);
-        assert toChange.getIndexName() != null && toChange.getIndexName().equals(indexName);
-        toChange.setIndexName(null);
-        toChange.setIndexType(null, null);
-        return cloned;
-    }
-
-    private CFMetaData findIndexedCF() throws InvalidRequestException
-    {
-        KSMetaData ksm = Schema.instance.getKSMetaData(keyspace);
-        for (CFMetaData cfm : ksm.cfMetaData().values())
-        {
-            if (findIndexedColumn(cfm) != null)
-                return cfm;
-        }
-        throw new InvalidRequestException("Index '" + indexName + "' could not be found in any of the column families of keyspace '" + keyspace + "'");
-    }
-
-    private ColumnDefinition findIndexedColumn(CFMetaData cfm)
-    {
-        for (ColumnDefinition column : cfm.regularColumns())
-        {
-            if (column.getIndexType() != null && column.getIndexName() != null && column.getIndexName().equals(indexName))
-                return column;
-        }
-        return null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/26217071/src/java/org/apache/cassandra/cql/Operation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/Operation.java b/src/java/org/apache/cassandra/cql/Operation.java
deleted file mode 100644
index 0f06433..0000000
--- a/src/java/org/apache/cassandra/cql/Operation.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.cql;
-
-public class Operation
-{
-    public static enum OperationType
-    { PLUS, MINUS }
-
-    public final OperationType type;
-    public final Term a, b;
-
-    // unary operation
-    public Operation(Term a)
-    {
-        this.a = a;
-        type = null;
-        b = null;
-    }
-
-    // binary operation
-    public Operation(Term a, OperationType type, Term b)
-    {
-        this.a = a;
-        this.type = type;
-        this.b = b;
-    }
-
-    public boolean isUnary()
-    {
-        return type == null && b == null;
-    }
-
-    public String toString()
-    {
-        return (isUnary())
-                ? String.format("UnaryOperation(%s)", a)
-                : String.format("BinaryOperation(%s, %s, %s)", a, type, b);
-    }
-}