mirror of https://github.com/apache/cassandra
Add boolean as literals in CQL3
patch by slebresne and iamaleksey; reviewed by jbellis for CASSANDRA-4776
This commit is contained in:
parent
10777f2cc8
commit
ff817cf633
|
|
@ -36,6 +36,7 @@
|
|||
* Fix Subcolumn slice ends not respected (CASSANDRA-4826)
|
||||
* Fix Assertion error in cql3 select (CASSANDRA-4783)
|
||||
* Fix list prepend logic (CQL3) (CASSANDRA-4835)
|
||||
* Add booleans as literals in CQL3 (CASSANDRA-4776)
|
||||
Merged from 1.1:
|
||||
* fix get_paged_slice to wrap to next row correctly (CASSANDRA-4816)
|
||||
* fix indexing empty column values (CASSANDRA-4832)
|
||||
|
|
|
|||
|
|
@ -208,6 +208,9 @@ JUNK ::= /([ \t\r\f\v]+|(--|[/][/])[^\n\r]*([\n\r]|$)|[/][*].*?[*][/])/ ;
|
|||
<brackets> ::= /[][{}]/ ;
|
||||
|
||||
<integer> ::= "-"? <wholenumber> ;
|
||||
<boolean> ::= "true"
|
||||
| "false"
|
||||
;
|
||||
|
||||
<unclosedString> ::= /'([^']|'')*/ ;
|
||||
<unclosedName> ::= /"([^"]|"")*/ ;
|
||||
|
|
@ -217,6 +220,7 @@ JUNK ::= /([ \t\r\f\v]+|(--|[/][/])[^\n\r]*([\n\r]|$)|[/][*].*?[*][/])/ ;
|
|||
| <integer>
|
||||
| <float>
|
||||
| <uuid>
|
||||
| <boolean>
|
||||
;
|
||||
|
||||
<tokenDefinition> ::= token="TOKEN" "(" <term> ( "," <term> )* ")"
|
||||
|
|
@ -841,6 +845,8 @@ def insert_newval_completer(ctxt, cass):
|
|||
return ['{']
|
||||
if coltype == 'list':
|
||||
return ['[']
|
||||
if coltype == 'boolean':
|
||||
return ['true', 'false']
|
||||
return [Hint('<value for %s (%s)>' % (maybe_escape_name(curcol),
|
||||
cqltype.cql_parameterized_type()))]
|
||||
|
||||
|
|
|
|||
|
|
@ -578,7 +578,7 @@ map_literal returns [Map<Term, Term> value]
|
|||
;
|
||||
|
||||
term returns [Term term]
|
||||
: t=(STRING_LITERAL | UUID | INTEGER | FLOAT ) { $term = new Term($t.text, $t.type); }
|
||||
: t=(STRING_LITERAL | UUID | INTEGER | FLOAT | K_TRUE | K_FALSE ) { $term = new Term($t.text, $t.type); }
|
||||
| t=QMARK { $term = new Term($t.text, $t.type, ++currentBindMarkerIdx); }
|
||||
;
|
||||
|
||||
|
|
@ -641,7 +641,7 @@ property[PropertyDefinitions props]
|
|||
;
|
||||
|
||||
propertyValue returns [String str]
|
||||
: v=(STRING_LITERAL | IDENT | INTEGER | FLOAT) { $str = $v.text; }
|
||||
: v=(STRING_LITERAL | IDENT | INTEGER | FLOAT | K_TRUE | K_FALSE) { $str = $v.text; }
|
||||
| u=unreserved_keyword { $str = u; }
|
||||
;
|
||||
|
||||
|
|
@ -823,6 +823,9 @@ K_WRITETIME: W R I T E T I M E;
|
|||
K_MAP: M A P;
|
||||
K_LIST: L I S T;
|
||||
|
||||
K_TRUE: T R U E;
|
||||
K_FALSE: F A L S E;
|
||||
|
||||
// Case-insensitive alpha characters
|
||||
fragment A: ('a'|'A');
|
||||
fragment B: ('b'|'B');
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class Term
|
|||
{
|
||||
public enum Type
|
||||
{
|
||||
STRING, INTEGER, UUID, FLOAT, QMARK;
|
||||
STRING, INTEGER, UUID, FLOAT, BOOLEAN, QMARK;
|
||||
|
||||
static Type forInt(int type)
|
||||
{
|
||||
|
|
@ -42,6 +42,8 @@ public class Term
|
|||
return UUID;
|
||||
else if (type == CqlParser.FLOAT)
|
||||
return FLOAT;
|
||||
else if (type == CqlParser.K_TRUE || type == CqlParser.K_FALSE)
|
||||
return BOOLEAN;
|
||||
else if (type == CqlParser.QMARK)
|
||||
return QMARK;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue