This document describes the Cassandra Query Language (CQL) version 3. CQL v3 is not backward compatible with CQL v2 and differs from it in numerous ways. Note that this document describes the last version of the languages. However, the changes section provides the diff between the different versions of CQL v3.
CQL v3 offers a model very close to SQL in the sense that data is put in tables containing rows of columns. For that reason, when used in this document, these terms (tables, rows and columns) have the same definition than they have in SQL. But please note that as such, they do not refer to the concept of rows and columns found in the internal implementation of Cassandra and in the thrift and CQL v2 API.
Conventions
To aid in specifying the CQL syntax, we will use the following conventions in this document:
Language rules will be given in a BNF -like notation:
As additional shortcut notations to BNF, we’ll use traditional regular expression’s symbols (?, + and *) to signify that a given symbol is optional and/or can be repeated. We’ll also allow parentheses to group symbols and the [<characters>] notation to represent any one of <characters>.
The grammar is provided for documentation purposes and leave some minor details out. For instance, the last column definition in a CREATE TABLE statement is optional but supported if present even though the provided grammar in this document suggest it is not supported.
Sample code will be provided in a code block:
SELECT sample_usage FROM cql;
+
References to keywords or pieces of CQL code in running text will be shown in a fixed-width font.
Identifiers and keywords
The CQL language uses identifiers (or names) to identify tables, columns and other objects. An identifier is a token matching the regular expression [a-zA-Z][a-zA-Z0-9_]*.
A number of such identifiers, like SELECT or WITH, are keywords. They have a fixed meaning for the language and most are reserved. The list of those keywords can be found in Appendix A.
Identifiers and (unquoted) keywords are case insensitive. Thus SELECT is the same than select or sElEcT, and myId is the same than myid or MYID for instance. A convention often used (in particular by the samples of this documentation) is to use upper case for keywords and lower case for other identifiers.
There is a second kind of identifiers called quoted identifiers defined by enclosing an arbitrary sequence of characters in double-quotes("). Quoted identifiers are never keywords. Thus "select" is not a reserved keyword and can be used to refer to a column, while select would raise a parse error. Also, contrarily to unquoted identifiers and keywords, quoted identifiers are case sensitive ("My Quoted Id" is different from "my quoted id"). A fully lowercase quoted identifier that matches [a-zA-Z][a-zA-Z0-9_]* is equivalent to the unquoted identifier obtained by removing the double-quote (so "myid" is equivalent to myid and to myId but different from "myId"). Inside a quoted identifier, the double-quote character can be repeated to escape it, so "foo "" bar" is a valid identifier.
Warning: quoted identifiers allows to declare columns with arbitrary names, and those can sometime clash with specific names used by the server. For instance, when using conditional update, the server will respond with a result-set containing a special result named "[applied]". If you’ve declared a column with such a name, this could potentially confuse some tools and should be avoided. In general, unquoted identifiers should be preferred but if you use quoted identifiers, it is strongly advised to avoid any name enclosed by squared brackets (like "[applied]") and any name that looks like a function call (like "f(x)").
Constants
CQL defines the following kind of constants: strings, integers, floats, booleans, uuids and blobs:
A string constant is an arbitrary sequence of characters characters enclosed by single-quote('). One can include a single-quote in a string by repeating it, e.g. 'It''s raining today'. Those are not to be confused with quoted identifiers that use double-quotes.
An integer constant is defined by '-'?[0-9]+.
A float constant is defined by '-'?[0-9]+('.'[0-9]*)?([eE][+-]?[0-9+])?. On top of that, NaN and Infinity are also float constants.
A boolean constant is either true or false up to case-insensitivity (i.e. True is a valid boolean constant).
A UUID constant is defined by hex{8}-hex{4}-hex{4}-hex{4}-hex{12} where hex is an hexadecimal character, e.g. [0-9a-fA-F] and {4} is the number of such characters.
A blob constant is an hexadecimal number defined by 0[xX](hex)+ where hex is an hexadecimal character, e.g. [0-9a-fA-F].
A comment in CQL is a line beginning by either double dashes (--) or double slash (//).
Multi-line comments are also supported through enclosure within /* and */ (but nesting is not supported).
-- This is a comment
+// This is a comment too
+/* This is
+ a multi-line comment */
+
Statements
CQL consists of statements. As in SQL, these statements can be divided in 3 categories:
Data definition statements, that allow to set and change the way data is stored.
Data manipulation statements, that allow to change data
Queries, to look up data
All statements end with a semicolon (;) but that semicolon can be omitted when dealing with a single statement. The supported statements are described in the following sections. When describing the grammar of said statements, we will reuse the non-terminal symbols defined below:
Please note that not every possible productions of the grammar above will be valid in practice. Most notably, <variable> and nested <collection-literal> are currently not allowed inside <collection-literal>.
A <variable> can be either anonymous (a question mark (?)) or named (an identifier preceded by :). Both declare a bind variables for prepared statements. The only difference between an anymous and a named variable is that a named one will be easier to refer to (how exactly depends on the client driver used).
The <properties> production is use by statement that create and alter keyspaces and tables. Each <property> is either a simple one, in which case it just has a value, or a map one, in which case it’s value is a map grouping sub-options. The following will refer to one or the other as the kind (simple or map) of the property.
A <tablename> will be used to identify a table. This is an identifier representing the table name that can be preceded by a keyspace name. The keyspace name, if provided, allow to identify a table in another keyspace than the currently active one (the currently active keyspace is set through the USE statement).
For supported <function>, see the section on functions.
Strings can be either enclosed with single quotes or two dollar characters. The second syntax has been introduced to allow strings that contain single quotes. Typical candidates for such strings are source code fragments for user-defined functions.
Sample:
'some string value'
+
+ $$double-dollar string can contain single ' quotes$$
+
Prepared Statement
CQL supports prepared statements. Prepared statement is an optimization that allows to parse a query only once but execute it multiple times with different concrete values.
In a statement, each time a column value is expected (in the data manipulation and query statements), a <variable> (see above) can be used instead. A statement with bind variables must then be prepared. Once it has been prepared, it can executed by providing concrete values for the bind variables. The exact procedure to prepare a statement and execute a prepared statement depends on the CQL driver used and is beyond the scope of this document.
In addition to providing column values, bind markers may be used to provide values for LIMIT, TIMESTAMP, and TTL clauses. If anonymous bind markers are used, the names for the query parameters will be [limit], [timestamp], and [ttl], respectively.
Data Definition
CREATE KEYSPACE
Syntax:
<create-keyspace-stmt> ::= CREATE KEYSPACE (IF NOT EXISTS)? <identifier> WITH <properties>
+
The CREATE KEYSPACE statement creates a new top-level keyspace. A keyspace is a namespace that defines a replication strategy and some options for a set of tables. Valid keyspaces names are identifiers composed exclusively of alphanumerical characters and whose length is lesser or equal to 32. Note that as identifiers, keyspace names are case insensitive: use a quoted identifier for case sensitive keyspace names.
The supported <properties> for CREATE KEYSPACE are:
name
kind
mandatory
default
description
replication
map
yes
The replication strategy and options to use for the keyspace.
durable_writes
simple
no
true
Whether to use the commit log for updates on this keyspace (disable this option at your own risk!).
The replication<property> is mandatory. It must at least contains the 'class' sub-option which defines the replication strategy class to use. The rest of the sub-options depends on that replication strategy class. By default, Cassandra support the following 'class':
'SimpleStrategy': A simple strategy that defines a simple replication factor for the whole cluster. The only sub-options supported is 'replication_factor' to define that replication factor and is mandatory.
'NetworkTopologyStrategy': A replication strategy that allows to set the replication factor independently for each data-center. The rest of the sub-options are key-value pairs where each time the key is the name of a datacenter and the value the replication factor for that data-center.
'OldNetworkTopologyStrategy': A legacy replication strategy. You should avoid this strategy for new keyspaces and prefer 'NetworkTopologyStrategy'.
Attempting to create an already existing keyspace will return an error unless the IF NOT EXISTS option is used. If it is used, the statement will be a no-op if the keyspace already exists.
USE
Syntax:
<use-stmt> ::= USE <identifier>
+
Sample:
USE myApp;
+
The USE statement takes an existing keyspace name as argument and set it as the per-connection current working keyspace. All subsequent keyspace-specific actions will be performed in the context of the selected keyspace, unless otherwise specified, until another USE statement is issued or the connection terminates.
ALTER KEYSPACE
Syntax:
<create-keyspace-stmt> ::= ALTER KEYSPACE <identifier> WITH <properties>
+
Sample:
ALTER KEYSPACE Excelsior
+ WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 4};
+
+
The ALTER KEYSPACE statement alters the properties of an existing keyspace. The supported <properties> are the same as for the CREATE KEYSPACE statement.
DROP KEYSPACE
Syntax:
<drop-keyspace-stmt> ::= DROP KEYSPACE ( IF EXISTS )? <identifier>
+
Sample:
DROP KEYSPACE myApp;
+
A DROP KEYSPACE statement results in the immediate, irreversible removal of an existing keyspace, including all column families in it, and all data contained in those column families.
If the keyspace does not exists, the statement will return an error, unless IF EXISTS is used in which case the operation is a no-op.
CREATE TABLE monkeySpecies (
+ species text PRIMARY KEY,
+ common_name text,
+ population varint,
+ average_size int
+) WITH comment='Important biological records'
+ AND read_repair_chance = 1.0;
+
+CREATE TABLE timeline (
+ userid uuid,
+ posted_month int,
+ posted_time uuid,
+ body text,
+ posted_by text,
+ PRIMARY KEY (userid, posted_month, posted_time)
+) WITH compaction = { 'class' : 'LeveledCompactionStrategy' };
+
The CREATE TABLE statement creates a new table. Each such table is a set of rows (usually representing related entities) for which it defines a number of properties. A table is defined by a name, it defines the columns composing rows of the table and have a number of options. Note that the CREATE COLUMNFAMILY syntax is supported as an alias for CREATE TABLE (for historical reasons).
Attempting to create an already existing table will return an error unless the IF NOT EXISTS option is used. If it is used, the statement will be a no-op if the table already exists.
<tablename>
Valid table names are the same as valid keyspace names (up to 32 characters long alphanumerical identifiers). If the table name is provided alone, the table is created within the current keyspace (see USE), but if it is prefixed by an existing keyspace name (see <tablename> grammar), it is created in the specified keyspace (but does not change the current keyspace).
<column-definition>
A CREATE TABLE statement defines the columns that rows of the table can have. A column is defined by its name (an identifier) and its type (see the data types section for more details on allowed types and their properties).
Within a table, a row is uniquely identified by its PRIMARY KEY (or more simply the key), and hence all table definitions must define a PRIMARY KEY (and only one). A PRIMARY KEY is composed of one or more of the columns defined in the table. If the PRIMARY KEY is only one column, this can be specified directly after the column definition. Otherwise, it must be specified by following PRIMARY KEY by the comma-separated list of column names composing the key within parenthesis. Note that:
CREATE TABLE t (
+ k int PRIMARY KEY,
+ other text
+)
+
is equivalent to
CREATE TABLE t (
+ k int,
+ other text,
+ PRIMARY KEY (k)
+)
+
Partition key and clustering columns
In CQL, the order in which columns are defined for the PRIMARY KEY matters. The first column of the key is called the partition key. It has the property that all the rows sharing the same partition key (even across table in fact) are stored on the same physical node. Also, insertion/update/deletion on rows sharing the same partition key for a given table are performed atomically and in isolation. Note that it is possible to have a composite partition key, i.e. a partition key formed of multiple columns, using an extra set of parentheses to define which columns forms the partition key.
The remaining columns of the PRIMARY KEY definition, if any, are called __clustering columns. On a given physical node, rows for a given partition key are stored in the order induced by the clustering columns, making the retrieval of rows in that clustering order particularly efficient (see SELECT).
STATIC columns
Some columns can be declared as STATIC in a table definition. A column that is static will be “shared” by all the rows belonging to the same partition (having the same partition key). For instance, in:
CREATE TABLE test (
+ pk int,
+ t int,
+ v text,
+ s text static,
+ PRIMARY KEY (pk, t)
+);
+INSERT INTO test(pk, t, v, s) VALUES (0, 0, 'val0', 'static0');
+INSERT INTO test(pk, t, v, s) VALUES (0, 1, 'val1', 'static1');
+SELECT * FROM test WHERE pk=0 AND t=0;
+
the last query will return 'static1' as value for s, since s is static and thus the 2nd insertion modified this “shared” value. Note however that static columns are only static within a given partition, and if in the example above both rows where from different partitions (i.e. if they had different value for pk), then the 2nd insertion would not have modified the value of s for the first row.
A few restrictions applies to when static columns are allowed:
tables with the COMPACT STORAGE option (see below) cannot have them
a table without clustering columns cannot have static columns (in a table without clustering columns, every partition has only one row, and so every column is inherently static).
only non PRIMARY KEY columns can be static
<option>
The CREATE TABLE statement supports a number of options that controls the configuration of a new table. These options can be specified after the WITH keyword.
The first of these option is COMPACT STORAGE. This option is mainly targeted towards backward compatibility for definitions created before CQL3 (see www.datastax.com/dev/blog/thrift-to-cql3 for more details). The option also provides a slightly more compact layout of data on disk but at the price of diminished flexibility and extensibility for the table. Most notably, COMPACT STORAGE tables cannot have collections nor static columns and a COMPACT STORAGE table with at least one clustering column supports exactly one (as in not 0 nor more than 1) column not part of the PRIMARY KEY definition (which imply in particular that you cannot add nor remove columns after creation). For those reasons, COMPACT STORAGE is not recommended outside of the backward compatibility reason evoked above.
Another option is CLUSTERING ORDER. It allows to define the ordering of rows on disk. It takes the list of the clustering column names with, for each of them, the on-disk order (Ascending or descending). Note that this option affects what ORDER BY are allowed during SELECT.
Table creation supports the following other <property>:
option
kind
default
description
comment
simple
none
A free-form, human-readable comment.
read_repair_chance
simple
0.1
The probability with which to query extra nodes (e.g. more nodes than required by the consistency level) for the purpose of read repairs.
dclocal_read_repair_chance
simple
0
The probability with which to query extra nodes (e.g. more nodes than required by the consistency level) belonging to the same data center than the read coordinator for the purpose of read repairs.
gc_grace_seconds
simple
864000
Time to wait before garbage collecting tombstones (deletion markers).
bloom_filter_fp_chance
simple
0.00075
The target probability of false positive of the sstable bloom filters. Said bloom filters will be sized to provide the provided probability (thus lowering this value impact the size of bloom filters in-memory and on-disk)
default_time_to_live
simple
0
The default expiration time (“TTL”) in seconds for a table.
The compaction property must at least define the 'class' sub-option, that defines the compaction strategy class to use. The default supported class are 'SizeTieredCompactionStrategy', 'LeveledCompactionStrategy', 'DateTieredCompactionStrategy' and 'TimeWindowCompactionStrategy'. Custom strategy can be provided by specifying the full class name as a string constant. The rest of the sub-options depends on the chosen class. The sub-options supported by the default classes are:
option
supported compaction strategy
default
description
enabled
all
true
A boolean denoting whether compaction should be enabled or not.
tombstone_threshold
all
0.2
A ratio such that if a sstable has more than this ratio of gcable tombstones over all contained columns, the sstable will be compacted (with no other sstables) for the purpose of purging those tombstones.
tombstone_compaction_interval
all
1 day
The minimum time to wait after an sstable creation time before considering it for “tombstone compaction”, where “tombstone compaction” is the compaction triggered if the sstable has more gcable tombstones than tombstone_threshold.
unchecked_tombstone_compaction
all
false
Setting this to true enables more aggressive tombstone compactions – single sstable tombstone compactions will run without checking how likely it is that they will be successful.
min_sstable_size
SizeTieredCompactionStrategy
50MB
The size tiered strategy groups SSTables to compact in buckets. A bucket groups SSTables that differs from less than 50% in size. However, for small sizes, this would result in a bucketing that is too fine grained. min_sstable_size defines a size threshold (in bytes) below which all SSTables belong to one unique bucket
min_threshold
SizeTieredCompactionStrategy
4
Minimum number of SSTables needed to start a minor compaction.
max_threshold
SizeTieredCompactionStrategy
32
Maximum number of SSTables processed by one minor compaction.
bucket_low
SizeTieredCompactionStrategy
0.5
Size tiered consider sstables to be within the same bucket if their size is within [average_size * bucket_low, average_size * bucket_high ] (i.e the default groups sstable whose sizes diverges by at most 50%)
bucket_high
SizeTieredCompactionStrategy
1.5
Size tiered consider sstables to be within the same bucket if their size is within [average_size * bucket_low, average_size * bucket_high ] (i.e the default groups sstable whose sizes diverges by at most 50%).
sstable_size_in_mb
LeveledCompactionStrategy
5MB
The target size (in MB) for sstables in the leveled strategy. Note that while sstable sizes should stay less or equal to sstable_size_in_mb, it is possible to exceptionally have a larger sstable as during compaction, data for a given partition key are never split into 2 sstables
timestamp_resolution
DateTieredCompactionStrategy
MICROSECONDS
The timestamp resolution used when inserting data, could be MILLISECONDS, MICROSECONDS etc (should be understandable by Java TimeUnit) - don’t change this unless you do mutations with USING TIMESTAMP (or equivalent directly in the client)
base_time_seconds
DateTieredCompactionStrategy
60
The base size of the time windows.
max_sstable_age_days
DateTieredCompactionStrategy
365
SSTables only containing data that is older than this will never be compacted.
timestamp_resolution
TimeWindowCompactionStrategy
MICROSECONDS
The timestamp resolution used when inserting data, could be MILLISECONDS, MICROSECONDS etc (should be understandable by Java TimeUnit) - don’t change this unless you do mutations with USING TIMESTAMP (or equivalent directly in the client)
compaction_window_unit
TimeWindowCompactionStrategy
DAYS
The Java TimeUnit used for the window size, set in conjunction with compaction_window_size. Must be one of DAYS, HOURS, MINUTES
compaction_window_size
TimeWindowCompactionStrategy
1
The number of compaction_window_unit units that make up a time window.
Compression options
For the compression property, the following sub-options are available:
option
default
description
class
LZ4Compressor
The compression algorithm to use. Default compressor are: LZ4Compressor, SnappyCompressor and DeflateCompressor. Use 'enabled' : false to disable compression. Custom compressor can be provided by specifying the full class name as a string constant.
enabled
true
By default compression is enabled. To disable it, set enabled to false
chunk_length_in_kb
64KB
On disk SSTables are compressed by block (to allow random reads). This defines the size (in KB) of said block. Bigger values may improve the compression rate, but increases the minimum size of data to be read from disk for a read
crc_check_chance
1.0
When compression is enabled, each compressed block includes a checksum of that block for the purpose of detecting disk bitrot and avoiding the propagation of corruption to other replica. This option defines the probability with which those checksums are checked during read. By default they are always checked. Set to 0 to disable checksum checking and to 0.5 for instance to check them every other read
Caching options
For the caching property, the following sub-options are available:
option
default
description
keys
ALL
Whether to cache keys (“key cache”) for this table. Valid values are: ALL and NONE.
rows_per_partition
NONE
The amount of rows to cache per partition (“row cache”). If an integer n is specified, the first n queried rows of a partition will be cached. Other possible options are ALL, to cache all rows of a queried partition, or NONE to disable row caching.
Other considerations:
When inserting / updating a given row, not all columns needs to be defined (except for those part of the key), and missing columns occupy no space on disk. Furthermore, adding new columns (see <a href=#alterStmt>ALTER TABLE) is a constant time operation. There is thus no need to try to anticipate future usage (or to cry when you haven’t) when creating a table.
ALTER TABLE
Syntax:
<alter-table-stmt> ::= ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>
+
+<instruction> ::= ADD <identifier> <type>
+ | DROP <identifier>
+ | WITH <option> ( AND <option> )*
+
Sample:
ALTER TABLE addamsFamily
+
+ALTER TABLE addamsFamily
+ADD gravesite varchar;
+
+ALTER TABLE addamsFamily
+WITH comment = 'A most excellent and useful column family'
+ AND read_repair_chance = 0.2;
+
The ALTER statement is used to manipulate table definitions. It allows for adding new columns, dropping existing ones, or updating the table options. As with table creation, ALTER COLUMNFAMILY is allowed as an alias for ALTER TABLE.
The <tablename> is the table name optionally preceded by the keyspace name. The <instruction> defines the alteration to perform:
ADD: Adds a new column to the table. The <identifier> for the new column must not conflict with an existing column. Moreover, columns cannot be added to tables defined with the COMPACT STORAGE option.
DROP: Removes a column from the table. Dropped columns will immediately become unavailable in the queries and will not be included in compacted sstables in the future. If a column is readded, queries won’t return values written before the column was last dropped. It is assumed that timestamps represent actual time, so if this is not your case, you should NOT readd previously dropped columns. Columns can’t be dropped from tables defined with the COMPACT STORAGE option.
WITH: Allows to update the options of the table. The supported <option> (and syntax) are the same as for the CREATE TABLE statement except that COMPACT STORAGE is not supported. Note that setting any compaction sub-options has the effect of erasing all previous compaction options, so you need to re-specify all the sub-options if you want to keep them. The same note applies to the set of compression sub-options.
DROP TABLE
Syntax:
<drop-table-stmt> ::= DROP TABLE ( IF EXISTS )? <tablename>
+
Sample:
DROP TABLE worldSeriesAttendees;
+
The DROP TABLE statement results in the immediate, irreversible removal of a table, including all data contained in it. As for table creation, DROP COLUMNFAMILY is allowed as an alias for DROP TABLE.
If the table does not exist, the statement will return an error, unless IF EXISTS is used in which case the operation is a no-op.
The TRUNCATE statement permanently removes all data from a table.
CREATE INDEX
Syntax:
<create-index-stmt> ::= CREATE ( CUSTOM )? INDEX ( IF NOT EXISTS )? ( <indexname> )?
+ ON <tablename> '(' <index-identifier> ')'
+ ( USING <string> ( WITH OPTIONS = <map-literal> )? )?
+
+<index-identifier> ::= <identifier>
+ | keys( <identifier> )
+
Sample:
CREATE INDEX userIndex ON NerdMovies (user);
+CREATE INDEX ON Mutants (abilityId);
+CREATE INDEX ON users (keys(favs));
+CREATE CUSTOM INDEX ON users (email) USING 'path.to.the.IndexClass';
+CREATE CUSTOM INDEX ON users (email) USING 'path.to.the.IndexClass' WITH OPTIONS = {'storage': '/mnt/ssd/indexes/'};
+
The CREATE INDEX statement is used to create a new (automatic) secondary index for a given (existing) column in a given table. A name for the index itself can be specified before the ON keyword, if desired. If data already exists for the column, it will be indexed asynchronously. After the index is created, new data for the column is indexed automatically at insertion time.
Attempting to create an already existing index will return an error unless the IF NOT EXISTS option is used. If it is used, the statement will be a no-op if the index already exists.
Indexes on Map Keys
When creating an index on a map column, you may index either the keys or the values. If the column identifier is placed within the keys() function, the index will be on the map keys, allowing you to use CONTAINS KEY in WHERE clauses. Otherwise, the index will be on the map values.
DROP INDEX
Syntax:
<drop-index-stmt> ::= DROP INDEX ( IF EXISTS )? ( <keyspace> '.' )? <identifier>
+
Sample:
DROP INDEX userIndex;
+
+DROP INDEX userkeyspace.address_index;
+
The DROP INDEX statement is used to drop an existing secondary index. The argument of the statement is the index name, which may optionally specify the keyspace of the index.
If the index does not exists, the statement will return an error, unless IF EXISTS is used in which case the operation is a no-op.
CREATE MATERIALIZED VIEW
Syntax:
<create-table-stmt> ::= CREATE MATERIALIZED VIEW ( IF NOT EXISTS )? <viewname> AS
+ SELECT ( '(' <identifier> ( ',' <identifier> ) * ')' | '*' )
+ FROM <tablename>
+ ( WHERE <where-clause> )?
+ PRIMARY KEY '(' <partition-key> ( ',' <identifier> )* ')'
+ ( WITH <option> ( AND <option>)* )?
+
Sample:
CREATE MATERIALIZED VIEW monkeySpecies_by_population AS
+ SELECT *
+ FROM monkeySpecies
+ WHERE population IS NOT NULL AND species IS NOT NULL
+ PRIMARY KEY (population, species)
+ WITH comment='Allow query by population instead of species';
+
The CREATE MATERIALIZED VIEW statement creates a new materialized view. Each such view is a set of rows which corresponds to rows which are present in the underlying, or base, table specified in the SELECT statement. A materialized view cannot be directly updated, but updates to the base table will cause corresponding updates in the view.
Attempting to create an already existing materialized view will return an error unless the IF NOT EXISTS option is used. If it is used, the statement will be a no-op if the materialized view already exists.
WHERE Clause
The <where-clause> is similar to the where clause of a SELECT statement, with a few differences. First, the where clause must contain an expression that disallows NULL values in columns in the view’s primary key. If no other restriction is desired, this can be accomplished with an IS NOT NULL expression. Second, only columns which are in the base table’s primary key may be restricted with expressions other than IS NOT NULL. (Note that this second restriction may be lifted in the future.)
MV Limitations
Note: Removal of columns not selected in the Materialized View (via `UPDATE base SET unselected_column = null` or `DELETE unselected_column FROM base`) may shadow missed updates to other columns received by hints or repair. For this reason, we advise against doing deletions on base columns not selected in views until this is fixed on CASSANDRA-13826.
ALTER MATERIALIZED VIEW
Syntax:
<alter-materialized-view-stmt> ::= ALTER MATERIALIZED VIEW <viewname>
+ WITH <option> ( AND <option> )*
+
p. The ALTER MATERIALIZED VIEW statement allows options to be update; these options are the same as CREATE TABLE's options.
DROP MATERIALIZED VIEW
Syntax:
<drop-materialized-stmt> ::= DROP MATERIALIZED VIEW ( IF EXISTS )? <tablename>
+
Sample:
DROP MATERIALIZED VIEW monkeySpecies_by_population;
+
The DROP MATERIALIZED VIEW statement is used to drop an existing materialized view.
If the materialized view does not exists, the statement will return an error, unless IF EXISTS is used in which case the operation is a no-op.
CREATE TYPE address (
+ street_name text,
+ street_number int,
+ city text,
+ state text,
+ zip int
+)
+
+CREATE TYPE work_and_home_addresses (
+ home_address address,
+ work_address address
+)
+
The CREATE TYPE statement creates a new user-defined type. Each type is a set of named, typed fields. Field types may be any valid type, including collections and other existing user-defined types.
Attempting to create an already existing type will result in an error unless the IF NOT EXISTS option is used. If it is used, the statement will be a no-op if the type already exists.
<typename>
Valid type names are identifiers. The names of existing CQL types and reserved type names may not be used.
If the type name is provided alone, the type is created with the current keyspace (see USE). If it is prefixed by an existing keyspace name, the type is created within the specified keyspace instead of the current keyspace.
ALTER TYPE
Syntax:
<alter-type-stmt> ::= ALTER TYPE <typename> <instruction>
+
+<instruction> ::= ADD <field-name> <type>
+ | RENAME <field-name> TO <field-name> ( AND <field-name> TO <field-name> )*
+
Sample:
ALTER TYPE address ADD country text
+
+ALTER TYPE address RENAME zip TO zipcode AND street_name TO street
+
The ALTER TYPE statement is used to manipulate type definitions. It allows for adding new fields, renaming existing fields, or changing the type of existing fields.
DROP TYPE
Syntax:
<drop-type-stmt> ::= DROP TYPE ( IF EXISTS )? <typename>
+
The DROP TYPE statement results in the immediate, irreversible removal of a type. Attempting to drop a type that is still in use by another type or a table will result in an error.
If the type does not exist, an error will be returned unless IF EXISTS is used, in which case the operation is a no-op.
CREATE TRIGGER
Syntax:
<create-trigger-stmt> ::= CREATE TRIGGER ( IF NOT EXISTS )? ( <triggername> )?
+ ON <tablename>
+ USING <string>
+
+
Sample:
CREATE TRIGGER myTrigger ON myTable USING 'org.apache.cassandra.triggers.InvertedIndex';
+
The actual logic that makes up the trigger can be written in any Java (JVM) language and exists outside the database. You place the trigger code in a lib/triggers subdirectory of the Cassandra installation directory, it loads during cluster startup, and exists on every node that participates in a cluster. The trigger defined on a table fires before a requested DML statement occurs, which ensures the atomicity of the transaction.
DROP TRIGGER
Syntax:
<drop-trigger-stmt> ::= DROP TRIGGER ( IF EXISTS )? ( <triggername> )?
+ ON <tablename>
+
Sample:
DROP TRIGGER myTrigger ON myTable;
+
DROP TRIGGER statement removes the registration of a trigger created using CREATE TRIGGER.
CREATE FUNCTION
Syntax:
<create-function-stmt> ::= CREATE ( OR REPLACE )?
+ FUNCTION ( IF NOT EXISTS )?
+ ( <keyspace> '.' )? <function-name>
+ '(' <arg-name> <arg-type> ( ',' <arg-name> <arg-type> )* ')'
+ ( CALLED | RETURNS NULL ) ON NULL INPUT
+ RETURNS <type>
+ LANGUAGE <language>
+ AS <body>
+
Sample:
CREATE OR REPLACE FUNCTION somefunction
+ ( somearg int, anotherarg text, complexarg frozen<someUDT>, listarg list<bigint> )
+ RETURNS NULL ON NULL INPUT
+ RETURNS text
+ LANGUAGE java
+ AS $$
+ // some Java code
+ $$;
+CREATE FUNCTION akeyspace.fname IF NOT EXISTS
+ ( someArg int )
+ CALLED ON NULL INPUT
+ RETURNS text
+ LANGUAGE java
+ AS $$
+ // some Java code
+ $$;
+
CREATE FUNCTION creates or replaces a user-defined function.
Function Signature
Signatures are used to distinguish individual functions. The signature consists of:
The fully qualified function name – i.e keyspace plus function-name
The concatenated list of all argument types
Note that keyspace names, function names and argument types are subject to the default naming conventions and case-sensitivity rules.
CREATE FUNCTION with the optional OR REPLACE keywords either creates a function or replaces an existing one with the same signature. A CREATE FUNCTION without OR REPLACE fails if a function with the same signature already exists.
Behavior on invocation with null values must be defined for each function. There are two options:
RETURNS NULL ON NULL INPUT declares that the function will always return null if any of the input arguments is null.
CALLED ON NULL INPUT declares that the function will always be executed.
If the optional IF NOT EXISTS keywords are used, the function will only be created if another function with the same signature does not exist.
OR REPLACE and IF NOT EXIST cannot be used together.
Functions belong to a keyspace. If no keyspace is specified in <function-name>, the current keyspace is used (i.e. the keyspace specified using the USE statement). It is not possible to create a user-defined function in one of the system keyspaces.
<drop-function-stmt> ::= DROP FUNCTION ( IF EXISTS )?
+ ( <keyspace> '.' )? <function-name>
+ ( '(' <arg-type> ( ',' <arg-type> )* ')' )?
+
+
Sample:
DROP FUNCTION myfunction;
+DROP FUNCTION mykeyspace.afunction;
+DROP FUNCTION afunction ( int );
+DROP FUNCTION afunction ( text );
+
DROP FUNCTION statement removes a function created using CREATE FUNCTION. You must specify the argument types (signature ) of the function to drop if there are multiple functions with the same name but a different signature (overloaded functions).
DROP FUNCTION with the optional IF EXISTS keywords drops a function if it exists.
CREATE AGGREGATE creates or replaces a user-defined aggregate.
CREATE AGGREGATE with the optional OR REPLACE keywords either creates an aggregate or replaces an existing one with the same signature. A CREATE AGGREGATE without OR REPLACE fails if an aggregate with the same signature already exists.
CREATE AGGREGATE with the optional IF NOT EXISTS keywords either creates an aggregate if it does not already exist.
OR REPLACE and IF NOT EXIST cannot be used together.
Aggregates belong to a keyspace. If no keyspace is specified in <aggregate-name>, the current keyspace is used (i.e. the keyspace specified using the USE statement). It is not possible to create a user-defined aggregate in one of the system keyspaces.
Signatures for user-defined aggregates follow the same rules as for user-defined functions.
STYPE defines the type of the state value and must be specified.
The optional INITCOND defines the initial state value for the aggregate. It defaults to null. A non-@null@ INITCOND must be specified for state functions that are declared with RETURNS NULL ON NULL INPUT.
SFUNC references an existing function to be used as the state modifying function. The type of first argument of the state function must match STYPE. The remaining argument types of the state function must match the argument types of the aggregate function. State is not updated for state functions declared with RETURNS NULL ON NULL INPUT and called with null.
The optional FINALFUNC is called just before the aggregate result is returned. It must take only one argument with type STYPE. The return type of the FINALFUNC may be a different type. A final function declared with RETURNS NULL ON NULL INPUT means that the aggregate’s return value will be null, if the last state is null.
If no FINALFUNC is defined, the overall return type of the aggregate function is STYPE. If a FINALFUNC is defined, it is the return type of that function.
DROP AGGREGATE myAggregate;
+DROP AGGREGATE myKeyspace.anAggregate;
+DROP AGGREGATE someAggregate ( int );
+DROP AGGREGATE someAggregate ( text );
+
The DROP AGGREGATE statement removes an aggregate created using CREATE AGGREGATE. You must specify the argument types of the aggregate to drop if there are multiple aggregates with the same name but a different signature (overloaded aggregates).
DROP AGGREGATE with the optional IF EXISTS keywords drops an aggregate if it exists, and does nothing if a function with the signature does not exist.
Signatures for user-defined aggregates follow the same rules as for user-defined functions.
The INSERT statement writes one or more columns for a given row in a table. Note that since a row is identified by its PRIMARY KEY, at least the columns composing it must be specified. The list of columns to insert to must be supplied when using the VALUES syntax. When using the JSON syntax, they are optional. See the section on INSERT JSON for more details.
Note that unlike in SQL, INSERT does not check the prior existence of the row by default: the row is created if none existed before, and updated otherwise. Furthermore, there is no mean to know which of creation or update happened.
It is however possible to use the IF NOT EXISTS condition to only insert if the row does not exist prior to the insertion. But please note that using IF NOT EXISTS will incur a non negligible performance cost (internally, Paxos will be used) so this should be used sparingly.
All updates for an INSERT are applied atomically and in isolation.
Please refer to the UPDATE section for information on the <option> available and to the collections section for use of <collection-literal>. Also note that INSERT does not support counters, while UPDATE does.
UPDATE NerdMovies USING TTL 400
+SET director = 'Joss Whedon',
+ main_actor = 'Nathan Fillion',
+ year = 2005
+WHERE movie = 'Serenity';
+
+UPDATE UserActions SET total = total + 2 WHERE user = B70DE1D0-9908-4AE3-BE34-5573E5B09F14 AND action = 'click';
+
The UPDATE statement writes one or more columns for a given row in a table. The <where-clause> is used to select the row to update and must include all columns composing the PRIMARY KEY. Other columns values are specified through <assignment> after the SET keyword.
Note that unlike in SQL, UPDATE does not check the prior existence of the row by default (except through the use of <condition>, see below): the row is created if none existed before, and updated otherwise. Furthermore, there are no means to know whether a creation or update occurred.
It is however possible to use the conditions on some columns through IF, in which case the row will not be updated unless the conditions are met. But, please note that using IF conditions will incur a non-negligible performance cost (internally, Paxos will be used) so this should be used sparingly.
In an UPDATE statement, all updates within the same partition key are applied atomically and in isolation.
The c = c + 3 form of <assignment> is used to increment/decrement counters. The identifier after the ‘=’ sign must be the same than the one before the ‘=’ sign (Only increment/decrement is supported on counters, not the assignment of a specific value).
The id = id + <collection-literal> and id[value1] = value2 forms of <assignment> are for collections. Please refer to the relevant section for more details.
<options>
The UPDATE and INSERT statements support the following options:
TIMESTAMP: sets the timestamp for the operation. If not specified, the coordinator will use the current time (in microseconds) at the start of statement execution as the timestamp. This is usually a suitable default.
TTL: specifies an optional Time To Live (in seconds) for the inserted values. If set, the inserted values are automatically removed from the database after the specified time. Note that the TTL concerns the inserted values, not the columns themselves. This means that any subsequent update of the column will also reset the TTL (to whatever TTL is specified in that update). By default, values never expire. A TTL of 0 or a negative value is equivalent to no TTL.
DELETE FROM NerdMovies USING TIMESTAMP 1240003134 WHERE movie = 'Serenity';
+
+DELETE phone FROM Users WHERE userid IN (C73DE1D3-AF08-40F3-B124-3FF3E5109F22, B70DE1D0-9908-4AE3-BE34-5573E5B09F14);
+
The DELETE statement deletes columns and rows. If column names are provided directly after the DELETE keyword, only those columns are deleted from the row indicated by the <where-clause> (the id[value] syntax in <selection> is for collection, please refer to the collection section for more details). Otherwise, whole rows are removed. The <where-clause> specifies which rows are to be deleted. Multiple rows may be deleted with one statement by using an IN clause. A range of rows may be deleted using an inequality operator (such as >=).
DELETE supports the TIMESTAMP option with the same semantics as the UPDATE statement.
In a DELETE statement, all deletions within the same partition key are applied atomically and in isolation.
A DELETE operation can be conditional through the use of an IF clause, similar to UPDATE and INSERT statements. However, as with INSERT and UPDATE statements, this will incur a non-negligible performance cost (internally, Paxos will be used) and so should be used sparingly.
BEGIN BATCH
+ INSERT INTO users (userid, password, name) VALUES ('user2', 'ch@ngem3b', 'second user');
+ UPDATE users SET password = 'ps22dhds' WHERE userid = 'user3';
+ INSERT INTO users (userid, password) VALUES ('user4', 'ch@ngem3c');
+ DELETE name FROM users WHERE userid = 'user1';
+APPLY BATCH;
+
The BATCH statement group multiple modification statements (insertions/updates and deletions) into a single statement. It serves several purposes:
It saves network round-trips between the client and the server (and sometimes between the server coordinator and the replicas) when batching multiple updates.
All updates in a BATCH belonging to a given partition key are performed in isolation.
By default, all operations in the batch are performed as LOGGED, to ensure all mutations eventually complete (or none will). See the notes on UNLOGGED for more details.
Note that:
BATCH statements may only contain UPDATE, INSERT and DELETE statements.
Batches are not a full analogue for SQL transactions.
If a timestamp is not specified for each operation, then all operations will be applied with the same timestamp. Due to Cassandra’s conflict resolution procedure in the case of timestamp ties, operations may be applied in an order that is different from the order they are listed in the BATCH statement. To force a particular operation ordering, you must specify per-operation timestamps.
UNLOGGED
By default, Cassandra uses a batch log to ensure all operations in a batch eventually complete or none will (note however that operations are only isolated within a single partition).
There is a performance penalty for batch atomicity when a batch spans multiple partitions. If you do not want to incur this penalty, you can tell Cassandra to skip the batchlog with the UNLOGGED option. If the UNLOGGED option is used, a failed batch might leave the patch only partly applied.
COUNTER
Use the COUNTER option for batched counter updates. Unlike other updates in Cassandra, counter updates are not idempotent.
<option>
BATCH supports both the TIMESTAMP option, with similar semantic to the one described in the UPDATE statement (the timestamp applies to all the statement inside the batch). However, if used, TIMESTAMPmust not be used in the statements within the batch.
SELECT name, occupation FROM users WHERE userid IN (199, 200, 207);
+
+SELECT JSON name, occupation FROM users WHERE userid = 199;
+
+SELECT name AS user_name, occupation AS user_occupation FROM users;
+
+SELECT time, value
+FROM events
+WHERE event_type = 'myEvent'
+ AND time > '2011-02-03'
+ AND time <= '2012-01-01'
+
+SELECT COUNT(*) FROM users;
+
+SELECT COUNT(*) AS user_count FROM users;
+
+
The SELECT statements reads one or more columns for one or more rows in a table. It returns a result-set of rows, where each row contains the collection of columns corresponding to the query. If the JSON keyword is used, the results for each row will contain only a single column named “json”. See the section on SELECT JSON for more details.
<select-clause>
The <select-clause> determines which columns needs to be queried and returned in the result-set. It consists of either the comma-separated list of or the wildcard character (*) to select all the columns defined for the table.
A <selector> is either a column name to retrieve or a <function> of one or more @@s. The function allowed are the same as for <term> and are described in the function section. In addition to these generic functions, the WRITETIME (resp. TTL) function allows to select the timestamp of when the column was inserted (resp. the time to live (in seconds) for the column (or null if the column has no expiration set)).
Any <selector> can be aliased using AS keyword (see examples). Please note that <where-clause> and <order-by> clause should refer to the columns by their original names and not by their aliases.
The COUNT keyword can be used with parenthesis enclosing *. If so, the query will return a single result: the number of rows matching the query. Note that COUNT(1) is supported as an alias.
<where-clause>
The <where-clause> specifies which rows must be queried. It is composed of relations on the columns that are part of the PRIMARY KEY and/or have a secondary index defined on them.
Not all relations are allowed in a query. For instance, non-equal relations (where IN is considered as an equal relation) on a partition key are not supported (but see the use of the TOKEN method below to do non-equal queries on the partition key). Moreover, for a given partition key, the clustering columns induce an ordering of rows and relations on them is restricted to the relations that allow to select a contiguous (for the ordering) set of rows. For instance, given
SELECT entry_title, content FROM posts WHERE userid='john doe' AND blog_title='John''s Blog' AND posted_at >= '2012-01-01' AND posted_at < '2012-01-31'
+
But the following one is not, as it does not select a contiguous set of rows (and we suppose no secondary indexes are set):
// Needs a blog_title to be set to select ranges of posted_at
+SELECT entry_title, content FROM posts WHERE userid='john doe' AND posted_at >= '2012-01-01' AND posted_at < '2012-01-31'
+
When specifying relations, the TOKEN function can be used on the PARTITION KEY column to query. In that case, rows will be selected based on the token of their PARTITION_KEY rather than on the value. Note that the token of a key depends on the partitioner in use, and that in particular the RandomPartitioner won’t yield a meaningful order. Also note that ordering partitioners always order token values by bytes (so even if the partition key is of type int, token(-1) > token(0) in particular). Example:
SELECT * FROM posts WHERE token(userid) > token('tom') AND token(userid) < token('bob')
+
Moreover, the IN relation is only allowed on the last column of the partition key and on the last column of the full primary key.
It is also possible to “group” CLUSTERING COLUMNS together in a relation using the tuple notation. For instance:
SELECT * FROM posts WHERE userid='john doe' AND (blog_title, posted_at) > ('John''s Blog', '2012-01-01')
+
will request all rows that sorts after the one having “John's Blog” as blog_tile and ‘2012-01-01’ for posted_at in the clustering order. In particular, rows having a post_at <= '2012-01-01' will be returned as long as their blog_title > 'John''s Blog', which wouldn’t be the case for:
SELECT * FROM posts WHERE userid='john doe' AND blog_title > 'John''s Blog' AND posted_at > '2012-01-01'
+
The tuple notation may also be used for IN clauses on CLUSTERING COLUMNS:
SELECT * FROM posts WHERE userid='john doe' AND (blog_title, posted_at) IN (('John''s Blog', '2012-01-01), ('Extreme Chess', '2014-06-01'))
+
The CONTAINS operator may only be used on collection columns (lists, sets, and maps). In the case of maps, CONTAINS applies to the map values. The CONTAINS KEY operator may only be used on map columns and applies to the map keys.
<order-by>
The ORDER BY option allows to select the order of the returned results. It takes as argument a list of column names along with the order for the column (ASC for ascendant and DESC for descendant, omitting the order being equivalent to ASC). Currently the possible orderings are limited (which depends on the table CLUSTERING ORDER ):
if the table has been defined without any specific CLUSTERING ORDER, then then allowed orderings are the order induced by the clustering columns and the reverse of that one.
otherwise, the orderings allowed are the order of the CLUSTERING ORDER option and the reversed one.
LIMIT
The LIMIT option to a SELECT statement limits the number of rows returned by a query.
ALLOW FILTERING
By default, CQL only allows select queries that don’t involve “filtering” server side, i.e. queries where we know that all (live) record read will be returned (maybe partly) in the result set. The reasoning is that those “non filtering” queries have predictable performance in the sense that they will execute in a time that is proportional to the amount of data returned by the query (which can be controlled through LIMIT).
The ALLOW FILTERING option allows to explicitly allow (some) queries that require filtering. Please note that a query using ALLOW FILTERING may thus have unpredictable performance (for the definition above), i.e. even a query that selects a handful of records may exhibit performance that depends on the total amount of data stored in the cluster.
For instance, considering the following table holding user profiles with their year of birth (with a secondary index on it) and country of residence:
CREATE TABLE users (
+ username text PRIMARY KEY,
+ firstname text,
+ lastname text,
+ birth_year int,
+ country text
+)
+
+CREATE INDEX ON users(birth_year);
+
Then the following queries are valid:
SELECT * FROM users;
+SELECT firstname, lastname FROM users WHERE birth_year = 1981;
+
because in both case, Cassandra guarantees that these queries performance will be proportional to the amount of data returned. In particular, if no users are born in 1981, then the second query performance will not depend of the number of user profile stored in the database (not directly at least: due to secondary index implementation consideration, this query may still depend on the number of node in the cluster, which indirectly depends on the amount of data stored. Nevertheless, the number of nodes will always be multiple number of magnitude lower than the number of user profile stored). Of course, both query may return very large result set in practice, but the amount of data returned can always be controlled by adding a LIMIT.
However, the following query will be rejected:
SELECT firstname, lastname FROM users WHERE birth_year = 1981 AND country = 'FR';
+
because Cassandra cannot guarantee that it won’t have to scan large amount of data even if the result to those query is small. Typically, it will scan all the index entries for users born in 1981 even if only a handful are actually from France. However, if you “know what you are doing”, you can force the execution of this query by using ALLOW FILTERING and so the following query is valid:
SELECT firstname, lastname FROM users WHERE birth_year = 1981 AND country = 'FR' ALLOW FILTERING;
+
Database Roles
CREATE ROLE
Syntax:
<create-role-stmt> ::= CREATE ROLE ( IF NOT EXISTS )? <identifier> ( WITH <option> ( AND <option> )* )?
+
+<option> ::= PASSWORD = <string>
+ | LOGIN = <boolean>
+ | SUPERUSER = <boolean>
+ | OPTIONS = <map_literal>
+
Sample:
CREATE ROLE new_role;
+CREATE ROLE alice WITH PASSWORD = 'password_a' AND LOGIN = true;
+CREATE ROLE bob WITH PASSWORD = 'password_b' AND LOGIN = true AND SUPERUSER = true;
+CREATE ROLE carlos WITH OPTIONS = { 'custom_option1' : 'option1_value', 'custom_option2' : 99 };
+
By default roles do not possess LOGIN privileges or SUPERUSER status.
Permissions on database resources are granted to roles; types of resources include keyspaces, tables, functions and roles themselves. Roles may be granted to other roles to create hierarchical permissions structures; in these hierarchies, permissions and SUPERUSER status are inherited, but the LOGIN privilege is not.
If a role has the LOGIN privilege, clients may identify as that role when connecting. For the duration of that connection, the client will acquire any roles and privileges granted to that role.
Only a client with with the CREATE permission on the database roles resource may issue CREATE ROLE requests (see the relevant section below), unless the client is a SUPERUSER. Role management in Cassandra is pluggable and custom implementations may support only a subset of the listed options.
Role names should be quoted if they contain non-alphanumeric characters.
Setting credentials for internal authentication
Use the WITH PASSWORD clause to set a password for internal authentication, enclosing the password in single quotation marks. If internal authentication has not been set up or the role does not have LOGIN privileges, the WITH PASSWORD clause is not necessary.
Creating a role conditionally
Attempting to create an existing role results in an invalid query condition unless the IF NOT EXISTS option is used. If the option is used and the role exists, the statement is a no-op.
CREATE ROLE other_role;
+CREATE ROLE IF NOT EXISTS other_role;
+
ALTER ROLE
Syntax:
<alter-role-stmt> ::= ALTER ROLE <identifier> ( WITH <option> ( AND <option> )* )?
+
+<option> ::= PASSWORD = <string>
+ | LOGIN = <boolean>
+ | SUPERUSER = <boolean>
+ | OPTIONS = <map_literal>
+
Sample:
ALTER ROLE bob WITH PASSWORD = 'PASSWORD_B' AND SUPERUSER = false;
+
Conditions on executing ALTER ROLE statements:
A client must have SUPERUSER status to alter the SUPERUSER status of another role
A client cannot alter the SUPERUSER status of any role it currently holds
A client can only modify certain properties of the role with which it identified at login (e.g. PASSWORD)
To modify properties of a role, the client must be granted ALTERpermission on that role
DROP ROLE
Syntax:
<drop-role-stmt> ::= DROP ROLE ( IF EXISTS )? <identifier>
+
Sample:
DROP ROLE alice;
+DROP ROLE IF EXISTS bob;
+
DROP ROLE requires the client to have DROPpermission on the role in question. In addition, client may not DROP the role with which it identified at login. Finaly, only a client with SUPERUSER status may DROP another SUPERUSER role. Attempting to drop a role which does not exist results in an invalid query condition unless the IF EXISTS option is used. If the option is used and the role does not exist the statement is a no-op.
GRANT ROLE
Syntax:
<grant-role-stmt> ::= GRANT <identifier> TO <identifier>
+
Sample:
GRANT report_writer TO alice;
+
This statement grants the report_writer role to alice. Any permissions granted to report_writer are also acquired by alice. Roles are modelled as a directed acyclic graph, so circular grants are not permitted. The following examples result in error conditions:
GRANT role_a TO role_b;
+GRANT role_b TO role_a;
+
GRANT role_a TO role_b;
+GRANT role_b TO role_c;
+GRANT role_c TO role_a;
+
REVOKE ROLE
Syntax:
<revoke-role-stmt> ::= REVOKE <identifier> FROM <identifier>
+
Sample:
REVOKE report_writer FROM alice;
+
This statement revokes the report_writer role from alice. Any permissions that alice has acquired via the report_writer role are also revoked.
LIST ROLES
Syntax:
<list-roles-stmt> ::= LIST ROLES ( OF <identifier> )? ( NORECURSIVE )?
+
Sample:
LIST ROLES;
+
Return all known roles in the system, this requires DESCRIBE permission on the database roles resource.
LIST ROLES OF @alice@;
+
Enumerate all roles granted to alice, including those transitively aquired.
LIST ROLES OF @bob@ NORECURSIVE
+
List all roles directly granted to bob.
CREATE USER
Prior to the introduction of roles in Cassandra 2.2, authentication and authorization were based around the concept of a USER. For backward compatibility, the legacy syntax has been preserved with USER centric statments becoming synonyms for the ROLE based equivalents.
Syntax:
<create-user-statement> ::= CREATE USER ( IF NOT EXISTS )? <identifier> ( WITH PASSWORD <string> )? (<option>)?
+
+<option> ::= SUPERUSER
+ | NOSUPERUSER
+
Sample:
CREATE USER alice WITH PASSWORD 'password_a' SUPERUSER;
+CREATE USER bob WITH PASSWORD 'password_b' NOSUPERUSER;
+
CREATE USER is equivalent to CREATE ROLE where the LOGIN option is true. So, the following pairs of statements are equivalent:
CREATE USER alice WITH PASSWORD 'password_a' SUPERUSER;
+CREATE ROLE alice WITH PASSWORD = 'password_a' AND LOGIN = true AND SUPERUSER = true;
+
+CREATE USER IF EXISTS alice WITH PASSWORD 'password_a' SUPERUSER;
+CREATE ROLE IF EXISTS alice WITH PASSWORD = 'password_a' AND LOGIN = true AND SUPERUSER = true;
+
+CREATE USER alice WITH PASSWORD 'password_a' NOSUPERUSER;
+CREATE ROLE alice WITH PASSWORD = 'password_a' AND LOGIN = true AND SUPERUSER = false;
+
+CREATE USER alice WITH PASSWORD 'password_a' NOSUPERUSER;
+CREATE ROLE alice WITH PASSWORD = 'password_a' WITH LOGIN = true;
+
+CREATE USER alice WITH PASSWORD 'password_a';
+CREATE ROLE alice WITH PASSWORD = 'password_a' WITH LOGIN = true;
+
ALTER USER
Syntax:
<alter-user-statement> ::= ALTER USER <identifier> ( WITH PASSWORD <string> )? ( <option> )?
+
+<option> ::= SUPERUSER
+ | NOSUPERUSER
+
ALTER USER alice WITH PASSWORD 'PASSWORD_A';
+ALTER USER bob SUPERUSER;
+
DROP USER
Syntax:
<drop-user-stmt> ::= DROP USER ( IF EXISTS )? <identifier>
+
Sample:
DROP USER alice;
+DROP USER IF EXISTS bob;
+
LIST USERS
Syntax:
<list-users-stmt> ::= LIST USERS;
+
Sample:
LIST USERS;
+
This statement is equivalent to
LIST ROLES;
+
but only roles with the LOGIN privilege are included in the output.
Data Control
Permissions
Permissions on resources are granted to roles; there are several different types of resources in Cassandra and each type is modelled hierarchically:
The hierarchy of Data resources, Keyspaces and Tables has the structure ALL KEYSPACES -> KEYSPACE -> TABLE
Function resources have the structure ALL FUNCTIONS -> KEYSPACE -> FUNCTION
Resources representing roles have the structure ALL ROLES -> ROLE
Permissions can be granted at any level of these hierarchies and they flow downwards. So granting a permission on a resource higher up the chain automatically grants that same permission on all resources lower down. For example, granting SELECT on a KEYSPACE automatically grants it on all TABLES in that KEYSPACE. Likewise, granting a permission on ALL FUNCTIONS grants it on every defined function, regardless of which keyspace it is scoped in. It is also possible to grant permissions on all functions scoped to a particular keyspace.
Modifications to permissions are visible to existing client sessions; that is, connections need not be re-established following permissions changes.
The full set of available permissions is:
CREATE
ALTER
DROP
SELECT
MODIFY
AUTHORIZE
DESCRIBE
EXECUTE
Not all permissions are applicable to every type of resource. For instance, EXECUTE is only relevant in the context of functions; granting EXECUTE on a resource representing a table is nonsensical. Attempting to GRANT a permission on resource to which it cannot be applied results in an error response. The following illustrates which permissions can be granted on which types of resource, and which statements are enabled by that permission.
permission
resource
operations
CREATE
ALL KEYSPACES
CREATE KEYSPACE CREATE TABLE in any keyspace
CREATE
KEYSPACE
CREATE TABLE in specified keyspace
CREATE
ALL FUNCTIONS
CREATE FUNCTION in any keyspace CREATE AGGREGATE in any keyspace
CREATE
ALL FUNCTIONS IN KEYSPACE
CREATE FUNCTION in keyspace CREATE AGGREGATE in keyspace
CREATE
ALL ROLES
CREATE ROLE
ALTER
ALL KEYSPACES
ALTER KEYSPACE ALTER TABLE in any keyspace
ALTER
KEYSPACE
ALTER KEYSPACE ALTER TABLE in keyspace
ALTER
TABLE
ALTER TABLE
ALTER
ALL FUNCTIONS
CREATE FUNCTION replacing any existing CREATE AGGREGATE replacing any existing
ALTER
ALL FUNCTIONS IN KEYSPACE
CREATE FUNCTION replacing existing in keyspace CREATE AGGREGATE replacing any existing in keyspace
ALTER
FUNCTION
CREATE FUNCTION replacing existing CREATE AGGREGATE replacing existing
ALTER
ALL ROLES
ALTER ROLE on any role
ALTER
ROLE
ALTER ROLE
DROP
ALL KEYSPACES
DROP KEYSPACE DROP TABLE in any keyspace
DROP
KEYSPACE
DROP TABLE in specified keyspace
DROP
TABLE
DROP TABLE
DROP
ALL FUNCTIONS
DROP FUNCTION in any keyspace DROP AGGREGATE in any existing
DROP
ALL FUNCTIONS IN KEYSPACE
DROP FUNCTION in keyspace DROP AGGREGATE in existing
DROP
FUNCTION
DROP FUNCTION
DROP
ALL ROLES
DROP ROLE on any role
DROP
ROLE
DROP ROLE
SELECT
ALL KEYSPACES
SELECT on any table
SELECT
KEYSPACE
SELECT on any table in keyspace
SELECT
TABLE
SELECT on specified table
MODIFY
ALL KEYSPACES
INSERT on any table UPDATE on any table DELETE on any table TRUNCATE on any table
MODIFY
KEYSPACE
INSERT on any table in keyspace UPDATE on any table in keyspace == @DELETE@ on any table in keyspace == TRUNCATE on any table in keyspace
MODIFY
TABLE
INSERT UPDATE DELETE TRUNCATE
AUTHORIZE
ALL KEYSPACES
GRANT PERMISSION on any table REVOKE PERMISSION on any table
AUTHORIZE
KEYSPACE
GRANT PERMISSION on table in keyspace REVOKE PERMISSION on table in keyspace
AUTHORIZE
TABLE
GRANT PERMISSION REVOKE PERMISSION
AUTHORIZE
ALL FUNCTIONS
GRANT PERMISSION on any function REVOKE PERMISSION on any function
AUTHORIZE
ALL FUNCTIONS IN KEYSPACE
GRANT PERMISSION in keyspace REVOKE PERMISSION in keyspace
AUTHORIZE
ALL FUNCTIONS IN KEYSPACE
GRANT PERMISSION in keyspace REVOKE PERMISSION in keyspace
AUTHORIZE
FUNCTION
GRANT PERMISSION REVOKE PERMISSION
AUTHORIZE
ALL ROLES
GRANT ROLE grant any role REVOKE ROLE revoke any role
AUTHORIZE
ROLES
GRANT ROLE grant role REVOKE ROLE revoke role
DESCRIBE
ALL ROLES
LIST ROLES all roles or only roles granted to another, specified role
EXECUTE
ALL FUNCTIONS
SELECT, INSERT, UPDATE using any function use of any function in CREATE AGGREGATE
EXECUTE
ALL FUNCTIONS IN KEYSPACE
SELECT, INSERT, UPDATE using any function in keyspace use of any function in keyspace in CREATE AGGREGATE
EXECUTE
FUNCTION
SELECT, INSERT, UPDATE using function use of function in CREATE AGGREGATE
GRANT PERMISSION
Syntax:
<grant-permission-stmt> ::= GRANT ( ALL ( PERMISSIONS )? | <permission> ( PERMISSION )? ) ON <resource> TO <identifier>
+
+<permission> ::= CREATE | ALTER | DROP | SELECT | MODIFY | AUTHORIZE | DESRIBE | EXECUTE
+
+<resource> ::= ALL KEYSPACES
+ | KEYSPACE <identifier>
+ | ( TABLE )? <tablename>
+ | ALL ROLES
+ | ROLE <identifier>
+ | ALL FUNCTIONS ( IN KEYSPACE <identifier> )?
+ | FUNCTION <functionname>
+
Sample:
GRANT SELECT ON ALL KEYSPACES TO data_reader;
+
This gives any user with the role data_reader permission to execute SELECT statements on any table across all keyspaces
GRANT MODIFY ON KEYSPACE keyspace1 TO data_writer;
+
This give any user with the role data_writer permission to perform UPDATE, INSERT, UPDATE, DELETE and TRUNCATE queries on all tables in the keyspace1 keyspace
GRANT DROP ON keyspace1.table1 TO schema_owner;
+
This gives any user with the schema_owner role permissions to DROPkeyspace1.table1.
GRANT EXECUTE ON FUNCTION keyspace1.user_function( int ) TO report_writer;
+
This grants any user with the report_writer role permission to execute SELECT, INSERT and UPDATE queries which use the function keyspace1.user_function( int )
GRANT DESCRIBE ON ALL ROLES TO role_admin;
+
This grants any user with the role_admin role permission to view any and all roles in the system with a LIST ROLES statement
GRANT ALL
When the GRANT ALL form is used, the appropriate set of permissions is determined automatically based on the target resource.
Automatic Granting
When a resource is created, via a CREATE KEYSPACE, CREATE TABLE, CREATE FUNCTION, CREATE AGGREGATE or CREATE ROLE statement, the creator (the role the database user who issues the statement is identified as), is automatically granted all applicable permissions on the new resource.
REVOKE PERMISSION
Syntax:
<revoke-permission-stmt> ::= REVOKE ( ALL ( PERMISSIONS )? | <permission> ( PERMISSION )? ) ON <resource> FROM <identifier>
+
+<permission> ::= CREATE | ALTER | DROP | SELECT | MODIFY | AUTHORIZE | DESRIBE | EXECUTE
+
+<resource> ::= ALL KEYSPACES
+ | KEYSPACE <identifier>
+ | ( TABLE )? <tablename>
+ | ALL ROLES
+ | ROLE <identifier>
+ | ALL FUNCTIONS ( IN KEYSPACE <identifier> )?
+ | FUNCTION <functionname>
+
Sample:
REVOKE SELECT ON ALL KEYSPACES FROM data_reader;
+REVOKE MODIFY ON KEYSPACE keyspace1 FROM data_writer;
+REVOKE DROP ON keyspace1.table1 FROM schema_owner;
+REVOKE EXECUTE ON FUNCTION keyspace1.user_function( int ) FROM report_writer;
+REVOKE DESCRIBE ON ALL ROLES FROM role_admin;
+
LIST PERMISSIONS
Syntax:
<list-permissions-stmt> ::= LIST ( ALL ( PERMISSIONS )? | <permission> )
+ ( ON <resource> )?
+ ( OF <identifier> ( NORECURSIVE )? )?
+
+<resource> ::= ALL KEYSPACES
+ | KEYSPACE <identifier>
+ | ( TABLE )? <tablename>
+ | ALL ROLES
+ | ROLE <identifier>
+ | ALL FUNCTIONS ( IN KEYSPACE <identifier> )?
+ | FUNCTION <functionname>
+
Sample:
LIST ALL PERMISSIONS OF alice;
+
Show all permissions granted to alice, including those acquired transitively from any other roles.
LIST ALL PERMISSIONS ON keyspace1.table1 OF bob;
+
Show all permissions on keyspace1.table1 granted to bob, including those acquired transitively from any other roles. This also includes any permissions higher up the resource hierarchy which can be applied to keyspace1.table1. For example, should bob have ALTER permission on keyspace1, that would be included in the results of this query. Adding the NORECURSIVE switch restricts the results to only those permissions which were directly granted to bob or one of bob's roles.
LIST SELECT PERMISSIONS OF carlos;
+
Show any permissions granted to carlos or any of carlos's roles, limited to SELECT permissions on any resource.
Data Types
CQL supports a rich set of data types for columns defined in a table, including collection types. On top of those native and collection types, users can also provide custom types (through a JAVA class extending AbstractType loadable by Cassandra). The syntax of types is thus:
<type> ::= <native-type>
+ | <collection-type>
+ | <tuple-type>
+ | <string> // Used for custom types. The fully-qualified name of a JAVA class
+
+<native-type> ::= ascii
+ | bigint
+ | blob
+ | boolean
+ | counter
+ | date
+ | decimal
+ | double
+ | float
+ | inet
+ | int
+ | smallint
+ | text
+ | time
+ | timestamp
+ | timeuuid
+ | tinyint
+ | uuid
+ | varchar
+ | varint
+
+<collection-type> ::= list '<' <native-type> '>'
+ | set '<' <native-type> '>'
+ | map '<' <native-type> ',' <native-type> '>'
+<tuple-type> ::= tuple '<' <type> (',' <type>)* '>'
+
Note that the native types are keywords and as such are case-insensitive. They are however not reserved ones.
The following table gives additional informations on the native data types, and on which kind of constants each type supports:
type
constants supported
description
ascii
strings
ASCII character string
bigint
integers
64-bit signed long
blob
blobs
Arbitrary bytes (no validation)
boolean
booleans
true or false
counter
integers
Counter column (64-bit signed value). See Counters for details
date
integers, strings
A date (with no corresponding time value). See Working with dates below for more information.
decimal
integers, floats
Variable-precision decimal
double
integers
64-bit IEEE-754 floating point
float
integers, floats
32-bit IEEE-754 floating point
inet
strings
An IP address. It can be either 4 bytes long (IPv4) or 16 bytes long (IPv6). There is no inet constant, IP address should be inputed as strings
int
integers
32-bit signed int
smallint
integers
16-bit signed int
text
strings
UTF8 encoded string
time
integers, strings
A time with nanosecond precision. See Working with time below for more information.
timestamp
integers, strings
A timestamp. Strings constant are allow to input timestamps as dates, see Working with timestamps below for more information.
timeuuid
uuids
Type 1 UUID. This is generally used as a “conflict-free” timestamp. Also see the functions on Timeuuid
tinyint
integers
8-bit signed int
uuid
uuids
Type 1 or type 4 UUID
varchar
strings
UTF8 encoded string
varint
integers
Arbitrary-precision integer
For more information on how to use the collection types, see the Working with collections section below.
Working with timestamps
Values of the timestamp type are encoded as 64-bit signed integers representing a number of milliseconds since the standard base time known as “the epoch”: January 1 1970 at 00:00:00 GMT.
Timestamp can be input in CQL as simple long integers, giving the number of milliseconds since the epoch, as defined above.
They can also be input as string literals in any of the following ISO 8601 formats, each representing the time and date Mar 2, 2011, at 04:05:00 AM, GMT.:
2011-02-03 04:05+0000
2011-02-03 04:05:00+0000
2011-02-03 04:05:00.000+0000
2011-02-03T04:05+0000
2011-02-03T04:05:00+0000
2011-02-03T04:05:00.000+0000
The +0000 above is an RFC 822 4-digit time zone specification; +0000 refers to GMT. US Pacific Standard Time is -0800. The time zone may be omitted if desired— the date will be interpreted as being in the time zone under which the coordinating Cassandra node is configured.
2011-02-03 04:05
2011-02-03 04:05:00
2011-02-03 04:05:00.000
2011-02-03T04:05
2011-02-03T04:05:00
2011-02-03T04:05:00.000
There are clear difficulties inherent in relying on the time zone configuration being as expected, though, so it is recommended that the time zone always be specified for timestamps when feasible.
The time of day may also be omitted, if the date is the only piece that matters:
2011-02-03
2011-02-03+0000
In that case, the time of day will default to 00:00:00, in the specified or default time zone.
Working with dates
Values of the date type are encoded as 32-bit unsigned integers representing a number of days with “the epoch” at the center of the range (2^31). Epoch is January 1st, 1970
A date can be input in CQL as an unsigned integer as defined above.
They can also be input as string literals in the following format:
2014-01-01
Working with time
Values of the time type are encoded as 64-bit signed integers representing the number of nanoseconds since midnight.
A time can be input in CQL as simple long integers, giving the number of nanoseconds since midnight.
They can also be input as string literals in any of the following formats:
08:12:54
08:12:54.123
08:12:54.123456
08:12:54.123456789
Counters
The counter type is used to define counter columns. A counter column is a column whose value is a 64-bit signed integer and on which 2 operations are supported: incrementation and decrementation (see UPDATE for syntax). Note the value of a counter cannot be set. A counter doesn’t exist until first incremented/decremented, and the first incrementation/decrementation is made as if the previous value was 0. Deletion of counter columns is supported but have some limitations (see the Cassandra Wiki for more information).
The use of the counter type is limited in the following way:
It cannot be used for column that is part of the PRIMARY KEY of a table.
A table that contains a counter can only contain counters. In other words, either all the columns of a table outside the PRIMARY KEY have the counter type, or none of them have it.
Working with collections
Noteworthy characteristics
Collections are meant for storing/denormalizing relatively small amount of data. They work well for things like “the phone numbers of a given user”, “labels applied to an email”, etc. But when items are expected to grow unbounded (“all the messages sent by a given user”, “events registered by a sensor”, ...), then collections are not appropriate anymore and a specific table (with clustering columns) should be used. Concretely, collections have the following limitations:
Collections are always read in their entirety (and reading one is not paged internally).
Collections cannot have more than 65535 elements. More precisely, while it may be possible to insert more than 65535 elements, it is not possible to read more than the 65535 first elements (see CASSANDRA-5428 for details).
While insertion operations on sets and maps never incur a read-before-write internally, some operations on lists do (see the section on lists below for details). It is thus advised to prefer sets over lists when possible.
Please note that while some of those limitations may or may not be loosen in the future, the general rule that collections are for denormalizing small amount of data is meant to stay.
Maps
A map is a typed set of key-value pairs, where keys are unique. Furthermore, note that the map are internally sorted by their keys and will thus always be returned in that order. To create a column of type map, use the map keyword suffixed with comma-separated key and value types, enclosed in angle brackets. For example:
CREATE TABLE users (
+ id text PRIMARY KEY,
+ given text,
+ surname text,
+ favs map<text, text> // A map of text keys, and text values
+)
+
Writing map data is accomplished with a JSON-inspired syntax. To write a record using INSERT, specify the entire map as a JSON-style associative array. Note: This form will always replace the entire map.
Adding or updating key-values of a (potentially) existing map can be accomplished either by subscripting the map column in an UPDATE statement or by adding a new map literal:
// Updating (or inserting)
+UPDATE users SET favs['author'] = 'Ed Poe' WHERE id = 'jsmith'
+UPDATE users SET favs = favs + { 'movie' : 'Cassablanca' } WHERE id = 'jsmith'
+
Note that TTLs are allowed for both INSERT and UPDATE, but in both case the TTL set only apply to the newly inserted/updated values. In other words,
// Updating (or inserting)
+UPDATE users USING TTL 10 SET favs['color'] = 'green' WHERE id = 'jsmith'
+
will only apply the TTL to the { 'color' : 'green' } record, the rest of the map remaining unaffected.
Deleting a map record is done with:
DELETE favs['author'] FROM users WHERE id = 'jsmith'
+
Sets
A set is a typed collection of unique values. Sets are ordered by their values. To create a column of type set, use the set keyword suffixed with the value type enclosed in angle brackets. For example:
CREATE TABLE images (
+ name text PRIMARY KEY,
+ owner text,
+ date timestamp,
+ tags set<text>
+);
+
Writing a set is accomplished by comma separating the set values, and enclosing them in curly braces. Note: An INSERT will always replace the entire set.
Adding and removing values of a set can be accomplished with an UPDATE by adding/removing new set values to an existing set column.
UPDATE images SET tags = tags + { 'cute', 'cuddly' } WHERE name = 'cat.jpg';
+UPDATE images SET tags = tags - { 'lame' } WHERE name = 'cat.jpg';
+
As with maps, TTLs if used only apply to the newly inserted/updated values.
Lists
A list is a typed collection of non-unique values where elements are ordered by there position in the list. To create a column of type list, use the list keyword suffixed with the value type enclosed in angle brackets. For example:
CREATE TABLE plays (
+ id text PRIMARY KEY,
+ game text,
+ players int,
+ scores list<int>
+)
+
Do note that as explained below, lists have some limitations and performance considerations to take into account, and it is advised to prefer sets over lists when this is possible.
Writing list data is accomplished with a JSON-style syntax. To write a record using INSERT, specify the entire list as a JSON array. Note: An INSERT will always replace the entire list.
INSERT INTO plays (id, game, players, scores)
+ VALUES ('123-afde', 'quake', 3, [17, 4, 2]);
+
Adding (appending or prepending) values to a list can be accomplished by adding a new JSON-style array to an existing list column.
UPDATE plays SET players = 5, scores = scores + [ 14, 21 ] WHERE id = '123-afde';
+UPDATE plays SET players = 5, scores = [ 12 ] + scores WHERE id = '123-afde';
+
It should be noted that append and prepend are not idempotent operations. This means that if during an append or a prepend the operation timeout, it is not always safe to retry the operation (as this could result in the record appended or prepended twice).
Lists also provides the following operation: setting an element by its position in the list, removing an element by its position in the list and remove all the occurrence of a given value in the list. However, and contrarily to all the other collection operations, these three operations induce an internal read before the update, and will thus typically have slower performance characteristics. Those operations have the following syntax:
UPDATE plays SET scores[1] = 7 WHERE id = '123-afde'; // sets the 2nd element of scores to 7 (raises an error is scores has less than 2 elements)
+DELETE scores[1] FROM plays WHERE id = '123-afde'; // deletes the 2nd element of scores (raises an error is scores has less than 2 elements)
+UPDATE plays SET scores = scores - [ 12, 21 ] WHERE id = '123-afde'; // removes all occurrences of 12 and 21 from scores
+
As with maps, TTLs if used only apply to the newly inserted/updated values.
Functions
CQL3 distinguishes between built-in functions (so called ‘native functions’) and user-defined functions. CQL3 includes several native functions, described below:
Token
The token function allows to compute the token for a given partition key. The exact signature of the token function depends on the table concerned and of the partitioner used by the cluster.
The type of the arguments of the token depend on the type of the partition key columns. The return type depend on the partitioner in use:
For Murmur3Partitioner, the return type is bigint.
For RandomPartitioner, the return type is varint.
For ByteOrderedPartitioner, the return type is blob.
For instance, in a cluster using the default Murmur3Partitioner, if a table is defined by
then the token function will take a single argument of type text (in that case, the partition key is userid (there is no clustering columns so the partition key is the same than the primary key)), and the return type will be bigint.
Uuid
The uuid function takes no parameters and generates a random type 4 uuid suitable for use in INSERT or SET statements.
Timeuuid functions
now
The now function takes no arguments and generates, on the coordinator node, a new unique timeuuid (at the time where the statement using it is executed). Note that this method is useful for insertion but is largely non-sensical in WHERE clauses. For instance, a query of the form
SELECT * FROM myTable WHERE t = now()
+
will never return any result by design, since the value returned by now() is guaranteed to be unique.
minTimeuuid and maxTimeuuid
The minTimeuuid (resp. maxTimeuuid) function takes a timestamp value t (which can be either a timestamp or a date string ) and return a faketimeuuid corresponding to the smallest (resp. biggest) possible timeuuid having for timestamp t. So for instance:
SELECT * FROM myTable WHERE t > maxTimeuuid('2013-01-01 00:05+0000') AND t < minTimeuuid('2013-02-02 10:00+0000')
+
will select all rows where the timeuuid column t is strictly older than ‘2013-01-01 00:05+0000’ but strictly younger than ‘2013-02-02 10:00+0000’. Please note that t >= maxTimeuuid('2013-01-01 00:05+0000') would still not select a timeuuid generated exactly at ‘2013-01-01 00:05+0000’ and is essentially equivalent to t > maxTimeuuid('2013-01-01 00:05+0000').
Warning: We called the values generated by minTimeuuid and maxTimeuuidfake UUID because they do no respect the Time-Based UUID generation process specified by the RFC 4122. In particular, the value returned by these 2 methods will not be unique. This means you should only use those methods for querying (as in the example above). Inserting the result of those methods is almost certainly a bad idea.
Time conversion functions
A number of functions are provided to “convert” a timeuuid, a timestamp or a date into another native type.
function name
input type
description
toDate
timeuuid
Converts the timeuuid argument into a date type
toDate
timestamp
Converts the timestamp argument into a date type
toTimestamp
timeuuid
Converts the timeuuid argument into a timestamp type
toTimestamp
date
Converts the date argument into a timestamp type
toUnixTimestamp
timeuuid
Converts the timeuuid argument into a bigInt raw value
toUnixTimestamp
timestamp
Converts the timestamp argument into a bigInt raw value
toUnixTimestamp
date
Converts the date argument into a bigInt raw value
dateOf
timeuuid
Similar to toTimestamp(timeuuid) (DEPRECATED)
unixTimestampOf
timeuuid
Similar to toUnixTimestamp(timeuuid) (DEPRECATED)
Blob conversion functions
A number of functions are provided to “convert” the native types into binary data (blob). For every <native-type>type supported by CQL3 (a notable exceptions is blob, for obvious reasons), the function typeAsBlob takes a argument of type type and return it as a blob. Conversely, the function blobAsType takes a 64-bit blob argument and convert it to a bigint value. And so for instance, bigintAsBlob(3) is 0x0000000000000003 and blobAsBigint(0x0000000000000003) is 3.
Aggregates
Aggregate functions work on a set of rows. They receive values for each row and returns one value for the whole set. If normal columns, scalar functions, UDT fields, writetime or ttl are selected together with aggregate functions, the values returned for them will be the ones of the first row matching the query.
CQL3 distinguishes between built-in aggregates (so called ‘native aggregates’) and user-defined aggregates. CQL3 includes several native aggregates, described below:
Count
The count function can be used to count the rows returned by a query. Example:
SELECT COUNT(*) FROM plays;
+SELECT COUNT(1) FROM plays;
+
It also can be used to count the non null value of a given column. Example:
SELECT COUNT(scores) FROM plays;
+
Max and Min
The max and min functions can be used to compute the maximum and the minimum value returned by a query for a given column.
SELECT MIN(players), MAX(players) FROM plays WHERE game = 'quake';
+
Sum
The sum function can be used to sum up all the values returned by a query for a given column.
SELECT SUM(players) FROM plays;
+
Avg
The avg function can be used to compute the average of all the values returned by a query for a given column.
SELECT AVG(players) FROM plays;
+
User-Defined Functions
User-defined functions allow execution of user-provided code in Cassandra. By default, Cassandra supports defining functions in Java and JavaScript. Support for other JSR 223 compliant scripting languages (such as Python, Ruby, and Scala) has been removed in 3.0.11.
UDFs are part of the Cassandra schema. As such, they are automatically propagated to all nodes in the cluster.
UDFs can be overloaded - i.e. multiple UDFs with different argument types but the same function name. Example:
CREATE FUNCTION sample ( arg int ) ...;
+CREATE FUNCTION sample ( arg text ) ...;
+
User-defined functions are susceptible to all of the normal problems with the chosen programming language. Accordingly, implementations should be safe against null pointer exceptions, illegal arguments, or any other potential source of exceptions. An exception during function execution will result in the entire statement failing.
It is valid to use complex types like collections, tuple types and user-defined types as argument and return types. Tuple types and user-defined types are handled by the conversion functions of the DataStax Java Driver. Please see the documentation of the Java Driver for details on handling tuple types and user-defined types.
Arguments for functions can be literals or terms. Prepared statement placeholders can be used, too.
Note that you can use the double-quoted string syntax to enclose the UDF source code. For example:
CREATE FUNCTION some_function ( arg int )
+ RETURNS NULL ON NULL INPUT
+ RETURNS int
+ LANGUAGE java
+ AS $$ return arg; $$;
+
+SELECT some_function(column) FROM atable ...;
+UPDATE atable SET col = some_function(?) ...;
+
CREATE TYPE custom_type (txt text, i int);
+CREATE FUNCTION fct_using_udt ( udtarg frozen<custom_type> )
+ RETURNS NULL ON NULL INPUT
+ RETURNS text
+ LANGUAGE java
+ AS $$ return udtarg.getString("txt"); $$;
+
User-defined functions can be used in SELECT, INSERT and UPDATE statements.
User-defined aggregates allow creation of custom aggregate functions using UDFs. Common examples of aggregate functions are count, min, and max.
Each aggregate requires an initial state (INITCOND, which defaults to null) of type STYPE. The first argument of the state function must have type STYPE. The remaining arguments of the state function must match the types of the user-defined aggregate arguments. The state function is called once for each row, and the value returned by the state function becomes the new state. After all rows are processed, the optional FINALFUNC is executed with last state value as its argument.
STYPE is mandatory in order to be able to distinguish possibly overloaded versions of the state and/or final function (since the overload can appear after creation of the aggregate).
User-defined aggregates can be used in SELECT statement.
A complete working example for user-defined aggregates (assuming that a keyspace has been selected using the USE statement):
CREATE OR REPLACE FUNCTION averageState ( state tuple<int,bigint>, val int )
+ CALLED ON NULL INPUT
+ RETURNS tuple<int,bigint>
+ LANGUAGE java
+ AS '
+ if (val != null) {
+ state.setInt(0, state.getInt(0)+1);
+ state.setLong(1, state.getLong(1)+val.intValue());
+ }
+ return state;
+ ';
+
+CREATE OR REPLACE FUNCTION averageFinal ( state tuple<int,bigint> )
+ CALLED ON NULL INPUT
+ RETURNS double
+ LANGUAGE java
+ AS '
+ double r = 0;
+ if (state.getInt(0) == 0) return null;
+ r = state.getLong(1);
+ r /= state.getInt(0);
+ return Double.valueOf(r);
+ ';
+
+CREATE OR REPLACE AGGREGATE average ( int )
+ SFUNC averageState
+ STYPE tuple<int,bigint>
+ FINALFUNC averageFinal
+ INITCOND (0, 0);
+
+CREATE TABLE atable (
+ pk int PRIMARY KEY,
+ val int);
+INSERT INTO atable (pk, val) VALUES (1,1);
+INSERT INTO atable (pk, val) VALUES (2,2);
+INSERT INTO atable (pk, val) VALUES (3,3);
+INSERT INTO atable (pk, val) VALUES (4,4);
+SELECT average(val) FROM atable;
+
Cassandra 2.2 introduces JSON support to SELECT and INSERT statements. This support does not fundamentally alter the CQL API (for example, the schema is still enforced), it simply provides a convenient way to work with JSON documents.
SELECT JSON
With SELECT statements, the new JSON keyword can be used to return each row as a single JSON encoded map. The remainder of the SELECT statment behavior is the same.
The result map keys are the same as the column names in a normal result set. For example, a statement like "SELECT JSON a, ttl(b) FROM ..." would result in a map with keys "a" and "ttl(b)". However, this is one notable exception: for symmetry with INSERT JSON behavior, case-sensitive column names with upper-case letters will be surrounded with double quotes. For example, "SELECT JSON myColumn FROM ..." would result in a map key "\"myColumn\"" (note the escaped quotes).
The map values will JSON-encoded representations (as described below) of the result set values.
INSERT JSON
With INSERT statements, the new JSON keyword can be used to enable inserting a JSON encoded map as a single row. The format of the JSON map should generally match that returned by a SELECT JSON statement on the same table. In particular, case-sensitive column names should be surrounded with double quotes. For example, to insert into a table with two columns named “myKey” and “value”, you would do the following:
INSERT INTO mytable JSON '{"\"myKey\"": 0, "value": 0}'
+
Any columns which are ommitted from the JSON map will be defaulted to a NULL value (which will result in a tombstone being created).
JSON Encoding of Cassandra Data Types
Where possible, Cassandra will represent and accept data types in their native JSON representation. Cassandra will also accept string representations matching the CQL literal format for all single-field types. For example, floats, ints, UUIDs, and dates can be represented by CQL literal strings. However, compound types, such as collections, tuples, and user-defined types must be represented by native JSON collections (maps and lists) or a JSON-encoded string representation of the collection.
The following table describes the encodings that Cassandra will accept in INSERT JSON values (and fromJson() arguments) as well as the format Cassandra will use when returning data for SELECT JSON statements (and fromJson()):
type
formats accepted
return format
notes
ascii
string
string
Uses JSON’s \u character escape
bigint
integer, string
integer
String must be valid 64 bit integer
blob
string
string
String should be 0x followed by an even number of hex digits
boolean
boolean, string
boolean
String must be “true” or "false"
date
string
string
Date in format YYYY-MM-DD, timezone UTC
decimal
integer, float, string
float
May exceed 32 or 64-bit IEEE-754 floating point precision in client-side decoder
double
integer, float, string
float
String must be valid integer or float
float
integer, float, string
float
String must be valid integer or float
inet
string
string
IPv4 or IPv6 address
int
integer, string
integer
String must be valid 32 bit integer
list
list, string
list
Uses JSON’s native list representation
map
map, string
map
Uses JSON’s native map representation
smallint
integer, string
integer
String must be valid 16 bit integer
set
list, string
list
Uses JSON’s native list representation
text
string
string
Uses JSON’s \u character escape
time
string
string
Time of day in format HH-MM-SS[.fffffffff]
timestamp
integer, string
string
A timestamp. Strings constant are allow to input timestamps as dates, see Working with dates below for more information. Datestamps with format YYYY-MM-DD HH:MM:SS.SSS are returned.
Variable length; may overflow 32 or 64 bit integers in client-side decoder
The fromJson() Function
The fromJson() function may be used similarly to INSERT JSON, but for a single column value. It may only be used in the VALUES clause of an INSERT statement or as one of the column values in an UPDATE, DELETE, or SELECT statement. For example, it cannot be used in the selection clause of a SELECT statement.
The toJson() Function
The toJson() function may be used similarly to SELECT JSON, but for a single column value. It may only be used in the selection clause of a SELECT statement.
Appendix A: CQL Keywords
CQL distinguishes between reserved and non-reserved keywords. Reserved keywords cannot be used as identifier, they are truly reserved for the language (but one can enclose a reserved keyword by double-quotes to use it as an identifier). Non-reserved keywords however only have a specific meaning in certain context but can used as identifer otherwise. The only raison d'��tre of these non-reserved keywords is convenience: some keyword are non-reserved when it was always easy for the parser to decide whether they were used as keywords or not.
Keyword
Reserved?
ADD
yes
AGGREGATE
no
ALL
no
ALLOW
yes
ALTER
yes
AND
yes
APPLY
yes
AS
no
ASC
yes
ASCII
no
AUTHORIZE
yes
BATCH
yes
BEGIN
yes
BIGINT
no
BLOB
no
BOOLEAN
no
BY
yes
CALLED
no
CLUSTERING
no
COLUMNFAMILY
yes
COMPACT
no
CONTAINS
no
COUNT
no
COUNTER
no
CREATE
yes
CUSTOM
no
DATE
no
DECIMAL
no
DELETE
yes
DESC
yes
DESCRIBE
yes
DISTINCT
no
DOUBLE
no
DROP
yes
ENTRIES
yes
EXECUTE
yes
EXISTS
no
FILTERING
no
FINALFUNC
no
FLOAT
no
FROM
yes
FROZEN
no
FULL
yes
FUNCTION
no
FUNCTIONS
no
GRANT
yes
IF
yes
IN
yes
INDEX
yes
INET
no
INFINITY
yes
INITCOND
no
INPUT
no
INSERT
yes
INT
no
INTO
yes
JSON
no
KEY
no
KEYS
no
KEYSPACE
yes
KEYSPACES
no
LANGUAGE
no
LIMIT
yes
LIST
no
LOGIN
no
MAP
no
MODIFY
yes
NAN
yes
NOLOGIN
no
NORECURSIVE
yes
NOSUPERUSER
no
NOT
yes
NULL
yes
OF
yes
ON
yes
OPTIONS
no
OR
yes
ORDER
yes
PASSWORD
no
PERMISSION
no
PERMISSIONS
no
PRIMARY
yes
RENAME
yes
REPLACE
yes
RETURNS
no
REVOKE
yes
ROLE
no
ROLES
no
SCHEMA
yes
SELECT
yes
SET
yes
SFUNC
no
SMALLINT
no
STATIC
no
STORAGE
no
STYPE
no
SUPERUSER
no
TABLE
yes
TEXT
no
TIME
no
TIMESTAMP
no
TIMEUUID
no
TINYINT
no
TO
yes
TOKEN
yes
TRIGGER
no
TRUNCATE
yes
TTL
no
TUPLE
no
TYPE
no
UNLOGGED
yes
UPDATE
yes
USE
yes
USER
no
USERS
no
USING
yes
UUID
no
VALUES
no
VARCHAR
no
VARINT
no
WHERE
yes
WITH
yes
WRITETIME
no
Appendix B: CQL Reserved Types
The following type names are not currently used by CQL, but are reserved for potential future use. User-defined types may not use reserved type names as their name.
type
bitstring
byte
complex
date
enum
interval
macaddr
Changes
The following describes the changes in each version of CQL.
CREATE INDEX now supports indexing collection columns, including indexing the keys of map collections through the keys() function
Indexes on collections may be queried using the new CONTAINS and CONTAINS KEY operators
Tuple types were added to hold fixed-length sets of typed positional fields (see the section on types )
DROP INDEX now supports optionally specifying a keyspace
3.1.7
SELECT statements now support selecting multiple rows in a single partition using an IN clause on combinations of clustering columns. See SELECT WHERE clauses.
IF NOT EXISTS and IF EXISTS syntax is now supported by CREATE USER and DROP USER statmenets, respectively.
CREATE INDEX now allows specifying options when creating CUSTOM indexes (see CREATE INDEX reference ).
3.1.3
Millisecond precision formats have been added to the timestamp parser (see working with dates ).
3.1.2
NaN and Infinity has been added as valid float contants. They are now reserved keywords. In the unlikely case you we using them as a column identifier (or keyspace/table one), you will noew need to double quote them (see quote identifiers ).
3.1.1
SELECT statement now allows listing the partition keys (using the DISTINCT modifier). See CASSANDRA-4536.
The syntax c IN ? is now supported in WHERE clauses. In that case, the value expected for the bind variable will be a list of whatever type c is.
It is now possible to use named bind variables (using :name instead of ?).
3.1.0
ALTER TABLEDROP option has been reenabled for CQL3 tables and has new semantics now: the space formerly used by dropped columns will now be eventually reclaimed (post-compaction). You should not readd previously dropped columns unless you use timestamps with microsecond precision (see CASSANDRA-3919 for more details).
SELECT statement now supports aliases in select clause. Aliases in WHERE and ORDER BY clauses are not supported. See the section on select for details.
CREATE statements for KEYSPACE, TABLE and INDEX now supports an IF NOT EXISTS condition. Similarly, DROP statements support a IF EXISTS condition.
INSERT statements optionally supports a IF NOT EXISTS condition and UPDATE supports IF conditions.
3.0.5
SELECT, UPDATE, and DELETE statements now allow empty IN relations (see CASSANDRA-5626).
Non-equal condition on the partition key are now never supported, even for ordering partitioner as this was not correct (the order was not the one of the type of the partition key). Instead, the token method should always be used for range queries on the partition key (see WHERE clauses ).
Type validation for the constants has been fixed. For instance, the implementation used to allow '2' as a valid value for an int column (interpreting it has the equivalent of 2), or 42 as a valid blob value (in which case 42 was interpreted as an hexadecimal representation of the blob). This is no longer the case, type validation of constants is now more strict. See the data types section for details on which constant is allowed for which type.
The type validation fixed of the previous point has lead to the introduction of blobs constants to allow inputing blobs. Do note that while inputing blobs as strings constant is still supported by this version (to allow smoother transition to blob constant), it is now deprecated (in particular the data types section does not list strings constants as valid blobs) and will be removed by a future version. If you were using strings as blobs, you should thus update your client code ASAP to switch blob constants.
A number of functions to convert native types to blobs have also been introduced. Furthermore the token function is now also allowed in select clauses. See the section on functions for details.
3.0.1
Date strings (and timestamps) are no longer accepted as valid timeuuid values. Doing so was a bug in the sense that date string are not valid timeuuid, and it was thus resulting in confusing behaviors. However, the following new methods have been added to help working with timeuuid: now, minTimeuuid, maxTimeuuid , dateOf and unixTimestampOf. See the section dedicated to these methods for more detail.
“Float constants”#constants now support the exponent notation. In other words, 4.2E10 is now a valid floating point value.
Versioning
Versioning of the CQL language adheres to the Semantic Versioning guidelines. Versions take the form X.Y.Z where X, Y, and Z are integer values representing major, minor, and patch level respectively. There is no correlation between Cassandra release versions and the CQL language version.
version
description
Major
The major version must be bumped when backward incompatible changes are introduced. This should rarely occur.
Minor
Minor version increments occur when new, but backward compatible, functionality is introduced.
Patch
The patch version is incremented when bugs are fixed.
\ No newline at end of file
diff --git a/rocksandra/lib/rocksdbjni-7.9.2.jar b/rocksandra/lib/rocksdbjni-7.9.2.jar
index 4385745f472a..4aedbe334bcf 100644
Binary files a/rocksandra/lib/rocksdbjni-7.9.2.jar and b/rocksandra/lib/rocksdbjni-7.9.2.jar differ
diff --git a/rocksandra/src/gen-java/org/apache/cassandra/cql3/Cql.tokens b/rocksandra/src/gen-java/org/apache/cassandra/cql3/Cql.tokens
new file mode 100644
index 000000000000..fa88eaf5aa54
--- /dev/null
+++ b/rocksandra/src/gen-java/org/apache/cassandra/cql3/Cql.tokens
@@ -0,0 +1,209 @@
+T__173=173
+T__174=174
+T__175=175
+T__176=176
+T__177=177
+T__178=178
+T__179=179
+T__180=180
+T__181=181
+T__182=182
+T__183=183
+T__184=184
+T__185=185
+T__186=186
+T__187=187
+T__188=188
+T__189=189
+T__190=190
+T__191=191
+T__192=192
+A=4
+B=5
+BOOLEAN=6
+C=7
+COMMENT=8
+D=9
+DIGIT=10
+E=11
+EXPONENT=12
+F=13
+FLOAT=14
+G=15
+H=16
+HEX=17
+HEXNUMBER=18
+I=19
+IDENT=20
+INTEGER=21
+J=22
+K=23
+K_ADD=24
+K_AGGREGATE=25
+K_ALL=26
+K_ALLOW=27
+K_ALTER=28
+K_AND=29
+K_APPLY=30
+K_AS=31
+K_ASC=32
+K_ASCII=33
+K_AUTHORIZE=34
+K_BATCH=35
+K_BEGIN=36
+K_BIGINT=37
+K_BLOB=38
+K_BOOLEAN=39
+K_BY=40
+K_CALLED=41
+K_CLUSTERING=42
+K_COLUMNFAMILY=43
+K_COMPACT=44
+K_CONTAINS=45
+K_COUNT=46
+K_COUNTER=47
+K_CREATE=48
+K_CUSTOM=49
+K_DATE=50
+K_DECIMAL=51
+K_DELETE=52
+K_DESC=53
+K_DESCRIBE=54
+K_DISTINCT=55
+K_DOUBLE=56
+K_DROP=57
+K_ENTRIES=58
+K_EXECUTE=59
+K_EXISTS=60
+K_FILTERING=61
+K_FINALFUNC=62
+K_FLOAT=63
+K_FROM=64
+K_FROZEN=65
+K_FULL=66
+K_FUNCTION=67
+K_FUNCTIONS=68
+K_GRANT=69
+K_IF=70
+K_IN=71
+K_INDEX=72
+K_INET=73
+K_INFINITY=74
+K_INITCOND=75
+K_INPUT=76
+K_INSERT=77
+K_INT=78
+K_INTO=79
+K_IS=80
+K_JSON=81
+K_KEY=82
+K_KEYS=83
+K_KEYSPACE=84
+K_KEYSPACES=85
+K_LANGUAGE=86
+K_LIKE=87
+K_LIMIT=88
+K_LIST=89
+K_LOGIN=90
+K_MAP=91
+K_MATERIALIZED=92
+K_MODIFY=93
+K_NAN=94
+K_NOLOGIN=95
+K_NORECURSIVE=96
+K_NOSUPERUSER=97
+K_NOT=98
+K_NULL=99
+K_OF=100
+K_ON=101
+K_OPTIONS=102
+K_OR=103
+K_ORDER=104
+K_PARTITION=105
+K_PASSWORD=106
+K_PER=107
+K_PERMISSION=108
+K_PERMISSIONS=109
+K_PRIMARY=110
+K_RENAME=111
+K_REPLACE=112
+K_RETURNS=113
+K_REVOKE=114
+K_ROLE=115
+K_ROLES=116
+K_SELECT=117
+K_SET=118
+K_SFUNC=119
+K_SMALLINT=120
+K_STATIC=121
+K_STORAGE=122
+K_STYPE=123
+K_SUPERUSER=124
+K_TEXT=125
+K_TIME=126
+K_TIMESTAMP=127
+K_TIMEUUID=128
+K_TINYINT=129
+K_TO=130
+K_TOKEN=131
+K_TRIGGER=132
+K_TRUNCATE=133
+K_TTL=134
+K_TUPLE=135
+K_TYPE=136
+K_UNLOGGED=137
+K_UPDATE=138
+K_USE=139
+K_USER=140
+K_USERS=141
+K_USING=142
+K_UUID=143
+K_VALUES=144
+K_VARCHAR=145
+K_VARINT=146
+K_VIEW=147
+K_WHERE=148
+K_WITH=149
+K_WRITETIME=150
+L=151
+LETTER=152
+M=153
+MULTILINE_COMMENT=154
+N=155
+O=156
+P=157
+Q=158
+QMARK=159
+QUOTED_NAME=160
+R=161
+S=162
+STRING_LITERAL=163
+T=164
+U=165
+UUID=166
+V=167
+W=168
+WS=169
+X=170
+Y=171
+Z=172
+'!='=173
+'('=174
+')'=175
+'+'=176
+','=177
+'-'=178
+'.'=179
+':'=180
+';'=181
+'<'=182
+'<='=183
+'='=184
+'>'=185
+'>='=186
+'['=187
+'\*'=188
+']'=189
+'expr('=190
+'{'=191
+'}'=192
diff --git a/rocksandra/src/gen-java/org/apache/cassandra/cql3/CqlLexer.java b/rocksandra/src/gen-java/org/apache/cassandra/cql3/CqlLexer.java
new file mode 100644
index 000000000000..7ad12c871e67
--- /dev/null
+++ b/rocksandra/src/gen-java/org/apache/cassandra/cql3/CqlLexer.java
@@ -0,0 +1,8419 @@
+// $ANTLR 3.5.2 /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g 2023-06-29 08:30:39
+
+ package org.apache.cassandra.cql3;
+
+ import org.apache.cassandra.exceptions.SyntaxException;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class CqlLexer extends Lexer {
+ public static final int EOF=-1;
+ public static final int T__173=173;
+ public static final int T__174=174;
+ public static final int T__175=175;
+ public static final int T__176=176;
+ public static final int T__177=177;
+ public static final int T__178=178;
+ public static final int T__179=179;
+ public static final int T__180=180;
+ public static final int T__181=181;
+ public static final int T__182=182;
+ public static final int T__183=183;
+ public static final int T__184=184;
+ public static final int T__185=185;
+ public static final int T__186=186;
+ public static final int T__187=187;
+ public static final int T__188=188;
+ public static final int T__189=189;
+ public static final int T__190=190;
+ public static final int T__191=191;
+ public static final int T__192=192;
+ public static final int A=4;
+ public static final int B=5;
+ public static final int BOOLEAN=6;
+ public static final int C=7;
+ public static final int COMMENT=8;
+ public static final int D=9;
+ public static final int DIGIT=10;
+ public static final int E=11;
+ public static final int EXPONENT=12;
+ public static final int F=13;
+ public static final int FLOAT=14;
+ public static final int G=15;
+ public static final int H=16;
+ public static final int HEX=17;
+ public static final int HEXNUMBER=18;
+ public static final int I=19;
+ public static final int IDENT=20;
+ public static final int INTEGER=21;
+ public static final int J=22;
+ public static final int K=23;
+ public static final int K_ADD=24;
+ public static final int K_AGGREGATE=25;
+ public static final int K_ALL=26;
+ public static final int K_ALLOW=27;
+ public static final int K_ALTER=28;
+ public static final int K_AND=29;
+ public static final int K_APPLY=30;
+ public static final int K_AS=31;
+ public static final int K_ASC=32;
+ public static final int K_ASCII=33;
+ public static final int K_AUTHORIZE=34;
+ public static final int K_BATCH=35;
+ public static final int K_BEGIN=36;
+ public static final int K_BIGINT=37;
+ public static final int K_BLOB=38;
+ public static final int K_BOOLEAN=39;
+ public static final int K_BY=40;
+ public static final int K_CALLED=41;
+ public static final int K_CLUSTERING=42;
+ public static final int K_COLUMNFAMILY=43;
+ public static final int K_COMPACT=44;
+ public static final int K_CONTAINS=45;
+ public static final int K_COUNT=46;
+ public static final int K_COUNTER=47;
+ public static final int K_CREATE=48;
+ public static final int K_CUSTOM=49;
+ public static final int K_DATE=50;
+ public static final int K_DECIMAL=51;
+ public static final int K_DELETE=52;
+ public static final int K_DESC=53;
+ public static final int K_DESCRIBE=54;
+ public static final int K_DISTINCT=55;
+ public static final int K_DOUBLE=56;
+ public static final int K_DROP=57;
+ public static final int K_ENTRIES=58;
+ public static final int K_EXECUTE=59;
+ public static final int K_EXISTS=60;
+ public static final int K_FILTERING=61;
+ public static final int K_FINALFUNC=62;
+ public static final int K_FLOAT=63;
+ public static final int K_FROM=64;
+ public static final int K_FROZEN=65;
+ public static final int K_FULL=66;
+ public static final int K_FUNCTION=67;
+ public static final int K_FUNCTIONS=68;
+ public static final int K_GRANT=69;
+ public static final int K_IF=70;
+ public static final int K_IN=71;
+ public static final int K_INDEX=72;
+ public static final int K_INET=73;
+ public static final int K_INFINITY=74;
+ public static final int K_INITCOND=75;
+ public static final int K_INPUT=76;
+ public static final int K_INSERT=77;
+ public static final int K_INT=78;
+ public static final int K_INTO=79;
+ public static final int K_IS=80;
+ public static final int K_JSON=81;
+ public static final int K_KEY=82;
+ public static final int K_KEYS=83;
+ public static final int K_KEYSPACE=84;
+ public static final int K_KEYSPACES=85;
+ public static final int K_LANGUAGE=86;
+ public static final int K_LIKE=87;
+ public static final int K_LIMIT=88;
+ public static final int K_LIST=89;
+ public static final int K_LOGIN=90;
+ public static final int K_MAP=91;
+ public static final int K_MATERIALIZED=92;
+ public static final int K_MODIFY=93;
+ public static final int K_NAN=94;
+ public static final int K_NOLOGIN=95;
+ public static final int K_NORECURSIVE=96;
+ public static final int K_NOSUPERUSER=97;
+ public static final int K_NOT=98;
+ public static final int K_NULL=99;
+ public static final int K_OF=100;
+ public static final int K_ON=101;
+ public static final int K_OPTIONS=102;
+ public static final int K_OR=103;
+ public static final int K_ORDER=104;
+ public static final int K_PARTITION=105;
+ public static final int K_PASSWORD=106;
+ public static final int K_PER=107;
+ public static final int K_PERMISSION=108;
+ public static final int K_PERMISSIONS=109;
+ public static final int K_PRIMARY=110;
+ public static final int K_RENAME=111;
+ public static final int K_REPLACE=112;
+ public static final int K_RETURNS=113;
+ public static final int K_REVOKE=114;
+ public static final int K_ROLE=115;
+ public static final int K_ROLES=116;
+ public static final int K_SELECT=117;
+ public static final int K_SET=118;
+ public static final int K_SFUNC=119;
+ public static final int K_SMALLINT=120;
+ public static final int K_STATIC=121;
+ public static final int K_STORAGE=122;
+ public static final int K_STYPE=123;
+ public static final int K_SUPERUSER=124;
+ public static final int K_TEXT=125;
+ public static final int K_TIME=126;
+ public static final int K_TIMESTAMP=127;
+ public static final int K_TIMEUUID=128;
+ public static final int K_TINYINT=129;
+ public static final int K_TO=130;
+ public static final int K_TOKEN=131;
+ public static final int K_TRIGGER=132;
+ public static final int K_TRUNCATE=133;
+ public static final int K_TTL=134;
+ public static final int K_TUPLE=135;
+ public static final int K_TYPE=136;
+ public static final int K_UNLOGGED=137;
+ public static final int K_UPDATE=138;
+ public static final int K_USE=139;
+ public static final int K_USER=140;
+ public static final int K_USERS=141;
+ public static final int K_USING=142;
+ public static final int K_UUID=143;
+ public static final int K_VALUES=144;
+ public static final int K_VARCHAR=145;
+ public static final int K_VARINT=146;
+ public static final int K_VIEW=147;
+ public static final int K_WHERE=148;
+ public static final int K_WITH=149;
+ public static final int K_WRITETIME=150;
+ public static final int L=151;
+ public static final int LETTER=152;
+ public static final int M=153;
+ public static final int MULTILINE_COMMENT=154;
+ public static final int N=155;
+ public static final int O=156;
+ public static final int P=157;
+ public static final int Q=158;
+ public static final int QMARK=159;
+ public static final int QUOTED_NAME=160;
+ public static final int R=161;
+ public static final int S=162;
+ public static final int STRING_LITERAL=163;
+ public static final int T=164;
+ public static final int U=165;
+ public static final int UUID=166;
+ public static final int V=167;
+ public static final int W=168;
+ public static final int WS=169;
+ public static final int X=170;
+ public static final int Y=171;
+ public static final int Z=172;
+
+ List tokens = new ArrayList();
+
+ public void emit(Token token)
+ {
+ state.token = token;
+ tokens.add(token);
+ }
+
+ public Token nextToken()
+ {
+ super.nextToken();
+ if (tokens.size() == 0)
+ return new CommonToken(Token.EOF);
+ return tokens.remove(0);
+ }
+
+ private final List listeners = new ArrayList();
+
+ public void addErrorListener(ErrorListener listener)
+ {
+ this.listeners.add(listener);
+ }
+
+ public void removeErrorListener(ErrorListener listener)
+ {
+ this.listeners.remove(listener);
+ }
+
+ public void displayRecognitionError(String[] tokenNames, RecognitionException e)
+ {
+ for (int i = 0, m = listeners.size(); i < m; i++)
+ listeners.get(i).syntaxError(this, tokenNames, e);
+ }
+
+
+ // delegates
+ // delegators
+ public Lexer[] getDelegates() {
+ return new Lexer[] {};
+ }
+
+ public CqlLexer() {}
+ public CqlLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public CqlLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+ }
+ @Override public String getGrammarFileName() { return "/Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g"; }
+
+ // $ANTLR start "T__173"
+ public final void mT__173() throws RecognitionException {
+ try {
+ int _type = T__173;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:48:8: ( '!=' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:48:10: '!='
+ {
+ match("!=");
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__173"
+
+ // $ANTLR start "T__174"
+ public final void mT__174() throws RecognitionException {
+ try {
+ int _type = T__174;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:49:8: ( '(' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:49:10: '('
+ {
+ match('(');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__174"
+
+ // $ANTLR start "T__175"
+ public final void mT__175() throws RecognitionException {
+ try {
+ int _type = T__175;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:50:8: ( ')' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:50:10: ')'
+ {
+ match(')');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__175"
+
+ // $ANTLR start "T__176"
+ public final void mT__176() throws RecognitionException {
+ try {
+ int _type = T__176;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:51:8: ( '+' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:51:10: '+'
+ {
+ match('+');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__176"
+
+ // $ANTLR start "T__177"
+ public final void mT__177() throws RecognitionException {
+ try {
+ int _type = T__177;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:52:8: ( ',' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:52:10: ','
+ {
+ match(',');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__177"
+
+ // $ANTLR start "T__178"
+ public final void mT__178() throws RecognitionException {
+ try {
+ int _type = T__178;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:53:8: ( '-' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:53:10: '-'
+ {
+ match('-');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__178"
+
+ // $ANTLR start "T__179"
+ public final void mT__179() throws RecognitionException {
+ try {
+ int _type = T__179;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:54:8: ( '.' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:54:10: '.'
+ {
+ match('.');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__179"
+
+ // $ANTLR start "T__180"
+ public final void mT__180() throws RecognitionException {
+ try {
+ int _type = T__180;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:55:8: ( ':' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:55:10: ':'
+ {
+ match(':');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__180"
+
+ // $ANTLR start "T__181"
+ public final void mT__181() throws RecognitionException {
+ try {
+ int _type = T__181;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:56:8: ( ';' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:56:10: ';'
+ {
+ match(';');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__181"
+
+ // $ANTLR start "T__182"
+ public final void mT__182() throws RecognitionException {
+ try {
+ int _type = T__182;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:57:8: ( '<' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:57:10: '<'
+ {
+ match('<');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__182"
+
+ // $ANTLR start "T__183"
+ public final void mT__183() throws RecognitionException {
+ try {
+ int _type = T__183;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:58:8: ( '<=' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:58:10: '<='
+ {
+ match("<=");
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__183"
+
+ // $ANTLR start "T__184"
+ public final void mT__184() throws RecognitionException {
+ try {
+ int _type = T__184;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:59:8: ( '=' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:59:10: '='
+ {
+ match('=');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__184"
+
+ // $ANTLR start "T__185"
+ public final void mT__185() throws RecognitionException {
+ try {
+ int _type = T__185;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:60:8: ( '>' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:60:10: '>'
+ {
+ match('>');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__185"
+
+ // $ANTLR start "T__186"
+ public final void mT__186() throws RecognitionException {
+ try {
+ int _type = T__186;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:61:8: ( '>=' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:61:10: '>='
+ {
+ match(">=");
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__186"
+
+ // $ANTLR start "T__187"
+ public final void mT__187() throws RecognitionException {
+ try {
+ int _type = T__187;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:62:8: ( '[' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:62:10: '['
+ {
+ match('[');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__187"
+
+ // $ANTLR start "T__188"
+ public final void mT__188() throws RecognitionException {
+ try {
+ int _type = T__188;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:63:8: ( '\\*' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:63:10: '\\*'
+ {
+ match('*');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__188"
+
+ // $ANTLR start "T__189"
+ public final void mT__189() throws RecognitionException {
+ try {
+ int _type = T__189;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:64:8: ( ']' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:64:10: ']'
+ {
+ match(']');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__189"
+
+ // $ANTLR start "T__190"
+ public final void mT__190() throws RecognitionException {
+ try {
+ int _type = T__190;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:65:8: ( 'expr(' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:65:10: 'expr('
+ {
+ match("expr(");
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__190"
+
+ // $ANTLR start "T__191"
+ public final void mT__191() throws RecognitionException {
+ try {
+ int _type = T__191;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:66:8: ( '{' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:66:10: '{'
+ {
+ match('{');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__191"
+
+ // $ANTLR start "T__192"
+ public final void mT__192() throws RecognitionException {
+ try {
+ int _type = T__192;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:67:8: ( '}' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:67:10: '}'
+ {
+ match('}');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T__192"
+
+ // $ANTLR start "K_SELECT"
+ public final void mK_SELECT() throws RecognitionException {
+ try {
+ int _type = K_SELECT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1644:9: ( S E L E C T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1644:16: S E L E C T
+ {
+ mS();
+
+ mE();
+
+ mL();
+
+ mE();
+
+ mC();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_SELECT"
+
+ // $ANTLR start "K_FROM"
+ public final void mK_FROM() throws RecognitionException {
+ try {
+ int _type = K_FROM;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1645:7: ( F R O M )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1645:16: F R O M
+ {
+ mF();
+
+ mR();
+
+ mO();
+
+ mM();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_FROM"
+
+ // $ANTLR start "K_AS"
+ public final void mK_AS() throws RecognitionException {
+ try {
+ int _type = K_AS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1646:5: ( A S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1646:16: A S
+ {
+ mA();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_AS"
+
+ // $ANTLR start "K_WHERE"
+ public final void mK_WHERE() throws RecognitionException {
+ try {
+ int _type = K_WHERE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1647:8: ( W H E R E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1647:16: W H E R E
+ {
+ mW();
+
+ mH();
+
+ mE();
+
+ mR();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_WHERE"
+
+ // $ANTLR start "K_AND"
+ public final void mK_AND() throws RecognitionException {
+ try {
+ int _type = K_AND;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1648:6: ( A N D )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1648:16: A N D
+ {
+ mA();
+
+ mN();
+
+ mD();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_AND"
+
+ // $ANTLR start "K_KEY"
+ public final void mK_KEY() throws RecognitionException {
+ try {
+ int _type = K_KEY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1649:6: ( K E Y )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1649:16: K E Y
+ {
+ mK();
+
+ mE();
+
+ mY();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_KEY"
+
+ // $ANTLR start "K_KEYS"
+ public final void mK_KEYS() throws RecognitionException {
+ try {
+ int _type = K_KEYS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1650:7: ( K E Y S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1650:16: K E Y S
+ {
+ mK();
+
+ mE();
+
+ mY();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_KEYS"
+
+ // $ANTLR start "K_ENTRIES"
+ public final void mK_ENTRIES() throws RecognitionException {
+ try {
+ int _type = K_ENTRIES;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1651:10: ( E N T R I E S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1651:16: E N T R I E S
+ {
+ mE();
+
+ mN();
+
+ mT();
+
+ mR();
+
+ mI();
+
+ mE();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ENTRIES"
+
+ // $ANTLR start "K_FULL"
+ public final void mK_FULL() throws RecognitionException {
+ try {
+ int _type = K_FULL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1652:7: ( F U L L )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1652:16: F U L L
+ {
+ mF();
+
+ mU();
+
+ mL();
+
+ mL();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_FULL"
+
+ // $ANTLR start "K_INSERT"
+ public final void mK_INSERT() throws RecognitionException {
+ try {
+ int _type = K_INSERT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1653:9: ( I N S E R T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1653:16: I N S E R T
+ {
+ mI();
+
+ mN();
+
+ mS();
+
+ mE();
+
+ mR();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_INSERT"
+
+ // $ANTLR start "K_UPDATE"
+ public final void mK_UPDATE() throws RecognitionException {
+ try {
+ int _type = K_UPDATE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1654:9: ( U P D A T E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1654:16: U P D A T E
+ {
+ mU();
+
+ mP();
+
+ mD();
+
+ mA();
+
+ mT();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_UPDATE"
+
+ // $ANTLR start "K_WITH"
+ public final void mK_WITH() throws RecognitionException {
+ try {
+ int _type = K_WITH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1655:7: ( W I T H )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1655:16: W I T H
+ {
+ mW();
+
+ mI();
+
+ mT();
+
+ mH();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_WITH"
+
+ // $ANTLR start "K_LIMIT"
+ public final void mK_LIMIT() throws RecognitionException {
+ try {
+ int _type = K_LIMIT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1656:8: ( L I M I T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1656:16: L I M I T
+ {
+ mL();
+
+ mI();
+
+ mM();
+
+ mI();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_LIMIT"
+
+ // $ANTLR start "K_LIKE"
+ public final void mK_LIKE() throws RecognitionException {
+ try {
+ int _type = K_LIKE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1657:7: ( L I K E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1657:16: L I K E
+ {
+ mL();
+
+ mI();
+
+ mK();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_LIKE"
+
+ // $ANTLR start "K_PER"
+ public final void mK_PER() throws RecognitionException {
+ try {
+ int _type = K_PER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1658:6: ( P E R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1658:16: P E R
+ {
+ mP();
+
+ mE();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_PER"
+
+ // $ANTLR start "K_PARTITION"
+ public final void mK_PARTITION() throws RecognitionException {
+ try {
+ int _type = K_PARTITION;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1659:12: ( P A R T I T I O N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1659:16: P A R T I T I O N
+ {
+ mP();
+
+ mA();
+
+ mR();
+
+ mT();
+
+ mI();
+
+ mT();
+
+ mI();
+
+ mO();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_PARTITION"
+
+ // $ANTLR start "K_USING"
+ public final void mK_USING() throws RecognitionException {
+ try {
+ int _type = K_USING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1660:8: ( U S I N G )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1660:16: U S I N G
+ {
+ mU();
+
+ mS();
+
+ mI();
+
+ mN();
+
+ mG();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_USING"
+
+ // $ANTLR start "K_USE"
+ public final void mK_USE() throws RecognitionException {
+ try {
+ int _type = K_USE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1661:6: ( U S E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1661:16: U S E
+ {
+ mU();
+
+ mS();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_USE"
+
+ // $ANTLR start "K_DISTINCT"
+ public final void mK_DISTINCT() throws RecognitionException {
+ try {
+ int _type = K_DISTINCT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1662:11: ( D I S T I N C T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1662:16: D I S T I N C T
+ {
+ mD();
+
+ mI();
+
+ mS();
+
+ mT();
+
+ mI();
+
+ mN();
+
+ mC();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_DISTINCT"
+
+ // $ANTLR start "K_COUNT"
+ public final void mK_COUNT() throws RecognitionException {
+ try {
+ int _type = K_COUNT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1663:8: ( C O U N T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1663:16: C O U N T
+ {
+ mC();
+
+ mO();
+
+ mU();
+
+ mN();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_COUNT"
+
+ // $ANTLR start "K_SET"
+ public final void mK_SET() throws RecognitionException {
+ try {
+ int _type = K_SET;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1664:6: ( S E T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1664:16: S E T
+ {
+ mS();
+
+ mE();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_SET"
+
+ // $ANTLR start "K_BEGIN"
+ public final void mK_BEGIN() throws RecognitionException {
+ try {
+ int _type = K_BEGIN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1665:8: ( B E G I N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1665:16: B E G I N
+ {
+ mB();
+
+ mE();
+
+ mG();
+
+ mI();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_BEGIN"
+
+ // $ANTLR start "K_UNLOGGED"
+ public final void mK_UNLOGGED() throws RecognitionException {
+ try {
+ int _type = K_UNLOGGED;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1666:11: ( U N L O G G E D )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1666:16: U N L O G G E D
+ {
+ mU();
+
+ mN();
+
+ mL();
+
+ mO();
+
+ mG();
+
+ mG();
+
+ mE();
+
+ mD();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_UNLOGGED"
+
+ // $ANTLR start "K_BATCH"
+ public final void mK_BATCH() throws RecognitionException {
+ try {
+ int _type = K_BATCH;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1667:8: ( B A T C H )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1667:16: B A T C H
+ {
+ mB();
+
+ mA();
+
+ mT();
+
+ mC();
+
+ mH();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_BATCH"
+
+ // $ANTLR start "K_APPLY"
+ public final void mK_APPLY() throws RecognitionException {
+ try {
+ int _type = K_APPLY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1668:8: ( A P P L Y )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1668:16: A P P L Y
+ {
+ mA();
+
+ mP();
+
+ mP();
+
+ mL();
+
+ mY();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_APPLY"
+
+ // $ANTLR start "K_TRUNCATE"
+ public final void mK_TRUNCATE() throws RecognitionException {
+ try {
+ int _type = K_TRUNCATE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1669:11: ( T R U N C A T E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1669:16: T R U N C A T E
+ {
+ mT();
+
+ mR();
+
+ mU();
+
+ mN();
+
+ mC();
+
+ mA();
+
+ mT();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TRUNCATE"
+
+ // $ANTLR start "K_DELETE"
+ public final void mK_DELETE() throws RecognitionException {
+ try {
+ int _type = K_DELETE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1670:9: ( D E L E T E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1670:16: D E L E T E
+ {
+ mD();
+
+ mE();
+
+ mL();
+
+ mE();
+
+ mT();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_DELETE"
+
+ // $ANTLR start "K_IN"
+ public final void mK_IN() throws RecognitionException {
+ try {
+ int _type = K_IN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1671:5: ( I N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1671:16: I N
+ {
+ mI();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_IN"
+
+ // $ANTLR start "K_CREATE"
+ public final void mK_CREATE() throws RecognitionException {
+ try {
+ int _type = K_CREATE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1672:9: ( C R E A T E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1672:16: C R E A T E
+ {
+ mC();
+
+ mR();
+
+ mE();
+
+ mA();
+
+ mT();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_CREATE"
+
+ // $ANTLR start "K_KEYSPACE"
+ public final void mK_KEYSPACE() throws RecognitionException {
+ try {
+ int _type = K_KEYSPACE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1673:11: ( ( K E Y S P A C E | S C H E M A ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1673:16: ( K E Y S P A C E | S C H E M A )
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1673:16: ( K E Y S P A C E | S C H E M A )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+ if ( (LA1_0=='K'||LA1_0=='k') ) {
+ alt1=1;
+ }
+ else if ( (LA1_0=='S'||LA1_0=='s') ) {
+ alt1=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+ throw nvae;
+ }
+
+ switch (alt1) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1673:18: K E Y S P A C E
+ {
+ mK();
+
+ mE();
+
+ mY();
+
+ mS();
+
+ mP();
+
+ mA();
+
+ mC();
+
+ mE();
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1674:20: S C H E M A
+ {
+ mS();
+
+ mC();
+
+ mH();
+
+ mE();
+
+ mM();
+
+ mA();
+
+ }
+ break;
+
+ }
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_KEYSPACE"
+
+ // $ANTLR start "K_KEYSPACES"
+ public final void mK_KEYSPACES() throws RecognitionException {
+ try {
+ int _type = K_KEYSPACES;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1675:12: ( K E Y S P A C E S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1675:16: K E Y S P A C E S
+ {
+ mK();
+
+ mE();
+
+ mY();
+
+ mS();
+
+ mP();
+
+ mA();
+
+ mC();
+
+ mE();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_KEYSPACES"
+
+ // $ANTLR start "K_COLUMNFAMILY"
+ public final void mK_COLUMNFAMILY() throws RecognitionException {
+ try {
+ int _type = K_COLUMNFAMILY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1676:15: ( ( C O L U M N F A M I L Y | T A B L E ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1676:16: ( C O L U M N F A M I L Y | T A B L E )
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1676:16: ( C O L U M N F A M I L Y | T A B L E )
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+ if ( (LA2_0=='C'||LA2_0=='c') ) {
+ alt2=1;
+ }
+ else if ( (LA2_0=='T'||LA2_0=='t') ) {
+ alt2=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+ throw nvae;
+ }
+
+ switch (alt2) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1676:18: C O L U M N F A M I L Y
+ {
+ mC();
+
+ mO();
+
+ mL();
+
+ mU();
+
+ mM();
+
+ mN();
+
+ mF();
+
+ mA();
+
+ mM();
+
+ mI();
+
+ mL();
+
+ mY();
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1677:20: T A B L E
+ {
+ mT();
+
+ mA();
+
+ mB();
+
+ mL();
+
+ mE();
+
+ }
+ break;
+
+ }
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_COLUMNFAMILY"
+
+ // $ANTLR start "K_MATERIALIZED"
+ public final void mK_MATERIALIZED() throws RecognitionException {
+ try {
+ int _type = K_MATERIALIZED;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1678:15: ( M A T E R I A L I Z E D )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1678:16: M A T E R I A L I Z E D
+ {
+ mM();
+
+ mA();
+
+ mT();
+
+ mE();
+
+ mR();
+
+ mI();
+
+ mA();
+
+ mL();
+
+ mI();
+
+ mZ();
+
+ mE();
+
+ mD();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_MATERIALIZED"
+
+ // $ANTLR start "K_VIEW"
+ public final void mK_VIEW() throws RecognitionException {
+ try {
+ int _type = K_VIEW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1679:7: ( V I E W )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1679:16: V I E W
+ {
+ mV();
+
+ mI();
+
+ mE();
+
+ mW();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_VIEW"
+
+ // $ANTLR start "K_INDEX"
+ public final void mK_INDEX() throws RecognitionException {
+ try {
+ int _type = K_INDEX;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1680:8: ( I N D E X )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1680:16: I N D E X
+ {
+ mI();
+
+ mN();
+
+ mD();
+
+ mE();
+
+ mX();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_INDEX"
+
+ // $ANTLR start "K_CUSTOM"
+ public final void mK_CUSTOM() throws RecognitionException {
+ try {
+ int _type = K_CUSTOM;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1681:9: ( C U S T O M )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1681:16: C U S T O M
+ {
+ mC();
+
+ mU();
+
+ mS();
+
+ mT();
+
+ mO();
+
+ mM();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_CUSTOM"
+
+ // $ANTLR start "K_ON"
+ public final void mK_ON() throws RecognitionException {
+ try {
+ int _type = K_ON;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1682:5: ( O N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1682:16: O N
+ {
+ mO();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ON"
+
+ // $ANTLR start "K_TO"
+ public final void mK_TO() throws RecognitionException {
+ try {
+ int _type = K_TO;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1683:5: ( T O )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1683:16: T O
+ {
+ mT();
+
+ mO();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TO"
+
+ // $ANTLR start "K_DROP"
+ public final void mK_DROP() throws RecognitionException {
+ try {
+ int _type = K_DROP;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1684:7: ( D R O P )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1684:16: D R O P
+ {
+ mD();
+
+ mR();
+
+ mO();
+
+ mP();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_DROP"
+
+ // $ANTLR start "K_PRIMARY"
+ public final void mK_PRIMARY() throws RecognitionException {
+ try {
+ int _type = K_PRIMARY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1685:10: ( P R I M A R Y )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1685:16: P R I M A R Y
+ {
+ mP();
+
+ mR();
+
+ mI();
+
+ mM();
+
+ mA();
+
+ mR();
+
+ mY();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_PRIMARY"
+
+ // $ANTLR start "K_INTO"
+ public final void mK_INTO() throws RecognitionException {
+ try {
+ int _type = K_INTO;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1686:7: ( I N T O )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1686:16: I N T O
+ {
+ mI();
+
+ mN();
+
+ mT();
+
+ mO();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_INTO"
+
+ // $ANTLR start "K_VALUES"
+ public final void mK_VALUES() throws RecognitionException {
+ try {
+ int _type = K_VALUES;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1687:9: ( V A L U E S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1687:16: V A L U E S
+ {
+ mV();
+
+ mA();
+
+ mL();
+
+ mU();
+
+ mE();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_VALUES"
+
+ // $ANTLR start "K_TIMESTAMP"
+ public final void mK_TIMESTAMP() throws RecognitionException {
+ try {
+ int _type = K_TIMESTAMP;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1688:12: ( T I M E S T A M P )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1688:16: T I M E S T A M P
+ {
+ mT();
+
+ mI();
+
+ mM();
+
+ mE();
+
+ mS();
+
+ mT();
+
+ mA();
+
+ mM();
+
+ mP();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TIMESTAMP"
+
+ // $ANTLR start "K_TTL"
+ public final void mK_TTL() throws RecognitionException {
+ try {
+ int _type = K_TTL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1689:6: ( T T L )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1689:16: T T L
+ {
+ mT();
+
+ mT();
+
+ mL();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TTL"
+
+ // $ANTLR start "K_ALTER"
+ public final void mK_ALTER() throws RecognitionException {
+ try {
+ int _type = K_ALTER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1690:8: ( A L T E R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1690:16: A L T E R
+ {
+ mA();
+
+ mL();
+
+ mT();
+
+ mE();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ALTER"
+
+ // $ANTLR start "K_RENAME"
+ public final void mK_RENAME() throws RecognitionException {
+ try {
+ int _type = K_RENAME;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1691:9: ( R E N A M E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1691:16: R E N A M E
+ {
+ mR();
+
+ mE();
+
+ mN();
+
+ mA();
+
+ mM();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_RENAME"
+
+ // $ANTLR start "K_ADD"
+ public final void mK_ADD() throws RecognitionException {
+ try {
+ int _type = K_ADD;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1692:6: ( A D D )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1692:16: A D D
+ {
+ mA();
+
+ mD();
+
+ mD();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ADD"
+
+ // $ANTLR start "K_TYPE"
+ public final void mK_TYPE() throws RecognitionException {
+ try {
+ int _type = K_TYPE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1693:7: ( T Y P E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1693:16: T Y P E
+ {
+ mT();
+
+ mY();
+
+ mP();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TYPE"
+
+ // $ANTLR start "K_COMPACT"
+ public final void mK_COMPACT() throws RecognitionException {
+ try {
+ int _type = K_COMPACT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1694:10: ( C O M P A C T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1694:16: C O M P A C T
+ {
+ mC();
+
+ mO();
+
+ mM();
+
+ mP();
+
+ mA();
+
+ mC();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_COMPACT"
+
+ // $ANTLR start "K_STORAGE"
+ public final void mK_STORAGE() throws RecognitionException {
+ try {
+ int _type = K_STORAGE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1695:10: ( S T O R A G E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1695:16: S T O R A G E
+ {
+ mS();
+
+ mT();
+
+ mO();
+
+ mR();
+
+ mA();
+
+ mG();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_STORAGE"
+
+ // $ANTLR start "K_ORDER"
+ public final void mK_ORDER() throws RecognitionException {
+ try {
+ int _type = K_ORDER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1696:8: ( O R D E R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1696:16: O R D E R
+ {
+ mO();
+
+ mR();
+
+ mD();
+
+ mE();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ORDER"
+
+ // $ANTLR start "K_BY"
+ public final void mK_BY() throws RecognitionException {
+ try {
+ int _type = K_BY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1697:5: ( B Y )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1697:16: B Y
+ {
+ mB();
+
+ mY();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_BY"
+
+ // $ANTLR start "K_ASC"
+ public final void mK_ASC() throws RecognitionException {
+ try {
+ int _type = K_ASC;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1698:6: ( A S C )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1698:16: A S C
+ {
+ mA();
+
+ mS();
+
+ mC();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ASC"
+
+ // $ANTLR start "K_DESC"
+ public final void mK_DESC() throws RecognitionException {
+ try {
+ int _type = K_DESC;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1699:7: ( D E S C )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1699:16: D E S C
+ {
+ mD();
+
+ mE();
+
+ mS();
+
+ mC();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_DESC"
+
+ // $ANTLR start "K_ALLOW"
+ public final void mK_ALLOW() throws RecognitionException {
+ try {
+ int _type = K_ALLOW;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1700:8: ( A L L O W )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1700:16: A L L O W
+ {
+ mA();
+
+ mL();
+
+ mL();
+
+ mO();
+
+ mW();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ALLOW"
+
+ // $ANTLR start "K_FILTERING"
+ public final void mK_FILTERING() throws RecognitionException {
+ try {
+ int _type = K_FILTERING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1701:12: ( F I L T E R I N G )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1701:16: F I L T E R I N G
+ {
+ mF();
+
+ mI();
+
+ mL();
+
+ mT();
+
+ mE();
+
+ mR();
+
+ mI();
+
+ mN();
+
+ mG();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_FILTERING"
+
+ // $ANTLR start "K_IF"
+ public final void mK_IF() throws RecognitionException {
+ try {
+ int _type = K_IF;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1702:5: ( I F )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1702:16: I F
+ {
+ mI();
+
+ mF();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_IF"
+
+ // $ANTLR start "K_IS"
+ public final void mK_IS() throws RecognitionException {
+ try {
+ int _type = K_IS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1703:5: ( I S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1703:16: I S
+ {
+ mI();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_IS"
+
+ // $ANTLR start "K_CONTAINS"
+ public final void mK_CONTAINS() throws RecognitionException {
+ try {
+ int _type = K_CONTAINS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1704:11: ( C O N T A I N S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1704:16: C O N T A I N S
+ {
+ mC();
+
+ mO();
+
+ mN();
+
+ mT();
+
+ mA();
+
+ mI();
+
+ mN();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_CONTAINS"
+
+ // $ANTLR start "K_GRANT"
+ public final void mK_GRANT() throws RecognitionException {
+ try {
+ int _type = K_GRANT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1706:8: ( G R A N T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1706:16: G R A N T
+ {
+ mG();
+
+ mR();
+
+ mA();
+
+ mN();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_GRANT"
+
+ // $ANTLR start "K_ALL"
+ public final void mK_ALL() throws RecognitionException {
+ try {
+ int _type = K_ALL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1707:6: ( A L L )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1707:16: A L L
+ {
+ mA();
+
+ mL();
+
+ mL();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ALL"
+
+ // $ANTLR start "K_PERMISSION"
+ public final void mK_PERMISSION() throws RecognitionException {
+ try {
+ int _type = K_PERMISSION;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1708:13: ( P E R M I S S I O N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1708:16: P E R M I S S I O N
+ {
+ mP();
+
+ mE();
+
+ mR();
+
+ mM();
+
+ mI();
+
+ mS();
+
+ mS();
+
+ mI();
+
+ mO();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_PERMISSION"
+
+ // $ANTLR start "K_PERMISSIONS"
+ public final void mK_PERMISSIONS() throws RecognitionException {
+ try {
+ int _type = K_PERMISSIONS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1709:14: ( P E R M I S S I O N S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1709:16: P E R M I S S I O N S
+ {
+ mP();
+
+ mE();
+
+ mR();
+
+ mM();
+
+ mI();
+
+ mS();
+
+ mS();
+
+ mI();
+
+ mO();
+
+ mN();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_PERMISSIONS"
+
+ // $ANTLR start "K_OF"
+ public final void mK_OF() throws RecognitionException {
+ try {
+ int _type = K_OF;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1710:5: ( O F )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1710:16: O F
+ {
+ mO();
+
+ mF();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_OF"
+
+ // $ANTLR start "K_REVOKE"
+ public final void mK_REVOKE() throws RecognitionException {
+ try {
+ int _type = K_REVOKE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1711:9: ( R E V O K E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1711:16: R E V O K E
+ {
+ mR();
+
+ mE();
+
+ mV();
+
+ mO();
+
+ mK();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_REVOKE"
+
+ // $ANTLR start "K_MODIFY"
+ public final void mK_MODIFY() throws RecognitionException {
+ try {
+ int _type = K_MODIFY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1712:9: ( M O D I F Y )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1712:16: M O D I F Y
+ {
+ mM();
+
+ mO();
+
+ mD();
+
+ mI();
+
+ mF();
+
+ mY();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_MODIFY"
+
+ // $ANTLR start "K_AUTHORIZE"
+ public final void mK_AUTHORIZE() throws RecognitionException {
+ try {
+ int _type = K_AUTHORIZE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1713:12: ( A U T H O R I Z E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1713:16: A U T H O R I Z E
+ {
+ mA();
+
+ mU();
+
+ mT();
+
+ mH();
+
+ mO();
+
+ mR();
+
+ mI();
+
+ mZ();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_AUTHORIZE"
+
+ // $ANTLR start "K_DESCRIBE"
+ public final void mK_DESCRIBE() throws RecognitionException {
+ try {
+ int _type = K_DESCRIBE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1714:11: ( D E S C R I B E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1714:16: D E S C R I B E
+ {
+ mD();
+
+ mE();
+
+ mS();
+
+ mC();
+
+ mR();
+
+ mI();
+
+ mB();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_DESCRIBE"
+
+ // $ANTLR start "K_EXECUTE"
+ public final void mK_EXECUTE() throws RecognitionException {
+ try {
+ int _type = K_EXECUTE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1715:10: ( E X E C U T E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1715:16: E X E C U T E
+ {
+ mE();
+
+ mX();
+
+ mE();
+
+ mC();
+
+ mU();
+
+ mT();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_EXECUTE"
+
+ // $ANTLR start "K_NORECURSIVE"
+ public final void mK_NORECURSIVE() throws RecognitionException {
+ try {
+ int _type = K_NORECURSIVE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1716:14: ( N O R E C U R S I V E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1716:16: N O R E C U R S I V E
+ {
+ mN();
+
+ mO();
+
+ mR();
+
+ mE();
+
+ mC();
+
+ mU();
+
+ mR();
+
+ mS();
+
+ mI();
+
+ mV();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_NORECURSIVE"
+
+ // $ANTLR start "K_USER"
+ public final void mK_USER() throws RecognitionException {
+ try {
+ int _type = K_USER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1718:7: ( U S E R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1718:16: U S E R
+ {
+ mU();
+
+ mS();
+
+ mE();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_USER"
+
+ // $ANTLR start "K_USERS"
+ public final void mK_USERS() throws RecognitionException {
+ try {
+ int _type = K_USERS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1719:8: ( U S E R S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1719:16: U S E R S
+ {
+ mU();
+
+ mS();
+
+ mE();
+
+ mR();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_USERS"
+
+ // $ANTLR start "K_ROLE"
+ public final void mK_ROLE() throws RecognitionException {
+ try {
+ int _type = K_ROLE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1720:7: ( R O L E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1720:16: R O L E
+ {
+ mR();
+
+ mO();
+
+ mL();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ROLE"
+
+ // $ANTLR start "K_ROLES"
+ public final void mK_ROLES() throws RecognitionException {
+ try {
+ int _type = K_ROLES;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1721:8: ( R O L E S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1721:16: R O L E S
+ {
+ mR();
+
+ mO();
+
+ mL();
+
+ mE();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ROLES"
+
+ // $ANTLR start "K_SUPERUSER"
+ public final void mK_SUPERUSER() throws RecognitionException {
+ try {
+ int _type = K_SUPERUSER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1722:12: ( S U P E R U S E R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1722:16: S U P E R U S E R
+ {
+ mS();
+
+ mU();
+
+ mP();
+
+ mE();
+
+ mR();
+
+ mU();
+
+ mS();
+
+ mE();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_SUPERUSER"
+
+ // $ANTLR start "K_NOSUPERUSER"
+ public final void mK_NOSUPERUSER() throws RecognitionException {
+ try {
+ int _type = K_NOSUPERUSER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1723:14: ( N O S U P E R U S E R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1723:16: N O S U P E R U S E R
+ {
+ mN();
+
+ mO();
+
+ mS();
+
+ mU();
+
+ mP();
+
+ mE();
+
+ mR();
+
+ mU();
+
+ mS();
+
+ mE();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_NOSUPERUSER"
+
+ // $ANTLR start "K_PASSWORD"
+ public final void mK_PASSWORD() throws RecognitionException {
+ try {
+ int _type = K_PASSWORD;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1724:11: ( P A S S W O R D )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1724:16: P A S S W O R D
+ {
+ mP();
+
+ mA();
+
+ mS();
+
+ mS();
+
+ mW();
+
+ mO();
+
+ mR();
+
+ mD();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_PASSWORD"
+
+ // $ANTLR start "K_LOGIN"
+ public final void mK_LOGIN() throws RecognitionException {
+ try {
+ int _type = K_LOGIN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1725:8: ( L O G I N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1725:16: L O G I N
+ {
+ mL();
+
+ mO();
+
+ mG();
+
+ mI();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_LOGIN"
+
+ // $ANTLR start "K_NOLOGIN"
+ public final void mK_NOLOGIN() throws RecognitionException {
+ try {
+ int _type = K_NOLOGIN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1726:10: ( N O L O G I N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1726:16: N O L O G I N
+ {
+ mN();
+
+ mO();
+
+ mL();
+
+ mO();
+
+ mG();
+
+ mI();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_NOLOGIN"
+
+ // $ANTLR start "K_OPTIONS"
+ public final void mK_OPTIONS() throws RecognitionException {
+ try {
+ int _type = K_OPTIONS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1727:10: ( O P T I O N S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1727:16: O P T I O N S
+ {
+ mO();
+
+ mP();
+
+ mT();
+
+ mI();
+
+ mO();
+
+ mN();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_OPTIONS"
+
+ // $ANTLR start "K_CLUSTERING"
+ public final void mK_CLUSTERING() throws RecognitionException {
+ try {
+ int _type = K_CLUSTERING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1729:13: ( C L U S T E R I N G )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1729:16: C L U S T E R I N G
+ {
+ mC();
+
+ mL();
+
+ mU();
+
+ mS();
+
+ mT();
+
+ mE();
+
+ mR();
+
+ mI();
+
+ mN();
+
+ mG();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_CLUSTERING"
+
+ // $ANTLR start "K_ASCII"
+ public final void mK_ASCII() throws RecognitionException {
+ try {
+ int _type = K_ASCII;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1730:8: ( A S C I I )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1730:16: A S C I I
+ {
+ mA();
+
+ mS();
+
+ mC();
+
+ mI();
+
+ mI();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_ASCII"
+
+ // $ANTLR start "K_BIGINT"
+ public final void mK_BIGINT() throws RecognitionException {
+ try {
+ int _type = K_BIGINT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1731:9: ( B I G I N T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1731:16: B I G I N T
+ {
+ mB();
+
+ mI();
+
+ mG();
+
+ mI();
+
+ mN();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_BIGINT"
+
+ // $ANTLR start "K_BLOB"
+ public final void mK_BLOB() throws RecognitionException {
+ try {
+ int _type = K_BLOB;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1732:7: ( B L O B )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1732:16: B L O B
+ {
+ mB();
+
+ mL();
+
+ mO();
+
+ mB();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_BLOB"
+
+ // $ANTLR start "K_BOOLEAN"
+ public final void mK_BOOLEAN() throws RecognitionException {
+ try {
+ int _type = K_BOOLEAN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1733:10: ( B O O L E A N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1733:16: B O O L E A N
+ {
+ mB();
+
+ mO();
+
+ mO();
+
+ mL();
+
+ mE();
+
+ mA();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_BOOLEAN"
+
+ // $ANTLR start "K_COUNTER"
+ public final void mK_COUNTER() throws RecognitionException {
+ try {
+ int _type = K_COUNTER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1734:10: ( C O U N T E R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1734:16: C O U N T E R
+ {
+ mC();
+
+ mO();
+
+ mU();
+
+ mN();
+
+ mT();
+
+ mE();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_COUNTER"
+
+ // $ANTLR start "K_DECIMAL"
+ public final void mK_DECIMAL() throws RecognitionException {
+ try {
+ int _type = K_DECIMAL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1735:10: ( D E C I M A L )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1735:16: D E C I M A L
+ {
+ mD();
+
+ mE();
+
+ mC();
+
+ mI();
+
+ mM();
+
+ mA();
+
+ mL();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_DECIMAL"
+
+ // $ANTLR start "K_DOUBLE"
+ public final void mK_DOUBLE() throws RecognitionException {
+ try {
+ int _type = K_DOUBLE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1736:9: ( D O U B L E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1736:16: D O U B L E
+ {
+ mD();
+
+ mO();
+
+ mU();
+
+ mB();
+
+ mL();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_DOUBLE"
+
+ // $ANTLR start "K_FLOAT"
+ public final void mK_FLOAT() throws RecognitionException {
+ try {
+ int _type = K_FLOAT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1737:8: ( F L O A T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1737:16: F L O A T
+ {
+ mF();
+
+ mL();
+
+ mO();
+
+ mA();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_FLOAT"
+
+ // $ANTLR start "K_INET"
+ public final void mK_INET() throws RecognitionException {
+ try {
+ int _type = K_INET;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1738:7: ( I N E T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1738:16: I N E T
+ {
+ mI();
+
+ mN();
+
+ mE();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_INET"
+
+ // $ANTLR start "K_INT"
+ public final void mK_INT() throws RecognitionException {
+ try {
+ int _type = K_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1739:6: ( I N T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1739:16: I N T
+ {
+ mI();
+
+ mN();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_INT"
+
+ // $ANTLR start "K_SMALLINT"
+ public final void mK_SMALLINT() throws RecognitionException {
+ try {
+ int _type = K_SMALLINT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1740:11: ( S M A L L I N T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1740:16: S M A L L I N T
+ {
+ mS();
+
+ mM();
+
+ mA();
+
+ mL();
+
+ mL();
+
+ mI();
+
+ mN();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_SMALLINT"
+
+ // $ANTLR start "K_TINYINT"
+ public final void mK_TINYINT() throws RecognitionException {
+ try {
+ int _type = K_TINYINT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1741:10: ( T I N Y I N T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1741:16: T I N Y I N T
+ {
+ mT();
+
+ mI();
+
+ mN();
+
+ mY();
+
+ mI();
+
+ mN();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TINYINT"
+
+ // $ANTLR start "K_TEXT"
+ public final void mK_TEXT() throws RecognitionException {
+ try {
+ int _type = K_TEXT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1742:7: ( T E X T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1742:16: T E X T
+ {
+ mT();
+
+ mE();
+
+ mX();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TEXT"
+
+ // $ANTLR start "K_UUID"
+ public final void mK_UUID() throws RecognitionException {
+ try {
+ int _type = K_UUID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1743:7: ( U U I D )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1743:16: U U I D
+ {
+ mU();
+
+ mU();
+
+ mI();
+
+ mD();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_UUID"
+
+ // $ANTLR start "K_VARCHAR"
+ public final void mK_VARCHAR() throws RecognitionException {
+ try {
+ int _type = K_VARCHAR;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1744:10: ( V A R C H A R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1744:16: V A R C H A R
+ {
+ mV();
+
+ mA();
+
+ mR();
+
+ mC();
+
+ mH();
+
+ mA();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_VARCHAR"
+
+ // $ANTLR start "K_VARINT"
+ public final void mK_VARINT() throws RecognitionException {
+ try {
+ int _type = K_VARINT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1745:9: ( V A R I N T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1745:16: V A R I N T
+ {
+ mV();
+
+ mA();
+
+ mR();
+
+ mI();
+
+ mN();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_VARINT"
+
+ // $ANTLR start "K_TIMEUUID"
+ public final void mK_TIMEUUID() throws RecognitionException {
+ try {
+ int _type = K_TIMEUUID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1746:11: ( T I M E U U I D )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1746:16: T I M E U U I D
+ {
+ mT();
+
+ mI();
+
+ mM();
+
+ mE();
+
+ mU();
+
+ mU();
+
+ mI();
+
+ mD();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TIMEUUID"
+
+ // $ANTLR start "K_TOKEN"
+ public final void mK_TOKEN() throws RecognitionException {
+ try {
+ int _type = K_TOKEN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1747:8: ( T O K E N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1747:16: T O K E N
+ {
+ mT();
+
+ mO();
+
+ mK();
+
+ mE();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TOKEN"
+
+ // $ANTLR start "K_WRITETIME"
+ public final void mK_WRITETIME() throws RecognitionException {
+ try {
+ int _type = K_WRITETIME;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1748:12: ( W R I T E T I M E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1748:16: W R I T E T I M E
+ {
+ mW();
+
+ mR();
+
+ mI();
+
+ mT();
+
+ mE();
+
+ mT();
+
+ mI();
+
+ mM();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_WRITETIME"
+
+ // $ANTLR start "K_DATE"
+ public final void mK_DATE() throws RecognitionException {
+ try {
+ int _type = K_DATE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1749:7: ( D A T E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1749:16: D A T E
+ {
+ mD();
+
+ mA();
+
+ mT();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_DATE"
+
+ // $ANTLR start "K_TIME"
+ public final void mK_TIME() throws RecognitionException {
+ try {
+ int _type = K_TIME;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1750:7: ( T I M E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1750:16: T I M E
+ {
+ mT();
+
+ mI();
+
+ mM();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TIME"
+
+ // $ANTLR start "K_NULL"
+ public final void mK_NULL() throws RecognitionException {
+ try {
+ int _type = K_NULL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1752:7: ( N U L L )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1752:16: N U L L
+ {
+ mN();
+
+ mU();
+
+ mL();
+
+ mL();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_NULL"
+
+ // $ANTLR start "K_NOT"
+ public final void mK_NOT() throws RecognitionException {
+ try {
+ int _type = K_NOT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1753:6: ( N O T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1753:16: N O T
+ {
+ mN();
+
+ mO();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_NOT"
+
+ // $ANTLR start "K_EXISTS"
+ public final void mK_EXISTS() throws RecognitionException {
+ try {
+ int _type = K_EXISTS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1754:9: ( E X I S T S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1754:16: E X I S T S
+ {
+ mE();
+
+ mX();
+
+ mI();
+
+ mS();
+
+ mT();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_EXISTS"
+
+ // $ANTLR start "K_MAP"
+ public final void mK_MAP() throws RecognitionException {
+ try {
+ int _type = K_MAP;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1756:6: ( M A P )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1756:16: M A P
+ {
+ mM();
+
+ mA();
+
+ mP();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_MAP"
+
+ // $ANTLR start "K_LIST"
+ public final void mK_LIST() throws RecognitionException {
+ try {
+ int _type = K_LIST;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1757:7: ( L I S T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1757:16: L I S T
+ {
+ mL();
+
+ mI();
+
+ mS();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_LIST"
+
+ // $ANTLR start "K_NAN"
+ public final void mK_NAN() throws RecognitionException {
+ try {
+ int _type = K_NAN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1758:6: ( N A N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1758:16: N A N
+ {
+ mN();
+
+ mA();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_NAN"
+
+ // $ANTLR start "K_INFINITY"
+ public final void mK_INFINITY() throws RecognitionException {
+ try {
+ int _type = K_INFINITY;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1759:11: ( I N F I N I T Y )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1759:16: I N F I N I T Y
+ {
+ mI();
+
+ mN();
+
+ mF();
+
+ mI();
+
+ mN();
+
+ mI();
+
+ mT();
+
+ mY();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_INFINITY"
+
+ // $ANTLR start "K_TUPLE"
+ public final void mK_TUPLE() throws RecognitionException {
+ try {
+ int _type = K_TUPLE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1760:8: ( T U P L E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1760:16: T U P L E
+ {
+ mT();
+
+ mU();
+
+ mP();
+
+ mL();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TUPLE"
+
+ // $ANTLR start "K_TRIGGER"
+ public final void mK_TRIGGER() throws RecognitionException {
+ try {
+ int _type = K_TRIGGER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1762:10: ( T R I G G E R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1762:16: T R I G G E R
+ {
+ mT();
+
+ mR();
+
+ mI();
+
+ mG();
+
+ mG();
+
+ mE();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_TRIGGER"
+
+ // $ANTLR start "K_STATIC"
+ public final void mK_STATIC() throws RecognitionException {
+ try {
+ int _type = K_STATIC;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1763:9: ( S T A T I C )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1763:16: S T A T I C
+ {
+ mS();
+
+ mT();
+
+ mA();
+
+ mT();
+
+ mI();
+
+ mC();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_STATIC"
+
+ // $ANTLR start "K_FROZEN"
+ public final void mK_FROZEN() throws RecognitionException {
+ try {
+ int _type = K_FROZEN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1764:9: ( F R O Z E N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1764:16: F R O Z E N
+ {
+ mF();
+
+ mR();
+
+ mO();
+
+ mZ();
+
+ mE();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_FROZEN"
+
+ // $ANTLR start "K_FUNCTION"
+ public final void mK_FUNCTION() throws RecognitionException {
+ try {
+ int _type = K_FUNCTION;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1766:11: ( F U N C T I O N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1766:16: F U N C T I O N
+ {
+ mF();
+
+ mU();
+
+ mN();
+
+ mC();
+
+ mT();
+
+ mI();
+
+ mO();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_FUNCTION"
+
+ // $ANTLR start "K_FUNCTIONS"
+ public final void mK_FUNCTIONS() throws RecognitionException {
+ try {
+ int _type = K_FUNCTIONS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1767:12: ( F U N C T I O N S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1767:16: F U N C T I O N S
+ {
+ mF();
+
+ mU();
+
+ mN();
+
+ mC();
+
+ mT();
+
+ mI();
+
+ mO();
+
+ mN();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_FUNCTIONS"
+
+ // $ANTLR start "K_AGGREGATE"
+ public final void mK_AGGREGATE() throws RecognitionException {
+ try {
+ int _type = K_AGGREGATE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1768:12: ( A G G R E G A T E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1768:16: A G G R E G A T E
+ {
+ mA();
+
+ mG();
+
+ mG();
+
+ mR();
+
+ mE();
+
+ mG();
+
+ mA();
+
+ mT();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_AGGREGATE"
+
+ // $ANTLR start "K_SFUNC"
+ public final void mK_SFUNC() throws RecognitionException {
+ try {
+ int _type = K_SFUNC;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1769:8: ( S F U N C )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1769:16: S F U N C
+ {
+ mS();
+
+ mF();
+
+ mU();
+
+ mN();
+
+ mC();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_SFUNC"
+
+ // $ANTLR start "K_STYPE"
+ public final void mK_STYPE() throws RecognitionException {
+ try {
+ int _type = K_STYPE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1770:8: ( S T Y P E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1770:16: S T Y P E
+ {
+ mS();
+
+ mT();
+
+ mY();
+
+ mP();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_STYPE"
+
+ // $ANTLR start "K_FINALFUNC"
+ public final void mK_FINALFUNC() throws RecognitionException {
+ try {
+ int _type = K_FINALFUNC;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1771:12: ( F I N A L F U N C )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1771:16: F I N A L F U N C
+ {
+ mF();
+
+ mI();
+
+ mN();
+
+ mA();
+
+ mL();
+
+ mF();
+
+ mU();
+
+ mN();
+
+ mC();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_FINALFUNC"
+
+ // $ANTLR start "K_INITCOND"
+ public final void mK_INITCOND() throws RecognitionException {
+ try {
+ int _type = K_INITCOND;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1772:11: ( I N I T C O N D )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1772:16: I N I T C O N D
+ {
+ mI();
+
+ mN();
+
+ mI();
+
+ mT();
+
+ mC();
+
+ mO();
+
+ mN();
+
+ mD();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_INITCOND"
+
+ // $ANTLR start "K_RETURNS"
+ public final void mK_RETURNS() throws RecognitionException {
+ try {
+ int _type = K_RETURNS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1773:10: ( R E T U R N S )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1773:16: R E T U R N S
+ {
+ mR();
+
+ mE();
+
+ mT();
+
+ mU();
+
+ mR();
+
+ mN();
+
+ mS();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_RETURNS"
+
+ // $ANTLR start "K_CALLED"
+ public final void mK_CALLED() throws RecognitionException {
+ try {
+ int _type = K_CALLED;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1774:9: ( C A L L E D )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1774:16: C A L L E D
+ {
+ mC();
+
+ mA();
+
+ mL();
+
+ mL();
+
+ mE();
+
+ mD();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_CALLED"
+
+ // $ANTLR start "K_INPUT"
+ public final void mK_INPUT() throws RecognitionException {
+ try {
+ int _type = K_INPUT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1775:8: ( I N P U T )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1775:16: I N P U T
+ {
+ mI();
+
+ mN();
+
+ mP();
+
+ mU();
+
+ mT();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_INPUT"
+
+ // $ANTLR start "K_LANGUAGE"
+ public final void mK_LANGUAGE() throws RecognitionException {
+ try {
+ int _type = K_LANGUAGE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1776:11: ( L A N G U A G E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1776:16: L A N G U A G E
+ {
+ mL();
+
+ mA();
+
+ mN();
+
+ mG();
+
+ mU();
+
+ mA();
+
+ mG();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_LANGUAGE"
+
+ // $ANTLR start "K_OR"
+ public final void mK_OR() throws RecognitionException {
+ try {
+ int _type = K_OR;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1777:5: ( O R )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1777:16: O R
+ {
+ mO();
+
+ mR();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_OR"
+
+ // $ANTLR start "K_REPLACE"
+ public final void mK_REPLACE() throws RecognitionException {
+ try {
+ int _type = K_REPLACE;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1778:10: ( R E P L A C E )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1778:16: R E P L A C E
+ {
+ mR();
+
+ mE();
+
+ mP();
+
+ mL();
+
+ mA();
+
+ mC();
+
+ mE();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_REPLACE"
+
+ // $ANTLR start "K_JSON"
+ public final void mK_JSON() throws RecognitionException {
+ try {
+ int _type = K_JSON;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1780:7: ( J S O N )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1780:16: J S O N
+ {
+ mJ();
+
+ mS();
+
+ mO();
+
+ mN();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K_JSON"
+
+ // $ANTLR start "A"
+ public final void mA() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1783:11: ( ( 'a' | 'A' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='A'||input.LA(1)=='a' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "A"
+
+ // $ANTLR start "B"
+ public final void mB() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1784:11: ( ( 'b' | 'B' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "B"
+
+ // $ANTLR start "C"
+ public final void mC() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1785:11: ( ( 'c' | 'C' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='C'||input.LA(1)=='c' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "C"
+
+ // $ANTLR start "D"
+ public final void mD() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1786:11: ( ( 'd' | 'D' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='D'||input.LA(1)=='d' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "D"
+
+ // $ANTLR start "E"
+ public final void mE() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1787:11: ( ( 'e' | 'E' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "E"
+
+ // $ANTLR start "F"
+ public final void mF() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1788:11: ( ( 'f' | 'F' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='F'||input.LA(1)=='f' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "F"
+
+ // $ANTLR start "G"
+ public final void mG() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1789:11: ( ( 'g' | 'G' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='G'||input.LA(1)=='g' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "G"
+
+ // $ANTLR start "H"
+ public final void mH() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1790:11: ( ( 'h' | 'H' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='H'||input.LA(1)=='h' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "H"
+
+ // $ANTLR start "I"
+ public final void mI() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1791:11: ( ( 'i' | 'I' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "I"
+
+ // $ANTLR start "J"
+ public final void mJ() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1792:11: ( ( 'j' | 'J' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='J'||input.LA(1)=='j' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "J"
+
+ // $ANTLR start "K"
+ public final void mK() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1793:11: ( ( 'k' | 'K' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='K'||input.LA(1)=='k' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "K"
+
+ // $ANTLR start "L"
+ public final void mL() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1794:11: ( ( 'l' | 'L' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "L"
+
+ // $ANTLR start "M"
+ public final void mM() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1795:11: ( ( 'm' | 'M' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='M'||input.LA(1)=='m' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "M"
+
+ // $ANTLR start "N"
+ public final void mN() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1796:11: ( ( 'n' | 'N' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='N'||input.LA(1)=='n' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "N"
+
+ // $ANTLR start "O"
+ public final void mO() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1797:11: ( ( 'o' | 'O' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='O'||input.LA(1)=='o' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "O"
+
+ // $ANTLR start "P"
+ public final void mP() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1798:11: ( ( 'p' | 'P' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='P'||input.LA(1)=='p' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "P"
+
+ // $ANTLR start "Q"
+ public final void mQ() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1799:11: ( ( 'q' | 'Q' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='Q'||input.LA(1)=='q' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "Q"
+
+ // $ANTLR start "R"
+ public final void mR() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1800:11: ( ( 'r' | 'R' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='R'||input.LA(1)=='r' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "R"
+
+ // $ANTLR start "S"
+ public final void mS() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1801:11: ( ( 's' | 'S' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='S'||input.LA(1)=='s' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "S"
+
+ // $ANTLR start "T"
+ public final void mT() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1802:11: ( ( 't' | 'T' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='T'||input.LA(1)=='t' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "T"
+
+ // $ANTLR start "U"
+ public final void mU() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1803:11: ( ( 'u' | 'U' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='U'||input.LA(1)=='u' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "U"
+
+ // $ANTLR start "V"
+ public final void mV() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1804:11: ( ( 'v' | 'V' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='V'||input.LA(1)=='v' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "V"
+
+ // $ANTLR start "W"
+ public final void mW() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1805:11: ( ( 'w' | 'W' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='W'||input.LA(1)=='w' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "W"
+
+ // $ANTLR start "X"
+ public final void mX() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1806:11: ( ( 'x' | 'X' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "X"
+
+ // $ANTLR start "Y"
+ public final void mY() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1807:11: ( ( 'y' | 'Y' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='Y'||input.LA(1)=='y' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "Y"
+
+ // $ANTLR start "Z"
+ public final void mZ() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1808:11: ( ( 'z' | 'Z' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='Z'||input.LA(1)=='z' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "Z"
+
+ // $ANTLR start "STRING_LITERAL"
+ public final void mSTRING_LITERAL() throws RecognitionException {
+ try {
+ int _type = STRING_LITERAL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ int c;
+
+
+ StringBuilder txt = new StringBuilder(); // temporary to build pg-style-string
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1815:5: ( ( '\\$' '\\$' ({...}? =>c= . )* '\\$' '\\$' ) | ( '\\'' (c=~ ( '\\'' ) | '\\'' '\\'' )* '\\'' ) )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+ if ( (LA5_0=='$') ) {
+ alt5=1;
+ }
+ else if ( (LA5_0=='\'') ) {
+ alt5=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+ throw nvae;
+ }
+
+ switch (alt5) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1817:7: ( '\\$' '\\$' ({...}? =>c= . )* '\\$' '\\$' )
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1817:7: ( '\\$' '\\$' ({...}? =>c= . )* '\\$' '\\$' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1818:9: '\\$' '\\$' ({...}? =>c= . )* '\\$' '\\$'
+ {
+ match('$');
+ match('$');
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1819:9: ({...}? =>c= . )*
+ loop3:
+ while (true) {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+ if ( (LA3_0=='$') ) {
+ int LA3_1 = input.LA(2);
+ if ( (LA3_1=='$') ) {
+ int LA3_3 = input.LA(3);
+ if ( ((LA3_3 >= '\u0000' && LA3_3 <= '\uFFFF')) && (( (input.size() - input.index() > 1)
+ && !"$$".equals(input.substring(input.index(), input.index() + 1)) ))) {
+ alt3=1;
+ }
+
+ }
+ else if ( ((LA3_1 >= '\u0000' && LA3_1 <= '#')||(LA3_1 >= '%' && LA3_1 <= '\uFFFF')) && (( (input.size() - input.index() > 1)
+ && !"$$".equals(input.substring(input.index(), input.index() + 1)) ))) {
+ alt3=1;
+ }
+
+ }
+ else if ( ((LA3_0 >= '\u0000' && LA3_0 <= '#')||(LA3_0 >= '%' && LA3_0 <= '\uFFFF')) && (( (input.size() - input.index() > 1)
+ && !"$$".equals(input.substring(input.index(), input.index() + 1)) ))) {
+ alt3=1;
+ }
+
+ switch (alt3) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1820:11: {...}? =>c= .
+ {
+ if ( !(( (input.size() - input.index() > 1)
+ && !"$$".equals(input.substring(input.index(), input.index() + 1)) )) ) {
+ throw new FailedPredicateException(input, "STRING_LITERAL", " (input.size() - input.index() > 1)\n && !\"$$\".equals(input.substring(input.index(), input.index() + 1)) ");
+ }
+ c = input.LA(1);
+ matchAny();
+ txt.appendCodePoint(c);
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ }
+
+ match('$');
+ match('$');
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1828:7: ( '\\'' (c=~ ( '\\'' ) | '\\'' '\\'' )* '\\'' )
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1828:7: ( '\\'' (c=~ ( '\\'' ) | '\\'' '\\'' )* '\\'' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1829:9: '\\'' (c=~ ( '\\'' ) | '\\'' '\\'' )* '\\''
+ {
+ match('\'');
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1829:14: (c=~ ( '\\'' ) | '\\'' '\\'' )*
+ loop4:
+ while (true) {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+ if ( (LA4_0=='\'') ) {
+ int LA4_1 = input.LA(2);
+ if ( (LA4_1=='\'') ) {
+ alt4=2;
+ }
+
+ }
+ else if ( ((LA4_0 >= '\u0000' && LA4_0 <= '&')||(LA4_0 >= '(' && LA4_0 <= '\uFFFF')) ) {
+ alt4=1;
+ }
+
+ switch (alt4) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1829:15: c=~ ( '\\'' )
+ {
+ c= input.LA(1);
+ if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&')||(input.LA(1) >= '(' && input.LA(1) <= '\uFFFF') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ txt.appendCodePoint(c);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1829:54: '\\'' '\\''
+ {
+ match('\'');
+ match('\'');
+ txt.appendCodePoint('\'');
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ }
+
+ match('\'');
+ }
+
+ }
+ break;
+
+ }
+ state.type = _type;
+ state.channel = _channel;
+ setText(txt.toString());
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "STRING_LITERAL"
+
+ // $ANTLR start "QUOTED_NAME"
+ public final void mQUOTED_NAME() throws RecognitionException {
+ try {
+ int _type = QUOTED_NAME;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ int c;
+
+ StringBuilder b = new StringBuilder();
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1836:5: ( '\\\"' (c=~ ( '\\\"' ) | '\\\"' '\\\"' )+ '\\\"' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1836:7: '\\\"' (c=~ ( '\\\"' ) | '\\\"' '\\\"' )+ '\\\"'
+ {
+ match('\"');
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1836:12: (c=~ ( '\\\"' ) | '\\\"' '\\\"' )+
+ int cnt6=0;
+ loop6:
+ while (true) {
+ int alt6=3;
+ int LA6_0 = input.LA(1);
+ if ( (LA6_0=='\"') ) {
+ int LA6_1 = input.LA(2);
+ if ( (LA6_1=='\"') ) {
+ alt6=2;
+ }
+
+ }
+ else if ( ((LA6_0 >= '\u0000' && LA6_0 <= '!')||(LA6_0 >= '#' && LA6_0 <= '\uFFFF')) ) {
+ alt6=1;
+ }
+
+ switch (alt6) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1836:13: c=~ ( '\\\"' )
+ {
+ c= input.LA(1);
+ if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '!')||(input.LA(1) >= '#' && input.LA(1) <= '\uFFFF') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ b.appendCodePoint(c);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1836:51: '\\\"' '\\\"'
+ {
+ match('\"');
+ match('\"');
+ b.appendCodePoint('\"');
+ }
+ break;
+
+ default :
+ if ( cnt6 >= 1 ) break loop6;
+ EarlyExitException eee = new EarlyExitException(6, input);
+ throw eee;
+ }
+ cnt6++;
+ }
+
+ match('\"');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ setText(b.toString());
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "QUOTED_NAME"
+
+ // $ANTLR start "DIGIT"
+ public final void mDIGIT() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1840:5: ( '0' .. '9' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "DIGIT"
+
+ // $ANTLR start "LETTER"
+ public final void mLETTER() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1844:5: ( ( 'A' .. 'Z' | 'a' .. 'z' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "LETTER"
+
+ // $ANTLR start "HEX"
+ public final void mHEX() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1848:5: ( ( 'A' .. 'F' | 'a' .. 'f' | '0' .. '9' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "HEX"
+
+ // $ANTLR start "EXPONENT"
+ public final void mEXPONENT() throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1852:5: ( E ( '+' | '-' )? ( DIGIT )+ )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1852:7: E ( '+' | '-' )? ( DIGIT )+
+ {
+ mE();
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1852:9: ( '+' | '-' )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+ if ( (LA7_0=='+'||LA7_0=='-') ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1852:22: ( DIGIT )+
+ int cnt8=0;
+ loop8:
+ while (true) {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+ if ( ((LA8_0 >= '0' && LA8_0 <= '9')) ) {
+ alt8=1;
+ }
+
+ switch (alt8) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+ break;
+
+ default :
+ if ( cnt8 >= 1 ) break loop8;
+ EarlyExitException eee = new EarlyExitException(8, input);
+ throw eee;
+ }
+ cnt8++;
+ }
+
+ }
+
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "EXPONENT"
+
+ // $ANTLR start "INTEGER"
+ public final void mINTEGER() throws RecognitionException {
+ try {
+ int _type = INTEGER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1856:5: ( ( '-' )? ( DIGIT )+ )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1856:7: ( '-' )? ( DIGIT )+
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1856:7: ( '-' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+ if ( (LA9_0=='-') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1856:7: '-'
+ {
+ match('-');
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1856:12: ( DIGIT )+
+ int cnt10=0;
+ loop10:
+ while (true) {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+ if ( ((LA10_0 >= '0' && LA10_0 <= '9')) ) {
+ alt10=1;
+ }
+
+ switch (alt10) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+ break;
+
+ default :
+ if ( cnt10 >= 1 ) break loop10;
+ EarlyExitException eee = new EarlyExitException(10, input);
+ throw eee;
+ }
+ cnt10++;
+ }
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "INTEGER"
+
+ // $ANTLR start "QMARK"
+ public final void mQMARK() throws RecognitionException {
+ try {
+ int _type = QMARK;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1860:5: ( '?' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1860:7: '?'
+ {
+ match('?');
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "QMARK"
+
+ // $ANTLR start "FLOAT"
+ public final void mFLOAT() throws RecognitionException {
+ try {
+ int _type = FLOAT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1868:5: ( INTEGER EXPONENT | INTEGER '.' ( DIGIT )* ( EXPONENT )? )
+ int alt13=2;
+ alt13 = dfa13.predict(input);
+ switch (alt13) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1868:7: INTEGER EXPONENT
+ {
+ mINTEGER();
+
+ mEXPONENT();
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1869:7: INTEGER '.' ( DIGIT )* ( EXPONENT )?
+ {
+ mINTEGER();
+
+ match('.');
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1869:19: ( DIGIT )*
+ loop11:
+ while (true) {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+ if ( ((LA11_0 >= '0' && LA11_0 <= '9')) ) {
+ alt11=1;
+ }
+
+ switch (alt11) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1869:26: ( EXPONENT )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+ if ( (LA12_0=='E'||LA12_0=='e') ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1869:26: EXPONENT
+ {
+ mEXPONENT();
+
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ }
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "FLOAT"
+
+ // $ANTLR start "BOOLEAN"
+ public final void mBOOLEAN() throws RecognitionException {
+ try {
+ int _type = BOOLEAN;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1876:5: ( T R U E | F A L S E )
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+ if ( (LA14_0=='T'||LA14_0=='t') ) {
+ alt14=1;
+ }
+ else if ( (LA14_0=='F'||LA14_0=='f') ) {
+ alt14=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 14, 0, input);
+ throw nvae;
+ }
+
+ switch (alt14) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1876:7: T R U E
+ {
+ mT();
+
+ mR();
+
+ mU();
+
+ mE();
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1876:17: F A L S E
+ {
+ mF();
+
+ mA();
+
+ mL();
+
+ mS();
+
+ mE();
+
+ }
+ break;
+
+ }
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "BOOLEAN"
+
+ // $ANTLR start "IDENT"
+ public final void mIDENT() throws RecognitionException {
+ try {
+ int _type = IDENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1880:5: ( LETTER ( LETTER | DIGIT | '_' )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1880:7: LETTER ( LETTER | DIGIT | '_' )*
+ {
+ mLETTER();
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1880:14: ( LETTER | DIGIT | '_' )*
+ loop15:
+ while (true) {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+ if ( ((LA15_0 >= '0' && LA15_0 <= '9')||(LA15_0 >= 'A' && LA15_0 <= 'Z')||LA15_0=='_'||(LA15_0 >= 'a' && LA15_0 <= 'z')) ) {
+ alt15=1;
+ }
+
+ switch (alt15) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ }
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "IDENT"
+
+ // $ANTLR start "HEXNUMBER"
+ public final void mHEXNUMBER() throws RecognitionException {
+ try {
+ int _type = HEXNUMBER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1884:5: ( '0' X ( HEX )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1884:7: '0' X ( HEX )*
+ {
+ match('0');
+ mX();
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1884:13: ( HEX )*
+ loop16:
+ while (true) {
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+ if ( ((LA16_0 >= '0' && LA16_0 <= '9')||(LA16_0 >= 'A' && LA16_0 <= 'F')||(LA16_0 >= 'a' && LA16_0 <= 'f')) ) {
+ alt16=1;
+ }
+
+ switch (alt16) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+ break;
+
+ default :
+ break loop16;
+ }
+ }
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "HEXNUMBER"
+
+ // $ANTLR start "UUID"
+ public final void mUUID() throws RecognitionException {
+ try {
+ int _type = UUID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1888:5: ( 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 )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1888:7: 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
+ {
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ match('-');
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ match('-');
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ match('-');
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ match('-');
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ mHEX();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "UUID"
+
+ // $ANTLR start "WS"
+ public final void mWS() throws RecognitionException {
+ try {
+ int _type = WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1896:5: ( ( ' ' | '\\t' | '\\n' | '\\r' )+ )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1896:7: ( ' ' | '\\t' | '\\n' | '\\r' )+
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1896:7: ( ' ' | '\\t' | '\\n' | '\\r' )+
+ int cnt17=0;
+ loop17:
+ while (true) {
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+ if ( ((LA17_0 >= '\t' && LA17_0 <= '\n')||LA17_0=='\r'||LA17_0==' ') ) {
+ alt17=1;
+ }
+
+ switch (alt17) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:
+ {
+ if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ }
+ break;
+
+ default :
+ if ( cnt17 >= 1 ) break loop17;
+ EarlyExitException eee = new EarlyExitException(17, input);
+ throw eee;
+ }
+ cnt17++;
+ }
+
+ _channel = HIDDEN;
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "WS"
+
+ // $ANTLR start "COMMENT"
+ public final void mCOMMENT() throws RecognitionException {
+ try {
+ int _type = COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1900:5: ( ( '--' | '//' ) ( . )* ( '\\n' | '\\r' ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1900:7: ( '--' | '//' ) ( . )* ( '\\n' | '\\r' )
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1900:7: ( '--' | '//' )
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+ if ( (LA18_0=='-') ) {
+ alt18=1;
+ }
+ else if ( (LA18_0=='/') ) {
+ alt18=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 18, 0, input);
+ throw nvae;
+ }
+
+ switch (alt18) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1900:8: '--'
+ {
+ match("--");
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1900:15: '//'
+ {
+ match("//");
+
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1900:21: ( . )*
+ loop19:
+ while (true) {
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+ if ( (LA19_0=='\n'||LA19_0=='\r') ) {
+ alt19=2;
+ }
+ else if ( ((LA19_0 >= '\u0000' && LA19_0 <= '\t')||(LA19_0 >= '\u000B' && LA19_0 <= '\f')||(LA19_0 >= '\u000E' && LA19_0 <= '\uFFFF')) ) {
+ alt19=1;
+ }
+
+ switch (alt19) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1900:21: .
+ {
+ matchAny();
+ }
+ break;
+
+ default :
+ break loop19;
+ }
+ }
+
+ if ( input.LA(1)=='\n'||input.LA(1)=='\r' ) {
+ input.consume();
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;
+ }
+ _channel = HIDDEN;
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "COMMENT"
+
+ // $ANTLR start "MULTILINE_COMMENT"
+ public final void mMULTILINE_COMMENT() throws RecognitionException {
+ try {
+ int _type = MULTILINE_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1904:5: ( '/*' ( . )* '*/' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1904:7: '/*' ( . )* '*/'
+ {
+ match("/*");
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1904:12: ( . )*
+ loop20:
+ while (true) {
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+ if ( (LA20_0=='*') ) {
+ int LA20_1 = input.LA(2);
+ if ( (LA20_1=='/') ) {
+ alt20=2;
+ }
+ else if ( ((LA20_1 >= '\u0000' && LA20_1 <= '.')||(LA20_1 >= '0' && LA20_1 <= '\uFFFF')) ) {
+ alt20=1;
+ }
+
+ }
+ else if ( ((LA20_0 >= '\u0000' && LA20_0 <= ')')||(LA20_0 >= '+' && LA20_0 <= '\uFFFF')) ) {
+ alt20=1;
+ }
+
+ switch (alt20) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1904:12: .
+ {
+ matchAny();
+ }
+ break;
+
+ default :
+ break loop20;
+ }
+ }
+
+ match("*/");
+
+ _channel = HIDDEN;
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "MULTILINE_COMMENT"
+
+ @Override
+ public void mTokens() throws RecognitionException {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:8: ( T__173 | T__174 | T__175 | T__176 | T__177 | T__178 | T__179 | T__180 | T__181 | T__182 | T__183 | T__184 | T__185 | T__186 | T__187 | T__188 | T__189 | T__190 | T__191 | T__192 | K_SELECT | K_FROM | K_AS | K_WHERE | K_AND | K_KEY | K_KEYS | K_ENTRIES | K_FULL | K_INSERT | K_UPDATE | K_WITH | K_LIMIT | K_LIKE | K_PER | K_PARTITION | K_USING | K_USE | K_DISTINCT | K_COUNT | K_SET | K_BEGIN | K_UNLOGGED | K_BATCH | K_APPLY | K_TRUNCATE | K_DELETE | K_IN | K_CREATE | K_KEYSPACE | K_KEYSPACES | K_COLUMNFAMILY | K_MATERIALIZED | K_VIEW | K_INDEX | K_CUSTOM | K_ON | K_TO | K_DROP | K_PRIMARY | K_INTO | K_VALUES | K_TIMESTAMP | K_TTL | K_ALTER | K_RENAME | K_ADD | K_TYPE | K_COMPACT | K_STORAGE | K_ORDER | K_BY | K_ASC | K_DESC | K_ALLOW | K_FILTERING | K_IF | K_IS | K_CONTAINS | K_GRANT | K_ALL | K_PERMISSION | K_PERMISSIONS | K_OF | K_REVOKE | K_MODIFY | K_AUTHORIZE | K_DESCRIBE | K_EXECUTE | K_NORECURSIVE | K_USER | K_USERS | K_ROLE | K_ROLES | K_SUPERUSER | K_NOSUPERUSER | K_PASSWORD | K_LOGIN | K_NOLOGIN | K_OPTIONS | K_CLUSTERING | K_ASCII | K_BIGINT | K_BLOB | K_BOOLEAN | K_COUNTER | K_DECIMAL | K_DOUBLE | K_FLOAT | K_INET | K_INT | K_SMALLINT | K_TINYINT | K_TEXT | K_UUID | K_VARCHAR | K_VARINT | K_TIMEUUID | K_TOKEN | K_WRITETIME | K_DATE | K_TIME | K_NULL | K_NOT | K_EXISTS | K_MAP | K_LIST | K_NAN | K_INFINITY | K_TUPLE | K_TRIGGER | K_STATIC | K_FROZEN | K_FUNCTION | K_FUNCTIONS | K_AGGREGATE | K_SFUNC | K_STYPE | K_FINALFUNC | K_INITCOND | K_RETURNS | K_CALLED | K_INPUT | K_LANGUAGE | K_OR | K_REPLACE | K_JSON | STRING_LITERAL | QUOTED_NAME | INTEGER | QMARK | FLOAT | BOOLEAN | IDENT | HEXNUMBER | UUID | WS | COMMENT | MULTILINE_COMMENT )
+ int alt21=159;
+ alt21 = dfa21.predict(input);
+ switch (alt21) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:10: T__173
+ {
+ mT__173();
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:17: T__174
+ {
+ mT__174();
+
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:24: T__175
+ {
+ mT__175();
+
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:31: T__176
+ {
+ mT__176();
+
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:38: T__177
+ {
+ mT__177();
+
+ }
+ break;
+ case 6 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:45: T__178
+ {
+ mT__178();
+
+ }
+ break;
+ case 7 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:52: T__179
+ {
+ mT__179();
+
+ }
+ break;
+ case 8 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:59: T__180
+ {
+ mT__180();
+
+ }
+ break;
+ case 9 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:66: T__181
+ {
+ mT__181();
+
+ }
+ break;
+ case 10 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:73: T__182
+ {
+ mT__182();
+
+ }
+ break;
+ case 11 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:80: T__183
+ {
+ mT__183();
+
+ }
+ break;
+ case 12 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:87: T__184
+ {
+ mT__184();
+
+ }
+ break;
+ case 13 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:94: T__185
+ {
+ mT__185();
+
+ }
+ break;
+ case 14 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:101: T__186
+ {
+ mT__186();
+
+ }
+ break;
+ case 15 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:108: T__187
+ {
+ mT__187();
+
+ }
+ break;
+ case 16 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:115: T__188
+ {
+ mT__188();
+
+ }
+ break;
+ case 17 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:122: T__189
+ {
+ mT__189();
+
+ }
+ break;
+ case 18 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:129: T__190
+ {
+ mT__190();
+
+ }
+ break;
+ case 19 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:136: T__191
+ {
+ mT__191();
+
+ }
+ break;
+ case 20 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:143: T__192
+ {
+ mT__192();
+
+ }
+ break;
+ case 21 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:150: K_SELECT
+ {
+ mK_SELECT();
+
+ }
+ break;
+ case 22 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:159: K_FROM
+ {
+ mK_FROM();
+
+ }
+ break;
+ case 23 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:166: K_AS
+ {
+ mK_AS();
+
+ }
+ break;
+ case 24 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:171: K_WHERE
+ {
+ mK_WHERE();
+
+ }
+ break;
+ case 25 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:179: K_AND
+ {
+ mK_AND();
+
+ }
+ break;
+ case 26 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:185: K_KEY
+ {
+ mK_KEY();
+
+ }
+ break;
+ case 27 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:191: K_KEYS
+ {
+ mK_KEYS();
+
+ }
+ break;
+ case 28 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:198: K_ENTRIES
+ {
+ mK_ENTRIES();
+
+ }
+ break;
+ case 29 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:208: K_FULL
+ {
+ mK_FULL();
+
+ }
+ break;
+ case 30 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:215: K_INSERT
+ {
+ mK_INSERT();
+
+ }
+ break;
+ case 31 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:224: K_UPDATE
+ {
+ mK_UPDATE();
+
+ }
+ break;
+ case 32 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:233: K_WITH
+ {
+ mK_WITH();
+
+ }
+ break;
+ case 33 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:240: K_LIMIT
+ {
+ mK_LIMIT();
+
+ }
+ break;
+ case 34 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:248: K_LIKE
+ {
+ mK_LIKE();
+
+ }
+ break;
+ case 35 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:255: K_PER
+ {
+ mK_PER();
+
+ }
+ break;
+ case 36 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:261: K_PARTITION
+ {
+ mK_PARTITION();
+
+ }
+ break;
+ case 37 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:273: K_USING
+ {
+ mK_USING();
+
+ }
+ break;
+ case 38 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:281: K_USE
+ {
+ mK_USE();
+
+ }
+ break;
+ case 39 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:287: K_DISTINCT
+ {
+ mK_DISTINCT();
+
+ }
+ break;
+ case 40 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:298: K_COUNT
+ {
+ mK_COUNT();
+
+ }
+ break;
+ case 41 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:306: K_SET
+ {
+ mK_SET();
+
+ }
+ break;
+ case 42 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:312: K_BEGIN
+ {
+ mK_BEGIN();
+
+ }
+ break;
+ case 43 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:320: K_UNLOGGED
+ {
+ mK_UNLOGGED();
+
+ }
+ break;
+ case 44 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:331: K_BATCH
+ {
+ mK_BATCH();
+
+ }
+ break;
+ case 45 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:339: K_APPLY
+ {
+ mK_APPLY();
+
+ }
+ break;
+ case 46 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:347: K_TRUNCATE
+ {
+ mK_TRUNCATE();
+
+ }
+ break;
+ case 47 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:358: K_DELETE
+ {
+ mK_DELETE();
+
+ }
+ break;
+ case 48 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:367: K_IN
+ {
+ mK_IN();
+
+ }
+ break;
+ case 49 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:372: K_CREATE
+ {
+ mK_CREATE();
+
+ }
+ break;
+ case 50 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:381: K_KEYSPACE
+ {
+ mK_KEYSPACE();
+
+ }
+ break;
+ case 51 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:392: K_KEYSPACES
+ {
+ mK_KEYSPACES();
+
+ }
+ break;
+ case 52 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:404: K_COLUMNFAMILY
+ {
+ mK_COLUMNFAMILY();
+
+ }
+ break;
+ case 53 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:419: K_MATERIALIZED
+ {
+ mK_MATERIALIZED();
+
+ }
+ break;
+ case 54 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:434: K_VIEW
+ {
+ mK_VIEW();
+
+ }
+ break;
+ case 55 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:441: K_INDEX
+ {
+ mK_INDEX();
+
+ }
+ break;
+ case 56 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:449: K_CUSTOM
+ {
+ mK_CUSTOM();
+
+ }
+ break;
+ case 57 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:458: K_ON
+ {
+ mK_ON();
+
+ }
+ break;
+ case 58 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:463: K_TO
+ {
+ mK_TO();
+
+ }
+ break;
+ case 59 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:468: K_DROP
+ {
+ mK_DROP();
+
+ }
+ break;
+ case 60 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:475: K_PRIMARY
+ {
+ mK_PRIMARY();
+
+ }
+ break;
+ case 61 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:485: K_INTO
+ {
+ mK_INTO();
+
+ }
+ break;
+ case 62 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:492: K_VALUES
+ {
+ mK_VALUES();
+
+ }
+ break;
+ case 63 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:501: K_TIMESTAMP
+ {
+ mK_TIMESTAMP();
+
+ }
+ break;
+ case 64 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:513: K_TTL
+ {
+ mK_TTL();
+
+ }
+ break;
+ case 65 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:519: K_ALTER
+ {
+ mK_ALTER();
+
+ }
+ break;
+ case 66 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:527: K_RENAME
+ {
+ mK_RENAME();
+
+ }
+ break;
+ case 67 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:536: K_ADD
+ {
+ mK_ADD();
+
+ }
+ break;
+ case 68 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:542: K_TYPE
+ {
+ mK_TYPE();
+
+ }
+ break;
+ case 69 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:549: K_COMPACT
+ {
+ mK_COMPACT();
+
+ }
+ break;
+ case 70 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:559: K_STORAGE
+ {
+ mK_STORAGE();
+
+ }
+ break;
+ case 71 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:569: K_ORDER
+ {
+ mK_ORDER();
+
+ }
+ break;
+ case 72 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:577: K_BY
+ {
+ mK_BY();
+
+ }
+ break;
+ case 73 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:582: K_ASC
+ {
+ mK_ASC();
+
+ }
+ break;
+ case 74 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:588: K_DESC
+ {
+ mK_DESC();
+
+ }
+ break;
+ case 75 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:595: K_ALLOW
+ {
+ mK_ALLOW();
+
+ }
+ break;
+ case 76 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:603: K_FILTERING
+ {
+ mK_FILTERING();
+
+ }
+ break;
+ case 77 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:615: K_IF
+ {
+ mK_IF();
+
+ }
+ break;
+ case 78 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:620: K_IS
+ {
+ mK_IS();
+
+ }
+ break;
+ case 79 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:625: K_CONTAINS
+ {
+ mK_CONTAINS();
+
+ }
+ break;
+ case 80 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:636: K_GRANT
+ {
+ mK_GRANT();
+
+ }
+ break;
+ case 81 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:644: K_ALL
+ {
+ mK_ALL();
+
+ }
+ break;
+ case 82 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:650: K_PERMISSION
+ {
+ mK_PERMISSION();
+
+ }
+ break;
+ case 83 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:663: K_PERMISSIONS
+ {
+ mK_PERMISSIONS();
+
+ }
+ break;
+ case 84 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:677: K_OF
+ {
+ mK_OF();
+
+ }
+ break;
+ case 85 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:682: K_REVOKE
+ {
+ mK_REVOKE();
+
+ }
+ break;
+ case 86 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:691: K_MODIFY
+ {
+ mK_MODIFY();
+
+ }
+ break;
+ case 87 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:700: K_AUTHORIZE
+ {
+ mK_AUTHORIZE();
+
+ }
+ break;
+ case 88 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:712: K_DESCRIBE
+ {
+ mK_DESCRIBE();
+
+ }
+ break;
+ case 89 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:723: K_EXECUTE
+ {
+ mK_EXECUTE();
+
+ }
+ break;
+ case 90 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:733: K_NORECURSIVE
+ {
+ mK_NORECURSIVE();
+
+ }
+ break;
+ case 91 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:747: K_USER
+ {
+ mK_USER();
+
+ }
+ break;
+ case 92 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:754: K_USERS
+ {
+ mK_USERS();
+
+ }
+ break;
+ case 93 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:762: K_ROLE
+ {
+ mK_ROLE();
+
+ }
+ break;
+ case 94 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:769: K_ROLES
+ {
+ mK_ROLES();
+
+ }
+ break;
+ case 95 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:777: K_SUPERUSER
+ {
+ mK_SUPERUSER();
+
+ }
+ break;
+ case 96 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:789: K_NOSUPERUSER
+ {
+ mK_NOSUPERUSER();
+
+ }
+ break;
+ case 97 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:803: K_PASSWORD
+ {
+ mK_PASSWORD();
+
+ }
+ break;
+ case 98 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:814: K_LOGIN
+ {
+ mK_LOGIN();
+
+ }
+ break;
+ case 99 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:822: K_NOLOGIN
+ {
+ mK_NOLOGIN();
+
+ }
+ break;
+ case 100 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:832: K_OPTIONS
+ {
+ mK_OPTIONS();
+
+ }
+ break;
+ case 101 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:842: K_CLUSTERING
+ {
+ mK_CLUSTERING();
+
+ }
+ break;
+ case 102 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:855: K_ASCII
+ {
+ mK_ASCII();
+
+ }
+ break;
+ case 103 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:863: K_BIGINT
+ {
+ mK_BIGINT();
+
+ }
+ break;
+ case 104 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:872: K_BLOB
+ {
+ mK_BLOB();
+
+ }
+ break;
+ case 105 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:879: K_BOOLEAN
+ {
+ mK_BOOLEAN();
+
+ }
+ break;
+ case 106 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:889: K_COUNTER
+ {
+ mK_COUNTER();
+
+ }
+ break;
+ case 107 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:899: K_DECIMAL
+ {
+ mK_DECIMAL();
+
+ }
+ break;
+ case 108 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:909: K_DOUBLE
+ {
+ mK_DOUBLE();
+
+ }
+ break;
+ case 109 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:918: K_FLOAT
+ {
+ mK_FLOAT();
+
+ }
+ break;
+ case 110 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:926: K_INET
+ {
+ mK_INET();
+
+ }
+ break;
+ case 111 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:933: K_INT
+ {
+ mK_INT();
+
+ }
+ break;
+ case 112 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:939: K_SMALLINT
+ {
+ mK_SMALLINT();
+
+ }
+ break;
+ case 113 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:950: K_TINYINT
+ {
+ mK_TINYINT();
+
+ }
+ break;
+ case 114 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:960: K_TEXT
+ {
+ mK_TEXT();
+
+ }
+ break;
+ case 115 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:967: K_UUID
+ {
+ mK_UUID();
+
+ }
+ break;
+ case 116 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:974: K_VARCHAR
+ {
+ mK_VARCHAR();
+
+ }
+ break;
+ case 117 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:984: K_VARINT
+ {
+ mK_VARINT();
+
+ }
+ break;
+ case 118 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:993: K_TIMEUUID
+ {
+ mK_TIMEUUID();
+
+ }
+ break;
+ case 119 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1004: K_TOKEN
+ {
+ mK_TOKEN();
+
+ }
+ break;
+ case 120 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1012: K_WRITETIME
+ {
+ mK_WRITETIME();
+
+ }
+ break;
+ case 121 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1024: K_DATE
+ {
+ mK_DATE();
+
+ }
+ break;
+ case 122 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1031: K_TIME
+ {
+ mK_TIME();
+
+ }
+ break;
+ case 123 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1038: K_NULL
+ {
+ mK_NULL();
+
+ }
+ break;
+ case 124 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1045: K_NOT
+ {
+ mK_NOT();
+
+ }
+ break;
+ case 125 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1051: K_EXISTS
+ {
+ mK_EXISTS();
+
+ }
+ break;
+ case 126 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1060: K_MAP
+ {
+ mK_MAP();
+
+ }
+ break;
+ case 127 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1066: K_LIST
+ {
+ mK_LIST();
+
+ }
+ break;
+ case 128 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1073: K_NAN
+ {
+ mK_NAN();
+
+ }
+ break;
+ case 129 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1079: K_INFINITY
+ {
+ mK_INFINITY();
+
+ }
+ break;
+ case 130 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1090: K_TUPLE
+ {
+ mK_TUPLE();
+
+ }
+ break;
+ case 131 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1098: K_TRIGGER
+ {
+ mK_TRIGGER();
+
+ }
+ break;
+ case 132 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1108: K_STATIC
+ {
+ mK_STATIC();
+
+ }
+ break;
+ case 133 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1117: K_FROZEN
+ {
+ mK_FROZEN();
+
+ }
+ break;
+ case 134 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1126: K_FUNCTION
+ {
+ mK_FUNCTION();
+
+ }
+ break;
+ case 135 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1137: K_FUNCTIONS
+ {
+ mK_FUNCTIONS();
+
+ }
+ break;
+ case 136 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1149: K_AGGREGATE
+ {
+ mK_AGGREGATE();
+
+ }
+ break;
+ case 137 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1161: K_SFUNC
+ {
+ mK_SFUNC();
+
+ }
+ break;
+ case 138 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1169: K_STYPE
+ {
+ mK_STYPE();
+
+ }
+ break;
+ case 139 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1177: K_FINALFUNC
+ {
+ mK_FINALFUNC();
+
+ }
+ break;
+ case 140 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1189: K_INITCOND
+ {
+ mK_INITCOND();
+
+ }
+ break;
+ case 141 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1200: K_RETURNS
+ {
+ mK_RETURNS();
+
+ }
+ break;
+ case 142 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1210: K_CALLED
+ {
+ mK_CALLED();
+
+ }
+ break;
+ case 143 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1219: K_INPUT
+ {
+ mK_INPUT();
+
+ }
+ break;
+ case 144 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1227: K_LANGUAGE
+ {
+ mK_LANGUAGE();
+
+ }
+ break;
+ case 145 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1238: K_OR
+ {
+ mK_OR();
+
+ }
+ break;
+ case 146 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1243: K_REPLACE
+ {
+ mK_REPLACE();
+
+ }
+ break;
+ case 147 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1253: K_JSON
+ {
+ mK_JSON();
+
+ }
+ break;
+ case 148 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1260: STRING_LITERAL
+ {
+ mSTRING_LITERAL();
+
+ }
+ break;
+ case 149 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1275: QUOTED_NAME
+ {
+ mQUOTED_NAME();
+
+ }
+ break;
+ case 150 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1287: INTEGER
+ {
+ mINTEGER();
+
+ }
+ break;
+ case 151 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1295: QMARK
+ {
+ mQMARK();
+
+ }
+ break;
+ case 152 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1301: FLOAT
+ {
+ mFLOAT();
+
+ }
+ break;
+ case 153 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1307: BOOLEAN
+ {
+ mBOOLEAN();
+
+ }
+ break;
+ case 154 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1315: IDENT
+ {
+ mIDENT();
+
+ }
+ break;
+ case 155 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1321: HEXNUMBER
+ {
+ mHEXNUMBER();
+
+ }
+ break;
+ case 156 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1331: UUID
+ {
+ mUUID();
+
+ }
+ break;
+ case 157 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1336: WS
+ {
+ mWS();
+
+ }
+ break;
+ case 158 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1339: COMMENT
+ {
+ mCOMMENT();
+
+ }
+ break;
+ case 159 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1:1347: MULTILINE_COMMENT
+ {
+ mMULTILINE_COMMENT();
+
+ }
+ break;
+
+ }
+ }
+
+
+ protected DFA13 dfa13 = new DFA13(this);
+ protected DFA21 dfa21 = new DFA21(this);
+ static final String DFA13_eotS =
+ "\5\uffff";
+ static final String DFA13_eofS =
+ "\5\uffff";
+ static final String DFA13_minS =
+ "\1\55\1\60\1\56\2\uffff";
+ static final String DFA13_maxS =
+ "\2\71\1\145\2\uffff";
+ static final String DFA13_acceptS =
+ "\3\uffff\1\1\1\2";
+ static final String DFA13_specialS =
+ "\5\uffff}>";
+ static final String[] DFA13_transitionS = {
+ "\1\1\2\uffff\12\2",
+ "\12\2",
+ "\1\4\1\uffff\12\2\13\uffff\1\3\37\uffff\1\3",
+ "",
+ ""
+ };
+
+ static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS);
+ static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS);
+ static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS);
+ static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS);
+ static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS);
+ static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS);
+ static final short[][] DFA13_transition;
+
+ static {
+ int numStates = DFA13_transitionS.length;
+ DFA13_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA21_transitionS = {
+ "\2\56\2\uffff\1\56\22\uffff\1\56\1\1\1\51\1\uffff\1\50\2\uffff\1\50\1"+
+ "\2\1\3\1\16\1\4\1\5\1\6\1\7\1\57\1\52\11\55\1\10\1\11\1\12\1\13\1\14"+
+ "\1\53\1\uffff\1\25\1\37\1\36\1\35\1\30\1\24\1\45\1\54\1\31\1\47\1\27"+
+ "\1\33\1\41\1\46\1\43\1\34\1\54\1\44\1\23\1\40\1\32\1\42\1\26\3\54\1\15"+
+ "\1\uffff\1\17\3\uffff\1\25\1\37\1\36\1\35\1\20\1\24\1\45\1\54\1\31\1"+
+ "\47\1\27\1\33\1\41\1\46\1\43\1\34\1\54\1\44\1\23\1\40\1\32\1\42\1\26"+
+ "\3\54\1\21\1\uffff\1\22",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\60\2\uffff\12\62",
+ "",
+ "",
+ "",
+ "\1\63",
+ "",
+ "\1\65",
+ "",
+ "",
+ "",
+ "\12\72\7\uffff\6\72\7\uffff\1\70\11\uffff\1\71\10\uffff\6\72\7\uffff"+
+ "\1\70\11\uffff\1\67",
+ "",
+ "",
+ "\1\74\1\uffff\1\73\1\100\6\uffff\1\77\6\uffff\1\75\1\76\15\uffff\1\74"+
+ "\1\uffff\1\73\1\100\6\uffff\1\77\6\uffff\1\75\1\76",
+ "\12\72\7\uffff\1\105\5\72\2\uffff\1\103\2\uffff\1\104\5\uffff\1\101"+
+ "\2\uffff\1\102\13\uffff\1\105\5\72\2\uffff\1\103\2\uffff\1\104\5\uffff"+
+ "\1\101\2\uffff\1\102",
+ "\12\72\7\uffff\3\72\1\112\2\72\1\114\4\uffff\1\111\1\uffff\1\107\1\uffff"+
+ "\1\110\2\uffff\1\106\1\uffff\1\113\13\uffff\3\72\1\112\2\72\1\114\4\uffff"+
+ "\1\111\1\uffff\1\107\1\uffff\1\110\2\uffff\1\106\1\uffff\1\113",
+ "\1\115\1\116\10\uffff\1\117\25\uffff\1\115\1\116\10\uffff\1\117",
+ "\1\120\37\uffff\1\120",
+ "\12\72\7\uffff\6\72\7\uffff\1\70\11\uffff\1\71\10\uffff\6\72\7\uffff"+
+ "\1\70\11\uffff\1\71",
+ "\1\122\7\uffff\1\121\4\uffff\1\123\22\uffff\1\122\7\uffff\1\121\4\uffff"+
+ "\1\123",
+ "\1\126\1\uffff\1\124\2\uffff\1\125\1\uffff\1\127\30\uffff\1\126\1\uffff"+
+ "\1\124\2\uffff\1\125\1\uffff\1\127",
+ "\1\132\7\uffff\1\130\5\uffff\1\131\21\uffff\1\132\7\uffff\1\130\5\uffff"+
+ "\1\131",
+ "\1\134\3\uffff\1\133\14\uffff\1\135\16\uffff\1\134\3\uffff\1\133\14"+
+ "\uffff\1\135",
+ "\12\72\7\uffff\1\142\3\72\1\137\1\72\2\uffff\1\136\5\uffff\1\141\2\uffff"+
+ "\1\140\16\uffff\1\142\3\72\1\137\1\72\2\uffff\1\136\5\uffff\1\141\2\uffff"+
+ "\1\140",
+ "\12\72\7\uffff\1\147\5\72\5\uffff\1\146\2\uffff\1\143\2\uffff\1\144"+
+ "\2\uffff\1\145\13\uffff\1\147\5\72\5\uffff\1\146\2\uffff\1\143\2\uffff"+
+ "\1\144\2\uffff\1\145",
+ "\12\72\7\uffff\1\151\3\72\1\150\1\72\2\uffff\1\153\2\uffff\1\154\2\uffff"+
+ "\1\155\11\uffff\1\152\7\uffff\1\151\3\72\1\150\1\72\2\uffff\1\153\2\uffff"+
+ "\1\154\2\uffff\1\155\11\uffff\1\152",
+ "\1\157\3\uffff\1\164\3\uffff\1\161\5\uffff\1\160\2\uffff\1\156\1\uffff"+
+ "\1\162\1\165\3\uffff\1\163\7\uffff\1\157\3\uffff\1\164\3\uffff\1\161"+
+ "\5\uffff\1\160\2\uffff\1\156\1\uffff\1\162\1\165\3\uffff\1\163",
+ "\1\166\15\uffff\1\167\21\uffff\1\166\15\uffff\1\167",
+ "\1\171\7\uffff\1\170\27\uffff\1\171\7\uffff\1\170",
+ "\1\174\7\uffff\1\172\1\uffff\1\175\1\uffff\1\173\23\uffff\1\174\7\uffff"+
+ "\1\172\1\uffff\1\175\1\uffff\1\173",
+ "\1\176\11\uffff\1\177\25\uffff\1\176\11\uffff\1\177",
+ "\1\u0080\37\uffff\1\u0080",
+ "\1\u0083\15\uffff\1\u0081\5\uffff\1\u0082\13\uffff\1\u0083\15\uffff"+
+ "\1\u0081\5\uffff\1\u0082",
+ "\1\u0084\37\uffff\1\u0084",
+ "",
+ "",
+ "\1\u0088\1\uffff\12\u0086\7\uffff\4\u008a\1\u0087\1\u008a\21\uffff\1"+
+ "\u0089\10\uffff\4\u008a\1\u0087\1\u008a\21\uffff\1\u0089",
+ "",
+ "",
+ "\1\u0088\1\uffff\12\u0086\7\uffff\4\u008a\1\u0087\1\u008a\32\uffff\4"+
+ "\u008a\1\u0087\1\u008a",
+ "",
+ "\1\u008b\4\uffff\1\60",
+ "",
+ "",
+ "\1\u0088\1\uffff\12\62\13\uffff\1\u0088\37\uffff\1\u0088",
+ "",
+ "",
+ "",
+ "",
+ "\1\u008d\3\uffff\1\u008e\33\uffff\1\u008d\3\uffff\1\u008e\6\uffff\1"+
+ "\u008c",
+ "\1\u008f\37\uffff\1\u008f",
+ "\1\u008d\3\uffff\1\u008e\33\uffff\1\u008d\3\uffff\1\u008e",
+ "\12\u0090\7\uffff\6\u0090\32\uffff\6\u0090",
+ "\1\u0091\7\uffff\1\u0092\27\uffff\1\u0091\7\uffff\1\u0092",
+ "\1\u0093\37\uffff\1\u0093",
+ "\1\u0095\15\uffff\1\u0094\11\uffff\1\u0096\7\uffff\1\u0095\15\uffff"+
+ "\1\u0094\11\uffff\1\u0096",
+ "\1\u0097\37\uffff\1\u0097",
+ "\1\u0098\37\uffff\1\u0098",
+ "\1\u0099\37\uffff\1\u0099",
+ "\1\u009a\37\uffff\1\u009a",
+ "\1\u009b\1\uffff\1\u009c\35\uffff\1\u009b\1\uffff\1\u009c",
+ "\1\u009d\1\uffff\1\u009e\35\uffff\1\u009d\1\uffff\1\u009e",
+ "\1\u009f\37\uffff\1\u009f",
+ "\12\u0090\7\uffff\6\u0090\5\uffff\1\u00a0\24\uffff\6\u0090\5\uffff\1"+
+ "\u00a0",
+ "\12\54\7\uffff\2\54\1\u00a2\27\54\4\uffff\1\54\1\uffff\2\54\1\u00a2"+
+ "\27\54",
+ "\1\u00a3\37\uffff\1\u00a3",
+ "\1\u00a4\37\uffff\1\u00a4",
+ "\1\u00a6\7\uffff\1\u00a5\27\uffff\1\u00a6\7\uffff\1\u00a5",
+ "\12\u0090\7\uffff\3\u0090\1\u00a7\2\u0090\32\uffff\3\u0090\1\u00a7\2"+
+ "\u0090",
+ "\1\u00a8\37\uffff\1\u00a8",
+ "\1\u00a9\37\uffff\1\u00a9",
+ "\1\u00aa\37\uffff\1\u00aa",
+ "\1\u00ab\37\uffff\1\u00ab",
+ "\1\u00ac\37\uffff\1\u00ac",
+ "\1\u00ad\37\uffff\1\u00ad",
+ "\12\54\7\uffff\3\54\1\u00b0\1\u00b2\1\u00b3\2\54\1\u00b4\6\54\1\u00b5"+
+ "\2\54\1\u00af\1\u00b1\6\54\4\uffff\1\54\1\uffff\3\54\1\u00b0\1\u00b2"+
+ "\1\u00b3\2\54\1\u00b4\6\54\1\u00b5\2\54\1\u00af\1\u00b1\6\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u00b8\37\uffff\1\u00b8",
+ "\1\u00ba\3\uffff\1\u00b9\33\uffff\1\u00ba\3\uffff\1\u00b9",
+ "\1\u00bb\37\uffff\1\u00bb",
+ "\1\u00bc\37\uffff\1\u00bc",
+ "\1\u00be\1\uffff\1\u00bd\5\uffff\1\u00bf\27\uffff\1\u00be\1\uffff\1"+
+ "\u00bd\5\uffff\1\u00bf",
+ "\1\u00c0\37\uffff\1\u00c0",
+ "\1\u00c1\37\uffff\1\u00c1",
+ "\1\u00c2\37\uffff\1\u00c2",
+ "\1\u00c3\1\u00c4\36\uffff\1\u00c3\1\u00c4",
+ "\1\u00c5\37\uffff\1\u00c5",
+ "\1\u00c6\37\uffff\1\u00c6",
+ "\12\u0090\7\uffff\2\u0090\1\u00c9\3\u0090\5\uffff\1\u00c7\6\uffff\1"+
+ "\u00c8\15\uffff\2\u0090\1\u00c9\3\u0090\5\uffff\1\u00c7\6\uffff\1\u00c8",
+ "\1\u00ca\37\uffff\1\u00ca",
+ "\1\u00cb\37\uffff\1\u00cb",
+ "\12\u0090\7\uffff\6\u0090\15\uffff\1\u00cc\14\uffff\6\u0090\15\uffff"+
+ "\1\u00cc",
+ "\1\u00ce\1\u00cf\1\u00d0\6\uffff\1\u00cd\26\uffff\1\u00ce\1\u00cf\1"+
+ "\u00d0\6\uffff\1\u00cd",
+ "\1\u00d1\37\uffff\1\u00d1",
+ "\1\u00d2\37\uffff\1\u00d2",
+ "\1\u00d3\37\uffff\1\u00d3",
+ "\12\u0090\7\uffff\6\u0090\5\uffff\1\u00d4\24\uffff\6\u0090\5\uffff\1"+
+ "\u00d4",
+ "\12\u0090\7\uffff\6\u0090\1\u00d5\31\uffff\6\u0090\1\u00d5",
+ "\12\u0090\7\uffff\6\u0090\15\uffff\1\u00d6\14\uffff\6\u0090\15\uffff"+
+ "\1\u00d6",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u00d8\37\uffff\1\u00d8",
+ "\1\u00d9\37\uffff\1\u00d9",
+ "\1\u00da\37\uffff\1\u00da",
+ "\1\u00dc\13\uffff\1\u00db\23\uffff\1\u00dc\13\uffff\1\u00db",
+ "\1\u00dd\37\uffff\1\u00dd",
+ "\12\54\7\uffff\12\54\1\u00df\17\54\4\uffff\1\54\1\uffff\12\54\1\u00df"+
+ "\17\54",
+ "\1\u00e0\1\u00e1\36\uffff\1\u00e0\1\u00e1",
+ "\1\u00e2\37\uffff\1\u00e2",
+ "\1\u00e3\37\uffff\1\u00e3",
+ "\1\u00e4\37\uffff\1\u00e4",
+ "\1\u00e5\37\uffff\1\u00e5",
+ "\1\u00e7\3\uffff\1\u00e6\33\uffff\1\u00e7\3\uffff\1\u00e6",
+ "\1\u00e8\37\uffff\1\u00e8",
+ "\1\u00e9\37\uffff\1\u00e9",
+ "\1\u00ea\5\uffff\1\u00eb\31\uffff\1\u00ea\5\uffff\1\u00eb",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\3\54\1\u00ee\26\54\4\uffff\1\54\1\uffff\3\54\1\u00ee"+
+ "\26\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u00f0\37\uffff\1\u00f0",
+ "\1\u00f1\1\uffff\1\u00f4\3\uffff\1\u00f3\1\uffff\1\u00f2\27\uffff\1"+
+ "\u00f1\1\uffff\1\u00f4\3\uffff\1\u00f3\1\uffff\1\u00f2",
+ "\1\u00f5\37\uffff\1\u00f5",
+ "\1\u00f6\37\uffff\1\u00f6",
+ "\1\u00f9\5\uffff\1\u00f7\1\u00f8\1\u00fa\27\uffff\1\u00f9\5\uffff\1"+
+ "\u00f7\1\u00f8\1\u00fa",
+ "\1\u00fb\37\uffff\1\u00fb",
+ "\1\u00fc\37\uffff\1\u00fc",
+ "\1\u00fd\37\uffff\1\u00fd",
+ "",
+ "\1\u0088\1\uffff\12\u00fe\7\uffff\4\u008a\1\u00ff\1\u008a\32\uffff\4"+
+ "\u008a\1\u00ff\1\u008a",
+ "\1\u0088\1\uffff\1\u0088\2\uffff\12\u0100\7\uffff\6\u008a\32\uffff\6"+
+ "\u008a",
+ "",
+ "",
+ "",
+ "",
+ "\1\u0101",
+ "\1\u0102\37\uffff\1\u0102",
+ "\1\u0103\37\uffff\1\u0103",
+ "\1\u0104\37\uffff\1\u0104",
+ "\12\u0105\7\uffff\6\u0105\32\uffff\6\u0105",
+ "\1\u0106\37\uffff\1\u0106",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0108\37\uffff\1\u0108",
+ "\1\u0109\37\uffff\1\u0109",
+ "\1\u010a\37\uffff\1\u010a",
+ "\1\u010b\37\uffff\1\u010b",
+ "\1\u010c\37\uffff\1\u010c",
+ "\1\u010d\37\uffff\1\u010d",
+ "\1\u010e\37\uffff\1\u010e",
+ "\1\u010f\14\uffff\1\u0110\22\uffff\1\u010f\14\uffff\1\u0110",
+ "\1\u0111\37\uffff\1\u0111",
+ "\1\u0112\37\uffff\1\u0112",
+ "\1\u0113\37\uffff\1\u0113",
+ "\1\u0114\37\uffff\1\u0114",
+ "\1\u0115\37\uffff\1\u0115",
+ "\1\u0116\37\uffff\1\u0116",
+ "",
+ "\12\54\7\uffff\10\54\1\u0118\21\54\4\uffff\1\54\1\uffff\10\54\1\u0118"+
+ "\21\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u011a\37\uffff\1\u011a",
+ "\1\u011b\37\uffff\1\u011b",
+ "\12\54\7\uffff\16\54\1\u011d\13\54\4\uffff\1\54\1\uffff\16\54\1\u011d"+
+ "\13\54",
+ "\12\u0105\7\uffff\6\u0105\24\54\4\uffff\1\54\1\uffff\6\u0105\24\54",
+ "\1\u011f\37\uffff\1\u011f",
+ "\1\u0120\37\uffff\1\u0120",
+ "\1\u0121\37\uffff\1\u0121",
+ "\1\u0122\37\uffff\1\u0122",
+ "\1\u0123\37\uffff\1\u0123",
+ "\12\54\7\uffff\22\54\1\u0125\7\54\4\uffff\1\54\1\uffff\22\54\1\u0125"+
+ "\7\54",
+ "",
+ "\1\u0126\37\uffff\1\u0126",
+ "\1\u0127\37\uffff\1\u0127",
+ "\12\54\7\uffff\16\54\1\u0129\13\54\4\uffff\1\54\1\uffff\16\54\1\u0129"+
+ "\13\54",
+ "\1\u012a\37\uffff\1\u012a",
+ "\1\u012b\37\uffff\1\u012b",
+ "\1\u012c\37\uffff\1\u012c",
+ "\1\u012d\37\uffff\1\u012d",
+ "",
+ "",
+ "\1\u012e\37\uffff\1\u012e",
+ "\1\u012f\37\uffff\1\u012f",
+ "\12\54\7\uffff\21\54\1\u0131\10\54\4\uffff\1\54\1\uffff\21\54\1\u0131"+
+ "\10\54",
+ "\1\u0132\37\uffff\1\u0132",
+ "\1\u0133\37\uffff\1\u0133",
+ "\1\u0134\37\uffff\1\u0134",
+ "\1\u0135\37\uffff\1\u0135",
+ "\1\u0136\37\uffff\1\u0136",
+ "\1\u0137\37\uffff\1\u0137",
+ "\1\u0138\37\uffff\1\u0138",
+ "\12\54\7\uffff\14\54\1\u013a\15\54\4\uffff\1\54\1\uffff\14\54\1\u013a"+
+ "\15\54",
+ "\1\u013b\37\uffff\1\u013b",
+ "\1\u013c\37\uffff\1\u013c",
+ "\1\u013d\37\uffff\1\u013d",
+ "\1\u013e\37\uffff\1\u013e",
+ "\1\u013f\37\uffff\1\u013f",
+ "\1\u0140\37\uffff\1\u0140",
+ "\12\u0105\7\uffff\6\u0105\2\uffff\1\u0141\27\uffff\6\u0105\2\uffff\1"+
+ "\u0141",
+ "\1\u0142\37\uffff\1\u0142",
+ "\1\u0143\37\uffff\1\u0143",
+ "\1\u0144\37\uffff\1\u0144",
+ "\1\u0145\37\uffff\1\u0145",
+ "\1\u0146\37\uffff\1\u0146",
+ "\1\u0147\37\uffff\1\u0147",
+ "\1\u0148\37\uffff\1\u0148",
+ "\1\u0149\37\uffff\1\u0149",
+ "\1\u014a\37\uffff\1\u014a",
+ "\1\u014b\37\uffff\1\u014b",
+ "\1\u014c\37\uffff\1\u014c",
+ "\1\u014d\37\uffff\1\u014d",
+ "\1\u014e\37\uffff\1\u014e",
+ "",
+ "\1\u014f\37\uffff\1\u014f",
+ "\1\u0150\37\uffff\1\u0150",
+ "\1\u0151\37\uffff\1\u0151",
+ "\1\u0153\10\uffff\1\u0152\26\uffff\1\u0153\10\uffff\1\u0152",
+ "\1\u0154\37\uffff\1\u0154",
+ "\1\u0155\37\uffff\1\u0155",
+ "",
+ "\1\u0156\37\uffff\1\u0156",
+ "\1\u0157\37\uffff\1\u0157",
+ "\1\u0158\37\uffff\1\u0158",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u015a\37\uffff\1\u015a",
+ "\1\u015b\37\uffff\1\u015b",
+ "\1\u015c\37\uffff\1\u015c",
+ "\1\u015d\37\uffff\1\u015d",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u015f\37\uffff\1\u015f",
+ "\1\u0160\37\uffff\1\u0160",
+ "\1\u0161\37\uffff\1\u0161",
+ "\1\u0162\5\uffff\1\u0163\31\uffff\1\u0162\5\uffff\1\u0163",
+ "",
+ "",
+ "\1\u0164\37\uffff\1\u0164",
+ "",
+ "\1\u0165\37\uffff\1\u0165",
+ "\1\u0166\37\uffff\1\u0166",
+ "\1\u0167\37\uffff\1\u0167",
+ "\1\u0168\37\uffff\1\u0168",
+ "\1\u0169\37\uffff\1\u0169",
+ "\1\u016a\37\uffff\1\u016a",
+ "\1\u016b\37\uffff\1\u016b",
+ "\1\u016c\37\uffff\1\u016c",
+ "\1\u016d\37\uffff\1\u016d",
+ "\1\u016e\37\uffff\1\u016e",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0170\37\uffff\1\u0170",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0172\37\uffff\1\u0172",
+ "\1\u0088\1\uffff\12\u0173\7\uffff\4\u008a\1\u0174\1\u008a\32\uffff\4"+
+ "\u008a\1\u0174\1\u008a",
+ "\1\u0088\1\uffff\1\u0088\2\uffff\12\u0175\7\uffff\6\u008a\32\uffff\6"+
+ "\u008a",
+ "\12\u0175\7\uffff\6\u008a\32\uffff\6\u008a",
+ "\1\u0176",
+ "\1\u0177\37\uffff\1\u0177",
+ "\1\u0178\37\uffff\1\u0178",
+ "\1\u0179\37\uffff\1\u0179",
+ "\12\u017a\7\uffff\6\u017a\32\uffff\6\u017a",
+ "\1\u017b\37\uffff\1\u017b",
+ "",
+ "\1\u017c\37\uffff\1\u017c",
+ "\1\u017d\37\uffff\1\u017d",
+ "\1\u017e\37\uffff\1\u017e",
+ "\1\u017f\37\uffff\1\u017f",
+ "\1\u0180\37\uffff\1\u0180",
+ "\1\u0181\37\uffff\1\u0181",
+ "\1\u0182\37\uffff\1\u0182",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0184\37\uffff\1\u0184",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0186\37\uffff\1\u0186",
+ "\1\u0187\37\uffff\1\u0187",
+ "\1\u0188\37\uffff\1\u0188",
+ "\1\u0189\37\uffff\1\u0189",
+ "\1\u018a\37\uffff\1\u018a",
+ "",
+ "\1\u018b\37\uffff\1\u018b",
+ "",
+ "\1\u018c\37\uffff\1\u018c",
+ "\1\u018d\37\uffff\1\u018d",
+ "",
+ "\1\u018e\37\uffff\1\u018e",
+ "",
+ "\1\u018f\37\uffff\1\u018f",
+ "\1\u0190\37\uffff\1\u0190",
+ "\1\u0191\37\uffff\1\u0191",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0193\37\uffff\1\u0193",
+ "",
+ "\12\54\7\uffff\17\54\1\u0195\12\54\4\uffff\1\54\1\uffff\17\54\1\u0195"+
+ "\12\54",
+ "\1\u0196\37\uffff\1\u0196",
+ "\1\u0197\37\uffff\1\u0197",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u019a\37\uffff\1\u019a",
+ "\1\u019b\37\uffff\1\u019b",
+ "\1\u019c\37\uffff\1\u019c",
+ "\1\u019d\37\uffff\1\u019d",
+ "\1\u019e\37\uffff\1\u019e",
+ "",
+ "\12\54\7\uffff\22\54\1\u01a0\7\54\4\uffff\1\54\1\uffff\22\54\1\u01a0"+
+ "\7\54",
+ "\1\u01a1\37\uffff\1\u01a1",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01a3\37\uffff\1\u01a3",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01a6\37\uffff\1\u01a6",
+ "\1\u01a7\37\uffff\1\u01a7",
+ "",
+ "\1\u01a8\37\uffff\1\u01a8",
+ "\1\u01a9\37\uffff\1\u01a9",
+ "\1\u01aa\37\uffff\1\u01aa",
+ "\1\u01ab\37\uffff\1\u01ab",
+ "\1\u01ac\37\uffff\1\u01ac",
+ "\1\u01ad\37\uffff\1\u01ad",
+ "\12\54\7\uffff\21\54\1\u01af\10\54\4\uffff\1\54\1\uffff\21\54\1\u01af"+
+ "\10\54",
+ "\1\u01b0\37\uffff\1\u01b0",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01b2\37\uffff\1\u01b2",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01b4\37\uffff\1\u01b4",
+ "\1\u01b5\37\uffff\1\u01b5",
+ "\1\u01b6\37\uffff\1\u01b6",
+ "\1\u01b7\37\uffff\1\u01b7",
+ "\1\u01b8\37\uffff\1\u01b8",
+ "\1\u01b9\37\uffff\1\u01b9",
+ "\1\u01ba\37\uffff\1\u01ba",
+ "\1\u01bb\37\uffff\1\u01bb",
+ "\1\u01bc\37\uffff\1\u01bc",
+ "\1\u01bd\37\uffff\1\u01bd",
+ "\1\u01be\37\uffff\1\u01be",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01c0\37\uffff\1\u01c0",
+ "\1\u01c1\37\uffff\1\u01c1",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01c3\37\uffff\1\u01c3",
+ "\1\u01c4\37\uffff\1\u01c4",
+ "\1\u01c5\37\uffff\1\u01c5",
+ "\12\54\7\uffff\22\54\1\u01c7\1\54\1\u01c8\5\54\4\uffff\1\54\1\uffff"+
+ "\22\54\1\u01c7\1\54\1\u01c8\5\54",
+ "\1\u01c9\37\uffff\1\u01c9",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01cc\37\uffff\1\u01cc",
+ "\1\u01cd\37\uffff\1\u01cd",
+ "",
+ "\1\u01ce\37\uffff\1\u01ce",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01d0\37\uffff\1\u01d0",
+ "\1\u01d1\37\uffff\1\u01d1",
+ "\1\u01d2\37\uffff\1\u01d2",
+ "\1\u01d3\37\uffff\1\u01d3",
+ "\1\u01d4\37\uffff\1\u01d4",
+ "\1\u01d5\37\uffff\1\u01d5",
+ "\1\u01d6\37\uffff\1\u01d6",
+ "\1\u01d7\37\uffff\1\u01d7",
+ "\1\u01d8\37\uffff\1\u01d8",
+ "\12\54\7\uffff\22\54\1\u01da\7\54\4\uffff\1\54\1\uffff\22\54\1\u01da"+
+ "\7\54",
+ "\1\u01db\37\uffff\1\u01db",
+ "\1\u01dc\37\uffff\1\u01dc",
+ "\1\u01dd\37\uffff\1\u01dd",
+ "\1\u01de\37\uffff\1\u01de",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0088\1\uffff\12\u01e1\7\uffff\4\u008a\1\u01e2\1\u008a\32\uffff\4"+
+ "\u008a\1\u01e2\1\u008a",
+ "\1\u0088\1\uffff\1\u0088\2\uffff\12\u01e3\7\uffff\6\u008a\32\uffff\6"+
+ "\u008a",
+ "\12\u01e3\7\uffff\6\u008a\32\uffff\6\u008a",
+ "",
+ "\1\u01e4\37\uffff\1\u01e4",
+ "\1\u01e5\37\uffff\1\u01e5",
+ "\1\u01e6\37\uffff\1\u01e6",
+ "\12\u01e7\7\uffff\6\u01e7\32\uffff\6\u01e7",
+ "\1\u01e8\37\uffff\1\u01e8",
+ "\1\u01e9\37\uffff\1\u01e9",
+ "\1\u01ea\37\uffff\1\u01ea",
+ "\1\u01eb\37\uffff\1\u01eb",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01ed\37\uffff\1\u01ed",
+ "\1\u01ee\37\uffff\1\u01ee",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u01f0\37\uffff\1\u01f0",
+ "",
+ "\1\u01f1\37\uffff\1\u01f1",
+ "\1\u01f2\37\uffff\1\u01f2",
+ "\1\u01f3\37\uffff\1\u01f3",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u01f9\37\uffff\1\u01f9",
+ "\1\u01fa\37\uffff\1\u01fa",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u01fc\37\uffff\1\u01fc",
+ "",
+ "\1\u01fd\37\uffff\1\u01fd",
+ "\1\u01fe\37\uffff\1\u01fe",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "\1\u0200\37\uffff\1\u0200",
+ "\1\u0201\37\uffff\1\u0201",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0203\37\uffff\1\u0203",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0206\37\uffff\1\u0206",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0209\37\uffff\1\u0209",
+ "\1\u020a\37\uffff\1\u020a",
+ "\1\u020b\37\uffff\1\u020b",
+ "\1\u020c\37\uffff\1\u020c",
+ "\1\u020d\37\uffff\1\u020d",
+ "\1\u020e\37\uffff\1\u020e",
+ "\1\u020f\37\uffff\1\u020f",
+ "",
+ "\1\u0210\37\uffff\1\u0210",
+ "\1\u0211\37\uffff\1\u0211",
+ "",
+ "\1\u0212\37\uffff\1\u0212",
+ "",
+ "\12\54\7\uffff\4\54\1\u0214\25\54\4\uffff\1\54\1\uffff\4\54\1\u0214"+
+ "\25\54",
+ "\1\u0215\37\uffff\1\u0215",
+ "\1\u0216\37\uffff\1\u0216",
+ "\1\u0217\37\uffff\1\u0217",
+ "\1\u0218\37\uffff\1\u0218",
+ "\1\u0219\37\uffff\1\u0219",
+ "\1\u021a\37\uffff\1\u021a",
+ "\1\u021b\37\uffff\1\u021b",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u021e\37\uffff\1\u021e",
+ "",
+ "\1\u021f\37\uffff\1\u021f",
+ "\1\u0220\37\uffff\1\u0220",
+ "",
+ "\1\u0221\37\uffff\1\u0221",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u0224\37\uffff\1\u0224",
+ "\1\u0225\37\uffff\1\u0225",
+ "\1\u0226\37\uffff\1\u0226",
+ "",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0228\37\uffff\1\u0228",
+ "\1\u0229\37\uffff\1\u0229",
+ "",
+ "\1\u022a\37\uffff\1\u022a",
+ "\1\u022b\37\uffff\1\u022b",
+ "\1\u022c\37\uffff\1\u022c",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u022e\37\uffff\1\u022e",
+ "\1\u022f\37\uffff\1\u022f",
+ "\1\u0230\37\uffff\1\u0230",
+ "\1\u0231\37\uffff\1\u0231",
+ "\1\u0232\37\uffff\1\u0232",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0235\37\uffff\1\u0235",
+ "\1\u0236\37\uffff\1\u0236",
+ "\1\u0237\37\uffff\1\u0237",
+ "",
+ "",
+ "\1\u0088\1\uffff\12\u0238\7\uffff\4\u008a\1\u0239\1\u008a\32\uffff\4"+
+ "\u008a\1\u0239\1\u008a",
+ "\1\u0088\1\uffff\1\u0088\2\uffff\12\u023a\7\uffff\6\u008a\32\uffff\6"+
+ "\u008a",
+ "\12\u023a\7\uffff\6\u008a\32\uffff\6\u008a",
+ "\1\u023b\37\uffff\1\u023b",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u023d\37\uffff\1\u023d",
+ "\12\u023e\7\uffff\6\u023e\32\uffff\6\u023e",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0241\37\uffff\1\u0241",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u0243\37\uffff\1\u0243",
+ "\1\u0244\37\uffff\1\u0244",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0246\37\uffff\1\u0246",
+ "\1\u0247\37\uffff\1\u0247",
+ "\1\u0248\37\uffff\1\u0248",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u0249\37\uffff\1\u0249",
+ "\1\u024a\37\uffff\1\u024a",
+ "",
+ "\1\u024b\37\uffff\1\u024b",
+ "\1\u024c\37\uffff\1\u024c",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u024e\37\uffff\1\u024e",
+ "\1\u024f\37\uffff\1\u024f",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "\1\u0251\37\uffff\1\u0251",
+ "",
+ "",
+ "\1\u0252\37\uffff\1\u0252",
+ "\1\u0253\37\uffff\1\u0253",
+ "\1\u0254\37\uffff\1\u0254",
+ "\1\u0255\37\uffff\1\u0255",
+ "\1\u0256\37\uffff\1\u0256",
+ "\1\u0257\37\uffff\1\u0257",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0259\37\uffff\1\u0259",
+ "\1\u025a\37\uffff\1\u025a",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u025c\37\uffff\1\u025c",
+ "\1\u025d\37\uffff\1\u025d",
+ "\1\u025e\37\uffff\1\u025e",
+ "\1\u025f\37\uffff\1\u025f",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0262\37\uffff\1\u0262",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0265\37\uffff\1\u0265",
+ "\1\u0266\37\uffff\1\u0266",
+ "\1\u0267\37\uffff\1\u0267",
+ "",
+ "",
+ "\1\u0268\37\uffff\1\u0268",
+ "\1\u0269\37\uffff\1\u0269",
+ "\1\u026a\37\uffff\1\u026a",
+ "",
+ "\1\u026b\37\uffff\1\u026b",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u026e\37\uffff\1\u026e",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u0270\37\uffff\1\u0270",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0273\37\uffff\1\u0273",
+ "\1\u0274\37\uffff\1\u0274",
+ "",
+ "",
+ "\1\u0275\37\uffff\1\u0275",
+ "\1\u0276\37\uffff\1\u0276",
+ "\1\u0277\37\uffff\1\u0277",
+ "\1\u0088\1\uffff\12\u0278\7\uffff\4\u008a\1\u0279\1\u008a\32\uffff\4"+
+ "\u008a\1\u0279\1\u008a",
+ "\1\u0088\1\uffff\1\u0088\2\uffff\12\u027a\7\uffff\6\u008a\32\uffff\6"+
+ "\u008a",
+ "\12\u027a\7\uffff\6\u008a\32\uffff\6\u008a",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\u027d\7\uffff\6\u027d\32\uffff\6\u027d",
+ "",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u027f\37\uffff\1\u027f",
+ "\1\u0280\37\uffff\1\u0280",
+ "",
+ "\1\u0281\37\uffff\1\u0281",
+ "\1\u0282\37\uffff\1\u0282",
+ "\1\u0283\37\uffff\1\u0283",
+ "\1\u0284\37\uffff\1\u0284",
+ "\1\u0285\37\uffff\1\u0285",
+ "\1\u0286\37\uffff\1\u0286",
+ "\1\u0287\37\uffff\1\u0287",
+ "",
+ "\1\u0288\37\uffff\1\u0288",
+ "\1\u0289\37\uffff\1\u0289",
+ "",
+ "\1\u028a\37\uffff\1\u028a",
+ "\1\u028b\37\uffff\1\u028b",
+ "\1\u028c\37\uffff\1\u028c",
+ "\1\u028d\37\uffff\1\u028d",
+ "\1\u028e\37\uffff\1\u028e",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0290\37\uffff\1\u0290",
+ "",
+ "\1\u0291\37\uffff\1\u0291",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0294\37\uffff\1\u0294",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0296\37\uffff\1\u0296",
+ "",
+ "",
+ "\1\u0297\37\uffff\1\u0297",
+ "",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0299\37\uffff\1\u0299",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u029b\37\uffff\1\u029b",
+ "\1\u029c\37\uffff\1\u029c",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u029e\37\uffff\1\u029e",
+ "",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u02a3\37\uffff\1\u02a3",
+ "\1\u02a4\37\uffff\1\u02a4",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u0088\1\uffff\12\u02a6\7\uffff\4\u008a\1\u02a7\1\u008a\32\uffff\4"+
+ "\u008a\1\u02a7\1\u008a",
+ "\1\u0088\1\uffff\1\u0088\2\uffff\12\u02a8\7\uffff\6\u008a\32\uffff\6"+
+ "\u008a",
+ "\12\u02a8\7\uffff\6\u008a\32\uffff\6\u008a",
+ "",
+ "",
+ "\1\u008a",
+ "",
+ "\1\u02a9\37\uffff\1\u02a9",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\22\54\1\u02ac\7\54\4\uffff\1\54\1\uffff\22\54\1\u02ac"+
+ "\7\54",
+ "\1\u02ad\37\uffff\1\u02ad",
+ "\1\u02ae\37\uffff\1\u02ae",
+ "\1\u02af\37\uffff\1\u02af",
+ "\1\u02b0\37\uffff\1\u02b0",
+ "\1\u02b1\37\uffff\1\u02b1",
+ "\12\54\7\uffff\22\54\1\u02b2\7\54\4\uffff\1\54\1\uffff\22\54\1\u02b2"+
+ "\7\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u02b7\37\uffff\1\u02b7",
+ "\1\u02b8\37\uffff\1\u02b8",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "\1\u02bc\37\uffff\1\u02bc",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u02be\37\uffff\1\u02be",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u02c0\37\uffff\1\u02c0",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u02c2\37\uffff\1\u02c2",
+ "",
+ "",
+ "",
+ "",
+ "\1\u02c3\37\uffff\1\u02c3",
+ "\1\u02c4\37\uffff\1\u02c4",
+ "",
+ "\1\u008a\1\u0088\1\uffff\12\62\13\uffff\1\u0088\37\uffff\1\u0088",
+ "\1\u0088\1\uffff\1\u02c5\2\uffff\12\u0088",
+ "\1\u008a",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "",
+ "",
+ "\1\u02ce\37\uffff\1\u02ce",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "",
+ "\1\u02d0\37\uffff\1\u02d0",
+ "",
+ "\1\u02d1\37\uffff\1\u02d1",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u02d3\37\uffff\1\u02d3",
+ "\1\u02d4\37\uffff\1\u02d4",
+ "\1\u02d5\37\uffff\1\u02d5",
+ "\12\u02d6\7\uffff\6\u008a\32\uffff\6\u008a",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\12\54\7\uffff\22\54\1\u02d8\7\54\4\uffff\1\54\1\uffff\22\54\1\u02d8"+
+ "\7\54",
+ "",
+ "\1\u02d9\37\uffff\1\u02d9",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "\1\u02db\37\uffff\1\u02db",
+ "\1\u02dc\37\uffff\1\u02dc",
+ "\1\u02dd\37\uffff\1\u02dd",
+ "\12\u02de\7\uffff\6\u008a\32\uffff\6\u008a",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\1\u02e0\37\uffff\1\u02e0",
+ "",
+ "\1\u02e1\37\uffff\1\u02e1",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\u02e4\7\uffff\6\u008a\32\uffff\6\u008a",
+ "",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32\54",
+ "",
+ "",
+ "\12\u02e6\7\uffff\6\u008a\32\uffff\6\u008a",
+ "",
+ "\1\u008a"
+ };
+
+ static final short[] DFA21_eot = DFA.unpackEncodedString(DFA21_eotS);
+ static final short[] DFA21_eof = DFA.unpackEncodedString(DFA21_eofS);
+ static final char[] DFA21_min = DFA.unpackEncodedStringToUnsignedChars(DFA21_minS);
+ static final char[] DFA21_max = DFA.unpackEncodedStringToUnsignedChars(DFA21_maxS);
+ static final short[] DFA21_accept = DFA.unpackEncodedString(DFA21_acceptS);
+ static final short[] DFA21_special = DFA.unpackEncodedString(DFA21_specialS);
+ static final short[][] DFA21_transition;
+
+ static {
+ int numStates = DFA21_transitionS.length;
+ DFA21_transition = new short[numStates][];
+ for (int i=0; i", "", "", "", "A", "B", "BOOLEAN", "C", "COMMENT",
+ "D", "DIGIT", "E", "EXPONENT", "F", "FLOAT", "G", "H", "HEX", "HEXNUMBER",
+ "I", "IDENT", "INTEGER", "J", "K", "K_ADD", "K_AGGREGATE", "K_ALL", "K_ALLOW",
+ "K_ALTER", "K_AND", "K_APPLY", "K_AS", "K_ASC", "K_ASCII", "K_AUTHORIZE",
+ "K_BATCH", "K_BEGIN", "K_BIGINT", "K_BLOB", "K_BOOLEAN", "K_BY", "K_CALLED",
+ "K_CLUSTERING", "K_COLUMNFAMILY", "K_COMPACT", "K_CONTAINS", "K_COUNT",
+ "K_COUNTER", "K_CREATE", "K_CUSTOM", "K_DATE", "K_DECIMAL", "K_DELETE",
+ "K_DESC", "K_DESCRIBE", "K_DISTINCT", "K_DOUBLE", "K_DROP", "K_ENTRIES",
+ "K_EXECUTE", "K_EXISTS", "K_FILTERING", "K_FINALFUNC", "K_FLOAT", "K_FROM",
+ "K_FROZEN", "K_FULL", "K_FUNCTION", "K_FUNCTIONS", "K_GRANT", "K_IF",
+ "K_IN", "K_INDEX", "K_INET", "K_INFINITY", "K_INITCOND", "K_INPUT", "K_INSERT",
+ "K_INT", "K_INTO", "K_IS", "K_JSON", "K_KEY", "K_KEYS", "K_KEYSPACE",
+ "K_KEYSPACES", "K_LANGUAGE", "K_LIKE", "K_LIMIT", "K_LIST", "K_LOGIN",
+ "K_MAP", "K_MATERIALIZED", "K_MODIFY", "K_NAN", "K_NOLOGIN", "K_NORECURSIVE",
+ "K_NOSUPERUSER", "K_NOT", "K_NULL", "K_OF", "K_ON", "K_OPTIONS", "K_OR",
+ "K_ORDER", "K_PARTITION", "K_PASSWORD", "K_PER", "K_PERMISSION", "K_PERMISSIONS",
+ "K_PRIMARY", "K_RENAME", "K_REPLACE", "K_RETURNS", "K_REVOKE", "K_ROLE",
+ "K_ROLES", "K_SELECT", "K_SET", "K_SFUNC", "K_SMALLINT", "K_STATIC", "K_STORAGE",
+ "K_STYPE", "K_SUPERUSER", "K_TEXT", "K_TIME", "K_TIMESTAMP", "K_TIMEUUID",
+ "K_TINYINT", "K_TO", "K_TOKEN", "K_TRIGGER", "K_TRUNCATE", "K_TTL", "K_TUPLE",
+ "K_TYPE", "K_UNLOGGED", "K_UPDATE", "K_USE", "K_USER", "K_USERS", "K_USING",
+ "K_UUID", "K_VALUES", "K_VARCHAR", "K_VARINT", "K_VIEW", "K_WHERE", "K_WITH",
+ "K_WRITETIME", "L", "LETTER", "M", "MULTILINE_COMMENT", "N", "O", "P",
+ "Q", "QMARK", "QUOTED_NAME", "R", "S", "STRING_LITERAL", "T", "U", "UUID",
+ "V", "W", "WS", "X", "Y", "Z", "'!='", "'('", "')'", "'+'", "','", "'-'",
+ "'.'", "':'", "';'", "'<'", "'<='", "'='", "'>'", "'>='", "'['", "'\\*'",
+ "']'", "'expr('", "'{'", "'}'"
+ };
+ public static final int EOF=-1;
+ public static final int T__173=173;
+ public static final int T__174=174;
+ public static final int T__175=175;
+ public static final int T__176=176;
+ public static final int T__177=177;
+ public static final int T__178=178;
+ public static final int T__179=179;
+ public static final int T__180=180;
+ public static final int T__181=181;
+ public static final int T__182=182;
+ public static final int T__183=183;
+ public static final int T__184=184;
+ public static final int T__185=185;
+ public static final int T__186=186;
+ public static final int T__187=187;
+ public static final int T__188=188;
+ public static final int T__189=189;
+ public static final int T__190=190;
+ public static final int T__191=191;
+ public static final int T__192=192;
+ public static final int A=4;
+ public static final int B=5;
+ public static final int BOOLEAN=6;
+ public static final int C=7;
+ public static final int COMMENT=8;
+ public static final int D=9;
+ public static final int DIGIT=10;
+ public static final int E=11;
+ public static final int EXPONENT=12;
+ public static final int F=13;
+ public static final int FLOAT=14;
+ public static final int G=15;
+ public static final int H=16;
+ public static final int HEX=17;
+ public static final int HEXNUMBER=18;
+ public static final int I=19;
+ public static final int IDENT=20;
+ public static final int INTEGER=21;
+ public static final int J=22;
+ public static final int K=23;
+ public static final int K_ADD=24;
+ public static final int K_AGGREGATE=25;
+ public static final int K_ALL=26;
+ public static final int K_ALLOW=27;
+ public static final int K_ALTER=28;
+ public static final int K_AND=29;
+ public static final int K_APPLY=30;
+ public static final int K_AS=31;
+ public static final int K_ASC=32;
+ public static final int K_ASCII=33;
+ public static final int K_AUTHORIZE=34;
+ public static final int K_BATCH=35;
+ public static final int K_BEGIN=36;
+ public static final int K_BIGINT=37;
+ public static final int K_BLOB=38;
+ public static final int K_BOOLEAN=39;
+ public static final int K_BY=40;
+ public static final int K_CALLED=41;
+ public static final int K_CLUSTERING=42;
+ public static final int K_COLUMNFAMILY=43;
+ public static final int K_COMPACT=44;
+ public static final int K_CONTAINS=45;
+ public static final int K_COUNT=46;
+ public static final int K_COUNTER=47;
+ public static final int K_CREATE=48;
+ public static final int K_CUSTOM=49;
+ public static final int K_DATE=50;
+ public static final int K_DECIMAL=51;
+ public static final int K_DELETE=52;
+ public static final int K_DESC=53;
+ public static final int K_DESCRIBE=54;
+ public static final int K_DISTINCT=55;
+ public static final int K_DOUBLE=56;
+ public static final int K_DROP=57;
+ public static final int K_ENTRIES=58;
+ public static final int K_EXECUTE=59;
+ public static final int K_EXISTS=60;
+ public static final int K_FILTERING=61;
+ public static final int K_FINALFUNC=62;
+ public static final int K_FLOAT=63;
+ public static final int K_FROM=64;
+ public static final int K_FROZEN=65;
+ public static final int K_FULL=66;
+ public static final int K_FUNCTION=67;
+ public static final int K_FUNCTIONS=68;
+ public static final int K_GRANT=69;
+ public static final int K_IF=70;
+ public static final int K_IN=71;
+ public static final int K_INDEX=72;
+ public static final int K_INET=73;
+ public static final int K_INFINITY=74;
+ public static final int K_INITCOND=75;
+ public static final int K_INPUT=76;
+ public static final int K_INSERT=77;
+ public static final int K_INT=78;
+ public static final int K_INTO=79;
+ public static final int K_IS=80;
+ public static final int K_JSON=81;
+ public static final int K_KEY=82;
+ public static final int K_KEYS=83;
+ public static final int K_KEYSPACE=84;
+ public static final int K_KEYSPACES=85;
+ public static final int K_LANGUAGE=86;
+ public static final int K_LIKE=87;
+ public static final int K_LIMIT=88;
+ public static final int K_LIST=89;
+ public static final int K_LOGIN=90;
+ public static final int K_MAP=91;
+ public static final int K_MATERIALIZED=92;
+ public static final int K_MODIFY=93;
+ public static final int K_NAN=94;
+ public static final int K_NOLOGIN=95;
+ public static final int K_NORECURSIVE=96;
+ public static final int K_NOSUPERUSER=97;
+ public static final int K_NOT=98;
+ public static final int K_NULL=99;
+ public static final int K_OF=100;
+ public static final int K_ON=101;
+ public static final int K_OPTIONS=102;
+ public static final int K_OR=103;
+ public static final int K_ORDER=104;
+ public static final int K_PARTITION=105;
+ public static final int K_PASSWORD=106;
+ public static final int K_PER=107;
+ public static final int K_PERMISSION=108;
+ public static final int K_PERMISSIONS=109;
+ public static final int K_PRIMARY=110;
+ public static final int K_RENAME=111;
+ public static final int K_REPLACE=112;
+ public static final int K_RETURNS=113;
+ public static final int K_REVOKE=114;
+ public static final int K_ROLE=115;
+ public static final int K_ROLES=116;
+ public static final int K_SELECT=117;
+ public static final int K_SET=118;
+ public static final int K_SFUNC=119;
+ public static final int K_SMALLINT=120;
+ public static final int K_STATIC=121;
+ public static final int K_STORAGE=122;
+ public static final int K_STYPE=123;
+ public static final int K_SUPERUSER=124;
+ public static final int K_TEXT=125;
+ public static final int K_TIME=126;
+ public static final int K_TIMESTAMP=127;
+ public static final int K_TIMEUUID=128;
+ public static final int K_TINYINT=129;
+ public static final int K_TO=130;
+ public static final int K_TOKEN=131;
+ public static final int K_TRIGGER=132;
+ public static final int K_TRUNCATE=133;
+ public static final int K_TTL=134;
+ public static final int K_TUPLE=135;
+ public static final int K_TYPE=136;
+ public static final int K_UNLOGGED=137;
+ public static final int K_UPDATE=138;
+ public static final int K_USE=139;
+ public static final int K_USER=140;
+ public static final int K_USERS=141;
+ public static final int K_USING=142;
+ public static final int K_UUID=143;
+ public static final int K_VALUES=144;
+ public static final int K_VARCHAR=145;
+ public static final int K_VARINT=146;
+ public static final int K_VIEW=147;
+ public static final int K_WHERE=148;
+ public static final int K_WITH=149;
+ public static final int K_WRITETIME=150;
+ public static final int L=151;
+ public static final int LETTER=152;
+ public static final int M=153;
+ public static final int MULTILINE_COMMENT=154;
+ public static final int N=155;
+ public static final int O=156;
+ public static final int P=157;
+ public static final int Q=158;
+ public static final int QMARK=159;
+ public static final int QUOTED_NAME=160;
+ public static final int R=161;
+ public static final int S=162;
+ public static final int STRING_LITERAL=163;
+ public static final int T=164;
+ public static final int U=165;
+ public static final int UUID=166;
+ public static final int V=167;
+ public static final int W=168;
+ public static final int WS=169;
+ public static final int X=170;
+ public static final int Y=171;
+ public static final int Z=172;
+
+ // delegates
+ public Parser[] getDelegates() {
+ return new Parser[] {};
+ }
+
+ // delegators
+
+
+ public CqlParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public CqlParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+ }
+
+ @Override public String[] getTokenNames() { return CqlParser.tokenNames; }
+ @Override public String getGrammarFileName() { return "/Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g"; }
+
+
+ private final List listeners = new ArrayList();
+ private final List bindVariables = new ArrayList();
+
+ public static final Set reservedTypeNames = new HashSet()
+ {{
+ add("byte");
+ add("complex");
+ add("enum");
+ add("date");
+ add("interval");
+ add("macaddr");
+ add("bitstring");
+ }};
+
+ public AbstractMarker.Raw newBindVariables(ColumnIdentifier name)
+ {
+ AbstractMarker.Raw marker = new AbstractMarker.Raw(bindVariables.size());
+ bindVariables.add(name);
+ return marker;
+ }
+
+ public AbstractMarker.INRaw newINBindVariables(ColumnIdentifier name)
+ {
+ AbstractMarker.INRaw marker = new AbstractMarker.INRaw(bindVariables.size());
+ bindVariables.add(name);
+ return marker;
+ }
+
+ public Tuples.Raw newTupleBindVariables(ColumnIdentifier name)
+ {
+ Tuples.Raw marker = new Tuples.Raw(bindVariables.size());
+ bindVariables.add(name);
+ return marker;
+ }
+
+ public Tuples.INRaw newTupleINBindVariables(ColumnIdentifier name)
+ {
+ Tuples.INRaw marker = new Tuples.INRaw(bindVariables.size());
+ bindVariables.add(name);
+ return marker;
+ }
+
+ public Json.Marker newJsonBindVariables(ColumnIdentifier name)
+ {
+ Json.Marker marker = new Json.Marker(bindVariables.size());
+ bindVariables.add(name);
+ return marker;
+ }
+
+ public void addErrorListener(ErrorListener listener)
+ {
+ this.listeners.add(listener);
+ }
+
+ public void removeErrorListener(ErrorListener listener)
+ {
+ this.listeners.remove(listener);
+ }
+
+ public void displayRecognitionError(String[] tokenNames, RecognitionException e)
+ {
+ for (int i = 0, m = listeners.size(); i < m; i++)
+ listeners.get(i).syntaxError(this, tokenNames, e);
+ }
+
+ private void addRecognitionError(String msg)
+ {
+ for (int i = 0, m = listeners.size(); i < m; i++)
+ listeners.get(i).syntaxError(this, msg);
+ }
+
+ public Map convertPropertyMap(Maps.Literal map)
+ {
+ if (map == null || map.entries == null || map.entries.isEmpty())
+ return Collections.emptyMap();
+
+ Map res = new HashMap(map.entries.size());
+
+ for (Pair entry : map.entries)
+ {
+ // Because the parser tries to be smart and recover on error (to
+ // allow displaying more than one error I suppose), we have null
+ // entries in there. Just skip those, a proper error will be thrown in the end.
+ if (entry.left == null || entry.right == null)
+ break;
+
+ if (!(entry.left instanceof Constants.Literal))
+ {
+ String msg = "Invalid property name: " + entry.left;
+ if (entry.left instanceof AbstractMarker.Raw)
+ msg += " (bind variables are not supported in DDL queries)";
+ addRecognitionError(msg);
+ break;
+ }
+ if (!(entry.right instanceof Constants.Literal))
+ {
+ String msg = "Invalid property value: " + entry.right + " for property: " + entry.left;
+ if (entry.right instanceof AbstractMarker.Raw)
+ msg += " (bind variables are not supported in DDL queries)";
+ addRecognitionError(msg);
+ break;
+ }
+
+ res.put(((Constants.Literal)entry.left).getRawText(), ((Constants.Literal)entry.right).getRawText());
+ }
+
+ return res;
+ }
+
+ public void addRawUpdate(List> operations, ColumnIdentifier.Raw key, Operation.RawUpdate update)
+ {
+ for (Pair p : operations)
+ {
+ if (p.left.equals(key) && !p.right.isCompatibleWith(update))
+ addRecognitionError("Multiple incompatible setting of column " + key);
+ }
+ operations.add(Pair.create(key, update));
+ }
+
+ public Set filterPermissions(Set permissions, IResource resource)
+ {
+ if (resource == null)
+ return Collections.emptySet();
+ Set filtered = new HashSet<>(permissions);
+ filtered.retainAll(resource.applicablePermissions());
+ if (filtered.isEmpty())
+ addRecognitionError("Resource type " + resource.getClass().getSimpleName() +
+ " does not support any of the requested permissions");
+
+ return filtered;
+ }
+
+
+
+ // $ANTLR start "query"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:231:1: query returns [ParsedStatement stmnt] : st= cqlStatement ( ';' )* EOF ;
+ public final ParsedStatement query() throws RecognitionException {
+ ParsedStatement stmnt = null;
+
+
+ ParsedStatement st =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:232:5: (st= cqlStatement ( ';' )* EOF )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:232:7: st= cqlStatement ( ';' )* EOF
+ {
+ pushFollow(FOLLOW_cqlStatement_in_query72);
+ st=cqlStatement();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:232:23: ( ';' )*
+ loop1:
+ while (true) {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+ if ( (LA1_0==181) ) {
+ alt1=1;
+ }
+
+ switch (alt1) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:232:24: ';'
+ {
+ match(input,181,FOLLOW_181_in_query75);
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ }
+
+ match(input,EOF,FOLLOW_EOF_in_query79);
+ stmnt = st;
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmnt;
+ }
+ // $ANTLR end "query"
+
+
+
+ // $ANTLR start "cqlStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:235:1: cqlStatement returns [ParsedStatement stmt] : (st1= selectStatement |st2= insertStatement |st3= updateStatement |st4= batchStatement |st5= deleteStatement |st6= useStatement |st7= truncateStatement |st8= createKeyspaceStatement |st9= createTableStatement |st10= createIndexStatement |st11= dropKeyspaceStatement |st12= dropTableStatement |st13= dropIndexStatement |st14= alterTableStatement |st15= alterKeyspaceStatement |st16= grantPermissionsStatement |st17= revokePermissionsStatement |st18= listPermissionsStatement |st19= createUserStatement |st20= alterUserStatement |st21= dropUserStatement |st22= listUsersStatement |st23= createTriggerStatement |st24= dropTriggerStatement |st25= createTypeStatement |st26= alterTypeStatement |st27= dropTypeStatement |st28= createFunctionStatement |st29= dropFunctionStatement |st30= createAggregateStatement |st31= dropAggregateStatement |st32= createRoleStatement |st33= alterRoleStatement |st34= dropRoleStatement |st35= listRolesStatement |st36= grantRoleStatement |st37= revokeRoleStatement |st38= createMaterializedViewStatement |st39= dropMaterializedViewStatement |st40= alterMaterializedViewStatement );
+ public final ParsedStatement cqlStatement() throws RecognitionException {
+ ParsedStatement stmt = null;
+
+
+ SelectStatement.RawStatement st1 =null;
+ ModificationStatement.Parsed st2 =null;
+ UpdateStatement.ParsedUpdate st3 =null;
+ BatchStatement.Parsed st4 =null;
+ DeleteStatement.Parsed st5 =null;
+ UseStatement st6 =null;
+ TruncateStatement st7 =null;
+ CreateKeyspaceStatement st8 =null;
+ CreateTableStatement.RawStatement st9 =null;
+ CreateIndexStatement st10 =null;
+ DropKeyspaceStatement st11 =null;
+ DropTableStatement st12 =null;
+ DropIndexStatement st13 =null;
+ AlterTableStatement st14 =null;
+ AlterKeyspaceStatement st15 =null;
+ GrantPermissionsStatement st16 =null;
+ RevokePermissionsStatement st17 =null;
+ ListPermissionsStatement st18 =null;
+ CreateRoleStatement st19 =null;
+ AlterRoleStatement st20 =null;
+ DropRoleStatement st21 =null;
+ ListRolesStatement st22 =null;
+ CreateTriggerStatement st23 =null;
+ DropTriggerStatement st24 =null;
+ CreateTypeStatement st25 =null;
+ AlterTypeStatement st26 =null;
+ DropTypeStatement st27 =null;
+ CreateFunctionStatement st28 =null;
+ DropFunctionStatement st29 =null;
+ CreateAggregateStatement st30 =null;
+ DropAggregateStatement st31 =null;
+ CreateRoleStatement st32 =null;
+ AlterRoleStatement st33 =null;
+ DropRoleStatement st34 =null;
+ ListRolesStatement st35 =null;
+ GrantRoleStatement st36 =null;
+ RevokeRoleStatement st37 =null;
+ CreateViewStatement st38 =null;
+ DropViewStatement st39 =null;
+ AlterViewStatement st40 =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:237:5: (st1= selectStatement |st2= insertStatement |st3= updateStatement |st4= batchStatement |st5= deleteStatement |st6= useStatement |st7= truncateStatement |st8= createKeyspaceStatement |st9= createTableStatement |st10= createIndexStatement |st11= dropKeyspaceStatement |st12= dropTableStatement |st13= dropIndexStatement |st14= alterTableStatement |st15= alterKeyspaceStatement |st16= grantPermissionsStatement |st17= revokePermissionsStatement |st18= listPermissionsStatement |st19= createUserStatement |st20= alterUserStatement |st21= dropUserStatement |st22= listUsersStatement |st23= createTriggerStatement |st24= dropTriggerStatement |st25= createTypeStatement |st26= alterTypeStatement |st27= dropTypeStatement |st28= createFunctionStatement |st29= dropFunctionStatement |st30= createAggregateStatement |st31= dropAggregateStatement |st32= createRoleStatement |st33= alterRoleStatement |st34= dropRoleStatement |st35= listRolesStatement |st36= grantRoleStatement |st37= revokeRoleStatement |st38= createMaterializedViewStatement |st39= dropMaterializedViewStatement |st40= alterMaterializedViewStatement )
+ int alt2=40;
+ alt2 = dfa2.predict(input);
+ switch (alt2) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:237:7: st1= selectStatement
+ {
+ pushFollow(FOLLOW_selectStatement_in_cqlStatement113);
+ st1=selectStatement();
+ state._fsp--;
+
+ stmt = st1;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:238:7: st2= insertStatement
+ {
+ pushFollow(FOLLOW_insertStatement_in_cqlStatement142);
+ st2=insertStatement();
+ state._fsp--;
+
+ stmt = st2;
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:239:7: st3= updateStatement
+ {
+ pushFollow(FOLLOW_updateStatement_in_cqlStatement171);
+ st3=updateStatement();
+ state._fsp--;
+
+ stmt = st3;
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:240:7: st4= batchStatement
+ {
+ pushFollow(FOLLOW_batchStatement_in_cqlStatement200);
+ st4=batchStatement();
+ state._fsp--;
+
+ stmt = st4;
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:241:7: st5= deleteStatement
+ {
+ pushFollow(FOLLOW_deleteStatement_in_cqlStatement230);
+ st5=deleteStatement();
+ state._fsp--;
+
+ stmt = st5;
+ }
+ break;
+ case 6 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:242:7: st6= useStatement
+ {
+ pushFollow(FOLLOW_useStatement_in_cqlStatement259);
+ st6=useStatement();
+ state._fsp--;
+
+ stmt = st6;
+ }
+ break;
+ case 7 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:243:7: st7= truncateStatement
+ {
+ pushFollow(FOLLOW_truncateStatement_in_cqlStatement291);
+ st7=truncateStatement();
+ state._fsp--;
+
+ stmt = st7;
+ }
+ break;
+ case 8 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:244:7: st8= createKeyspaceStatement
+ {
+ pushFollow(FOLLOW_createKeyspaceStatement_in_cqlStatement318);
+ st8=createKeyspaceStatement();
+ state._fsp--;
+
+ stmt = st8;
+ }
+ break;
+ case 9 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:245:7: st9= createTableStatement
+ {
+ pushFollow(FOLLOW_createTableStatement_in_cqlStatement339);
+ st9=createTableStatement();
+ state._fsp--;
+
+ stmt = st9;
+ }
+ break;
+ case 10 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:246:7: st10= createIndexStatement
+ {
+ pushFollow(FOLLOW_createIndexStatement_in_cqlStatement362);
+ st10=createIndexStatement();
+ state._fsp--;
+
+ stmt = st10;
+ }
+ break;
+ case 11 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:247:7: st11= dropKeyspaceStatement
+ {
+ pushFollow(FOLLOW_dropKeyspaceStatement_in_cqlStatement385);
+ st11=dropKeyspaceStatement();
+ state._fsp--;
+
+ stmt = st11;
+ }
+ break;
+ case 12 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:248:7: st12= dropTableStatement
+ {
+ pushFollow(FOLLOW_dropTableStatement_in_cqlStatement407);
+ st12=dropTableStatement();
+ state._fsp--;
+
+ stmt = st12;
+ }
+ break;
+ case 13 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:249:7: st13= dropIndexStatement
+ {
+ pushFollow(FOLLOW_dropIndexStatement_in_cqlStatement432);
+ st13=dropIndexStatement();
+ state._fsp--;
+
+ stmt = st13;
+ }
+ break;
+ case 14 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:250:7: st14= alterTableStatement
+ {
+ pushFollow(FOLLOW_alterTableStatement_in_cqlStatement457);
+ st14=alterTableStatement();
+ state._fsp--;
+
+ stmt = st14;
+ }
+ break;
+ case 15 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:251:7: st15= alterKeyspaceStatement
+ {
+ pushFollow(FOLLOW_alterKeyspaceStatement_in_cqlStatement481);
+ st15=alterKeyspaceStatement();
+ state._fsp--;
+
+ stmt = st15;
+ }
+ break;
+ case 16 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:252:7: st16= grantPermissionsStatement
+ {
+ pushFollow(FOLLOW_grantPermissionsStatement_in_cqlStatement502);
+ st16=grantPermissionsStatement();
+ state._fsp--;
+
+ stmt = st16;
+ }
+ break;
+ case 17 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:253:7: st17= revokePermissionsStatement
+ {
+ pushFollow(FOLLOW_revokePermissionsStatement_in_cqlStatement520);
+ st17=revokePermissionsStatement();
+ state._fsp--;
+
+ stmt = st17;
+ }
+ break;
+ case 18 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:254:7: st18= listPermissionsStatement
+ {
+ pushFollow(FOLLOW_listPermissionsStatement_in_cqlStatement537);
+ st18=listPermissionsStatement();
+ state._fsp--;
+
+ stmt = st18;
+ }
+ break;
+ case 19 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:255:7: st19= createUserStatement
+ {
+ pushFollow(FOLLOW_createUserStatement_in_cqlStatement556);
+ st19=createUserStatement();
+ state._fsp--;
+
+ stmt = st19;
+ }
+ break;
+ case 20 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:256:7: st20= alterUserStatement
+ {
+ pushFollow(FOLLOW_alterUserStatement_in_cqlStatement580);
+ st20=alterUserStatement();
+ state._fsp--;
+
+ stmt = st20;
+ }
+ break;
+ case 21 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:257:7: st21= dropUserStatement
+ {
+ pushFollow(FOLLOW_dropUserStatement_in_cqlStatement605);
+ st21=dropUserStatement();
+ state._fsp--;
+
+ stmt = st21;
+ }
+ break;
+ case 22 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:258:7: st22= listUsersStatement
+ {
+ pushFollow(FOLLOW_listUsersStatement_in_cqlStatement631);
+ st22=listUsersStatement();
+ state._fsp--;
+
+ stmt = st22;
+ }
+ break;
+ case 23 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:259:7: st23= createTriggerStatement
+ {
+ pushFollow(FOLLOW_createTriggerStatement_in_cqlStatement656);
+ st23=createTriggerStatement();
+ state._fsp--;
+
+ stmt = st23;
+ }
+ break;
+ case 24 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:260:7: st24= dropTriggerStatement
+ {
+ pushFollow(FOLLOW_dropTriggerStatement_in_cqlStatement677);
+ st24=dropTriggerStatement();
+ state._fsp--;
+
+ stmt = st24;
+ }
+ break;
+ case 25 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:261:7: st25= createTypeStatement
+ {
+ pushFollow(FOLLOW_createTypeStatement_in_cqlStatement700);
+ st25=createTypeStatement();
+ state._fsp--;
+
+ stmt = st25;
+ }
+ break;
+ case 26 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:262:7: st26= alterTypeStatement
+ {
+ pushFollow(FOLLOW_alterTypeStatement_in_cqlStatement724);
+ st26=alterTypeStatement();
+ state._fsp--;
+
+ stmt = st26;
+ }
+ break;
+ case 27 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:263:7: st27= dropTypeStatement
+ {
+ pushFollow(FOLLOW_dropTypeStatement_in_cqlStatement749);
+ st27=dropTypeStatement();
+ state._fsp--;
+
+ stmt = st27;
+ }
+ break;
+ case 28 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:264:7: st28= createFunctionStatement
+ {
+ pushFollow(FOLLOW_createFunctionStatement_in_cqlStatement775);
+ st28=createFunctionStatement();
+ state._fsp--;
+
+ stmt = st28;
+ }
+ break;
+ case 29 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:265:7: st29= dropFunctionStatement
+ {
+ pushFollow(FOLLOW_dropFunctionStatement_in_cqlStatement795);
+ st29=dropFunctionStatement();
+ state._fsp--;
+
+ stmt = st29;
+ }
+ break;
+ case 30 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:266:7: st30= createAggregateStatement
+ {
+ pushFollow(FOLLOW_createAggregateStatement_in_cqlStatement817);
+ st30=createAggregateStatement();
+ state._fsp--;
+
+ stmt = st30;
+ }
+ break;
+ case 31 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:267:7: st31= dropAggregateStatement
+ {
+ pushFollow(FOLLOW_dropAggregateStatement_in_cqlStatement836);
+ st31=dropAggregateStatement();
+ state._fsp--;
+
+ stmt = st31;
+ }
+ break;
+ case 32 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:268:7: st32= createRoleStatement
+ {
+ pushFollow(FOLLOW_createRoleStatement_in_cqlStatement857);
+ st32=createRoleStatement();
+ state._fsp--;
+
+ stmt = st32;
+ }
+ break;
+ case 33 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:269:7: st33= alterRoleStatement
+ {
+ pushFollow(FOLLOW_alterRoleStatement_in_cqlStatement881);
+ st33=alterRoleStatement();
+ state._fsp--;
+
+ stmt = st33;
+ }
+ break;
+ case 34 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:270:7: st34= dropRoleStatement
+ {
+ pushFollow(FOLLOW_dropRoleStatement_in_cqlStatement906);
+ st34=dropRoleStatement();
+ state._fsp--;
+
+ stmt = st34;
+ }
+ break;
+ case 35 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:271:7: st35= listRolesStatement
+ {
+ pushFollow(FOLLOW_listRolesStatement_in_cqlStatement932);
+ st35=listRolesStatement();
+ state._fsp--;
+
+ stmt = st35;
+ }
+ break;
+ case 36 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:272:7: st36= grantRoleStatement
+ {
+ pushFollow(FOLLOW_grantRoleStatement_in_cqlStatement957);
+ st36=grantRoleStatement();
+ state._fsp--;
+
+ stmt = st36;
+ }
+ break;
+ case 37 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:273:7: st37= revokeRoleStatement
+ {
+ pushFollow(FOLLOW_revokeRoleStatement_in_cqlStatement982);
+ st37=revokeRoleStatement();
+ state._fsp--;
+
+ stmt = st37;
+ }
+ break;
+ case 38 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:274:7: st38= createMaterializedViewStatement
+ {
+ pushFollow(FOLLOW_createMaterializedViewStatement_in_cqlStatement1006);
+ st38=createMaterializedViewStatement();
+ state._fsp--;
+
+ stmt = st38;
+ }
+ break;
+ case 39 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:275:7: st39= dropMaterializedViewStatement
+ {
+ pushFollow(FOLLOW_dropMaterializedViewStatement_in_cqlStatement1018);
+ st39=dropMaterializedViewStatement();
+ state._fsp--;
+
+ stmt = st39;
+ }
+ break;
+ case 40 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:276:7: st40= alterMaterializedViewStatement
+ {
+ pushFollow(FOLLOW_alterMaterializedViewStatement_in_cqlStatement1032);
+ st40=alterMaterializedViewStatement();
+ state._fsp--;
+
+ stmt = st40;
+ }
+ break;
+
+ }
+ if (stmt != null) stmt.setBoundVariables(bindVariables);
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "cqlStatement"
+
+
+
+ // $ANTLR start "useStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:282:1: useStatement returns [UseStatement stmt] : K_USE ks= keyspaceName ;
+ public final UseStatement useStatement() throws RecognitionException {
+ UseStatement stmt = null;
+
+
+ String ks =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:283:5: ( K_USE ks= keyspaceName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:283:7: K_USE ks= keyspaceName
+ {
+ match(input,K_USE,FOLLOW_K_USE_in_useStatement1058);
+ pushFollow(FOLLOW_keyspaceName_in_useStatement1062);
+ ks=keyspaceName();
+ state._fsp--;
+
+ stmt = new UseStatement(ks);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "useStatement"
+
+
+
+ // $ANTLR start "selectStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:292:1: selectStatement returns [SelectStatement.RawStatement expr] : K_SELECT ( K_JSON )? ( ( K_DISTINCT )? sclause= selectClause ) K_FROM cf= columnFamilyName ( K_WHERE wclause= whereClause )? ( K_ORDER K_BY orderByClause[orderings] ( ',' orderByClause[orderings] )* )? ( K_PER K_PARTITION K_LIMIT rows= intValue )? ( K_LIMIT rows= intValue )? ( K_ALLOW K_FILTERING )? ;
+ public final SelectStatement.RawStatement selectStatement() throws RecognitionException {
+ SelectStatement.RawStatement expr = null;
+
+
+ List sclause =null;
+ CFName cf =null;
+ WhereClause.Builder wclause =null;
+ Term.Raw rows =null;
+
+
+ boolean isDistinct = false;
+ Term.Raw limit = null;
+ Term.Raw perPartitionLimit = null;
+ Map orderings = new LinkedHashMap();
+ boolean allowFiltering = false;
+ boolean isJson = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:301:5: ( K_SELECT ( K_JSON )? ( ( K_DISTINCT )? sclause= selectClause ) K_FROM cf= columnFamilyName ( K_WHERE wclause= whereClause )? ( K_ORDER K_BY orderByClause[orderings] ( ',' orderByClause[orderings] )* )? ( K_PER K_PARTITION K_LIMIT rows= intValue )? ( K_LIMIT rows= intValue )? ( K_ALLOW K_FILTERING )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:301:7: K_SELECT ( K_JSON )? ( ( K_DISTINCT )? sclause= selectClause ) K_FROM cf= columnFamilyName ( K_WHERE wclause= whereClause )? ( K_ORDER K_BY orderByClause[orderings] ( ',' orderByClause[orderings] )* )? ( K_PER K_PARTITION K_LIMIT rows= intValue )? ( K_LIMIT rows= intValue )? ( K_ALLOW K_FILTERING )?
+ {
+ match(input,K_SELECT,FOLLOW_K_SELECT_in_selectStatement1096);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:302:7: ( K_JSON )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+ if ( (LA3_0==K_JSON) ) {
+ int LA3_1 = input.LA(2);
+ if ( (LA3_1==IDENT||(LA3_1 >= K_AGGREGATE && LA3_1 <= K_ALL)||LA3_1==K_ASCII||(LA3_1 >= K_BIGINT && LA3_1 <= K_BOOLEAN)||(LA3_1 >= K_CALLED && LA3_1 <= K_CLUSTERING)||(LA3_1 >= K_COMPACT && LA3_1 <= K_COUNTER)||(LA3_1 >= K_CUSTOM && LA3_1 <= K_DECIMAL)||(LA3_1 >= K_DISTINCT && LA3_1 <= K_DOUBLE)||(LA3_1 >= K_EXISTS && LA3_1 <= K_FLOAT)||LA3_1==K_FROZEN||(LA3_1 >= K_FUNCTION && LA3_1 <= K_FUNCTIONS)||LA3_1==K_INET||(LA3_1 >= K_INITCOND && LA3_1 <= K_INPUT)||LA3_1==K_INT||(LA3_1 >= K_JSON && LA3_1 <= K_KEYS)||(LA3_1 >= K_KEYSPACES && LA3_1 <= K_LIKE)||(LA3_1 >= K_LIST && LA3_1 <= K_MAP)||LA3_1==K_NOLOGIN||LA3_1==K_NOSUPERUSER||LA3_1==K_OPTIONS||(LA3_1 >= K_PARTITION && LA3_1 <= K_PERMISSIONS)||LA3_1==K_RETURNS||(LA3_1 >= K_ROLE && LA3_1 <= K_ROLES)||(LA3_1 >= K_SFUNC && LA3_1 <= K_TINYINT)||(LA3_1 >= K_TOKEN && LA3_1 <= K_TRIGGER)||(LA3_1 >= K_TTL && LA3_1 <= K_TYPE)||(LA3_1 >= K_USER && LA3_1 <= K_USERS)||(LA3_1 >= K_UUID && LA3_1 <= K_VARINT)||LA3_1==K_WRITETIME||(LA3_1 >= QMARK && LA3_1 <= QUOTED_NAME)||LA3_1==188) ) {
+ alt3=1;
+ }
+ else if ( (LA3_1==K_AS) ) {
+ int LA3_4 = input.LA(3);
+ if ( (LA3_4==K_FROM||LA3_4==174||LA3_4==177||LA3_4==179) ) {
+ alt3=1;
+ }
+ else if ( (LA3_4==K_AS) ) {
+ int LA3_5 = input.LA(4);
+ if ( (LA3_5==IDENT||(LA3_5 >= K_AGGREGATE && LA3_5 <= K_ALL)||LA3_5==K_AS||LA3_5==K_ASCII||(LA3_5 >= K_BIGINT && LA3_5 <= K_BOOLEAN)||(LA3_5 >= K_CALLED && LA3_5 <= K_CLUSTERING)||(LA3_5 >= K_COMPACT && LA3_5 <= K_COUNTER)||(LA3_5 >= K_CUSTOM && LA3_5 <= K_DECIMAL)||(LA3_5 >= K_DISTINCT && LA3_5 <= K_DOUBLE)||(LA3_5 >= K_EXISTS && LA3_5 <= K_FLOAT)||LA3_5==K_FROZEN||(LA3_5 >= K_FUNCTION && LA3_5 <= K_FUNCTIONS)||LA3_5==K_INET||(LA3_5 >= K_INITCOND && LA3_5 <= K_INPUT)||LA3_5==K_INT||(LA3_5 >= K_JSON && LA3_5 <= K_KEYS)||(LA3_5 >= K_KEYSPACES && LA3_5 <= K_LIKE)||(LA3_5 >= K_LIST && LA3_5 <= K_MAP)||LA3_5==K_NOLOGIN||LA3_5==K_NOSUPERUSER||LA3_5==K_OPTIONS||(LA3_5 >= K_PARTITION && LA3_5 <= K_PERMISSIONS)||LA3_5==K_RETURNS||(LA3_5 >= K_ROLE && LA3_5 <= K_ROLES)||(LA3_5 >= K_SFUNC && LA3_5 <= K_TINYINT)||LA3_5==K_TRIGGER||(LA3_5 >= K_TTL && LA3_5 <= K_TYPE)||(LA3_5 >= K_USER && LA3_5 <= K_USERS)||(LA3_5 >= K_UUID && LA3_5 <= K_VARINT)||LA3_5==K_WRITETIME||LA3_5==QUOTED_NAME) ) {
+ alt3=1;
+ }
+ }
+ }
+ }
+ switch (alt3) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:302:9: K_JSON
+ {
+ match(input,K_JSON,FOLLOW_K_JSON_in_selectStatement1107);
+ isJson = true;
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:303:7: ( ( K_DISTINCT )? sclause= selectClause )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:303:9: ( K_DISTINCT )? sclause= selectClause
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:303:9: ( K_DISTINCT )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+ if ( (LA4_0==K_DISTINCT) ) {
+ int LA4_1 = input.LA(2);
+ if ( (LA4_1==IDENT||(LA4_1 >= K_AGGREGATE && LA4_1 <= K_ALL)||LA4_1==K_ASCII||(LA4_1 >= K_BIGINT && LA4_1 <= K_BOOLEAN)||(LA4_1 >= K_CALLED && LA4_1 <= K_CLUSTERING)||(LA4_1 >= K_COMPACT && LA4_1 <= K_COUNTER)||(LA4_1 >= K_CUSTOM && LA4_1 <= K_DECIMAL)||(LA4_1 >= K_DISTINCT && LA4_1 <= K_DOUBLE)||(LA4_1 >= K_EXISTS && LA4_1 <= K_FLOAT)||LA4_1==K_FROZEN||(LA4_1 >= K_FUNCTION && LA4_1 <= K_FUNCTIONS)||LA4_1==K_INET||(LA4_1 >= K_INITCOND && LA4_1 <= K_INPUT)||LA4_1==K_INT||(LA4_1 >= K_JSON && LA4_1 <= K_KEYS)||(LA4_1 >= K_KEYSPACES && LA4_1 <= K_LIKE)||(LA4_1 >= K_LIST && LA4_1 <= K_MAP)||LA4_1==K_NOLOGIN||LA4_1==K_NOSUPERUSER||LA4_1==K_OPTIONS||(LA4_1 >= K_PARTITION && LA4_1 <= K_PERMISSIONS)||LA4_1==K_RETURNS||(LA4_1 >= K_ROLE && LA4_1 <= K_ROLES)||(LA4_1 >= K_SFUNC && LA4_1 <= K_TINYINT)||(LA4_1 >= K_TOKEN && LA4_1 <= K_TRIGGER)||(LA4_1 >= K_TTL && LA4_1 <= K_TYPE)||(LA4_1 >= K_USER && LA4_1 <= K_USERS)||(LA4_1 >= K_UUID && LA4_1 <= K_VARINT)||LA4_1==K_WRITETIME||(LA4_1 >= QMARK && LA4_1 <= QUOTED_NAME)||LA4_1==188) ) {
+ alt4=1;
+ }
+ else if ( (LA4_1==K_AS) ) {
+ int LA4_4 = input.LA(3);
+ if ( (LA4_4==K_FROM||LA4_4==174||LA4_4==177||LA4_4==179) ) {
+ alt4=1;
+ }
+ else if ( (LA4_4==K_AS) ) {
+ int LA4_5 = input.LA(4);
+ if ( (LA4_5==IDENT||(LA4_5 >= K_AGGREGATE && LA4_5 <= K_ALL)||LA4_5==K_AS||LA4_5==K_ASCII||(LA4_5 >= K_BIGINT && LA4_5 <= K_BOOLEAN)||(LA4_5 >= K_CALLED && LA4_5 <= K_CLUSTERING)||(LA4_5 >= K_COMPACT && LA4_5 <= K_COUNTER)||(LA4_5 >= K_CUSTOM && LA4_5 <= K_DECIMAL)||(LA4_5 >= K_DISTINCT && LA4_5 <= K_DOUBLE)||(LA4_5 >= K_EXISTS && LA4_5 <= K_FLOAT)||LA4_5==K_FROZEN||(LA4_5 >= K_FUNCTION && LA4_5 <= K_FUNCTIONS)||LA4_5==K_INET||(LA4_5 >= K_INITCOND && LA4_5 <= K_INPUT)||LA4_5==K_INT||(LA4_5 >= K_JSON && LA4_5 <= K_KEYS)||(LA4_5 >= K_KEYSPACES && LA4_5 <= K_LIKE)||(LA4_5 >= K_LIST && LA4_5 <= K_MAP)||LA4_5==K_NOLOGIN||LA4_5==K_NOSUPERUSER||LA4_5==K_OPTIONS||(LA4_5 >= K_PARTITION && LA4_5 <= K_PERMISSIONS)||LA4_5==K_RETURNS||(LA4_5 >= K_ROLE && LA4_5 <= K_ROLES)||(LA4_5 >= K_SFUNC && LA4_5 <= K_TINYINT)||LA4_5==K_TRIGGER||(LA4_5 >= K_TTL && LA4_5 <= K_TYPE)||(LA4_5 >= K_USER && LA4_5 <= K_USERS)||(LA4_5 >= K_UUID && LA4_5 <= K_VARINT)||LA4_5==K_WRITETIME||LA4_5==QUOTED_NAME) ) {
+ alt4=1;
+ }
+ }
+ }
+ }
+ switch (alt4) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:303:11: K_DISTINCT
+ {
+ match(input,K_DISTINCT,FOLLOW_K_DISTINCT_in_selectStatement1124);
+ isDistinct = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_selectClause_in_selectStatement1133);
+ sclause=selectClause();
+ state._fsp--;
+
+ }
+
+ match(input,K_FROM,FOLLOW_K_FROM_in_selectStatement1143);
+ pushFollow(FOLLOW_columnFamilyName_in_selectStatement1147);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:305:7: ( K_WHERE wclause= whereClause )?
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+ if ( (LA5_0==K_WHERE) ) {
+ alt5=1;
+ }
+ switch (alt5) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:305:9: K_WHERE wclause= whereClause
+ {
+ match(input,K_WHERE,FOLLOW_K_WHERE_in_selectStatement1157);
+ pushFollow(FOLLOW_whereClause_in_selectStatement1161);
+ wclause=whereClause();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:306:7: ( K_ORDER K_BY orderByClause[orderings] ( ',' orderByClause[orderings] )* )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+ if ( (LA7_0==K_ORDER) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:306:9: K_ORDER K_BY orderByClause[orderings] ( ',' orderByClause[orderings] )*
+ {
+ match(input,K_ORDER,FOLLOW_K_ORDER_in_selectStatement1174);
+ match(input,K_BY,FOLLOW_K_BY_in_selectStatement1176);
+ pushFollow(FOLLOW_orderByClause_in_selectStatement1178);
+ orderByClause(orderings);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:306:47: ( ',' orderByClause[orderings] )*
+ loop6:
+ while (true) {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+ if ( (LA6_0==177) ) {
+ alt6=1;
+ }
+
+ switch (alt6) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:306:49: ',' orderByClause[orderings]
+ {
+ match(input,177,FOLLOW_177_in_selectStatement1183);
+ pushFollow(FOLLOW_orderByClause_in_selectStatement1185);
+ orderByClause(orderings);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:307:7: ( K_PER K_PARTITION K_LIMIT rows= intValue )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+ if ( (LA8_0==K_PER) ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:307:9: K_PER K_PARTITION K_LIMIT rows= intValue
+ {
+ match(input,K_PER,FOLLOW_K_PER_in_selectStatement1202);
+ match(input,K_PARTITION,FOLLOW_K_PARTITION_in_selectStatement1204);
+ match(input,K_LIMIT,FOLLOW_K_LIMIT_in_selectStatement1206);
+ pushFollow(FOLLOW_intValue_in_selectStatement1210);
+ rows=intValue();
+ state._fsp--;
+
+ perPartitionLimit = rows;
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:308:7: ( K_LIMIT rows= intValue )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+ if ( (LA9_0==K_LIMIT) ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:308:9: K_LIMIT rows= intValue
+ {
+ match(input,K_LIMIT,FOLLOW_K_LIMIT_in_selectStatement1225);
+ pushFollow(FOLLOW_intValue_in_selectStatement1229);
+ rows=intValue();
+ state._fsp--;
+
+ limit = rows;
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:309:7: ( K_ALLOW K_FILTERING )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+ if ( (LA10_0==K_ALLOW) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:309:9: K_ALLOW K_FILTERING
+ {
+ match(input,K_ALLOW,FOLLOW_K_ALLOW_in_selectStatement1244);
+ match(input,K_FILTERING,FOLLOW_K_FILTERING_in_selectStatement1246);
+ allowFiltering = true;
+ }
+ break;
+
+ }
+
+
+ SelectStatement.Parameters params = new SelectStatement.Parameters(orderings,
+ isDistinct,
+ allowFiltering,
+ isJson);
+ WhereClause where = wclause == null ? WhereClause.empty() : wclause.build();
+ expr = new SelectStatement.RawStatement(cf, params, sclause, where, limit, perPartitionLimit);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "selectStatement"
+
+
+
+ // $ANTLR start "selectClause"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:320:1: selectClause returns [List expr] : (t1= selector ( ',' tN= selector )* | '\\*' );
+ public final List selectClause() throws RecognitionException {
+ List expr = null;
+
+
+ RawSelector t1 =null;
+ RawSelector tN =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:321:5: (t1= selector ( ',' tN= selector )* | '\\*' )
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+ if ( (LA12_0==IDENT||(LA12_0 >= K_AGGREGATE && LA12_0 <= K_ALL)||LA12_0==K_AS||LA12_0==K_ASCII||(LA12_0 >= K_BIGINT && LA12_0 <= K_BOOLEAN)||(LA12_0 >= K_CALLED && LA12_0 <= K_CLUSTERING)||(LA12_0 >= K_COMPACT && LA12_0 <= K_COUNTER)||(LA12_0 >= K_CUSTOM && LA12_0 <= K_DECIMAL)||(LA12_0 >= K_DISTINCT && LA12_0 <= K_DOUBLE)||(LA12_0 >= K_EXISTS && LA12_0 <= K_FLOAT)||LA12_0==K_FROZEN||(LA12_0 >= K_FUNCTION && LA12_0 <= K_FUNCTIONS)||LA12_0==K_INET||(LA12_0 >= K_INITCOND && LA12_0 <= K_INPUT)||LA12_0==K_INT||(LA12_0 >= K_JSON && LA12_0 <= K_KEYS)||(LA12_0 >= K_KEYSPACES && LA12_0 <= K_LIKE)||(LA12_0 >= K_LIST && LA12_0 <= K_MAP)||LA12_0==K_NOLOGIN||LA12_0==K_NOSUPERUSER||LA12_0==K_OPTIONS||(LA12_0 >= K_PARTITION && LA12_0 <= K_PERMISSIONS)||LA12_0==K_RETURNS||(LA12_0 >= K_ROLE && LA12_0 <= K_ROLES)||(LA12_0 >= K_SFUNC && LA12_0 <= K_TINYINT)||(LA12_0 >= K_TOKEN && LA12_0 <= K_TRIGGER)||(LA12_0 >= K_TTL && LA12_0 <= K_TYPE)||(LA12_0 >= K_USER && LA12_0 <= K_USERS)||(LA12_0 >= K_UUID && LA12_0 <= K_VARINT)||LA12_0==K_WRITETIME||(LA12_0 >= QMARK && LA12_0 <= QUOTED_NAME)) ) {
+ alt12=1;
+ }
+ else if ( (LA12_0==188) ) {
+ alt12=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 12, 0, input);
+ throw nvae;
+ }
+
+ switch (alt12) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:321:7: t1= selector ( ',' tN= selector )*
+ {
+ pushFollow(FOLLOW_selector_in_selectClause1283);
+ t1=selector();
+ state._fsp--;
+
+ expr = new ArrayList(); expr.add(t1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:321:76: ( ',' tN= selector )*
+ loop11:
+ while (true) {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+ if ( (LA11_0==177) ) {
+ alt11=1;
+ }
+
+ switch (alt11) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:321:77: ',' tN= selector
+ {
+ match(input,177,FOLLOW_177_in_selectClause1288);
+ pushFollow(FOLLOW_selector_in_selectClause1292);
+ tN=selector();
+ state._fsp--;
+
+ expr.add(tN);
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:322:7: '\\*'
+ {
+ match(input,188,FOLLOW_188_in_selectClause1304);
+ expr = Collections.emptyList();
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "selectClause"
+
+
+
+ // $ANTLR start "selector"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:325:1: selector returns [RawSelector s] : us= unaliasedSelector ( K_AS c= noncol_ident )? ;
+ public final RawSelector selector() throws RecognitionException {
+ RawSelector s = null;
+
+
+ Selectable.Raw us =null;
+ ColumnIdentifier c =null;
+
+ ColumnIdentifier alias = null;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:327:5: (us= unaliasedSelector ( K_AS c= noncol_ident )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:327:7: us= unaliasedSelector ( K_AS c= noncol_ident )?
+ {
+ pushFollow(FOLLOW_unaliasedSelector_in_selector1337);
+ us=unaliasedSelector();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:327:28: ( K_AS c= noncol_ident )?
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+ if ( (LA13_0==K_AS) ) {
+ alt13=1;
+ }
+ switch (alt13) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:327:29: K_AS c= noncol_ident
+ {
+ match(input,K_AS,FOLLOW_K_AS_in_selector1340);
+ pushFollow(FOLLOW_noncol_ident_in_selector1344);
+ c=noncol_ident();
+ state._fsp--;
+
+ alias = c;
+ }
+ break;
+
+ }
+
+ s = new RawSelector(us, alias);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return s;
+ }
+ // $ANTLR end "selector"
+
+
+
+ // $ANTLR start "unaliasedSelector"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:330:1: unaliasedSelector returns [Selectable.Raw s] : (c= cident | K_COUNT '(' countArgument ')' | K_WRITETIME '(' c= cident ')' | K_TTL '(' c= cident ')' |f= functionName args= selectionFunctionArgs ) ( '.' fi= cident )* ;
+ public final Selectable.Raw unaliasedSelector() throws RecognitionException {
+ Selectable.Raw s = null;
+
+
+ ColumnIdentifier.Raw c =null;
+ FunctionName f =null;
+ List args =null;
+ ColumnIdentifier.Raw fi =null;
+
+ Selectable.Raw tmp = null;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:332:5: ( (c= cident | K_COUNT '(' countArgument ')' | K_WRITETIME '(' c= cident ')' | K_TTL '(' c= cident ')' |f= functionName args= selectionFunctionArgs ) ( '.' fi= cident )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:332:8: (c= cident | K_COUNT '(' countArgument ')' | K_WRITETIME '(' c= cident ')' | K_TTL '(' c= cident ')' |f= functionName args= selectionFunctionArgs ) ( '.' fi= cident )*
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:332:8: (c= cident | K_COUNT '(' countArgument ')' | K_WRITETIME '(' c= cident ')' | K_TTL '(' c= cident ')' |f= functionName args= selectionFunctionArgs )
+ int alt14=5;
+ alt14 = dfa14.predict(input);
+ switch (alt14) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:332:10: c= cident
+ {
+ pushFollow(FOLLOW_cident_in_unaliasedSelector1385);
+ c=cident();
+ state._fsp--;
+
+ tmp = c;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:333:10: K_COUNT '(' countArgument ')'
+ {
+ match(input,K_COUNT,FOLLOW_K_COUNT_in_unaliasedSelector1431);
+ match(input,174,FOLLOW_174_in_unaliasedSelector1433);
+ pushFollow(FOLLOW_countArgument_in_unaliasedSelector1435);
+ countArgument();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_unaliasedSelector1437);
+ tmp = new Selectable.WithFunction.Raw(FunctionName.nativeFunction("countRows"), Collections.emptyList());
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:334:10: K_WRITETIME '(' c= cident ')'
+ {
+ match(input,K_WRITETIME,FOLLOW_K_WRITETIME_in_unaliasedSelector1462);
+ match(input,174,FOLLOW_174_in_unaliasedSelector1464);
+ pushFollow(FOLLOW_cident_in_unaliasedSelector1468);
+ c=cident();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_unaliasedSelector1470);
+ tmp = new Selectable.WritetimeOrTTL.Raw(c, true);
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:335:10: K_TTL '(' c= cident ')'
+ {
+ match(input,K_TTL,FOLLOW_K_TTL_in_unaliasedSelector1496);
+ match(input,174,FOLLOW_174_in_unaliasedSelector1504);
+ pushFollow(FOLLOW_cident_in_unaliasedSelector1508);
+ c=cident();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_unaliasedSelector1510);
+ tmp = new Selectable.WritetimeOrTTL.Raw(c, false);
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:336:10: f= functionName args= selectionFunctionArgs
+ {
+ pushFollow(FOLLOW_functionName_in_unaliasedSelector1538);
+ f=functionName();
+ state._fsp--;
+
+ pushFollow(FOLLOW_selectionFunctionArgs_in_unaliasedSelector1542);
+ args=selectionFunctionArgs();
+ state._fsp--;
+
+ tmp = new Selectable.WithFunction.Raw(f, args);
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:337:10: ( '.' fi= cident )*
+ loop15:
+ while (true) {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+ if ( (LA15_0==179) ) {
+ alt15=1;
+ }
+
+ switch (alt15) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:337:12: '.' fi= cident
+ {
+ match(input,179,FOLLOW_179_in_unaliasedSelector1557);
+ pushFollow(FOLLOW_cident_in_unaliasedSelector1561);
+ fi=cident();
+ state._fsp--;
+
+ tmp = new Selectable.WithFieldSelection.Raw(tmp, fi);
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ }
+
+ s = tmp;
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return s;
+ }
+ // $ANTLR end "unaliasedSelector"
+
+
+
+ // $ANTLR start "selectionFunctionArgs"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:340:1: selectionFunctionArgs returns [List a] : ( '(' ')' | '(' s1= unaliasedSelector ( ',' sn= unaliasedSelector )* ')' );
+ public final List selectionFunctionArgs() throws RecognitionException {
+ List a = null;
+
+
+ Selectable.Raw s1 =null;
+ Selectable.Raw sn =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:341:5: ( '(' ')' | '(' s1= unaliasedSelector ( ',' sn= unaliasedSelector )* ')' )
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+ if ( (LA17_0==174) ) {
+ int LA17_1 = input.LA(2);
+ if ( (LA17_1==175) ) {
+ alt17=1;
+ }
+ else if ( (LA17_1==IDENT||(LA17_1 >= K_AGGREGATE && LA17_1 <= K_ALL)||LA17_1==K_AS||LA17_1==K_ASCII||(LA17_1 >= K_BIGINT && LA17_1 <= K_BOOLEAN)||(LA17_1 >= K_CALLED && LA17_1 <= K_CLUSTERING)||(LA17_1 >= K_COMPACT && LA17_1 <= K_COUNTER)||(LA17_1 >= K_CUSTOM && LA17_1 <= K_DECIMAL)||(LA17_1 >= K_DISTINCT && LA17_1 <= K_DOUBLE)||(LA17_1 >= K_EXISTS && LA17_1 <= K_FLOAT)||LA17_1==K_FROZEN||(LA17_1 >= K_FUNCTION && LA17_1 <= K_FUNCTIONS)||LA17_1==K_INET||(LA17_1 >= K_INITCOND && LA17_1 <= K_INPUT)||LA17_1==K_INT||(LA17_1 >= K_JSON && LA17_1 <= K_KEYS)||(LA17_1 >= K_KEYSPACES && LA17_1 <= K_LIKE)||(LA17_1 >= K_LIST && LA17_1 <= K_MAP)||LA17_1==K_NOLOGIN||LA17_1==K_NOSUPERUSER||LA17_1==K_OPTIONS||(LA17_1 >= K_PARTITION && LA17_1 <= K_PERMISSIONS)||LA17_1==K_RETURNS||(LA17_1 >= K_ROLE && LA17_1 <= K_ROLES)||(LA17_1 >= K_SFUNC && LA17_1 <= K_TINYINT)||(LA17_1 >= K_TOKEN && LA17_1 <= K_TRIGGER)||(LA17_1 >= K_TTL && LA17_1 <= K_TYPE)||(LA17_1 >= K_USER && LA17_1 <= K_USERS)||(LA17_1 >= K_UUID && LA17_1 <= K_VARINT)||LA17_1==K_WRITETIME||(LA17_1 >= QMARK && LA17_1 <= QUOTED_NAME)) ) {
+ alt17=2;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 17, 0, input);
+ throw nvae;
+ }
+
+ switch (alt17) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:341:7: '(' ')'
+ {
+ match(input,174,FOLLOW_174_in_selectionFunctionArgs1589);
+ match(input,175,FOLLOW_175_in_selectionFunctionArgs1591);
+ a = Collections.emptyList();
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:342:7: '(' s1= unaliasedSelector ( ',' sn= unaliasedSelector )* ')'
+ {
+ match(input,174,FOLLOW_174_in_selectionFunctionArgs1601);
+ pushFollow(FOLLOW_unaliasedSelector_in_selectionFunctionArgs1605);
+ s1=unaliasedSelector();
+ state._fsp--;
+
+ List args = new ArrayList(); args.add(s1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:343:11: ( ',' sn= unaliasedSelector )*
+ loop16:
+ while (true) {
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+ if ( (LA16_0==177) ) {
+ alt16=1;
+ }
+
+ switch (alt16) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:343:13: ',' sn= unaliasedSelector
+ {
+ match(input,177,FOLLOW_177_in_selectionFunctionArgs1621);
+ pushFollow(FOLLOW_unaliasedSelector_in_selectionFunctionArgs1625);
+ sn=unaliasedSelector();
+ state._fsp--;
+
+ args.add(sn);
+ }
+ break;
+
+ default :
+ break loop16;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_selectionFunctionArgs1638);
+ a = args;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return a;
+ }
+ // $ANTLR end "selectionFunctionArgs"
+
+
+
+ // $ANTLR start "countArgument"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:347:1: countArgument : ( '\\*' |i= INTEGER );
+ public final void countArgument() throws RecognitionException {
+ Token i=null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:348:5: ( '\\*' |i= INTEGER )
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+ if ( (LA18_0==188) ) {
+ alt18=1;
+ }
+ else if ( (LA18_0==INTEGER) ) {
+ alt18=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 18, 0, input);
+ throw nvae;
+ }
+
+ switch (alt18) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:348:7: '\\*'
+ {
+ match(input,188,FOLLOW_188_in_countArgument1657);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:349:7: i= INTEGER
+ {
+ i=(Token)match(input,INTEGER,FOLLOW_INTEGER_in_countArgument1667);
+ if (!i.getText().equals("1")) addRecognitionError("Only COUNT(1) is supported, got COUNT(" + i.getText() + ")");
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "countArgument"
+
+
+
+ // $ANTLR start "whereClause"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:352:1: whereClause returns [WhereClause.Builder clause] : relationOrExpression[$clause] ( K_AND relationOrExpression[$clause] )* ;
+ public final WhereClause.Builder whereClause() throws RecognitionException {
+ WhereClause.Builder clause = null;
+
+
+ clause = new WhereClause.Builder();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:354:5: ( relationOrExpression[$clause] ( K_AND relationOrExpression[$clause] )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:354:7: relationOrExpression[$clause] ( K_AND relationOrExpression[$clause] )*
+ {
+ pushFollow(FOLLOW_relationOrExpression_in_whereClause1698);
+ relationOrExpression(clause);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:354:37: ( K_AND relationOrExpression[$clause] )*
+ loop19:
+ while (true) {
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+ if ( (LA19_0==K_AND) ) {
+ alt19=1;
+ }
+
+ switch (alt19) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:354:38: K_AND relationOrExpression[$clause]
+ {
+ match(input,K_AND,FOLLOW_K_AND_in_whereClause1702);
+ pushFollow(FOLLOW_relationOrExpression_in_whereClause1704);
+ relationOrExpression(clause);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop19;
+ }
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return clause;
+ }
+ // $ANTLR end "whereClause"
+
+
+
+ // $ANTLR start "relationOrExpression"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:357:1: relationOrExpression[WhereClause.Builder clause] : ( relation[$clause] | customIndexExpression[$clause] );
+ public final void relationOrExpression(WhereClause.Builder clause) throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:358:5: ( relation[$clause] | customIndexExpression[$clause] )
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+ if ( (LA20_0==IDENT||(LA20_0 >= K_AGGREGATE && LA20_0 <= K_ALL)||LA20_0==K_AS||LA20_0==K_ASCII||(LA20_0 >= K_BIGINT && LA20_0 <= K_BOOLEAN)||(LA20_0 >= K_CALLED && LA20_0 <= K_CLUSTERING)||(LA20_0 >= K_COMPACT && LA20_0 <= K_COUNTER)||(LA20_0 >= K_CUSTOM && LA20_0 <= K_DECIMAL)||(LA20_0 >= K_DISTINCT && LA20_0 <= K_DOUBLE)||(LA20_0 >= K_EXISTS && LA20_0 <= K_FLOAT)||LA20_0==K_FROZEN||(LA20_0 >= K_FUNCTION && LA20_0 <= K_FUNCTIONS)||LA20_0==K_INET||(LA20_0 >= K_INITCOND && LA20_0 <= K_INPUT)||LA20_0==K_INT||(LA20_0 >= K_JSON && LA20_0 <= K_KEYS)||(LA20_0 >= K_KEYSPACES && LA20_0 <= K_LIKE)||(LA20_0 >= K_LIST && LA20_0 <= K_MAP)||LA20_0==K_NOLOGIN||LA20_0==K_NOSUPERUSER||LA20_0==K_OPTIONS||(LA20_0 >= K_PARTITION && LA20_0 <= K_PERMISSIONS)||LA20_0==K_RETURNS||(LA20_0 >= K_ROLE && LA20_0 <= K_ROLES)||(LA20_0 >= K_SFUNC && LA20_0 <= K_TINYINT)||(LA20_0 >= K_TOKEN && LA20_0 <= K_TRIGGER)||(LA20_0 >= K_TTL && LA20_0 <= K_TYPE)||(LA20_0 >= K_USER && LA20_0 <= K_USERS)||(LA20_0 >= K_UUID && LA20_0 <= K_VARINT)||LA20_0==K_WRITETIME||LA20_0==QUOTED_NAME||LA20_0==174) ) {
+ alt20=1;
+ }
+ else if ( (LA20_0==190) ) {
+ alt20=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 0, input);
+ throw nvae;
+ }
+
+ switch (alt20) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:358:7: relation[$clause]
+ {
+ pushFollow(FOLLOW_relation_in_relationOrExpression1726);
+ relation(clause);
+ state._fsp--;
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:359:7: customIndexExpression[$clause]
+ {
+ pushFollow(FOLLOW_customIndexExpression_in_relationOrExpression1735);
+ customIndexExpression(clause);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "relationOrExpression"
+
+
+
+ // $ANTLR start "customIndexExpression"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:362:1: customIndexExpression[WhereClause.Builder clause] : 'expr(' idxName[name] ',' t= term ')' ;
+ public final void customIndexExpression(WhereClause.Builder clause) throws RecognitionException {
+ Term.Raw t =null;
+
+ IndexName name = new IndexName();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:364:5: ( 'expr(' idxName[name] ',' t= term ')' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:364:7: 'expr(' idxName[name] ',' t= term ')'
+ {
+ match(input,190,FOLLOW_190_in_customIndexExpression1763);
+ pushFollow(FOLLOW_idxName_in_customIndexExpression1765);
+ idxName(name);
+ state._fsp--;
+
+ match(input,177,FOLLOW_177_in_customIndexExpression1768);
+ pushFollow(FOLLOW_term_in_customIndexExpression1772);
+ t=term();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_customIndexExpression1774);
+ clause.add(new CustomIndexExpression(name, t));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "customIndexExpression"
+
+
+
+ // $ANTLR start "orderByClause"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:367:1: orderByClause[Map orderings] : c= cident ( K_ASC | K_DESC )? ;
+ public final void orderByClause(Map orderings) throws RecognitionException {
+ ColumnIdentifier.Raw c =null;
+
+
+ boolean reversed = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:371:5: (c= cident ( K_ASC | K_DESC )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:371:7: c= cident ( K_ASC | K_DESC )?
+ {
+ pushFollow(FOLLOW_cident_in_orderByClause1804);
+ c=cident();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:371:16: ( K_ASC | K_DESC )?
+ int alt21=3;
+ int LA21_0 = input.LA(1);
+ if ( (LA21_0==K_ASC) ) {
+ alt21=1;
+ }
+ else if ( (LA21_0==K_DESC) ) {
+ alt21=2;
+ }
+ switch (alt21) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:371:17: K_ASC
+ {
+ match(input,K_ASC,FOLLOW_K_ASC_in_orderByClause1807);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:371:25: K_DESC
+ {
+ match(input,K_DESC,FOLLOW_K_DESC_in_orderByClause1811);
+ reversed = true;
+ }
+ break;
+
+ }
+
+ orderings.put(c, reversed);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "orderByClause"
+
+
+
+ // $ANTLR start "insertStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:380:1: insertStatement returns [ModificationStatement.Parsed expr] : K_INSERT K_INTO cf= columnFamilyName (st1= normalInsertStatement[cf] | K_JSON st2= jsonInsertStatement[cf] ) ;
+ public final ModificationStatement.Parsed insertStatement() throws RecognitionException {
+ ModificationStatement.Parsed expr = null;
+
+
+ CFName cf =null;
+ UpdateStatement.ParsedInsert st1 =null;
+ UpdateStatement.ParsedInsertJson st2 =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:381:5: ( K_INSERT K_INTO cf= columnFamilyName (st1= normalInsertStatement[cf] | K_JSON st2= jsonInsertStatement[cf] ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:381:7: K_INSERT K_INTO cf= columnFamilyName (st1= normalInsertStatement[cf] | K_JSON st2= jsonInsertStatement[cf] )
+ {
+ match(input,K_INSERT,FOLLOW_K_INSERT_in_insertStatement1840);
+ match(input,K_INTO,FOLLOW_K_INTO_in_insertStatement1842);
+ pushFollow(FOLLOW_columnFamilyName_in_insertStatement1846);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:382:9: (st1= normalInsertStatement[cf] | K_JSON st2= jsonInsertStatement[cf] )
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+ if ( (LA22_0==174) ) {
+ alt22=1;
+ }
+ else if ( (LA22_0==K_JSON) ) {
+ alt22=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 0, input);
+ throw nvae;
+ }
+
+ switch (alt22) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:382:11: st1= normalInsertStatement[cf]
+ {
+ pushFollow(FOLLOW_normalInsertStatement_in_insertStatement1860);
+ st1=normalInsertStatement(cf);
+ state._fsp--;
+
+ expr = st1;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:383:11: K_JSON st2= jsonInsertStatement[cf]
+ {
+ match(input,K_JSON,FOLLOW_K_JSON_in_insertStatement1875);
+ pushFollow(FOLLOW_jsonInsertStatement_in_insertStatement1879);
+ st2=jsonInsertStatement(cf);
+ state._fsp--;
+
+ expr = st2;
+ }
+ break;
+
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "insertStatement"
+
+
+
+ // $ANTLR start "normalInsertStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:386:1: normalInsertStatement[CFName cf] returns [UpdateStatement.ParsedInsert expr] : '(' c1= cident ( ',' cn= cident )* ')' K_VALUES '(' v1= term ( ',' vn= term )* ')' ( K_IF K_NOT K_EXISTS )? ( usingClause[attrs] )? ;
+ public final UpdateStatement.ParsedInsert normalInsertStatement(CFName cf) throws RecognitionException {
+ UpdateStatement.ParsedInsert expr = null;
+
+
+ ColumnIdentifier.Raw c1 =null;
+ ColumnIdentifier.Raw cn =null;
+ Term.Raw v1 =null;
+ Term.Raw vn =null;
+
+
+ Attributes.Raw attrs = new Attributes.Raw();
+ List columnNames = new ArrayList();
+ List values = new ArrayList();
+ boolean ifNotExists = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:393:5: ( '(' c1= cident ( ',' cn= cident )* ')' K_VALUES '(' v1= term ( ',' vn= term )* ')' ( K_IF K_NOT K_EXISTS )? ( usingClause[attrs] )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:393:7: '(' c1= cident ( ',' cn= cident )* ')' K_VALUES '(' v1= term ( ',' vn= term )* ')' ( K_IF K_NOT K_EXISTS )? ( usingClause[attrs] )?
+ {
+ match(input,174,FOLLOW_174_in_normalInsertStatement1915);
+ pushFollow(FOLLOW_cident_in_normalInsertStatement1919);
+ c1=cident();
+ state._fsp--;
+
+ columnNames.add(c1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:393:47: ( ',' cn= cident )*
+ loop23:
+ while (true) {
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+ if ( (LA23_0==177) ) {
+ alt23=1;
+ }
+
+ switch (alt23) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:393:49: ',' cn= cident
+ {
+ match(input,177,FOLLOW_177_in_normalInsertStatement1926);
+ pushFollow(FOLLOW_cident_in_normalInsertStatement1930);
+ cn=cident();
+ state._fsp--;
+
+ columnNames.add(cn);
+ }
+ break;
+
+ default :
+ break loop23;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_normalInsertStatement1937);
+ match(input,K_VALUES,FOLLOW_K_VALUES_in_normalInsertStatement1945);
+ match(input,174,FOLLOW_174_in_normalInsertStatement1953);
+ pushFollow(FOLLOW_term_in_normalInsertStatement1957);
+ v1=term();
+ state._fsp--;
+
+ values.add(v1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:395:39: ( ',' vn= term )*
+ loop24:
+ while (true) {
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+ if ( (LA24_0==177) ) {
+ alt24=1;
+ }
+
+ switch (alt24) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:395:41: ',' vn= term
+ {
+ match(input,177,FOLLOW_177_in_normalInsertStatement1963);
+ pushFollow(FOLLOW_term_in_normalInsertStatement1967);
+ vn=term();
+ state._fsp--;
+
+ values.add(vn);
+ }
+ break;
+
+ default :
+ break loop24;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_normalInsertStatement1974);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:396:7: ( K_IF K_NOT K_EXISTS )?
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+ if ( (LA25_0==K_IF) ) {
+ alt25=1;
+ }
+ switch (alt25) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:396:9: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_normalInsertStatement1984);
+ match(input,K_NOT,FOLLOW_K_NOT_in_normalInsertStatement1986);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_normalInsertStatement1988);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:397:7: ( usingClause[attrs] )?
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+ if ( (LA26_0==K_USING) ) {
+ alt26=1;
+ }
+ switch (alt26) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:397:9: usingClause[attrs]
+ {
+ pushFollow(FOLLOW_usingClause_in_normalInsertStatement2003);
+ usingClause(attrs);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+
+ expr = new UpdateStatement.ParsedInsert(cf, attrs, columnNames, values, ifNotExists);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "normalInsertStatement"
+
+
+
+ // $ANTLR start "jsonInsertStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:403:1: jsonInsertStatement[CFName cf] returns [UpdateStatement.ParsedInsertJson expr] : val= jsonValue ( K_IF K_NOT K_EXISTS )? ( usingClause[attrs] )? ;
+ public final UpdateStatement.ParsedInsertJson jsonInsertStatement(CFName cf) throws RecognitionException {
+ UpdateStatement.ParsedInsertJson expr = null;
+
+
+ Json.Raw val =null;
+
+
+ Attributes.Raw attrs = new Attributes.Raw();
+ boolean ifNotExists = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:408:5: (val= jsonValue ( K_IF K_NOT K_EXISTS )? ( usingClause[attrs] )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:408:7: val= jsonValue ( K_IF K_NOT K_EXISTS )? ( usingClause[attrs] )?
+ {
+ pushFollow(FOLLOW_jsonValue_in_jsonInsertStatement2049);
+ val=jsonValue();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:409:7: ( K_IF K_NOT K_EXISTS )?
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+ if ( (LA27_0==K_IF) ) {
+ alt27=1;
+ }
+ switch (alt27) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:409:9: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_jsonInsertStatement2059);
+ match(input,K_NOT,FOLLOW_K_NOT_in_jsonInsertStatement2061);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_jsonInsertStatement2063);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:410:7: ( usingClause[attrs] )?
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+ if ( (LA28_0==K_USING) ) {
+ alt28=1;
+ }
+ switch (alt28) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:410:9: usingClause[attrs]
+ {
+ pushFollow(FOLLOW_usingClause_in_jsonInsertStatement2078);
+ usingClause(attrs);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+
+ expr = new UpdateStatement.ParsedInsertJson(cf, attrs, val, ifNotExists);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "jsonInsertStatement"
+
+
+
+ // $ANTLR start "jsonValue"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:416:1: jsonValue returns [Json.Raw value] : (|s= STRING_LITERAL | ':' id= noncol_ident | QMARK );
+ public final Json.Raw jsonValue() throws RecognitionException {
+ Json.Raw value = null;
+
+
+ Token s=null;
+ ColumnIdentifier id =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:417:5: (|s= STRING_LITERAL | ':' id= noncol_ident | QMARK )
+ int alt29=4;
+ switch ( input.LA(1) ) {
+ case EOF:
+ case K_APPLY:
+ case K_DELETE:
+ case K_IF:
+ case K_INSERT:
+ case K_UPDATE:
+ case K_USING:
+ case 181:
+ {
+ alt29=1;
+ }
+ break;
+ case STRING_LITERAL:
+ {
+ alt29=2;
+ }
+ break;
+ case 180:
+ {
+ alt29=3;
+ }
+ break;
+ case QMARK:
+ {
+ alt29=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 29, 0, input);
+ throw nvae;
+ }
+ switch (alt29) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:418:5:
+ {
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:418:7: s= STRING_LITERAL
+ {
+ s=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_jsonValue2119);
+ value = new Json.Literal((s!=null?s.getText():null));
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:419:7: ':' id= noncol_ident
+ {
+ match(input,180,FOLLOW_180_in_jsonValue2129);
+ pushFollow(FOLLOW_noncol_ident_in_jsonValue2133);
+ id=noncol_ident();
+ state._fsp--;
+
+ value = newJsonBindVariables(id);
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:420:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_jsonValue2147);
+ value = newJsonBindVariables(null);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "jsonValue"
+
+
+
+ // $ANTLR start "usingClause"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:423:1: usingClause[Attributes.Raw attrs] : K_USING usingClauseObjective[attrs] ( K_AND usingClauseObjective[attrs] )* ;
+ public final void usingClause(Attributes.Raw attrs) throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:424:5: ( K_USING usingClauseObjective[attrs] ( K_AND usingClauseObjective[attrs] )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:424:7: K_USING usingClauseObjective[attrs] ( K_AND usingClauseObjective[attrs] )*
+ {
+ match(input,K_USING,FOLLOW_K_USING_in_usingClause2178);
+ pushFollow(FOLLOW_usingClauseObjective_in_usingClause2180);
+ usingClauseObjective(attrs);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:424:43: ( K_AND usingClauseObjective[attrs] )*
+ loop30:
+ while (true) {
+ int alt30=2;
+ int LA30_0 = input.LA(1);
+ if ( (LA30_0==K_AND) ) {
+ alt30=1;
+ }
+
+ switch (alt30) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:424:45: K_AND usingClauseObjective[attrs]
+ {
+ match(input,K_AND,FOLLOW_K_AND_in_usingClause2185);
+ pushFollow(FOLLOW_usingClauseObjective_in_usingClause2187);
+ usingClauseObjective(attrs);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop30;
+ }
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "usingClause"
+
+
+
+ // $ANTLR start "usingClauseObjective"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:427:1: usingClauseObjective[Attributes.Raw attrs] : ( K_TIMESTAMP ts= intValue | K_TTL t= intValue );
+ public final void usingClauseObjective(Attributes.Raw attrs) throws RecognitionException {
+ Term.Raw ts =null;
+ Term.Raw t =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:428:5: ( K_TIMESTAMP ts= intValue | K_TTL t= intValue )
+ int alt31=2;
+ int LA31_0 = input.LA(1);
+ if ( (LA31_0==K_TIMESTAMP) ) {
+ alt31=1;
+ }
+ else if ( (LA31_0==K_TTL) ) {
+ alt31=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 0, input);
+ throw nvae;
+ }
+
+ switch (alt31) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:428:7: K_TIMESTAMP ts= intValue
+ {
+ match(input,K_TIMESTAMP,FOLLOW_K_TIMESTAMP_in_usingClauseObjective2209);
+ pushFollow(FOLLOW_intValue_in_usingClauseObjective2213);
+ ts=intValue();
+ state._fsp--;
+
+ attrs.timestamp = ts;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:429:7: K_TTL t= intValue
+ {
+ match(input,K_TTL,FOLLOW_K_TTL_in_usingClauseObjective2223);
+ pushFollow(FOLLOW_intValue_in_usingClauseObjective2227);
+ t=intValue();
+ state._fsp--;
+
+ attrs.timeToLive = t;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "usingClauseObjective"
+
+
+
+ // $ANTLR start "updateStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:439:1: updateStatement returns [UpdateStatement.ParsedUpdate expr] : K_UPDATE cf= columnFamilyName ( usingClause[attrs] )? K_SET columnOperation[operations] ( ',' columnOperation[operations] )* K_WHERE wclause= whereClause ( K_IF ( K_EXISTS |conditions= updateConditions ) )? ;
+ public final UpdateStatement.ParsedUpdate updateStatement() throws RecognitionException {
+ UpdateStatement.ParsedUpdate expr = null;
+
+
+ CFName cf =null;
+ WhereClause.Builder wclause =null;
+ List> conditions =null;
+
+
+ Attributes.Raw attrs = new Attributes.Raw();
+ List> operations = new ArrayList>();
+ boolean ifExists = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:445:5: ( K_UPDATE cf= columnFamilyName ( usingClause[attrs] )? K_SET columnOperation[operations] ( ',' columnOperation[operations] )* K_WHERE wclause= whereClause ( K_IF ( K_EXISTS |conditions= updateConditions ) )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:445:7: K_UPDATE cf= columnFamilyName ( usingClause[attrs] )? K_SET columnOperation[operations] ( ',' columnOperation[operations] )* K_WHERE wclause= whereClause ( K_IF ( K_EXISTS |conditions= updateConditions ) )?
+ {
+ match(input,K_UPDATE,FOLLOW_K_UPDATE_in_updateStatement2261);
+ pushFollow(FOLLOW_columnFamilyName_in_updateStatement2265);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:446:7: ( usingClause[attrs] )?
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+ if ( (LA32_0==K_USING) ) {
+ alt32=1;
+ }
+ switch (alt32) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:446:9: usingClause[attrs]
+ {
+ pushFollow(FOLLOW_usingClause_in_updateStatement2275);
+ usingClause(attrs);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ match(input,K_SET,FOLLOW_K_SET_in_updateStatement2287);
+ pushFollow(FOLLOW_columnOperation_in_updateStatement2289);
+ columnOperation(operations);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:447:41: ( ',' columnOperation[operations] )*
+ loop33:
+ while (true) {
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+ if ( (LA33_0==177) ) {
+ alt33=1;
+ }
+
+ switch (alt33) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:447:42: ',' columnOperation[operations]
+ {
+ match(input,177,FOLLOW_177_in_updateStatement2293);
+ pushFollow(FOLLOW_columnOperation_in_updateStatement2295);
+ columnOperation(operations);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop33;
+ }
+ }
+
+ match(input,K_WHERE,FOLLOW_K_WHERE_in_updateStatement2306);
+ pushFollow(FOLLOW_whereClause_in_updateStatement2310);
+ wclause=whereClause();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:449:7: ( K_IF ( K_EXISTS |conditions= updateConditions ) )?
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+ if ( (LA35_0==K_IF) ) {
+ alt35=1;
+ }
+ switch (alt35) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:449:9: K_IF ( K_EXISTS |conditions= updateConditions )
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_updateStatement2320);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:449:14: ( K_EXISTS |conditions= updateConditions )
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+ if ( (LA34_0==K_EXISTS) ) {
+ int LA34_1 = input.LA(2);
+ if ( (LA34_1==EOF||LA34_1==K_APPLY||LA34_1==K_DELETE||LA34_1==K_INSERT||LA34_1==K_UPDATE||LA34_1==181) ) {
+ alt34=1;
+ }
+ else if ( (LA34_1==K_IN||LA34_1==173||(LA34_1 >= 182 && LA34_1 <= 187)) ) {
+ alt34=2;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 34, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ else if ( (LA34_0==IDENT||(LA34_0 >= K_AGGREGATE && LA34_0 <= K_ALL)||LA34_0==K_AS||LA34_0==K_ASCII||(LA34_0 >= K_BIGINT && LA34_0 <= K_BOOLEAN)||(LA34_0 >= K_CALLED && LA34_0 <= K_CLUSTERING)||(LA34_0 >= K_COMPACT && LA34_0 <= K_COUNTER)||(LA34_0 >= K_CUSTOM && LA34_0 <= K_DECIMAL)||(LA34_0 >= K_DISTINCT && LA34_0 <= K_DOUBLE)||(LA34_0 >= K_FILTERING && LA34_0 <= K_FLOAT)||LA34_0==K_FROZEN||(LA34_0 >= K_FUNCTION && LA34_0 <= K_FUNCTIONS)||LA34_0==K_INET||(LA34_0 >= K_INITCOND && LA34_0 <= K_INPUT)||LA34_0==K_INT||(LA34_0 >= K_JSON && LA34_0 <= K_KEYS)||(LA34_0 >= K_KEYSPACES && LA34_0 <= K_LIKE)||(LA34_0 >= K_LIST && LA34_0 <= K_MAP)||LA34_0==K_NOLOGIN||LA34_0==K_NOSUPERUSER||LA34_0==K_OPTIONS||(LA34_0 >= K_PARTITION && LA34_0 <= K_PERMISSIONS)||LA34_0==K_RETURNS||(LA34_0 >= K_ROLE && LA34_0 <= K_ROLES)||(LA34_0 >= K_SFUNC && LA34_0 <= K_TINYINT)||LA34_0==K_TRIGGER||(LA34_0 >= K_TTL && LA34_0 <= K_TYPE)||(LA34_0 >= K_USER && LA34_0 <= K_USERS)||(LA34_0 >= K_UUID && LA34_0 <= K_VARINT)||LA34_0==K_WRITETIME||LA34_0==QUOTED_NAME) ) {
+ alt34=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 34, 0, input);
+ throw nvae;
+ }
+
+ switch (alt34) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:449:16: K_EXISTS
+ {
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_updateStatement2324);
+ ifExists = true;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:449:48: conditions= updateConditions
+ {
+ pushFollow(FOLLOW_updateConditions_in_updateStatement2332);
+ conditions=updateConditions();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ return new UpdateStatement.ParsedUpdate(cf,
+ attrs,
+ operations,
+ wclause.build(),
+ conditions == null ? Collections.>emptyList() : conditions,
+ ifExists);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "updateStatement"
+
+
+
+ // $ANTLR start "updateConditions"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:460:1: updateConditions returns [List> conditions] : columnCondition[conditions] ( K_AND columnCondition[conditions] )* ;
+ public final List> updateConditions() throws RecognitionException {
+ List> conditions = null;
+
+
+ conditions = new ArrayList>();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:462:5: ( columnCondition[conditions] ( K_AND columnCondition[conditions] )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:462:7: columnCondition[conditions] ( K_AND columnCondition[conditions] )*
+ {
+ pushFollow(FOLLOW_columnCondition_in_updateConditions2374);
+ columnCondition(conditions);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:462:35: ( K_AND columnCondition[conditions] )*
+ loop36:
+ while (true) {
+ int alt36=2;
+ int LA36_0 = input.LA(1);
+ if ( (LA36_0==K_AND) ) {
+ alt36=1;
+ }
+
+ switch (alt36) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:462:37: K_AND columnCondition[conditions]
+ {
+ match(input,K_AND,FOLLOW_K_AND_in_updateConditions2379);
+ pushFollow(FOLLOW_columnCondition_in_updateConditions2381);
+ columnCondition(conditions);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop36;
+ }
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return conditions;
+ }
+ // $ANTLR end "updateConditions"
+
+
+
+ // $ANTLR start "deleteStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:473:1: deleteStatement returns [DeleteStatement.Parsed expr] : K_DELETE (dels= deleteSelection )? K_FROM cf= columnFamilyName ( usingClauseDelete[attrs] )? K_WHERE wclause= whereClause ( K_IF ( K_EXISTS |conditions= updateConditions ) )? ;
+ public final DeleteStatement.Parsed deleteStatement() throws RecognitionException {
+ DeleteStatement.Parsed expr = null;
+
+
+ List dels =null;
+ CFName cf =null;
+ WhereClause.Builder wclause =null;
+ List> conditions =null;
+
+
+ Attributes.Raw attrs = new Attributes.Raw();
+ List columnDeletions = Collections.emptyList();
+ boolean ifExists = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:479:5: ( K_DELETE (dels= deleteSelection )? K_FROM cf= columnFamilyName ( usingClauseDelete[attrs] )? K_WHERE wclause= whereClause ( K_IF ( K_EXISTS |conditions= updateConditions ) )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:479:7: K_DELETE (dels= deleteSelection )? K_FROM cf= columnFamilyName ( usingClauseDelete[attrs] )? K_WHERE wclause= whereClause ( K_IF ( K_EXISTS |conditions= updateConditions ) )?
+ {
+ match(input,K_DELETE,FOLLOW_K_DELETE_in_deleteStatement2418);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:479:16: (dels= deleteSelection )?
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+ if ( (LA37_0==IDENT||(LA37_0 >= K_AGGREGATE && LA37_0 <= K_ALL)||LA37_0==K_AS||LA37_0==K_ASCII||(LA37_0 >= K_BIGINT && LA37_0 <= K_BOOLEAN)||(LA37_0 >= K_CALLED && LA37_0 <= K_CLUSTERING)||(LA37_0 >= K_COMPACT && LA37_0 <= K_COUNTER)||(LA37_0 >= K_CUSTOM && LA37_0 <= K_DECIMAL)||(LA37_0 >= K_DISTINCT && LA37_0 <= K_DOUBLE)||(LA37_0 >= K_EXISTS && LA37_0 <= K_FLOAT)||LA37_0==K_FROZEN||(LA37_0 >= K_FUNCTION && LA37_0 <= K_FUNCTIONS)||LA37_0==K_INET||(LA37_0 >= K_INITCOND && LA37_0 <= K_INPUT)||LA37_0==K_INT||(LA37_0 >= K_JSON && LA37_0 <= K_KEYS)||(LA37_0 >= K_KEYSPACES && LA37_0 <= K_LIKE)||(LA37_0 >= K_LIST && LA37_0 <= K_MAP)||LA37_0==K_NOLOGIN||LA37_0==K_NOSUPERUSER||LA37_0==K_OPTIONS||(LA37_0 >= K_PARTITION && LA37_0 <= K_PERMISSIONS)||LA37_0==K_RETURNS||(LA37_0 >= K_ROLE && LA37_0 <= K_ROLES)||(LA37_0 >= K_SFUNC && LA37_0 <= K_TINYINT)||LA37_0==K_TRIGGER||(LA37_0 >= K_TTL && LA37_0 <= K_TYPE)||(LA37_0 >= K_USER && LA37_0 <= K_USERS)||(LA37_0 >= K_UUID && LA37_0 <= K_VARINT)||LA37_0==K_WRITETIME||LA37_0==QUOTED_NAME) ) {
+ alt37=1;
+ }
+ switch (alt37) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:479:18: dels= deleteSelection
+ {
+ pushFollow(FOLLOW_deleteSelection_in_deleteStatement2424);
+ dels=deleteSelection();
+ state._fsp--;
+
+ columnDeletions = dels;
+ }
+ break;
+
+ }
+
+ match(input,K_FROM,FOLLOW_K_FROM_in_deleteStatement2437);
+ pushFollow(FOLLOW_columnFamilyName_in_deleteStatement2441);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:481:7: ( usingClauseDelete[attrs] )?
+ int alt38=2;
+ int LA38_0 = input.LA(1);
+ if ( (LA38_0==K_USING) ) {
+ alt38=1;
+ }
+ switch (alt38) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:481:9: usingClauseDelete[attrs]
+ {
+ pushFollow(FOLLOW_usingClauseDelete_in_deleteStatement2451);
+ usingClauseDelete(attrs);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ match(input,K_WHERE,FOLLOW_K_WHERE_in_deleteStatement2463);
+ pushFollow(FOLLOW_whereClause_in_deleteStatement2467);
+ wclause=whereClause();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:483:7: ( K_IF ( K_EXISTS |conditions= updateConditions ) )?
+ int alt40=2;
+ int LA40_0 = input.LA(1);
+ if ( (LA40_0==K_IF) ) {
+ alt40=1;
+ }
+ switch (alt40) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:483:9: K_IF ( K_EXISTS |conditions= updateConditions )
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_deleteStatement2477);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:483:14: ( K_EXISTS |conditions= updateConditions )
+ int alt39=2;
+ int LA39_0 = input.LA(1);
+ if ( (LA39_0==K_EXISTS) ) {
+ int LA39_1 = input.LA(2);
+ if ( (LA39_1==EOF||LA39_1==K_APPLY||LA39_1==K_DELETE||LA39_1==K_INSERT||LA39_1==K_UPDATE||LA39_1==181) ) {
+ alt39=1;
+ }
+ else if ( (LA39_1==K_IN||LA39_1==173||(LA39_1 >= 182 && LA39_1 <= 187)) ) {
+ alt39=2;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 39, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ else if ( (LA39_0==IDENT||(LA39_0 >= K_AGGREGATE && LA39_0 <= K_ALL)||LA39_0==K_AS||LA39_0==K_ASCII||(LA39_0 >= K_BIGINT && LA39_0 <= K_BOOLEAN)||(LA39_0 >= K_CALLED && LA39_0 <= K_CLUSTERING)||(LA39_0 >= K_COMPACT && LA39_0 <= K_COUNTER)||(LA39_0 >= K_CUSTOM && LA39_0 <= K_DECIMAL)||(LA39_0 >= K_DISTINCT && LA39_0 <= K_DOUBLE)||(LA39_0 >= K_FILTERING && LA39_0 <= K_FLOAT)||LA39_0==K_FROZEN||(LA39_0 >= K_FUNCTION && LA39_0 <= K_FUNCTIONS)||LA39_0==K_INET||(LA39_0 >= K_INITCOND && LA39_0 <= K_INPUT)||LA39_0==K_INT||(LA39_0 >= K_JSON && LA39_0 <= K_KEYS)||(LA39_0 >= K_KEYSPACES && LA39_0 <= K_LIKE)||(LA39_0 >= K_LIST && LA39_0 <= K_MAP)||LA39_0==K_NOLOGIN||LA39_0==K_NOSUPERUSER||LA39_0==K_OPTIONS||(LA39_0 >= K_PARTITION && LA39_0 <= K_PERMISSIONS)||LA39_0==K_RETURNS||(LA39_0 >= K_ROLE && LA39_0 <= K_ROLES)||(LA39_0 >= K_SFUNC && LA39_0 <= K_TINYINT)||LA39_0==K_TRIGGER||(LA39_0 >= K_TTL && LA39_0 <= K_TYPE)||(LA39_0 >= K_USER && LA39_0 <= K_USERS)||(LA39_0 >= K_UUID && LA39_0 <= K_VARINT)||LA39_0==K_WRITETIME||LA39_0==QUOTED_NAME) ) {
+ alt39=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 39, 0, input);
+ throw nvae;
+ }
+
+ switch (alt39) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:483:16: K_EXISTS
+ {
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_deleteStatement2481);
+ ifExists = true;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:483:48: conditions= updateConditions
+ {
+ pushFollow(FOLLOW_updateConditions_in_deleteStatement2489);
+ conditions=updateConditions();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ return new DeleteStatement.Parsed(cf,
+ attrs,
+ columnDeletions,
+ wclause.build(),
+ conditions == null ? Collections.>emptyList() : conditions,
+ ifExists);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "deleteStatement"
+
+
+
+ // $ANTLR start "deleteSelection"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:494:1: deleteSelection returns [List operations] :t1= deleteOp ( ',' tN= deleteOp )* ;
+ public final List deleteSelection() throws RecognitionException {
+ List operations = null;
+
+
+ Operation.RawDeletion t1 =null;
+ Operation.RawDeletion tN =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:495:5: (t1= deleteOp ( ',' tN= deleteOp )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:495:7: t1= deleteOp ( ',' tN= deleteOp )*
+ {
+ operations = new ArrayList();
+ pushFollow(FOLLOW_deleteOp_in_deleteSelection2536);
+ t1=deleteOp();
+ state._fsp--;
+
+ operations.add(t1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:497:11: ( ',' tN= deleteOp )*
+ loop41:
+ while (true) {
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+ if ( (LA41_0==177) ) {
+ alt41=1;
+ }
+
+ switch (alt41) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:497:12: ',' tN= deleteOp
+ {
+ match(input,177,FOLLOW_177_in_deleteSelection2551);
+ pushFollow(FOLLOW_deleteOp_in_deleteSelection2555);
+ tN=deleteOp();
+ state._fsp--;
+
+ operations.add(tN);
+ }
+ break;
+
+ default :
+ break loop41;
+ }
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return operations;
+ }
+ // $ANTLR end "deleteSelection"
+
+
+
+ // $ANTLR start "deleteOp"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:500:1: deleteOp returns [Operation.RawDeletion op] : (c= cident |c= cident '[' t= term ']' );
+ public final Operation.RawDeletion deleteOp() throws RecognitionException {
+ Operation.RawDeletion op = null;
+
+
+ ColumnIdentifier.Raw c =null;
+ Term.Raw t =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:501:5: (c= cident |c= cident '[' t= term ']' )
+ int alt42=2;
+ alt42 = dfa42.predict(input);
+ switch (alt42) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:501:7: c= cident
+ {
+ pushFollow(FOLLOW_cident_in_deleteOp2582);
+ c=cident();
+ state._fsp--;
+
+ op = new Operation.ColumnDeletion(c);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:502:7: c= cident '[' t= term ']'
+ {
+ pushFollow(FOLLOW_cident_in_deleteOp2609);
+ c=cident();
+ state._fsp--;
+
+ match(input,187,FOLLOW_187_in_deleteOp2611);
+ pushFollow(FOLLOW_term_in_deleteOp2615);
+ t=term();
+ state._fsp--;
+
+ match(input,189,FOLLOW_189_in_deleteOp2617);
+ op = new Operation.ElementDeletion(c, t);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return op;
+ }
+ // $ANTLR end "deleteOp"
+
+
+
+ // $ANTLR start "usingClauseDelete"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:505:1: usingClauseDelete[Attributes.Raw attrs] : K_USING K_TIMESTAMP ts= intValue ;
+ public final void usingClauseDelete(Attributes.Raw attrs) throws RecognitionException {
+ Term.Raw ts =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:506:5: ( K_USING K_TIMESTAMP ts= intValue )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:506:7: K_USING K_TIMESTAMP ts= intValue
+ {
+ match(input,K_USING,FOLLOW_K_USING_in_usingClauseDelete2637);
+ match(input,K_TIMESTAMP,FOLLOW_K_TIMESTAMP_in_usingClauseDelete2639);
+ pushFollow(FOLLOW_intValue_in_usingClauseDelete2643);
+ ts=intValue();
+ state._fsp--;
+
+ attrs.timestamp = ts;
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "usingClauseDelete"
+
+
+
+ // $ANTLR start "batchStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:533:1: batchStatement returns [BatchStatement.Parsed expr] : K_BEGIN ( K_UNLOGGED | K_COUNTER )? K_BATCH ( usingClause[attrs] )? (s= batchStatementObjective ( ';' )? )* K_APPLY K_BATCH ;
+ public final BatchStatement.Parsed batchStatement() throws RecognitionException {
+ BatchStatement.Parsed expr = null;
+
+
+ ModificationStatement.Parsed s =null;
+
+
+ BatchStatement.Type type = BatchStatement.Type.LOGGED;
+ List statements = new ArrayList();
+ Attributes.Raw attrs = new Attributes.Raw();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:539:5: ( K_BEGIN ( K_UNLOGGED | K_COUNTER )? K_BATCH ( usingClause[attrs] )? (s= batchStatementObjective ( ';' )? )* K_APPLY K_BATCH )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:539:7: K_BEGIN ( K_UNLOGGED | K_COUNTER )? K_BATCH ( usingClause[attrs] )? (s= batchStatementObjective ( ';' )? )* K_APPLY K_BATCH
+ {
+ match(input,K_BEGIN,FOLLOW_K_BEGIN_in_batchStatement2677);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:540:7: ( K_UNLOGGED | K_COUNTER )?
+ int alt43=3;
+ int LA43_0 = input.LA(1);
+ if ( (LA43_0==K_UNLOGGED) ) {
+ alt43=1;
+ }
+ else if ( (LA43_0==K_COUNTER) ) {
+ alt43=2;
+ }
+ switch (alt43) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:540:9: K_UNLOGGED
+ {
+ match(input,K_UNLOGGED,FOLLOW_K_UNLOGGED_in_batchStatement2687);
+ type = BatchStatement.Type.UNLOGGED;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:540:63: K_COUNTER
+ {
+ match(input,K_COUNTER,FOLLOW_K_COUNTER_in_batchStatement2693);
+ type = BatchStatement.Type.COUNTER;
+ }
+ break;
+
+ }
+
+ match(input,K_BATCH,FOLLOW_K_BATCH_in_batchStatement2706);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:541:15: ( usingClause[attrs] )?
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+ if ( (LA44_0==K_USING) ) {
+ alt44=1;
+ }
+ switch (alt44) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:541:17: usingClause[attrs]
+ {
+ pushFollow(FOLLOW_usingClause_in_batchStatement2710);
+ usingClause(attrs);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:542:11: (s= batchStatementObjective ( ';' )? )*
+ loop46:
+ while (true) {
+ int alt46=2;
+ int LA46_0 = input.LA(1);
+ if ( (LA46_0==K_DELETE||LA46_0==K_INSERT||LA46_0==K_UPDATE) ) {
+ alt46=1;
+ }
+
+ switch (alt46) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:542:13: s= batchStatementObjective ( ';' )?
+ {
+ pushFollow(FOLLOW_batchStatementObjective_in_batchStatement2730);
+ s=batchStatementObjective();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:542:39: ( ';' )?
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+ if ( (LA45_0==181) ) {
+ alt45=1;
+ }
+ switch (alt45) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:542:39: ';'
+ {
+ match(input,181,FOLLOW_181_in_batchStatement2732);
+ }
+ break;
+
+ }
+
+ statements.add(s);
+ }
+ break;
+
+ default :
+ break loop46;
+ }
+ }
+
+ match(input,K_APPLY,FOLLOW_K_APPLY_in_batchStatement2746);
+ match(input,K_BATCH,FOLLOW_K_BATCH_in_batchStatement2748);
+
+ return new BatchStatement.Parsed(type, attrs, statements);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "batchStatement"
+
+
+
+ // $ANTLR start "batchStatementObjective"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:549:1: batchStatementObjective returns [ModificationStatement.Parsed statement] : (i= insertStatement |u= updateStatement |d= deleteStatement );
+ public final ModificationStatement.Parsed batchStatementObjective() throws RecognitionException {
+ ModificationStatement.Parsed statement = null;
+
+
+ ModificationStatement.Parsed i =null;
+ UpdateStatement.ParsedUpdate u =null;
+ DeleteStatement.Parsed d =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:550:5: (i= insertStatement |u= updateStatement |d= deleteStatement )
+ int alt47=3;
+ switch ( input.LA(1) ) {
+ case K_INSERT:
+ {
+ alt47=1;
+ }
+ break;
+ case K_UPDATE:
+ {
+ alt47=2;
+ }
+ break;
+ case K_DELETE:
+ {
+ alt47=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 47, 0, input);
+ throw nvae;
+ }
+ switch (alt47) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:550:7: i= insertStatement
+ {
+ pushFollow(FOLLOW_insertStatement_in_batchStatementObjective2779);
+ i=insertStatement();
+ state._fsp--;
+
+ statement = i;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:551:7: u= updateStatement
+ {
+ pushFollow(FOLLOW_updateStatement_in_batchStatementObjective2792);
+ u=updateStatement();
+ state._fsp--;
+
+ statement = u;
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:552:7: d= deleteStatement
+ {
+ pushFollow(FOLLOW_deleteStatement_in_batchStatementObjective2805);
+ d=deleteStatement();
+ state._fsp--;
+
+ statement = d;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return statement;
+ }
+ // $ANTLR end "batchStatementObjective"
+
+
+
+ // $ANTLR start "createAggregateStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:555:1: createAggregateStatement returns [CreateAggregateStatement expr] : K_CREATE ( K_OR K_REPLACE )? K_AGGREGATE ( K_IF K_NOT K_EXISTS )? fn= functionName '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' K_SFUNC sfunc= allowedFunctionName K_STYPE stype= comparatorType ( K_FINALFUNC ffunc= allowedFunctionName )? ( K_INITCOND ival= term )? ;
+ public final CreateAggregateStatement createAggregateStatement() throws RecognitionException {
+ CreateAggregateStatement expr = null;
+
+
+ FunctionName fn =null;
+ CQL3Type.Raw v =null;
+ String sfunc =null;
+ CQL3Type.Raw stype =null;
+ String ffunc =null;
+ Term.Raw ival =null;
+
+
+ boolean orReplace = false;
+ boolean ifNotExists = false;
+
+ List argsTypes = new ArrayList<>();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:562:5: ( K_CREATE ( K_OR K_REPLACE )? K_AGGREGATE ( K_IF K_NOT K_EXISTS )? fn= functionName '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' K_SFUNC sfunc= allowedFunctionName K_STYPE stype= comparatorType ( K_FINALFUNC ffunc= allowedFunctionName )? ( K_INITCOND ival= term )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:562:7: K_CREATE ( K_OR K_REPLACE )? K_AGGREGATE ( K_IF K_NOT K_EXISTS )? fn= functionName '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' K_SFUNC sfunc= allowedFunctionName K_STYPE stype= comparatorType ( K_FINALFUNC ffunc= allowedFunctionName )? ( K_INITCOND ival= term )?
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createAggregateStatement2838);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:562:16: ( K_OR K_REPLACE )?
+ int alt48=2;
+ int LA48_0 = input.LA(1);
+ if ( (LA48_0==K_OR) ) {
+ alt48=1;
+ }
+ switch (alt48) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:562:17: K_OR K_REPLACE
+ {
+ match(input,K_OR,FOLLOW_K_OR_in_createAggregateStatement2841);
+ match(input,K_REPLACE,FOLLOW_K_REPLACE_in_createAggregateStatement2843);
+ orReplace = true;
+ }
+ break;
+
+ }
+
+ match(input,K_AGGREGATE,FOLLOW_K_AGGREGATE_in_createAggregateStatement2855);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:564:7: ( K_IF K_NOT K_EXISTS )?
+ int alt49=2;
+ int LA49_0 = input.LA(1);
+ if ( (LA49_0==K_IF) ) {
+ alt49=1;
+ }
+ switch (alt49) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:564:8: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createAggregateStatement2864);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createAggregateStatement2866);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createAggregateStatement2868);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_functionName_in_createAggregateStatement2882);
+ fn=functionName();
+ state._fsp--;
+
+ match(input,174,FOLLOW_174_in_createAggregateStatement2890);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:567:9: (v= comparatorType ( ',' v= comparatorType )* )?
+ int alt51=2;
+ int LA51_0 = input.LA(1);
+ if ( (LA51_0==IDENT||(LA51_0 >= K_AGGREGATE && LA51_0 <= K_ALL)||LA51_0==K_AS||LA51_0==K_ASCII||(LA51_0 >= K_BIGINT && LA51_0 <= K_BOOLEAN)||(LA51_0 >= K_CALLED && LA51_0 <= K_CLUSTERING)||(LA51_0 >= K_COMPACT && LA51_0 <= K_COUNTER)||(LA51_0 >= K_CUSTOM && LA51_0 <= K_DECIMAL)||(LA51_0 >= K_DISTINCT && LA51_0 <= K_DOUBLE)||(LA51_0 >= K_EXISTS && LA51_0 <= K_FLOAT)||LA51_0==K_FROZEN||(LA51_0 >= K_FUNCTION && LA51_0 <= K_FUNCTIONS)||LA51_0==K_INET||(LA51_0 >= K_INITCOND && LA51_0 <= K_INPUT)||LA51_0==K_INT||(LA51_0 >= K_JSON && LA51_0 <= K_KEYS)||(LA51_0 >= K_KEYSPACES && LA51_0 <= K_LIKE)||(LA51_0 >= K_LIST && LA51_0 <= K_MAP)||LA51_0==K_NOLOGIN||LA51_0==K_NOSUPERUSER||LA51_0==K_OPTIONS||(LA51_0 >= K_PARTITION && LA51_0 <= K_PERMISSIONS)||LA51_0==K_RETURNS||(LA51_0 >= K_ROLE && LA51_0 <= K_ROLES)||(LA51_0 >= K_SET && LA51_0 <= K_TINYINT)||LA51_0==K_TRIGGER||(LA51_0 >= K_TTL && LA51_0 <= K_TYPE)||(LA51_0 >= K_USER && LA51_0 <= K_USERS)||(LA51_0 >= K_UUID && LA51_0 <= K_VARINT)||LA51_0==K_WRITETIME||LA51_0==QUOTED_NAME||LA51_0==STRING_LITERAL) ) {
+ alt51=1;
+ }
+ switch (alt51) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:568:11: v= comparatorType ( ',' v= comparatorType )*
+ {
+ pushFollow(FOLLOW_comparatorType_in_createAggregateStatement2914);
+ v=comparatorType();
+ state._fsp--;
+
+ argsTypes.add(v);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:569:11: ( ',' v= comparatorType )*
+ loop50:
+ while (true) {
+ int alt50=2;
+ int LA50_0 = input.LA(1);
+ if ( (LA50_0==177) ) {
+ alt50=1;
+ }
+
+ switch (alt50) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:569:13: ',' v= comparatorType
+ {
+ match(input,177,FOLLOW_177_in_createAggregateStatement2930);
+ pushFollow(FOLLOW_comparatorType_in_createAggregateStatement2934);
+ v=comparatorType();
+ state._fsp--;
+
+ argsTypes.add(v);
+ }
+ break;
+
+ default :
+ break loop50;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,175,FOLLOW_175_in_createAggregateStatement2958);
+ match(input,K_SFUNC,FOLLOW_K_SFUNC_in_createAggregateStatement2966);
+ pushFollow(FOLLOW_allowedFunctionName_in_createAggregateStatement2972);
+ sfunc=allowedFunctionName();
+ state._fsp--;
+
+ match(input,K_STYPE,FOLLOW_K_STYPE_in_createAggregateStatement2980);
+ pushFollow(FOLLOW_comparatorType_in_createAggregateStatement2986);
+ stype=comparatorType();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:574:7: ( K_FINALFUNC ffunc= allowedFunctionName )?
+ int alt52=2;
+ int LA52_0 = input.LA(1);
+ if ( (LA52_0==K_FINALFUNC) ) {
+ alt52=1;
+ }
+ switch (alt52) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:575:9: K_FINALFUNC ffunc= allowedFunctionName
+ {
+ match(input,K_FINALFUNC,FOLLOW_K_FINALFUNC_in_createAggregateStatement3004);
+ pushFollow(FOLLOW_allowedFunctionName_in_createAggregateStatement3010);
+ ffunc=allowedFunctionName();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:577:7: ( K_INITCOND ival= term )?
+ int alt53=2;
+ int LA53_0 = input.LA(1);
+ if ( (LA53_0==K_INITCOND) ) {
+ alt53=1;
+ }
+ switch (alt53) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:578:9: K_INITCOND ival= term
+ {
+ match(input,K_INITCOND,FOLLOW_K_INITCOND_in_createAggregateStatement3037);
+ pushFollow(FOLLOW_term_in_createAggregateStatement3043);
+ ival=term();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ expr = new CreateAggregateStatement(fn, argsTypes, sfunc, stype, ffunc, ival, orReplace, ifNotExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "createAggregateStatement"
+
+
+
+ // $ANTLR start "dropAggregateStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:583:1: dropAggregateStatement returns [DropAggregateStatement expr] : K_DROP K_AGGREGATE ( K_IF K_EXISTS )? fn= functionName ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )? ;
+ public final DropAggregateStatement dropAggregateStatement() throws RecognitionException {
+ DropAggregateStatement expr = null;
+
+
+ FunctionName fn =null;
+ CQL3Type.Raw v =null;
+
+
+ boolean ifExists = false;
+ List argsTypes = new ArrayList<>();
+ boolean argsPresent = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:589:5: ( K_DROP K_AGGREGATE ( K_IF K_EXISTS )? fn= functionName ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:589:7: K_DROP K_AGGREGATE ( K_IF K_EXISTS )? fn= functionName ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )?
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropAggregateStatement3090);
+ match(input,K_AGGREGATE,FOLLOW_K_AGGREGATE_in_dropAggregateStatement3092);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:590:7: ( K_IF K_EXISTS )?
+ int alt54=2;
+ int LA54_0 = input.LA(1);
+ if ( (LA54_0==K_IF) ) {
+ alt54=1;
+ }
+ switch (alt54) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:590:8: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropAggregateStatement3101);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropAggregateStatement3103);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_functionName_in_dropAggregateStatement3118);
+ fn=functionName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:592:7: ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )?
+ int alt57=2;
+ int LA57_0 = input.LA(1);
+ if ( (LA57_0==174) ) {
+ alt57=1;
+ }
+ switch (alt57) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:593:9: '(' (v= comparatorType ( ',' v= comparatorType )* )? ')'
+ {
+ match(input,174,FOLLOW_174_in_dropAggregateStatement3136);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:594:11: (v= comparatorType ( ',' v= comparatorType )* )?
+ int alt56=2;
+ int LA56_0 = input.LA(1);
+ if ( (LA56_0==IDENT||(LA56_0 >= K_AGGREGATE && LA56_0 <= K_ALL)||LA56_0==K_AS||LA56_0==K_ASCII||(LA56_0 >= K_BIGINT && LA56_0 <= K_BOOLEAN)||(LA56_0 >= K_CALLED && LA56_0 <= K_CLUSTERING)||(LA56_0 >= K_COMPACT && LA56_0 <= K_COUNTER)||(LA56_0 >= K_CUSTOM && LA56_0 <= K_DECIMAL)||(LA56_0 >= K_DISTINCT && LA56_0 <= K_DOUBLE)||(LA56_0 >= K_EXISTS && LA56_0 <= K_FLOAT)||LA56_0==K_FROZEN||(LA56_0 >= K_FUNCTION && LA56_0 <= K_FUNCTIONS)||LA56_0==K_INET||(LA56_0 >= K_INITCOND && LA56_0 <= K_INPUT)||LA56_0==K_INT||(LA56_0 >= K_JSON && LA56_0 <= K_KEYS)||(LA56_0 >= K_KEYSPACES && LA56_0 <= K_LIKE)||(LA56_0 >= K_LIST && LA56_0 <= K_MAP)||LA56_0==K_NOLOGIN||LA56_0==K_NOSUPERUSER||LA56_0==K_OPTIONS||(LA56_0 >= K_PARTITION && LA56_0 <= K_PERMISSIONS)||LA56_0==K_RETURNS||(LA56_0 >= K_ROLE && LA56_0 <= K_ROLES)||(LA56_0 >= K_SET && LA56_0 <= K_TINYINT)||LA56_0==K_TRIGGER||(LA56_0 >= K_TTL && LA56_0 <= K_TYPE)||(LA56_0 >= K_USER && LA56_0 <= K_USERS)||(LA56_0 >= K_UUID && LA56_0 <= K_VARINT)||LA56_0==K_WRITETIME||LA56_0==QUOTED_NAME||LA56_0==STRING_LITERAL) ) {
+ alt56=1;
+ }
+ switch (alt56) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:595:13: v= comparatorType ( ',' v= comparatorType )*
+ {
+ pushFollow(FOLLOW_comparatorType_in_dropAggregateStatement3164);
+ v=comparatorType();
+ state._fsp--;
+
+ argsTypes.add(v);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:596:13: ( ',' v= comparatorType )*
+ loop55:
+ while (true) {
+ int alt55=2;
+ int LA55_0 = input.LA(1);
+ if ( (LA55_0==177) ) {
+ alt55=1;
+ }
+
+ switch (alt55) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:596:15: ',' v= comparatorType
+ {
+ match(input,177,FOLLOW_177_in_dropAggregateStatement3182);
+ pushFollow(FOLLOW_comparatorType_in_dropAggregateStatement3186);
+ v=comparatorType();
+ state._fsp--;
+
+ argsTypes.add(v);
+ }
+ break;
+
+ default :
+ break loop55;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,175,FOLLOW_175_in_dropAggregateStatement3214);
+ argsPresent = true;
+ }
+ break;
+
+ }
+
+ expr = new DropAggregateStatement(fn, argsTypes, argsPresent, ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "dropAggregateStatement"
+
+
+
+ // $ANTLR start "createFunctionStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:604:1: createFunctionStatement returns [CreateFunctionStatement expr] : K_CREATE ( K_OR K_REPLACE )? K_FUNCTION ( K_IF K_NOT K_EXISTS )? fn= functionName '(' (k= noncol_ident v= comparatorType ( ',' k= noncol_ident v= comparatorType )* )? ')' ( ( K_RETURNS K_NULL ) | ( K_CALLED ) ) K_ON K_NULL K_INPUT K_RETURNS rt= comparatorType K_LANGUAGE language= IDENT K_AS body= STRING_LITERAL ;
+ public final CreateFunctionStatement createFunctionStatement() throws RecognitionException {
+ CreateFunctionStatement expr = null;
+
+
+ Token language=null;
+ Token body=null;
+ FunctionName fn =null;
+ ColumnIdentifier k =null;
+ CQL3Type.Raw v =null;
+ CQL3Type.Raw rt =null;
+
+
+ boolean orReplace = false;
+ boolean ifNotExists = false;
+
+ List argsNames = new ArrayList<>();
+ List argsTypes = new ArrayList<>();
+ boolean calledOnNullInput = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:613:5: ( K_CREATE ( K_OR K_REPLACE )? K_FUNCTION ( K_IF K_NOT K_EXISTS )? fn= functionName '(' (k= noncol_ident v= comparatorType ( ',' k= noncol_ident v= comparatorType )* )? ')' ( ( K_RETURNS K_NULL ) | ( K_CALLED ) ) K_ON K_NULL K_INPUT K_RETURNS rt= comparatorType K_LANGUAGE language= IDENT K_AS body= STRING_LITERAL )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:613:7: K_CREATE ( K_OR K_REPLACE )? K_FUNCTION ( K_IF K_NOT K_EXISTS )? fn= functionName '(' (k= noncol_ident v= comparatorType ( ',' k= noncol_ident v= comparatorType )* )? ')' ( ( K_RETURNS K_NULL ) | ( K_CALLED ) ) K_ON K_NULL K_INPUT K_RETURNS rt= comparatorType K_LANGUAGE language= IDENT K_AS body= STRING_LITERAL
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createFunctionStatement3271);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:613:16: ( K_OR K_REPLACE )?
+ int alt58=2;
+ int LA58_0 = input.LA(1);
+ if ( (LA58_0==K_OR) ) {
+ alt58=1;
+ }
+ switch (alt58) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:613:17: K_OR K_REPLACE
+ {
+ match(input,K_OR,FOLLOW_K_OR_in_createFunctionStatement3274);
+ match(input,K_REPLACE,FOLLOW_K_REPLACE_in_createFunctionStatement3276);
+ orReplace = true;
+ }
+ break;
+
+ }
+
+ match(input,K_FUNCTION,FOLLOW_K_FUNCTION_in_createFunctionStatement3288);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:615:7: ( K_IF K_NOT K_EXISTS )?
+ int alt59=2;
+ int LA59_0 = input.LA(1);
+ if ( (LA59_0==K_IF) ) {
+ alt59=1;
+ }
+ switch (alt59) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:615:8: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createFunctionStatement3297);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createFunctionStatement3299);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createFunctionStatement3301);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_functionName_in_createFunctionStatement3315);
+ fn=functionName();
+ state._fsp--;
+
+ match(input,174,FOLLOW_174_in_createFunctionStatement3323);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:618:9: (k= noncol_ident v= comparatorType ( ',' k= noncol_ident v= comparatorType )* )?
+ int alt61=2;
+ int LA61_0 = input.LA(1);
+ if ( (LA61_0==IDENT||(LA61_0 >= K_AGGREGATE && LA61_0 <= K_ALL)||LA61_0==K_AS||LA61_0==K_ASCII||(LA61_0 >= K_BIGINT && LA61_0 <= K_BOOLEAN)||(LA61_0 >= K_CALLED && LA61_0 <= K_CLUSTERING)||(LA61_0 >= K_COMPACT && LA61_0 <= K_COUNTER)||(LA61_0 >= K_CUSTOM && LA61_0 <= K_DECIMAL)||(LA61_0 >= K_DISTINCT && LA61_0 <= K_DOUBLE)||(LA61_0 >= K_EXISTS && LA61_0 <= K_FLOAT)||LA61_0==K_FROZEN||(LA61_0 >= K_FUNCTION && LA61_0 <= K_FUNCTIONS)||LA61_0==K_INET||(LA61_0 >= K_INITCOND && LA61_0 <= K_INPUT)||LA61_0==K_INT||(LA61_0 >= K_JSON && LA61_0 <= K_KEYS)||(LA61_0 >= K_KEYSPACES && LA61_0 <= K_LIKE)||(LA61_0 >= K_LIST && LA61_0 <= K_MAP)||LA61_0==K_NOLOGIN||LA61_0==K_NOSUPERUSER||LA61_0==K_OPTIONS||(LA61_0 >= K_PARTITION && LA61_0 <= K_PERMISSIONS)||LA61_0==K_RETURNS||(LA61_0 >= K_ROLE && LA61_0 <= K_ROLES)||(LA61_0 >= K_SFUNC && LA61_0 <= K_TINYINT)||LA61_0==K_TRIGGER||(LA61_0 >= K_TTL && LA61_0 <= K_TYPE)||(LA61_0 >= K_USER && LA61_0 <= K_USERS)||(LA61_0 >= K_UUID && LA61_0 <= K_VARINT)||LA61_0==K_WRITETIME||LA61_0==QUOTED_NAME) ) {
+ alt61=1;
+ }
+ switch (alt61) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:619:11: k= noncol_ident v= comparatorType ( ',' k= noncol_ident v= comparatorType )*
+ {
+ pushFollow(FOLLOW_noncol_ident_in_createFunctionStatement3347);
+ k=noncol_ident();
+ state._fsp--;
+
+ pushFollow(FOLLOW_comparatorType_in_createFunctionStatement3351);
+ v=comparatorType();
+ state._fsp--;
+
+ argsNames.add(k); argsTypes.add(v);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:620:11: ( ',' k= noncol_ident v= comparatorType )*
+ loop60:
+ while (true) {
+ int alt60=2;
+ int LA60_0 = input.LA(1);
+ if ( (LA60_0==177) ) {
+ alt60=1;
+ }
+
+ switch (alt60) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:620:13: ',' k= noncol_ident v= comparatorType
+ {
+ match(input,177,FOLLOW_177_in_createFunctionStatement3367);
+ pushFollow(FOLLOW_noncol_ident_in_createFunctionStatement3371);
+ k=noncol_ident();
+ state._fsp--;
+
+ pushFollow(FOLLOW_comparatorType_in_createFunctionStatement3375);
+ v=comparatorType();
+ state._fsp--;
+
+ argsNames.add(k); argsTypes.add(v);
+ }
+ break;
+
+ default :
+ break loop60;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,175,FOLLOW_175_in_createFunctionStatement3399);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:623:7: ( ( K_RETURNS K_NULL ) | ( K_CALLED ) )
+ int alt62=2;
+ int LA62_0 = input.LA(1);
+ if ( (LA62_0==K_RETURNS) ) {
+ alt62=1;
+ }
+ else if ( (LA62_0==K_CALLED) ) {
+ alt62=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 62, 0, input);
+ throw nvae;
+ }
+
+ switch (alt62) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:623:9: ( K_RETURNS K_NULL )
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:623:9: ( K_RETURNS K_NULL )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:623:10: K_RETURNS K_NULL
+ {
+ match(input,K_RETURNS,FOLLOW_K_RETURNS_in_createFunctionStatement3410);
+ match(input,K_NULL,FOLLOW_K_NULL_in_createFunctionStatement3412);
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:623:30: ( K_CALLED )
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:623:30: ( K_CALLED )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:623:31: K_CALLED
+ {
+ match(input,K_CALLED,FOLLOW_K_CALLED_in_createFunctionStatement3418);
+ calledOnNullInput=true;
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,K_ON,FOLLOW_K_ON_in_createFunctionStatement3424);
+ match(input,K_NULL,FOLLOW_K_NULL_in_createFunctionStatement3426);
+ match(input,K_INPUT,FOLLOW_K_INPUT_in_createFunctionStatement3428);
+ match(input,K_RETURNS,FOLLOW_K_RETURNS_in_createFunctionStatement3436);
+ pushFollow(FOLLOW_comparatorType_in_createFunctionStatement3442);
+ rt=comparatorType();
+ state._fsp--;
+
+ match(input,K_LANGUAGE,FOLLOW_K_LANGUAGE_in_createFunctionStatement3450);
+ language=(Token)match(input,IDENT,FOLLOW_IDENT_in_createFunctionStatement3456);
+ match(input,K_AS,FOLLOW_K_AS_in_createFunctionStatement3464);
+ body=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_createFunctionStatement3470);
+ expr = new CreateFunctionStatement(fn, (language!=null?language.getText():null).toLowerCase(), (body!=null?body.getText():null),
+ argsNames, argsTypes, rt, calledOnNullInput, orReplace, ifNotExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "createFunctionStatement"
+
+
+
+ // $ANTLR start "dropFunctionStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:631:1: dropFunctionStatement returns [DropFunctionStatement expr] : K_DROP K_FUNCTION ( K_IF K_EXISTS )? fn= functionName ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )? ;
+ public final DropFunctionStatement dropFunctionStatement() throws RecognitionException {
+ DropFunctionStatement expr = null;
+
+
+ FunctionName fn =null;
+ CQL3Type.Raw v =null;
+
+
+ boolean ifExists = false;
+ List argsTypes = new ArrayList<>();
+ boolean argsPresent = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:637:5: ( K_DROP K_FUNCTION ( K_IF K_EXISTS )? fn= functionName ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:637:7: K_DROP K_FUNCTION ( K_IF K_EXISTS )? fn= functionName ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )?
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropFunctionStatement3508);
+ match(input,K_FUNCTION,FOLLOW_K_FUNCTION_in_dropFunctionStatement3510);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:638:7: ( K_IF K_EXISTS )?
+ int alt63=2;
+ int LA63_0 = input.LA(1);
+ if ( (LA63_0==K_IF) ) {
+ alt63=1;
+ }
+ switch (alt63) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:638:8: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropFunctionStatement3519);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropFunctionStatement3521);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_functionName_in_dropFunctionStatement3536);
+ fn=functionName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:640:7: ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )?
+ int alt66=2;
+ int LA66_0 = input.LA(1);
+ if ( (LA66_0==174) ) {
+ alt66=1;
+ }
+ switch (alt66) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:641:9: '(' (v= comparatorType ( ',' v= comparatorType )* )? ')'
+ {
+ match(input,174,FOLLOW_174_in_dropFunctionStatement3554);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:642:11: (v= comparatorType ( ',' v= comparatorType )* )?
+ int alt65=2;
+ int LA65_0 = input.LA(1);
+ if ( (LA65_0==IDENT||(LA65_0 >= K_AGGREGATE && LA65_0 <= K_ALL)||LA65_0==K_AS||LA65_0==K_ASCII||(LA65_0 >= K_BIGINT && LA65_0 <= K_BOOLEAN)||(LA65_0 >= K_CALLED && LA65_0 <= K_CLUSTERING)||(LA65_0 >= K_COMPACT && LA65_0 <= K_COUNTER)||(LA65_0 >= K_CUSTOM && LA65_0 <= K_DECIMAL)||(LA65_0 >= K_DISTINCT && LA65_0 <= K_DOUBLE)||(LA65_0 >= K_EXISTS && LA65_0 <= K_FLOAT)||LA65_0==K_FROZEN||(LA65_0 >= K_FUNCTION && LA65_0 <= K_FUNCTIONS)||LA65_0==K_INET||(LA65_0 >= K_INITCOND && LA65_0 <= K_INPUT)||LA65_0==K_INT||(LA65_0 >= K_JSON && LA65_0 <= K_KEYS)||(LA65_0 >= K_KEYSPACES && LA65_0 <= K_LIKE)||(LA65_0 >= K_LIST && LA65_0 <= K_MAP)||LA65_0==K_NOLOGIN||LA65_0==K_NOSUPERUSER||LA65_0==K_OPTIONS||(LA65_0 >= K_PARTITION && LA65_0 <= K_PERMISSIONS)||LA65_0==K_RETURNS||(LA65_0 >= K_ROLE && LA65_0 <= K_ROLES)||(LA65_0 >= K_SET && LA65_0 <= K_TINYINT)||LA65_0==K_TRIGGER||(LA65_0 >= K_TTL && LA65_0 <= K_TYPE)||(LA65_0 >= K_USER && LA65_0 <= K_USERS)||(LA65_0 >= K_UUID && LA65_0 <= K_VARINT)||LA65_0==K_WRITETIME||LA65_0==QUOTED_NAME||LA65_0==STRING_LITERAL) ) {
+ alt65=1;
+ }
+ switch (alt65) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:643:13: v= comparatorType ( ',' v= comparatorType )*
+ {
+ pushFollow(FOLLOW_comparatorType_in_dropFunctionStatement3582);
+ v=comparatorType();
+ state._fsp--;
+
+ argsTypes.add(v);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:644:13: ( ',' v= comparatorType )*
+ loop64:
+ while (true) {
+ int alt64=2;
+ int LA64_0 = input.LA(1);
+ if ( (LA64_0==177) ) {
+ alt64=1;
+ }
+
+ switch (alt64) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:644:15: ',' v= comparatorType
+ {
+ match(input,177,FOLLOW_177_in_dropFunctionStatement3600);
+ pushFollow(FOLLOW_comparatorType_in_dropFunctionStatement3604);
+ v=comparatorType();
+ state._fsp--;
+
+ argsTypes.add(v);
+ }
+ break;
+
+ default :
+ break loop64;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,175,FOLLOW_175_in_dropFunctionStatement3632);
+ argsPresent = true;
+ }
+ break;
+
+ }
+
+ expr = new DropFunctionStatement(fn, argsTypes, argsPresent, ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "dropFunctionStatement"
+
+
+
+ // $ANTLR start "createKeyspaceStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:655:1: createKeyspaceStatement returns [CreateKeyspaceStatement expr] : K_CREATE K_KEYSPACE ( K_IF K_NOT K_EXISTS )? ks= keyspaceName K_WITH properties[attrs] ;
+ public final CreateKeyspaceStatement createKeyspaceStatement() throws RecognitionException {
+ CreateKeyspaceStatement expr = null;
+
+
+ String ks =null;
+
+
+ KeyspaceAttributes attrs = new KeyspaceAttributes();
+ boolean ifNotExists = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:660:5: ( K_CREATE K_KEYSPACE ( K_IF K_NOT K_EXISTS )? ks= keyspaceName K_WITH properties[attrs] )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:660:7: K_CREATE K_KEYSPACE ( K_IF K_NOT K_EXISTS )? ks= keyspaceName K_WITH properties[attrs]
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createKeyspaceStatement3691);
+ match(input,K_KEYSPACE,FOLLOW_K_KEYSPACE_in_createKeyspaceStatement3693);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:660:27: ( K_IF K_NOT K_EXISTS )?
+ int alt67=2;
+ int LA67_0 = input.LA(1);
+ if ( (LA67_0==K_IF) ) {
+ alt67=1;
+ }
+ switch (alt67) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:660:28: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createKeyspaceStatement3696);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createKeyspaceStatement3698);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createKeyspaceStatement3700);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_keyspaceName_in_createKeyspaceStatement3709);
+ ks=keyspaceName();
+ state._fsp--;
+
+ match(input,K_WITH,FOLLOW_K_WITH_in_createKeyspaceStatement3717);
+ pushFollow(FOLLOW_properties_in_createKeyspaceStatement3719);
+ properties(attrs);
+ state._fsp--;
+
+ expr = new CreateKeyspaceStatement(ks, attrs, ifNotExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "createKeyspaceStatement"
+
+
+
+ // $ANTLR start "createTableStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:671:1: createTableStatement returns [CreateTableStatement.RawStatement expr] : K_CREATE K_COLUMNFAMILY ( K_IF K_NOT K_EXISTS )? cf= columnFamilyName cfamDefinition[expr] ;
+ public final CreateTableStatement.RawStatement createTableStatement() throws RecognitionException {
+ CreateTableStatement.RawStatement expr = null;
+
+
+ CFName cf =null;
+
+ boolean ifNotExists = false;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:673:5: ( K_CREATE K_COLUMNFAMILY ( K_IF K_NOT K_EXISTS )? cf= columnFamilyName cfamDefinition[expr] )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:673:7: K_CREATE K_COLUMNFAMILY ( K_IF K_NOT K_EXISTS )? cf= columnFamilyName cfamDefinition[expr]
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createTableStatement3754);
+ match(input,K_COLUMNFAMILY,FOLLOW_K_COLUMNFAMILY_in_createTableStatement3756);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:673:31: ( K_IF K_NOT K_EXISTS )?
+ int alt68=2;
+ int LA68_0 = input.LA(1);
+ if ( (LA68_0==K_IF) ) {
+ alt68=1;
+ }
+ switch (alt68) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:673:32: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createTableStatement3759);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createTableStatement3761);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createTableStatement3763);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_columnFamilyName_in_createTableStatement3778);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ expr = new CreateTableStatement.RawStatement(cf, ifNotExists);
+ pushFollow(FOLLOW_cfamDefinition_in_createTableStatement3788);
+ cfamDefinition(expr);
+ state._fsp--;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "createTableStatement"
+
+
+
+ // $ANTLR start "cfamDefinition"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:678:1: cfamDefinition[CreateTableStatement.RawStatement expr] : '(' cfamColumns[expr] ( ',' ( cfamColumns[expr] )? )* ')' ( K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )* )? ;
+ public final void cfamDefinition(CreateTableStatement.RawStatement expr) throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:679:5: ( '(' cfamColumns[expr] ( ',' ( cfamColumns[expr] )? )* ')' ( K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )* )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:679:7: '(' cfamColumns[expr] ( ',' ( cfamColumns[expr] )? )* ')' ( K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )* )?
+ {
+ match(input,174,FOLLOW_174_in_cfamDefinition3807);
+ pushFollow(FOLLOW_cfamColumns_in_cfamDefinition3809);
+ cfamColumns(expr);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:679:29: ( ',' ( cfamColumns[expr] )? )*
+ loop70:
+ while (true) {
+ int alt70=2;
+ int LA70_0 = input.LA(1);
+ if ( (LA70_0==177) ) {
+ alt70=1;
+ }
+
+ switch (alt70) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:679:31: ',' ( cfamColumns[expr] )?
+ {
+ match(input,177,FOLLOW_177_in_cfamDefinition3814);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:679:35: ( cfamColumns[expr] )?
+ int alt69=2;
+ int LA69_0 = input.LA(1);
+ if ( (LA69_0==IDENT||(LA69_0 >= K_AGGREGATE && LA69_0 <= K_ALL)||LA69_0==K_AS||LA69_0==K_ASCII||(LA69_0 >= K_BIGINT && LA69_0 <= K_BOOLEAN)||(LA69_0 >= K_CALLED && LA69_0 <= K_CLUSTERING)||(LA69_0 >= K_COMPACT && LA69_0 <= K_COUNTER)||(LA69_0 >= K_CUSTOM && LA69_0 <= K_DECIMAL)||(LA69_0 >= K_DISTINCT && LA69_0 <= K_DOUBLE)||(LA69_0 >= K_EXISTS && LA69_0 <= K_FLOAT)||LA69_0==K_FROZEN||(LA69_0 >= K_FUNCTION && LA69_0 <= K_FUNCTIONS)||LA69_0==K_INET||(LA69_0 >= K_INITCOND && LA69_0 <= K_INPUT)||LA69_0==K_INT||(LA69_0 >= K_JSON && LA69_0 <= K_KEYS)||(LA69_0 >= K_KEYSPACES && LA69_0 <= K_LIKE)||(LA69_0 >= K_LIST && LA69_0 <= K_MAP)||LA69_0==K_NOLOGIN||LA69_0==K_NOSUPERUSER||LA69_0==K_OPTIONS||(LA69_0 >= K_PARTITION && LA69_0 <= K_PRIMARY)||LA69_0==K_RETURNS||(LA69_0 >= K_ROLE && LA69_0 <= K_ROLES)||(LA69_0 >= K_SFUNC && LA69_0 <= K_TINYINT)||LA69_0==K_TRIGGER||(LA69_0 >= K_TTL && LA69_0 <= K_TYPE)||(LA69_0 >= K_USER && LA69_0 <= K_USERS)||(LA69_0 >= K_UUID && LA69_0 <= K_VARINT)||LA69_0==K_WRITETIME||LA69_0==QUOTED_NAME) ) {
+ alt69=1;
+ }
+ switch (alt69) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:679:35: cfamColumns[expr]
+ {
+ pushFollow(FOLLOW_cfamColumns_in_cfamDefinition3816);
+ cfamColumns(expr);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ default :
+ break loop70;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_cfamDefinition3823);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:680:7: ( K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )* )?
+ int alt72=2;
+ int LA72_0 = input.LA(1);
+ if ( (LA72_0==K_WITH) ) {
+ alt72=1;
+ }
+ switch (alt72) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:680:9: K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )*
+ {
+ match(input,K_WITH,FOLLOW_K_WITH_in_cfamDefinition3833);
+ pushFollow(FOLLOW_cfamProperty_in_cfamDefinition3835);
+ cfamProperty(expr.properties);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:680:46: ( K_AND cfamProperty[expr.properties] )*
+ loop71:
+ while (true) {
+ int alt71=2;
+ int LA71_0 = input.LA(1);
+ if ( (LA71_0==K_AND) ) {
+ alt71=1;
+ }
+
+ switch (alt71) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:680:48: K_AND cfamProperty[expr.properties]
+ {
+ match(input,K_AND,FOLLOW_K_AND_in_cfamDefinition3840);
+ pushFollow(FOLLOW_cfamProperty_in_cfamDefinition3842);
+ cfamProperty(expr.properties);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop71;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "cfamDefinition"
+
+
+
+ // $ANTLR start "cfamColumns"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:683:1: cfamColumns[CreateTableStatement.RawStatement expr] : (k= ident v= comparatorType ( K_STATIC )? ( K_PRIMARY K_KEY )? | K_PRIMARY K_KEY '(' pkDef[expr] ( ',' c= ident )* ')' );
+ public final void cfamColumns(CreateTableStatement.RawStatement expr) throws RecognitionException {
+ ColumnIdentifier k =null;
+ CQL3Type.Raw v =null;
+ ColumnIdentifier c =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:684:5: (k= ident v= comparatorType ( K_STATIC )? ( K_PRIMARY K_KEY )? | K_PRIMARY K_KEY '(' pkDef[expr] ( ',' c= ident )* ')' )
+ int alt76=2;
+ int LA76_0 = input.LA(1);
+ if ( (LA76_0==IDENT||(LA76_0 >= K_AGGREGATE && LA76_0 <= K_ALL)||LA76_0==K_AS||LA76_0==K_ASCII||(LA76_0 >= K_BIGINT && LA76_0 <= K_BOOLEAN)||(LA76_0 >= K_CALLED && LA76_0 <= K_CLUSTERING)||(LA76_0 >= K_COMPACT && LA76_0 <= K_COUNTER)||(LA76_0 >= K_CUSTOM && LA76_0 <= K_DECIMAL)||(LA76_0 >= K_DISTINCT && LA76_0 <= K_DOUBLE)||(LA76_0 >= K_EXISTS && LA76_0 <= K_FLOAT)||LA76_0==K_FROZEN||(LA76_0 >= K_FUNCTION && LA76_0 <= K_FUNCTIONS)||LA76_0==K_INET||(LA76_0 >= K_INITCOND && LA76_0 <= K_INPUT)||LA76_0==K_INT||(LA76_0 >= K_JSON && LA76_0 <= K_KEYS)||(LA76_0 >= K_KEYSPACES && LA76_0 <= K_LIKE)||(LA76_0 >= K_LIST && LA76_0 <= K_MAP)||LA76_0==K_NOLOGIN||LA76_0==K_NOSUPERUSER||LA76_0==K_OPTIONS||(LA76_0 >= K_PARTITION && LA76_0 <= K_PERMISSIONS)||LA76_0==K_RETURNS||(LA76_0 >= K_ROLE && LA76_0 <= K_ROLES)||(LA76_0 >= K_SFUNC && LA76_0 <= K_TINYINT)||LA76_0==K_TRIGGER||(LA76_0 >= K_TTL && LA76_0 <= K_TYPE)||(LA76_0 >= K_USER && LA76_0 <= K_USERS)||(LA76_0 >= K_UUID && LA76_0 <= K_VARINT)||LA76_0==K_WRITETIME||LA76_0==QUOTED_NAME) ) {
+ alt76=1;
+ }
+ else if ( (LA76_0==K_PRIMARY) ) {
+ alt76=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 76, 0, input);
+ throw nvae;
+ }
+
+ switch (alt76) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:684:7: k= ident v= comparatorType ( K_STATIC )? ( K_PRIMARY K_KEY )?
+ {
+ pushFollow(FOLLOW_ident_in_cfamColumns3868);
+ k=ident();
+ state._fsp--;
+
+ pushFollow(FOLLOW_comparatorType_in_cfamColumns3872);
+ v=comparatorType();
+ state._fsp--;
+
+ boolean isStatic=false;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:684:60: ( K_STATIC )?
+ int alt73=2;
+ int LA73_0 = input.LA(1);
+ if ( (LA73_0==K_STATIC) ) {
+ alt73=1;
+ }
+ switch (alt73) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:684:61: K_STATIC
+ {
+ match(input,K_STATIC,FOLLOW_K_STATIC_in_cfamColumns3877);
+ isStatic = true;
+ }
+ break;
+
+ }
+
+ expr.addDefinition(k, v, isStatic);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:685:9: ( K_PRIMARY K_KEY )?
+ int alt74=2;
+ int LA74_0 = input.LA(1);
+ if ( (LA74_0==K_PRIMARY) ) {
+ alt74=1;
+ }
+ switch (alt74) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:685:10: K_PRIMARY K_KEY
+ {
+ match(input,K_PRIMARY,FOLLOW_K_PRIMARY_in_cfamColumns3894);
+ match(input,K_KEY,FOLLOW_K_KEY_in_cfamColumns3896);
+ expr.addKeyAliases(Collections.singletonList(k));
+ }
+ break;
+
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:686:7: K_PRIMARY K_KEY '(' pkDef[expr] ( ',' c= ident )* ')'
+ {
+ match(input,K_PRIMARY,FOLLOW_K_PRIMARY_in_cfamColumns3908);
+ match(input,K_KEY,FOLLOW_K_KEY_in_cfamColumns3910);
+ match(input,174,FOLLOW_174_in_cfamColumns3912);
+ pushFollow(FOLLOW_pkDef_in_cfamColumns3914);
+ pkDef(expr);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:686:39: ( ',' c= ident )*
+ loop75:
+ while (true) {
+ int alt75=2;
+ int LA75_0 = input.LA(1);
+ if ( (LA75_0==177) ) {
+ alt75=1;
+ }
+
+ switch (alt75) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:686:40: ',' c= ident
+ {
+ match(input,177,FOLLOW_177_in_cfamColumns3918);
+ pushFollow(FOLLOW_ident_in_cfamColumns3922);
+ c=ident();
+ state._fsp--;
+
+ expr.addColumnAlias(c);
+ }
+ break;
+
+ default :
+ break loop75;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_cfamColumns3929);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "cfamColumns"
+
+
+
+ // $ANTLR start "pkDef"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:689:1: pkDef[CreateTableStatement.RawStatement expr] : (k= ident | '(' k1= ident ( ',' kn= ident )* ')' );
+ public final void pkDef(CreateTableStatement.RawStatement expr) throws RecognitionException {
+ ColumnIdentifier k =null;
+ ColumnIdentifier k1 =null;
+ ColumnIdentifier kn =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:690:5: (k= ident | '(' k1= ident ( ',' kn= ident )* ')' )
+ int alt78=2;
+ int LA78_0 = input.LA(1);
+ if ( (LA78_0==IDENT||(LA78_0 >= K_AGGREGATE && LA78_0 <= K_ALL)||LA78_0==K_AS||LA78_0==K_ASCII||(LA78_0 >= K_BIGINT && LA78_0 <= K_BOOLEAN)||(LA78_0 >= K_CALLED && LA78_0 <= K_CLUSTERING)||(LA78_0 >= K_COMPACT && LA78_0 <= K_COUNTER)||(LA78_0 >= K_CUSTOM && LA78_0 <= K_DECIMAL)||(LA78_0 >= K_DISTINCT && LA78_0 <= K_DOUBLE)||(LA78_0 >= K_EXISTS && LA78_0 <= K_FLOAT)||LA78_0==K_FROZEN||(LA78_0 >= K_FUNCTION && LA78_0 <= K_FUNCTIONS)||LA78_0==K_INET||(LA78_0 >= K_INITCOND && LA78_0 <= K_INPUT)||LA78_0==K_INT||(LA78_0 >= K_JSON && LA78_0 <= K_KEYS)||(LA78_0 >= K_KEYSPACES && LA78_0 <= K_LIKE)||(LA78_0 >= K_LIST && LA78_0 <= K_MAP)||LA78_0==K_NOLOGIN||LA78_0==K_NOSUPERUSER||LA78_0==K_OPTIONS||(LA78_0 >= K_PARTITION && LA78_0 <= K_PERMISSIONS)||LA78_0==K_RETURNS||(LA78_0 >= K_ROLE && LA78_0 <= K_ROLES)||(LA78_0 >= K_SFUNC && LA78_0 <= K_TINYINT)||LA78_0==K_TRIGGER||(LA78_0 >= K_TTL && LA78_0 <= K_TYPE)||(LA78_0 >= K_USER && LA78_0 <= K_USERS)||(LA78_0 >= K_UUID && LA78_0 <= K_VARINT)||LA78_0==K_WRITETIME||LA78_0==QUOTED_NAME) ) {
+ alt78=1;
+ }
+ else if ( (LA78_0==174) ) {
+ alt78=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 78, 0, input);
+ throw nvae;
+ }
+
+ switch (alt78) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:690:7: k= ident
+ {
+ pushFollow(FOLLOW_ident_in_pkDef3949);
+ k=ident();
+ state._fsp--;
+
+ expr.addKeyAliases(Collections.singletonList(k));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:691:7: '(' k1= ident ( ',' kn= ident )* ')'
+ {
+ match(input,174,FOLLOW_174_in_pkDef3959);
+ List l = new ArrayList();
+ pushFollow(FOLLOW_ident_in_pkDef3965);
+ k1=ident();
+ state._fsp--;
+
+ l.add(k1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:691:101: ( ',' kn= ident )*
+ loop77:
+ while (true) {
+ int alt77=2;
+ int LA77_0 = input.LA(1);
+ if ( (LA77_0==177) ) {
+ alt77=1;
+ }
+
+ switch (alt77) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:691:103: ',' kn= ident
+ {
+ match(input,177,FOLLOW_177_in_pkDef3971);
+ pushFollow(FOLLOW_ident_in_pkDef3975);
+ kn=ident();
+ state._fsp--;
+
+ l.add(kn);
+ }
+ break;
+
+ default :
+ break loop77;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_pkDef3982);
+ expr.addKeyAliases(l);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "pkDef"
+
+
+
+ // $ANTLR start "cfamProperty"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:694:1: cfamProperty[CFProperties props] : ( property[props.properties] | K_COMPACT K_STORAGE | K_CLUSTERING K_ORDER K_BY '(' cfamOrdering[props] ( ',' cfamOrdering[props] )* ')' );
+ public final void cfamProperty(CFProperties props) throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:695:5: ( property[props.properties] | K_COMPACT K_STORAGE | K_CLUSTERING K_ORDER K_BY '(' cfamOrdering[props] ( ',' cfamOrdering[props] )* ')' )
+ int alt80=3;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ case QUOTED_NAME:
+ {
+ alt80=1;
+ }
+ break;
+ case K_COMPACT:
+ {
+ int LA80_2 = input.LA(2);
+ if ( (LA80_2==K_STORAGE) ) {
+ alt80=2;
+ }
+ else if ( (LA80_2==184) ) {
+ alt80=1;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 80, 2, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case K_CLUSTERING:
+ {
+ int LA80_3 = input.LA(2);
+ if ( (LA80_3==K_ORDER) ) {
+ alt80=3;
+ }
+ else if ( (LA80_3==184) ) {
+ alt80=1;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 80, 3, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 80, 0, input);
+ throw nvae;
+ }
+ switch (alt80) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:695:7: property[props.properties]
+ {
+ pushFollow(FOLLOW_property_in_cfamProperty4002);
+ property(props.properties);
+ state._fsp--;
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:696:7: K_COMPACT K_STORAGE
+ {
+ match(input,K_COMPACT,FOLLOW_K_COMPACT_in_cfamProperty4011);
+ match(input,K_STORAGE,FOLLOW_K_STORAGE_in_cfamProperty4013);
+ props.setCompactStorage();
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:697:7: K_CLUSTERING K_ORDER K_BY '(' cfamOrdering[props] ( ',' cfamOrdering[props] )* ')'
+ {
+ match(input,K_CLUSTERING,FOLLOW_K_CLUSTERING_in_cfamProperty4023);
+ match(input,K_ORDER,FOLLOW_K_ORDER_in_cfamProperty4025);
+ match(input,K_BY,FOLLOW_K_BY_in_cfamProperty4027);
+ match(input,174,FOLLOW_174_in_cfamProperty4029);
+ pushFollow(FOLLOW_cfamOrdering_in_cfamProperty4031);
+ cfamOrdering(props);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:697:57: ( ',' cfamOrdering[props] )*
+ loop79:
+ while (true) {
+ int alt79=2;
+ int LA79_0 = input.LA(1);
+ if ( (LA79_0==177) ) {
+ alt79=1;
+ }
+
+ switch (alt79) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:697:58: ',' cfamOrdering[props]
+ {
+ match(input,177,FOLLOW_177_in_cfamProperty4035);
+ pushFollow(FOLLOW_cfamOrdering_in_cfamProperty4037);
+ cfamOrdering(props);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop79;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_cfamProperty4042);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "cfamProperty"
+
+
+
+ // $ANTLR start "cfamOrdering"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:700:1: cfamOrdering[CFProperties props] : k= ident ( K_ASC | K_DESC ) ;
+ public final void cfamOrdering(CFProperties props) throws RecognitionException {
+ ColumnIdentifier k =null;
+
+ boolean reversed=false;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:702:5: (k= ident ( K_ASC | K_DESC ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:702:7: k= ident ( K_ASC | K_DESC )
+ {
+ pushFollow(FOLLOW_ident_in_cfamOrdering4070);
+ k=ident();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:702:15: ( K_ASC | K_DESC )
+ int alt81=2;
+ int LA81_0 = input.LA(1);
+ if ( (LA81_0==K_ASC) ) {
+ alt81=1;
+ }
+ else if ( (LA81_0==K_DESC) ) {
+ alt81=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 81, 0, input);
+ throw nvae;
+ }
+
+ switch (alt81) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:702:16: K_ASC
+ {
+ match(input,K_ASC,FOLLOW_K_ASC_in_cfamOrdering4073);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:702:24: K_DESC
+ {
+ match(input,K_DESC,FOLLOW_K_DESC_in_cfamOrdering4077);
+ reversed=true;
+ }
+ break;
+
+ }
+
+ props.setOrdering(k, reversed);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "cfamOrdering"
+
+
+
+ // $ANTLR start "createTypeStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:713:1: createTypeStatement returns [CreateTypeStatement expr] : K_CREATE K_TYPE ( K_IF K_NOT K_EXISTS )? tn= userTypeName '(' typeColumns[expr] ( ',' ( typeColumns[expr] )? )* ')' ;
+ public final CreateTypeStatement createTypeStatement() throws RecognitionException {
+ CreateTypeStatement expr = null;
+
+
+ UTName tn =null;
+
+ boolean ifNotExists = false;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:715:5: ( K_CREATE K_TYPE ( K_IF K_NOT K_EXISTS )? tn= userTypeName '(' typeColumns[expr] ( ',' ( typeColumns[expr] )? )* ')' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:715:7: K_CREATE K_TYPE ( K_IF K_NOT K_EXISTS )? tn= userTypeName '(' typeColumns[expr] ( ',' ( typeColumns[expr] )? )* ')'
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createTypeStatement4116);
+ match(input,K_TYPE,FOLLOW_K_TYPE_in_createTypeStatement4118);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:715:23: ( K_IF K_NOT K_EXISTS )?
+ int alt82=2;
+ int LA82_0 = input.LA(1);
+ if ( (LA82_0==K_IF) ) {
+ alt82=1;
+ }
+ switch (alt82) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:715:24: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createTypeStatement4121);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createTypeStatement4123);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createTypeStatement4125);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_userTypeName_in_createTypeStatement4143);
+ tn=userTypeName();
+ state._fsp--;
+
+ expr = new CreateTypeStatement(tn, ifNotExists);
+ match(input,174,FOLLOW_174_in_createTypeStatement4156);
+ pushFollow(FOLLOW_typeColumns_in_createTypeStatement4158);
+ typeColumns(expr);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:717:32: ( ',' ( typeColumns[expr] )? )*
+ loop84:
+ while (true) {
+ int alt84=2;
+ int LA84_0 = input.LA(1);
+ if ( (LA84_0==177) ) {
+ alt84=1;
+ }
+
+ switch (alt84) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:717:34: ',' ( typeColumns[expr] )?
+ {
+ match(input,177,FOLLOW_177_in_createTypeStatement4163);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:717:38: ( typeColumns[expr] )?
+ int alt83=2;
+ int LA83_0 = input.LA(1);
+ if ( (LA83_0==IDENT||(LA83_0 >= K_AGGREGATE && LA83_0 <= K_ALL)||LA83_0==K_AS||LA83_0==K_ASCII||(LA83_0 >= K_BIGINT && LA83_0 <= K_BOOLEAN)||(LA83_0 >= K_CALLED && LA83_0 <= K_CLUSTERING)||(LA83_0 >= K_COMPACT && LA83_0 <= K_COUNTER)||(LA83_0 >= K_CUSTOM && LA83_0 <= K_DECIMAL)||(LA83_0 >= K_DISTINCT && LA83_0 <= K_DOUBLE)||(LA83_0 >= K_EXISTS && LA83_0 <= K_FLOAT)||LA83_0==K_FROZEN||(LA83_0 >= K_FUNCTION && LA83_0 <= K_FUNCTIONS)||LA83_0==K_INET||(LA83_0 >= K_INITCOND && LA83_0 <= K_INPUT)||LA83_0==K_INT||(LA83_0 >= K_JSON && LA83_0 <= K_KEYS)||(LA83_0 >= K_KEYSPACES && LA83_0 <= K_LIKE)||(LA83_0 >= K_LIST && LA83_0 <= K_MAP)||LA83_0==K_NOLOGIN||LA83_0==K_NOSUPERUSER||LA83_0==K_OPTIONS||(LA83_0 >= K_PARTITION && LA83_0 <= K_PERMISSIONS)||LA83_0==K_RETURNS||(LA83_0 >= K_ROLE && LA83_0 <= K_ROLES)||(LA83_0 >= K_SFUNC && LA83_0 <= K_TINYINT)||LA83_0==K_TRIGGER||(LA83_0 >= K_TTL && LA83_0 <= K_TYPE)||(LA83_0 >= K_USER && LA83_0 <= K_USERS)||(LA83_0 >= K_UUID && LA83_0 <= K_VARINT)||LA83_0==K_WRITETIME||LA83_0==QUOTED_NAME) ) {
+ alt83=1;
+ }
+ switch (alt83) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:717:38: typeColumns[expr]
+ {
+ pushFollow(FOLLOW_typeColumns_in_createTypeStatement4165);
+ typeColumns(expr);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ default :
+ break loop84;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_createTypeStatement4172);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "createTypeStatement"
+
+
+
+ // $ANTLR start "typeColumns"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:720:1: typeColumns[CreateTypeStatement expr] : k= noncol_ident v= comparatorType ;
+ public final void typeColumns(CreateTypeStatement expr) throws RecognitionException {
+ ColumnIdentifier k =null;
+ CQL3Type.Raw v =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:721:5: (k= noncol_ident v= comparatorType )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:721:7: k= noncol_ident v= comparatorType
+ {
+ pushFollow(FOLLOW_noncol_ident_in_typeColumns4192);
+ k=noncol_ident();
+ state._fsp--;
+
+ pushFollow(FOLLOW_comparatorType_in_typeColumns4196);
+ v=comparatorType();
+ state._fsp--;
+
+ expr.addDefinition(k, v);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "typeColumns"
+
+
+
+ // $ANTLR start "createIndexStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:729:1: createIndexStatement returns [CreateIndexStatement expr] : K_CREATE ( K_CUSTOM )? K_INDEX ( K_IF K_NOT K_EXISTS )? ( idxName[name] )? K_ON cf= columnFamilyName '(' ( indexIdent[targets] ( ',' indexIdent[targets] )* )? ')' ( K_USING cls= STRING_LITERAL )? ( K_WITH properties[props] )? ;
+ public final CreateIndexStatement createIndexStatement() throws RecognitionException {
+ CreateIndexStatement expr = null;
+
+
+ Token cls=null;
+ CFName cf =null;
+
+
+ IndexPropDefs props = new IndexPropDefs();
+ boolean ifNotExists = false;
+ IndexName name = new IndexName();
+ List targets = new ArrayList<>();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:736:5: ( K_CREATE ( K_CUSTOM )? K_INDEX ( K_IF K_NOT K_EXISTS )? ( idxName[name] )? K_ON cf= columnFamilyName '(' ( indexIdent[targets] ( ',' indexIdent[targets] )* )? ')' ( K_USING cls= STRING_LITERAL )? ( K_WITH properties[props] )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:736:7: K_CREATE ( K_CUSTOM )? K_INDEX ( K_IF K_NOT K_EXISTS )? ( idxName[name] )? K_ON cf= columnFamilyName '(' ( indexIdent[targets] ( ',' indexIdent[targets] )* )? ')' ( K_USING cls= STRING_LITERAL )? ( K_WITH properties[props] )?
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createIndexStatement4231);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:736:16: ( K_CUSTOM )?
+ int alt85=2;
+ int LA85_0 = input.LA(1);
+ if ( (LA85_0==K_CUSTOM) ) {
+ alt85=1;
+ }
+ switch (alt85) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:736:17: K_CUSTOM
+ {
+ match(input,K_CUSTOM,FOLLOW_K_CUSTOM_in_createIndexStatement4234);
+ props.isCustom = true;
+ }
+ break;
+
+ }
+
+ match(input,K_INDEX,FOLLOW_K_INDEX_in_createIndexStatement4240);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:736:63: ( K_IF K_NOT K_EXISTS )?
+ int alt86=2;
+ int LA86_0 = input.LA(1);
+ if ( (LA86_0==K_IF) ) {
+ alt86=1;
+ }
+ switch (alt86) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:736:64: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createIndexStatement4243);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createIndexStatement4245);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createIndexStatement4247);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:737:9: ( idxName[name] )?
+ int alt87=2;
+ int LA87_0 = input.LA(1);
+ if ( (LA87_0==IDENT||(LA87_0 >= K_AGGREGATE && LA87_0 <= K_ALL)||LA87_0==K_AS||LA87_0==K_ASCII||(LA87_0 >= K_BIGINT && LA87_0 <= K_BOOLEAN)||(LA87_0 >= K_CALLED && LA87_0 <= K_CLUSTERING)||(LA87_0 >= K_COMPACT && LA87_0 <= K_COUNTER)||(LA87_0 >= K_CUSTOM && LA87_0 <= K_DECIMAL)||(LA87_0 >= K_DISTINCT && LA87_0 <= K_DOUBLE)||(LA87_0 >= K_EXISTS && LA87_0 <= K_FLOAT)||LA87_0==K_FROZEN||(LA87_0 >= K_FUNCTION && LA87_0 <= K_FUNCTIONS)||LA87_0==K_INET||(LA87_0 >= K_INITCOND && LA87_0 <= K_INPUT)||LA87_0==K_INT||(LA87_0 >= K_JSON && LA87_0 <= K_KEYS)||(LA87_0 >= K_KEYSPACES && LA87_0 <= K_LIKE)||(LA87_0 >= K_LIST && LA87_0 <= K_MAP)||LA87_0==K_NOLOGIN||LA87_0==K_NOSUPERUSER||LA87_0==K_OPTIONS||(LA87_0 >= K_PARTITION && LA87_0 <= K_PERMISSIONS)||LA87_0==K_RETURNS||(LA87_0 >= K_ROLE && LA87_0 <= K_ROLES)||(LA87_0 >= K_SFUNC && LA87_0 <= K_TINYINT)||LA87_0==K_TRIGGER||(LA87_0 >= K_TTL && LA87_0 <= K_TYPE)||(LA87_0 >= K_USER && LA87_0 <= K_USERS)||(LA87_0 >= K_UUID && LA87_0 <= K_VARINT)||LA87_0==K_WRITETIME||(LA87_0 >= QMARK && LA87_0 <= QUOTED_NAME)) ) {
+ alt87=1;
+ }
+ switch (alt87) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:737:10: idxName[name]
+ {
+ pushFollow(FOLLOW_idxName_in_createIndexStatement4263);
+ idxName(name);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ match(input,K_ON,FOLLOW_K_ON_in_createIndexStatement4268);
+ pushFollow(FOLLOW_columnFamilyName_in_createIndexStatement4272);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ match(input,174,FOLLOW_174_in_createIndexStatement4274);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:737:55: ( indexIdent[targets] ( ',' indexIdent[targets] )* )?
+ int alt89=2;
+ int LA89_0 = input.LA(1);
+ if ( (LA89_0==IDENT||(LA89_0 >= K_AGGREGATE && LA89_0 <= K_ALL)||LA89_0==K_AS||LA89_0==K_ASCII||(LA89_0 >= K_BIGINT && LA89_0 <= K_BOOLEAN)||(LA89_0 >= K_CALLED && LA89_0 <= K_CLUSTERING)||(LA89_0 >= K_COMPACT && LA89_0 <= K_COUNTER)||(LA89_0 >= K_CUSTOM && LA89_0 <= K_DECIMAL)||(LA89_0 >= K_DISTINCT && LA89_0 <= K_DOUBLE)||LA89_0==K_ENTRIES||(LA89_0 >= K_EXISTS && LA89_0 <= K_FLOAT)||(LA89_0 >= K_FROZEN && LA89_0 <= K_FUNCTIONS)||LA89_0==K_INET||(LA89_0 >= K_INITCOND && LA89_0 <= K_INPUT)||LA89_0==K_INT||(LA89_0 >= K_JSON && LA89_0 <= K_KEYS)||(LA89_0 >= K_KEYSPACES && LA89_0 <= K_LIKE)||(LA89_0 >= K_LIST && LA89_0 <= K_MAP)||LA89_0==K_NOLOGIN||LA89_0==K_NOSUPERUSER||LA89_0==K_OPTIONS||(LA89_0 >= K_PARTITION && LA89_0 <= K_PERMISSIONS)||LA89_0==K_RETURNS||(LA89_0 >= K_ROLE && LA89_0 <= K_ROLES)||(LA89_0 >= K_SFUNC && LA89_0 <= K_TINYINT)||LA89_0==K_TRIGGER||(LA89_0 >= K_TTL && LA89_0 <= K_TYPE)||(LA89_0 >= K_USER && LA89_0 <= K_USERS)||(LA89_0 >= K_UUID && LA89_0 <= K_VARINT)||LA89_0==K_WRITETIME||LA89_0==QUOTED_NAME) ) {
+ alt89=1;
+ }
+ switch (alt89) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:737:56: indexIdent[targets] ( ',' indexIdent[targets] )*
+ {
+ pushFollow(FOLLOW_indexIdent_in_createIndexStatement4277);
+ indexIdent(targets);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:737:76: ( ',' indexIdent[targets] )*
+ loop88:
+ while (true) {
+ int alt88=2;
+ int LA88_0 = input.LA(1);
+ if ( (LA88_0==177) ) {
+ alt88=1;
+ }
+
+ switch (alt88) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:737:77: ',' indexIdent[targets]
+ {
+ match(input,177,FOLLOW_177_in_createIndexStatement4281);
+ pushFollow(FOLLOW_indexIdent_in_createIndexStatement4283);
+ indexIdent(targets);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop88;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,175,FOLLOW_175_in_createIndexStatement4290);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:738:9: ( K_USING cls= STRING_LITERAL )?
+ int alt90=2;
+ int LA90_0 = input.LA(1);
+ if ( (LA90_0==K_USING) ) {
+ alt90=1;
+ }
+ switch (alt90) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:738:10: K_USING cls= STRING_LITERAL
+ {
+ match(input,K_USING,FOLLOW_K_USING_in_createIndexStatement4301);
+ cls=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_createIndexStatement4305);
+ props.customClass = (cls!=null?cls.getText():null);
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:739:9: ( K_WITH properties[props] )?
+ int alt91=2;
+ int LA91_0 = input.LA(1);
+ if ( (LA91_0==K_WITH) ) {
+ alt91=1;
+ }
+ switch (alt91) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:739:10: K_WITH properties[props]
+ {
+ match(input,K_WITH,FOLLOW_K_WITH_in_createIndexStatement4320);
+ pushFollow(FOLLOW_properties_in_createIndexStatement4322);
+ properties(props);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ expr = new CreateIndexStatement(cf, name, targets, props, ifNotExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "createIndexStatement"
+
+
+
+ // $ANTLR start "indexIdent"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:743:1: indexIdent[List targets] : (c= cident | K_VALUES '(' c= cident ')' | K_KEYS '(' c= cident ')' | K_ENTRIES '(' c= cident ')' | K_FULL '(' c= cident ')' );
+ public final void indexIdent(List targets) throws RecognitionException {
+ ColumnIdentifier.Raw c =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:744:5: (c= cident | K_VALUES '(' c= cident ')' | K_KEYS '(' c= cident ')' | K_ENTRIES '(' c= cident ')' | K_FULL '(' c= cident ')' )
+ int alt92=5;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ case QUOTED_NAME:
+ {
+ alt92=1;
+ }
+ break;
+ case K_VALUES:
+ {
+ int LA92_2 = input.LA(2);
+ if ( (LA92_2==174) ) {
+ alt92=2;
+ }
+ else if ( (LA92_2==175||LA92_2==177) ) {
+ alt92=1;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 92, 2, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case K_KEYS:
+ {
+ int LA92_3 = input.LA(2);
+ if ( (LA92_3==174) ) {
+ alt92=3;
+ }
+ else if ( (LA92_3==175||LA92_3==177) ) {
+ alt92=1;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 92, 3, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case K_ENTRIES:
+ {
+ alt92=4;
+ }
+ break;
+ case K_FULL:
+ {
+ alt92=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 92, 0, input);
+ throw nvae;
+ }
+ switch (alt92) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:744:7: c= cident
+ {
+ pushFollow(FOLLOW_cident_in_indexIdent4354);
+ c=cident();
+ state._fsp--;
+
+ targets.add(IndexTarget.Raw.simpleIndexOn(c));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:745:7: K_VALUES '(' c= cident ')'
+ {
+ match(input,K_VALUES,FOLLOW_K_VALUES_in_indexIdent4382);
+ match(input,174,FOLLOW_174_in_indexIdent4384);
+ pushFollow(FOLLOW_cident_in_indexIdent4388);
+ c=cident();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_indexIdent4390);
+ targets.add(IndexTarget.Raw.valuesOf(c));
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:746:7: K_KEYS '(' c= cident ')'
+ {
+ match(input,K_KEYS,FOLLOW_K_KEYS_in_indexIdent4401);
+ match(input,174,FOLLOW_174_in_indexIdent4403);
+ pushFollow(FOLLOW_cident_in_indexIdent4407);
+ c=cident();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_indexIdent4409);
+ targets.add(IndexTarget.Raw.keysOf(c));
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:747:7: K_ENTRIES '(' c= cident ')'
+ {
+ match(input,K_ENTRIES,FOLLOW_K_ENTRIES_in_indexIdent4422);
+ match(input,174,FOLLOW_174_in_indexIdent4424);
+ pushFollow(FOLLOW_cident_in_indexIdent4428);
+ c=cident();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_indexIdent4430);
+ targets.add(IndexTarget.Raw.keysAndValuesOf(c));
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:748:7: K_FULL '(' c= cident ')'
+ {
+ match(input,K_FULL,FOLLOW_K_FULL_in_indexIdent4440);
+ match(input,174,FOLLOW_174_in_indexIdent4442);
+ pushFollow(FOLLOW_cident_in_indexIdent4446);
+ c=cident();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_indexIdent4448);
+ targets.add(IndexTarget.Raw.fullCollection(c));
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "indexIdent"
+
+
+
+ // $ANTLR start "createMaterializedViewStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:759:1: createMaterializedViewStatement returns [CreateViewStatement expr] : K_CREATE K_MATERIALIZED K_VIEW ( K_IF K_NOT K_EXISTS )? cf= columnFamilyName K_AS K_SELECT sclause= selectClause K_FROM basecf= columnFamilyName ( K_WHERE wclause= whereClause )? K_PRIMARY K_KEY ( '(' '(' k1= cident ( ',' kn= cident )* ')' ( ',' c1= cident )* ')' | '(' k1= cident ( ',' cn= cident )* ')' ) ( K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )* )? ;
+ public final CreateViewStatement createMaterializedViewStatement() throws RecognitionException {
+ CreateViewStatement expr = null;
+
+
+ CFName cf =null;
+ List sclause =null;
+ CFName basecf =null;
+ WhereClause.Builder wclause =null;
+ ColumnIdentifier.Raw k1 =null;
+ ColumnIdentifier.Raw kn =null;
+ ColumnIdentifier.Raw c1 =null;
+ ColumnIdentifier.Raw cn =null;
+
+
+ boolean ifNotExists = false;
+ List partitionKeys = new ArrayList<>();
+ List compositeKeys = new ArrayList<>();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:765:5: ( K_CREATE K_MATERIALIZED K_VIEW ( K_IF K_NOT K_EXISTS )? cf= columnFamilyName K_AS K_SELECT sclause= selectClause K_FROM basecf= columnFamilyName ( K_WHERE wclause= whereClause )? K_PRIMARY K_KEY ( '(' '(' k1= cident ( ',' kn= cident )* ')' ( ',' c1= cident )* ')' | '(' k1= cident ( ',' cn= cident )* ')' ) ( K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )* )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:765:7: K_CREATE K_MATERIALIZED K_VIEW ( K_IF K_NOT K_EXISTS )? cf= columnFamilyName K_AS K_SELECT sclause= selectClause K_FROM basecf= columnFamilyName ( K_WHERE wclause= whereClause )? K_PRIMARY K_KEY ( '(' '(' k1= cident ( ',' kn= cident )* ')' ( ',' c1= cident )* ')' | '(' k1= cident ( ',' cn= cident )* ')' ) ( K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )* )?
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createMaterializedViewStatement4485);
+ match(input,K_MATERIALIZED,FOLLOW_K_MATERIALIZED_in_createMaterializedViewStatement4487);
+ match(input,K_VIEW,FOLLOW_K_VIEW_in_createMaterializedViewStatement4489);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:765:38: ( K_IF K_NOT K_EXISTS )?
+ int alt93=2;
+ int LA93_0 = input.LA(1);
+ if ( (LA93_0==K_IF) ) {
+ alt93=1;
+ }
+ switch (alt93) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:765:39: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createMaterializedViewStatement4492);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createMaterializedViewStatement4494);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createMaterializedViewStatement4496);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_columnFamilyName_in_createMaterializedViewStatement4504);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ match(input,K_AS,FOLLOW_K_AS_in_createMaterializedViewStatement4506);
+ match(input,K_SELECT,FOLLOW_K_SELECT_in_createMaterializedViewStatement4516);
+ pushFollow(FOLLOW_selectClause_in_createMaterializedViewStatement4520);
+ sclause=selectClause();
+ state._fsp--;
+
+ match(input,K_FROM,FOLLOW_K_FROM_in_createMaterializedViewStatement4522);
+ pushFollow(FOLLOW_columnFamilyName_in_createMaterializedViewStatement4526);
+ basecf=columnFamilyName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:767:9: ( K_WHERE wclause= whereClause )?
+ int alt94=2;
+ int LA94_0 = input.LA(1);
+ if ( (LA94_0==K_WHERE) ) {
+ alt94=1;
+ }
+ switch (alt94) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:767:10: K_WHERE wclause= whereClause
+ {
+ match(input,K_WHERE,FOLLOW_K_WHERE_in_createMaterializedViewStatement4537);
+ pushFollow(FOLLOW_whereClause_in_createMaterializedViewStatement4541);
+ wclause=whereClause();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ match(input,K_PRIMARY,FOLLOW_K_PRIMARY_in_createMaterializedViewStatement4553);
+ match(input,K_KEY,FOLLOW_K_KEY_in_createMaterializedViewStatement4555);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:768:25: ( '(' '(' k1= cident ( ',' kn= cident )* ')' ( ',' c1= cident )* ')' | '(' k1= cident ( ',' cn= cident )* ')' )
+ int alt98=2;
+ int LA98_0 = input.LA(1);
+ if ( (LA98_0==174) ) {
+ int LA98_1 = input.LA(2);
+ if ( (LA98_1==174) ) {
+ alt98=1;
+ }
+ else if ( (LA98_1==IDENT||(LA98_1 >= K_AGGREGATE && LA98_1 <= K_ALL)||LA98_1==K_AS||LA98_1==K_ASCII||(LA98_1 >= K_BIGINT && LA98_1 <= K_BOOLEAN)||(LA98_1 >= K_CALLED && LA98_1 <= K_CLUSTERING)||(LA98_1 >= K_COMPACT && LA98_1 <= K_COUNTER)||(LA98_1 >= K_CUSTOM && LA98_1 <= K_DECIMAL)||(LA98_1 >= K_DISTINCT && LA98_1 <= K_DOUBLE)||(LA98_1 >= K_EXISTS && LA98_1 <= K_FLOAT)||LA98_1==K_FROZEN||(LA98_1 >= K_FUNCTION && LA98_1 <= K_FUNCTIONS)||LA98_1==K_INET||(LA98_1 >= K_INITCOND && LA98_1 <= K_INPUT)||LA98_1==K_INT||(LA98_1 >= K_JSON && LA98_1 <= K_KEYS)||(LA98_1 >= K_KEYSPACES && LA98_1 <= K_LIKE)||(LA98_1 >= K_LIST && LA98_1 <= K_MAP)||LA98_1==K_NOLOGIN||LA98_1==K_NOSUPERUSER||LA98_1==K_OPTIONS||(LA98_1 >= K_PARTITION && LA98_1 <= K_PERMISSIONS)||LA98_1==K_RETURNS||(LA98_1 >= K_ROLE && LA98_1 <= K_ROLES)||(LA98_1 >= K_SFUNC && LA98_1 <= K_TINYINT)||LA98_1==K_TRIGGER||(LA98_1 >= K_TTL && LA98_1 <= K_TYPE)||(LA98_1 >= K_USER && LA98_1 <= K_USERS)||(LA98_1 >= K_UUID && LA98_1 <= K_VARINT)||LA98_1==K_WRITETIME||LA98_1==QUOTED_NAME) ) {
+ alt98=2;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 98, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 98, 0, input);
+ throw nvae;
+ }
+
+ switch (alt98) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:769:9: '(' '(' k1= cident ( ',' kn= cident )* ')' ( ',' c1= cident )* ')'
+ {
+ match(input,174,FOLLOW_174_in_createMaterializedViewStatement4567);
+ match(input,174,FOLLOW_174_in_createMaterializedViewStatement4569);
+ pushFollow(FOLLOW_cident_in_createMaterializedViewStatement4573);
+ k1=cident();
+ state._fsp--;
+
+ partitionKeys.add(k1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:769:54: ( ',' kn= cident )*
+ loop95:
+ while (true) {
+ int alt95=2;
+ int LA95_0 = input.LA(1);
+ if ( (LA95_0==177) ) {
+ alt95=1;
+ }
+
+ switch (alt95) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:769:56: ',' kn= cident
+ {
+ match(input,177,FOLLOW_177_in_createMaterializedViewStatement4579);
+ pushFollow(FOLLOW_cident_in_createMaterializedViewStatement4583);
+ kn=cident();
+ state._fsp--;
+
+ partitionKeys.add(kn);
+ }
+ break;
+
+ default :
+ break loop95;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_createMaterializedViewStatement4590);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:769:104: ( ',' c1= cident )*
+ loop96:
+ while (true) {
+ int alt96=2;
+ int LA96_0 = input.LA(1);
+ if ( (LA96_0==177) ) {
+ alt96=1;
+ }
+
+ switch (alt96) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:769:106: ',' c1= cident
+ {
+ match(input,177,FOLLOW_177_in_createMaterializedViewStatement4594);
+ pushFollow(FOLLOW_cident_in_createMaterializedViewStatement4598);
+ c1=cident();
+ state._fsp--;
+
+ compositeKeys.add(c1);
+ }
+ break;
+
+ default :
+ break loop96;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_createMaterializedViewStatement4605);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:770:9: '(' k1= cident ( ',' cn= cident )* ')'
+ {
+ match(input,174,FOLLOW_174_in_createMaterializedViewStatement4615);
+ pushFollow(FOLLOW_cident_in_createMaterializedViewStatement4619);
+ k1=cident();
+ state._fsp--;
+
+ partitionKeys.add(k1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:770:50: ( ',' cn= cident )*
+ loop97:
+ while (true) {
+ int alt97=2;
+ int LA97_0 = input.LA(1);
+ if ( (LA97_0==177) ) {
+ alt97=1;
+ }
+
+ switch (alt97) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:770:52: ',' cn= cident
+ {
+ match(input,177,FOLLOW_177_in_createMaterializedViewStatement4625);
+ pushFollow(FOLLOW_cident_in_createMaterializedViewStatement4629);
+ cn=cident();
+ state._fsp--;
+
+ compositeKeys.add(cn);
+ }
+ break;
+
+ default :
+ break loop97;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_createMaterializedViewStatement4636);
+ }
+ break;
+
+ }
+
+
+ WhereClause where = wclause == null ? WhereClause.empty() : wclause.build();
+ expr = new CreateViewStatement(cf, basecf, sclause, where, partitionKeys, compositeKeys, ifNotExists);
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:776:9: ( K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )* )?
+ int alt100=2;
+ int LA100_0 = input.LA(1);
+ if ( (LA100_0==K_WITH) ) {
+ alt100=1;
+ }
+ switch (alt100) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:776:11: K_WITH cfamProperty[expr.properties] ( K_AND cfamProperty[expr.properties] )*
+ {
+ match(input,K_WITH,FOLLOW_K_WITH_in_createMaterializedViewStatement4668);
+ pushFollow(FOLLOW_cfamProperty_in_createMaterializedViewStatement4670);
+ cfamProperty(expr.properties);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:776:48: ( K_AND cfamProperty[expr.properties] )*
+ loop99:
+ while (true) {
+ int alt99=2;
+ int LA99_0 = input.LA(1);
+ if ( (LA99_0==K_AND) ) {
+ alt99=1;
+ }
+
+ switch (alt99) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:776:50: K_AND cfamProperty[expr.properties]
+ {
+ match(input,K_AND,FOLLOW_K_AND_in_createMaterializedViewStatement4675);
+ pushFollow(FOLLOW_cfamProperty_in_createMaterializedViewStatement4677);
+ cfamProperty(expr.properties);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop99;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "createMaterializedViewStatement"
+
+
+
+ // $ANTLR start "createTriggerStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:782:1: createTriggerStatement returns [CreateTriggerStatement expr] : K_CREATE K_TRIGGER ( K_IF K_NOT K_EXISTS )? (name= cident ) K_ON cf= columnFamilyName K_USING cls= STRING_LITERAL ;
+ public final CreateTriggerStatement createTriggerStatement() throws RecognitionException {
+ CreateTriggerStatement expr = null;
+
+
+ Token cls=null;
+ ColumnIdentifier.Raw name =null;
+ CFName cf =null;
+
+
+ boolean ifNotExists = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:786:5: ( K_CREATE K_TRIGGER ( K_IF K_NOT K_EXISTS )? (name= cident ) K_ON cf= columnFamilyName K_USING cls= STRING_LITERAL )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:786:7: K_CREATE K_TRIGGER ( K_IF K_NOT K_EXISTS )? (name= cident ) K_ON cf= columnFamilyName K_USING cls= STRING_LITERAL
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createTriggerStatement4715);
+ match(input,K_TRIGGER,FOLLOW_K_TRIGGER_in_createTriggerStatement4717);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:786:26: ( K_IF K_NOT K_EXISTS )?
+ int alt101=2;
+ int LA101_0 = input.LA(1);
+ if ( (LA101_0==K_IF) ) {
+ alt101=1;
+ }
+ switch (alt101) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:786:27: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createTriggerStatement4720);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createTriggerStatement4722);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createTriggerStatement4724);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:786:74: (name= cident )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:786:75: name= cident
+ {
+ pushFollow(FOLLOW_cident_in_createTriggerStatement4734);
+ name=cident();
+ state._fsp--;
+
+ }
+
+ match(input,K_ON,FOLLOW_K_ON_in_createTriggerStatement4745);
+ pushFollow(FOLLOW_columnFamilyName_in_createTriggerStatement4749);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ match(input,K_USING,FOLLOW_K_USING_in_createTriggerStatement4751);
+ cls=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_createTriggerStatement4755);
+ expr = new CreateTriggerStatement(cf, name.toString(), (cls!=null?cls.getText():null), ifNotExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "createTriggerStatement"
+
+
+
+ // $ANTLR start "dropTriggerStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:794:1: dropTriggerStatement returns [DropTriggerStatement expr] : K_DROP K_TRIGGER ( K_IF K_EXISTS )? (name= cident ) K_ON cf= columnFamilyName ;
+ public final DropTriggerStatement dropTriggerStatement() throws RecognitionException {
+ DropTriggerStatement expr = null;
+
+
+ ColumnIdentifier.Raw name =null;
+ CFName cf =null;
+
+ boolean ifExists = false;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:796:5: ( K_DROP K_TRIGGER ( K_IF K_EXISTS )? (name= cident ) K_ON cf= columnFamilyName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:796:7: K_DROP K_TRIGGER ( K_IF K_EXISTS )? (name= cident ) K_ON cf= columnFamilyName
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropTriggerStatement4796);
+ match(input,K_TRIGGER,FOLLOW_K_TRIGGER_in_dropTriggerStatement4798);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:796:24: ( K_IF K_EXISTS )?
+ int alt102=2;
+ int LA102_0 = input.LA(1);
+ if ( (LA102_0==K_IF) ) {
+ alt102=1;
+ }
+ switch (alt102) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:796:25: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropTriggerStatement4801);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropTriggerStatement4803);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:796:63: (name= cident )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:796:64: name= cident
+ {
+ pushFollow(FOLLOW_cident_in_dropTriggerStatement4813);
+ name=cident();
+ state._fsp--;
+
+ }
+
+ match(input,K_ON,FOLLOW_K_ON_in_dropTriggerStatement4816);
+ pushFollow(FOLLOW_columnFamilyName_in_dropTriggerStatement4820);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ expr = new DropTriggerStatement(cf, name.toString(), ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "dropTriggerStatement"
+
+
+
+ // $ANTLR start "alterKeyspaceStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:803:1: alterKeyspaceStatement returns [AlterKeyspaceStatement expr] : K_ALTER K_KEYSPACE ks= keyspaceName K_WITH properties[attrs] ;
+ public final AlterKeyspaceStatement alterKeyspaceStatement() throws RecognitionException {
+ AlterKeyspaceStatement expr = null;
+
+
+ String ks =null;
+
+ KeyspaceAttributes attrs = new KeyspaceAttributes();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:805:5: ( K_ALTER K_KEYSPACE ks= keyspaceName K_WITH properties[attrs] )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:805:7: K_ALTER K_KEYSPACE ks= keyspaceName K_WITH properties[attrs]
+ {
+ match(input,K_ALTER,FOLLOW_K_ALTER_in_alterKeyspaceStatement4860);
+ match(input,K_KEYSPACE,FOLLOW_K_KEYSPACE_in_alterKeyspaceStatement4862);
+ pushFollow(FOLLOW_keyspaceName_in_alterKeyspaceStatement4866);
+ ks=keyspaceName();
+ state._fsp--;
+
+ match(input,K_WITH,FOLLOW_K_WITH_in_alterKeyspaceStatement4876);
+ pushFollow(FOLLOW_properties_in_alterKeyspaceStatement4878);
+ properties(attrs);
+ state._fsp--;
+
+ expr = new AlterKeyspaceStatement(ks, attrs);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "alterKeyspaceStatement"
+
+
+
+ // $ANTLR start "alterTableStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:817:1: alterTableStatement returns [AlterTableStatement expr] : K_ALTER K_COLUMNFAMILY cf= columnFamilyName ( K_ALTER id= cident K_TYPE v= comparatorType | K_ADD id= cident v= comparatorType ( K_STATIC )? | K_DROP id= cident | K_DROP id= cident K_USING K_TIMESTAMP t= INTEGER | K_WITH properties[attrs] | K_RENAME id1= cident K_TO toId1= cident ( K_AND idn= cident K_TO toIdn= cident )* ) ;
+ public final AlterTableStatement alterTableStatement() throws RecognitionException {
+ AlterTableStatement expr = null;
+
+
+ Token t=null;
+ CFName cf =null;
+ ColumnIdentifier.Raw id =null;
+ CQL3Type.Raw v =null;
+ ColumnIdentifier.Raw id1 =null;
+ ColumnIdentifier.Raw toId1 =null;
+ ColumnIdentifier.Raw idn =null;
+ ColumnIdentifier.Raw toIdn =null;
+
+
+ AlterTableStatement.Type type = null;
+ TableAttributes attrs = new TableAttributes();
+ Map renames = new HashMap();
+ boolean isStatic = false;
+ Long dropTimestamp = null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:825:5: ( K_ALTER K_COLUMNFAMILY cf= columnFamilyName ( K_ALTER id= cident K_TYPE v= comparatorType | K_ADD id= cident v= comparatorType ( K_STATIC )? | K_DROP id= cident | K_DROP id= cident K_USING K_TIMESTAMP t= INTEGER | K_WITH properties[attrs] | K_RENAME id1= cident K_TO toId1= cident ( K_AND idn= cident K_TO toIdn= cident )* ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:825:7: K_ALTER K_COLUMNFAMILY cf= columnFamilyName ( K_ALTER id= cident K_TYPE v= comparatorType | K_ADD id= cident v= comparatorType ( K_STATIC )? | K_DROP id= cident | K_DROP id= cident K_USING K_TIMESTAMP t= INTEGER | K_WITH properties[attrs] | K_RENAME id1= cident K_TO toId1= cident ( K_AND idn= cident K_TO toIdn= cident )* )
+ {
+ match(input,K_ALTER,FOLLOW_K_ALTER_in_alterTableStatement4914);
+ match(input,K_COLUMNFAMILY,FOLLOW_K_COLUMNFAMILY_in_alterTableStatement4916);
+ pushFollow(FOLLOW_columnFamilyName_in_alterTableStatement4920);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:826:11: ( K_ALTER id= cident K_TYPE v= comparatorType | K_ADD id= cident v= comparatorType ( K_STATIC )? | K_DROP id= cident | K_DROP id= cident K_USING K_TIMESTAMP t= INTEGER | K_WITH properties[attrs] | K_RENAME id1= cident K_TO toId1= cident ( K_AND idn= cident K_TO toIdn= cident )* )
+ int alt105=6;
+ alt105 = dfa105.predict(input);
+ switch (alt105) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:826:13: K_ALTER id= cident K_TYPE v= comparatorType
+ {
+ match(input,K_ALTER,FOLLOW_K_ALTER_in_alterTableStatement4934);
+ pushFollow(FOLLOW_cident_in_alterTableStatement4938);
+ id=cident();
+ state._fsp--;
+
+ match(input,K_TYPE,FOLLOW_K_TYPE_in_alterTableStatement4940);
+ pushFollow(FOLLOW_comparatorType_in_alterTableStatement4944);
+ v=comparatorType();
+ state._fsp--;
+
+ type = AlterTableStatement.Type.ALTER;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:827:13: K_ADD id= cident v= comparatorType ( K_STATIC )?
+ {
+ match(input,K_ADD,FOLLOW_K_ADD_in_alterTableStatement4960);
+ pushFollow(FOLLOW_cident_in_alterTableStatement4966);
+ id=cident();
+ state._fsp--;
+
+ pushFollow(FOLLOW_comparatorType_in_alterTableStatement4970);
+ v=comparatorType();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:827:48: ( K_STATIC )?
+ int alt103=2;
+ int LA103_0 = input.LA(1);
+ if ( (LA103_0==K_STATIC) ) {
+ alt103=1;
+ }
+ switch (alt103) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:827:49: K_STATIC
+ {
+ isStatic=true;
+ match(input,K_STATIC,FOLLOW_K_STATIC_in_alterTableStatement4975);
+ }
+ break;
+
+ }
+
+ type = AlterTableStatement.Type.ADD;
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:828:13: K_DROP id= cident
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_alterTableStatement4993);
+ pushFollow(FOLLOW_cident_in_alterTableStatement4998);
+ id=cident();
+ state._fsp--;
+
+ type = AlterTableStatement.Type.DROP;
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:829:13: K_DROP id= cident K_USING K_TIMESTAMP t= INTEGER
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_alterTableStatement5044);
+ pushFollow(FOLLOW_cident_in_alterTableStatement5049);
+ id=cident();
+ state._fsp--;
+
+ match(input,K_USING,FOLLOW_K_USING_in_alterTableStatement5051);
+ match(input,K_TIMESTAMP,FOLLOW_K_TIMESTAMP_in_alterTableStatement5053);
+ t=(Token)match(input,INTEGER,FOLLOW_INTEGER_in_alterTableStatement5057);
+ type = AlterTableStatement.Type.DROP;
+ dropTimestamp = Long.parseLong(Constants.Literal.integer((t!=null?t.getText():null)).getText());
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:831:13: K_WITH properties[attrs]
+ {
+ match(input,K_WITH,FOLLOW_K_WITH_in_alterTableStatement5073);
+ pushFollow(FOLLOW_properties_in_alterTableStatement5076);
+ properties(attrs);
+ state._fsp--;
+
+ type = AlterTableStatement.Type.OPTS;
+ }
+ break;
+ case 6 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:832:13: K_RENAME id1= cident K_TO toId1= cident ( K_AND idn= cident K_TO toIdn= cident )*
+ {
+ match(input,K_RENAME,FOLLOW_K_RENAME_in_alterTableStatement5115);
+ type = AlterTableStatement.Type.RENAME;
+ pushFollow(FOLLOW_cident_in_alterTableStatement5175);
+ id1=cident();
+ state._fsp--;
+
+ match(input,K_TO,FOLLOW_K_TO_in_alterTableStatement5177);
+ pushFollow(FOLLOW_cident_in_alterTableStatement5181);
+ toId1=cident();
+ state._fsp--;
+
+ renames.put(id1, toId1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:834:16: ( K_AND idn= cident K_TO toIdn= cident )*
+ loop104:
+ while (true) {
+ int alt104=2;
+ int LA104_0 = input.LA(1);
+ if ( (LA104_0==K_AND) ) {
+ alt104=1;
+ }
+
+ switch (alt104) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:834:18: K_AND idn= cident K_TO toIdn= cident
+ {
+ match(input,K_AND,FOLLOW_K_AND_in_alterTableStatement5202);
+ pushFollow(FOLLOW_cident_in_alterTableStatement5206);
+ idn=cident();
+ state._fsp--;
+
+ match(input,K_TO,FOLLOW_K_TO_in_alterTableStatement5208);
+ pushFollow(FOLLOW_cident_in_alterTableStatement5212);
+ toIdn=cident();
+ state._fsp--;
+
+ renames.put(idn, toIdn);
+ }
+ break;
+
+ default :
+ break loop104;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+
+ expr = new AlterTableStatement(cf, type, id, v, attrs, renames, isStatic, dropTimestamp);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "alterTableStatement"
+
+
+
+ // $ANTLR start "alterMaterializedViewStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:841:1: alterMaterializedViewStatement returns [AlterViewStatement expr] : K_ALTER K_MATERIALIZED K_VIEW name= columnFamilyName K_WITH properties[attrs] ;
+ public final AlterViewStatement alterMaterializedViewStatement() throws RecognitionException {
+ AlterViewStatement expr = null;
+
+
+ CFName name =null;
+
+
+ TableAttributes attrs = new TableAttributes();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:845:5: ( K_ALTER K_MATERIALIZED K_VIEW name= columnFamilyName K_WITH properties[attrs] )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:845:7: K_ALTER K_MATERIALIZED K_VIEW name= columnFamilyName K_WITH properties[attrs]
+ {
+ match(input,K_ALTER,FOLLOW_K_ALTER_in_alterMaterializedViewStatement5265);
+ match(input,K_MATERIALIZED,FOLLOW_K_MATERIALIZED_in_alterMaterializedViewStatement5267);
+ match(input,K_VIEW,FOLLOW_K_VIEW_in_alterMaterializedViewStatement5269);
+ pushFollow(FOLLOW_columnFamilyName_in_alterMaterializedViewStatement5273);
+ name=columnFamilyName();
+ state._fsp--;
+
+ match(input,K_WITH,FOLLOW_K_WITH_in_alterMaterializedViewStatement5285);
+ pushFollow(FOLLOW_properties_in_alterMaterializedViewStatement5287);
+ properties(attrs);
+ state._fsp--;
+
+
+ expr = new AlterViewStatement(name, attrs);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "alterMaterializedViewStatement"
+
+
+
+ // $ANTLR start "alterTypeStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:858:1: alterTypeStatement returns [AlterTypeStatement expr] : K_ALTER K_TYPE name= userTypeName ( K_ALTER f= noncol_ident K_TYPE v= comparatorType | K_ADD f= noncol_ident v= comparatorType | K_RENAME id1= noncol_ident K_TO toId1= noncol_ident ( K_AND idn= noncol_ident K_TO toIdn= noncol_ident )* ) ;
+ public final AlterTypeStatement alterTypeStatement() throws RecognitionException {
+ AlterTypeStatement expr = null;
+
+
+ UTName name =null;
+ ColumnIdentifier f =null;
+ CQL3Type.Raw v =null;
+ ColumnIdentifier id1 =null;
+ ColumnIdentifier toId1 =null;
+ ColumnIdentifier idn =null;
+ ColumnIdentifier toIdn =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:859:5: ( K_ALTER K_TYPE name= userTypeName ( K_ALTER f= noncol_ident K_TYPE v= comparatorType | K_ADD f= noncol_ident v= comparatorType | K_RENAME id1= noncol_ident K_TO toId1= noncol_ident ( K_AND idn= noncol_ident K_TO toIdn= noncol_ident )* ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:859:7: K_ALTER K_TYPE name= userTypeName ( K_ALTER f= noncol_ident K_TYPE v= comparatorType | K_ADD f= noncol_ident v= comparatorType | K_RENAME id1= noncol_ident K_TO toId1= noncol_ident ( K_AND idn= noncol_ident K_TO toIdn= noncol_ident )* )
+ {
+ match(input,K_ALTER,FOLLOW_K_ALTER_in_alterTypeStatement5322);
+ match(input,K_TYPE,FOLLOW_K_TYPE_in_alterTypeStatement5324);
+ pushFollow(FOLLOW_userTypeName_in_alterTypeStatement5328);
+ name=userTypeName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:860:11: ( K_ALTER f= noncol_ident K_TYPE v= comparatorType | K_ADD f= noncol_ident v= comparatorType | K_RENAME id1= noncol_ident K_TO toId1= noncol_ident ( K_AND idn= noncol_ident K_TO toIdn= noncol_ident )* )
+ int alt107=3;
+ switch ( input.LA(1) ) {
+ case K_ALTER:
+ {
+ alt107=1;
+ }
+ break;
+ case K_ADD:
+ {
+ alt107=2;
+ }
+ break;
+ case K_RENAME:
+ {
+ alt107=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 107, 0, input);
+ throw nvae;
+ }
+ switch (alt107) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:860:13: K_ALTER f= noncol_ident K_TYPE v= comparatorType
+ {
+ match(input,K_ALTER,FOLLOW_K_ALTER_in_alterTypeStatement5342);
+ pushFollow(FOLLOW_noncol_ident_in_alterTypeStatement5346);
+ f=noncol_ident();
+ state._fsp--;
+
+ match(input,K_TYPE,FOLLOW_K_TYPE_in_alterTypeStatement5348);
+ pushFollow(FOLLOW_comparatorType_in_alterTypeStatement5352);
+ v=comparatorType();
+ state._fsp--;
+
+ expr = AlterTypeStatement.alter(name, f, v);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:861:13: K_ADD f= noncol_ident v= comparatorType
+ {
+ match(input,K_ADD,FOLLOW_K_ADD_in_alterTypeStatement5368);
+ pushFollow(FOLLOW_noncol_ident_in_alterTypeStatement5374);
+ f=noncol_ident();
+ state._fsp--;
+
+ pushFollow(FOLLOW_comparatorType_in_alterTypeStatement5378);
+ v=comparatorType();
+ state._fsp--;
+
+ expr = AlterTypeStatement.addition(name, f, v);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:862:13: K_RENAME id1= noncol_ident K_TO toId1= noncol_ident ( K_AND idn= noncol_ident K_TO toIdn= noncol_ident )*
+ {
+ match(input,K_RENAME,FOLLOW_K_RENAME_in_alterTypeStatement5401);
+ Map renames = new HashMap();
+ pushFollow(FOLLOW_noncol_ident_in_alterTypeStatement5439);
+ id1=noncol_ident();
+ state._fsp--;
+
+ match(input,K_TO,FOLLOW_K_TO_in_alterTypeStatement5441);
+ pushFollow(FOLLOW_noncol_ident_in_alterTypeStatement5445);
+ toId1=noncol_ident();
+ state._fsp--;
+
+ renames.put(id1, toId1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:865:18: ( K_AND idn= noncol_ident K_TO toIdn= noncol_ident )*
+ loop106:
+ while (true) {
+ int alt106=2;
+ int LA106_0 = input.LA(1);
+ if ( (LA106_0==K_AND) ) {
+ alt106=1;
+ }
+
+ switch (alt106) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:865:20: K_AND idn= noncol_ident K_TO toIdn= noncol_ident
+ {
+ match(input,K_AND,FOLLOW_K_AND_in_alterTypeStatement5468);
+ pushFollow(FOLLOW_noncol_ident_in_alterTypeStatement5472);
+ idn=noncol_ident();
+ state._fsp--;
+
+ match(input,K_TO,FOLLOW_K_TO_in_alterTypeStatement5474);
+ pushFollow(FOLLOW_noncol_ident_in_alterTypeStatement5478);
+ toIdn=noncol_ident();
+ state._fsp--;
+
+ renames.put(idn, toIdn);
+ }
+ break;
+
+ default :
+ break loop106;
+ }
+ }
+
+ expr = AlterTypeStatement.renames(name, renames);
+ }
+ break;
+
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "alterTypeStatement"
+
+
+
+ // $ANTLR start "dropKeyspaceStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:874:1: dropKeyspaceStatement returns [DropKeyspaceStatement ksp] : K_DROP K_KEYSPACE ( K_IF K_EXISTS )? ks= keyspaceName ;
+ public final DropKeyspaceStatement dropKeyspaceStatement() throws RecognitionException {
+ DropKeyspaceStatement ksp = null;
+
+
+ String ks =null;
+
+ boolean ifExists = false;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:876:5: ( K_DROP K_KEYSPACE ( K_IF K_EXISTS )? ks= keyspaceName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:876:7: K_DROP K_KEYSPACE ( K_IF K_EXISTS )? ks= keyspaceName
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropKeyspaceStatement5545);
+ match(input,K_KEYSPACE,FOLLOW_K_KEYSPACE_in_dropKeyspaceStatement5547);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:876:25: ( K_IF K_EXISTS )?
+ int alt108=2;
+ int LA108_0 = input.LA(1);
+ if ( (LA108_0==K_IF) ) {
+ alt108=1;
+ }
+ switch (alt108) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:876:26: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropKeyspaceStatement5550);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropKeyspaceStatement5552);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_keyspaceName_in_dropKeyspaceStatement5561);
+ ks=keyspaceName();
+ state._fsp--;
+
+ ksp = new DropKeyspaceStatement(ks, ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return ksp;
+ }
+ // $ANTLR end "dropKeyspaceStatement"
+
+
+
+ // $ANTLR start "dropTableStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:882:1: dropTableStatement returns [DropTableStatement stmt] : K_DROP K_COLUMNFAMILY ( K_IF K_EXISTS )? cf= columnFamilyName ;
+ public final DropTableStatement dropTableStatement() throws RecognitionException {
+ DropTableStatement stmt = null;
+
+
+ CFName cf =null;
+
+ boolean ifExists = false;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:884:5: ( K_DROP K_COLUMNFAMILY ( K_IF K_EXISTS )? cf= columnFamilyName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:884:7: K_DROP K_COLUMNFAMILY ( K_IF K_EXISTS )? cf= columnFamilyName
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropTableStatement5595);
+ match(input,K_COLUMNFAMILY,FOLLOW_K_COLUMNFAMILY_in_dropTableStatement5597);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:884:29: ( K_IF K_EXISTS )?
+ int alt109=2;
+ int LA109_0 = input.LA(1);
+ if ( (LA109_0==K_IF) ) {
+ alt109=1;
+ }
+ switch (alt109) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:884:30: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropTableStatement5600);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropTableStatement5602);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_columnFamilyName_in_dropTableStatement5611);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ stmt = new DropTableStatement(cf, ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "dropTableStatement"
+
+
+
+ // $ANTLR start "dropTypeStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:890:1: dropTypeStatement returns [DropTypeStatement stmt] : K_DROP K_TYPE ( K_IF K_EXISTS )? name= userTypeName ;
+ public final DropTypeStatement dropTypeStatement() throws RecognitionException {
+ DropTypeStatement stmt = null;
+
+
+ UTName name =null;
+
+ boolean ifExists = false;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:892:5: ( K_DROP K_TYPE ( K_IF K_EXISTS )? name= userTypeName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:892:7: K_DROP K_TYPE ( K_IF K_EXISTS )? name= userTypeName
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropTypeStatement5645);
+ match(input,K_TYPE,FOLLOW_K_TYPE_in_dropTypeStatement5647);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:892:21: ( K_IF K_EXISTS )?
+ int alt110=2;
+ int LA110_0 = input.LA(1);
+ if ( (LA110_0==K_IF) ) {
+ alt110=1;
+ }
+ switch (alt110) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:892:22: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropTypeStatement5650);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropTypeStatement5652);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_userTypeName_in_dropTypeStatement5661);
+ name=userTypeName();
+ state._fsp--;
+
+ stmt = new DropTypeStatement(name, ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "dropTypeStatement"
+
+
+
+ // $ANTLR start "dropIndexStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:898:1: dropIndexStatement returns [DropIndexStatement expr] : K_DROP K_INDEX ( K_IF K_EXISTS )? index= indexName ;
+ public final DropIndexStatement dropIndexStatement() throws RecognitionException {
+ DropIndexStatement expr = null;
+
+
+ IndexName index =null;
+
+ boolean ifExists = false;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:900:5: ( K_DROP K_INDEX ( K_IF K_EXISTS )? index= indexName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:900:7: K_DROP K_INDEX ( K_IF K_EXISTS )? index= indexName
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropIndexStatement5695);
+ match(input,K_INDEX,FOLLOW_K_INDEX_in_dropIndexStatement5697);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:900:22: ( K_IF K_EXISTS )?
+ int alt111=2;
+ int LA111_0 = input.LA(1);
+ if ( (LA111_0==K_IF) ) {
+ alt111=1;
+ }
+ switch (alt111) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:900:23: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropIndexStatement5700);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropIndexStatement5702);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_indexName_in_dropIndexStatement5711);
+ index=indexName();
+ state._fsp--;
+
+ expr = new DropIndexStatement(index, ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "dropIndexStatement"
+
+
+
+ // $ANTLR start "dropMaterializedViewStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:907:1: dropMaterializedViewStatement returns [DropViewStatement expr] : K_DROP K_MATERIALIZED K_VIEW ( K_IF K_EXISTS )? cf= columnFamilyName ;
+ public final DropViewStatement dropMaterializedViewStatement() throws RecognitionException {
+ DropViewStatement expr = null;
+
+
+ CFName cf =null;
+
+ boolean ifExists = false;
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:909:5: ( K_DROP K_MATERIALIZED K_VIEW ( K_IF K_EXISTS )? cf= columnFamilyName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:909:7: K_DROP K_MATERIALIZED K_VIEW ( K_IF K_EXISTS )? cf= columnFamilyName
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropMaterializedViewStatement5751);
+ match(input,K_MATERIALIZED,FOLLOW_K_MATERIALIZED_in_dropMaterializedViewStatement5753);
+ match(input,K_VIEW,FOLLOW_K_VIEW_in_dropMaterializedViewStatement5755);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:909:36: ( K_IF K_EXISTS )?
+ int alt112=2;
+ int LA112_0 = input.LA(1);
+ if ( (LA112_0==K_IF) ) {
+ alt112=1;
+ }
+ switch (alt112) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:909:37: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropMaterializedViewStatement5758);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropMaterializedViewStatement5760);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_columnFamilyName_in_dropMaterializedViewStatement5769);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ expr = new DropViewStatement(cf, ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return expr;
+ }
+ // $ANTLR end "dropMaterializedViewStatement"
+
+
+
+ // $ANTLR start "truncateStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:916:1: truncateStatement returns [TruncateStatement stmt] : K_TRUNCATE ( K_COLUMNFAMILY )? cf= columnFamilyName ;
+ public final TruncateStatement truncateStatement() throws RecognitionException {
+ TruncateStatement stmt = null;
+
+
+ CFName cf =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:917:5: ( K_TRUNCATE ( K_COLUMNFAMILY )? cf= columnFamilyName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:917:7: K_TRUNCATE ( K_COLUMNFAMILY )? cf= columnFamilyName
+ {
+ match(input,K_TRUNCATE,FOLLOW_K_TRUNCATE_in_truncateStatement5800);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:917:18: ( K_COLUMNFAMILY )?
+ int alt113=2;
+ int LA113_0 = input.LA(1);
+ if ( (LA113_0==K_COLUMNFAMILY) ) {
+ alt113=1;
+ }
+ switch (alt113) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:917:19: K_COLUMNFAMILY
+ {
+ match(input,K_COLUMNFAMILY,FOLLOW_K_COLUMNFAMILY_in_truncateStatement5803);
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_columnFamilyName_in_truncateStatement5809);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ stmt = new TruncateStatement(cf);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "truncateStatement"
+
+
+
+ // $ANTLR start "grantPermissionsStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:923:1: grantPermissionsStatement returns [GrantPermissionsStatement stmt] : K_GRANT permissionOrAll K_ON resource K_TO grantee= userOrRoleName ;
+ public final GrantPermissionsStatement grantPermissionsStatement() throws RecognitionException {
+ GrantPermissionsStatement stmt = null;
+
+
+ RoleName grantee =null;
+ Set permissionOrAll1 =null;
+ IResource resource2 =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:924:5: ( K_GRANT permissionOrAll K_ON resource K_TO grantee= userOrRoleName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:924:7: K_GRANT permissionOrAll K_ON resource K_TO grantee= userOrRoleName
+ {
+ match(input,K_GRANT,FOLLOW_K_GRANT_in_grantPermissionsStatement5834);
+ pushFollow(FOLLOW_permissionOrAll_in_grantPermissionsStatement5846);
+ permissionOrAll1=permissionOrAll();
+ state._fsp--;
+
+ match(input,K_ON,FOLLOW_K_ON_in_grantPermissionsStatement5854);
+ pushFollow(FOLLOW_resource_in_grantPermissionsStatement5866);
+ resource2=resource();
+ state._fsp--;
+
+ match(input,K_TO,FOLLOW_K_TO_in_grantPermissionsStatement5874);
+ pushFollow(FOLLOW_userOrRoleName_in_grantPermissionsStatement5888);
+ grantee=userOrRoleName();
+ state._fsp--;
+
+ stmt = new GrantPermissionsStatement(filterPermissions(permissionOrAll1, resource2), resource2, grantee);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "grantPermissionsStatement"
+
+
+
+ // $ANTLR start "revokePermissionsStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:936:1: revokePermissionsStatement returns [RevokePermissionsStatement stmt] : K_REVOKE permissionOrAll K_ON resource K_FROM revokee= userOrRoleName ;
+ public final RevokePermissionsStatement revokePermissionsStatement() throws RecognitionException {
+ RevokePermissionsStatement stmt = null;
+
+
+ RoleName revokee =null;
+ Set permissionOrAll3 =null;
+ IResource resource4 =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:937:5: ( K_REVOKE permissionOrAll K_ON resource K_FROM revokee= userOrRoleName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:937:7: K_REVOKE permissionOrAll K_ON resource K_FROM revokee= userOrRoleName
+ {
+ match(input,K_REVOKE,FOLLOW_K_REVOKE_in_revokePermissionsStatement5919);
+ pushFollow(FOLLOW_permissionOrAll_in_revokePermissionsStatement5931);
+ permissionOrAll3=permissionOrAll();
+ state._fsp--;
+
+ match(input,K_ON,FOLLOW_K_ON_in_revokePermissionsStatement5939);
+ pushFollow(FOLLOW_resource_in_revokePermissionsStatement5951);
+ resource4=resource();
+ state._fsp--;
+
+ match(input,K_FROM,FOLLOW_K_FROM_in_revokePermissionsStatement5959);
+ pushFollow(FOLLOW_userOrRoleName_in_revokePermissionsStatement5973);
+ revokee=userOrRoleName();
+ state._fsp--;
+
+ stmt = new RevokePermissionsStatement(filterPermissions(permissionOrAll3, resource4), resource4, revokee);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "revokePermissionsStatement"
+
+
+
+ // $ANTLR start "grantRoleStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:949:1: grantRoleStatement returns [GrantRoleStatement stmt] : K_GRANT role= userOrRoleName K_TO grantee= userOrRoleName ;
+ public final GrantRoleStatement grantRoleStatement() throws RecognitionException {
+ GrantRoleStatement stmt = null;
+
+
+ RoleName role =null;
+ RoleName grantee =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:950:5: ( K_GRANT role= userOrRoleName K_TO grantee= userOrRoleName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:950:7: K_GRANT role= userOrRoleName K_TO grantee= userOrRoleName
+ {
+ match(input,K_GRANT,FOLLOW_K_GRANT_in_grantRoleStatement6004);
+ pushFollow(FOLLOW_userOrRoleName_in_grantRoleStatement6018);
+ role=userOrRoleName();
+ state._fsp--;
+
+ match(input,K_TO,FOLLOW_K_TO_in_grantRoleStatement6026);
+ pushFollow(FOLLOW_userOrRoleName_in_grantRoleStatement6040);
+ grantee=userOrRoleName();
+ state._fsp--;
+
+ stmt = new GrantRoleStatement(role, grantee);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "grantRoleStatement"
+
+
+
+ // $ANTLR start "revokeRoleStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:960:1: revokeRoleStatement returns [RevokeRoleStatement stmt] : K_REVOKE role= userOrRoleName K_FROM revokee= userOrRoleName ;
+ public final RevokeRoleStatement revokeRoleStatement() throws RecognitionException {
+ RevokeRoleStatement stmt = null;
+
+
+ RoleName role =null;
+ RoleName revokee =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:961:5: ( K_REVOKE role= userOrRoleName K_FROM revokee= userOrRoleName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:961:7: K_REVOKE role= userOrRoleName K_FROM revokee= userOrRoleName
+ {
+ match(input,K_REVOKE,FOLLOW_K_REVOKE_in_revokeRoleStatement6071);
+ pushFollow(FOLLOW_userOrRoleName_in_revokeRoleStatement6085);
+ role=userOrRoleName();
+ state._fsp--;
+
+ match(input,K_FROM,FOLLOW_K_FROM_in_revokeRoleStatement6093);
+ pushFollow(FOLLOW_userOrRoleName_in_revokeRoleStatement6107);
+ revokee=userOrRoleName();
+ state._fsp--;
+
+ stmt = new RevokeRoleStatement(role, revokee);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "revokeRoleStatement"
+
+
+
+ // $ANTLR start "listPermissionsStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:968:1: listPermissionsStatement returns [ListPermissionsStatement stmt] : K_LIST permissionOrAll ( K_ON resource )? ( K_OF roleName[grantee] )? ( K_NORECURSIVE )? ;
+ public final ListPermissionsStatement listPermissionsStatement() throws RecognitionException {
+ ListPermissionsStatement stmt = null;
+
+
+ IResource resource5 =null;
+ Set permissionOrAll6 =null;
+
+
+ IResource resource = null;
+ boolean recursive = true;
+ RoleName grantee = new RoleName();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:974:5: ( K_LIST permissionOrAll ( K_ON resource )? ( K_OF roleName[grantee] )? ( K_NORECURSIVE )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:974:7: K_LIST permissionOrAll ( K_ON resource )? ( K_OF roleName[grantee] )? ( K_NORECURSIVE )?
+ {
+ match(input,K_LIST,FOLLOW_K_LIST_in_listPermissionsStatement6145);
+ pushFollow(FOLLOW_permissionOrAll_in_listPermissionsStatement6157);
+ permissionOrAll6=permissionOrAll();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:976:7: ( K_ON resource )?
+ int alt114=2;
+ int LA114_0 = input.LA(1);
+ if ( (LA114_0==K_ON) ) {
+ alt114=1;
+ }
+ switch (alt114) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:976:9: K_ON resource
+ {
+ match(input,K_ON,FOLLOW_K_ON_in_listPermissionsStatement6167);
+ pushFollow(FOLLOW_resource_in_listPermissionsStatement6169);
+ resource5=resource();
+ state._fsp--;
+
+ resource = resource5;
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:977:7: ( K_OF roleName[grantee] )?
+ int alt115=2;
+ int LA115_0 = input.LA(1);
+ if ( (LA115_0==K_OF) ) {
+ alt115=1;
+ }
+ switch (alt115) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:977:9: K_OF roleName[grantee]
+ {
+ match(input,K_OF,FOLLOW_K_OF_in_listPermissionsStatement6184);
+ pushFollow(FOLLOW_roleName_in_listPermissionsStatement6186);
+ roleName(grantee);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:978:7: ( K_NORECURSIVE )?
+ int alt116=2;
+ int LA116_0 = input.LA(1);
+ if ( (LA116_0==K_NORECURSIVE) ) {
+ alt116=1;
+ }
+ switch (alt116) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:978:9: K_NORECURSIVE
+ {
+ match(input,K_NORECURSIVE,FOLLOW_K_NORECURSIVE_in_listPermissionsStatement6200);
+ recursive = false;
+ }
+ break;
+
+ }
+
+ stmt = new ListPermissionsStatement(permissionOrAll6, resource, grantee, recursive);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "listPermissionsStatement"
+
+
+
+ // $ANTLR start "permission"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:982:1: permission returns [Permission perm] : p= ( K_CREATE | K_ALTER | K_DROP | K_SELECT | K_MODIFY | K_AUTHORIZE | K_DESCRIBE | K_EXECUTE ) ;
+ public final Permission permission() throws RecognitionException {
+ Permission perm = null;
+
+
+ Token p=null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:983:5: (p= ( K_CREATE | K_ALTER | K_DROP | K_SELECT | K_MODIFY | K_AUTHORIZE | K_DESCRIBE | K_EXECUTE ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:983:7: p= ( K_CREATE | K_ALTER | K_DROP | K_SELECT | K_MODIFY | K_AUTHORIZE | K_DESCRIBE | K_EXECUTE )
+ {
+ p=input.LT(1);
+ if ( input.LA(1)==K_ALTER||input.LA(1)==K_AUTHORIZE||input.LA(1)==K_CREATE||input.LA(1)==K_DESCRIBE||input.LA(1)==K_DROP||input.LA(1)==K_EXECUTE||input.LA(1)==K_MODIFY||input.LA(1)==K_SELECT ) {
+ input.consume();
+ state.errorRecovery=false;
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ throw mse;
+ }
+ perm = Permission.valueOf((p!=null?p.getText():null).toUpperCase());
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return perm;
+ }
+ // $ANTLR end "permission"
+
+
+
+ // $ANTLR start "permissionOrAll"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:987:1: permissionOrAll returns [Set perms] : ( K_ALL ( K_PERMISSIONS )? |p= permission ( K_PERMISSION )? );
+ public final Set permissionOrAll() throws RecognitionException {
+ Set perms = null;
+
+
+ Permission p =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:988:5: ( K_ALL ( K_PERMISSIONS )? |p= permission ( K_PERMISSION )? )
+ int alt119=2;
+ int LA119_0 = input.LA(1);
+ if ( (LA119_0==K_ALL) ) {
+ alt119=1;
+ }
+ else if ( (LA119_0==K_ALTER||LA119_0==K_AUTHORIZE||LA119_0==K_CREATE||LA119_0==K_DESCRIBE||LA119_0==K_DROP||LA119_0==K_EXECUTE||LA119_0==K_MODIFY||LA119_0==K_SELECT) ) {
+ alt119=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 119, 0, input);
+ throw nvae;
+ }
+
+ switch (alt119) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:988:7: K_ALL ( K_PERMISSIONS )?
+ {
+ match(input,K_ALL,FOLLOW_K_ALL_in_permissionOrAll6293);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:988:13: ( K_PERMISSIONS )?
+ int alt117=2;
+ int LA117_0 = input.LA(1);
+ if ( (LA117_0==K_PERMISSIONS) ) {
+ alt117=1;
+ }
+ switch (alt117) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:988:15: K_PERMISSIONS
+ {
+ match(input,K_PERMISSIONS,FOLLOW_K_PERMISSIONS_in_permissionOrAll6297);
+ }
+ break;
+
+ }
+
+ perms = Permission.ALL;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:989:7: p= permission ( K_PERMISSION )?
+ {
+ pushFollow(FOLLOW_permission_in_permissionOrAll6318);
+ p=permission();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:989:20: ( K_PERMISSION )?
+ int alt118=2;
+ int LA118_0 = input.LA(1);
+ if ( (LA118_0==K_PERMISSION) ) {
+ alt118=1;
+ }
+ switch (alt118) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:989:22: K_PERMISSION
+ {
+ match(input,K_PERMISSION,FOLLOW_K_PERMISSION_in_permissionOrAll6322);
+ }
+ break;
+
+ }
+
+ perms = EnumSet.of(p);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return perms;
+ }
+ // $ANTLR end "permissionOrAll"
+
+
+
+ // $ANTLR start "resource"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:992:1: resource returns [IResource res] : (d= dataResource |r= roleResource |f= functionResource );
+ public final IResource resource() throws RecognitionException {
+ IResource res = null;
+
+
+ DataResource d =null;
+ RoleResource r =null;
+ FunctionResource f =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:993:5: (d= dataResource |r= roleResource |f= functionResource )
+ int alt120=3;
+ switch ( input.LA(1) ) {
+ case K_ALL:
+ {
+ switch ( input.LA(2) ) {
+ case EOF:
+ case K_FROM:
+ case K_KEYSPACES:
+ case K_NORECURSIVE:
+ case K_OF:
+ case K_TO:
+ case 179:
+ case 181:
+ {
+ alt120=1;
+ }
+ break;
+ case K_ROLES:
+ {
+ alt120=2;
+ }
+ break;
+ case K_FUNCTIONS:
+ {
+ alt120=3;
+ }
+ break;
+ default:
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 120, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+ }
+ break;
+ case IDENT:
+ case K_AGGREGATE:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COLUMNFAMILY:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACE:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ case QMARK:
+ case QUOTED_NAME:
+ {
+ alt120=1;
+ }
+ break;
+ case K_ROLE:
+ {
+ int LA120_3 = input.LA(2);
+ if ( (LA120_3==EOF||LA120_3==K_FROM||LA120_3==K_NORECURSIVE||LA120_3==K_OF||LA120_3==K_TO||LA120_3==179||LA120_3==181) ) {
+ alt120=1;
+ }
+ else if ( (LA120_3==IDENT||(LA120_3 >= K_AGGREGATE && LA120_3 <= K_ALL)||LA120_3==K_AS||LA120_3==K_ASCII||(LA120_3 >= K_BIGINT && LA120_3 <= K_BOOLEAN)||(LA120_3 >= K_CALLED && LA120_3 <= K_CLUSTERING)||(LA120_3 >= K_COMPACT && LA120_3 <= K_COUNTER)||(LA120_3 >= K_CUSTOM && LA120_3 <= K_DECIMAL)||(LA120_3 >= K_DISTINCT && LA120_3 <= K_DOUBLE)||(LA120_3 >= K_EXISTS && LA120_3 <= K_FLOAT)||LA120_3==K_FROZEN||(LA120_3 >= K_FUNCTION && LA120_3 <= K_FUNCTIONS)||LA120_3==K_INET||(LA120_3 >= K_INITCOND && LA120_3 <= K_INPUT)||LA120_3==K_INT||(LA120_3 >= K_JSON && LA120_3 <= K_KEYS)||(LA120_3 >= K_KEYSPACES && LA120_3 <= K_LIKE)||(LA120_3 >= K_LIST && LA120_3 <= K_MAP)||LA120_3==K_NOLOGIN||LA120_3==K_NOSUPERUSER||LA120_3==K_OPTIONS||(LA120_3 >= K_PARTITION && LA120_3 <= K_PERMISSIONS)||LA120_3==K_RETURNS||(LA120_3 >= K_ROLE && LA120_3 <= K_ROLES)||(LA120_3 >= K_SFUNC && LA120_3 <= K_TINYINT)||LA120_3==K_TRIGGER||(LA120_3 >= K_TTL && LA120_3 <= K_TYPE)||(LA120_3 >= K_USER && LA120_3 <= K_USERS)||(LA120_3 >= K_UUID && LA120_3 <= K_VARINT)||LA120_3==K_WRITETIME||(LA120_3 >= QMARK && LA120_3 <= QUOTED_NAME)||LA120_3==STRING_LITERAL) ) {
+ alt120=2;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 120, 3, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case K_FUNCTION:
+ {
+ int LA120_4 = input.LA(2);
+ if ( (LA120_4==EOF||LA120_4==K_FROM||LA120_4==K_NORECURSIVE||LA120_4==K_OF||LA120_4==K_TO||LA120_4==179||LA120_4==181) ) {
+ alt120=1;
+ }
+ else if ( (LA120_4==IDENT||(LA120_4 >= K_AGGREGATE && LA120_4 <= K_ALL)||LA120_4==K_AS||LA120_4==K_ASCII||(LA120_4 >= K_BIGINT && LA120_4 <= K_BOOLEAN)||(LA120_4 >= K_CALLED && LA120_4 <= K_CLUSTERING)||(LA120_4 >= K_COMPACT && LA120_4 <= K_COUNTER)||(LA120_4 >= K_CUSTOM && LA120_4 <= K_DECIMAL)||(LA120_4 >= K_DISTINCT && LA120_4 <= K_DOUBLE)||(LA120_4 >= K_EXISTS && LA120_4 <= K_FLOAT)||LA120_4==K_FROZEN||(LA120_4 >= K_FUNCTION && LA120_4 <= K_FUNCTIONS)||LA120_4==K_INET||(LA120_4 >= K_INITCOND && LA120_4 <= K_INPUT)||LA120_4==K_INT||(LA120_4 >= K_JSON && LA120_4 <= K_KEYS)||(LA120_4 >= K_KEYSPACES && LA120_4 <= K_LIKE)||(LA120_4 >= K_LIST && LA120_4 <= K_MAP)||LA120_4==K_NOLOGIN||LA120_4==K_NOSUPERUSER||LA120_4==K_OPTIONS||(LA120_4 >= K_PARTITION && LA120_4 <= K_PERMISSIONS)||LA120_4==K_RETURNS||(LA120_4 >= K_ROLE && LA120_4 <= K_ROLES)||(LA120_4 >= K_SFUNC && LA120_4 <= K_TINYINT)||(LA120_4 >= K_TOKEN && LA120_4 <= K_TRIGGER)||(LA120_4 >= K_TTL && LA120_4 <= K_TYPE)||(LA120_4 >= K_USER && LA120_4 <= K_USERS)||(LA120_4 >= K_UUID && LA120_4 <= K_VARINT)||LA120_4==K_WRITETIME||(LA120_4 >= QMARK && LA120_4 <= QUOTED_NAME)) ) {
+ alt120=3;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 120, 4, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 120, 0, input);
+ throw nvae;
+ }
+ switch (alt120) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:993:7: d= dataResource
+ {
+ pushFollow(FOLLOW_dataResource_in_resource6350);
+ d=dataResource();
+ state._fsp--;
+
+ res = d;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:994:7: r= roleResource
+ {
+ pushFollow(FOLLOW_roleResource_in_resource6362);
+ r=roleResource();
+ state._fsp--;
+
+ res = r;
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:995:7: f= functionResource
+ {
+ pushFollow(FOLLOW_functionResource_in_resource6374);
+ f=functionResource();
+ state._fsp--;
+
+ res = f;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return res;
+ }
+ // $ANTLR end "resource"
+
+
+
+ // $ANTLR start "dataResource"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:998:1: dataResource returns [DataResource res] : ( K_ALL K_KEYSPACES | K_KEYSPACE ks= keyspaceName | ( K_COLUMNFAMILY )? cf= columnFamilyName );
+ public final DataResource dataResource() throws RecognitionException {
+ DataResource res = null;
+
+
+ String ks =null;
+ CFName cf =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:999:5: ( K_ALL K_KEYSPACES | K_KEYSPACE ks= keyspaceName | ( K_COLUMNFAMILY )? cf= columnFamilyName )
+ int alt122=3;
+ switch ( input.LA(1) ) {
+ case K_ALL:
+ {
+ int LA122_1 = input.LA(2);
+ if ( (LA122_1==K_KEYSPACES) ) {
+ alt122=1;
+ }
+ else if ( (LA122_1==EOF||LA122_1==K_FROM||LA122_1==K_NORECURSIVE||LA122_1==K_OF||LA122_1==K_TO||LA122_1==179||LA122_1==181) ) {
+ alt122=3;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 122, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ break;
+ case K_KEYSPACE:
+ {
+ alt122=2;
+ }
+ break;
+ case IDENT:
+ case K_AGGREGATE:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COLUMNFAMILY:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ case QMARK:
+ case QUOTED_NAME:
+ {
+ alt122=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 122, 0, input);
+ throw nvae;
+ }
+ switch (alt122) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:999:7: K_ALL K_KEYSPACES
+ {
+ match(input,K_ALL,FOLLOW_K_ALL_in_dataResource6397);
+ match(input,K_KEYSPACES,FOLLOW_K_KEYSPACES_in_dataResource6399);
+ res = DataResource.root();
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1000:7: K_KEYSPACE ks= keyspaceName
+ {
+ match(input,K_KEYSPACE,FOLLOW_K_KEYSPACE_in_dataResource6409);
+ pushFollow(FOLLOW_keyspaceName_in_dataResource6415);
+ ks=keyspaceName();
+ state._fsp--;
+
+ res = DataResource.keyspace(ks);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1001:7: ( K_COLUMNFAMILY )? cf= columnFamilyName
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1001:7: ( K_COLUMNFAMILY )?
+ int alt121=2;
+ int LA121_0 = input.LA(1);
+ if ( (LA121_0==K_COLUMNFAMILY) ) {
+ alt121=1;
+ }
+ switch (alt121) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1001:9: K_COLUMNFAMILY
+ {
+ match(input,K_COLUMNFAMILY,FOLLOW_K_COLUMNFAMILY_in_dataResource6427);
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_columnFamilyName_in_dataResource6436);
+ cf=columnFamilyName();
+ state._fsp--;
+
+ res = DataResource.table(cf.getKeyspace(), cf.getColumnFamily());
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return res;
+ }
+ // $ANTLR end "dataResource"
+
+
+
+ // $ANTLR start "roleResource"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1005:1: roleResource returns [RoleResource res] : ( K_ALL K_ROLES | K_ROLE role= userOrRoleName );
+ public final RoleResource roleResource() throws RecognitionException {
+ RoleResource res = null;
+
+
+ RoleName role =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1006:5: ( K_ALL K_ROLES | K_ROLE role= userOrRoleName )
+ int alt123=2;
+ int LA123_0 = input.LA(1);
+ if ( (LA123_0==K_ALL) ) {
+ alt123=1;
+ }
+ else if ( (LA123_0==K_ROLE) ) {
+ alt123=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 123, 0, input);
+ throw nvae;
+ }
+
+ switch (alt123) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1006:7: K_ALL K_ROLES
+ {
+ match(input,K_ALL,FOLLOW_K_ALL_in_roleResource6465);
+ match(input,K_ROLES,FOLLOW_K_ROLES_in_roleResource6467);
+ res = RoleResource.root();
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1007:7: K_ROLE role= userOrRoleName
+ {
+ match(input,K_ROLE,FOLLOW_K_ROLE_in_roleResource6477);
+ pushFollow(FOLLOW_userOrRoleName_in_roleResource6483);
+ role=userOrRoleName();
+ state._fsp--;
+
+ res = RoleResource.role(role.getName());
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return res;
+ }
+ // $ANTLR end "roleResource"
+
+
+
+ // $ANTLR start "functionResource"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1010:1: functionResource returns [FunctionResource res] : ( K_ALL K_FUNCTIONS | K_ALL K_FUNCTIONS K_IN K_KEYSPACE ks= keyspaceName | K_FUNCTION fn= functionName ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' ) );
+ public final FunctionResource functionResource() throws RecognitionException {
+ FunctionResource res = null;
+
+
+ String ks =null;
+ FunctionName fn =null;
+ CQL3Type.Raw v =null;
+
+
+ List argsTypes = new ArrayList<>();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1014:5: ( K_ALL K_FUNCTIONS | K_ALL K_FUNCTIONS K_IN K_KEYSPACE ks= keyspaceName | K_FUNCTION fn= functionName ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' ) )
+ int alt126=3;
+ int LA126_0 = input.LA(1);
+ if ( (LA126_0==K_ALL) ) {
+ int LA126_1 = input.LA(2);
+ if ( (LA126_1==K_FUNCTIONS) ) {
+ int LA126_3 = input.LA(3);
+ if ( (LA126_3==K_IN) ) {
+ alt126=2;
+ }
+ else if ( (LA126_3==EOF||LA126_3==K_FROM||LA126_3==K_NORECURSIVE||LA126_3==K_OF||LA126_3==K_TO||LA126_3==181) ) {
+ alt126=1;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
+ input.consume();
+ }
+ NoViableAltException nvae =
+ new NoViableAltException("", 126, 3, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 126, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+ else if ( (LA126_0==K_FUNCTION) ) {
+ alt126=3;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 126, 0, input);
+ throw nvae;
+ }
+
+ switch (alt126) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1014:7: K_ALL K_FUNCTIONS
+ {
+ match(input,K_ALL,FOLLOW_K_ALL_in_functionResource6515);
+ match(input,K_FUNCTIONS,FOLLOW_K_FUNCTIONS_in_functionResource6517);
+ res = FunctionResource.root();
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1015:7: K_ALL K_FUNCTIONS K_IN K_KEYSPACE ks= keyspaceName
+ {
+ match(input,K_ALL,FOLLOW_K_ALL_in_functionResource6527);
+ match(input,K_FUNCTIONS,FOLLOW_K_FUNCTIONS_in_functionResource6529);
+ match(input,K_IN,FOLLOW_K_IN_in_functionResource6531);
+ match(input,K_KEYSPACE,FOLLOW_K_KEYSPACE_in_functionResource6533);
+ pushFollow(FOLLOW_keyspaceName_in_functionResource6539);
+ ks=keyspaceName();
+ state._fsp--;
+
+ res = FunctionResource.keyspace(ks);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1017:7: K_FUNCTION fn= functionName ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )
+ {
+ match(input,K_FUNCTION,FOLLOW_K_FUNCTION_in_functionResource6554);
+ pushFollow(FOLLOW_functionName_in_functionResource6558);
+ fn=functionName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1018:7: ( '(' (v= comparatorType ( ',' v= comparatorType )* )? ')' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1019:9: '(' (v= comparatorType ( ',' v= comparatorType )* )? ')'
+ {
+ match(input,174,FOLLOW_174_in_functionResource6576);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1020:11: (v= comparatorType ( ',' v= comparatorType )* )?
+ int alt125=2;
+ int LA125_0 = input.LA(1);
+ if ( (LA125_0==IDENT||(LA125_0 >= K_AGGREGATE && LA125_0 <= K_ALL)||LA125_0==K_AS||LA125_0==K_ASCII||(LA125_0 >= K_BIGINT && LA125_0 <= K_BOOLEAN)||(LA125_0 >= K_CALLED && LA125_0 <= K_CLUSTERING)||(LA125_0 >= K_COMPACT && LA125_0 <= K_COUNTER)||(LA125_0 >= K_CUSTOM && LA125_0 <= K_DECIMAL)||(LA125_0 >= K_DISTINCT && LA125_0 <= K_DOUBLE)||(LA125_0 >= K_EXISTS && LA125_0 <= K_FLOAT)||LA125_0==K_FROZEN||(LA125_0 >= K_FUNCTION && LA125_0 <= K_FUNCTIONS)||LA125_0==K_INET||(LA125_0 >= K_INITCOND && LA125_0 <= K_INPUT)||LA125_0==K_INT||(LA125_0 >= K_JSON && LA125_0 <= K_KEYS)||(LA125_0 >= K_KEYSPACES && LA125_0 <= K_LIKE)||(LA125_0 >= K_LIST && LA125_0 <= K_MAP)||LA125_0==K_NOLOGIN||LA125_0==K_NOSUPERUSER||LA125_0==K_OPTIONS||(LA125_0 >= K_PARTITION && LA125_0 <= K_PERMISSIONS)||LA125_0==K_RETURNS||(LA125_0 >= K_ROLE && LA125_0 <= K_ROLES)||(LA125_0 >= K_SET && LA125_0 <= K_TINYINT)||LA125_0==K_TRIGGER||(LA125_0 >= K_TTL && LA125_0 <= K_TYPE)||(LA125_0 >= K_USER && LA125_0 <= K_USERS)||(LA125_0 >= K_UUID && LA125_0 <= K_VARINT)||LA125_0==K_WRITETIME||LA125_0==QUOTED_NAME||LA125_0==STRING_LITERAL) ) {
+ alt125=1;
+ }
+ switch (alt125) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1021:13: v= comparatorType ( ',' v= comparatorType )*
+ {
+ pushFollow(FOLLOW_comparatorType_in_functionResource6604);
+ v=comparatorType();
+ state._fsp--;
+
+ argsTypes.add(v);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1022:13: ( ',' v= comparatorType )*
+ loop124:
+ while (true) {
+ int alt124=2;
+ int LA124_0 = input.LA(1);
+ if ( (LA124_0==177) ) {
+ alt124=1;
+ }
+
+ switch (alt124) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1022:15: ',' v= comparatorType
+ {
+ match(input,177,FOLLOW_177_in_functionResource6622);
+ pushFollow(FOLLOW_comparatorType_in_functionResource6626);
+ v=comparatorType();
+ state._fsp--;
+
+ argsTypes.add(v);
+ }
+ break;
+
+ default :
+ break loop124;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,175,FOLLOW_175_in_functionResource6654);
+ }
+
+ res = FunctionResource.functionFromCql(fn.keyspace, fn.name, argsTypes);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return res;
+ }
+ // $ANTLR end "functionResource"
+
+
+
+ // $ANTLR start "createUserStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1032:1: createUserStatement returns [CreateRoleStatement stmt] : K_CREATE K_USER ( K_IF K_NOT K_EXISTS )? u= username ( K_WITH userPassword[opts] )? ( K_SUPERUSER | K_NOSUPERUSER )? ;
+ public final CreateRoleStatement createUserStatement() throws RecognitionException {
+ CreateRoleStatement stmt = null;
+
+
+ ParserRuleReturnScope u =null;
+
+
+ RoleOptions opts = new RoleOptions();
+ opts.setOption(IRoleManager.Option.LOGIN, true);
+ boolean superuser = false;
+ boolean ifNotExists = false;
+ RoleName name = new RoleName();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1040:5: ( K_CREATE K_USER ( K_IF K_NOT K_EXISTS )? u= username ( K_WITH userPassword[opts] )? ( K_SUPERUSER | K_NOSUPERUSER )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1040:7: K_CREATE K_USER ( K_IF K_NOT K_EXISTS )? u= username ( K_WITH userPassword[opts] )? ( K_SUPERUSER | K_NOSUPERUSER )?
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createUserStatement6702);
+ match(input,K_USER,FOLLOW_K_USER_in_createUserStatement6704);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1040:23: ( K_IF K_NOT K_EXISTS )?
+ int alt127=2;
+ int LA127_0 = input.LA(1);
+ if ( (LA127_0==K_IF) ) {
+ alt127=1;
+ }
+ switch (alt127) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1040:24: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createUserStatement6707);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createUserStatement6709);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createUserStatement6711);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_username_in_createUserStatement6719);
+ u=username();
+ state._fsp--;
+
+ name.setName((u!=null?input.toString(u.start,u.stop):null), true);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1041:7: ( K_WITH userPassword[opts] )?
+ int alt128=2;
+ int LA128_0 = input.LA(1);
+ if ( (LA128_0==K_WITH) ) {
+ alt128=1;
+ }
+ switch (alt128) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1041:9: K_WITH userPassword[opts]
+ {
+ match(input,K_WITH,FOLLOW_K_WITH_in_createUserStatement6731);
+ pushFollow(FOLLOW_userPassword_in_createUserStatement6733);
+ userPassword(opts);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1042:7: ( K_SUPERUSER | K_NOSUPERUSER )?
+ int alt129=3;
+ int LA129_0 = input.LA(1);
+ if ( (LA129_0==K_SUPERUSER) ) {
+ alt129=1;
+ }
+ else if ( (LA129_0==K_NOSUPERUSER) ) {
+ alt129=2;
+ }
+ switch (alt129) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1042:9: K_SUPERUSER
+ {
+ match(input,K_SUPERUSER,FOLLOW_K_SUPERUSER_in_createUserStatement6747);
+ superuser = true;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1042:45: K_NOSUPERUSER
+ {
+ match(input,K_NOSUPERUSER,FOLLOW_K_NOSUPERUSER_in_createUserStatement6753);
+ superuser = false;
+ }
+ break;
+
+ }
+
+ opts.setOption(IRoleManager.Option.SUPERUSER, superuser);
+ stmt = new CreateRoleStatement(name, opts, ifNotExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "createUserStatement"
+
+
+
+ // $ANTLR start "alterUserStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1050:1: alterUserStatement returns [AlterRoleStatement stmt] : K_ALTER K_USER u= username ( K_WITH userPassword[opts] )? ( K_SUPERUSER | K_NOSUPERUSER )? ;
+ public final AlterRoleStatement alterUserStatement() throws RecognitionException {
+ AlterRoleStatement stmt = null;
+
+
+ ParserRuleReturnScope u =null;
+
+
+ RoleOptions opts = new RoleOptions();
+ RoleName name = new RoleName();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1055:5: ( K_ALTER K_USER u= username ( K_WITH userPassword[opts] )? ( K_SUPERUSER | K_NOSUPERUSER )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1055:7: K_ALTER K_USER u= username ( K_WITH userPassword[opts] )? ( K_SUPERUSER | K_NOSUPERUSER )?
+ {
+ match(input,K_ALTER,FOLLOW_K_ALTER_in_alterUserStatement6798);
+ match(input,K_USER,FOLLOW_K_USER_in_alterUserStatement6800);
+ pushFollow(FOLLOW_username_in_alterUserStatement6804);
+ u=username();
+ state._fsp--;
+
+ name.setName((u!=null?input.toString(u.start,u.stop):null), true);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1056:7: ( K_WITH userPassword[opts] )?
+ int alt130=2;
+ int LA130_0 = input.LA(1);
+ if ( (LA130_0==K_WITH) ) {
+ alt130=1;
+ }
+ switch (alt130) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1056:9: K_WITH userPassword[opts]
+ {
+ match(input,K_WITH,FOLLOW_K_WITH_in_alterUserStatement6816);
+ pushFollow(FOLLOW_userPassword_in_alterUserStatement6818);
+ userPassword(opts);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1057:7: ( K_SUPERUSER | K_NOSUPERUSER )?
+ int alt131=3;
+ int LA131_0 = input.LA(1);
+ if ( (LA131_0==K_SUPERUSER) ) {
+ alt131=1;
+ }
+ else if ( (LA131_0==K_NOSUPERUSER) ) {
+ alt131=2;
+ }
+ switch (alt131) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1057:9: K_SUPERUSER
+ {
+ match(input,K_SUPERUSER,FOLLOW_K_SUPERUSER_in_alterUserStatement6832);
+ opts.setOption(IRoleManager.Option.SUPERUSER, true);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1058:11: K_NOSUPERUSER
+ {
+ match(input,K_NOSUPERUSER,FOLLOW_K_NOSUPERUSER_in_alterUserStatement6846);
+ opts.setOption(IRoleManager.Option.SUPERUSER, false);
+ }
+ break;
+
+ }
+
+ stmt = new AlterRoleStatement(name, opts);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "alterUserStatement"
+
+
+
+ // $ANTLR start "dropUserStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1065:1: dropUserStatement returns [DropRoleStatement stmt] : K_DROP K_USER ( K_IF K_EXISTS )? u= username ;
+ public final DropRoleStatement dropUserStatement() throws RecognitionException {
+ DropRoleStatement stmt = null;
+
+
+ ParserRuleReturnScope u =null;
+
+
+ boolean ifExists = false;
+ RoleName name = new RoleName();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1070:5: ( K_DROP K_USER ( K_IF K_EXISTS )? u= username )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1070:7: K_DROP K_USER ( K_IF K_EXISTS )? u= username
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropUserStatement6892);
+ match(input,K_USER,FOLLOW_K_USER_in_dropUserStatement6894);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1070:21: ( K_IF K_EXISTS )?
+ int alt132=2;
+ int LA132_0 = input.LA(1);
+ if ( (LA132_0==K_IF) ) {
+ alt132=1;
+ }
+ switch (alt132) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1070:22: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropUserStatement6897);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropUserStatement6899);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_username_in_dropUserStatement6907);
+ u=username();
+ state._fsp--;
+
+ name.setName((u!=null?input.toString(u.start,u.stop):null), true); stmt = new DropRoleStatement(name, ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "dropUserStatement"
+
+
+
+ // $ANTLR start "listUsersStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1076:1: listUsersStatement returns [ListRolesStatement stmt] : K_LIST K_USERS ;
+ public final ListRolesStatement listUsersStatement() throws RecognitionException {
+ ListRolesStatement stmt = null;
+
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1077:5: ( K_LIST K_USERS )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1077:7: K_LIST K_USERS
+ {
+ match(input,K_LIST,FOLLOW_K_LIST_in_listUsersStatement6932);
+ match(input,K_USERS,FOLLOW_K_USERS_in_listUsersStatement6934);
+ stmt = new ListUsersStatement();
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "listUsersStatement"
+
+
+
+ // $ANTLR start "createRoleStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1089:1: createRoleStatement returns [CreateRoleStatement stmt] : K_CREATE K_ROLE ( K_IF K_NOT K_EXISTS )? name= userOrRoleName ( K_WITH roleOptions[opts] )? ;
+ public final CreateRoleStatement createRoleStatement() throws RecognitionException {
+ CreateRoleStatement stmt = null;
+
+
+ RoleName name =null;
+
+
+ RoleOptions opts = new RoleOptions();
+ boolean ifNotExists = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1094:5: ( K_CREATE K_ROLE ( K_IF K_NOT K_EXISTS )? name= userOrRoleName ( K_WITH roleOptions[opts] )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1094:7: K_CREATE K_ROLE ( K_IF K_NOT K_EXISTS )? name= userOrRoleName ( K_WITH roleOptions[opts] )?
+ {
+ match(input,K_CREATE,FOLLOW_K_CREATE_in_createRoleStatement6968);
+ match(input,K_ROLE,FOLLOW_K_ROLE_in_createRoleStatement6970);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1094:23: ( K_IF K_NOT K_EXISTS )?
+ int alt133=2;
+ int LA133_0 = input.LA(1);
+ if ( (LA133_0==K_IF) ) {
+ alt133=1;
+ }
+ switch (alt133) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1094:24: K_IF K_NOT K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_createRoleStatement6973);
+ match(input,K_NOT,FOLLOW_K_NOT_in_createRoleStatement6975);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_createRoleStatement6977);
+ ifNotExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_userOrRoleName_in_createRoleStatement6985);
+ name=userOrRoleName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1095:7: ( K_WITH roleOptions[opts] )?
+ int alt134=2;
+ int LA134_0 = input.LA(1);
+ if ( (LA134_0==K_WITH) ) {
+ alt134=1;
+ }
+ switch (alt134) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1095:9: K_WITH roleOptions[opts]
+ {
+ match(input,K_WITH,FOLLOW_K_WITH_in_createRoleStatement6995);
+ pushFollow(FOLLOW_roleOptions_in_createRoleStatement6997);
+ roleOptions(opts);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+
+ // set defaults if they weren't explictly supplied
+ if (!opts.getLogin().isPresent())
+ {
+ opts.setOption(IRoleManager.Option.LOGIN, false);
+ }
+ if (!opts.getSuperuser().isPresent())
+ {
+ opts.setOption(IRoleManager.Option.SUPERUSER, false);
+ }
+ stmt = new CreateRoleStatement(name, opts, ifNotExists);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "createRoleStatement"
+
+
+
+ // $ANTLR start "alterRoleStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1119:1: alterRoleStatement returns [AlterRoleStatement stmt] : K_ALTER K_ROLE name= userOrRoleName ( K_WITH roleOptions[opts] )? ;
+ public final AlterRoleStatement alterRoleStatement() throws RecognitionException {
+ AlterRoleStatement stmt = null;
+
+
+ RoleName name =null;
+
+
+ RoleOptions opts = new RoleOptions();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1123:5: ( K_ALTER K_ROLE name= userOrRoleName ( K_WITH roleOptions[opts] )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1123:7: K_ALTER K_ROLE name= userOrRoleName ( K_WITH roleOptions[opts] )?
+ {
+ match(input,K_ALTER,FOLLOW_K_ALTER_in_alterRoleStatement7041);
+ match(input,K_ROLE,FOLLOW_K_ROLE_in_alterRoleStatement7043);
+ pushFollow(FOLLOW_userOrRoleName_in_alterRoleStatement7047);
+ name=userOrRoleName();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1124:7: ( K_WITH roleOptions[opts] )?
+ int alt135=2;
+ int LA135_0 = input.LA(1);
+ if ( (LA135_0==K_WITH) ) {
+ alt135=1;
+ }
+ switch (alt135) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1124:9: K_WITH roleOptions[opts]
+ {
+ match(input,K_WITH,FOLLOW_K_WITH_in_alterRoleStatement7057);
+ pushFollow(FOLLOW_roleOptions_in_alterRoleStatement7059);
+ roleOptions(opts);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ stmt = new AlterRoleStatement(name, opts);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "alterRoleStatement"
+
+
+
+ // $ANTLR start "dropRoleStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1131:1: dropRoleStatement returns [DropRoleStatement stmt] : K_DROP K_ROLE ( K_IF K_EXISTS )? name= userOrRoleName ;
+ public final DropRoleStatement dropRoleStatement() throws RecognitionException {
+ DropRoleStatement stmt = null;
+
+
+ RoleName name =null;
+
+
+ boolean ifExists = false;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1135:5: ( K_DROP K_ROLE ( K_IF K_EXISTS )? name= userOrRoleName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1135:7: K_DROP K_ROLE ( K_IF K_EXISTS )? name= userOrRoleName
+ {
+ match(input,K_DROP,FOLLOW_K_DROP_in_dropRoleStatement7103);
+ match(input,K_ROLE,FOLLOW_K_ROLE_in_dropRoleStatement7105);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1135:21: ( K_IF K_EXISTS )?
+ int alt136=2;
+ int LA136_0 = input.LA(1);
+ if ( (LA136_0==K_IF) ) {
+ alt136=1;
+ }
+ switch (alt136) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1135:22: K_IF K_EXISTS
+ {
+ match(input,K_IF,FOLLOW_K_IF_in_dropRoleStatement7108);
+ match(input,K_EXISTS,FOLLOW_K_EXISTS_in_dropRoleStatement7110);
+ ifExists = true;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_userOrRoleName_in_dropRoleStatement7118);
+ name=userOrRoleName();
+ state._fsp--;
+
+ stmt = new DropRoleStatement(name, ifExists);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "dropRoleStatement"
+
+
+
+ // $ANTLR start "listRolesStatement"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1142:1: listRolesStatement returns [ListRolesStatement stmt] : K_LIST K_ROLES ( K_OF roleName[grantee] )? ( K_NORECURSIVE )? ;
+ public final ListRolesStatement listRolesStatement() throws RecognitionException {
+ ListRolesStatement stmt = null;
+
+
+
+ boolean recursive = true;
+ RoleName grantee = new RoleName();
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1147:5: ( K_LIST K_ROLES ( K_OF roleName[grantee] )? ( K_NORECURSIVE )? )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1147:7: K_LIST K_ROLES ( K_OF roleName[grantee] )? ( K_NORECURSIVE )?
+ {
+ match(input,K_LIST,FOLLOW_K_LIST_in_listRolesStatement7158);
+ match(input,K_ROLES,FOLLOW_K_ROLES_in_listRolesStatement7160);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1148:7: ( K_OF roleName[grantee] )?
+ int alt137=2;
+ int LA137_0 = input.LA(1);
+ if ( (LA137_0==K_OF) ) {
+ alt137=1;
+ }
+ switch (alt137) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1148:9: K_OF roleName[grantee]
+ {
+ match(input,K_OF,FOLLOW_K_OF_in_listRolesStatement7170);
+ pushFollow(FOLLOW_roleName_in_listRolesStatement7172);
+ roleName(grantee);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1149:7: ( K_NORECURSIVE )?
+ int alt138=2;
+ int LA138_0 = input.LA(1);
+ if ( (LA138_0==K_NORECURSIVE) ) {
+ alt138=1;
+ }
+ switch (alt138) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1149:9: K_NORECURSIVE
+ {
+ match(input,K_NORECURSIVE,FOLLOW_K_NORECURSIVE_in_listRolesStatement7185);
+ recursive = false;
+ }
+ break;
+
+ }
+
+ stmt = new ListRolesStatement(grantee, recursive);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return stmt;
+ }
+ // $ANTLR end "listRolesStatement"
+
+
+
+ // $ANTLR start "roleOptions"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1153:1: roleOptions[RoleOptions opts] : roleOption[opts] ( K_AND roleOption[opts] )* ;
+ public final void roleOptions(RoleOptions opts) throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1154:5: ( roleOption[opts] ( K_AND roleOption[opts] )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1154:7: roleOption[opts] ( K_AND roleOption[opts] )*
+ {
+ pushFollow(FOLLOW_roleOption_in_roleOptions7216);
+ roleOption(opts);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1154:24: ( K_AND roleOption[opts] )*
+ loop139:
+ while (true) {
+ int alt139=2;
+ int LA139_0 = input.LA(1);
+ if ( (LA139_0==K_AND) ) {
+ alt139=1;
+ }
+
+ switch (alt139) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1154:25: K_AND roleOption[opts]
+ {
+ match(input,K_AND,FOLLOW_K_AND_in_roleOptions7220);
+ pushFollow(FOLLOW_roleOption_in_roleOptions7222);
+ roleOption(opts);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop139;
+ }
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "roleOptions"
+
+
+
+ // $ANTLR start "roleOption"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1157:1: roleOption[RoleOptions opts] : ( K_PASSWORD '=' v= STRING_LITERAL | K_OPTIONS '=' m= mapLiteral | K_SUPERUSER '=' b= BOOLEAN | K_LOGIN '=' b= BOOLEAN );
+ public final void roleOption(RoleOptions opts) throws RecognitionException {
+ Token v=null;
+ Token b=null;
+ Maps.Literal m =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1158:5: ( K_PASSWORD '=' v= STRING_LITERAL | K_OPTIONS '=' m= mapLiteral | K_SUPERUSER '=' b= BOOLEAN | K_LOGIN '=' b= BOOLEAN )
+ int alt140=4;
+ switch ( input.LA(1) ) {
+ case K_PASSWORD:
+ {
+ alt140=1;
+ }
+ break;
+ case K_OPTIONS:
+ {
+ alt140=2;
+ }
+ break;
+ case K_SUPERUSER:
+ {
+ alt140=3;
+ }
+ break;
+ case K_LOGIN:
+ {
+ alt140=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 140, 0, input);
+ throw nvae;
+ }
+ switch (alt140) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1158:8: K_PASSWORD '=' v= STRING_LITERAL
+ {
+ match(input,K_PASSWORD,FOLLOW_K_PASSWORD_in_roleOption7244);
+ match(input,184,FOLLOW_184_in_roleOption7246);
+ v=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_roleOption7250);
+ opts.setOption(IRoleManager.Option.PASSWORD, (v!=null?v.getText():null));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1159:8: K_OPTIONS '=' m= mapLiteral
+ {
+ match(input,K_OPTIONS,FOLLOW_K_OPTIONS_in_roleOption7261);
+ match(input,184,FOLLOW_184_in_roleOption7263);
+ pushFollow(FOLLOW_mapLiteral_in_roleOption7267);
+ m=mapLiteral();
+ state._fsp--;
+
+ opts.setOption(IRoleManager.Option.OPTIONS, convertPropertyMap(m));
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1160:8: K_SUPERUSER '=' b= BOOLEAN
+ {
+ match(input,K_SUPERUSER,FOLLOW_K_SUPERUSER_in_roleOption7278);
+ match(input,184,FOLLOW_184_in_roleOption7280);
+ b=(Token)match(input,BOOLEAN,FOLLOW_BOOLEAN_in_roleOption7284);
+ opts.setOption(IRoleManager.Option.SUPERUSER, Boolean.valueOf((b!=null?b.getText():null)));
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1161:8: K_LOGIN '=' b= BOOLEAN
+ {
+ match(input,K_LOGIN,FOLLOW_K_LOGIN_in_roleOption7295);
+ match(input,184,FOLLOW_184_in_roleOption7297);
+ b=(Token)match(input,BOOLEAN,FOLLOW_BOOLEAN_in_roleOption7301);
+ opts.setOption(IRoleManager.Option.LOGIN, Boolean.valueOf((b!=null?b.getText():null)));
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "roleOption"
+
+
+
+ // $ANTLR start "userPassword"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1165:1: userPassword[RoleOptions opts] : K_PASSWORD v= STRING_LITERAL ;
+ public final void userPassword(RoleOptions opts) throws RecognitionException {
+ Token v=null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1166:5: ( K_PASSWORD v= STRING_LITERAL )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1166:8: K_PASSWORD v= STRING_LITERAL
+ {
+ match(input,K_PASSWORD,FOLLOW_K_PASSWORD_in_userPassword7323);
+ v=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_userPassword7327);
+ opts.setOption(IRoleManager.Option.PASSWORD, (v!=null?v.getText():null));
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "userPassword"
+
+
+
+ // $ANTLR start "cident"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1174:1: cident returns [ColumnIdentifier.Raw id] : (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword );
+ public final ColumnIdentifier.Raw cident() throws RecognitionException {
+ ColumnIdentifier.Raw id = null;
+
+
+ Token t=null;
+ String k =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1175:5: (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword )
+ int alt141=3;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt141=1;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt141=2;
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ {
+ alt141=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 141, 0, input);
+ throw nvae;
+ }
+ switch (alt141) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1175:7: t= IDENT
+ {
+ t=(Token)match(input,IDENT,FOLLOW_IDENT_in_cident7358);
+ id = new ColumnIdentifier.Literal((t!=null?t.getText():null), false);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1176:7: t= QUOTED_NAME
+ {
+ t=(Token)match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_cident7383);
+ id = new ColumnIdentifier.Literal((t!=null?t.getText():null), true);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1177:7: k= unreserved_keyword
+ {
+ pushFollow(FOLLOW_unreserved_keyword_in_cident7402);
+ k=unreserved_keyword();
+ state._fsp--;
+
+ id = new ColumnIdentifier.Literal(k, false);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return id;
+ }
+ // $ANTLR end "cident"
+
+
+
+ // $ANTLR start "ident"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1181:1: ident returns [ColumnIdentifier id] : (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword );
+ public final ColumnIdentifier ident() throws RecognitionException {
+ ColumnIdentifier id = null;
+
+
+ Token t=null;
+ String k =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1182:5: (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword )
+ int alt142=3;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt142=1;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt142=2;
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ {
+ alt142=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 142, 0, input);
+ throw nvae;
+ }
+ switch (alt142) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1182:7: t= IDENT
+ {
+ t=(Token)match(input,IDENT,FOLLOW_IDENT_in_ident7428);
+ id = ColumnIdentifier.getInterned((t!=null?t.getText():null), false);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1183:7: t= QUOTED_NAME
+ {
+ t=(Token)match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_ident7453);
+ id = ColumnIdentifier.getInterned((t!=null?t.getText():null), true);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1184:7: k= unreserved_keyword
+ {
+ pushFollow(FOLLOW_unreserved_keyword_in_ident7472);
+ k=unreserved_keyword();
+ state._fsp--;
+
+ id = ColumnIdentifier.getInterned(k, false);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return id;
+ }
+ // $ANTLR end "ident"
+
+
+
+ // $ANTLR start "noncol_ident"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1188:1: noncol_ident returns [ColumnIdentifier id] : (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword );
+ public final ColumnIdentifier noncol_ident() throws RecognitionException {
+ ColumnIdentifier id = null;
+
+
+ Token t=null;
+ String k =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1189:5: (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword )
+ int alt143=3;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt143=1;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt143=2;
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ {
+ alt143=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 143, 0, input);
+ throw nvae;
+ }
+ switch (alt143) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1189:7: t= IDENT
+ {
+ t=(Token)match(input,IDENT,FOLLOW_IDENT_in_noncol_ident7498);
+ id = new ColumnIdentifier((t!=null?t.getText():null), false);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1190:7: t= QUOTED_NAME
+ {
+ t=(Token)match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_noncol_ident7523);
+ id = new ColumnIdentifier((t!=null?t.getText():null), true);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1191:7: k= unreserved_keyword
+ {
+ pushFollow(FOLLOW_unreserved_keyword_in_noncol_ident7542);
+ k=unreserved_keyword();
+ state._fsp--;
+
+ id = new ColumnIdentifier(k, false);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return id;
+ }
+ // $ANTLR end "noncol_ident"
+
+
+
+ // $ANTLR start "keyspaceName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1195:1: keyspaceName returns [String id] : ksName[name] ;
+ public final String keyspaceName() throws RecognitionException {
+ String id = null;
+
+
+ CFName name = new CFName();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1197:5: ( ksName[name] )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1197:7: ksName[name]
+ {
+ pushFollow(FOLLOW_ksName_in_keyspaceName7575);
+ ksName(name);
+ state._fsp--;
+
+ id = name.getKeyspace();
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return id;
+ }
+ // $ANTLR end "keyspaceName"
+
+
+
+ // $ANTLR start "indexName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1200:1: indexName returns [IndexName name] : ( ksName[name] '.' )? idxName[name] ;
+ public final IndexName indexName() throws RecognitionException {
+ IndexName name = null;
+
+
+ name = new IndexName();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1202:5: ( ( ksName[name] '.' )? idxName[name] )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1202:7: ( ksName[name] '.' )? idxName[name]
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1202:7: ( ksName[name] '.' )?
+ int alt144=2;
+ alt144 = dfa144.predict(input);
+ switch (alt144) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1202:8: ksName[name] '.'
+ {
+ pushFollow(FOLLOW_ksName_in_indexName7609);
+ ksName(name);
+ state._fsp--;
+
+ match(input,179,FOLLOW_179_in_indexName7612);
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_idxName_in_indexName7616);
+ idxName(name);
+ state._fsp--;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return name;
+ }
+ // $ANTLR end "indexName"
+
+
+
+ // $ANTLR start "columnFamilyName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1205:1: columnFamilyName returns [CFName name] : ( ksName[name] '.' )? cfName[name] ;
+ public final CFName columnFamilyName() throws RecognitionException {
+ CFName name = null;
+
+
+ name = new CFName();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1207:5: ( ( ksName[name] '.' )? cfName[name] )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1207:7: ( ksName[name] '.' )? cfName[name]
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1207:7: ( ksName[name] '.' )?
+ int alt145=2;
+ alt145 = dfa145.predict(input);
+ switch (alt145) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1207:8: ksName[name] '.'
+ {
+ pushFollow(FOLLOW_ksName_in_columnFamilyName7648);
+ ksName(name);
+ state._fsp--;
+
+ match(input,179,FOLLOW_179_in_columnFamilyName7651);
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_cfName_in_columnFamilyName7655);
+ cfName(name);
+ state._fsp--;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return name;
+ }
+ // $ANTLR end "columnFamilyName"
+
+
+
+ // $ANTLR start "userTypeName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1210:1: userTypeName returns [UTName name] : (ks= noncol_ident '.' )? ut= non_type_ident ;
+ public final UTName userTypeName() throws RecognitionException {
+ UTName name = null;
+
+
+ ColumnIdentifier ks =null;
+ ColumnIdentifier ut =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1211:5: ( (ks= noncol_ident '.' )? ut= non_type_ident )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1211:7: (ks= noncol_ident '.' )? ut= non_type_ident
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1211:7: (ks= noncol_ident '.' )?
+ int alt146=2;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ int LA146_1 = input.LA(2);
+ if ( (LA146_1==179) ) {
+ alt146=1;
+ }
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ int LA146_2 = input.LA(2);
+ if ( (LA146_2==179) ) {
+ alt146=1;
+ }
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_CUSTOM:
+ case K_DISTINCT:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_JSON:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TRIGGER:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_VALUES:
+ {
+ int LA146_3 = input.LA(2);
+ if ( (LA146_3==179) ) {
+ alt146=1;
+ }
+ }
+ break;
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DOUBLE:
+ case K_FLOAT:
+ case K_INET:
+ case K_INT:
+ case K_SMALLINT:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TTL:
+ case K_UUID:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ {
+ alt146=1;
+ }
+ break;
+ case K_KEY:
+ {
+ int LA146_5 = input.LA(2);
+ if ( (LA146_5==179) ) {
+ alt146=1;
+ }
+ }
+ break;
+ }
+ switch (alt146) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1211:8: ks= noncol_ident '.'
+ {
+ pushFollow(FOLLOW_noncol_ident_in_userTypeName7680);
+ ks=noncol_ident();
+ state._fsp--;
+
+ match(input,179,FOLLOW_179_in_userTypeName7682);
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_non_type_ident_in_userTypeName7688);
+ ut=non_type_ident();
+ state._fsp--;
+
+ return new UTName(ks, ut);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return name;
+ }
+ // $ANTLR end "userTypeName"
+
+
+
+ // $ANTLR start "userOrRoleName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1214:1: userOrRoleName returns [RoleName name] : roleName[name] ;
+ public final RoleName userOrRoleName() throws RecognitionException {
+ RoleName name = null;
+
+
+ name = new RoleName();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1216:5: ( roleName[name] )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1216:7: roleName[name]
+ {
+ pushFollow(FOLLOW_roleName_in_userOrRoleName7720);
+ roleName(name);
+ state._fsp--;
+
+ return name;
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return name;
+ }
+ // $ANTLR end "userOrRoleName"
+
+
+
+ // $ANTLR start "ksName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1219:1: ksName[KeyspaceElementName name] : (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword | QMARK );
+ public final void ksName(KeyspaceElementName name) throws RecognitionException {
+ Token t=null;
+ String k =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1220:5: (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword | QMARK )
+ int alt147=4;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt147=1;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt147=2;
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ {
+ alt147=3;
+ }
+ break;
+ case QMARK:
+ {
+ alt147=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 147, 0, input);
+ throw nvae;
+ }
+ switch (alt147) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1220:7: t= IDENT
+ {
+ t=(Token)match(input,IDENT,FOLLOW_IDENT_in_ksName7743);
+ name.setKeyspace((t!=null?t.getText():null), false);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1221:7: t= QUOTED_NAME
+ {
+ t=(Token)match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_ksName7768);
+ name.setKeyspace((t!=null?t.getText():null), true);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1222:7: k= unreserved_keyword
+ {
+ pushFollow(FOLLOW_unreserved_keyword_in_ksName7787);
+ k=unreserved_keyword();
+ state._fsp--;
+
+ name.setKeyspace(k, false);
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1223:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_ksName7797);
+ addRecognitionError("Bind variables cannot be used for keyspace names");
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "ksName"
+
+
+
+ // $ANTLR start "cfName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1226:1: cfName[CFName name] : (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword | QMARK );
+ public final void cfName(CFName name) throws RecognitionException {
+ Token t=null;
+ String k =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1227:5: (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword | QMARK )
+ int alt148=4;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt148=1;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt148=2;
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ {
+ alt148=3;
+ }
+ break;
+ case QMARK:
+ {
+ alt148=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 148, 0, input);
+ throw nvae;
+ }
+ switch (alt148) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1227:7: t= IDENT
+ {
+ t=(Token)match(input,IDENT,FOLLOW_IDENT_in_cfName7819);
+ name.setColumnFamily((t!=null?t.getText():null), false);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1228:7: t= QUOTED_NAME
+ {
+ t=(Token)match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_cfName7844);
+ name.setColumnFamily((t!=null?t.getText():null), true);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1229:7: k= unreserved_keyword
+ {
+ pushFollow(FOLLOW_unreserved_keyword_in_cfName7863);
+ k=unreserved_keyword();
+ state._fsp--;
+
+ name.setColumnFamily(k, false);
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1230:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_cfName7873);
+ addRecognitionError("Bind variables cannot be used for table names");
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "cfName"
+
+
+
+ // $ANTLR start "idxName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1233:1: idxName[IndexName name] : (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword | QMARK );
+ public final void idxName(IndexName name) throws RecognitionException {
+ Token t=null;
+ String k =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1234:5: (t= IDENT |t= QUOTED_NAME |k= unreserved_keyword | QMARK )
+ int alt149=4;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt149=1;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt149=2;
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ {
+ alt149=3;
+ }
+ break;
+ case QMARK:
+ {
+ alt149=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 149, 0, input);
+ throw nvae;
+ }
+ switch (alt149) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1234:7: t= IDENT
+ {
+ t=(Token)match(input,IDENT,FOLLOW_IDENT_in_idxName7895);
+ name.setIndex((t!=null?t.getText():null), false);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1235:7: t= QUOTED_NAME
+ {
+ t=(Token)match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_idxName7920);
+ name.setIndex((t!=null?t.getText():null), true);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1236:7: k= unreserved_keyword
+ {
+ pushFollow(FOLLOW_unreserved_keyword_in_idxName7939);
+ k=unreserved_keyword();
+ state._fsp--;
+
+ name.setIndex(k, false);
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1237:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_idxName7949);
+ addRecognitionError("Bind variables cannot be used for index names");
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "idxName"
+
+
+
+ // $ANTLR start "roleName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1240:1: roleName[RoleName name] : (t= IDENT |s= STRING_LITERAL |t= QUOTED_NAME |k= unreserved_keyword | QMARK );
+ public final void roleName(RoleName name) throws RecognitionException {
+ Token t=null;
+ Token s=null;
+ String k =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1241:5: (t= IDENT |s= STRING_LITERAL |t= QUOTED_NAME |k= unreserved_keyword | QMARK )
+ int alt150=5;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt150=1;
+ }
+ break;
+ case STRING_LITERAL:
+ {
+ alt150=2;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt150=3;
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNT:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEY:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TTL:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ case K_WRITETIME:
+ {
+ alt150=4;
+ }
+ break;
+ case QMARK:
+ {
+ alt150=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 150, 0, input);
+ throw nvae;
+ }
+ switch (alt150) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1241:7: t= IDENT
+ {
+ t=(Token)match(input,IDENT,FOLLOW_IDENT_in_roleName7971);
+ name.setName((t!=null?t.getText():null), false);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1242:7: s= STRING_LITERAL
+ {
+ s=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_roleName7996);
+ name.setName((s!=null?s.getText():null), true);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1243:7: t= QUOTED_NAME
+ {
+ t=(Token)match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_roleName8012);
+ name.setName((t!=null?t.getText():null), true);
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1244:7: k= unreserved_keyword
+ {
+ pushFollow(FOLLOW_unreserved_keyword_in_roleName8031);
+ k=unreserved_keyword();
+ state._fsp--;
+
+ name.setName(k, false);
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1245:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_roleName8041);
+ addRecognitionError("Bind variables cannot be used for role names");
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "roleName"
+
+
+
+ // $ANTLR start "constant"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1248:1: constant returns [Constants.Literal constant] : (t= STRING_LITERAL |t= INTEGER |t= FLOAT |t= BOOLEAN |t= UUID |t= HEXNUMBER | ( '-' )? t= ( K_NAN | K_INFINITY ) );
+ public final Constants.Literal constant() throws RecognitionException {
+ Constants.Literal constant = null;
+
+
+ Token t=null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1249:5: (t= STRING_LITERAL |t= INTEGER |t= FLOAT |t= BOOLEAN |t= UUID |t= HEXNUMBER | ( '-' )? t= ( K_NAN | K_INFINITY ) )
+ int alt152=7;
+ switch ( input.LA(1) ) {
+ case STRING_LITERAL:
+ {
+ alt152=1;
+ }
+ break;
+ case INTEGER:
+ {
+ alt152=2;
+ }
+ break;
+ case FLOAT:
+ {
+ alt152=3;
+ }
+ break;
+ case BOOLEAN:
+ {
+ alt152=4;
+ }
+ break;
+ case UUID:
+ {
+ alt152=5;
+ }
+ break;
+ case HEXNUMBER:
+ {
+ alt152=6;
+ }
+ break;
+ case K_INFINITY:
+ case K_NAN:
+ case 178:
+ {
+ alt152=7;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 152, 0, input);
+ throw nvae;
+ }
+ switch (alt152) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1249:7: t= STRING_LITERAL
+ {
+ t=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_constant8066);
+ constant = Constants.Literal.string((t!=null?t.getText():null));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1250:7: t= INTEGER
+ {
+ t=(Token)match(input,INTEGER,FOLLOW_INTEGER_in_constant8078);
+ constant = Constants.Literal.integer((t!=null?t.getText():null));
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1251:7: t= FLOAT
+ {
+ t=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_constant8097);
+ constant = Constants.Literal.floatingPoint((t!=null?t.getText():null));
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1252:7: t= BOOLEAN
+ {
+ t=(Token)match(input,BOOLEAN,FOLLOW_BOOLEAN_in_constant8118);
+ constant = Constants.Literal.bool((t!=null?t.getText():null));
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1253:7: t= UUID
+ {
+ t=(Token)match(input,UUID,FOLLOW_UUID_in_constant8137);
+ constant = Constants.Literal.uuid((t!=null?t.getText():null));
+ }
+ break;
+ case 6 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1254:7: t= HEXNUMBER
+ {
+ t=(Token)match(input,HEXNUMBER,FOLLOW_HEXNUMBER_in_constant8159);
+ constant = Constants.Literal.hex((t!=null?t.getText():null));
+ }
+ break;
+ case 7 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1255:7: ( '-' )? t= ( K_NAN | K_INFINITY )
+ {
+ String sign="";
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1255:27: ( '-' )?
+ int alt151=2;
+ int LA151_0 = input.LA(1);
+ if ( (LA151_0==178) ) {
+ alt151=1;
+ }
+ switch (alt151) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1255:28: '-'
+ {
+ match(input,178,FOLLOW_178_in_constant8177);
+ sign = "-";
+ }
+ break;
+
+ }
+
+ t=input.LT(1);
+ if ( input.LA(1)==K_INFINITY||input.LA(1)==K_NAN ) {
+ input.consume();
+ state.errorRecovery=false;
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ throw mse;
+ }
+ constant = Constants.Literal.floatingPoint(sign + (t!=null?t.getText():null));
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return constant;
+ }
+ // $ANTLR end "constant"
+
+
+
+ // $ANTLR start "mapLiteral"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1258:1: mapLiteral returns [Maps.Literal map] : '{' (k1= term ':' v1= term ( ',' kn= term ':' vn= term )* )? '}' ;
+ public final Maps.Literal mapLiteral() throws RecognitionException {
+ Maps.Literal map = null;
+
+
+ Term.Raw k1 =null;
+ Term.Raw v1 =null;
+ Term.Raw kn =null;
+ Term.Raw vn =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1259:5: ( '{' (k1= term ':' v1= term ( ',' kn= term ':' vn= term )* )? '}' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1259:7: '{' (k1= term ':' v1= term ( ',' kn= term ':' vn= term )* )? '}'
+ {
+ match(input,191,FOLLOW_191_in_mapLiteral8215);
+ List> m = new ArrayList>();
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1260:11: (k1= term ':' v1= term ( ',' kn= term ':' vn= term )* )?
+ int alt154=2;
+ int LA154_0 = input.LA(1);
+ if ( (LA154_0==BOOLEAN||LA154_0==FLOAT||LA154_0==HEXNUMBER||(LA154_0 >= IDENT && LA154_0 <= INTEGER)||(LA154_0 >= K_AGGREGATE && LA154_0 <= K_ALL)||LA154_0==K_AS||LA154_0==K_ASCII||(LA154_0 >= K_BIGINT && LA154_0 <= K_BOOLEAN)||(LA154_0 >= K_CALLED && LA154_0 <= K_CLUSTERING)||(LA154_0 >= K_COMPACT && LA154_0 <= K_COUNTER)||(LA154_0 >= K_CUSTOM && LA154_0 <= K_DECIMAL)||(LA154_0 >= K_DISTINCT && LA154_0 <= K_DOUBLE)||(LA154_0 >= K_EXISTS && LA154_0 <= K_FLOAT)||LA154_0==K_FROZEN||(LA154_0 >= K_FUNCTION && LA154_0 <= K_FUNCTIONS)||(LA154_0 >= K_INET && LA154_0 <= K_INPUT)||LA154_0==K_INT||(LA154_0 >= K_JSON && LA154_0 <= K_KEYS)||(LA154_0 >= K_KEYSPACES && LA154_0 <= K_LIKE)||(LA154_0 >= K_LIST && LA154_0 <= K_MAP)||(LA154_0 >= K_NAN && LA154_0 <= K_NOLOGIN)||LA154_0==K_NOSUPERUSER||LA154_0==K_NULL||LA154_0==K_OPTIONS||(LA154_0 >= K_PARTITION && LA154_0 <= K_PERMISSIONS)||LA154_0==K_RETURNS||(LA154_0 >= K_ROLE && LA154_0 <= K_ROLES)||(LA154_0 >= K_SFUNC && LA154_0 <= K_TINYINT)||(LA154_0 >= K_TOKEN && LA154_0 <= K_TRIGGER)||(LA154_0 >= K_TTL && LA154_0 <= K_TYPE)||(LA154_0 >= K_USER && LA154_0 <= K_USERS)||(LA154_0 >= K_UUID && LA154_0 <= K_VARINT)||LA154_0==K_WRITETIME||(LA154_0 >= QMARK && LA154_0 <= QUOTED_NAME)||LA154_0==STRING_LITERAL||LA154_0==UUID||LA154_0==174||LA154_0==178||LA154_0==180||LA154_0==187||LA154_0==191) ) {
+ alt154=1;
+ }
+ switch (alt154) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1260:13: k1= term ':' v1= term ( ',' kn= term ':' vn= term )*
+ {
+ pushFollow(FOLLOW_term_in_mapLiteral8233);
+ k1=term();
+ state._fsp--;
+
+ match(input,180,FOLLOW_180_in_mapLiteral8235);
+ pushFollow(FOLLOW_term_in_mapLiteral8239);
+ v1=term();
+ state._fsp--;
+
+ m.add(Pair.create(k1, v1));
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1260:65: ( ',' kn= term ':' vn= term )*
+ loop153:
+ while (true) {
+ int alt153=2;
+ int LA153_0 = input.LA(1);
+ if ( (LA153_0==177) ) {
+ alt153=1;
+ }
+
+ switch (alt153) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1260:67: ',' kn= term ':' vn= term
+ {
+ match(input,177,FOLLOW_177_in_mapLiteral8245);
+ pushFollow(FOLLOW_term_in_mapLiteral8249);
+ kn=term();
+ state._fsp--;
+
+ match(input,180,FOLLOW_180_in_mapLiteral8251);
+ pushFollow(FOLLOW_term_in_mapLiteral8255);
+ vn=term();
+ state._fsp--;
+
+ m.add(Pair.create(kn, vn));
+ }
+ break;
+
+ default :
+ break loop153;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,192,FOLLOW_192_in_mapLiteral8271);
+ map = new Maps.Literal(m);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return map;
+ }
+ // $ANTLR end "mapLiteral"
+
+
+
+ // $ANTLR start "setOrMapLiteral"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1264:1: setOrMapLiteral[Term.Raw t] returns [Term.Raw value] : ( ':' v= term ( ',' kn= term ':' vn= term )* | ( ',' tn= term )* );
+ public final Term.Raw setOrMapLiteral(Term.Raw t) throws RecognitionException {
+ Term.Raw value = null;
+
+
+ Term.Raw v =null;
+ Term.Raw kn =null;
+ Term.Raw vn =null;
+ Term.Raw tn =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1265:5: ( ':' v= term ( ',' kn= term ':' vn= term )* | ( ',' tn= term )* )
+ int alt157=2;
+ int LA157_0 = input.LA(1);
+ if ( (LA157_0==180) ) {
+ alt157=1;
+ }
+ else if ( (LA157_0==177||LA157_0==192) ) {
+ alt157=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 157, 0, input);
+ throw nvae;
+ }
+
+ switch (alt157) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1265:7: ':' v= term ( ',' kn= term ':' vn= term )*
+ {
+ match(input,180,FOLLOW_180_in_setOrMapLiteral8295);
+ pushFollow(FOLLOW_term_in_setOrMapLiteral8299);
+ v=term();
+ state._fsp--;
+
+ List> m = new ArrayList>(); m.add(Pair.create(t, v));
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1266:11: ( ',' kn= term ':' vn= term )*
+ loop155:
+ while (true) {
+ int alt155=2;
+ int LA155_0 = input.LA(1);
+ if ( (LA155_0==177) ) {
+ alt155=1;
+ }
+
+ switch (alt155) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1266:13: ',' kn= term ':' vn= term
+ {
+ match(input,177,FOLLOW_177_in_setOrMapLiteral8315);
+ pushFollow(FOLLOW_term_in_setOrMapLiteral8319);
+ kn=term();
+ state._fsp--;
+
+ match(input,180,FOLLOW_180_in_setOrMapLiteral8321);
+ pushFollow(FOLLOW_term_in_setOrMapLiteral8325);
+ vn=term();
+ state._fsp--;
+
+ m.add(Pair.create(kn, vn));
+ }
+ break;
+
+ default :
+ break loop155;
+ }
+ }
+
+ value = new Maps.Literal(m);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1268:7: ( ',' tn= term )*
+ {
+ List s = new ArrayList(); s.add(t);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1269:11: ( ',' tn= term )*
+ loop156:
+ while (true) {
+ int alt156=2;
+ int LA156_0 = input.LA(1);
+ if ( (LA156_0==177) ) {
+ alt156=1;
+ }
+
+ switch (alt156) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1269:13: ',' tn= term
+ {
+ match(input,177,FOLLOW_177_in_setOrMapLiteral8360);
+ pushFollow(FOLLOW_term_in_setOrMapLiteral8364);
+ tn=term();
+ state._fsp--;
+
+ s.add(tn);
+ }
+ break;
+
+ default :
+ break loop156;
+ }
+ }
+
+ value = new Sets.Literal(s);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "setOrMapLiteral"
+
+
+
+ // $ANTLR start "collectionLiteral"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1273:1: collectionLiteral returns [Term.Raw value] : ( '[' (t1= term ( ',' tn= term )* )? ']' | '{' t= term v= setOrMapLiteral[t] '}' | '{' '}' );
+ public final Term.Raw collectionLiteral() throws RecognitionException {
+ Term.Raw value = null;
+
+
+ Term.Raw t1 =null;
+ Term.Raw tn =null;
+ Term.Raw t =null;
+ Term.Raw v =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1274:5: ( '[' (t1= term ( ',' tn= term )* )? ']' | '{' t= term v= setOrMapLiteral[t] '}' | '{' '}' )
+ int alt160=3;
+ int LA160_0 = input.LA(1);
+ if ( (LA160_0==187) ) {
+ alt160=1;
+ }
+ else if ( (LA160_0==191) ) {
+ int LA160_2 = input.LA(2);
+ if ( (LA160_2==192) ) {
+ alt160=3;
+ }
+ else if ( (LA160_2==BOOLEAN||LA160_2==FLOAT||LA160_2==HEXNUMBER||(LA160_2 >= IDENT && LA160_2 <= INTEGER)||(LA160_2 >= K_AGGREGATE && LA160_2 <= K_ALL)||LA160_2==K_AS||LA160_2==K_ASCII||(LA160_2 >= K_BIGINT && LA160_2 <= K_BOOLEAN)||(LA160_2 >= K_CALLED && LA160_2 <= K_CLUSTERING)||(LA160_2 >= K_COMPACT && LA160_2 <= K_COUNTER)||(LA160_2 >= K_CUSTOM && LA160_2 <= K_DECIMAL)||(LA160_2 >= K_DISTINCT && LA160_2 <= K_DOUBLE)||(LA160_2 >= K_EXISTS && LA160_2 <= K_FLOAT)||LA160_2==K_FROZEN||(LA160_2 >= K_FUNCTION && LA160_2 <= K_FUNCTIONS)||(LA160_2 >= K_INET && LA160_2 <= K_INPUT)||LA160_2==K_INT||(LA160_2 >= K_JSON && LA160_2 <= K_KEYS)||(LA160_2 >= K_KEYSPACES && LA160_2 <= K_LIKE)||(LA160_2 >= K_LIST && LA160_2 <= K_MAP)||(LA160_2 >= K_NAN && LA160_2 <= K_NOLOGIN)||LA160_2==K_NOSUPERUSER||LA160_2==K_NULL||LA160_2==K_OPTIONS||(LA160_2 >= K_PARTITION && LA160_2 <= K_PERMISSIONS)||LA160_2==K_RETURNS||(LA160_2 >= K_ROLE && LA160_2 <= K_ROLES)||(LA160_2 >= K_SFUNC && LA160_2 <= K_TINYINT)||(LA160_2 >= K_TOKEN && LA160_2 <= K_TRIGGER)||(LA160_2 >= K_TTL && LA160_2 <= K_TYPE)||(LA160_2 >= K_USER && LA160_2 <= K_USERS)||(LA160_2 >= K_UUID && LA160_2 <= K_VARINT)||LA160_2==K_WRITETIME||(LA160_2 >= QMARK && LA160_2 <= QUOTED_NAME)||LA160_2==STRING_LITERAL||LA160_2==UUID||LA160_2==174||LA160_2==178||LA160_2==180||LA160_2==187||LA160_2==191) ) {
+ alt160=2;
+ }
+
+ else {
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 160, 2, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 160, 0, input);
+ throw nvae;
+ }
+
+ switch (alt160) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1274:7: '[' (t1= term ( ',' tn= term )* )? ']'
+ {
+ match(input,187,FOLLOW_187_in_collectionLiteral8398);
+ List l = new ArrayList();
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1275:11: (t1= term ( ',' tn= term )* )?
+ int alt159=2;
+ int LA159_0 = input.LA(1);
+ if ( (LA159_0==BOOLEAN||LA159_0==FLOAT||LA159_0==HEXNUMBER||(LA159_0 >= IDENT && LA159_0 <= INTEGER)||(LA159_0 >= K_AGGREGATE && LA159_0 <= K_ALL)||LA159_0==K_AS||LA159_0==K_ASCII||(LA159_0 >= K_BIGINT && LA159_0 <= K_BOOLEAN)||(LA159_0 >= K_CALLED && LA159_0 <= K_CLUSTERING)||(LA159_0 >= K_COMPACT && LA159_0 <= K_COUNTER)||(LA159_0 >= K_CUSTOM && LA159_0 <= K_DECIMAL)||(LA159_0 >= K_DISTINCT && LA159_0 <= K_DOUBLE)||(LA159_0 >= K_EXISTS && LA159_0 <= K_FLOAT)||LA159_0==K_FROZEN||(LA159_0 >= K_FUNCTION && LA159_0 <= K_FUNCTIONS)||(LA159_0 >= K_INET && LA159_0 <= K_INPUT)||LA159_0==K_INT||(LA159_0 >= K_JSON && LA159_0 <= K_KEYS)||(LA159_0 >= K_KEYSPACES && LA159_0 <= K_LIKE)||(LA159_0 >= K_LIST && LA159_0 <= K_MAP)||(LA159_0 >= K_NAN && LA159_0 <= K_NOLOGIN)||LA159_0==K_NOSUPERUSER||LA159_0==K_NULL||LA159_0==K_OPTIONS||(LA159_0 >= K_PARTITION && LA159_0 <= K_PERMISSIONS)||LA159_0==K_RETURNS||(LA159_0 >= K_ROLE && LA159_0 <= K_ROLES)||(LA159_0 >= K_SFUNC && LA159_0 <= K_TINYINT)||(LA159_0 >= K_TOKEN && LA159_0 <= K_TRIGGER)||(LA159_0 >= K_TTL && LA159_0 <= K_TYPE)||(LA159_0 >= K_USER && LA159_0 <= K_USERS)||(LA159_0 >= K_UUID && LA159_0 <= K_VARINT)||LA159_0==K_WRITETIME||(LA159_0 >= QMARK && LA159_0 <= QUOTED_NAME)||LA159_0==STRING_LITERAL||LA159_0==UUID||LA159_0==174||LA159_0==178||LA159_0==180||LA159_0==187||LA159_0==191) ) {
+ alt159=1;
+ }
+ switch (alt159) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1275:13: t1= term ( ',' tn= term )*
+ {
+ pushFollow(FOLLOW_term_in_collectionLiteral8416);
+ t1=term();
+ state._fsp--;
+
+ l.add(t1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1275:36: ( ',' tn= term )*
+ loop158:
+ while (true) {
+ int alt158=2;
+ int LA158_0 = input.LA(1);
+ if ( (LA158_0==177) ) {
+ alt158=1;
+ }
+
+ switch (alt158) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1275:38: ',' tn= term
+ {
+ match(input,177,FOLLOW_177_in_collectionLiteral8422);
+ pushFollow(FOLLOW_term_in_collectionLiteral8426);
+ tn=term();
+ state._fsp--;
+
+ l.add(tn);
+ }
+ break;
+
+ default :
+ break loop158;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,189,FOLLOW_189_in_collectionLiteral8442);
+ value = new Lists.Literal(l);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1277:7: '{' t= term v= setOrMapLiteral[t] '}'
+ {
+ match(input,191,FOLLOW_191_in_collectionLiteral8452);
+ pushFollow(FOLLOW_term_in_collectionLiteral8456);
+ t=term();
+ state._fsp--;
+
+ pushFollow(FOLLOW_setOrMapLiteral_in_collectionLiteral8460);
+ v=setOrMapLiteral(t);
+ state._fsp--;
+
+ value = v;
+ match(input,192,FOLLOW_192_in_collectionLiteral8465);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1280:7: '{' '}'
+ {
+ match(input,191,FOLLOW_191_in_collectionLiteral8483);
+ match(input,192,FOLLOW_192_in_collectionLiteral8485);
+ value = new Sets.Literal(Collections.emptyList());
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "collectionLiteral"
+
+
+
+ // $ANTLR start "usertypeLiteral"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1283:1: usertypeLiteral returns [UserTypes.Literal ut] : '{' k1= noncol_ident ':' v1= term ( ',' kn= noncol_ident ':' vn= term )* '}' ;
+ public final UserTypes.Literal usertypeLiteral() throws RecognitionException {
+ UserTypes.Literal ut = null;
+
+
+ ColumnIdentifier k1 =null;
+ Term.Raw v1 =null;
+ ColumnIdentifier kn =null;
+ Term.Raw vn =null;
+
+ Map m = new HashMap();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1287:5: ( '{' k1= noncol_ident ':' v1= term ( ',' kn= noncol_ident ':' vn= term )* '}' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1287:7: '{' k1= noncol_ident ':' v1= term ( ',' kn= noncol_ident ':' vn= term )* '}'
+ {
+ match(input,191,FOLLOW_191_in_usertypeLiteral8529);
+ pushFollow(FOLLOW_noncol_ident_in_usertypeLiteral8533);
+ k1=noncol_ident();
+ state._fsp--;
+
+ match(input,180,FOLLOW_180_in_usertypeLiteral8535);
+ pushFollow(FOLLOW_term_in_usertypeLiteral8539);
+ v1=term();
+ state._fsp--;
+
+ m.put(k1, v1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1287:58: ( ',' kn= noncol_ident ':' vn= term )*
+ loop161:
+ while (true) {
+ int alt161=2;
+ int LA161_0 = input.LA(1);
+ if ( (LA161_0==177) ) {
+ alt161=1;
+ }
+
+ switch (alt161) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1287:60: ',' kn= noncol_ident ':' vn= term
+ {
+ match(input,177,FOLLOW_177_in_usertypeLiteral8545);
+ pushFollow(FOLLOW_noncol_ident_in_usertypeLiteral8549);
+ kn=noncol_ident();
+ state._fsp--;
+
+ match(input,180,FOLLOW_180_in_usertypeLiteral8551);
+ pushFollow(FOLLOW_term_in_usertypeLiteral8555);
+ vn=term();
+ state._fsp--;
+
+ m.put(kn, vn);
+ }
+ break;
+
+ default :
+ break loop161;
+ }
+ }
+
+ match(input,192,FOLLOW_192_in_usertypeLiteral8562);
+ }
+
+ ut = new UserTypes.Literal(m);
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return ut;
+ }
+ // $ANTLR end "usertypeLiteral"
+
+
+
+ // $ANTLR start "tupleLiteral"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1290:1: tupleLiteral returns [Tuples.Literal tt] : '(' t1= term ( ',' tn= term )* ')' ;
+ public final Tuples.Literal tupleLiteral() throws RecognitionException {
+ Tuples.Literal tt = null;
+
+
+ Term.Raw t1 =null;
+ Term.Raw tn =null;
+
+ List l = new ArrayList();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1293:5: ( '(' t1= term ( ',' tn= term )* ')' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1293:7: '(' t1= term ( ',' tn= term )* ')'
+ {
+ match(input,174,FOLLOW_174_in_tupleLiteral8599);
+ pushFollow(FOLLOW_term_in_tupleLiteral8603);
+ t1=term();
+ state._fsp--;
+
+ l.add(t1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1293:34: ( ',' tn= term )*
+ loop162:
+ while (true) {
+ int alt162=2;
+ int LA162_0 = input.LA(1);
+ if ( (LA162_0==177) ) {
+ alt162=1;
+ }
+
+ switch (alt162) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1293:36: ',' tn= term
+ {
+ match(input,177,FOLLOW_177_in_tupleLiteral8609);
+ pushFollow(FOLLOW_term_in_tupleLiteral8613);
+ tn=term();
+ state._fsp--;
+
+ l.add(tn);
+ }
+ break;
+
+ default :
+ break loop162;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_tupleLiteral8620);
+ }
+
+ tt = new Tuples.Literal(l);
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return tt;
+ }
+ // $ANTLR end "tupleLiteral"
+
+
+
+ // $ANTLR start "value"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1296:1: value returns [Term.Raw value] : (c= constant |l= collectionLiteral |u= usertypeLiteral |t= tupleLiteral | K_NULL | ':' id= noncol_ident | QMARK );
+ public final Term.Raw value() throws RecognitionException {
+ Term.Raw value = null;
+
+
+ Constants.Literal c =null;
+ Term.Raw l =null;
+ UserTypes.Literal u =null;
+ Tuples.Literal t =null;
+ ColumnIdentifier id =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1297:5: (c= constant |l= collectionLiteral |u= usertypeLiteral |t= tupleLiteral | K_NULL | ':' id= noncol_ident | QMARK )
+ int alt163=7;
+ alt163 = dfa163.predict(input);
+ switch (alt163) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1297:7: c= constant
+ {
+ pushFollow(FOLLOW_constant_in_value8643);
+ c=constant();
+ state._fsp--;
+
+ value = c;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1298:7: l= collectionLiteral
+ {
+ pushFollow(FOLLOW_collectionLiteral_in_value8665);
+ l=collectionLiteral();
+ state._fsp--;
+
+ value = l;
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1299:7: u= usertypeLiteral
+ {
+ pushFollow(FOLLOW_usertypeLiteral_in_value8678);
+ u=usertypeLiteral();
+ state._fsp--;
+
+ value = u;
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1300:7: t= tupleLiteral
+ {
+ pushFollow(FOLLOW_tupleLiteral_in_value8693);
+ t=tupleLiteral();
+ state._fsp--;
+
+ value = t;
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1301:7: K_NULL
+ {
+ match(input,K_NULL,FOLLOW_K_NULL_in_value8709);
+ value = Constants.NULL_LITERAL;
+ }
+ break;
+ case 6 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1302:7: ':' id= noncol_ident
+ {
+ match(input,180,FOLLOW_180_in_value8733);
+ pushFollow(FOLLOW_noncol_ident_in_value8737);
+ id=noncol_ident();
+ state._fsp--;
+
+ value = newBindVariables(id);
+ }
+ break;
+ case 7 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1303:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_value8748);
+ value = newBindVariables(null);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "value"
+
+
+
+ // $ANTLR start "intValue"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1306:1: intValue returns [Term.Raw value] : (|t= INTEGER | ':' id= noncol_ident | QMARK );
+ public final Term.Raw intValue() throws RecognitionException {
+ Term.Raw value = null;
+
+
+ Token t=null;
+ ColumnIdentifier id =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1307:5: (|t= INTEGER | ':' id= noncol_ident | QMARK )
+ int alt164=4;
+ switch ( input.LA(1) ) {
+ case EOF:
+ case K_ALLOW:
+ case K_AND:
+ case K_APPLY:
+ case K_DELETE:
+ case K_INSERT:
+ case K_LIMIT:
+ case K_SET:
+ case K_UPDATE:
+ case K_WHERE:
+ case 181:
+ {
+ alt164=1;
+ }
+ break;
+ case INTEGER:
+ {
+ alt164=2;
+ }
+ break;
+ case 180:
+ {
+ alt164=3;
+ }
+ break;
+ case QMARK:
+ {
+ alt164=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 164, 0, input);
+ throw nvae;
+ }
+ switch (alt164) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1308:5:
+ {
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1308:7: t= INTEGER
+ {
+ t=(Token)match(input,INTEGER,FOLLOW_INTEGER_in_intValue8794);
+ value = Constants.Literal.integer((t!=null?t.getText():null));
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1309:7: ':' id= noncol_ident
+ {
+ match(input,180,FOLLOW_180_in_intValue8808);
+ pushFollow(FOLLOW_noncol_ident_in_intValue8812);
+ id=noncol_ident();
+ state._fsp--;
+
+ value = newBindVariables(id);
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1310:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_intValue8823);
+ value = newBindVariables(null);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return value;
+ }
+ // $ANTLR end "intValue"
+
+
+
+ // $ANTLR start "functionName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1313:1: functionName returns [FunctionName s] : (ks= keyspaceName '.' )? f= allowedFunctionName ;
+ public final FunctionName functionName() throws RecognitionException {
+ FunctionName s = null;
+
+
+ String ks =null;
+ String f =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1314:5: ( (ks= keyspaceName '.' )? f= allowedFunctionName )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1314:7: (ks= keyspaceName '.' )? f= allowedFunctionName
+ {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1314:7: (ks= keyspaceName '.' )?
+ int alt165=2;
+ alt165 = dfa165.predict(input);
+ switch (alt165) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1314:8: ks= keyspaceName '.'
+ {
+ pushFollow(FOLLOW_keyspaceName_in_functionName8857);
+ ks=keyspaceName();
+ state._fsp--;
+
+ match(input,179,FOLLOW_179_in_functionName8859);
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_allowedFunctionName_in_functionName8865);
+ f=allowedFunctionName();
+ state._fsp--;
+
+ s = new FunctionName(ks, f);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return s;
+ }
+ // $ANTLR end "functionName"
+
+
+
+ // $ANTLR start "allowedFunctionName"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1317:1: allowedFunctionName returns [String s] : (f= IDENT |f= QUOTED_NAME |u= unreserved_function_keyword | K_TOKEN | K_COUNT );
+ public final String allowedFunctionName() throws RecognitionException {
+ String s = null;
+
+
+ Token f=null;
+ String u =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1318:5: (f= IDENT |f= QUOTED_NAME |u= unreserved_function_keyword | K_TOKEN | K_COUNT )
+ int alt166=5;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt166=1;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt166=2;
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_ASCII:
+ case K_BIGINT:
+ case K_BLOB:
+ case K_BOOLEAN:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_COUNTER:
+ case K_CUSTOM:
+ case K_DATE:
+ case K_DECIMAL:
+ case K_DISTINCT:
+ case K_DOUBLE:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FLOAT:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INET:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_INT:
+ case K_JSON:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_SMALLINT:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TEXT:
+ case K_TIME:
+ case K_TIMESTAMP:
+ case K_TIMEUUID:
+ case K_TINYINT:
+ case K_TRIGGER:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_UUID:
+ case K_VALUES:
+ case K_VARCHAR:
+ case K_VARINT:
+ {
+ alt166=3;
+ }
+ break;
+ case K_TOKEN:
+ {
+ alt166=4;
+ }
+ break;
+ case K_COUNT:
+ {
+ alt166=5;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 166, 0, input);
+ throw nvae;
+ }
+ switch (alt166) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1318:7: f= IDENT
+ {
+ f=(Token)match(input,IDENT,FOLLOW_IDENT_in_allowedFunctionName8892);
+ s = (f!=null?f.getText():null).toLowerCase();
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1319:7: f= QUOTED_NAME
+ {
+ f=(Token)match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_allowedFunctionName8926);
+ s = (f!=null?f.getText():null);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1320:7: u= unreserved_function_keyword
+ {
+ pushFollow(FOLLOW_unreserved_function_keyword_in_allowedFunctionName8954);
+ u=unreserved_function_keyword();
+ state._fsp--;
+
+ s = u;
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1321:7: K_TOKEN
+ {
+ match(input,K_TOKEN,FOLLOW_K_TOKEN_in_allowedFunctionName8964);
+ s = "token";
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1322:7: K_COUNT
+ {
+ match(input,K_COUNT,FOLLOW_K_COUNT_in_allowedFunctionName8996);
+ s = "count";
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return s;
+ }
+ // $ANTLR end "allowedFunctionName"
+
+
+
+ // $ANTLR start "function"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1325:1: function returns [Term.Raw t] : (f= functionName '(' ')' |f= functionName '(' args= functionArgs ')' );
+ public final Term.Raw function() throws RecognitionException {
+ Term.Raw t = null;
+
+
+ FunctionName f =null;
+ List args =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1326:5: (f= functionName '(' ')' |f= functionName '(' args= functionArgs ')' )
+ int alt167=2;
+ alt167 = dfa167.predict(input);
+ switch (alt167) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1326:7: f= functionName '(' ')'
+ {
+ pushFollow(FOLLOW_functionName_in_function9043);
+ f=functionName();
+ state._fsp--;
+
+ match(input,174,FOLLOW_174_in_function9045);
+ match(input,175,FOLLOW_175_in_function9047);
+ t = new FunctionCall.Raw(f, Collections.emptyList());
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1327:7: f= functionName '(' args= functionArgs ')'
+ {
+ pushFollow(FOLLOW_functionName_in_function9077);
+ f=functionName();
+ state._fsp--;
+
+ match(input,174,FOLLOW_174_in_function9079);
+ pushFollow(FOLLOW_functionArgs_in_function9083);
+ args=functionArgs();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_function9085);
+ t = new FunctionCall.Raw(f, args);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return t;
+ }
+ // $ANTLR end "function"
+
+
+
+ // $ANTLR start "functionArgs"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1330:1: functionArgs returns [List args] : t1= term ( ',' tn= term )* ;
+ public final List functionArgs() throws RecognitionException {
+ List args = null;
+
+
+ Term.Raw t1 =null;
+ Term.Raw tn =null;
+
+ args = new ArrayList();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1332:5: (t1= term ( ',' tn= term )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1332:7: t1= term ( ',' tn= term )*
+ {
+ pushFollow(FOLLOW_term_in_functionArgs9118);
+ t1=term();
+ state._fsp--;
+
+ args.add(t1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1332:32: ( ',' tn= term )*
+ loop168:
+ while (true) {
+ int alt168=2;
+ int LA168_0 = input.LA(1);
+ if ( (LA168_0==177) ) {
+ alt168=1;
+ }
+
+ switch (alt168) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1332:34: ',' tn= term
+ {
+ match(input,177,FOLLOW_177_in_functionArgs9124);
+ pushFollow(FOLLOW_term_in_functionArgs9128);
+ tn=term();
+ state._fsp--;
+
+ args.add(tn);
+ }
+ break;
+
+ default :
+ break loop168;
+ }
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return args;
+ }
+ // $ANTLR end "functionArgs"
+
+
+
+ // $ANTLR start "term"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1335:1: term returns [Term.Raw term] : (v= value |f= function | '(' c= comparatorType ')' t= term );
+ public final Term.Raw term() throws RecognitionException {
+ Term.Raw term = null;
+
+
+ Term.Raw v =null;
+ Term.Raw f =null;
+ CQL3Type.Raw c =null;
+ Term.Raw t =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1336:5: (v= value |f= function | '(' c= comparatorType ')' t= term )
+ int alt169=3;
+ alt169 = dfa169.predict(input);
+ switch (alt169) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1336:7: v= value
+ {
+ pushFollow(FOLLOW_value_in_term9156);
+ v=value();
+ state._fsp--;
+
+ term = v;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1337:7: f= function
+ {
+ pushFollow(FOLLOW_function_in_term9193);
+ f=function();
+ state._fsp--;
+
+ term = f;
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1338:7: '(' c= comparatorType ')' t= term
+ {
+ match(input,174,FOLLOW_174_in_term9225);
+ pushFollow(FOLLOW_comparatorType_in_term9229);
+ c=comparatorType();
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_term9231);
+ pushFollow(FOLLOW_term_in_term9235);
+ t=term();
+ state._fsp--;
+
+ term = new TypeCast(c, t);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return term;
+ }
+ // $ANTLR end "term"
+
+
+
+ // $ANTLR start "columnOperation"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1341:1: columnOperation[List> operations] : key= cident columnOperationDifferentiator[operations, key] ;
+ public final void columnOperation(List> operations) throws RecognitionException {
+ ColumnIdentifier.Raw key =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1342:5: (key= cident columnOperationDifferentiator[operations, key] )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1342:7: key= cident columnOperationDifferentiator[operations, key]
+ {
+ pushFollow(FOLLOW_cident_in_columnOperation9258);
+ key=cident();
+ state._fsp--;
+
+ pushFollow(FOLLOW_columnOperationDifferentiator_in_columnOperation9260);
+ columnOperationDifferentiator(operations, key);
+ state._fsp--;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "columnOperation"
+
+
+
+ // $ANTLR start "columnOperationDifferentiator"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1345:1: columnOperationDifferentiator[List> operations, ColumnIdentifier.Raw key] : ( '=' normalColumnOperation[operations, key] | '[' k= term ']' specializedColumnOperation[operations, key, k] );
+ public final void columnOperationDifferentiator(List> operations, ColumnIdentifier.Raw key) throws RecognitionException {
+ Term.Raw k =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1346:5: ( '=' normalColumnOperation[operations, key] | '[' k= term ']' specializedColumnOperation[operations, key, k] )
+ int alt170=2;
+ int LA170_0 = input.LA(1);
+ if ( (LA170_0==184) ) {
+ alt170=1;
+ }
+ else if ( (LA170_0==187) ) {
+ alt170=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 170, 0, input);
+ throw nvae;
+ }
+
+ switch (alt170) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1346:7: '=' normalColumnOperation[operations, key]
+ {
+ match(input,184,FOLLOW_184_in_columnOperationDifferentiator9279);
+ pushFollow(FOLLOW_normalColumnOperation_in_columnOperationDifferentiator9281);
+ normalColumnOperation(operations, key);
+ state._fsp--;
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1347:7: '[' k= term ']' specializedColumnOperation[operations, key, k]
+ {
+ match(input,187,FOLLOW_187_in_columnOperationDifferentiator9290);
+ pushFollow(FOLLOW_term_in_columnOperationDifferentiator9294);
+ k=term();
+ state._fsp--;
+
+ match(input,189,FOLLOW_189_in_columnOperationDifferentiator9296);
+ pushFollow(FOLLOW_specializedColumnOperation_in_columnOperationDifferentiator9298);
+ specializedColumnOperation(operations, key, k);
+ state._fsp--;
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "columnOperationDifferentiator"
+
+
+
+ // $ANTLR start "normalColumnOperation"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1350:1: normalColumnOperation[List> operations, ColumnIdentifier.Raw key] : (t= term ( '+' c= cident )? |c= cident sig= ( '+' | '-' ) t= term |c= cident i= INTEGER );
+ public final void normalColumnOperation(List> operations, ColumnIdentifier.Raw key) throws RecognitionException {
+ Token sig=null;
+ Token i=null;
+ Term.Raw t =null;
+ ColumnIdentifier.Raw c =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1351:5: (t= term ( '+' c= cident )? |c= cident sig= ( '+' | '-' ) t= term |c= cident i= INTEGER )
+ int alt172=3;
+ alt172 = dfa172.predict(input);
+ switch (alt172) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1351:7: t= term ( '+' c= cident )?
+ {
+ pushFollow(FOLLOW_term_in_normalColumnOperation9319);
+ t=term();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1351:14: ( '+' c= cident )?
+ int alt171=2;
+ int LA171_0 = input.LA(1);
+ if ( (LA171_0==176) ) {
+ alt171=1;
+ }
+ switch (alt171) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1351:15: '+' c= cident
+ {
+ match(input,176,FOLLOW_176_in_normalColumnOperation9322);
+ pushFollow(FOLLOW_cident_in_normalColumnOperation9326);
+ c=cident();
+ state._fsp--;
+
+ }
+ break;
+
+ }
+
+
+ if (c == null)
+ {
+ addRawUpdate(operations, key, new Operation.SetValue(t));
+ }
+ else
+ {
+ if (!key.equals(c))
+ addRecognitionError("Only expressions of the form X = + X are supported.");
+ addRawUpdate(operations, key, new Operation.Prepend(t));
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1364:7: c= cident sig= ( '+' | '-' ) t= term
+ {
+ pushFollow(FOLLOW_cident_in_normalColumnOperation9347);
+ c=cident();
+ state._fsp--;
+
+ sig=input.LT(1);
+ if ( input.LA(1)==176||input.LA(1)==178 ) {
+ input.consume();
+ state.errorRecovery=false;
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ throw mse;
+ }
+ pushFollow(FOLLOW_term_in_normalColumnOperation9361);
+ t=term();
+ state._fsp--;
+
+
+ if (!key.equals(c))
+ addRecognitionError("Only expressions of the form X = X " + (sig!=null?sig.getText():null) + " are supported.");
+ addRawUpdate(operations, key, (sig!=null?sig.getText():null).equals("+") ? new Operation.Addition(t) : new Operation.Substraction(t));
+
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1370:7: c= cident i= INTEGER
+ {
+ pushFollow(FOLLOW_cident_in_normalColumnOperation9379);
+ c=cident();
+ state._fsp--;
+
+ i=(Token)match(input,INTEGER,FOLLOW_INTEGER_in_normalColumnOperation9383);
+
+ // Note that this production *is* necessary because X = X - 3 will in fact be lexed as [ X, '=', X, INTEGER].
+ if (!key.equals(c))
+ // We don't yet allow a '+' in front of an integer, but we could in the future really, so let's be future-proof in our error message
+ addRecognitionError("Only expressions of the form X = X " + ((i!=null?i.getText():null).charAt(0) == '-' ? '-' : '+') + " are supported.");
+ addRawUpdate(operations, key, new Operation.Addition(Constants.Literal.integer((i!=null?i.getText():null))));
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "normalColumnOperation"
+
+
+
+ // $ANTLR start "specializedColumnOperation"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1380:1: specializedColumnOperation[List> operations, ColumnIdentifier.Raw key, Term.Raw k] : '=' t= term ;
+ public final void specializedColumnOperation(List> operations, ColumnIdentifier.Raw key, Term.Raw k) throws RecognitionException {
+ Term.Raw t =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1381:5: ( '=' t= term )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1381:7: '=' t= term
+ {
+ match(input,184,FOLLOW_184_in_specializedColumnOperation9409);
+ pushFollow(FOLLOW_term_in_specializedColumnOperation9413);
+ t=term();
+ state._fsp--;
+
+
+ addRawUpdate(operations, key, new Operation.SetElement(k, t));
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "specializedColumnOperation"
+
+
+
+ // $ANTLR start "columnCondition"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1387:1: columnCondition[List> conditions] : key= cident (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) | '[' element= term ']' (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) ) ) ;
+ public final void columnCondition(List> conditions) throws RecognitionException {
+ ColumnIdentifier.Raw key =null;
+ Operator op =null;
+ Term.Raw t =null;
+ List values =null;
+ AbstractMarker.INRaw marker =null;
+ Term.Raw element =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1389:5: (key= cident (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) | '[' element= term ']' (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) ) ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1389:7: key= cident (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) | '[' element= term ']' (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) ) )
+ {
+ pushFollow(FOLLOW_cident_in_columnCondition9446);
+ key=cident();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1390:9: (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) | '[' element= term ']' (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) ) )
+ int alt176=3;
+ switch ( input.LA(1) ) {
+ case 173:
+ case 182:
+ case 183:
+ case 184:
+ case 185:
+ case 186:
+ {
+ alt176=1;
+ }
+ break;
+ case K_IN:
+ {
+ alt176=2;
+ }
+ break;
+ case 187:
+ {
+ alt176=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 176, 0, input);
+ throw nvae;
+ }
+ switch (alt176) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1390:11: op= relationType t= term
+ {
+ pushFollow(FOLLOW_relationType_in_columnCondition9460);
+ op=relationType();
+ state._fsp--;
+
+ pushFollow(FOLLOW_term_in_columnCondition9464);
+ t=term();
+ state._fsp--;
+
+ conditions.add(Pair.create(key, ColumnCondition.Raw.simpleCondition(t, op)));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1391:11: K_IN (values= singleColumnInValues |marker= inMarker )
+ {
+ match(input,K_IN,FOLLOW_K_IN_in_columnCondition9478);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1392:13: (values= singleColumnInValues |marker= inMarker )
+ int alt173=2;
+ int LA173_0 = input.LA(1);
+ if ( (LA173_0==174) ) {
+ alt173=1;
+ }
+ else if ( (LA173_0==QMARK||LA173_0==180) ) {
+ alt173=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 173, 0, input);
+ throw nvae;
+ }
+
+ switch (alt173) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1392:15: values= singleColumnInValues
+ {
+ pushFollow(FOLLOW_singleColumnInValues_in_columnCondition9496);
+ values=singleColumnInValues();
+ state._fsp--;
+
+ conditions.add(Pair.create(key, ColumnCondition.Raw.simpleInCondition(values)));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1393:15: marker= inMarker
+ {
+ pushFollow(FOLLOW_inMarker_in_columnCondition9516);
+ marker=inMarker();
+ state._fsp--;
+
+ conditions.add(Pair.create(key, ColumnCondition.Raw.simpleInCondition(marker)));
+ }
+ break;
+
+ }
+
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1395:11: '[' element= term ']' (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) )
+ {
+ match(input,187,FOLLOW_187_in_columnCondition9544);
+ pushFollow(FOLLOW_term_in_columnCondition9548);
+ element=term();
+ state._fsp--;
+
+ match(input,189,FOLLOW_189_in_columnCondition9550);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1396:13: (op= relationType t= term | K_IN (values= singleColumnInValues |marker= inMarker ) )
+ int alt175=2;
+ int LA175_0 = input.LA(1);
+ if ( (LA175_0==173||(LA175_0 >= 182 && LA175_0 <= 186)) ) {
+ alt175=1;
+ }
+ else if ( (LA175_0==K_IN) ) {
+ alt175=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 175, 0, input);
+ throw nvae;
+ }
+
+ switch (alt175) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1396:15: op= relationType t= term
+ {
+ pushFollow(FOLLOW_relationType_in_columnCondition9568);
+ op=relationType();
+ state._fsp--;
+
+ pushFollow(FOLLOW_term_in_columnCondition9572);
+ t=term();
+ state._fsp--;
+
+ conditions.add(Pair.create(key, ColumnCondition.Raw.collectionCondition(t, element, op)));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1397:15: K_IN (values= singleColumnInValues |marker= inMarker )
+ {
+ match(input,K_IN,FOLLOW_K_IN_in_columnCondition9590);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1398:17: (values= singleColumnInValues |marker= inMarker )
+ int alt174=2;
+ int LA174_0 = input.LA(1);
+ if ( (LA174_0==174) ) {
+ alt174=1;
+ }
+ else if ( (LA174_0==QMARK||LA174_0==180) ) {
+ alt174=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 174, 0, input);
+ throw nvae;
+ }
+
+ switch (alt174) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1398:19: values= singleColumnInValues
+ {
+ pushFollow(FOLLOW_singleColumnInValues_in_columnCondition9612);
+ values=singleColumnInValues();
+ state._fsp--;
+
+ conditions.add(Pair.create(key, ColumnCondition.Raw.collectionInCondition(element, values)));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1399:19: marker= inMarker
+ {
+ pushFollow(FOLLOW_inMarker_in_columnCondition9636);
+ marker=inMarker();
+ state._fsp--;
+
+ conditions.add(Pair.create(key, ColumnCondition.Raw.collectionInCondition(element, marker)));
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ }
+
+ }
+ break;
+
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "columnCondition"
+
+
+
+ // $ANTLR start "properties"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1405:1: properties[PropertyDefinitions props] : property[props] ( K_AND property[props] )* ;
+ public final void properties(PropertyDefinitions props) throws RecognitionException {
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1406:5: ( property[props] ( K_AND property[props] )* )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1406:7: property[props] ( K_AND property[props] )*
+ {
+ pushFollow(FOLLOW_property_in_properties9698);
+ property(props);
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1406:23: ( K_AND property[props] )*
+ loop177:
+ while (true) {
+ int alt177=2;
+ int LA177_0 = input.LA(1);
+ if ( (LA177_0==K_AND) ) {
+ alt177=1;
+ }
+
+ switch (alt177) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1406:24: K_AND property[props]
+ {
+ match(input,K_AND,FOLLOW_K_AND_in_properties9702);
+ pushFollow(FOLLOW_property_in_properties9704);
+ property(props);
+ state._fsp--;
+
+ }
+ break;
+
+ default :
+ break loop177;
+ }
+ }
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "properties"
+
+
+
+ // $ANTLR start "property"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1409:1: property[PropertyDefinitions props] : (k= noncol_ident '=' simple= propertyValue |k= noncol_ident '=' map= mapLiteral );
+ public final void property(PropertyDefinitions props) throws RecognitionException {
+ ColumnIdentifier k =null;
+ String simple =null;
+ Maps.Literal map =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1410:5: (k= noncol_ident '=' simple= propertyValue |k= noncol_ident '=' map= mapLiteral )
+ int alt178=2;
+ alt178 = dfa178.predict(input);
+ switch (alt178) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1410:7: k= noncol_ident '=' simple= propertyValue
+ {
+ pushFollow(FOLLOW_noncol_ident_in_property9727);
+ k=noncol_ident();
+ state._fsp--;
+
+ match(input,184,FOLLOW_184_in_property9729);
+ pushFollow(FOLLOW_propertyValue_in_property9733);
+ simple=propertyValue();
+ state._fsp--;
+
+ try { props.addProperty(k.toString(), simple); } catch (SyntaxException e) { addRecognitionError(e.getMessage()); }
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1411:7: k= noncol_ident '=' map= mapLiteral
+ {
+ pushFollow(FOLLOW_noncol_ident_in_property9745);
+ k=noncol_ident();
+ state._fsp--;
+
+ match(input,184,FOLLOW_184_in_property9747);
+ pushFollow(FOLLOW_mapLiteral_in_property9751);
+ map=mapLiteral();
+ state._fsp--;
+
+ try { props.addProperty(k.toString(), convertPropertyMap(map)); } catch (SyntaxException e) { addRecognitionError(e.getMessage()); }
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "property"
+
+
+
+ // $ANTLR start "propertyValue"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1414:1: propertyValue returns [String str] : (c= constant |u= unreserved_keyword );
+ public final String propertyValue() throws RecognitionException {
+ String str = null;
+
+
+ Constants.Literal c =null;
+ String u =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1415:5: (c= constant |u= unreserved_keyword )
+ int alt179=2;
+ int LA179_0 = input.LA(1);
+ if ( (LA179_0==BOOLEAN||LA179_0==FLOAT||LA179_0==HEXNUMBER||LA179_0==INTEGER||LA179_0==K_INFINITY||LA179_0==K_NAN||LA179_0==STRING_LITERAL||LA179_0==UUID||LA179_0==178) ) {
+ alt179=1;
+ }
+ else if ( ((LA179_0 >= K_AGGREGATE && LA179_0 <= K_ALL)||LA179_0==K_AS||LA179_0==K_ASCII||(LA179_0 >= K_BIGINT && LA179_0 <= K_BOOLEAN)||(LA179_0 >= K_CALLED && LA179_0 <= K_CLUSTERING)||(LA179_0 >= K_COMPACT && LA179_0 <= K_COUNTER)||(LA179_0 >= K_CUSTOM && LA179_0 <= K_DECIMAL)||(LA179_0 >= K_DISTINCT && LA179_0 <= K_DOUBLE)||(LA179_0 >= K_EXISTS && LA179_0 <= K_FLOAT)||LA179_0==K_FROZEN||(LA179_0 >= K_FUNCTION && LA179_0 <= K_FUNCTIONS)||LA179_0==K_INET||(LA179_0 >= K_INITCOND && LA179_0 <= K_INPUT)||LA179_0==K_INT||(LA179_0 >= K_JSON && LA179_0 <= K_KEYS)||(LA179_0 >= K_KEYSPACES && LA179_0 <= K_LIKE)||(LA179_0 >= K_LIST && LA179_0 <= K_MAP)||LA179_0==K_NOLOGIN||LA179_0==K_NOSUPERUSER||LA179_0==K_OPTIONS||(LA179_0 >= K_PARTITION && LA179_0 <= K_PERMISSIONS)||LA179_0==K_RETURNS||(LA179_0 >= K_ROLE && LA179_0 <= K_ROLES)||(LA179_0 >= K_SFUNC && LA179_0 <= K_TINYINT)||LA179_0==K_TRIGGER||(LA179_0 >= K_TTL && LA179_0 <= K_TYPE)||(LA179_0 >= K_USER && LA179_0 <= K_USERS)||(LA179_0 >= K_UUID && LA179_0 <= K_VARINT)||LA179_0==K_WRITETIME) ) {
+ alt179=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 179, 0, input);
+ throw nvae;
+ }
+
+ switch (alt179) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1415:7: c= constant
+ {
+ pushFollow(FOLLOW_constant_in_propertyValue9776);
+ c=constant();
+ state._fsp--;
+
+ str = c.getRawText();
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1416:7: u= unreserved_keyword
+ {
+ pushFollow(FOLLOW_unreserved_keyword_in_propertyValue9798);
+ u=unreserved_keyword();
+ state._fsp--;
+
+ str = u;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return str;
+ }
+ // $ANTLR end "propertyValue"
+
+
+
+ // $ANTLR start "relationType"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1419:1: relationType returns [Operator op] : ( '=' | '<' | '<=' | '>' | '>=' | '!=' );
+ public final Operator relationType() throws RecognitionException {
+ Operator op = null;
+
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1420:5: ( '=' | '<' | '<=' | '>' | '>=' | '!=' )
+ int alt180=6;
+ switch ( input.LA(1) ) {
+ case 184:
+ {
+ alt180=1;
+ }
+ break;
+ case 182:
+ {
+ alt180=2;
+ }
+ break;
+ case 183:
+ {
+ alt180=3;
+ }
+ break;
+ case 185:
+ {
+ alt180=4;
+ }
+ break;
+ case 186:
+ {
+ alt180=5;
+ }
+ break;
+ case 173:
+ {
+ alt180=6;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 180, 0, input);
+ throw nvae;
+ }
+ switch (alt180) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1420:7: '='
+ {
+ match(input,184,FOLLOW_184_in_relationType9821);
+ op = Operator.EQ;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1421:7: '<'
+ {
+ match(input,182,FOLLOW_182_in_relationType9832);
+ op = Operator.LT;
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1422:7: '<='
+ {
+ match(input,183,FOLLOW_183_in_relationType9843);
+ op = Operator.LTE;
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1423:7: '>'
+ {
+ match(input,185,FOLLOW_185_in_relationType9853);
+ op = Operator.GT;
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1424:7: '>='
+ {
+ match(input,186,FOLLOW_186_in_relationType9864);
+ op = Operator.GTE;
+ }
+ break;
+ case 6 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1425:7: '!='
+ {
+ match(input,173,FOLLOW_173_in_relationType9874);
+ op = Operator.NEQ;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return op;
+ }
+ // $ANTLR end "relationType"
+
+
+
+ // $ANTLR start "relation"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1428:1: relation[WhereClause.Builder clauses] : (name= cident type= relationType t= term |name= cident K_IS K_NOT K_NULL | K_TOKEN l= tupleOfIdentifiers type= relationType t= term |name= cident K_IN marker= inMarker |name= cident K_IN inValues= singleColumnInValues |name= cident K_CONTAINS ( K_KEY )? t= term |name= cident '[' key= term ']' type= relationType t= term |ids= tupleOfIdentifiers ( K_IN ( '(' ')' |tupleInMarker= inMarkerForTuple |literals= tupleOfTupleLiterals |markers= tupleOfMarkersForTuples ) |type= relationType literal= tupleLiteral |type= relationType tupleMarker= markerForTuple ) | '(' relation[$clauses] ')' );
+ public final void relation(WhereClause.Builder clauses) throws RecognitionException {
+ ColumnIdentifier.Raw name =null;
+ Operator type =null;
+ Term.Raw t =null;
+ List l =null;
+ AbstractMarker.INRaw marker =null;
+ List inValues =null;
+ Term.Raw key =null;
+ List ids =null;
+ Tuples.INRaw tupleInMarker =null;
+ List literals =null;
+ List markers =null;
+ Tuples.Literal literal =null;
+ Tuples.Raw tupleMarker =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1429:5: (name= cident type= relationType t= term |name= cident K_IS K_NOT K_NULL | K_TOKEN l= tupleOfIdentifiers type= relationType t= term |name= cident K_IN marker= inMarker |name= cident K_IN inValues= singleColumnInValues |name= cident K_CONTAINS ( K_KEY )? t= term |name= cident '[' key= term ']' type= relationType t= term |ids= tupleOfIdentifiers ( K_IN ( '(' ')' |tupleInMarker= inMarkerForTuple |literals= tupleOfTupleLiterals |markers= tupleOfMarkersForTuples ) |type= relationType literal= tupleLiteral |type= relationType tupleMarker= markerForTuple ) | '(' relation[$clauses] ')' )
+ int alt184=9;
+ alt184 = dfa184.predict(input);
+ switch (alt184) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1429:7: name= cident type= relationType t= term
+ {
+ pushFollow(FOLLOW_cident_in_relation9896);
+ name=cident();
+ state._fsp--;
+
+ pushFollow(FOLLOW_relationType_in_relation9900);
+ type=relationType();
+ state._fsp--;
+
+ pushFollow(FOLLOW_term_in_relation9904);
+ t=term();
+ state._fsp--;
+
+ clauses.add(new SingleColumnRelation(name, type, t));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1430:7: name= cident K_IS K_NOT K_NULL
+ {
+ pushFollow(FOLLOW_cident_in_relation9916);
+ name=cident();
+ state._fsp--;
+
+ match(input,K_IS,FOLLOW_K_IS_in_relation9918);
+ match(input,K_NOT,FOLLOW_K_NOT_in_relation9920);
+ match(input,K_NULL,FOLLOW_K_NULL_in_relation9922);
+ clauses.add(new SingleColumnRelation(name, Operator.IS_NOT, Constants.NULL_LITERAL));
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1431:7: K_TOKEN l= tupleOfIdentifiers type= relationType t= term
+ {
+ match(input,K_TOKEN,FOLLOW_K_TOKEN_in_relation9932);
+ pushFollow(FOLLOW_tupleOfIdentifiers_in_relation9936);
+ l=tupleOfIdentifiers();
+ state._fsp--;
+
+ pushFollow(FOLLOW_relationType_in_relation9940);
+ type=relationType();
+ state._fsp--;
+
+ pushFollow(FOLLOW_term_in_relation9944);
+ t=term();
+ state._fsp--;
+
+ clauses.add(new TokenRelation(l, type, t));
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1433:7: name= cident K_IN marker= inMarker
+ {
+ pushFollow(FOLLOW_cident_in_relation9964);
+ name=cident();
+ state._fsp--;
+
+ match(input,K_IN,FOLLOW_K_IN_in_relation9966);
+ pushFollow(FOLLOW_inMarker_in_relation9970);
+ marker=inMarker();
+ state._fsp--;
+
+ clauses.add(new SingleColumnRelation(name, Operator.IN, marker));
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1435:7: name= cident K_IN inValues= singleColumnInValues
+ {
+ pushFollow(FOLLOW_cident_in_relation9990);
+ name=cident();
+ state._fsp--;
+
+ match(input,K_IN,FOLLOW_K_IN_in_relation9992);
+ pushFollow(FOLLOW_singleColumnInValues_in_relation9996);
+ inValues=singleColumnInValues();
+ state._fsp--;
+
+ clauses.add(SingleColumnRelation.createInRelation(name, inValues));
+ }
+ break;
+ case 6 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1437:7: name= cident K_CONTAINS ( K_KEY )? t= term
+ {
+ pushFollow(FOLLOW_cident_in_relation10016);
+ name=cident();
+ state._fsp--;
+
+ match(input,K_CONTAINS,FOLLOW_K_CONTAINS_in_relation10018);
+ Operator rt = Operator.CONTAINS;
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1437:67: ( K_KEY )?
+ int alt181=2;
+ int LA181_0 = input.LA(1);
+ if ( (LA181_0==K_KEY) ) {
+ int LA181_1 = input.LA(2);
+ if ( (LA181_1==BOOLEAN||LA181_1==FLOAT||LA181_1==HEXNUMBER||(LA181_1 >= IDENT && LA181_1 <= INTEGER)||(LA181_1 >= K_AGGREGATE && LA181_1 <= K_ALL)||LA181_1==K_AS||LA181_1==K_ASCII||(LA181_1 >= K_BIGINT && LA181_1 <= K_BOOLEAN)||(LA181_1 >= K_CALLED && LA181_1 <= K_CLUSTERING)||(LA181_1 >= K_COMPACT && LA181_1 <= K_COUNTER)||(LA181_1 >= K_CUSTOM && LA181_1 <= K_DECIMAL)||(LA181_1 >= K_DISTINCT && LA181_1 <= K_DOUBLE)||(LA181_1 >= K_EXISTS && LA181_1 <= K_FLOAT)||LA181_1==K_FROZEN||(LA181_1 >= K_FUNCTION && LA181_1 <= K_FUNCTIONS)||(LA181_1 >= K_INET && LA181_1 <= K_INPUT)||LA181_1==K_INT||(LA181_1 >= K_JSON && LA181_1 <= K_KEYS)||(LA181_1 >= K_KEYSPACES && LA181_1 <= K_LIKE)||(LA181_1 >= K_LIST && LA181_1 <= K_MAP)||(LA181_1 >= K_NAN && LA181_1 <= K_NOLOGIN)||LA181_1==K_NOSUPERUSER||LA181_1==K_NULL||LA181_1==K_OPTIONS||(LA181_1 >= K_PARTITION && LA181_1 <= K_PERMISSIONS)||LA181_1==K_RETURNS||(LA181_1 >= K_ROLE && LA181_1 <= K_ROLES)||(LA181_1 >= K_SFUNC && LA181_1 <= K_TINYINT)||(LA181_1 >= K_TOKEN && LA181_1 <= K_TRIGGER)||(LA181_1 >= K_TTL && LA181_1 <= K_TYPE)||(LA181_1 >= K_USER && LA181_1 <= K_USERS)||(LA181_1 >= K_UUID && LA181_1 <= K_VARINT)||LA181_1==K_WRITETIME||(LA181_1 >= QMARK && LA181_1 <= QUOTED_NAME)||LA181_1==STRING_LITERAL||LA181_1==UUID||LA181_1==174||LA181_1==178||LA181_1==180||LA181_1==187||LA181_1==191) ) {
+ alt181=1;
+ }
+ }
+ switch (alt181) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1437:68: K_KEY
+ {
+ match(input,K_KEY,FOLLOW_K_KEY_in_relation10023);
+ rt = Operator.CONTAINS_KEY;
+ }
+ break;
+
+ }
+
+ pushFollow(FOLLOW_term_in_relation10039);
+ t=term();
+ state._fsp--;
+
+ clauses.add(new SingleColumnRelation(name, rt, t));
+ }
+ break;
+ case 7 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1439:7: name= cident '[' key= term ']' type= relationType t= term
+ {
+ pushFollow(FOLLOW_cident_in_relation10051);
+ name=cident();
+ state._fsp--;
+
+ match(input,187,FOLLOW_187_in_relation10053);
+ pushFollow(FOLLOW_term_in_relation10057);
+ key=term();
+ state._fsp--;
+
+ match(input,189,FOLLOW_189_in_relation10059);
+ pushFollow(FOLLOW_relationType_in_relation10063);
+ type=relationType();
+ state._fsp--;
+
+ pushFollow(FOLLOW_term_in_relation10067);
+ t=term();
+ state._fsp--;
+
+ clauses.add(new SingleColumnRelation(name, key, type, t));
+ }
+ break;
+ case 8 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1440:7: ids= tupleOfIdentifiers ( K_IN ( '(' ')' |tupleInMarker= inMarkerForTuple |literals= tupleOfTupleLiterals |markers= tupleOfMarkersForTuples ) |type= relationType literal= tupleLiteral |type= relationType tupleMarker= markerForTuple )
+ {
+ pushFollow(FOLLOW_tupleOfIdentifiers_in_relation10079);
+ ids=tupleOfIdentifiers();
+ state._fsp--;
+
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1441:7: ( K_IN ( '(' ')' |tupleInMarker= inMarkerForTuple |literals= tupleOfTupleLiterals |markers= tupleOfMarkersForTuples ) |type= relationType literal= tupleLiteral |type= relationType tupleMarker= markerForTuple )
+ int alt183=3;
+ alt183 = dfa183.predict(input);
+ switch (alt183) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1441:9: K_IN ( '(' ')' |tupleInMarker= inMarkerForTuple |literals= tupleOfTupleLiterals |markers= tupleOfMarkersForTuples )
+ {
+ match(input,K_IN,FOLLOW_K_IN_in_relation10089);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1442:11: ( '(' ')' |tupleInMarker= inMarkerForTuple |literals= tupleOfTupleLiterals |markers= tupleOfMarkersForTuples )
+ int alt182=4;
+ int LA182_0 = input.LA(1);
+ if ( (LA182_0==174) ) {
+ switch ( input.LA(2) ) {
+ case 175:
+ {
+ alt182=1;
+ }
+ break;
+ case 174:
+ {
+ alt182=3;
+ }
+ break;
+ case QMARK:
+ case 180:
+ {
+ alt182=4;
+ }
+ break;
+ default:
+ int nvaeMark = input.mark();
+ try {
+ input.consume();
+ NoViableAltException nvae =
+ new NoViableAltException("", 182, 1, input);
+ throw nvae;
+ } finally {
+ input.rewind(nvaeMark);
+ }
+ }
+ }
+ else if ( (LA182_0==QMARK||LA182_0==180) ) {
+ alt182=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 182, 0, input);
+ throw nvae;
+ }
+
+ switch (alt182) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1442:13: '(' ')'
+ {
+ match(input,174,FOLLOW_174_in_relation10103);
+ match(input,175,FOLLOW_175_in_relation10105);
+ clauses.add(MultiColumnRelation.createInRelation(ids, new ArrayList()));
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1444:13: tupleInMarker= inMarkerForTuple
+ {
+ pushFollow(FOLLOW_inMarkerForTuple_in_relation10137);
+ tupleInMarker=inMarkerForTuple();
+ state._fsp--;
+
+ clauses.add(MultiColumnRelation.createSingleMarkerInRelation(ids, tupleInMarker));
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1446:13: literals= tupleOfTupleLiterals
+ {
+ pushFollow(FOLLOW_tupleOfTupleLiterals_in_relation10171);
+ literals=tupleOfTupleLiterals();
+ state._fsp--;
+
+
+ clauses.add(MultiColumnRelation.createInRelation(ids, literals));
+
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1450:13: markers= tupleOfMarkersForTuples
+ {
+ pushFollow(FOLLOW_tupleOfMarkersForTuples_in_relation10205);
+ markers=tupleOfMarkersForTuples();
+ state._fsp--;
+
+ clauses.add(MultiColumnRelation.createInRelation(ids, markers));
+ }
+ break;
+
+ }
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1453:9: type= relationType literal= tupleLiteral
+ {
+ pushFollow(FOLLOW_relationType_in_relation10247);
+ type=relationType();
+ state._fsp--;
+
+ pushFollow(FOLLOW_tupleLiteral_in_relation10251);
+ literal=tupleLiteral();
+ state._fsp--;
+
+
+ clauses.add(MultiColumnRelation.createNonInRelation(ids, type, literal));
+
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1457:9: type= relationType tupleMarker= markerForTuple
+ {
+ pushFollow(FOLLOW_relationType_in_relation10277);
+ type=relationType();
+ state._fsp--;
+
+ pushFollow(FOLLOW_markerForTuple_in_relation10281);
+ tupleMarker=markerForTuple();
+ state._fsp--;
+
+ clauses.add(MultiColumnRelation.createNonInRelation(ids, type, tupleMarker));
+ }
+ break;
+
+ }
+
+ }
+ break;
+ case 9 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1460:7: '(' relation[$clauses] ')'
+ {
+ match(input,174,FOLLOW_174_in_relation10311);
+ pushFollow(FOLLOW_relation_in_relation10313);
+ relation(clauses);
+ state._fsp--;
+
+ match(input,175,FOLLOW_175_in_relation10316);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ }
+ // $ANTLR end "relation"
+
+
+
+ // $ANTLR start "inMarker"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1463:1: inMarker returns [AbstractMarker.INRaw marker] : ( QMARK | ':' name= noncol_ident );
+ public final AbstractMarker.INRaw inMarker() throws RecognitionException {
+ AbstractMarker.INRaw marker = null;
+
+
+ ColumnIdentifier name =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1464:5: ( QMARK | ':' name= noncol_ident )
+ int alt185=2;
+ int LA185_0 = input.LA(1);
+ if ( (LA185_0==QMARK) ) {
+ alt185=1;
+ }
+ else if ( (LA185_0==180) ) {
+ alt185=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 185, 0, input);
+ throw nvae;
+ }
+
+ switch (alt185) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1464:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_inMarker10337);
+ marker = newINBindVariables(null);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1465:7: ':' name= noncol_ident
+ {
+ match(input,180,FOLLOW_180_in_inMarker10347);
+ pushFollow(FOLLOW_noncol_ident_in_inMarker10351);
+ name=noncol_ident();
+ state._fsp--;
+
+ marker = newINBindVariables(name);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return marker;
+ }
+ // $ANTLR end "inMarker"
+
+
+
+ // $ANTLR start "tupleOfIdentifiers"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1468:1: tupleOfIdentifiers returns [List ids] : '(' n1= cident ( ',' ni= cident )* ')' ;
+ public final List tupleOfIdentifiers() throws RecognitionException {
+ List ids = null;
+
+
+ ColumnIdentifier.Raw n1 =null;
+ ColumnIdentifier.Raw ni =null;
+
+ ids = new ArrayList();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1470:5: ( '(' n1= cident ( ',' ni= cident )* ')' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1470:7: '(' n1= cident ( ',' ni= cident )* ')'
+ {
+ match(input,174,FOLLOW_174_in_tupleOfIdentifiers10383);
+ pushFollow(FOLLOW_cident_in_tupleOfIdentifiers10387);
+ n1=cident();
+ state._fsp--;
+
+ ids.add(n1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1470:39: ( ',' ni= cident )*
+ loop186:
+ while (true) {
+ int alt186=2;
+ int LA186_0 = input.LA(1);
+ if ( (LA186_0==177) ) {
+ alt186=1;
+ }
+
+ switch (alt186) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1470:40: ',' ni= cident
+ {
+ match(input,177,FOLLOW_177_in_tupleOfIdentifiers10392);
+ pushFollow(FOLLOW_cident_in_tupleOfIdentifiers10396);
+ ni=cident();
+ state._fsp--;
+
+ ids.add(ni);
+ }
+ break;
+
+ default :
+ break loop186;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_tupleOfIdentifiers10402);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return ids;
+ }
+ // $ANTLR end "tupleOfIdentifiers"
+
+
+
+ // $ANTLR start "singleColumnInValues"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1473:1: singleColumnInValues returns [List terms] : '(' (t1= term ( ',' ti= term )* )? ')' ;
+ public final List singleColumnInValues() throws RecognitionException {
+ List terms = null;
+
+
+ Term.Raw t1 =null;
+ Term.Raw ti =null;
+
+ terms = new ArrayList();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1475:5: ( '(' (t1= term ( ',' ti= term )* )? ')' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1475:7: '(' (t1= term ( ',' ti= term )* )? ')'
+ {
+ match(input,174,FOLLOW_174_in_singleColumnInValues10432);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1475:11: (t1= term ( ',' ti= term )* )?
+ int alt188=2;
+ int LA188_0 = input.LA(1);
+ if ( (LA188_0==BOOLEAN||LA188_0==FLOAT||LA188_0==HEXNUMBER||(LA188_0 >= IDENT && LA188_0 <= INTEGER)||(LA188_0 >= K_AGGREGATE && LA188_0 <= K_ALL)||LA188_0==K_AS||LA188_0==K_ASCII||(LA188_0 >= K_BIGINT && LA188_0 <= K_BOOLEAN)||(LA188_0 >= K_CALLED && LA188_0 <= K_CLUSTERING)||(LA188_0 >= K_COMPACT && LA188_0 <= K_COUNTER)||(LA188_0 >= K_CUSTOM && LA188_0 <= K_DECIMAL)||(LA188_0 >= K_DISTINCT && LA188_0 <= K_DOUBLE)||(LA188_0 >= K_EXISTS && LA188_0 <= K_FLOAT)||LA188_0==K_FROZEN||(LA188_0 >= K_FUNCTION && LA188_0 <= K_FUNCTIONS)||(LA188_0 >= K_INET && LA188_0 <= K_INPUT)||LA188_0==K_INT||(LA188_0 >= K_JSON && LA188_0 <= K_KEYS)||(LA188_0 >= K_KEYSPACES && LA188_0 <= K_LIKE)||(LA188_0 >= K_LIST && LA188_0 <= K_MAP)||(LA188_0 >= K_NAN && LA188_0 <= K_NOLOGIN)||LA188_0==K_NOSUPERUSER||LA188_0==K_NULL||LA188_0==K_OPTIONS||(LA188_0 >= K_PARTITION && LA188_0 <= K_PERMISSIONS)||LA188_0==K_RETURNS||(LA188_0 >= K_ROLE && LA188_0 <= K_ROLES)||(LA188_0 >= K_SFUNC && LA188_0 <= K_TINYINT)||(LA188_0 >= K_TOKEN && LA188_0 <= K_TRIGGER)||(LA188_0 >= K_TTL && LA188_0 <= K_TYPE)||(LA188_0 >= K_USER && LA188_0 <= K_USERS)||(LA188_0 >= K_UUID && LA188_0 <= K_VARINT)||LA188_0==K_WRITETIME||(LA188_0 >= QMARK && LA188_0 <= QUOTED_NAME)||LA188_0==STRING_LITERAL||LA188_0==UUID||LA188_0==174||LA188_0==178||LA188_0==180||LA188_0==187||LA188_0==191) ) {
+ alt188=1;
+ }
+ switch (alt188) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1475:13: t1= term ( ',' ti= term )*
+ {
+ pushFollow(FOLLOW_term_in_singleColumnInValues10440);
+ t1=term();
+ state._fsp--;
+
+ terms.add(t1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1475:43: ( ',' ti= term )*
+ loop187:
+ while (true) {
+ int alt187=2;
+ int LA187_0 = input.LA(1);
+ if ( (LA187_0==177) ) {
+ alt187=1;
+ }
+
+ switch (alt187) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1475:44: ',' ti= term
+ {
+ match(input,177,FOLLOW_177_in_singleColumnInValues10445);
+ pushFollow(FOLLOW_term_in_singleColumnInValues10449);
+ ti=term();
+ state._fsp--;
+
+ terms.add(ti);
+ }
+ break;
+
+ default :
+ break loop187;
+ }
+ }
+
+ }
+ break;
+
+ }
+
+ match(input,175,FOLLOW_175_in_singleColumnInValues10458);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return terms;
+ }
+ // $ANTLR end "singleColumnInValues"
+
+
+
+ // $ANTLR start "tupleOfTupleLiterals"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1478:1: tupleOfTupleLiterals returns [List literals] : '(' t1= tupleLiteral ( ',' ti= tupleLiteral )* ')' ;
+ public final List tupleOfTupleLiterals() throws RecognitionException {
+ List literals = null;
+
+
+ Tuples.Literal t1 =null;
+ Tuples.Literal ti =null;
+
+ literals = new ArrayList<>();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1480:5: ( '(' t1= tupleLiteral ( ',' ti= tupleLiteral )* ')' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1480:7: '(' t1= tupleLiteral ( ',' ti= tupleLiteral )* ')'
+ {
+ match(input,174,FOLLOW_174_in_tupleOfTupleLiterals10488);
+ pushFollow(FOLLOW_tupleLiteral_in_tupleOfTupleLiterals10492);
+ t1=tupleLiteral();
+ state._fsp--;
+
+ literals.add(t1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1480:50: ( ',' ti= tupleLiteral )*
+ loop189:
+ while (true) {
+ int alt189=2;
+ int LA189_0 = input.LA(1);
+ if ( (LA189_0==177) ) {
+ alt189=1;
+ }
+
+ switch (alt189) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1480:51: ',' ti= tupleLiteral
+ {
+ match(input,177,FOLLOW_177_in_tupleOfTupleLiterals10497);
+ pushFollow(FOLLOW_tupleLiteral_in_tupleOfTupleLiterals10501);
+ ti=tupleLiteral();
+ state._fsp--;
+
+ literals.add(ti);
+ }
+ break;
+
+ default :
+ break loop189;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_tupleOfTupleLiterals10507);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return literals;
+ }
+ // $ANTLR end "tupleOfTupleLiterals"
+
+
+
+ // $ANTLR start "markerForTuple"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1483:1: markerForTuple returns [Tuples.Raw marker] : ( QMARK | ':' name= noncol_ident );
+ public final Tuples.Raw markerForTuple() throws RecognitionException {
+ Tuples.Raw marker = null;
+
+
+ ColumnIdentifier name =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1484:5: ( QMARK | ':' name= noncol_ident )
+ int alt190=2;
+ int LA190_0 = input.LA(1);
+ if ( (LA190_0==QMARK) ) {
+ alt190=1;
+ }
+ else if ( (LA190_0==180) ) {
+ alt190=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 190, 0, input);
+ throw nvae;
+ }
+
+ switch (alt190) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1484:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_markerForTuple10528);
+ marker = newTupleBindVariables(null);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1485:7: ':' name= noncol_ident
+ {
+ match(input,180,FOLLOW_180_in_markerForTuple10538);
+ pushFollow(FOLLOW_noncol_ident_in_markerForTuple10542);
+ name=noncol_ident();
+ state._fsp--;
+
+ marker = newTupleBindVariables(name);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return marker;
+ }
+ // $ANTLR end "markerForTuple"
+
+
+
+ // $ANTLR start "tupleOfMarkersForTuples"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1488:1: tupleOfMarkersForTuples returns [List markers] : '(' m1= markerForTuple ( ',' mi= markerForTuple )* ')' ;
+ public final List tupleOfMarkersForTuples() throws RecognitionException {
+ List markers = null;
+
+
+ Tuples.Raw m1 =null;
+ Tuples.Raw mi =null;
+
+ markers = new ArrayList();
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1490:5: ( '(' m1= markerForTuple ( ',' mi= markerForTuple )* ')' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1490:7: '(' m1= markerForTuple ( ',' mi= markerForTuple )* ')'
+ {
+ match(input,174,FOLLOW_174_in_tupleOfMarkersForTuples10574);
+ pushFollow(FOLLOW_markerForTuple_in_tupleOfMarkersForTuples10578);
+ m1=markerForTuple();
+ state._fsp--;
+
+ markers.add(m1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1490:51: ( ',' mi= markerForTuple )*
+ loop191:
+ while (true) {
+ int alt191=2;
+ int LA191_0 = input.LA(1);
+ if ( (LA191_0==177) ) {
+ alt191=1;
+ }
+
+ switch (alt191) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1490:52: ',' mi= markerForTuple
+ {
+ match(input,177,FOLLOW_177_in_tupleOfMarkersForTuples10583);
+ pushFollow(FOLLOW_markerForTuple_in_tupleOfMarkersForTuples10587);
+ mi=markerForTuple();
+ state._fsp--;
+
+ markers.add(mi);
+ }
+ break;
+
+ default :
+ break loop191;
+ }
+ }
+
+ match(input,175,FOLLOW_175_in_tupleOfMarkersForTuples10593);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return markers;
+ }
+ // $ANTLR end "tupleOfMarkersForTuples"
+
+
+
+ // $ANTLR start "inMarkerForTuple"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1493:1: inMarkerForTuple returns [Tuples.INRaw marker] : ( QMARK | ':' name= noncol_ident );
+ public final Tuples.INRaw inMarkerForTuple() throws RecognitionException {
+ Tuples.INRaw marker = null;
+
+
+ ColumnIdentifier name =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1494:5: ( QMARK | ':' name= noncol_ident )
+ int alt192=2;
+ int LA192_0 = input.LA(1);
+ if ( (LA192_0==QMARK) ) {
+ alt192=1;
+ }
+ else if ( (LA192_0==180) ) {
+ alt192=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 192, 0, input);
+ throw nvae;
+ }
+
+ switch (alt192) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1494:7: QMARK
+ {
+ match(input,QMARK,FOLLOW_QMARK_in_inMarkerForTuple10614);
+ marker = newTupleINBindVariables(null);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1495:7: ':' name= noncol_ident
+ {
+ match(input,180,FOLLOW_180_in_inMarkerForTuple10624);
+ pushFollow(FOLLOW_noncol_ident_in_inMarkerForTuple10628);
+ name=noncol_ident();
+ state._fsp--;
+
+ marker = newTupleINBindVariables(name);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return marker;
+ }
+ // $ANTLR end "inMarkerForTuple"
+
+
+
+ // $ANTLR start "comparatorType"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1498:1: comparatorType returns [CQL3Type.Raw t] : (n= native_type |c= collection_type |tt= tuple_type |id= userTypeName | K_FROZEN '<' f= comparatorType '>' |s= STRING_LITERAL );
+ public final CQL3Type.Raw comparatorType() throws RecognitionException {
+ CQL3Type.Raw t = null;
+
+
+ Token s=null;
+ CQL3Type n =null;
+ CQL3Type.Raw c =null;
+ CQL3Type.Raw tt =null;
+ UTName id =null;
+ CQL3Type.Raw f =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1499:5: (n= native_type |c= collection_type |tt= tuple_type |id= userTypeName | K_FROZEN '<' f= comparatorType '>' |s= STRING_LITERAL )
+ int alt193=6;
+ alt193 = dfa193.predict(input);
+ switch (alt193) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1499:7: n= native_type
+ {
+ pushFollow(FOLLOW_native_type_in_comparatorType10653);
+ n=native_type();
+ state._fsp--;
+
+ t = CQL3Type.Raw.from(n);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1500:7: c= collection_type
+ {
+ pushFollow(FOLLOW_collection_type_in_comparatorType10669);
+ c=collection_type();
+ state._fsp--;
+
+ t = c;
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1501:7: tt= tuple_type
+ {
+ pushFollow(FOLLOW_tuple_type_in_comparatorType10681);
+ tt=tuple_type();
+ state._fsp--;
+
+ t = tt;
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1502:7: id= userTypeName
+ {
+ pushFollow(FOLLOW_userTypeName_in_comparatorType10697);
+ id=userTypeName();
+ state._fsp--;
+
+ t = CQL3Type.Raw.userType(id);
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1503:7: K_FROZEN '<' f= comparatorType '>'
+ {
+ match(input,K_FROZEN,FOLLOW_K_FROZEN_in_comparatorType10709);
+ match(input,182,FOLLOW_182_in_comparatorType10711);
+ pushFollow(FOLLOW_comparatorType_in_comparatorType10715);
+ f=comparatorType();
+ state._fsp--;
+
+ match(input,185,FOLLOW_185_in_comparatorType10717);
+
+ try {
+ t = CQL3Type.Raw.frozen(f);
+ } catch (InvalidRequestException e) {
+ addRecognitionError(e.getMessage());
+ }
+
+ }
+ break;
+ case 6 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1511:7: s= STRING_LITERAL
+ {
+ s=(Token)match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_comparatorType10735);
+
+ try {
+ t = CQL3Type.Raw.from(new CQL3Type.Custom((s!=null?s.getText():null)));
+ } catch (SyntaxException e) {
+ addRecognitionError("Cannot parse type " + (s!=null?s.getText():null) + ": " + e.getMessage());
+ } catch (ConfigurationException e) {
+ addRecognitionError("Error setting type " + (s!=null?s.getText():null) + ": " + e.getMessage());
+ }
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return t;
+ }
+ // $ANTLR end "comparatorType"
+
+
+
+ // $ANTLR start "native_type"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1523:1: native_type returns [CQL3Type t] : ( K_ASCII | K_BIGINT | K_BLOB | K_BOOLEAN | K_COUNTER | K_DECIMAL | K_DOUBLE | K_FLOAT | K_INET | K_INT | K_SMALLINT | K_TEXT | K_TIMESTAMP | K_TINYINT | K_UUID | K_VARCHAR | K_VARINT | K_TIMEUUID | K_DATE | K_TIME );
+ public final CQL3Type native_type() throws RecognitionException {
+ CQL3Type t = null;
+
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1524:5: ( K_ASCII | K_BIGINT | K_BLOB | K_BOOLEAN | K_COUNTER | K_DECIMAL | K_DOUBLE | K_FLOAT | K_INET | K_INT | K_SMALLINT | K_TEXT | K_TIMESTAMP | K_TINYINT | K_UUID | K_VARCHAR | K_VARINT | K_TIMEUUID | K_DATE | K_TIME )
+ int alt194=20;
+ switch ( input.LA(1) ) {
+ case K_ASCII:
+ {
+ alt194=1;
+ }
+ break;
+ case K_BIGINT:
+ {
+ alt194=2;
+ }
+ break;
+ case K_BLOB:
+ {
+ alt194=3;
+ }
+ break;
+ case K_BOOLEAN:
+ {
+ alt194=4;
+ }
+ break;
+ case K_COUNTER:
+ {
+ alt194=5;
+ }
+ break;
+ case K_DECIMAL:
+ {
+ alt194=6;
+ }
+ break;
+ case K_DOUBLE:
+ {
+ alt194=7;
+ }
+ break;
+ case K_FLOAT:
+ {
+ alt194=8;
+ }
+ break;
+ case K_INET:
+ {
+ alt194=9;
+ }
+ break;
+ case K_INT:
+ {
+ alt194=10;
+ }
+ break;
+ case K_SMALLINT:
+ {
+ alt194=11;
+ }
+ break;
+ case K_TEXT:
+ {
+ alt194=12;
+ }
+ break;
+ case K_TIMESTAMP:
+ {
+ alt194=13;
+ }
+ break;
+ case K_TINYINT:
+ {
+ alt194=14;
+ }
+ break;
+ case K_UUID:
+ {
+ alt194=15;
+ }
+ break;
+ case K_VARCHAR:
+ {
+ alt194=16;
+ }
+ break;
+ case K_VARINT:
+ {
+ alt194=17;
+ }
+ break;
+ case K_TIMEUUID:
+ {
+ alt194=18;
+ }
+ break;
+ case K_DATE:
+ {
+ alt194=19;
+ }
+ break;
+ case K_TIME:
+ {
+ alt194=20;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 194, 0, input);
+ throw nvae;
+ }
+ switch (alt194) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1524:7: K_ASCII
+ {
+ match(input,K_ASCII,FOLLOW_K_ASCII_in_native_type10764);
+ t = CQL3Type.Native.ASCII;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1525:7: K_BIGINT
+ {
+ match(input,K_BIGINT,FOLLOW_K_BIGINT_in_native_type10778);
+ t = CQL3Type.Native.BIGINT;
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1526:7: K_BLOB
+ {
+ match(input,K_BLOB,FOLLOW_K_BLOB_in_native_type10791);
+ t = CQL3Type.Native.BLOB;
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1527:7: K_BOOLEAN
+ {
+ match(input,K_BOOLEAN,FOLLOW_K_BOOLEAN_in_native_type10806);
+ t = CQL3Type.Native.BOOLEAN;
+ }
+ break;
+ case 5 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1528:7: K_COUNTER
+ {
+ match(input,K_COUNTER,FOLLOW_K_COUNTER_in_native_type10818);
+ t = CQL3Type.Native.COUNTER;
+ }
+ break;
+ case 6 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1529:7: K_DECIMAL
+ {
+ match(input,K_DECIMAL,FOLLOW_K_DECIMAL_in_native_type10830);
+ t = CQL3Type.Native.DECIMAL;
+ }
+ break;
+ case 7 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1530:7: K_DOUBLE
+ {
+ match(input,K_DOUBLE,FOLLOW_K_DOUBLE_in_native_type10842);
+ t = CQL3Type.Native.DOUBLE;
+ }
+ break;
+ case 8 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1531:7: K_FLOAT
+ {
+ match(input,K_FLOAT,FOLLOW_K_FLOAT_in_native_type10855);
+ t = CQL3Type.Native.FLOAT;
+ }
+ break;
+ case 9 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1532:7: K_INET
+ {
+ match(input,K_INET,FOLLOW_K_INET_in_native_type10869);
+ t = CQL3Type.Native.INET;
+ }
+ break;
+ case 10 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1533:7: K_INT
+ {
+ match(input,K_INT,FOLLOW_K_INT_in_native_type10884);
+ t = CQL3Type.Native.INT;
+ }
+ break;
+ case 11 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1534:7: K_SMALLINT
+ {
+ match(input,K_SMALLINT,FOLLOW_K_SMALLINT_in_native_type10900);
+ t = CQL3Type.Native.SMALLINT;
+ }
+ break;
+ case 12 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1535:7: K_TEXT
+ {
+ match(input,K_TEXT,FOLLOW_K_TEXT_in_native_type10911);
+ t = CQL3Type.Native.TEXT;
+ }
+ break;
+ case 13 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1536:7: K_TIMESTAMP
+ {
+ match(input,K_TIMESTAMP,FOLLOW_K_TIMESTAMP_in_native_type10926);
+ t = CQL3Type.Native.TIMESTAMP;
+ }
+ break;
+ case 14 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1537:7: K_TINYINT
+ {
+ match(input,K_TINYINT,FOLLOW_K_TINYINT_in_native_type10936);
+ t = CQL3Type.Native.TINYINT;
+ }
+ break;
+ case 15 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1538:7: K_UUID
+ {
+ match(input,K_UUID,FOLLOW_K_UUID_in_native_type10948);
+ t = CQL3Type.Native.UUID;
+ }
+ break;
+ case 16 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1539:7: K_VARCHAR
+ {
+ match(input,K_VARCHAR,FOLLOW_K_VARCHAR_in_native_type10963);
+ t = CQL3Type.Native.VARCHAR;
+ }
+ break;
+ case 17 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1540:7: K_VARINT
+ {
+ match(input,K_VARINT,FOLLOW_K_VARINT_in_native_type10975);
+ t = CQL3Type.Native.VARINT;
+ }
+ break;
+ case 18 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1541:7: K_TIMEUUID
+ {
+ match(input,K_TIMEUUID,FOLLOW_K_TIMEUUID_in_native_type10988);
+ t = CQL3Type.Native.TIMEUUID;
+ }
+ break;
+ case 19 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1542:7: K_DATE
+ {
+ match(input,K_DATE,FOLLOW_K_DATE_in_native_type10999);
+ t = CQL3Type.Native.DATE;
+ }
+ break;
+ case 20 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1543:7: K_TIME
+ {
+ match(input,K_TIME,FOLLOW_K_TIME_in_native_type11014);
+ t = CQL3Type.Native.TIME;
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return t;
+ }
+ // $ANTLR end "native_type"
+
+
+
+ // $ANTLR start "collection_type"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1546:1: collection_type returns [CQL3Type.Raw pt] : ( K_MAP '<' t1= comparatorType ',' t2= comparatorType '>' | K_LIST '<' t= comparatorType '>' | K_SET '<' t= comparatorType '>' );
+ public final CQL3Type.Raw collection_type() throws RecognitionException {
+ CQL3Type.Raw pt = null;
+
+
+ CQL3Type.Raw t1 =null;
+ CQL3Type.Raw t2 =null;
+ CQL3Type.Raw t =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1547:5: ( K_MAP '<' t1= comparatorType ',' t2= comparatorType '>' | K_LIST '<' t= comparatorType '>' | K_SET '<' t= comparatorType '>' )
+ int alt195=3;
+ switch ( input.LA(1) ) {
+ case K_MAP:
+ {
+ alt195=1;
+ }
+ break;
+ case K_LIST:
+ {
+ alt195=2;
+ }
+ break;
+ case K_SET:
+ {
+ alt195=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 195, 0, input);
+ throw nvae;
+ }
+ switch (alt195) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1547:7: K_MAP '<' t1= comparatorType ',' t2= comparatorType '>'
+ {
+ match(input,K_MAP,FOLLOW_K_MAP_in_collection_type11042);
+ match(input,182,FOLLOW_182_in_collection_type11045);
+ pushFollow(FOLLOW_comparatorType_in_collection_type11049);
+ t1=comparatorType();
+ state._fsp--;
+
+ match(input,177,FOLLOW_177_in_collection_type11051);
+ pushFollow(FOLLOW_comparatorType_in_collection_type11055);
+ t2=comparatorType();
+ state._fsp--;
+
+ match(input,185,FOLLOW_185_in_collection_type11057);
+
+ // if we can't parse either t1 or t2, antlr will "recover" and we may have t1 or t2 null.
+ if (t1 != null && t2 != null)
+ pt = CQL3Type.Raw.map(t1, t2);
+
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1553:7: K_LIST '<' t= comparatorType '>'
+ {
+ match(input,K_LIST,FOLLOW_K_LIST_in_collection_type11075);
+ match(input,182,FOLLOW_182_in_collection_type11077);
+ pushFollow(FOLLOW_comparatorType_in_collection_type11081);
+ t=comparatorType();
+ state._fsp--;
+
+ match(input,185,FOLLOW_185_in_collection_type11083);
+ if (t != null) pt = CQL3Type.Raw.list(t);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1555:7: K_SET '<' t= comparatorType '>'
+ {
+ match(input,K_SET,FOLLOW_K_SET_in_collection_type11101);
+ match(input,182,FOLLOW_182_in_collection_type11104);
+ pushFollow(FOLLOW_comparatorType_in_collection_type11108);
+ t=comparatorType();
+ state._fsp--;
+
+ match(input,185,FOLLOW_185_in_collection_type11110);
+ if (t != null) pt = CQL3Type.Raw.set(t);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return pt;
+ }
+ // $ANTLR end "collection_type"
+
+
+
+ // $ANTLR start "tuple_type"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1559:1: tuple_type returns [CQL3Type.Raw t] : K_TUPLE '<' t1= comparatorType ( ',' tn= comparatorType )* '>' ;
+ public final CQL3Type.Raw tuple_type() throws RecognitionException {
+ CQL3Type.Raw t = null;
+
+
+ CQL3Type.Raw t1 =null;
+ CQL3Type.Raw tn =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1560:5: ( K_TUPLE '<' t1= comparatorType ( ',' tn= comparatorType )* '>' )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1560:7: K_TUPLE '<' t1= comparatorType ( ',' tn= comparatorType )* '>'
+ {
+ match(input,K_TUPLE,FOLLOW_K_TUPLE_in_tuple_type11141);
+ match(input,182,FOLLOW_182_in_tuple_type11143);
+ List types = new ArrayList<>();
+ pushFollow(FOLLOW_comparatorType_in_tuple_type11158);
+ t1=comparatorType();
+ state._fsp--;
+
+ types.add(t1);
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1561:47: ( ',' tn= comparatorType )*
+ loop196:
+ while (true) {
+ int alt196=2;
+ int LA196_0 = input.LA(1);
+ if ( (LA196_0==177) ) {
+ alt196=1;
+ }
+
+ switch (alt196) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1561:48: ',' tn= comparatorType
+ {
+ match(input,177,FOLLOW_177_in_tuple_type11163);
+ pushFollow(FOLLOW_comparatorType_in_tuple_type11167);
+ tn=comparatorType();
+ state._fsp--;
+
+ types.add(tn);
+ }
+ break;
+
+ default :
+ break loop196;
+ }
+ }
+
+ match(input,185,FOLLOW_185_in_tuple_type11179);
+ t = CQL3Type.Raw.tuple(types);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return t;
+ }
+ // $ANTLR end "tuple_type"
+
+
+ public static class username_return extends ParserRuleReturnScope {
+ };
+
+
+ // $ANTLR start "username"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1565:1: username : ( IDENT | STRING_LITERAL | QUOTED_NAME );
+ public final CqlParser.username_return username() throws RecognitionException {
+ CqlParser.username_return retval = new CqlParser.username_return();
+ retval.start = input.LT(1);
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1566:5: ( IDENT | STRING_LITERAL | QUOTED_NAME )
+ int alt197=3;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt197=1;
+ }
+ break;
+ case STRING_LITERAL:
+ {
+ alt197=2;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt197=3;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 197, 0, input);
+ throw nvae;
+ }
+ switch (alt197) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1566:7: IDENT
+ {
+ match(input,IDENT,FOLLOW_IDENT_in_username11198);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1567:7: STRING_LITERAL
+ {
+ match(input,STRING_LITERAL,FOLLOW_STRING_LITERAL_in_username11206);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1568:7: QUOTED_NAME
+ {
+ match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_username11214);
+ addRecognitionError("Quoted strings are are not supported for user names and USER is deprecated, please use ROLE");
+ }
+ break;
+
+ }
+ retval.stop = input.LT(-1);
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return retval;
+ }
+ // $ANTLR end "username"
+
+
+
+ // $ANTLR start "non_type_ident"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1573:1: non_type_ident returns [ColumnIdentifier id] : (t= IDENT |t= QUOTED_NAME |k= basic_unreserved_keyword |kk= K_KEY );
+ public final ColumnIdentifier non_type_ident() throws RecognitionException {
+ ColumnIdentifier id = null;
+
+
+ Token t=null;
+ Token kk=null;
+ String k =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1574:5: (t= IDENT |t= QUOTED_NAME |k= basic_unreserved_keyword |kk= K_KEY )
+ int alt198=4;
+ switch ( input.LA(1) ) {
+ case IDENT:
+ {
+ alt198=1;
+ }
+ break;
+ case QUOTED_NAME:
+ {
+ alt198=2;
+ }
+ break;
+ case K_AGGREGATE:
+ case K_ALL:
+ case K_AS:
+ case K_CALLED:
+ case K_CLUSTERING:
+ case K_COMPACT:
+ case K_CONTAINS:
+ case K_CUSTOM:
+ case K_DISTINCT:
+ case K_EXISTS:
+ case K_FILTERING:
+ case K_FINALFUNC:
+ case K_FROZEN:
+ case K_FUNCTION:
+ case K_FUNCTIONS:
+ case K_INITCOND:
+ case K_INPUT:
+ case K_JSON:
+ case K_KEYS:
+ case K_KEYSPACES:
+ case K_LANGUAGE:
+ case K_LIKE:
+ case K_LIST:
+ case K_LOGIN:
+ case K_MAP:
+ case K_NOLOGIN:
+ case K_NOSUPERUSER:
+ case K_OPTIONS:
+ case K_PARTITION:
+ case K_PASSWORD:
+ case K_PER:
+ case K_PERMISSION:
+ case K_PERMISSIONS:
+ case K_RETURNS:
+ case K_ROLE:
+ case K_ROLES:
+ case K_SFUNC:
+ case K_STATIC:
+ case K_STORAGE:
+ case K_STYPE:
+ case K_SUPERUSER:
+ case K_TRIGGER:
+ case K_TUPLE:
+ case K_TYPE:
+ case K_USER:
+ case K_USERS:
+ case K_VALUES:
+ {
+ alt198=3;
+ }
+ break;
+ case K_KEY:
+ {
+ alt198=4;
+ }
+ break;
+ default:
+ NoViableAltException nvae =
+ new NoViableAltException("", 198, 0, input);
+ throw nvae;
+ }
+ switch (alt198) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1574:7: t= IDENT
+ {
+ t=(Token)match(input,IDENT,FOLLOW_IDENT_in_non_type_ident11241);
+ if (reservedTypeNames.contains((t!=null?t.getText():null))) addRecognitionError("Invalid (reserved) user type name " + (t!=null?t.getText():null)); id = new ColumnIdentifier((t!=null?t.getText():null), false);
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1575:7: t= QUOTED_NAME
+ {
+ t=(Token)match(input,QUOTED_NAME,FOLLOW_QUOTED_NAME_in_non_type_ident11272);
+ id = new ColumnIdentifier((t!=null?t.getText():null), true);
+ }
+ break;
+ case 3 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1576:7: k= basic_unreserved_keyword
+ {
+ pushFollow(FOLLOW_basic_unreserved_keyword_in_non_type_ident11297);
+ k=basic_unreserved_keyword();
+ state._fsp--;
+
+ id = new ColumnIdentifier(k, false);
+ }
+ break;
+ case 4 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1577:7: kk= K_KEY
+ {
+ kk=(Token)match(input,K_KEY,FOLLOW_K_KEY_in_non_type_ident11309);
+ id = new ColumnIdentifier((kk!=null?kk.getText():null), false);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return id;
+ }
+ // $ANTLR end "non_type_ident"
+
+
+
+ // $ANTLR start "unreserved_keyword"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1580:1: unreserved_keyword returns [String str] : (u= unreserved_function_keyword |k= ( K_TTL | K_COUNT | K_WRITETIME | K_KEY ) );
+ public final String unreserved_keyword() throws RecognitionException {
+ String str = null;
+
+
+ Token k=null;
+ String u =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1581:5: (u= unreserved_function_keyword |k= ( K_TTL | K_COUNT | K_WRITETIME | K_KEY ) )
+ int alt199=2;
+ int LA199_0 = input.LA(1);
+ if ( ((LA199_0 >= K_AGGREGATE && LA199_0 <= K_ALL)||LA199_0==K_AS||LA199_0==K_ASCII||(LA199_0 >= K_BIGINT && LA199_0 <= K_BOOLEAN)||(LA199_0 >= K_CALLED && LA199_0 <= K_CLUSTERING)||(LA199_0 >= K_COMPACT && LA199_0 <= K_CONTAINS)||LA199_0==K_COUNTER||(LA199_0 >= K_CUSTOM && LA199_0 <= K_DECIMAL)||(LA199_0 >= K_DISTINCT && LA199_0 <= K_DOUBLE)||(LA199_0 >= K_EXISTS && LA199_0 <= K_FLOAT)||LA199_0==K_FROZEN||(LA199_0 >= K_FUNCTION && LA199_0 <= K_FUNCTIONS)||LA199_0==K_INET||(LA199_0 >= K_INITCOND && LA199_0 <= K_INPUT)||LA199_0==K_INT||LA199_0==K_JSON||LA199_0==K_KEYS||(LA199_0 >= K_KEYSPACES && LA199_0 <= K_LIKE)||(LA199_0 >= K_LIST && LA199_0 <= K_MAP)||LA199_0==K_NOLOGIN||LA199_0==K_NOSUPERUSER||LA199_0==K_OPTIONS||(LA199_0 >= K_PARTITION && LA199_0 <= K_PERMISSIONS)||LA199_0==K_RETURNS||(LA199_0 >= K_ROLE && LA199_0 <= K_ROLES)||(LA199_0 >= K_SFUNC && LA199_0 <= K_TINYINT)||LA199_0==K_TRIGGER||(LA199_0 >= K_TUPLE && LA199_0 <= K_TYPE)||(LA199_0 >= K_USER && LA199_0 <= K_USERS)||(LA199_0 >= K_UUID && LA199_0 <= K_VARINT)) ) {
+ alt199=1;
+ }
+ else if ( (LA199_0==K_COUNT||LA199_0==K_KEY||LA199_0==K_TTL||LA199_0==K_WRITETIME) ) {
+ alt199=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 199, 0, input);
+ throw nvae;
+ }
+
+ switch (alt199) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1581:7: u= unreserved_function_keyword
+ {
+ pushFollow(FOLLOW_unreserved_function_keyword_in_unreserved_keyword11352);
+ u=unreserved_function_keyword();
+ state._fsp--;
+
+ str = u;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1582:7: k= ( K_TTL | K_COUNT | K_WRITETIME | K_KEY )
+ {
+ k=input.LT(1);
+ if ( input.LA(1)==K_COUNT||input.LA(1)==K_KEY||input.LA(1)==K_TTL||input.LA(1)==K_WRITETIME ) {
+ input.consume();
+ state.errorRecovery=false;
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ throw mse;
+ }
+ str = (k!=null?k.getText():null);
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return str;
+ }
+ // $ANTLR end "unreserved_keyword"
+
+
+
+ // $ANTLR start "unreserved_function_keyword"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1585:1: unreserved_function_keyword returns [String str] : (u= basic_unreserved_keyword |t= native_type );
+ public final String unreserved_function_keyword() throws RecognitionException {
+ String str = null;
+
+
+ String u =null;
+ CQL3Type t =null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1586:5: (u= basic_unreserved_keyword |t= native_type )
+ int alt200=2;
+ int LA200_0 = input.LA(1);
+ if ( ((LA200_0 >= K_AGGREGATE && LA200_0 <= K_ALL)||LA200_0==K_AS||(LA200_0 >= K_CALLED && LA200_0 <= K_CLUSTERING)||(LA200_0 >= K_COMPACT && LA200_0 <= K_CONTAINS)||LA200_0==K_CUSTOM||LA200_0==K_DISTINCT||(LA200_0 >= K_EXISTS && LA200_0 <= K_FINALFUNC)||LA200_0==K_FROZEN||(LA200_0 >= K_FUNCTION && LA200_0 <= K_FUNCTIONS)||(LA200_0 >= K_INITCOND && LA200_0 <= K_INPUT)||LA200_0==K_JSON||LA200_0==K_KEYS||(LA200_0 >= K_KEYSPACES && LA200_0 <= K_LIKE)||(LA200_0 >= K_LIST && LA200_0 <= K_MAP)||LA200_0==K_NOLOGIN||LA200_0==K_NOSUPERUSER||LA200_0==K_OPTIONS||(LA200_0 >= K_PARTITION && LA200_0 <= K_PERMISSIONS)||LA200_0==K_RETURNS||(LA200_0 >= K_ROLE && LA200_0 <= K_ROLES)||LA200_0==K_SFUNC||(LA200_0 >= K_STATIC && LA200_0 <= K_SUPERUSER)||LA200_0==K_TRIGGER||(LA200_0 >= K_TUPLE && LA200_0 <= K_TYPE)||(LA200_0 >= K_USER && LA200_0 <= K_USERS)||LA200_0==K_VALUES) ) {
+ alt200=1;
+ }
+ else if ( (LA200_0==K_ASCII||(LA200_0 >= K_BIGINT && LA200_0 <= K_BOOLEAN)||LA200_0==K_COUNTER||(LA200_0 >= K_DATE && LA200_0 <= K_DECIMAL)||LA200_0==K_DOUBLE||LA200_0==K_FLOAT||LA200_0==K_INET||LA200_0==K_INT||LA200_0==K_SMALLINT||(LA200_0 >= K_TEXT && LA200_0 <= K_TINYINT)||LA200_0==K_UUID||(LA200_0 >= K_VARCHAR && LA200_0 <= K_VARINT)) ) {
+ alt200=2;
+ }
+
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 200, 0, input);
+ throw nvae;
+ }
+
+ switch (alt200) {
+ case 1 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1586:7: u= basic_unreserved_keyword
+ {
+ pushFollow(FOLLOW_basic_unreserved_keyword_in_unreserved_function_keyword11407);
+ u=basic_unreserved_keyword();
+ state._fsp--;
+
+ str = u;
+ }
+ break;
+ case 2 :
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1587:7: t= native_type
+ {
+ pushFollow(FOLLOW_native_type_in_unreserved_function_keyword11419);
+ t=native_type();
+ state._fsp--;
+
+ str = t.toString();
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return str;
+ }
+ // $ANTLR end "unreserved_function_keyword"
+
+
+
+ // $ANTLR start "basic_unreserved_keyword"
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1590:1: basic_unreserved_keyword returns [String str] : k= ( K_KEYS | K_AS | K_CLUSTERING | K_COMPACT | K_STORAGE | K_TYPE | K_VALUES | K_MAP | K_LIST | K_FILTERING | K_PERMISSION | K_PERMISSIONS | K_KEYSPACES | K_ALL | K_USER | K_USERS | K_ROLE | K_ROLES | K_SUPERUSER | K_NOSUPERUSER | K_LOGIN | K_NOLOGIN | K_OPTIONS | K_PASSWORD | K_EXISTS | K_CUSTOM | K_TRIGGER | K_DISTINCT | K_CONTAINS | K_STATIC | K_FROZEN | K_TUPLE | K_FUNCTION | K_FUNCTIONS | K_AGGREGATE | K_SFUNC | K_STYPE | K_FINALFUNC | K_INITCOND | K_RETURNS | K_LANGUAGE | K_JSON | K_CALLED | K_INPUT | K_LIKE | K_PER | K_PARTITION ) ;
+ public final String basic_unreserved_keyword() throws RecognitionException {
+ String str = null;
+
+
+ Token k=null;
+
+ try {
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1591:5: (k= ( K_KEYS | K_AS | K_CLUSTERING | K_COMPACT | K_STORAGE | K_TYPE | K_VALUES | K_MAP | K_LIST | K_FILTERING | K_PERMISSION | K_PERMISSIONS | K_KEYSPACES | K_ALL | K_USER | K_USERS | K_ROLE | K_ROLES | K_SUPERUSER | K_NOSUPERUSER | K_LOGIN | K_NOLOGIN | K_OPTIONS | K_PASSWORD | K_EXISTS | K_CUSTOM | K_TRIGGER | K_DISTINCT | K_CONTAINS | K_STATIC | K_FROZEN | K_TUPLE | K_FUNCTION | K_FUNCTIONS | K_AGGREGATE | K_SFUNC | K_STYPE | K_FINALFUNC | K_INITCOND | K_RETURNS | K_LANGUAGE | K_JSON | K_CALLED | K_INPUT | K_LIKE | K_PER | K_PARTITION ) )
+ // /Users/tanmeshnm/dev/rocksandra/rocksandra/src/java/org/apache/cassandra/cql3/Cql.g:1591:7: k= ( K_KEYS | K_AS | K_CLUSTERING | K_COMPACT | K_STORAGE | K_TYPE | K_VALUES | K_MAP | K_LIST | K_FILTERING | K_PERMISSION | K_PERMISSIONS | K_KEYSPACES | K_ALL | K_USER | K_USERS | K_ROLE | K_ROLES | K_SUPERUSER | K_NOSUPERUSER | K_LOGIN | K_NOLOGIN | K_OPTIONS | K_PASSWORD | K_EXISTS | K_CUSTOM | K_TRIGGER | K_DISTINCT | K_CONTAINS | K_STATIC | K_FROZEN | K_TUPLE | K_FUNCTION | K_FUNCTIONS | K_AGGREGATE | K_SFUNC | K_STYPE | K_FINALFUNC | K_INITCOND | K_RETURNS | K_LANGUAGE | K_JSON | K_CALLED | K_INPUT | K_LIKE | K_PER | K_PARTITION )
+ {
+ k=input.LT(1);
+ if ( (input.LA(1) >= K_AGGREGATE && input.LA(1) <= K_ALL)||input.LA(1)==K_AS||(input.LA(1) >= K_CALLED && input.LA(1) <= K_CLUSTERING)||(input.LA(1) >= K_COMPACT && input.LA(1) <= K_CONTAINS)||input.LA(1)==K_CUSTOM||input.LA(1)==K_DISTINCT||(input.LA(1) >= K_EXISTS && input.LA(1) <= K_FINALFUNC)||input.LA(1)==K_FROZEN||(input.LA(1) >= K_FUNCTION && input.LA(1) <= K_FUNCTIONS)||(input.LA(1) >= K_INITCOND && input.LA(1) <= K_INPUT)||input.LA(1)==K_JSON||input.LA(1)==K_KEYS||(input.LA(1) >= K_KEYSPACES && input.LA(1) <= K_LIKE)||(input.LA(1) >= K_LIST && input.LA(1) <= K_MAP)||input.LA(1)==K_NOLOGIN||input.LA(1)==K_NOSUPERUSER||input.LA(1)==K_OPTIONS||(input.LA(1) >= K_PARTITION && input.LA(1) <= K_PERMISSIONS)||input.LA(1)==K_RETURNS||(input.LA(1) >= K_ROLE && input.LA(1) <= K_ROLES)||input.LA(1)==K_SFUNC||(input.LA(1) >= K_STATIC && input.LA(1) <= K_SUPERUSER)||input.LA(1)==K_TRIGGER||(input.LA(1) >= K_TUPLE && input.LA(1) <= K_TYPE)||(input.LA(1) >= K_USER && input.LA(1) <= K_USERS)||input.LA(1)==K_VALUES ) {
+ input.consume();
+ state.errorRecovery=false;
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ throw mse;
+ }
+ str = (k!=null?k.getText():null);
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ // do for sure before leaving
+ }
+ return str;
+ }
+ // $ANTLR end "basic_unreserved_keyword"
+
+ // Delegated rules
+
+
+ protected DFA2 dfa2 = new DFA2(this);
+ protected DFA14 dfa14 = new DFA14(this);
+ protected DFA42 dfa42 = new DFA42(this);
+ protected DFA105 dfa105 = new DFA105(this);
+ protected DFA144 dfa144 = new DFA144(this);
+ protected DFA145 dfa145 = new DFA145(this);
+ protected DFA163 dfa163 = new DFA163(this);
+ protected DFA165 dfa165 = new DFA165(this);
+ protected DFA167 dfa167 = new DFA167(this);
+ protected DFA169 dfa169 = new DFA169(this);
+ protected DFA172 dfa172 = new DFA172(this);
+ protected DFA178 dfa178 = new DFA178(this);
+ protected DFA184 dfa184 = new DFA184(this);
+ protected DFA183 dfa183 = new DFA183(this);
+ protected DFA193 dfa193 = new DFA193(this);
+ static final String DFA2_eotS =
+ "\63\uffff";
+ static final String DFA2_eofS =
+ "\63\uffff";
+ static final String DFA2_minS =
+ "\1\34\7\uffff\2\31\1\53\2\24\1\32\10\uffff\1\160\22\uffff\1\145\2\uffff"+
+ "\1\100\5\uffff\1\31";
+ static final String DFA2_maxS =
+ "\1\u008b\7\uffff\3\u008c\2\u00a3\1\u008d\10\uffff\1\160\22\uffff\1\u0082"+
+ "\2\uffff\1\155\5\uffff\1\103";
+ static final String DFA2_acceptS =
+ "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\6\uffff\1\10\1\11\1\23\1\27\1\31"+
+ "\1\40\1\46\1\12\1\uffff\1\34\1\36\1\13\1\14\1\15\1\25\1\30\1\33\1\35\1"+
+ "\37\1\42\1\47\1\16\1\17\1\24\1\32\1\41\1\50\1\uffff\1\20\1\44\1\uffff"+
+ "\1\21\1\45\1\26\1\43\1\22\1\uffff";
+ static final String DFA2_specialS =
+ "\63\uffff}>";
+ static final String[] DFA2_transitionS = {
+ "\1\12\7\uffff\1\4\13\uffff\1\10\3\uffff\1\5\4\uffff\1\11\13\uffff\1\13"+
+ "\7\uffff\1\2\13\uffff\1\15\30\uffff\1\14\2\uffff\1\1\17\uffff\1\7\4\uffff"+
+ "\1\3\1\6",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\30\21\uffff\1\17\5\uffff\1\25\21\uffff\1\27\4\uffff\1\25\13\uffff"+
+ "\1\16\7\uffff\1\24\12\uffff\1\26\13\uffff\1\23\20\uffff\1\21\3\uffff"+
+ "\1\22\3\uffff\1\20",
+ "\1\40\21\uffff\1\32\27\uffff\1\37\4\uffff\1\33\13\uffff\1\31\7\uffff"+
+ "\1\42\26\uffff\1\41\20\uffff\1\35\3\uffff\1\36\3\uffff\1\34",
+ "\1\43\50\uffff\1\44\7\uffff\1\50\26\uffff\1\47\24\uffff\1\46\3\uffff"+
+ "\1\45",
+ "\1\53\4\uffff\1\53\1\51\1\uffff\1\52\2\uffff\1\53\1\uffff\1\53\1\52"+
+ "\2\uffff\3\53\1\uffff\2\53\1\uffff\4\53\1\52\3\53\2\uffff\1\52\2\53\1"+
+ "\52\1\uffff\1\52\4\53\1\uffff\1\53\1\uffff\2\53\4\uffff\1\53\1\uffff"+
+ "\2\53\1\uffff\1\53\2\uffff\3\53\1\uffff\3\53\1\uffff\3\53\1\uffff\1\52"+
+ "\1\uffff\1\53\1\uffff\1\53\4\uffff\1\53\2\uffff\5\53\3\uffff\1\53\1\uffff"+
+ "\2\53\1\52\1\uffff\13\53\2\uffff\1\53\1\uffff\3\53\3\uffff\2\53\1\uffff"+
+ "\4\53\3\uffff\1\53\10\uffff\2\53\2\uffff\1\53",
+ "\1\56\4\uffff\1\56\1\54\1\uffff\1\55\2\uffff\1\56\1\uffff\1\56\1\55"+
+ "\2\uffff\3\56\1\uffff\2\56\1\uffff\4\56\1\55\3\56\2\uffff\1\55\2\56\1"+
+ "\55\1\uffff\1\55\4\56\1\uffff\1\56\1\uffff\2\56\4\uffff\1\56\1\uffff"+
+ "\2\56\1\uffff\1\56\2\uffff\3\56\1\uffff\3\56\1\uffff\3\56\1\uffff\1\55"+
+ "\1\uffff\1\56\1\uffff\1\56\4\uffff\1\56\2\uffff\5\56\3\uffff\1\56\1\uffff"+
+ "\2\56\1\55\1\uffff\13\56\2\uffff\1\56\1\uffff\3\56\3\uffff\2\56\1\uffff"+
+ "\4\56\3\uffff\1\56\10\uffff\2\56\2\uffff\1\56",
+ "\1\61\1\uffff\1\61\5\uffff\1\61\15\uffff\1\61\5\uffff\1\61\2\uffff\1"+
+ "\61\1\uffff\1\61\41\uffff\1\61\26\uffff\1\60\1\61\27\uffff\1\57",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\62",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\52\7\uffff\1\52\24\uffff\1\53",
+ "",
+ "",
+ "\1\56\44\uffff\1\55\7\uffff\1\55",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\30\51\uffff\1\27"
+ };
+
+ static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
+ static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
+ static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
+ static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
+ static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
+ static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
+ static final short[][] DFA2_transition;
+
+ static {
+ int numStates = DFA2_transitionS.length;
+ DFA2_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA14_transitionS = {
+ "\1\1\4\uffff\2\3\4\uffff\1\3\1\uffff\1\4\3\uffff\1\5\1\6\1\7\1\uffff"+
+ "\2\3\1\uffff\2\3\1\30\1\10\1\uffff\1\3\1\26\1\11\3\uffff\1\3\1\12\3\uffff"+
+ "\3\3\1\13\1\uffff\1\3\1\uffff\2\3\4\uffff\1\14\1\uffff\2\3\1\uffff\1"+
+ "\15\2\uffff\1\3\1\33\1\3\1\uffff\3\3\1\uffff\3\3\3\uffff\1\3\1\uffff"+
+ "\1\3\4\uffff\1\3\2\uffff\5\3\3\uffff\1\3\1\uffff\2\3\2\uffff\1\3\1\16"+
+ "\4\3\1\17\1\27\1\20\1\25\1\21\1\uffff\1\34\1\3\1\uffff\1\32\2\3\3\uffff"+
+ "\2\3\1\uffff\1\22\1\3\1\23\1\24\3\uffff\1\31\10\uffff\1\34\1\2",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\37\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\40\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\155\uffff\1\41\1\36\1\uffff\1\36\1\uffff\1\35",
+ "\1\36\40\uffff\1\36\156\uffff\1\36\1\uffff\1\36\1\uffff\1\35",
+ "",
+ "\1\42\4\uffff\2\44\4\uffff\1\44\1\uffff\1\45\3\uffff\1\46\1\47\1\50"+
+ "\1\uffff\2\44\1\uffff\2\44\1\71\1\51\1\uffff\1\44\1\67\1\52\3\uffff\1"+
+ "\44\1\53\3\uffff\3\44\1\54\1\uffff\1\44\1\uffff\2\44\4\uffff\1\55\1\uffff"+
+ "\2\44\1\uffff\1\56\2\uffff\1\44\1\36\1\44\1\uffff\3\44\1\uffff\3\44\3"+
+ "\uffff\1\44\1\uffff\1\44\4\uffff\1\44\2\uffff\5\44\3\uffff\1\44\1\uffff"+
+ "\2\44\2\uffff\1\44\1\57\4\44\1\60\1\70\1\61\1\66\1\62\1\uffff\1\34\1"+
+ "\44\1\uffff\1\36\2\44\3\uffff\2\44\1\uffff\1\63\1\44\1\64\1\65\3\uffff"+
+ "\1\36\11\uffff\1\43",
+ "",
+ "\1\34\1\72\3\uffff\2\34\4\uffff\1\34\1\uffff\1\34\3\uffff\3\34\1\uffff"+
+ "\2\34\1\uffff\4\34\1\uffff\3\34\3\uffff\2\34\3\uffff\4\34\1\uffff\1\34"+
+ "\1\uffff\2\34\4\uffff\1\34\1\uffff\2\34\1\uffff\1\34\2\uffff\3\34\1\uffff"+
+ "\3\34\1\uffff\3\34\3\uffff\1\34\1\uffff\1\34\4\uffff\1\34\2\uffff\5\34"+
+ "\3\uffff\1\34\1\uffff\2\34\2\uffff\13\34\1\uffff\2\34\1\uffff\3\34\3"+
+ "\uffff\2\34\1\uffff\4\34\3\uffff\1\34\10\uffff\2\34\16\uffff\1\34\14"+
+ "\uffff\1\72",
+ "",
+ "",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ "\1\36\40\uffff\1\36\155\uffff\1\34\1\36\1\uffff\1\36\1\uffff\1\36",
+ ""
+ };
+
+ static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
+ static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
+ static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
+ static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
+ static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
+ static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
+ static final short[][] DFA14_transition;
+
+ static {
+ int numStates = DFA14_transitionS.length;
+ DFA14_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA42_transitionS = {
+ "\1\1\4\uffff\2\3\4\uffff\1\3\1\uffff\1\4\3\uffff\1\5\1\6\1\7\1\uffff"+
+ "\2\3\1\uffff\2\3\1\30\1\10\1\uffff\1\3\1\26\1\11\3\uffff\1\3\1\12\3\uffff"+
+ "\3\3\1\13\1\uffff\1\3\1\uffff\2\3\4\uffff\1\14\1\uffff\2\3\1\uffff\1"+
+ "\15\2\uffff\1\3\1\30\1\3\1\uffff\3\3\1\uffff\3\3\3\uffff\1\3\1\uffff"+
+ "\1\3\4\uffff\1\3\2\uffff\5\3\3\uffff\1\3\1\uffff\2\3\2\uffff\1\3\1\16"+
+ "\4\3\1\17\1\27\1\20\1\25\1\21\2\uffff\1\3\1\uffff\1\30\2\3\3\uffff\2"+
+ "\3\1\uffff\1\22\1\3\1\23\1\24\3\uffff\1\30\11\uffff\1\2",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "\1\31\160\uffff\1\31\11\uffff\1\32",
+ "",
+ ""
+ };
+
+ static final short[] DFA42_eot = DFA.unpackEncodedString(DFA42_eotS);
+ static final short[] DFA42_eof = DFA.unpackEncodedString(DFA42_eofS);
+ static final char[] DFA42_min = DFA.unpackEncodedStringToUnsignedChars(DFA42_minS);
+ static final char[] DFA42_max = DFA.unpackEncodedStringToUnsignedChars(DFA42_maxS);
+ static final short[] DFA42_accept = DFA.unpackEncodedString(DFA42_acceptS);
+ static final short[] DFA42_special = DFA.unpackEncodedString(DFA42_specialS);
+ static final short[][] DFA42_transition;
+
+ static {
+ int numStates = DFA42_transitionS.length;
+ DFA42_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA105_transitionS = {
+ "\1\2\3\uffff\1\1\34\uffff\1\3\65\uffff\1\5\45\uffff\1\4",
+ "",
+ "",
+ "\1\6\4\uffff\2\10\4\uffff\1\10\1\uffff\1\11\3\uffff\1\12\1\13\1\14\1"+
+ "\uffff\2\10\1\uffff\2\10\1\35\1\15\1\uffff\1\10\1\33\1\16\3\uffff\1\10"+
+ "\1\17\3\uffff\3\10\1\20\1\uffff\1\10\1\uffff\2\10\4\uffff\1\21\1\uffff"+
+ "\2\10\1\uffff\1\22\2\uffff\1\10\1\35\1\10\1\uffff\3\10\1\uffff\3\10\3"+
+ "\uffff\1\10\1\uffff\1\10\4\uffff\1\10\2\uffff\5\10\3\uffff\1\10\1\uffff"+
+ "\2\10\2\uffff\1\10\1\23\4\10\1\24\1\34\1\25\1\32\1\26\2\uffff\1\10\1"+
+ "\uffff\1\35\2\10\3\uffff\2\10\1\uffff\1\27\1\10\1\30\1\31\3\uffff\1\35"+
+ "\11\uffff\1\7",
+ "",
+ "",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "\1\37\46\uffff\1\36",
+ "",
+ ""
+ };
+
+ static final short[] DFA105_eot = DFA.unpackEncodedString(DFA105_eotS);
+ static final short[] DFA105_eof = DFA.unpackEncodedString(DFA105_eofS);
+ static final char[] DFA105_min = DFA.unpackEncodedStringToUnsignedChars(DFA105_minS);
+ static final char[] DFA105_max = DFA.unpackEncodedStringToUnsignedChars(DFA105_maxS);
+ static final short[] DFA105_accept = DFA.unpackEncodedString(DFA105_acceptS);
+ static final short[] DFA105_special = DFA.unpackEncodedString(DFA105_specialS);
+ static final short[][] DFA105_transition;
+
+ static {
+ int numStates = DFA105_transitionS.length;
+ DFA105_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA144_transitionS = {
+ "\1\1\4\uffff\2\3\4\uffff\1\3\1\uffff\1\4\3\uffff\1\5\1\6\1\7\1\uffff"+
+ "\2\3\1\uffff\2\3\1\30\1\10\1\uffff\1\3\1\26\1\11\3\uffff\1\3\1\12\3\uffff"+
+ "\3\3\1\13\1\uffff\1\3\1\uffff\2\3\4\uffff\1\14\1\uffff\2\3\1\uffff\1"+
+ "\15\2\uffff\1\3\1\30\1\3\1\uffff\3\3\1\uffff\3\3\3\uffff\1\3\1\uffff"+
+ "\1\3\4\uffff\1\3\2\uffff\5\3\3\uffff\1\3\1\uffff\2\3\2\uffff\1\3\1\16"+
+ "\4\3\1\17\1\27\1\20\1\25\1\21\2\uffff\1\3\1\uffff\1\30\2\3\3\uffff\2"+
+ "\3\1\uffff\1\22\1\3\1\23\1\24\3\uffff\1\30\10\uffff\1\31\1\2",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "\1\32\1\uffff\1\33",
+ "",
+ ""
+ };
+
+ static final short[] DFA144_eot = DFA.unpackEncodedString(DFA144_eotS);
+ static final short[] DFA144_eof = DFA.unpackEncodedString(DFA144_eofS);
+ static final char[] DFA144_min = DFA.unpackEncodedStringToUnsignedChars(DFA144_minS);
+ static final char[] DFA144_max = DFA.unpackEncodedStringToUnsignedChars(DFA144_maxS);
+ static final short[] DFA144_accept = DFA.unpackEncodedString(DFA144_acceptS);
+ static final short[] DFA144_special = DFA.unpackEncodedString(DFA144_specialS);
+ static final short[][] DFA144_transition;
+
+ static {
+ int numStates = DFA144_transitionS.length;
+ DFA144_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA145_transitionS = {
+ "\1\1\4\uffff\2\3\4\uffff\1\3\1\uffff\1\4\3\uffff\1\5\1\6\1\7\1\uffff"+
+ "\2\3\1\uffff\2\3\1\30\1\10\1\uffff\1\3\1\26\1\11\3\uffff\1\3\1\12\3\uffff"+
+ "\3\3\1\13\1\uffff\1\3\1\uffff\2\3\4\uffff\1\14\1\uffff\2\3\1\uffff\1"+
+ "\15\2\uffff\1\3\1\30\1\3\1\uffff\3\3\1\uffff\3\3\3\uffff\1\3\1\uffff"+
+ "\1\3\4\uffff\1\3\2\uffff\5\3\3\uffff\1\3\1\uffff\2\3\2\uffff\1\3\1\16"+
+ "\4\3\1\17\1\27\1\20\1\25\1\21\2\uffff\1\3\1\uffff\1\30\2\3\3\uffff\2"+
+ "\3\1\uffff\1\22\1\3\1\23\1\24\3\uffff\1\30\10\uffff\1\31\1\2",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "\1\33\2\uffff\2\33\2\uffff\1\33\31\uffff\1\33\6\uffff\1\33\20\uffff"+
+ "\1\33\6\uffff\1\33\7\uffff\1\33\3\uffff\1\33\3\uffff\1\33\2\uffff\1\33"+
+ "\2\uffff\2\33\6\uffff\1\33\13\uffff\1\33\13\uffff\1\33\5\uffff\2\33\30"+
+ "\uffff\1\33\4\uffff\1\32\1\uffff\1\33",
+ "",
+ ""
+ };
+
+ static final short[] DFA145_eot = DFA.unpackEncodedString(DFA145_eotS);
+ static final short[] DFA145_eof = DFA.unpackEncodedString(DFA145_eofS);
+ static final char[] DFA145_min = DFA.unpackEncodedStringToUnsignedChars(DFA145_minS);
+ static final char[] DFA145_max = DFA.unpackEncodedStringToUnsignedChars(DFA145_maxS);
+ static final short[] DFA145_accept = DFA.unpackEncodedString(DFA145_acceptS);
+ static final short[] DFA145_special = DFA.unpackEncodedString(DFA145_specialS);
+ static final short[][] DFA145_transition;
+
+ static {
+ int numStates = DFA145_transitionS.length;
+ DFA145_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA163_transitionS = {
+ "\1\1\7\uffff\1\1\3\uffff\1\1\2\uffff\1\1\64\uffff\1\1\23\uffff\1\1\4"+
+ "\uffff\1\5\73\uffff\1\7\3\uffff\1\1\2\uffff\1\1\7\uffff\1\4\3\uffff\1"+
+ "\1\1\uffff\1\6\6\uffff\1\2\3\uffff\1\3",
+ "",
+ "",
+ "\1\2\7\uffff\1\2\3\uffff\1\2\1\uffff\1\10\1\2\3\uffff\2\12\4\uffff\1"+
+ "\12\1\uffff\1\13\3\uffff\1\14\1\15\1\16\1\uffff\2\12\1\uffff\2\12\1\37"+
+ "\1\17\1\uffff\1\12\1\35\1\20\3\uffff\1\12\1\21\3\uffff\3\12\1\22\1\uffff"+
+ "\1\12\1\uffff\2\12\4\uffff\1\23\1\2\2\12\1\uffff\1\24\2\uffff\1\12\1"+
+ "\40\1\12\1\uffff\3\12\1\uffff\3\12\2\uffff\1\2\1\12\1\uffff\1\12\1\uffff"+
+ "\1\2\2\uffff\1\12\2\uffff\5\12\3\uffff\1\12\1\uffff\2\12\2\uffff\1\12"+
+ "\1\25\4\12\1\26\1\36\1\27\1\34\1\30\1\uffff\1\2\1\12\1\uffff\1\40\2\12"+
+ "\3\uffff\2\12\1\uffff\1\31\1\12\1\32\1\33\3\uffff\1\40\10\uffff\1\2\1"+
+ "\11\2\uffff\1\2\2\uffff\1\2\7\uffff\1\2\3\uffff\1\2\1\uffff\1\2\6\uffff"+
+ "\1\2\3\uffff\2\2",
+ "",
+ "",
+ "",
+ "",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\4\uffff\1\2\1\41",
+ "\1\2\1\41",
+ ""
+ };
+
+ static final short[] DFA163_eot = DFA.unpackEncodedString(DFA163_eotS);
+ static final short[] DFA163_eof = DFA.unpackEncodedString(DFA163_eofS);
+ static final char[] DFA163_min = DFA.unpackEncodedStringToUnsignedChars(DFA163_minS);
+ static final char[] DFA163_max = DFA.unpackEncodedStringToUnsignedChars(DFA163_maxS);
+ static final short[] DFA163_accept = DFA.unpackEncodedString(DFA163_acceptS);
+ static final short[] DFA163_special = DFA.unpackEncodedString(DFA163_specialS);
+ static final short[][] DFA163_transition;
+
+ static {
+ int numStates = DFA163_transitionS.length;
+ DFA163_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA165_transitionS = {
+ "\1\1\4\uffff\2\3\4\uffff\1\3\1\uffff\1\4\3\uffff\1\5\1\6\1\7\1\uffff"+
+ "\2\3\1\uffff\2\3\1\30\1\10\1\uffff\1\3\1\26\1\11\3\uffff\1\3\1\12\3\uffff"+
+ "\3\3\1\13\1\uffff\1\3\1\uffff\2\3\4\uffff\1\14\1\uffff\2\3\1\uffff\1"+
+ "\15\2\uffff\1\3\1\31\1\3\1\uffff\3\3\1\uffff\3\3\3\uffff\1\3\1\uffff"+
+ "\1\3\4\uffff\1\3\2\uffff\5\3\3\uffff\1\3\1\uffff\2\3\2\uffff\1\3\1\16"+
+ "\4\3\1\17\1\27\1\20\1\25\1\21\1\uffff\1\32\1\3\1\uffff\1\31\2\3\3\uffff"+
+ "\2\3\1\uffff\1\22\1\3\1\23\1\24\3\uffff\1\31\10\uffff\1\31\1\2",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "\1\32\4\uffff\1\31\1\uffff\1\32",
+ "",
+ ""
+ };
+
+ static final short[] DFA165_eot = DFA.unpackEncodedString(DFA165_eotS);
+ static final short[] DFA165_eof = DFA.unpackEncodedString(DFA165_eofS);
+ static final char[] DFA165_min = DFA.unpackEncodedStringToUnsignedChars(DFA165_minS);
+ static final char[] DFA165_max = DFA.unpackEncodedStringToUnsignedChars(DFA165_maxS);
+ static final short[] DFA165_accept = DFA.unpackEncodedString(DFA165_acceptS);
+ static final short[] DFA165_special = DFA.unpackEncodedString(DFA165_specialS);
+ static final short[][] DFA165_transition;
+
+ static {
+ int numStates = DFA165_transitionS.length;
+ DFA165_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA167_transitionS = {
+ "\1\1\4\uffff\2\3\4\uffff\1\3\1\uffff\1\4\3\uffff\1\5\1\6\1\7\1\uffff"+
+ "\2\3\1\uffff\2\3\1\30\1\10\1\uffff\1\3\1\26\1\11\3\uffff\1\3\1\12\3\uffff"+
+ "\3\3\1\13\1\uffff\1\3\1\uffff\2\3\4\uffff\1\14\1\uffff\2\3\1\uffff\1"+
+ "\15\2\uffff\1\3\1\33\1\3\1\uffff\3\3\1\uffff\3\3\3\uffff\1\3\1\uffff"+
+ "\1\3\4\uffff\1\3\2\uffff\5\3\3\uffff\1\3\1\uffff\2\3\2\uffff\1\3\1\16"+
+ "\4\3\1\17\1\27\1\20\1\25\1\21\1\uffff\1\32\1\3\1\uffff\1\33\2\3\3\uffff"+
+ "\2\3\1\uffff\1\22\1\3\1\23\1\24\3\uffff\1\33\10\uffff\1\31\1\2",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\35\4\uffff\1\34",
+ "\1\34",
+ "\1\35",
+ "\1\34",
+ "\1\36\4\uffff\2\40\4\uffff\1\40\1\uffff\1\41\3\uffff\1\42\1\43\1\44"+
+ "\1\uffff\2\40\1\uffff\2\40\1\65\1\45\1\uffff\1\40\1\63\1\46\3\uffff\1"+
+ "\40\1\47\3\uffff\3\40\1\50\1\uffff\1\40\1\uffff\2\40\4\uffff\1\51\1\uffff"+
+ "\2\40\1\uffff\1\52\2\uffff\1\40\1\uffff\1\40\1\uffff\3\40\1\uffff\3\40"+
+ "\3\uffff\1\40\1\uffff\1\40\4\uffff\1\40\2\uffff\5\40\3\uffff\1\40\1\uffff"+
+ "\2\40\2\uffff\1\40\1\53\4\40\1\54\1\64\1\55\1\62\1\56\1\uffff\1\32\1"+
+ "\40\2\uffff\2\40\3\uffff\2\40\1\uffff\1\57\1\40\1\60\1\61\15\uffff\1"+
+ "\37",
+ "\1\67\7\uffff\1\67\3\uffff\1\67\1\uffff\2\67\3\uffff\2\67\4\uffff\1"+
+ "\67\1\uffff\1\67\3\uffff\3\67\1\uffff\2\67\1\uffff\4\67\1\uffff\3\67"+
+ "\3\uffff\2\67\3\uffff\4\67\1\uffff\1\67\1\uffff\2\67\4\uffff\4\67\1\uffff"+
+ "\1\67\2\uffff\3\67\1\uffff\3\67\1\uffff\3\67\2\uffff\2\67\1\uffff\1\67"+
+ "\1\uffff\1\67\2\uffff\1\67\2\uffff\5\67\3\uffff\1\67\1\uffff\2\67\2\uffff"+
+ "\13\67\1\uffff\2\67\1\uffff\3\67\3\uffff\2\67\1\uffff\4\67\3\uffff\1"+
+ "\67\10\uffff\2\67\2\uffff\1\67\2\uffff\1\67\7\uffff\1\67\1\66\2\uffff"+
+ "\1\67\1\uffff\1\67\6\uffff\1\67\3\uffff\1\67",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "\1\35",
+ "",
+ ""
+ };
+
+ static final short[] DFA167_eot = DFA.unpackEncodedString(DFA167_eotS);
+ static final short[] DFA167_eof = DFA.unpackEncodedString(DFA167_eofS);
+ static final char[] DFA167_min = DFA.unpackEncodedStringToUnsignedChars(DFA167_minS);
+ static final char[] DFA167_max = DFA.unpackEncodedStringToUnsignedChars(DFA167_maxS);
+ static final short[] DFA167_accept = DFA.unpackEncodedString(DFA167_acceptS);
+ static final short[] DFA167_special = DFA.unpackEncodedString(DFA167_specialS);
+ static final short[][] DFA167_transition;
+
+ static {
+ int numStates = DFA167_transitionS.length;
+ DFA167_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA169_transitionS = {
+ "\1\1\7\uffff\1\1\3\uffff\1\1\1\uffff\1\4\1\1\3\uffff\2\4\4\uffff\1\4"+
+ "\1\uffff\1\4\3\uffff\3\4\1\uffff\2\4\1\uffff\4\4\1\uffff\3\4\3\uffff"+
+ "\2\4\3\uffff\4\4\1\uffff\1\4\1\uffff\2\4\4\uffff\1\4\1\1\2\4\1\uffff"+
+ "\1\4\2\uffff\3\4\1\uffff\3\4\1\uffff\3\4\2\uffff\1\1\1\4\1\uffff\1\4"+
+ "\1\uffff\1\1\2\uffff\1\4\2\uffff\5\4\3\uffff\1\4\1\uffff\2\4\2\uffff"+
+ "\13\4\1\uffff\2\4\1\uffff\3\4\3\uffff\2\4\1\uffff\4\4\3\uffff\1\4\10"+
+ "\uffff\1\3\1\4\2\uffff\1\1\2\uffff\1\1\7\uffff\1\2\3\uffff\1\1\1\uffff"+
+ "\1\1\6\uffff\1\1\3\uffff\1\1",
+ "",
+ "\1\1\7\uffff\1\1\3\uffff\1\1\1\uffff\1\6\1\1\3\uffff\2\44\4\uffff\1"+
+ "\44\1\uffff\1\11\3\uffff\1\12\1\13\1\14\1\uffff\2\44\1\uffff\2\44\1\35"+
+ "\1\15\1\uffff\1\44\1\33\1\16\3\uffff\1\44\1\17\3\uffff\3\44\1\20\1\uffff"+
+ "\1\42\1\uffff\2\44\4\uffff\1\21\1\1\2\44\1\uffff\1\22\2\uffff\1\44\1"+
+ "\36\1\44\1\uffff\3\44\1\uffff\1\37\1\44\1\10\2\uffff\1\1\1\44\1\uffff"+
+ "\1\44\1\uffff\1\1\2\uffff\1\44\2\uffff\5\44\3\uffff\1\44\1\uffff\2\44"+
+ "\1\uffff\1\41\1\44\1\23\4\44\1\24\1\34\1\25\1\32\1\26\1\uffff\1\1\1\44"+
+ "\1\uffff\1\43\1\40\1\44\3\uffff\2\44\1\uffff\1\27\1\44\1\30\1\31\3\uffff"+
+ "\1\43\10\uffff\1\1\1\7\2\uffff\1\5\2\uffff\1\1\7\uffff\1\1\3\uffff\1"+
+ "\1\1\uffff\1\1\6\uffff\1\1\3\uffff\1\1",
+ "\1\1\1\uffff\2\1\25\uffff\1\1\21\uffff\1\1\6\uffff\1\1\12\uffff\1\1"+
+ "\17\uffff\1\1\2\uffff\1\1\2\uffff\1\1\33\uffff\1\1\11\uffff\1\1\32\uffff"+
+ "\3\1\1\uffff\1\4\2\1\7\uffff\1\1\2\uffff\1\1",
+ "",
+ "\1\45\1\uffff\1\1",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46\2\uffff\1\41",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\1\4\uffff\1\46",
+ "\1\41\3\uffff\1\46",
+ "\1\1\1\41\3\uffff\1\46\2\uffff\1\41",
+ "\1\1\1\41\3\uffff\1\46\2\uffff\1\41",
+ "",
+ "\1\1\1\41\3\uffff\1\46\2\uffff\1\41",
+ "\1\46",
+ "\1\1\1\41\3\uffff\1\46",
+ "\1\41\7\uffff\1\41\3\uffff\1\41\1\uffff\2\41\3\uffff\2\41\1\1\1\uffff"+
+ "\2\1\1\41\1\uffff\1\41\3\uffff\3\41\1\uffff\2\41\1\uffff\4\41\1\uffff"+
+ "\3\41\1\1\2\uffff\2\41\3\uffff\4\41\1\uffff\1\41\1\uffff\2\41\1\uffff"+
+ "\1\1\2\uffff\4\41\1\1\1\41\2\uffff\3\41\1\uffff\3\41\1\1\3\41\2\uffff"+
+ "\2\41\1\uffff\1\41\1\uffff\1\41\2\uffff\1\41\1\uffff\1\1\2\41\1\50\2"+
+ "\41\1\1\2\uffff\1\41\1\uffff\2\41\2\uffff\13\41\1\uffff\2\41\1\uffff"+
+ "\3\41\1\uffff\1\1\1\uffff\2\41\1\uffff\4\41\1\uffff\1\1\1\uffff\1\41"+
+ "\10\uffff\2\41\2\uffff\1\41\2\uffff\1\41\7\uffff\1\41\3\1\1\41\1\uffff"+
+ "\1\47\1\1\5\uffff\1\41\1\uffff\1\1\1\uffff\1\41\1\1",
+ "\1\51\4\uffff\2\53\4\uffff\1\53\1\uffff\1\1\3\uffff\3\1\1\uffff\2\53"+
+ "\1\uffff\2\53\2\1\1\uffff\1\53\2\1\3\uffff\1\53\1\1\3\uffff\3\53\1\1"+
+ "\1\uffff\1\53\1\uffff\2\53\4\uffff\1\1\1\uffff\2\53\1\uffff\1\1\2\uffff"+
+ "\1\53\1\41\1\53\1\uffff\3\53\1\uffff\3\53\3\uffff\1\53\1\uffff\1\53\4"+
+ "\uffff\1\53\2\uffff\5\53\3\uffff\1\53\1\uffff\2\53\2\uffff\1\53\1\1\4"+
+ "\53\5\1\1\uffff\1\1\1\53\2\uffff\2\53\3\uffff\2\53\1\uffff\1\1\1\53\2"+
+ "\1\15\uffff\1\52",
+ "\1\1\7\uffff\1\1\3\uffff\1\1\1\uffff\1\54\1\1\3\uffff\2\56\4\uffff\1"+
+ "\56\1\uffff\1\57\3\uffff\1\60\1\61\1\62\1\uffff\2\56\1\uffff\2\56\1\103"+
+ "\1\63\1\uffff\1\56\1\101\1\64\3\uffff\1\56\1\65\3\uffff\3\56\1\66\1\uffff"+
+ "\1\56\1\uffff\2\56\4\uffff\1\67\1\1\2\56\1\uffff\1\70\2\uffff\1\56\1"+
+ "\104\1\56\1\uffff\3\56\1\uffff\3\56\2\uffff\1\1\1\56\1\uffff\1\56\1\uffff"+
+ "\1\1\2\uffff\1\56\2\uffff\5\56\3\uffff\1\56\1\uffff\2\56\2\uffff\1\56"+
+ "\1\71\4\56\1\72\1\102\1\73\1\100\1\74\1\uffff\1\1\1\56\1\uffff\1\104"+
+ "\2\56\3\uffff\2\56\1\uffff\1\75\1\56\1\76\1\77\3\uffff\1\104\10\uffff"+
+ "\1\1\1\55\2\uffff\1\1\2\uffff\1\1\7\uffff\1\1\3\uffff\1\1\1\uffff\1\1"+
+ "\6\uffff\1\1\3\uffff\1\1",
+ "\1\1\104\uffff\1\41\4\uffff\1\41",
+ "\1\1\1\41",
+ "\1\1\1\41",
+ "\1\1\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\31\uffff\1\1\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41",
+ "\1\41\1\uffff\2\41\25\uffff\1\41\21\uffff\1\41\6\uffff\1\41\12\uffff"+
+ "\1\41\17\uffff\1\41\2\uffff\1\41\2\uffff\1\41\33\uffff\1\41\11\uffff"+
+ "\1\41\32\uffff\3\41\1\uffff\1\1\2\41\7\uffff\1\41\2\uffff\1\41"
+ };
+
+ static final short[] DFA169_eot = DFA.unpackEncodedString(DFA169_eotS);
+ static final short[] DFA169_eof = DFA.unpackEncodedString(DFA169_eofS);
+ static final char[] DFA169_min = DFA.unpackEncodedStringToUnsignedChars(DFA169_minS);
+ static final char[] DFA169_max = DFA.unpackEncodedStringToUnsignedChars(DFA169_maxS);
+ static final short[] DFA169_accept = DFA.unpackEncodedString(DFA169_acceptS);
+ static final short[] DFA169_special = DFA.unpackEncodedString(DFA169_specialS);
+ static final short[][] DFA169_transition;
+
+ static {
+ int numStates = DFA169_transitionS.length;
+ DFA169_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA172_transitionS = {
+ "\1\1\7\uffff\1\1\3\uffff\1\1\1\uffff\1\2\1\1\3\uffff\2\4\4\uffff\1\4"+
+ "\1\uffff\1\5\3\uffff\1\6\1\7\1\10\1\uffff\2\4\1\uffff\2\4\1\31\1\11\1"+
+ "\uffff\1\4\1\27\1\12\3\uffff\1\4\1\13\3\uffff\3\4\1\14\1\uffff\1\4\1"+
+ "\uffff\2\4\4\uffff\1\15\1\1\2\4\1\uffff\1\16\2\uffff\1\4\1\32\1\4\1\uffff"+
+ "\3\4\1\uffff\3\4\2\uffff\1\1\1\4\1\uffff\1\4\1\uffff\1\1\2\uffff\1\4"+
+ "\2\uffff\5\4\3\uffff\1\4\1\uffff\2\4\2\uffff\1\4\1\17\4\4\1\20\1\30\1"+
+ "\21\1\26\1\22\1\uffff\1\1\1\4\1\uffff\1\32\2\4\3\uffff\2\4\1\uffff\1"+
+ "\23\1\4\1\24\1\25\3\uffff\1\32\10\uffff\1\1\1\3\2\uffff\1\1\2\uffff\1"+
+ "\1\7\uffff\1\1\3\uffff\1\1\1\uffff\1\1\6\uffff\1\1\3\uffff\1\1",
+ "",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u0098\uffff\1\1\1\uffff\1\33\1\uffff\1\33\1\1",
+ "\1\34\u009a\uffff\1\33\1\uffff\1\33\1\1",
+ "",
+ ""
+ };
+
+ static final short[] DFA172_eot = DFA.unpackEncodedString(DFA172_eotS);
+ static final short[] DFA172_eof = DFA.unpackEncodedString(DFA172_eofS);
+ static final char[] DFA172_min = DFA.unpackEncodedStringToUnsignedChars(DFA172_minS);
+ static final char[] DFA172_max = DFA.unpackEncodedStringToUnsignedChars(DFA172_maxS);
+ static final short[] DFA172_accept = DFA.unpackEncodedString(DFA172_acceptS);
+ static final short[] DFA172_special = DFA.unpackEncodedString(DFA172_specialS);
+ static final short[][] DFA172_transition;
+
+ static {
+ int numStates = DFA172_transitionS.length;
+ DFA172_transition = new short[numStates][];
+ for (int i=0; i> operations, ColumnIdentifier.Raw key] : (t= term ( '+' c= cident )? |c= cident sig= ( '+' | '-' ) t= term |c= cident i= INTEGER );";
+ }
+ }
+
+ static final String DFA178_eotS =
+ "\34\uffff";
+ static final String DFA178_eofS =
+ "\34\uffff";
+ static final String DFA178_minS =
+ "\1\24\30\u00b8\1\6\2\uffff";
+ static final String DFA178_maxS =
+ "\1\u00a0\30\u00b8\1\u00bf\2\uffff";
+ static final String DFA178_acceptS =
+ "\32\uffff\1\1\1\2";
+ static final String DFA178_specialS =
+ "\34\uffff}>";
+ static final String[] DFA178_transitionS = {
+ "\1\1\4\uffff\2\3\4\uffff\1\3\1\uffff\1\4\3\uffff\1\5\1\6\1\7\1\uffff"+
+ "\2\3\1\uffff\2\3\1\30\1\10\1\uffff\1\3\1\26\1\11\3\uffff\1\3\1\12\3\uffff"+
+ "\3\3\1\13\1\uffff\1\3\1\uffff\2\3\4\uffff\1\14\1\uffff\2\3\1\uffff\1"+
+ "\15\2\uffff\1\3\1\30\1\3\1\uffff\3\3\1\uffff\3\3\3\uffff\1\3\1\uffff"+
+ "\1\3\4\uffff\1\3\2\uffff\5\3\3\uffff\1\3\1\uffff\2\3\2\uffff\1\3\1\16"+
+ "\4\3\1\17\1\27\1\20\1\25\1\21\2\uffff\1\3\1\uffff\1\30\2\3\3\uffff\2"+
+ "\3\1\uffff\1\22\1\3\1\23\1\24\3\uffff\1\30\11\uffff\1\2",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\31",
+ "\1\32\7\uffff\1\32\3\uffff\1\32\2\uffff\1\32\3\uffff\2\32\4\uffff\1"+
+ "\32\1\uffff\1\32\3\uffff\3\32\1\uffff\2\32\1\uffff\4\32\1\uffff\3\32"+
+ "\3\uffff\2\32\3\uffff\4\32\1\uffff\1\32\1\uffff\2\32\4\uffff\4\32\1\uffff"+
+ "\1\32\2\uffff\3\32\1\uffff\3\32\1\uffff\3\32\2\uffff\2\32\1\uffff\1\32"+
+ "\4\uffff\1\32\2\uffff\5\32\3\uffff\1\32\1\uffff\2\32\2\uffff\13\32\2"+
+ "\uffff\1\32\1\uffff\3\32\3\uffff\2\32\1\uffff\4\32\3\uffff\1\32\14\uffff"+
+ "\1\32\2\uffff\1\32\13\uffff\1\32\14\uffff\1\33",
+ "",
+ ""
+ };
+
+ static final short[] DFA178_eot = DFA.unpackEncodedString(DFA178_eotS);
+ static final short[] DFA178_eof = DFA.unpackEncodedString(DFA178_eofS);
+ static final char[] DFA178_min = DFA.unpackEncodedStringToUnsignedChars(DFA178_minS);
+ static final char[] DFA178_max = DFA.unpackEncodedStringToUnsignedChars(DFA178_maxS);
+ static final short[] DFA178_accept = DFA.unpackEncodedString(DFA178_acceptS);
+ static final short[] DFA178_special = DFA.unpackEncodedString(DFA178_specialS);
+ static final short[][] DFA178_transition;
+
+ static {
+ int numStates = DFA178_transitionS.length;
+ DFA178_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA184_transitionS = {
+ "\1\1\4\uffff\2\3\4\uffff\1\3\1\uffff\1\4\3\uffff\1\5\1\6\1\7\1\uffff"+
+ "\2\3\1\uffff\2\3\1\30\1\10\1\uffff\1\3\1\26\1\11\3\uffff\1\3\1\12\3\uffff"+
+ "\3\3\1\13\1\uffff\1\3\1\uffff\2\3\4\uffff\1\14\1\uffff\2\3\1\uffff\1"+
+ "\15\2\uffff\1\3\1\30\1\3\1\uffff\3\3\1\uffff\3\3\3\uffff\1\3\1\uffff"+
+ "\1\3\4\uffff\1\3\2\uffff\5\3\3\uffff\1\3\1\uffff\2\3\2\uffff\1\3\1\16"+
+ "\4\3\1\17\1\27\1\20\1\25\1\21\1\uffff\1\31\1\3\1\uffff\1\30\2\3\3\uffff"+
+ "\2\3\1\uffff\1\22\1\3\1\23\1\24\3\uffff\1\30\11\uffff\1\2\15\uffff\1"+
+ "\32",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "\1\36\31\uffff\1\35\10\uffff\1\34\134\uffff\1\33\10\uffff\5\33\1\37",
+ "",
+ "\1\40\4\uffff\2\42\4\uffff\1\42\1\uffff\1\43\3\uffff\1\44\1\45\1\46"+
+ "\1\uffff\2\42\1\uffff\2\42\1\67\1\47\1\uffff\1\42\1\65\1\50\3\uffff\1"+
+ "\42\1\51\3\uffff\3\42\1\52\1\uffff\1\42\1\uffff\2\42\4\uffff\1\53\1\uffff"+
+ "\2\42\1\uffff\1\54\2\uffff\1\42\1\67\1\42\1\uffff\3\42\1\uffff\3\42\3"+
+ "\uffff\1\42\1\uffff\1\42\4\uffff\1\42\2\uffff\5\42\3\uffff\1\42\1\uffff"+
+ "\2\42\2\uffff\1\42\1\55\4\42\1\56\1\66\1\57\1\64\1\60\1\uffff\1\70\1"+
+ "\42\1\uffff\1\67\2\42\3\uffff\2\42\1\uffff\1\61\1\42\1\62\1\63\3\uffff"+
+ "\1\67\11\uffff\1\41\15\uffff\1\70",
+ "",
+ "",
+ "\1\71\16\uffff\1\72\5\uffff\1\71",
+ "",
+ "",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "\1\70\31\uffff\1\70\10\uffff\1\70\134\uffff\1\70\1\uffff\1\73\1\uffff"+
+ "\1\73\4\uffff\6\70",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA184_eot = DFA.unpackEncodedString(DFA184_eotS);
+ static final short[] DFA184_eof = DFA.unpackEncodedString(DFA184_eofS);
+ static final char[] DFA184_min = DFA.unpackEncodedStringToUnsignedChars(DFA184_minS);
+ static final char[] DFA184_max = DFA.unpackEncodedStringToUnsignedChars(DFA184_maxS);
+ static final short[] DFA184_accept = DFA.unpackEncodedString(DFA184_acceptS);
+ static final short[] DFA184_special = DFA.unpackEncodedString(DFA184_specialS);
+ static final short[][] DFA184_transition;
+
+ static {
+ int numStates = DFA184_transitionS.length;
+ DFA184_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA183_transitionS = {
+ "\1\1\145\uffff\1\7\10\uffff\1\3\1\4\1\2\1\5\1\6",
+ "",
+ "\1\11\16\uffff\1\10\5\uffff\1\11",
+ "\1\11\16\uffff\1\10\5\uffff\1\11",
+ "\1\11\16\uffff\1\10\5\uffff\1\11",
+ "\1\11\16\uffff\1\10\5\uffff\1\11",
+ "\1\11\16\uffff\1\10\5\uffff\1\11",
+ "\1\11\16\uffff\1\10\5\uffff\1\11",
+ "",
+ ""
+ };
+
+ static final short[] DFA183_eot = DFA.unpackEncodedString(DFA183_eotS);
+ static final short[] DFA183_eof = DFA.unpackEncodedString(DFA183_eofS);
+ static final char[] DFA183_min = DFA.unpackEncodedStringToUnsignedChars(DFA183_minS);
+ static final char[] DFA183_max = DFA.unpackEncodedStringToUnsignedChars(DFA183_maxS);
+ static final short[] DFA183_accept = DFA.unpackEncodedString(DFA183_acceptS);
+ static final short[] DFA183_special = DFA.unpackEncodedString(DFA183_specialS);
+ static final short[][] DFA183_transition;
+
+ static {
+ int numStates = DFA183_transitionS.length;
+ DFA183_transition = new short[numStates][];
+ for (int i=0; i";
+ static final String[] DFA193_transitionS = {
+ "\1\31\4\uffff\2\31\4\uffff\1\31\1\uffff\1\1\3\uffff\1\2\1\3\1\4\1\uffff"+
+ "\2\31\1\uffff\3\31\1\5\1\uffff\1\31\1\23\1\6\3\uffff\1\31\1\7\3\uffff"+
+ "\3\31\1\10\1\uffff\1\32\1\uffff\2\31\4\uffff\1\11\1\uffff\2\31\1\uffff"+
+ "\1\12\2\uffff\3\31\1\uffff\3\31\1\uffff\1\26\1\31\1\25\3\uffff\1\31\1"+
+ "\uffff\1\31\4\uffff\1\31\2\uffff\5\31\3\uffff\1\31\1\uffff\2\31\1\uffff"+
+ "\1\27\1\31\1\13\4\31\1\14\1\24\1\15\1\22\1\16\2\uffff\1\31\1\uffff\1"+
+ "\31\1\30\1\31\3\uffff\2\31\1\uffff\1\17\1\31\1\20\1\21\3\uffff\1\31\11"+
+ "\uffff\1\31\2\uffff\1\33",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\34\14\uffff\1\34\12\uffff\1\34\27\uffff\1\34\12\uffff\1\34\65\uffff"+
+ "\1\34\1\uffff\1\34\1\uffff\1\31\1\uffff\1\34\3\uffff\1\34",
+ "\1\31\14\uffff\1\31\12\uffff\1\31\27\uffff\1\31\12\uffff\1\31\65\uffff"+
+ "\1\31\1\uffff\1\31\1\uffff\1\31\1\uffff\1\31\1\27\2\uffff\1\31",
+ "\1\31\14\uffff\1\31\12\uffff\1\31\27\uffff\1\31\12\uffff\1\31\65\uffff"+
+ "\1\31\1\uffff\1\31\1\uffff\1\31\1\uffff\1\31\1\27\2\uffff\1\31",
+ "",
+ "\1\31\14\uffff\1\31\12\uffff\1\31\27\uffff\1\31\12\uffff\1\31\65\uffff"+
+ "\1\31\1\uffff\1\31\1\uffff\1\31\1\uffff\1\31\1\35\2\uffff\1\31",
+ "",
+ "\1\31\14\uffff\1\31\12\uffff\1\31\27\uffff\1\31\12\uffff\1\31\65\uffff"+
+ "\1\31\1\uffff\1\31\1\uffff\1\31\1\uffff\1\31\1\36\2\uffff\1\31",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA193_eot = DFA.unpackEncodedString(DFA193_eotS);
+ static final short[] DFA193_eof = DFA.unpackEncodedString(DFA193_eofS);
+ static final char[] DFA193_min = DFA.unpackEncodedStringToUnsignedChars(DFA193_minS);
+ static final char[] DFA193_max = DFA.unpackEncodedStringToUnsignedChars(DFA193_maxS);
+ static final short[] DFA193_accept = DFA.unpackEncodedString(DFA193_acceptS);
+ static final short[] DFA193_special = DFA.unpackEncodedString(DFA193_specialS);
+ static final short[][] DFA193_transition;
+
+ static {
+ int numStates = DFA193_transitionS.length;
+ DFA193_transition = new short[numStates][];
+ for (int i=0; i' |s= STRING_LITERAL );";
+ }
+ }
+
+ public static final BitSet FOLLOW_cqlStatement_in_query72 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
+ public static final BitSet FOLLOW_181_in_query75 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0020000000000000L});
+ public static final BitSet FOLLOW_EOF_in_query79 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_selectStatement_in_cqlStatement113 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insertStatement_in_cqlStatement142 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_updateStatement_in_cqlStatement171 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_batchStatement_in_cqlStatement200 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_deleteStatement_in_cqlStatement230 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_useStatement_in_cqlStatement259 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_truncateStatement_in_cqlStatement291 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createKeyspaceStatement_in_cqlStatement318 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createTableStatement_in_cqlStatement339 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createIndexStatement_in_cqlStatement362 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropKeyspaceStatement_in_cqlStatement385 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropTableStatement_in_cqlStatement407 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropIndexStatement_in_cqlStatement432 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_alterTableStatement_in_cqlStatement457 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_alterKeyspaceStatement_in_cqlStatement481 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_grantPermissionsStatement_in_cqlStatement502 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_revokePermissionsStatement_in_cqlStatement520 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_listPermissionsStatement_in_cqlStatement537 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createUserStatement_in_cqlStatement556 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_alterUserStatement_in_cqlStatement580 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropUserStatement_in_cqlStatement605 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_listUsersStatement_in_cqlStatement631 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createTriggerStatement_in_cqlStatement656 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropTriggerStatement_in_cqlStatement677 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createTypeStatement_in_cqlStatement700 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_alterTypeStatement_in_cqlStatement724 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropTypeStatement_in_cqlStatement749 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createFunctionStatement_in_cqlStatement775 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropFunctionStatement_in_cqlStatement795 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createAggregateStatement_in_cqlStatement817 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropAggregateStatement_in_cqlStatement836 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createRoleStatement_in_cqlStatement857 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_alterRoleStatement_in_cqlStatement881 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropRoleStatement_in_cqlStatement906 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_listRolesStatement_in_cqlStatement932 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_grantRoleStatement_in_cqlStatement957 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_revokeRoleStatement_in_cqlStatement982 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_createMaterializedViewStatement_in_cqlStatement1006 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dropMaterializedViewStatement_in_cqlStatement1018 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_alterMaterializedViewStatement_in_cqlStatement1032 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_USE_in_useStatement1058 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_keyspaceName_in_useStatement1062 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_SELECT_in_selectStatement1096 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x100000018047B1DBL});
+ public static final BitSet FOLLOW_K_JSON_in_selectStatement1107 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x100000018047B1DBL});
+ public static final BitSet FOLLOW_K_DISTINCT_in_selectStatement1124 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x100000018047B1DBL});
+ public static final BitSet FOLLOW_selectClause_in_selectStatement1133 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_K_FROM_in_selectStatement1143 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_selectStatement1147 = new BitSet(new long[]{0x0000000008000002L,0x0000090001000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_K_WHERE_in_selectStatement1157 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x400040010047B1DBL});
+ public static final BitSet FOLLOW_whereClause_in_selectStatement1161 = new BitSet(new long[]{0x0000000008000002L,0x0000090001000000L});
+ public static final BitSet FOLLOW_K_ORDER_in_selectStatement1174 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_K_BY_in_selectStatement1176 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_orderByClause_in_selectStatement1178 = new BitSet(new long[]{0x0000000008000002L,0x0000080001000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_177_in_selectStatement1183 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_orderByClause_in_selectStatement1185 = new BitSet(new long[]{0x0000000008000002L,0x0000080001000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_K_PER_in_selectStatement1202 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
+ public static final BitSet FOLLOW_K_PARTITION_in_selectStatement1204 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
+ public static final BitSet FOLLOW_K_LIMIT_in_selectStatement1206 = new BitSet(new long[]{0x0000000008200000L,0x0000000001000000L,0x0010000080000000L});
+ public static final BitSet FOLLOW_intValue_in_selectStatement1210 = new BitSet(new long[]{0x0000000008000002L,0x0000000001000000L});
+ public static final BitSet FOLLOW_K_LIMIT_in_selectStatement1225 = new BitSet(new long[]{0x0000000008200000L,0x0000000000000000L,0x0010000080000000L});
+ public static final BitSet FOLLOW_intValue_in_selectStatement1229 = new BitSet(new long[]{0x0000000008000002L});
+ public static final BitSet FOLLOW_K_ALLOW_in_selectStatement1244 = new BitSet(new long[]{0x2000000000000000L});
+ public static final BitSet FOLLOW_K_FILTERING_in_selectStatement1246 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_selector_in_selectClause1283 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_177_in_selectClause1288 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_selector_in_selectClause1292 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_188_in_selectClause1304 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unaliasedSelector_in_selector1337 = new BitSet(new long[]{0x0000000080000002L});
+ public static final BitSet FOLLOW_K_AS_in_selector1340 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_selector1344 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_unaliasedSelector1385 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_K_COUNT_in_unaliasedSelector1431 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_unaliasedSelector1433 = new BitSet(new long[]{0x0000000000200000L,0x0000000000000000L,0x1000000000000000L});
+ public static final BitSet FOLLOW_countArgument_in_unaliasedSelector1435 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_unaliasedSelector1437 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_K_WRITETIME_in_unaliasedSelector1462 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_unaliasedSelector1464 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_unaliasedSelector1468 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_unaliasedSelector1470 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_K_TTL_in_unaliasedSelector1496 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_unaliasedSelector1504 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_unaliasedSelector1508 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_unaliasedSelector1510 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_functionName_in_unaliasedSelector1538 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_selectionFunctionArgs_in_unaliasedSelector1542 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_179_in_unaliasedSelector1557 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_unaliasedSelector1561 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_174_in_selectionFunctionArgs1589 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_selectionFunctionArgs1591 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_selectionFunctionArgs1601 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_unaliasedSelector_in_selectionFunctionArgs1605 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_selectionFunctionArgs1621 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_unaliasedSelector_in_selectionFunctionArgs1625 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_selectionFunctionArgs1638 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_188_in_countArgument1657 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INTEGER_in_countArgument1667 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_relationOrExpression_in_whereClause1698 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_AND_in_whereClause1702 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x400040010047B1DBL});
+ public static final BitSet FOLLOW_relationOrExpression_in_whereClause1704 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_relation_in_relationOrExpression1726 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_customIndexExpression_in_relationOrExpression1735 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_190_in_customIndexExpression1763 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_idxName_in_customIndexExpression1765 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_177_in_customIndexExpression1768 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_customIndexExpression1772 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_customIndexExpression1774 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_orderByClause1804 = new BitSet(new long[]{0x0020000100000002L});
+ public static final BitSet FOLLOW_K_ASC_in_orderByClause1807 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DESC_in_orderByClause1811 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_INSERT_in_insertStatement1840 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+ public static final BitSet FOLLOW_K_INTO_in_insertStatement1842 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_insertStatement1846 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_normalInsertStatement_in_insertStatement1860 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_JSON_in_insertStatement1875 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L,0x0010000880004000L});
+ public static final BitSet FOLLOW_jsonInsertStatement_in_insertStatement1879 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_normalInsertStatement1915 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_normalInsertStatement1919 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_normalInsertStatement1926 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_normalInsertStatement1930 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_normalInsertStatement1937 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
+ public static final BitSet FOLLOW_K_VALUES_in_normalInsertStatement1945 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_normalInsertStatement1953 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_normalInsertStatement1957 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_normalInsertStatement1963 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_normalInsertStatement1967 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_normalInsertStatement1974 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L,0x0000000000004000L});
+ public static final BitSet FOLLOW_K_IF_in_normalInsertStatement1984 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_normalInsertStatement1986 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_normalInsertStatement1988 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000004000L});
+ public static final BitSet FOLLOW_usingClause_in_normalInsertStatement2003 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_jsonValue_in_jsonInsertStatement2049 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L,0x0000000000004000L});
+ public static final BitSet FOLLOW_K_IF_in_jsonInsertStatement2059 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_jsonInsertStatement2061 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_jsonInsertStatement2063 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000004000L});
+ public static final BitSet FOLLOW_usingClause_in_jsonInsertStatement2078 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_jsonValue2119 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_180_in_jsonValue2129 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_jsonValue2133 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_jsonValue2147 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_USING_in_usingClause2178 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_usingClauseObjective_in_usingClause2180 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_AND_in_usingClause2185 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_usingClauseObjective_in_usingClause2187 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_TIMESTAMP_in_usingClauseObjective2209 = new BitSet(new long[]{0x0000000000200000L,0x0000000000000000L,0x0010000080000000L});
+ public static final BitSet FOLLOW_intValue_in_usingClauseObjective2213 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TTL_in_usingClauseObjective2223 = new BitSet(new long[]{0x0000000000200000L,0x0000000000000000L,0x0010000080000000L});
+ public static final BitSet FOLLOW_intValue_in_usingClauseObjective2227 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_UPDATE_in_updateStatement2261 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_updateStatement2265 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L,0x0000000000004000L});
+ public static final BitSet FOLLOW_usingClause_in_updateStatement2275 = new BitSet(new long[]{0x0000000000000000L,0x0040000000000000L});
+ public static final BitSet FOLLOW_K_SET_in_updateStatement2287 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_columnOperation_in_updateStatement2289 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000100000L});
+ public static final BitSet FOLLOW_177_in_updateStatement2293 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_columnOperation_in_updateStatement2295 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000100000L});
+ public static final BitSet FOLLOW_K_WHERE_in_updateStatement2306 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x400040010047B1DBL});
+ public static final BitSet FOLLOW_whereClause_in_updateStatement2310 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L});
+ public static final BitSet FOLLOW_K_IF_in_updateStatement2320 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_K_EXISTS_in_updateStatement2324 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_updateConditions_in_updateStatement2332 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_columnCondition_in_updateConditions2374 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_AND_in_updateConditions2379 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_columnCondition_in_updateConditions2381 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_DELETE_in_deleteStatement2418 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1BL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_deleteSelection_in_deleteStatement2424 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_K_FROM_in_deleteStatement2437 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_deleteStatement2441 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000104000L});
+ public static final BitSet FOLLOW_usingClauseDelete_in_deleteStatement2451 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_K_WHERE_in_deleteStatement2463 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x400040010047B1DBL});
+ public static final BitSet FOLLOW_whereClause_in_deleteStatement2467 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L});
+ public static final BitSet FOLLOW_K_IF_in_deleteStatement2477 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_K_EXISTS_in_deleteStatement2481 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_updateConditions_in_deleteStatement2489 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_deleteOp_in_deleteSelection2536 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_177_in_deleteSelection2551 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_deleteOp_in_deleteSelection2555 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_cident_in_deleteOp2582 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_deleteOp2609 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_187_in_deleteOp2611 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_deleteOp2615 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
+ public static final BitSet FOLLOW_189_in_deleteOp2617 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_USING_in_usingClauseDelete2637 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_K_TIMESTAMP_in_usingClauseDelete2639 = new BitSet(new long[]{0x0000000000200000L,0x0000000000000000L,0x0010000080000000L});
+ public static final BitSet FOLLOW_intValue_in_usingClauseDelete2643 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_BEGIN_in_batchStatement2677 = new BitSet(new long[]{0x0000800800000000L,0x0000000000000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_K_UNLOGGED_in_batchStatement2687 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_K_COUNTER_in_batchStatement2693 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_K_BATCH_in_batchStatement2706 = new BitSet(new long[]{0x0010000040000000L,0x0000000000002000L,0x0000000000004400L});
+ public static final BitSet FOLLOW_usingClause_in_batchStatement2710 = new BitSet(new long[]{0x0010000040000000L,0x0000000000002000L,0x0000000000000400L});
+ public static final BitSet FOLLOW_batchStatementObjective_in_batchStatement2730 = new BitSet(new long[]{0x0010000040000000L,0x0000000000002000L,0x0020000000000400L});
+ public static final BitSet FOLLOW_181_in_batchStatement2732 = new BitSet(new long[]{0x0010000040000000L,0x0000000000002000L,0x0000000000000400L});
+ public static final BitSet FOLLOW_K_APPLY_in_batchStatement2746 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_K_BATCH_in_batchStatement2748 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_insertStatement_in_batchStatementObjective2779 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_updateStatement_in_batchStatementObjective2792 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_deleteStatement_in_batchStatementObjective2805 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createAggregateStatement2838 = new BitSet(new long[]{0x0000000002000000L,0x0000008000000000L});
+ public static final BitSet FOLLOW_K_OR_in_createAggregateStatement2841 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
+ public static final BitSet FOLLOW_K_REPLACE_in_createAggregateStatement2843 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_K_AGGREGATE_in_createAggregateStatement2855 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_K_IF_in_createAggregateStatement2864 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createAggregateStatement2866 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createAggregateStatement2868 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_functionName_in_createAggregateStatement2882 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_createAggregateStatement2890 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000080090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_createAggregateStatement2914 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_createAggregateStatement2930 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_createAggregateStatement2934 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_createAggregateStatement2958 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
+ public static final BitSet FOLLOW_K_SFUNC_in_createAggregateStatement2966 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEA5A1AL,0x000000010007B19BL});
+ public static final BitSet FOLLOW_allowedFunctionName_in_createAggregateStatement2972 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_K_STYPE_in_createAggregateStatement2980 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_createAggregateStatement2986 = new BitSet(new long[]{0x4000000000000002L,0x0000000000000800L});
+ public static final BitSet FOLLOW_K_FINALFUNC_in_createAggregateStatement3004 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEA5A1AL,0x000000010007B19BL});
+ public static final BitSet FOLLOW_allowedFunctionName_in_createAggregateStatement3010 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
+ public static final BitSet FOLLOW_K_INITCOND_in_createAggregateStatement3037 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_createAggregateStatement3043 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropAggregateStatement3090 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_K_AGGREGATE_in_dropAggregateStatement3092 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_K_IF_in_dropAggregateStatement3101 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropAggregateStatement3103 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_functionName_in_dropAggregateStatement3118 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_dropAggregateStatement3136 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000080090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_dropAggregateStatement3164 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_dropAggregateStatement3182 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_dropAggregateStatement3186 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_dropAggregateStatement3214 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createFunctionStatement3271 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000008L});
+ public static final BitSet FOLLOW_K_OR_in_createFunctionStatement3274 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
+ public static final BitSet FOLLOW_K_REPLACE_in_createFunctionStatement3276 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+ public static final BitSet FOLLOW_K_FUNCTION_in_createFunctionStatement3288 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_K_IF_in_createFunctionStatement3297 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createFunctionStatement3299 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createFunctionStatement3301 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_functionName_in_createFunctionStatement3315 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_createFunctionStatement3323 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000080010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_createFunctionStatement3347 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_createFunctionStatement3351 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_createFunctionStatement3367 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_createFunctionStatement3371 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_createFunctionStatement3375 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_createFunctionStatement3399 = new BitSet(new long[]{0x0000020000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_K_RETURNS_in_createFunctionStatement3410 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_K_NULL_in_createFunctionStatement3412 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+ public static final BitSet FOLLOW_K_CALLED_in_createFunctionStatement3418 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+ public static final BitSet FOLLOW_K_ON_in_createFunctionStatement3424 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_K_NULL_in_createFunctionStatement3426 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_K_INPUT_in_createFunctionStatement3428 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_K_RETURNS_in_createFunctionStatement3436 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_createFunctionStatement3442 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+ public static final BitSet FOLLOW_K_LANGUAGE_in_createFunctionStatement3450 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_IDENT_in_createFunctionStatement3456 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_K_AS_in_createFunctionStatement3464 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_createFunctionStatement3470 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropFunctionStatement3508 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+ public static final BitSet FOLLOW_K_FUNCTION_in_dropFunctionStatement3510 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_K_IF_in_dropFunctionStatement3519 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropFunctionStatement3521 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_functionName_in_dropFunctionStatement3536 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_dropFunctionStatement3554 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000080090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_dropFunctionStatement3582 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_dropFunctionStatement3600 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_dropFunctionStatement3604 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_dropFunctionStatement3632 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createKeyspaceStatement3691 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_K_KEYSPACE_in_createKeyspaceStatement3693 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_createKeyspaceStatement3696 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createKeyspaceStatement3698 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createKeyspaceStatement3700 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_keyspaceName_in_createKeyspaceStatement3709 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_createKeyspaceStatement3717 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_properties_in_createKeyspaceStatement3719 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createTableStatement3754 = new BitSet(new long[]{0x0000080000000000L});
+ public static final BitSet FOLLOW_K_COLUMNFAMILY_in_createTableStatement3756 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_createTableStatement3759 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createTableStatement3761 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createTableStatement3763 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_createTableStatement3778 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_cfamDefinition_in_createTableStatement3788 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_cfamDefinition3807 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A7E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cfamColumns_in_cfamDefinition3809 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_cfamDefinition3814 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A7E428EEE5A1AL,0x000280010047B1D3L});
+ public static final BitSet FOLLOW_cfamColumns_in_cfamDefinition3816 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_cfamDefinition3823 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_cfamDefinition3833 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cfamProperty_in_cfamDefinition3835 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_AND_in_cfamDefinition3840 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cfamProperty_in_cfamDefinition3842 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_ident_in_cfamColumns3868 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_cfamColumns3872 = new BitSet(new long[]{0x0000000000000002L,0x0200400000000000L});
+ public static final BitSet FOLLOW_K_STATIC_in_cfamColumns3877 = new BitSet(new long[]{0x0000000000000002L,0x0000400000000000L});
+ public static final BitSet FOLLOW_K_PRIMARY_in_cfamColumns3894 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+ public static final BitSet FOLLOW_K_KEY_in_cfamColumns3896 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_PRIMARY_in_cfamColumns3908 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+ public static final BitSet FOLLOW_K_KEY_in_cfamColumns3910 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_cfamColumns3912 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000040010047B1D3L});
+ public static final BitSet FOLLOW_pkDef_in_cfamColumns3914 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_cfamColumns3918 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_ident_in_cfamColumns3922 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_cfamColumns3929 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ident_in_pkDef3949 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_pkDef3959 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_ident_in_pkDef3965 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_pkDef3971 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_ident_in_pkDef3975 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_pkDef3982 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_property_in_cfamProperty4002 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_COMPACT_in_cfamProperty4011 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
+ public static final BitSet FOLLOW_K_STORAGE_in_cfamProperty4013 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CLUSTERING_in_cfamProperty4023 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+ public static final BitSet FOLLOW_K_ORDER_in_cfamProperty4025 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_K_BY_in_cfamProperty4027 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_cfamProperty4029 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cfamOrdering_in_cfamProperty4031 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_cfamProperty4035 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cfamOrdering_in_cfamProperty4037 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_cfamProperty4042 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ident_in_cfamOrdering4070 = new BitSet(new long[]{0x0020000100000000L});
+ public static final BitSet FOLLOW_K_ASC_in_cfamOrdering4073 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DESC_in_cfamOrdering4077 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createTypeStatement4116 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_K_TYPE_in_createTypeStatement4118 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_createTypeStatement4121 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createTypeStatement4123 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createTypeStatement4125 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_userTypeName_in_createTypeStatement4143 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_createTypeStatement4156 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_typeColumns_in_createTypeStatement4158 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_createTypeStatement4163 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000280010047B1D3L});
+ public static final BitSet FOLLOW_typeColumns_in_createTypeStatement4165 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_createTypeStatement4172 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_noncol_ident_in_typeColumns4192 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_typeColumns4196 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createIndexStatement4231 = new BitSet(new long[]{0x0002000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_K_CUSTOM_in_createIndexStatement4234 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_K_INDEX_in_createIndexStatement4240 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E628EEE5A5AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_createIndexStatement4243 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createIndexStatement4245 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createIndexStatement4247 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E628EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_idxName_in_createIndexStatement4263 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+ public static final BitSet FOLLOW_K_ON_in_createIndexStatement4268 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_createIndexStatement4272 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_createIndexStatement4274 = new BitSet(new long[]{0xF58EF6E286100000L,0xFF9A3E428EEE5A1EL,0x000080010047B1D3L});
+ public static final BitSet FOLLOW_indexIdent_in_createIndexStatement4277 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_createIndexStatement4281 = new BitSet(new long[]{0xF58EF6E286100000L,0xFF9A3E428EEE5A1EL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_indexIdent_in_createIndexStatement4283 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_createIndexStatement4290 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000204000L});
+ public static final BitSet FOLLOW_K_USING_in_createIndexStatement4301 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_createIndexStatement4305 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_createIndexStatement4320 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_properties_in_createIndexStatement4322 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_indexIdent4354 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_VALUES_in_indexIdent4382 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_indexIdent4384 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_indexIdent4388 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_indexIdent4390 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_KEYS_in_indexIdent4401 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_indexIdent4403 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_indexIdent4407 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_indexIdent4409 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ENTRIES_in_indexIdent4422 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_indexIdent4424 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_indexIdent4428 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_indexIdent4430 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_FULL_in_indexIdent4440 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_indexIdent4442 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_indexIdent4446 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_indexIdent4448 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createMaterializedViewStatement4485 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+ public static final BitSet FOLLOW_K_MATERIALIZED_in_createMaterializedViewStatement4487 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
+ public static final BitSet FOLLOW_K_VIEW_in_createMaterializedViewStatement4489 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_createMaterializedViewStatement4492 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createMaterializedViewStatement4494 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createMaterializedViewStatement4496 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_createMaterializedViewStatement4504 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_K_AS_in_createMaterializedViewStatement4506 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
+ public static final BitSet FOLLOW_K_SELECT_in_createMaterializedViewStatement4516 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x100000018047B1DBL});
+ public static final BitSet FOLLOW_selectClause_in_createMaterializedViewStatement4520 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_K_FROM_in_createMaterializedViewStatement4522 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_createMaterializedViewStatement4526 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_K_WHERE_in_createMaterializedViewStatement4537 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x400040010047B1DBL});
+ public static final BitSet FOLLOW_whereClause_in_createMaterializedViewStatement4541 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_K_PRIMARY_in_createMaterializedViewStatement4553 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+ public static final BitSet FOLLOW_K_KEY_in_createMaterializedViewStatement4555 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_createMaterializedViewStatement4567 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_createMaterializedViewStatement4569 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_createMaterializedViewStatement4573 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_createMaterializedViewStatement4579 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_createMaterializedViewStatement4583 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_createMaterializedViewStatement4590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_createMaterializedViewStatement4594 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_createMaterializedViewStatement4598 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_createMaterializedViewStatement4605 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_174_in_createMaterializedViewStatement4615 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_createMaterializedViewStatement4619 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_createMaterializedViewStatement4625 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_createMaterializedViewStatement4629 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_createMaterializedViewStatement4636 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_createMaterializedViewStatement4668 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cfamProperty_in_createMaterializedViewStatement4670 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_AND_in_createMaterializedViewStatement4675 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cfamProperty_in_createMaterializedViewStatement4677 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createTriggerStatement4715 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_K_TRIGGER_in_createTriggerStatement4717 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_createTriggerStatement4720 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createTriggerStatement4722 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createTriggerStatement4724 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_createTriggerStatement4734 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+ public static final BitSet FOLLOW_K_ON_in_createTriggerStatement4745 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_createTriggerStatement4749 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+ public static final BitSet FOLLOW_K_USING_in_createTriggerStatement4751 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_createTriggerStatement4755 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropTriggerStatement4796 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_K_TRIGGER_in_dropTriggerStatement4798 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_dropTriggerStatement4801 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropTriggerStatement4803 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_dropTriggerStatement4813 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+ public static final BitSet FOLLOW_K_ON_in_dropTriggerStatement4816 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_dropTriggerStatement4820 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALTER_in_alterKeyspaceStatement4860 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_K_KEYSPACE_in_alterKeyspaceStatement4862 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_keyspaceName_in_alterKeyspaceStatement4866 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_alterKeyspaceStatement4876 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_properties_in_alterKeyspaceStatement4878 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALTER_in_alterTableStatement4914 = new BitSet(new long[]{0x0000080000000000L});
+ public static final BitSet FOLLOW_K_COLUMNFAMILY_in_alterTableStatement4916 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_alterTableStatement4920 = new BitSet(new long[]{0x0200000011000000L,0x0000800000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_ALTER_in_alterTableStatement4934 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_alterTableStatement4938 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_K_TYPE_in_alterTableStatement4940 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_alterTableStatement4944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ADD_in_alterTableStatement4960 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_alterTableStatement4966 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_alterTableStatement4970 = new BitSet(new long[]{0x0000000000000002L,0x0200000000000000L});
+ public static final BitSet FOLLOW_K_STATIC_in_alterTableStatement4975 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_alterTableStatement4993 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_alterTableStatement4998 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_alterTableStatement5044 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_alterTableStatement5049 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000004000L});
+ public static final BitSet FOLLOW_K_USING_in_alterTableStatement5051 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_K_TIMESTAMP_in_alterTableStatement5053 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_INTEGER_in_alterTableStatement5057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_WITH_in_alterTableStatement5073 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_properties_in_alterTableStatement5076 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_RENAME_in_alterTableStatement5115 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_alterTableStatement5175 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_K_TO_in_alterTableStatement5177 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_alterTableStatement5181 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_AND_in_alterTableStatement5202 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_alterTableStatement5206 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_K_TO_in_alterTableStatement5208 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_alterTableStatement5212 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_ALTER_in_alterMaterializedViewStatement5265 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+ public static final BitSet FOLLOW_K_MATERIALIZED_in_alterMaterializedViewStatement5267 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
+ public static final BitSet FOLLOW_K_VIEW_in_alterMaterializedViewStatement5269 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_alterMaterializedViewStatement5273 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_alterMaterializedViewStatement5285 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_properties_in_alterMaterializedViewStatement5287 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALTER_in_alterTypeStatement5322 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_K_TYPE_in_alterTypeStatement5324 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_userTypeName_in_alterTypeStatement5328 = new BitSet(new long[]{0x0000000011000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_K_ALTER_in_alterTypeStatement5342 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_alterTypeStatement5346 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_K_TYPE_in_alterTypeStatement5348 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_alterTypeStatement5352 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ADD_in_alterTypeStatement5368 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_alterTypeStatement5374 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_alterTypeStatement5378 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_RENAME_in_alterTypeStatement5401 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_alterTypeStatement5439 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_K_TO_in_alterTypeStatement5441 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_alterTypeStatement5445 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_AND_in_alterTypeStatement5468 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_alterTypeStatement5472 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_K_TO_in_alterTypeStatement5474 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_alterTypeStatement5478 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropKeyspaceStatement5545 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_K_KEYSPACE_in_dropKeyspaceStatement5547 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_dropKeyspaceStatement5550 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropKeyspaceStatement5552 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_keyspaceName_in_dropKeyspaceStatement5561 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropTableStatement5595 = new BitSet(new long[]{0x0000080000000000L});
+ public static final BitSet FOLLOW_K_COLUMNFAMILY_in_dropTableStatement5597 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_dropTableStatement5600 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropTableStatement5602 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_dropTableStatement5611 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropTypeStatement5645 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_K_TYPE_in_dropTypeStatement5647 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_dropTypeStatement5650 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropTypeStatement5652 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_userTypeName_in_dropTypeStatement5661 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropIndexStatement5695 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_K_INDEX_in_dropIndexStatement5697 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_dropIndexStatement5700 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropIndexStatement5702 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_indexName_in_dropIndexStatement5711 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropMaterializedViewStatement5751 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+ public static final BitSet FOLLOW_K_MATERIALIZED_in_dropMaterializedViewStatement5753 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000080000L});
+ public static final BitSet FOLLOW_K_VIEW_in_dropMaterializedViewStatement5755 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_dropMaterializedViewStatement5758 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropMaterializedViewStatement5760 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_dropMaterializedViewStatement5769 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TRUNCATE_in_truncateStatement5800 = new BitSet(new long[]{0xF18EFEE286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_K_COLUMNFAMILY_in_truncateStatement5803 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_truncateStatement5809 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_GRANT_in_grantPermissionsStatement5834 = new BitSet(new long[]{0x0A41000414000000L,0x0020000020000000L});
+ public static final BitSet FOLLOW_permissionOrAll_in_grantPermissionsStatement5846 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+ public static final BitSet FOLLOW_K_ON_in_grantPermissionsStatement5854 = new BitSet(new long[]{0xF18EFEE286100000L,0xFF9A3E428EFE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_resource_in_grantPermissionsStatement5866 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_K_TO_in_grantPermissionsStatement5874 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_grantPermissionsStatement5888 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_REVOKE_in_revokePermissionsStatement5919 = new BitSet(new long[]{0x0A41000414000000L,0x0020000020000000L});
+ public static final BitSet FOLLOW_permissionOrAll_in_revokePermissionsStatement5931 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+ public static final BitSet FOLLOW_K_ON_in_revokePermissionsStatement5939 = new BitSet(new long[]{0xF18EFEE286100000L,0xFF9A3E428EFE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_resource_in_revokePermissionsStatement5951 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_K_FROM_in_revokePermissionsStatement5959 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_revokePermissionsStatement5973 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_GRANT_in_grantRoleStatement6004 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_grantRoleStatement6018 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_K_TO_in_grantRoleStatement6026 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_grantRoleStatement6040 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_REVOKE_in_revokeRoleStatement6071 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_revokeRoleStatement6085 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_K_FROM_in_revokeRoleStatement6093 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_revokeRoleStatement6107 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_LIST_in_listPermissionsStatement6145 = new BitSet(new long[]{0x0A41000414000000L,0x0020000020000000L});
+ public static final BitSet FOLLOW_permissionOrAll_in_listPermissionsStatement6157 = new BitSet(new long[]{0x0000000000000002L,0x0000003100000000L});
+ public static final BitSet FOLLOW_K_ON_in_listPermissionsStatement6167 = new BitSet(new long[]{0xF18EFEE286100000L,0xFF9A3E428EFE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_resource_in_listPermissionsStatement6169 = new BitSet(new long[]{0x0000000000000002L,0x0000001100000000L});
+ public static final BitSet FOLLOW_K_OF_in_listPermissionsStatement6184 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_roleName_in_listPermissionsStatement6186 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+ public static final BitSet FOLLOW_K_NORECURSIVE_in_listPermissionsStatement6200 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_set_in_permission6236 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALL_in_permissionOrAll6293 = new BitSet(new long[]{0x0000000000000002L,0x0000200000000000L});
+ public static final BitSet FOLLOW_K_PERMISSIONS_in_permissionOrAll6297 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_permission_in_permissionOrAll6318 = new BitSet(new long[]{0x0000000000000002L,0x0000100000000000L});
+ public static final BitSet FOLLOW_K_PERMISSION_in_permissionOrAll6322 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dataResource_in_resource6350 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_roleResource_in_resource6362 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_functionResource_in_resource6374 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALL_in_dataResource6397 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_KEYSPACES_in_dataResource6399 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_KEYSPACE_in_dataResource6409 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_keyspaceName_in_dataResource6415 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_COLUMNFAMILY_in_dataResource6427 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_columnFamilyName_in_dataResource6436 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALL_in_roleResource6465 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_K_ROLES_in_roleResource6467 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ROLE_in_roleResource6477 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_roleResource6483 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALL_in_functionResource6515 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_K_FUNCTIONS_in_functionResource6517 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALL_in_functionResource6527 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_K_FUNCTIONS_in_functionResource6529 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_K_IN_in_functionResource6531 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_K_KEYSPACE_in_functionResource6533 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_keyspaceName_in_functionResource6539 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_FUNCTION_in_functionResource6554 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1DBL});
+ public static final BitSet FOLLOW_functionName_in_functionResource6558 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_functionResource6576 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000080090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_functionResource6604 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_functionResource6622 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_functionResource6626 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_functionResource6654 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createUserStatement6702 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_K_USER_in_createUserStatement6704 = new BitSet(new long[]{0x0000000000100000L,0x0000000000000040L,0x0000000900000000L});
+ public static final BitSet FOLLOW_K_IF_in_createUserStatement6707 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createUserStatement6709 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createUserStatement6711 = new BitSet(new long[]{0x0000000000100000L,0x0000000000000000L,0x0000000900000000L});
+ public static final BitSet FOLLOW_username_in_createUserStatement6719 = new BitSet(new long[]{0x0000000000000002L,0x1000000200000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_createUserStatement6731 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+ public static final BitSet FOLLOW_userPassword_in_createUserStatement6733 = new BitSet(new long[]{0x0000000000000002L,0x1000000200000000L});
+ public static final BitSet FOLLOW_K_SUPERUSER_in_createUserStatement6747 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_NOSUPERUSER_in_createUserStatement6753 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALTER_in_alterUserStatement6798 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_K_USER_in_alterUserStatement6800 = new BitSet(new long[]{0x0000000000100000L,0x0000000000000000L,0x0000000900000000L});
+ public static final BitSet FOLLOW_username_in_alterUserStatement6804 = new BitSet(new long[]{0x0000000000000002L,0x1000000200000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_alterUserStatement6816 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+ public static final BitSet FOLLOW_userPassword_in_alterUserStatement6818 = new BitSet(new long[]{0x0000000000000002L,0x1000000200000000L});
+ public static final BitSet FOLLOW_K_SUPERUSER_in_alterUserStatement6832 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_NOSUPERUSER_in_alterUserStatement6846 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropUserStatement6892 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_K_USER_in_dropUserStatement6894 = new BitSet(new long[]{0x0000000000100000L,0x0000000000000040L,0x0000000900000000L});
+ public static final BitSet FOLLOW_K_IF_in_dropUserStatement6897 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropUserStatement6899 = new BitSet(new long[]{0x0000000000100000L,0x0000000000000000L,0x0000000900000000L});
+ public static final BitSet FOLLOW_username_in_dropUserStatement6907 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_LIST_in_listUsersStatement6932 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000002000L});
+ public static final BitSet FOLLOW_K_USERS_in_listUsersStatement6934 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_CREATE_in_createRoleStatement6968 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_K_ROLE_in_createRoleStatement6970 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_createRoleStatement6973 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_createRoleStatement6975 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_createRoleStatement6977 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_createRoleStatement6985 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_createRoleStatement6995 = new BitSet(new long[]{0x0000000000000000L,0x1000044004000000L});
+ public static final BitSet FOLLOW_roleOptions_in_createRoleStatement6997 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ALTER_in_alterRoleStatement7041 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_K_ROLE_in_alterRoleStatement7043 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_alterRoleStatement7047 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_K_WITH_in_alterRoleStatement7057 = new BitSet(new long[]{0x0000000000000000L,0x1000044004000000L});
+ public static final BitSet FOLLOW_roleOptions_in_alterRoleStatement7059 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DROP_in_dropRoleStatement7103 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_K_ROLE_in_dropRoleStatement7105 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A5AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_K_IF_in_dropRoleStatement7108 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_K_EXISTS_in_dropRoleStatement7110 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_userOrRoleName_in_dropRoleStatement7118 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_LIST_in_listRolesStatement7158 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_K_ROLES_in_listRolesStatement7160 = new BitSet(new long[]{0x0000000000000002L,0x0000001100000000L});
+ public static final BitSet FOLLOW_K_OF_in_listRolesStatement7170 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000098047B1D3L});
+ public static final BitSet FOLLOW_roleName_in_listRolesStatement7172 = new BitSet(new long[]{0x0000000000000002L,0x0000000100000000L});
+ public static final BitSet FOLLOW_K_NORECURSIVE_in_listRolesStatement7185 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_roleOption_in_roleOptions7216 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_AND_in_roleOptions7220 = new BitSet(new long[]{0x0000000000000000L,0x1000044004000000L});
+ public static final BitSet FOLLOW_roleOption_in_roleOptions7222 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_PASSWORD_in_roleOption7244 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+ public static final BitSet FOLLOW_184_in_roleOption7246 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_roleOption7250 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_OPTIONS_in_roleOption7261 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+ public static final BitSet FOLLOW_184_in_roleOption7263 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_mapLiteral_in_roleOption7267 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_SUPERUSER_in_roleOption7278 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+ public static final BitSet FOLLOW_184_in_roleOption7280 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_BOOLEAN_in_roleOption7284 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_LOGIN_in_roleOption7295 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+ public static final BitSet FOLLOW_184_in_roleOption7297 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_BOOLEAN_in_roleOption7301 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_PASSWORD_in_userPassword7323 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_userPassword7327 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_cident7358 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_cident7383 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_keyword_in_cident7402 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_ident7428 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_ident7453 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_keyword_in_ident7472 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_noncol_ident7498 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_noncol_ident7523 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_keyword_in_noncol_ident7542 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ksName_in_keyspaceName7575 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ksName_in_indexName7609 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_179_in_indexName7612 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_idxName_in_indexName7616 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ksName_in_columnFamilyName7648 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_179_in_columnFamilyName7651 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000018047B1D3L});
+ public static final BitSet FOLLOW_cfName_in_columnFamilyName7655 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_noncol_ident_in_userTypeName7680 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_179_in_userTypeName7682 = new BitSet(new long[]{0x7082360086100000L,0x1E9A3E428EEE181AL,0x0000000100013190L});
+ public static final BitSet FOLLOW_non_type_ident_in_userTypeName7688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_roleName_in_userOrRoleName7720 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_ksName7743 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_ksName7768 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_keyword_in_ksName7787 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_ksName7797 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_cfName7819 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_cfName7844 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_keyword_in_cfName7863 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_cfName7873 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_idxName7895 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_idxName7920 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_keyword_in_idxName7939 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_idxName7949 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_roleName7971 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_roleName7996 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_roleName8012 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_keyword_in_roleName8031 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_roleName8041 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_constant8066 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INTEGER_in_constant8078 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FLOAT_in_constant8097 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BOOLEAN_in_constant8118 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_UUID_in_constant8137 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_HEXNUMBER_in_constant8159 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_178_in_constant8177 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000400L});
+ public static final BitSet FOLLOW_set_in_constant8186 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_191_in_mapLiteral8215 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL,0x0000000000000001L});
+ public static final BitSet FOLLOW_term_in_mapLiteral8233 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_180_in_mapLiteral8235 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_mapLiteral8239 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_177_in_mapLiteral8245 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_mapLiteral8249 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_180_in_mapLiteral8251 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_mapLiteral8255 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_192_in_mapLiteral8271 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_180_in_setOrMapLiteral8295 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_setOrMapLiteral8299 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_177_in_setOrMapLiteral8315 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_setOrMapLiteral8319 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_180_in_setOrMapLiteral8321 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_setOrMapLiteral8325 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_177_in_setOrMapLiteral8360 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_setOrMapLiteral8364 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_187_in_collectionLiteral8398 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0xA81440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_collectionLiteral8416 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2002000000000000L});
+ public static final BitSet FOLLOW_177_in_collectionLiteral8422 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_collectionLiteral8426 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2002000000000000L});
+ public static final BitSet FOLLOW_189_in_collectionLiteral8442 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_191_in_collectionLiteral8452 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_collectionLiteral8456 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0012000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_setOrMapLiteral_in_collectionLiteral8460 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_192_in_collectionLiteral8465 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_191_in_collectionLiteral8483 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_192_in_collectionLiteral8485 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_191_in_usertypeLiteral8529 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_usertypeLiteral8533 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_180_in_usertypeLiteral8535 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_usertypeLiteral8539 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_177_in_usertypeLiteral8545 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_usertypeLiteral8549 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000000000000L});
+ public static final BitSet FOLLOW_180_in_usertypeLiteral8551 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_usertypeLiteral8555 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_192_in_usertypeLiteral8562 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_tupleLiteral8599 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_tupleLiteral8603 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_tupleLiteral8609 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_tupleLiteral8613 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_tupleLiteral8620 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_constant_in_value8643 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_collectionLiteral_in_value8665 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_usertypeLiteral_in_value8678 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_tupleLiteral_in_value8693 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_NULL_in_value8709 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_180_in_value8733 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_value8737 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_value8748 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INTEGER_in_intValue8794 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_180_in_intValue8808 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_intValue8812 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_intValue8823 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_keyspaceName_in_functionName8857 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0008000000000000L});
+ public static final BitSet FOLLOW_179_in_functionName8859 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEA5A1AL,0x000000010007B19BL});
+ public static final BitSet FOLLOW_allowedFunctionName_in_functionName8865 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_allowedFunctionName8892 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_allowedFunctionName8926 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_function_keyword_in_allowedFunctionName8954 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TOKEN_in_allowedFunctionName8964 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_COUNT_in_allowedFunctionName8996 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_functionName_in_function9043 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_function9045 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_function9047 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_functionName_in_function9077 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_174_in_function9079 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_functionArgs_in_function9083 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_function9085 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_term_in_functionArgs9118 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_177_in_functionArgs9124 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_functionArgs9128 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_value_in_term9156 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_function_in_term9193 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_term9225 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_term9229 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_term9231 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_term9235 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_columnOperation9258 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0900000000000000L});
+ public static final BitSet FOLLOW_columnOperationDifferentiator_in_columnOperation9260 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_184_in_columnOperationDifferentiator9279 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_normalColumnOperation_in_columnOperationDifferentiator9281 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_187_in_columnOperationDifferentiator9290 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_columnOperationDifferentiator9294 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
+ public static final BitSet FOLLOW_189_in_columnOperationDifferentiator9296 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+ public static final BitSet FOLLOW_specializedColumnOperation_in_columnOperationDifferentiator9298 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_term_in_normalColumnOperation9319 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000000L,0x0001000000000000L});
+ public static final BitSet FOLLOW_176_in_normalColumnOperation9322 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_normalColumnOperation9326 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_normalColumnOperation9347 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0005000000000000L});
+ public static final BitSet FOLLOW_set_in_normalColumnOperation9351 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_normalColumnOperation9361 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_normalColumnOperation9379 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_INTEGER_in_normalColumnOperation9383 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_184_in_specializedColumnOperation9409 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_specializedColumnOperation9413 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_columnCondition9446 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L,0x0FC0200000000000L});
+ public static final BitSet FOLLOW_relationType_in_columnCondition9460 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_columnCondition9464 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_IN_in_columnCondition9478 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010400080000000L});
+ public static final BitSet FOLLOW_singleColumnInValues_in_columnCondition9496 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_inMarker_in_columnCondition9516 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_187_in_columnCondition9544 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_columnCondition9548 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
+ public static final BitSet FOLLOW_189_in_columnCondition9550 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L,0x07C0200000000000L});
+ public static final BitSet FOLLOW_relationType_in_columnCondition9568 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_columnCondition9572 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_IN_in_columnCondition9590 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010400080000000L});
+ public static final BitSet FOLLOW_singleColumnInValues_in_columnCondition9612 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_inMarker_in_columnCondition9636 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_property_in_properties9698 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_K_AND_in_properties9702 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_property_in_properties9704 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_noncol_ident_in_property9727 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+ public static final BitSet FOLLOW_184_in_property9729 = new BitSet(new long[]{0xF18EF6E286244040L,0xFF9A3E42CEEE5E1AL,0x000400480047B1D3L});
+ public static final BitSet FOLLOW_propertyValue_in_property9733 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_noncol_ident_in_property9745 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0100000000000000L});
+ public static final BitSet FOLLOW_184_in_property9747 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x8000000000000000L});
+ public static final BitSet FOLLOW_mapLiteral_in_property9751 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_constant_in_propertyValue9776 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_keyword_in_propertyValue9798 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_184_in_relationType9821 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_182_in_relationType9832 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_183_in_relationType9843 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_185_in_relationType9853 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_186_in_relationType9864 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_173_in_relationType9874 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_relation9896 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x07C0200000000000L});
+ public static final BitSet FOLLOW_relationType_in_relation9900 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_relation9904 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_relation9916 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+ public static final BitSet FOLLOW_K_IS_in_relation9918 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+ public static final BitSet FOLLOW_K_NOT_in_relation9920 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_K_NULL_in_relation9922 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TOKEN_in_relation9932 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_tupleOfIdentifiers_in_relation9936 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x07C0200000000000L});
+ public static final BitSet FOLLOW_relationType_in_relation9940 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_relation9944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_relation9964 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_K_IN_in_relation9966 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000080000000L});
+ public static final BitSet FOLLOW_inMarker_in_relation9970 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_relation9990 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_K_IN_in_relation9992 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_singleColumnInValues_in_relation9996 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_relation10016 = new BitSet(new long[]{0x0000200000000000L});
+ public static final BitSet FOLLOW_K_CONTAINS_in_relation10018 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_K_KEY_in_relation10023 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_relation10039 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_cident_in_relation10051 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0800000000000000L});
+ public static final BitSet FOLLOW_187_in_relation10053 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_relation10057 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x2000000000000000L});
+ public static final BitSet FOLLOW_189_in_relation10059 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x07C0200000000000L});
+ public static final BitSet FOLLOW_relationType_in_relation10063 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_relation10067 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_tupleOfIdentifiers_in_relation10079 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L,0x07C0200000000000L});
+ public static final BitSet FOLLOW_K_IN_in_relation10089 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010400080000000L});
+ public static final BitSet FOLLOW_174_in_relation10103 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_relation10105 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_inMarkerForTuple_in_relation10137 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_tupleOfTupleLiterals_in_relation10171 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_tupleOfMarkersForTuples_in_relation10205 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_relationType_in_relation10247 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_tupleLiteral_in_relation10251 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_relationType_in_relation10277 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000080000000L});
+ public static final BitSet FOLLOW_markerForTuple_in_relation10281 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_relation10311 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000040010047B1DBL});
+ public static final BitSet FOLLOW_relation_in_relation10313 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000800000000000L});
+ public static final BitSet FOLLOW_175_in_relation10316 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_inMarker10337 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_180_in_inMarker10347 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_inMarker10351 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_tupleOfIdentifiers10383 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_tupleOfIdentifiers10387 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_tupleOfIdentifiers10392 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_cident_in_tupleOfIdentifiers10396 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_tupleOfIdentifiers10402 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_singleColumnInValues10432 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x8814C0498047B1DBL});
+ public static final BitSet FOLLOW_term_in_singleColumnInValues10440 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_singleColumnInValues10445 = new BitSet(new long[]{0xF18EF6E286344040L,0xFF9A3E4ACEEE5E1AL,0x881440498047B1DBL});
+ public static final BitSet FOLLOW_term_in_singleColumnInValues10449 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_singleColumnInValues10458 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_tupleOfTupleLiterals10488 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_tupleLiteral_in_tupleOfTupleLiterals10492 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_tupleOfTupleLiterals10497 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000400000000000L});
+ public static final BitSet FOLLOW_tupleLiteral_in_tupleOfTupleLiterals10501 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_tupleOfTupleLiterals10507 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_markerForTuple10528 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_180_in_markerForTuple10538 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_markerForTuple10542 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_174_in_tupleOfMarkersForTuples10574 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000080000000L});
+ public static final BitSet FOLLOW_markerForTuple_in_tupleOfMarkersForTuples10578 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_177_in_tupleOfMarkersForTuples10583 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0010000080000000L});
+ public static final BitSet FOLLOW_markerForTuple_in_tupleOfMarkersForTuples10587 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002800000000000L});
+ public static final BitSet FOLLOW_175_in_tupleOfMarkersForTuples10593 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QMARK_in_inMarkerForTuple10614 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_180_in_inMarkerForTuple10624 = new BitSet(new long[]{0xF18EF6E286100000L,0xFF9A3E428EEE5A1AL,0x000000010047B1D3L});
+ public static final BitSet FOLLOW_noncol_ident_in_inMarkerForTuple10628 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_native_type_in_comparatorType10653 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_collection_type_in_comparatorType10669 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_tuple_type_in_comparatorType10681 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_userTypeName_in_comparatorType10697 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_FROZEN_in_comparatorType10709 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
+ public static final BitSet FOLLOW_182_in_comparatorType10711 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_comparatorType10715 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_185_in_comparatorType10717 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_comparatorType10735 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_ASCII_in_native_type10764 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_BIGINT_in_native_type10778 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_BLOB_in_native_type10791 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_BOOLEAN_in_native_type10806 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_COUNTER_in_native_type10818 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DECIMAL_in_native_type10830 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DOUBLE_in_native_type10842 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_FLOAT_in_native_type10855 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_INET_in_native_type10869 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_INT_in_native_type10884 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_SMALLINT_in_native_type10900 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TEXT_in_native_type10911 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TIMESTAMP_in_native_type10926 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TINYINT_in_native_type10936 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_UUID_in_native_type10948 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_VARCHAR_in_native_type10963 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_VARINT_in_native_type10975 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TIMEUUID_in_native_type10988 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_DATE_in_native_type10999 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TIME_in_native_type11014 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_MAP_in_collection_type11042 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
+ public static final BitSet FOLLOW_182_in_collection_type11045 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_collection_type11049 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0002000000000000L});
+ public static final BitSet FOLLOW_177_in_collection_type11051 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_collection_type11055 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_185_in_collection_type11057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_LIST_in_collection_type11075 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
+ public static final BitSet FOLLOW_182_in_collection_type11077 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_collection_type11081 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_185_in_collection_type11083 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_SET_in_collection_type11101 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
+ public static final BitSet FOLLOW_182_in_collection_type11104 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_collection_type11108 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0200000000000000L});
+ public static final BitSet FOLLOW_185_in_collection_type11110 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_TUPLE_in_tuple_type11141 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0040000000000000L});
+ public static final BitSet FOLLOW_182_in_tuple_type11143 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_tuple_type11158 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0202000000000000L});
+ public static final BitSet FOLLOW_177_in_tuple_type11163 = new BitSet(new long[]{0xF18EF6E286100000L,0xFFDA3E428EEE5A1AL,0x000000090047B1D3L});
+ public static final BitSet FOLLOW_comparatorType_in_tuple_type11167 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0202000000000000L});
+ public static final BitSet FOLLOW_185_in_tuple_type11179 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_username11198 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_LITERAL_in_username11206 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_username11214 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IDENT_in_non_type_ident11241 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_QUOTED_NAME_in_non_type_ident11272 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_basic_unreserved_keyword_in_non_type_ident11297 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_K_KEY_in_non_type_ident11309 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_unreserved_function_keyword_in_unreserved_keyword11352 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_set_in_unreserved_keyword11368 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_basic_unreserved_keyword_in_unreserved_function_keyword11407 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_native_type_in_unreserved_function_keyword11419 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_set_in_basic_unreserved_keyword11457 = new BitSet(new long[]{0x0000000000000002L});
+}
diff --git a/rocksandra/src/java/org/apache/cassandra/rocksdb/RocksDBCF.java b/rocksandra/src/java/org/apache/cassandra/rocksdb/RocksDBCF.java
index 40eb101d875b..1df3a5bef640 100644
--- a/rocksandra/src/java/org/apache/cassandra/rocksdb/RocksDBCF.java
+++ b/rocksandra/src/java/org/apache/cassandra/rocksdb/RocksDBCF.java
@@ -235,6 +235,22 @@ public byte[] get(RocksCFName rocksCFName, DecoratedKey partitionKey, byte[] key
return dbhandle.get(rocksCFName, readOptions, key);
}
+ public byte[] getFromSecondaryInstance(DecoratedKey partitionKey, byte[] key) throws RocksDBException
+ {
+ return getFromSecondaryInstance(RocksCFName.DEFAULT, partitionKey, key);
+ }
+
+ public byte[] getFromSecondaryInstance(RocksCFName rocksCFName, DecoratedKey partitionKey, byte[] key) throws RocksDBException
+ {
+ RocksDBInstanceHandle dbhandle = getDBHandleForPartitionKey(partitionKey);
+ return dbhandle.getFromSecondaryInstance(rocksCFName, readOptions, key);
+ }
+
+ public void tryCatchUpWithPrimary(DecoratedKey partitionKey) throws RocksDBException {
+ RocksDBInstanceHandle dbhandle = getDBHandleForPartitionKey(partitionKey);
+ dbhandle.tryCatchUpWithPrimary();
+ }
+
private RocksDBInstanceHandle getDBHandleForPartitionKey(DecoratedKey partitionKey)
{
return rocksDBHandles.get(getShardIdForKey(partitionKey));
diff --git a/rocksandra/src/java/org/apache/cassandra/rocksdb/RocksDBInstanceHandle.java b/rocksandra/src/java/org/apache/cassandra/rocksdb/RocksDBInstanceHandle.java
index 22788fc0b1d4..428c9b515879 100644
--- a/rocksandra/src/java/org/apache/cassandra/rocksdb/RocksDBInstanceHandle.java
+++ b/rocksandra/src/java/org/apache/cassandra/rocksdb/RocksDBInstanceHandle.java
@@ -22,10 +22,10 @@
import java.io.IOException;
import java.nio.file.Paths;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import org.rocksdb.MutableDBOptions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,9 +33,9 @@
import org.apache.cassandra.io.util.FileUtils;
import org.apache.cassandra.metrics.RocksDBTableMetrics;
import org.rocksdb.BlockBasedTableConfig;
-import org.rocksdb.CassandraCompactionFilter;
-import org.rocksdb.CassandraPartitionMetaData;
-import org.rocksdb.CassandraPartitionMetaMergeOperator;
+//import org.rocksdb.CassandraCompactionFilter;
+//import org.rocksdb.CassandraPartitionMetaData;
+//import org.rocksdb.CassandraPartitionMetaMergeOperator;
import org.rocksdb.CassandraValueMergeOperator;
import org.rocksdb.Checkpoint;
import org.rocksdb.ColumnFamilyDescriptor;
@@ -68,21 +68,26 @@ public class RocksDBInstanceHandle
private final OptimisticTransactionDB optimisticTransactionDB;
private final RocksDB rocksDB;
+ private final RocksDB secondaryInstances;
private final ColumnFamilyHandle metaCfHandle;
private final ColumnFamilyHandle dataCfHandle;
private final ColumnFamilyHandle indexCfHandle;
- private final CassandraCompactionFilter compactionFilter;
+// private final CassandraCompactionFilter compactionFilter;
private final String rocksDBPath;
private final ColumnFamilyStore cfs;
- private final CassandraPartitionMetaData partitionMetaData;
+// private final CassandraPartitionMetaData partitionMetaData;
private FlushOptions flushOptions = new FlushOptions().setWaitForFlush(true);
private final CassandraValueMergeOperator mergeOperator;
- private final CassandraPartitionMetaMergeOperator partitionMetaMergeOperator;
+// private final CassandraPartitionMetaMergeOperator partitionMetaMergeOperator;
private final IngestExternalFileOptions ingestExternalFileOptions;
private final IngestExternalFileOptions ingestExternalFileOptionsWithIngestBehind;
+ private final DBOptions dbOptions;
+ private final List cfDescs;
+ private final ArrayList columnFamilyHandles;
+
public RocksDBInstanceHandle(ColumnFamilyStore cfs,
String rocksDBTableDir,
BlockBasedTableConfig tableOptions,
@@ -92,14 +97,14 @@ public RocksDBInstanceHandle(ColumnFamilyStore cfs,
int gcGraceSeconds = cfs.metadata.params.gcGraceSeconds;
boolean purgeTtlOnExpiration = cfs.metadata.params.purgeTtlOnExpiration;
mergeOperator = new CassandraValueMergeOperator(gcGraceSeconds, MERGE_OPERANDS_LIMIT);
- partitionMetaMergeOperator = new CassandraPartitionMetaMergeOperator();
+// partitionMetaMergeOperator = new CassandraPartitionMetaMergeOperator();
rocksDBPath = rocksDBTableDir;
this.cfs = cfs;
- // holding reference avoid compaction filter instance get gc
- this.compactionFilter = new CassandraCompactionFilter(purgeTtlOnExpiration, true, gcGraceSeconds);
+// // holding reference avoid compaction filter instance get gc
+// this.compactionFilter = new CassandraCompactionFilter(purgeTtlOnExpiration, true, gcGraceSeconds);
- DBOptions dbOptions = new DBOptions();
+ dbOptions = new DBOptions();
SstFileManager sstFileManager = new SstFileManager(Env.getDefault());
final long writeBufferSize = RocksDBConfigs.WRITE_BUFFER_SIZE_MBYTES * 1024 * 1024L;
@@ -114,7 +119,7 @@ public RocksDBInstanceHandle(ColumnFamilyStore cfs,
dbOptions.setBytesPerSync(1024 * 1024);
dbOptions.setWalBytesPerSync(1024 * 1024);
dbOptions.setMaxBackgroundCompactions(RocksDBConfigs.BACKGROUD_COMPACTIONS);
- dbOptions.setBaseBackgroundCompactions(RocksDBConfigs.BACKGROUD_COMPACTIONS);
+// dbOptions.setBaseBackgroundCompactions(RocksDBConfigs.BACKGROUD_COMPACTIONS);
dbOptions.setMaxBackgroundFlushes(4);
dbOptions.setMaxSubcompactions(8);
dbOptions.setStatistics(stats);
@@ -125,15 +130,15 @@ public RocksDBInstanceHandle(ColumnFamilyStore cfs,
dbOptions.setAllowIngestBehind(RocksDBConfigs.ALLOW_INGEST_BEHIND);
dbOptions.setDumpMallocStats(RocksDBConfigs.DUMP_MALLOC_STATS);
- List cfDescs = new ArrayList<>(3);
- ArrayList columnFamilyHandles = new ArrayList<>(3);
+ cfDescs = new ArrayList<>(3);
+ columnFamilyHandles = new ArrayList<>(3);
// config meta column family
ColumnFamilyOptions metaCfOptions = new ColumnFamilyOptions();
metaCfOptions.setNumLevels(RocksDBConfigs.META_CF_MAX_LEVELS);
metaCfOptions.setCompressionType(RocksDBConfigs.COMPRESSION_TYPE);
metaCfOptions.setCompactionPriority(CompactionPriority.MinOverlappingRatio);
- metaCfOptions.setMergeOperator(partitionMetaMergeOperator);
+// metaCfOptions.setMergeOperator(partitionMetaMergeOperator);
metaCfOptions.setMaxWriteBufferNumber(2);
metaCfOptions.setWriteBufferSize(RocksDBConfigs.META_WRITE_BUFFER_SIZE_MBYTES * 1024 * 1024L);
metaCfOptions.setTableFormatConfig(metaTableOptions);
@@ -154,7 +159,7 @@ public RocksDBInstanceHandle(ColumnFamilyStore cfs,
indexCfOptions.setLevel0StopWritesTrigger(RocksDBConfigs.LEVEL0_STOP_WRITES_TRIGGER);
indexCfOptions.setLevelCompactionDynamicLevelBytes(!RocksDBConfigs.DYNAMIC_LEVEL_BYTES_DISABLED);
indexCfOptions.setMergeOperator(mergeOperator);
- indexCfOptions.setCompactionFilter(this.compactionFilter);
+// indexCfOptions.setCompactionFilter(this.compactionFilter);
indexCfOptions.setTableFormatConfig(tableOptions);
ColumnFamilyDescriptor indexCfDescriptor = new ColumnFamilyDescriptor("index".getBytes(), indexCfOptions);
@@ -177,7 +182,7 @@ public RocksDBInstanceHandle(ColumnFamilyStore cfs,
dataCfOptions.setLevel0StopWritesTrigger(RocksDBConfigs.LEVEL0_STOP_WRITES_TRIGGER);
dataCfOptions.setLevelCompactionDynamicLevelBytes(!RocksDBConfigs.DYNAMIC_LEVEL_BYTES_DISABLED);
dataCfOptions.setMergeOperator(mergeOperator);
- dataCfOptions.setCompactionFilter(this.compactionFilter);
+// dataCfOptions.setCompactionFilter(this.compactionFilter);
dataCfOptions.setTableFormatConfig(tableOptions);
ColumnFamilyDescriptor dataCfDescriptor = new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY, dataCfOptions);
@@ -196,13 +201,16 @@ public RocksDBInstanceHandle(ColumnFamilyStore cfs,
rocksDB = RocksDB.open(dbOptions, rocksDBTableDir, cfDescs, columnFamilyHandles);
}
- assert columnFamilyHandles.size() == 3;
+ String secondaryPath = "/Users/tanmeshnm/Downloads/rocksandra_data";
+ secondaryInstances = RocksDB.openAsSecondary(dbOptions, rocksDBTableDir, secondaryPath, cfDescs, columnFamilyHandles);
+
+ assert columnFamilyHandles.size() == 3 + 3;
this.dataCfHandle = columnFamilyHandles.get(0);
this.metaCfHandle = columnFamilyHandles.get(1);
this.indexCfHandle = columnFamilyHandles.get(2);
- this.partitionMetaData = new CassandraPartitionMetaData(rocksDB, metaCfHandle, getTokenLength(cfs));
+// this.partitionMetaData = new CassandraPartitionMetaData(rocksDB, metaCfHandle, getTokenLength(cfs));
setupMetaBloomFilter(rocksDBTableDir);
- this.compactionFilter.setPartitionMetaData(partitionMetaData);
+// this.compactionFilter.setPartitionMetaData(partitionMetaData);
this.ingestExternalFileOptions = new IngestExternalFileOptions();
this.ingestExternalFileOptionsWithIngestBehind = new IngestExternalFileOptions();
ingestExternalFileOptionsWithIngestBehind.setIngestBehind(true);
@@ -227,7 +235,7 @@ private void setupMetaBloomFilter(String rocksDBTableDir) throws RocksDBExceptio
return;
}
long startTime = System.currentTimeMillis();
- partitionMetaData.enableBloomFilter(bloomTotalBits);
+// partitionMetaData.enableBloomFilter(bloomTotalBits);
logger.info("Enabled partition meta key bloom filter for {}, loading {} keys using {}ms, bloom_total_bits:{}",
rocksDBTableDir, metaNumOfKeys, System.currentTimeMillis() - startTime, bloomTotalBits);
}
@@ -267,6 +275,14 @@ public byte[] get(RocksCFName rocksCFName, ReadOptions readOptions, byte[] key)
return rocksDB.get(cfHandle, readOptions, key);
}
+ public byte[] getFromSecondaryInstance(RocksCFName rocksCFName, ReadOptions readOptions, byte[] key) throws RocksDBException
+ {
+ ColumnFamilyHandle cfHandle = getCfHandle(rocksCFName);
+ return secondaryInstances.get(cfHandle, readOptions, key);
+ }
+
+ public void tryCatchUpWithPrimary() throws RocksDBException { secondaryInstances.tryCatchUpWithPrimary(); }
+
public RocksDBIteratorAdapter newIterator(RocksCFName rocksCFName, ReadOptions options, RocksDBTableMetrics rocksMetrics)
{
rocksMetrics.rocksDBIterNew.inc();
@@ -282,7 +298,7 @@ public RocksDBIteratorAdapter newShardIterator(RocksCFName rocksCFName, ReadOpti
public void deleteRange(byte[] start, byte[] end) throws RocksDBException
{
- rocksDB.deleteFilesInRange(start, end); //todo: make deleteFilesInRange API support cf_handles
+// rocksDB.deleteFilesInRange(start, end); //todo: make deleteFilesInRange API support cf_handles
rocksDB.deleteRange(dataCfHandle, start, end);
rocksDB.deleteRange(metaCfHandle, start, end);
rocksDB.deleteRange(indexCfHandle, start, end);
@@ -312,14 +328,14 @@ public String getProperty(RocksCFName rocksCFName, String property) throws Rocks
public void truncate(byte[] startRange, byte[] endRange) throws RocksDBException
{
// delete all sstables other than L0
- rocksDB.deleteFilesInRange(startRange, endRange);
+// rocksDB.deleteFilesInRange(startRange, endRange);
// Move L0 sstables to L1
rocksDB.flush(flushOptions);
rocksDB.compactRange();
// delete all sstables other than L0
- rocksDB.deleteFilesInRange(startRange, endRange);
+// rocksDB.deleteFilesInRange(startRange, endRange);
}
public void close()
@@ -412,12 +428,12 @@ public Transaction beginTransaction(WriteOptions writeOptions)
public void deleteParition(byte[] partitionKeyWithToken, int localDeletionTime, long markedForDeleteAt) throws RocksDBException
{
- this.partitionMetaData.deletePartition(partitionKeyWithToken, localDeletionTime, markedForDeleteAt);
+// this.partitionMetaData.deletePartition(partitionKeyWithToken, localDeletionTime, markedForDeleteAt);
}
public void applyRawPartitionMetaData(byte[] key, byte[] value) throws RocksDBException
{
- this.partitionMetaData.applyRaw(key, value);
+// this.partitionMetaData.applyRaw(key, value);
}
public RocksDB getDB()
diff --git a/rocksandra/src/resources/org/apache/cassandra/config/version.properties b/rocksandra/src/resources/org/apache/cassandra/config/version.properties
new file mode 100644
index 000000000000..89751813198f
--- /dev/null
+++ b/rocksandra/src/resources/org/apache/cassandra/config/version.properties
@@ -0,0 +1,3 @@
+#Thu, 29 Jun 2023 08:32:13 -0700
+
+CassandraVersion=3.0.15-SNAPSHOT
diff --git a/rocksandra/test/unit/org/apache/cassandra/rocksdb/RocksDBCFTest.java b/rocksandra/test/unit/org/apache/cassandra/rocksdb/RocksDBCFTest.java
index e83fffd10db1..7ca16415a0ca 100644
--- a/rocksandra/test/unit/org/apache/cassandra/rocksdb/RocksDBCFTest.java
+++ b/rocksandra/test/unit/org/apache/cassandra/rocksdb/RocksDBCFTest.java
@@ -110,6 +110,26 @@ public void testDeleteRange() throws RocksDBException
assertNull(rocksDBCF.get(dk, c));
assertArrayEquals(value, rocksDBCF.get(dk, d));
}
+
+ @Test
+ public void secondaryInstanceTest() throws RocksDBException {
+ createTable("CREATE TABLE %s (p text, c text, v text, PRIMARY KEY (p, c))");
+ ColumnFamilyStore cfs = getCurrentColumnFamilyStore();
+
+ RocksDBCF rocksDBCF = RocksDBEngine.getRocksDBCF(cfs.metadata.cfId);
+
+ byte[] a = "a".getBytes();
+ byte[] value = encodeValue(cfs, "test_value");
+
+ rocksDBCF.merge(dk, a, value);
+
+ // Before usng TCUWP()
+ assertNull(rocksDBCF.getFromSecondaryInstance(dk,a));
+
+ // After usng TCUWP()
+ rocksDBCF.tryCatchUpWithPrimary(dk);
+ assertArrayEquals(value, rocksDBCF.getFromSecondaryInstance(dk,a));
+ }
@Test
public void testTruncate() throws RocksDBException