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