You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by km...@apache.org on 2016/12/23 21:10:00 UTC
[07/25] geode git commit: GEODE-165: Removed OQL generated files and
added the target into geode-core/build.gradle.
GEODE-165: Removed OQL generated files and added the target into geode-core/build.gradle.
GEODE-165 : Updating spotless configuration to exclude 'generated-src' directory.
Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/16e2cfcd
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/16e2cfcd
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/16e2cfcd
Branch: refs/heads/feature/GEODE-2231
Commit: 16e2cfcdd9fc0fb9c7e5213cf68c68257cba7780
Parents: 24097a8
Author: adongre <ad...@apache.org>
Authored: Fri Dec 16 14:17:10 2016 +0530
Committer: Karen Miller <km...@pivotal.io>
Committed: Fri Dec 23 13:09:28 2016 -0800
----------------------------------------------------------------------
build.gradle | 4 +
geode-core/build.gradle | 3 +
.../geode/cache/query/internal/parse/oql.g | 1195 ++++++
.../query/internal/AbstractCompiledValue.java | 2 +-
.../geode/cache/query/internal/CompiledIn.java | 2 +-
.../cache/query/internal/CompiledLike.java | 2 -
.../query/internal/CompiledSortCriterion.java | 6 -
.../query/internal/CompositeGroupJunction.java | 1 -
.../geode/cache/query/internal/DerivedInfo.java | 5 -
.../geode/cache/query/internal/IndexInfo.java | 2 -
.../geode/cache/query/internal/PathUtils.java | 2 +-
.../geode/cache/query/internal/QCompiler.java | 11 +-
.../geode/cache/query/internal/QueryUtils.java | 2 +-
.../cache/query/internal/RangeJunction.java | 2 +-
.../query/internal/index/AbstractIndex.java | 4 +-
.../index/FunctionalIndexCreationHelper.java | 3 -
.../cache/query/internal/index/HashIndex.java | 3 +-
.../query/internal/index/MapIndexStore.java | 4 -
.../cache/query/internal/index/RangeIndex.java | 1 -
.../cache/query/internal/parse/OQLLexer.java | 3471 -----------------
.../internal/parse/OQLLexerTokenTypes.java | 156 -
.../query/internal/parse/OQLLexerTokenTypes.txt | 147 -
.../cache/query/internal/parse/OQLParser.java | 3650 ------------------
.../geode/cache/query/internal/parse/oql.g | 1195 ------
.../query/functional/FunctionJUnitTest.java | 2 +-
.../CompiledAggregateFunctionJUnitTest.java | 2 +-
.../CompiledJunctionInternalsJUnitTest.java | 2 +-
.../query/internal/QCompilerJUnitTest.java | 2 +-
.../SelectResultsComparatorJUnitTest.java | 2 +-
.../internal/index/RangeIndexAPIJUnitTest.java | 2 +-
.../query/internal/types/TypeUtilTest.java | 2 +-
gradle/rat.gradle | 6 -
32 files changed, 1219 insertions(+), 8674 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 360310f..3dcdf1e 100755
--- a/build.gradle
+++ b/build.gradle
@@ -91,6 +91,10 @@ subprojects {
spotless {
lineEndings = 'unix';
java {
+ target project.fileTree(project.projectDir) {
+ include '**/*.java'
+ exclude '**/generated-src/**'
+ }
eclipseFormatFile "${rootProject.projectDir}/etc/eclipse-java-google-style.xml"
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/build.gradle
----------------------------------------------------------------------
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 067bafc..28085be 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -15,6 +15,9 @@
* limitations under the License.
*/
+
+apply plugin: 'antlr'
+
sourceSets {
jca {
compileClasspath += configurations.compile
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/antlr/org/apache/geode/cache/query/internal/parse/oql.g
----------------------------------------------------------------------
diff --git a/geode-core/src/main/antlr/org/apache/geode/cache/query/internal/parse/oql.g b/geode-core/src/main/antlr/org/apache/geode/cache/query/internal/parse/oql.g
new file mode 100644
index 0000000..a743752
--- /dev/null
+++ b/geode-core/src/main/antlr/org/apache/geode/cache/query/internal/parse/oql.g
@@ -0,0 +1,1195 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+** oql.g
+**
+** Built with Antlr 2.7.4
+** java antlr.Tool oql.g
+*/
+
+header {
+package org.apache.geode.cache.query.internal.parse;
+import java.util.*;
+import org.apache.geode.cache.query.internal.types.*;
+}
+
+options {
+ language="Java";
+}
+
+class OQLLexer extends Lexer ;
+options {
+ k=2;
+ charVocabulary = '\u0000'..'\uFFFE';
+ testLiterals=false; // don't automatically test for literals
+ caseSensitive=false;
+ caseSensitiveLiterals = false;
+ defaultErrorHandler = false;
+}
+
+{
+ static {
+ // Set up type names for verbose AST printing
+ antlr.BaseAST.setVerboseStringConversion(true, OQLParser._tokenNames);
+ }
+
+ protected Token makeToken(int t) {
+ Token tok = super.makeToken(t);
+ if (tok.getType() == EOF) tok.setText("EOF");
+ if (tok.getText() == null) {
+ tok.setText("(no text)");
+ }
+ return tok;
+ }
+}
+
+
+ /* punctuation */
+TOK_RPAREN : ')' ;
+TOK_LPAREN : '(' ;
+TOK_COMMA : ',' ;
+TOK_SEMIC : ';' ;
+TOK_DOTDOT : ".." ;
+TOK_COLON : ':' ;
+TOK_DOT : '.' ;
+TOK_INDIRECT: '-' '>' { $setType(TOK_DOT); } ;
+TOK_CONCAT : '|' '|' ;
+TOK_EQ : '=' ;
+TOK_PLUS : '+' ;
+TOK_MINUS : '-' ;
+TOK_SLASH : '/' ;
+TOK_STAR : '*' ;
+TOK_LE : '<' '=' ;
+TOK_GE : '>' '=' ;
+TOK_NE : '<' '>' ;
+TOK_NE_ALT : '!' '=' { $setType(TOK_NE); } ;
+TOK_LT : '<' ;
+TOK_GT : '>' ;
+TOK_LBRACK : '[' ;
+TOK_RBRACK : ']' ;
+TOK_DOLLAR : '$' ;
+
+/* Character Classes */
+protected
+LETTER : ('\u0061'..'\u007a' |
+ '\u00c0'..'\u00d6' |
+ '\u00a1'..'\u00bf' |
+ '\u00d8'..'\u00f6' |
+ '\u00f8'..'\u00ff' |
+ '\u0100'..'\u065f' |
+ '\u066a'..'\u06ef' |
+ '\u06fa'..'\u0965' |
+ '\u0970'..'\u09e5' |
+ '\u09f0'..'\u0a65' |
+ '\u0a70'..'\u0ae5' |
+ '\u0af0'..'\u0b65' |
+ '\u0b70'..'\u0be6' |
+ '\u0bf0'..'\u0c65' |
+ '\u0c70'..'\u0ce5' |
+ '\u0cf0'..'\u0d65' |
+ '\u0d70'..'\u0e4f' |
+ '\u0e5a'..'\u0ecf' |
+ '\u0eda'..'\u103f' |
+ '\u104a'..'\u1fff' |
+ '\u2000'..'\u206f' |
+ '\u3040'..'\u318f' |
+ '\u3300'..'\u337f' |
+ '\u3400'..'\u3d2d' |
+ '\u4e00'..'\u9fff' |
+ '\uf900'..'\ufaff')
+ ;
+
+protected
+DIGIT : ('\u0030'..'\u0039' |
+ '\u0660'..'\u0669' |
+ '\u06f0'..'\u06f9' |
+ '\u0966'..'\u096f' |
+ '\u09e6'..'\u09ef' |
+ '\u0a66'..'\u0a6f' |
+ '\u0ae6'..'\u0aef' |
+ '\u0b66'..'\u0b6f' |
+ '\u0be7'..'\u0bef' |
+ '\u0c66'..'\u0c6f' |
+ '\u0ce6'..'\u0cef' |
+ '\u0d66'..'\u0d6f' |
+ '\u0e50'..'\u0e59' |
+ '\u0ed0'..'\u0ed9' |
+ '\u1040'..'\u1049')
+ ;
+
+protected
+ALL_UNICODE : ('\u0061'..'\ufffd')
+ ;
+
+/*
+ * Names
+ */
+protected
+NameFirstCharacter:
+ ( LETTER | '_' )
+ ;
+
+protected
+NameCharacter:
+ ( LETTER | '_' | DIGIT | '$') // an internal $ is used for internal use identifiers
+ ;
+
+protected
+RegionNameCharacter:
+ ( ALL_UNICODE | '_' | DIGIT | '+' | '-' | ':' | '#' | '@' | '$') // an internal $ is used for internal use identifiers
+ ;
+
+QuotedIdentifier
+ options {testLiterals=false;}
+ :
+
+ '"'! NameFirstCharacter ( NameCharacter )* '"'!
+ ;
+
+
+
+Identifier
+ options {testLiterals=true;}
+ :
+
+ NameFirstCharacter ( NameCharacter )*
+ ;
+
+
+
+RegionPath : ( ( (TOK_SLASH ( RegionNameCharacter )+ )+ ) |
+ ( (TOK_SLASH StringLiteral )+ ) )
+ ;
+
+
+/* Numbers */
+// a numeric literal
+NUM_INT
+ {boolean isDecimal=false; Token t=null;}
+ : ( '0' {isDecimal = true;} // special case for just '0'
+ ( 'x'
+ ( // hex
+ // the 'e'|'E' and float suffix stuff look
+ // like hex digits, hence the (...)+ doesn't
+ // know when to stop: ambig. ANTLR resolves
+ // it correctly by matching immediately. It
+ // is therefor ok to hush warning.
+ options {
+ warnWhenFollowAmbig=false;
+ }
+ : HEX_DIGIT
+ )+
+
+ | //float or double with leading zero
+ (('0'..'9')+ ('.'|EXPONENT|FLOAT_SUFFIX)) => ('0'..'9')+
+
+ | ('0'..'7')+ // octal
+ )?
+ | ('1'..'9') ('0'..'9')* {isDecimal=true;} // non-zero decimal
+ )
+ ( 'l' { _ttype = NUM_LONG; }
+
+ // only check to see if it's a float if looks like decimal so far
+ | {isDecimal}?
+ ( '.' ('0'..'9')* (EXPONENT)? (f2:FLOAT_SUFFIX {t=f2;})?
+ | EXPONENT (f3:FLOAT_SUFFIX {t=f3;})?
+ | f4:FLOAT_SUFFIX {t=f4;}
+ )
+ {
+ if (t != null && t.getText().toUpperCase() .indexOf('F') >= 0) {
+ _ttype = NUM_FLOAT;
+ }
+ else {
+ _ttype = NUM_DOUBLE; // assume double
+ }
+ }
+ )?
+ ;
+
+
+// a couple protected methods to assist in matching floating point numbers
+protected
+EXPONENT
+ : 'e' ('+'|'-')? ('0'..'9')+
+ ;
+
+
+protected
+FLOAT_SUFFIX
+ : 'f'|'d'
+ ;
+
+// hexadecimal digit
+protected
+HEX_DIGIT
+ : ('0'..'9'| 'a'..'f')
+ ;
+
+
+protected
+QUOTE
+ : '\''
+ ;
+
+StringLiteral :
+ QUOTE!
+ (
+ QUOTE QUOTE!
+ | '\n' { newline(); }
+ | ~( '\'' | '\n' )
+ )*
+ QUOTE!
+
+ ;
+
+
+// Whitespace -- ignored
+WS : ( ' '
+ | '\t'
+ | '\f'
+ // handle newlines
+ | ( options {generateAmbigWarnings=false;}
+ : "\r\n" // Evil DOS
+ | '\r' // Macintosh
+ | '\n' // Unix (the right way)
+ )
+ { newline(); }
+ )+
+ { _ttype = Token.SKIP; }
+ ;
+
+
+// Single-line comments
+SL_COMMENT
+ : "--"
+ (~('\n'|'\r'))* ('\n'|'\r'('\n')?)?
+ {$setType(Token.SKIP); newline();}
+ ;
+
+// multiple-line comments
+ML_COMMENT
+ : "/*"
+ ( /* '\r' '\n' can be matched in one alternative or by matching
+ '\r' in one iteration and '\n' in another. I am trying to
+ handle any flavor of newline that comes in, but the language
+ that allows both "\r\n" and "\r" and "\n" to all be valid
+ newline is ambiguous. Consequently, the resulting grammar
+ must be ambiguous. I'm shutting this warning off.
+ */
+ options {
+ generateAmbigWarnings=false;
+ }
+ :
+ { LA(2)!='/' }? '*'
+ | '\r' '\n' {newline();}
+ | '\r' {newline();}
+ | '\n' {newline();}
+ | ~('*'|'\n'|'\r')
+ )*
+ "*/"
+ {$setType(Token.SKIP);}
+ ;
+
+
+
+
+/***************************** OQL PARSER *************************************/
+
+class OQLParser
+extends Parser("org.apache.geode.cache.query.internal.parse.UtilParser");
+
+options {
+ buildAST = true;
+ k = 2;
+ codeGenMakeSwitchThreshold = 3;
+ codeGenBitsetTestThreshold = 4;
+ defaultErrorHandler = false;
+}
+
+tokens {
+ QUERY_PROGRAM;
+ QUALIFIED_NAME;
+ QUERY_PARAM;
+ ITERATOR_DEF;
+ PROJECTION_ATTRS;
+ PROJECTION;
+ TYPECAST;
+ COMBO;
+ METHOD_INV;
+ POSTFIX;
+ OBJ_CONSTRUCTOR;
+ IMPORTS;
+ SORT_CRITERION;
+ LIMIT;
+ HINT;
+ AGG_FUNC;
+ SUM;
+ AVG;
+ COUNT;
+ MAX;
+ MIN;
+}
+
+queryProgram :
+ ( traceCommand )?
+ (
+
+ ( declaration ( TOK_SEMIC! declaration )* ( TOK_SEMIC! query ) ) (TOK_SEMIC!)?
+ |
+ query (TOK_SEMIC!)?
+ )
+ EOF!
+ { #queryProgram =
+ #([QUERY_PROGRAM, "queryProgram",
+ "org.apache.geode.cache.query.internal.parse.GemFireAST"],
+ #queryProgram); }
+ ;
+
+traceCommand:
+ (
+ TOK_LT!
+ "trace"^<AST=org.apache.geode.cache.query.internal.parse.ASTTrace>
+ TOK_GT!
+ )
+ ;
+
+
+loneFromClause :
+ iteratorDef
+ (
+ TOK_COMMA!
+ iteratorDef
+ )* EOF!
+ { #loneFromClause =
+ #([LITERAL_from, "from",
+ "org.apache.geode.cache.query.internal.parse.ASTCombination"],
+ #loneFromClause); }
+ ;
+
+loneProjectionAttributes :
+ projectionAttributes EOF!
+ ;
+
+declaration :
+
+ defineQuery
+ | importQuery
+ | undefineQuery
+ | paramTypeDecl
+
+ ;
+
+importQuery :
+
+ "import"^<AST=org.apache.geode.cache.query.internal.parse.ASTImport>
+ qualifiedName
+ (
+ "as" identifier
+ )?
+
+ ;
+
+loneImports :
+ importQuery ( TOK_SEMIC! importQuery )*
+ (TOK_SEMIC!)?
+ EOF!
+ // combine into a single node
+ { #loneImports = #([IMPORTS, "imports",
+ "org.apache.geode.cache.query.internal.parse.GemFireAST"],
+ #loneImports); }
+ ;
+
+paramTypeDecl :
+
+ "declare"^ (queryParam) (TOK_COMMA! queryParam)* type
+ ;
+
+
+qualifiedName :
+
+ identifier
+ (
+ TOK_DOT!
+ identifier
+ )*
+ ;
+
+
+defineQuery :
+
+ "define"^
+ ( "query"! )?
+ identifier
+
+ (
+ TOK_LPAREN!
+ type
+ identifier
+ (
+ TOK_COMMA!
+ type
+ identifier
+ )*
+ TOK_RPAREN!
+ )?
+
+ "as"!
+ query
+ ;
+
+undefineQuery :
+
+ "undefine"^
+ ( "query"! )?
+ identifier
+ ;
+
+query :
+
+ (
+ selectExpr
+ | expr
+ )
+ ;
+
+selectExpr :
+ ( hintCommand )?
+ "select"^<AST=org.apache.geode.cache.query.internal.parse.ASTSelect>
+
+ (
+ // ambig. betweed this distinct and a distinct conversion expr
+ // the first distinct keyword here must be for the select,
+ // so take adv. of greedy and turn off warning
+ options {
+ warnWhenFollowAmbig = false;
+ } :
+
+ "distinct" <AST=org.apache.geode.cache.query.internal.parse.ASTDummy>
+ | "all" <AST=org.apache.geode.cache.query.internal.parse.ASTDummy>
+ )?
+
+
+ (
+ projectionAttributes
+ )
+ fromClause
+ ( whereClause )?
+ ( groupClause )?
+ ( orderClause )?
+ ( limitClause )?
+ ;
+
+fromClause :
+
+ "from"^<AST=org.apache.geode.cache.query.internal.parse.ASTCombination>
+ iteratorDef
+ (
+ TOK_COMMA!
+ iteratorDef
+ )*
+ ;
+
+iteratorDef! :
+
+ (identifier "in" ) =>
+
+ id1:identifier
+ "in"!
+ ex1:expr ( "type"! t1:type )?
+ { #iteratorDef = #([ITERATOR_DEF, "iterDef", "org.apache.geode.cache.query.internal.parse.ASTIteratorDef"], #ex1, #id1, #t1); }
+
+ | ex2:expr
+ (
+ ( "as"! )?
+ id2:identifier
+ )?
+ ( "type"! t2:type )?
+
+ { #iteratorDef = #([ITERATOR_DEF, "iterDef", "org.apache.geode.cache.query.internal.parse.ASTIteratorDef"], #ex2, #id2, #t2); }
+ ;
+
+whereClause :
+
+ "where"! expr
+ ;
+
+limitClause! :
+
+ "limit" (TOK_DOLLAR NUM_INT
+ { #limitClause = #([LIMIT, "limitParam",
+ "org.apache.geode.cache.query.internal.parse.ASTParameter"],
+ #NUM_INT); }
+ | n:NUM_INT{ #limitClause =#[LIMIT,n.getText(),"org.apache.geode.cache.query.internal.parse.ASTLimit"] ; })
+ ;
+
+projectionAttributes :
+
+ (
+ projection
+ (
+ TOK_COMMA!
+ projection
+ )*
+ { #projectionAttributes = #([PROJECTION_ATTRS, "projectionAttrs",
+ "org.apache.geode.cache.query.internal.parse.ASTCombination"],
+ #projectionAttributes); }
+
+ | TOK_STAR <AST=org.apache.geode.cache.query.internal.parse.ASTDummy>
+ )
+ ;
+
+projection!{ AST node = null;}:
+
+ lb1:identifier TOK_COLON! ( tok1:aggregateExpr{node = #tok1;} | tok2:expr{node = #tok2;})
+ { #projection = #([PROJECTION, "projection",
+ "org.apache.geode.cache.query.internal.parse.ASTProjection"], node, #lb1); }
+ |
+ (tok3:aggregateExpr{node = #tok3;} | tok4:expr{node = #tok4;})
+ (
+ "as"
+ lb2: identifier
+ )?
+ { #projection = #([PROJECTION, "projection",
+ "org.apache.geode.cache.query.internal.parse.ASTProjection"], node, #lb2); }
+ ;
+
+
+
+
+groupClause :
+
+ "group"^<AST=org.apache.geode.cache.query.internal.parse.ASTGroupBy>
+ "by"! groupByList
+
+ (
+ "having"!
+ expr
+ )?
+ ;
+
+hintCommand :
+
+ TOK_LT!
+ "hint"^<AST=org.apache.geode.cache.query.internal.parse.ASTHint>
+ hintIdentifier
+ (
+ TOK_COMMA! hintIdentifier
+ )*
+ TOK_GT!
+
+ ;
+
+
+hintIdentifier :
+ n:StringLiteral{ #hintIdentifier =#[HINT,n.getText(),"org.apache.geode.cache.query.internal.parse.ASTHintIdentifier"] ; }
+;
+
+orderClause :
+
+ "order"^<AST=org.apache.geode.cache.query.internal.parse.ASTOrderBy>
+ "by"!
+ sortCriterion
+ (
+ TOK_COMMA! sortCriterion
+ )*
+ ;
+
+sortCriterion :
+
+ tok:expr { #sortCriterion = #([SORT_CRITERION, "asc", "org.apache.geode.cache.query.internal.parse.ASTSortCriterion"],
+ tok); }
+ (
+ "asc"! {#sortCriterion.setText("asc");}
+ | "desc"! {#sortCriterion.setText("desc");}
+
+ )?
+ ;
+
+expr :
+
+ castExpr
+
+ ;
+
+
+castExpr
+ :
+
+ // Have to backtrack to see if operator follows. If no operator
+ // follows, it's a typecast. No semantic checking needed to parse.
+ // if it _looks_ like a cast, it _is_ a cast; else it's a "(expr)"
+ (TOK_LPAREN type TOK_RPAREN castExpr)=>
+ lp:TOK_LPAREN^<AST=org.apache.geode.cache.query.internal.parse.ASTTypeCast>
+ {#lp.setType(TYPECAST); #lp.setText("typecast");}
+ type TOK_RPAREN!
+ castExpr
+
+ | orExpr
+ ;
+
+orExpr
+ { boolean cmplx = false; } :
+
+ orelseExpr ( "or"! orelseExpr { cmplx = true; } )*
+ { if (cmplx) {
+ #orExpr = #([LITERAL_or, "or",
+ "org.apache.geode.cache.query.internal.parse.ASTOr"],
+ #orExpr); } }
+ ;
+
+orelseExpr
+ { boolean cmplx = false; } :
+ andExpr ( "orelse"! andExpr { cmplx = true; } )*
+ { if (cmplx) { #orelseExpr = #([LITERAL_orelse, "or"], #orelseExpr); } }
+ ;
+
+
+andExpr
+ { boolean cmplx = false; } :
+ quantifierExpr ( "and"! quantifierExpr { cmplx = true; } )*
+ { if (cmplx) {
+ #andExpr = #([LITERAL_and, "and",
+ "org.apache.geode.cache.query.internal.parse.ASTAnd"],
+ #andExpr); } }
+ ;
+
+quantifierExpr :
+
+ "for"^
+ "all"!
+ inClause TOK_COLON! andthenExpr
+
+ |
+ ("exists" identifier "in" ) =>
+ "exists"^
+ inClause
+ TOK_COLON! andthenExpr
+
+ | andthenExpr
+
+ ;
+
+
+inClause :
+ identifier "in"! expr
+ ;
+
+
+
+andthenExpr
+ { boolean cmplx = false; } :
+ equalityExpr ( "andthen"! equalityExpr { cmplx = true; } )*
+ { if (cmplx) { #andthenExpr = #([LITERAL_andthen, "andthen"], #andthenExpr); } }
+ ;
+
+
+equalityExpr :
+
+ relationalExpr
+
+ (
+ ( (
+ TOK_EQ^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
+ | TOK_NE^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
+ )
+ ( "all"^
+ | "any"^
+ | "some"^
+ )?
+ relationalExpr )+
+
+ | ( "like"^<AST=org.apache.geode.cache.query.internal.parse.ASTLike>
+ relationalExpr )*
+ )
+ ;
+
+relationalExpr :
+
+ additiveExpr
+ (
+ (
+ TOK_LT^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
+ | TOK_GT^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
+ | TOK_LE^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
+ | TOK_GE^<AST=org.apache.geode.cache.query.internal.parse.ASTCompareOp>
+ )
+
+ (
+ // Simple comparison of expressions
+ additiveExpr
+
+ // Comparison of queries
+ | (
+ "all"^
+ | "any"^
+ | "some"^
+ )
+ additiveExpr
+ )
+ )*
+ ;
+
+additiveExpr :
+
+ multiplicativeExpr
+ (
+ (
+ TOK_PLUS^
+ | TOK_MINUS^
+ | TOK_CONCAT^
+ | "union"^
+ | "except"^
+ )
+ multiplicativeExpr
+ )*
+ ;
+
+multiplicativeExpr :
+
+ inExpr
+ (
+ (
+ TOK_STAR^
+ | TOK_SLASH^
+ | "mod"^
+ | "intersect"^
+ )
+ inExpr
+ )*
+ ;
+
+inExpr :
+
+ unaryExpr
+ (
+ "in"^<AST=org.apache.geode.cache.query.internal.parse.ASTIn> unaryExpr
+ )?
+ ;
+
+unaryExpr :
+
+ (
+ (
+ TOK_PLUS!
+ | TOK_MINUS^<AST=org.apache.geode.cache.query.internal.parse.ASTUnary>
+ | "abs"^
+ | "not"^<AST=org.apache.geode.cache.query.internal.parse.ASTUnary>
+ )
+ )*
+ postfixExpr
+
+ ;
+
+postfixExpr
+ { boolean cmplx = false; } :
+ primaryExpr
+
+ (
+ TOK_LBRACK!
+ index TOK_RBRACK!
+ { cmplx = true; }
+
+ | ( TOK_DOT! | TOK_INDIRECT! )
+ ( methodInvocation[false]
+ | identifier )
+ { cmplx = true; }
+ )*
+ { if (cmplx) {
+ #postfixExpr = #([POSTFIX, "postfix",
+ "org.apache.geode.cache.query.internal.parse.ASTPostfix"],
+ #postfixExpr);
+ }
+ }
+
+ ;
+
+methodInvocation! [boolean implicitReceiver] :
+
+ methodName:identifier args:argList
+ { #methodInvocation =
+ #([METHOD_INV, "methodInv",
+ "org.apache.geode.cache.query.internal.parse.ASTMethodInvocation"],
+ #methodName, #args);
+ ((ASTMethodInvocation)#methodInvocation).setImplicitReceiver(implicitReceiver); }
+ ;
+
+index :
+
+ // single element
+ (
+ expr
+ (
+ // multiple elements: OQL defines a comma-delimited list of
+ // indexes in its grammar, but seemingly fails to define the
+ // semantics.
+ // This grammar is left in just in case someone figures out what
+ // this means, but for now this will throw an UnsupportedOperationException
+ // at query compilation time
+ // (throw new UnsupportedOperationException("Only one index expression supported"))
+ (
+ TOK_COMMA!
+ expr
+ )*
+
+ // Range of elements
+ | TOK_COLON^ expr
+ )
+ | TOK_STAR
+ )
+ { #index = #([TOK_LBRACK, "index",
+ "org.apache.geode.cache.query.internal.parse.ASTCombination"],
+ #index);
+ }
+ ;
+
+argList :
+
+ t:TOK_LPAREN^<AST=org.apache.geode.cache.query.internal.parse.ASTCombination>
+ (
+ expr
+ (
+ TOK_COMMA!
+ expr
+ )*
+ )?
+ TOK_RPAREN!
+ ;
+
+primaryExpr :
+
+ (
+ conversionExpr
+ | collectionExpr
+ | aggregateExpr
+ | undefinedExpr
+ | ( identifier TOK_LPAREN identifier TOK_COLON ) =>
+ objectConstruction
+ | structConstruction
+ | collectionConstruction
+ | methodInvocation[true]
+ | identifier
+ | queryParam
+ | literal
+ | TOK_LPAREN! query TOK_RPAREN!
+ | RegionPath<AST=org.apache.geode.cache.query.internal.parse.ASTRegionPath>
+ )
+ ;
+
+
+conversionExpr :
+ (
+
+ (
+ "listtoset"^
+ | "element"^<AST=org.apache.geode.cache.query.internal.parse.ASTConversionExpr>
+
+ | "distinct"^
+ | "flatten"^
+ )
+ TOK_LPAREN! query TOK_RPAREN!
+ |
+ (
+ (
+ "nvl"^<AST=org.apache.geode.cache.query.internal.parse.ASTConversionExpr>
+ )
+ TOK_LPAREN!
+ expr TOK_COMMA! expr
+ TOK_RPAREN!
+ )
+ |
+ (
+ (
+ "to_date"^<AST=org.apache.geode.cache.query.internal.parse.ASTConversionExpr>
+ )
+ TOK_LPAREN!
+ stringLiteral TOK_COMMA! stringLiteral
+ TOK_RPAREN!
+ )
+ )
+ ;
+
+collectionExpr :
+
+ (
+ "first"^
+ | "last"^
+ | "unique"^
+ | "exists"^
+ )
+ TOK_LPAREN! query TOK_RPAREN!
+
+ ;
+
+
+
+
+aggregateExpr { int aggFunc = -1; boolean distinctOnly = false; }:
+
+ !("sum" {aggFunc = SUM;} | "avg" {aggFunc = AVG;} )
+ TOK_LPAREN ("distinct"! {distinctOnly = true;} ) ? tokExpr1:expr TOK_RPAREN
+ { #aggregateExpr = #([AGG_FUNC, "aggregate", "org.apache.geode.cache.query.internal.parse.ASTAggregateFunc"],
+ #tokExpr1);
+ ((ASTAggregateFunc)#aggregateExpr).setAggregateFunctionType(aggFunc);
+ ((ASTAggregateFunc)#aggregateExpr).setDistinctOnly(distinctOnly);
+ }
+
+ |
+ !("min" {aggFunc = MIN;} | "max" {aggFunc = MAX;} )
+ TOK_LPAREN tokExpr2:expr TOK_RPAREN
+ { #aggregateExpr = #([AGG_FUNC, "aggregate", "org.apache.geode.cache.query.internal.parse.ASTAggregateFunc"],
+ #tokExpr2);
+ ((ASTAggregateFunc)#aggregateExpr).setAggregateFunctionType(aggFunc);
+ }
+
+ |
+ "count"^<AST=org.apache.geode.cache.query.internal.parse.ASTAggregateFunc>
+ TOK_LPAREN! ( TOK_STAR <AST=org.apache.geode.cache.query.internal.parse.ASTDummy>
+ | ("distinct"! {distinctOnly = true;} ) ? expr ) TOK_RPAREN!
+ {
+ ((ASTAggregateFunc)#aggregateExpr).setAggregateFunctionType(COUNT);
+ #aggregateExpr.setText("aggregate");
+ ((ASTAggregateFunc)#aggregateExpr).setDistinctOnly(distinctOnly);
+ }
+ ;
+
+undefinedExpr :
+
+ (
+ "is_undefined"^<AST=org.apache.geode.cache.query.internal.parse.ASTUndefinedExpr>
+ | "is_defined"^<AST=org.apache.geode.cache.query.internal.parse.ASTUndefinedExpr>
+ )
+ TOK_LPAREN!
+ query
+ TOK_RPAREN!
+ ;
+
+objectConstruction :
+
+ identifier
+ t:TOK_LPAREN^
+ {#t.setType(OBJ_CONSTRUCTOR);}
+ fieldList
+ TOK_RPAREN!
+ ;
+
+structConstruction :
+
+ "struct"^
+ TOK_LPAREN!
+ fieldList
+ TOK_RPAREN!
+ ;
+
+
+groupByList :
+
+ expr
+ (
+ TOK_COMMA!
+ expr
+ )*
+ /*{ #groupByList = #([COMBO, "groupByList",
+ "org.apache.geode.cache.query.internal.parse.ASTCombination"],
+ #groupByList); }*/
+ ;
+
+
+fieldList :
+
+ identifier TOK_COLON! expr
+ (
+ TOK_COMMA!
+ identifier
+ TOK_COLON! expr
+ )*
+ { #fieldList = #([COMBO, "fieldList",
+ "org.apache.geode.cache.query.internal.parse.ASTCombination"],
+ #fieldList); }
+ ;
+
+collectionConstruction :
+ (
+ (
+ "array"^
+ | "set"^<AST=org.apache.geode.cache.query.internal.parse.ASTConstruction>
+ | "bag"^
+ )
+ argList
+
+ | "list"^
+ TOK_LPAREN
+ (
+ expr
+ (
+ TOK_DOTDOT expr
+ | (
+ TOK_COMMA expr
+ )*
+ )
+ )?
+ TOK_RPAREN
+ )
+ ;
+
+queryParam! :
+
+ TOK_DOLLAR NUM_INT
+ { #queryParam = #([QUERY_PARAM, "queryParam",
+ "org.apache.geode.cache.query.internal.parse.ASTParameter"],
+ #NUM_INT); }
+
+ ;
+
+type :
+
+ (
+// ( "unsigned" )? // ignored
+// (
+ typ00:"short"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ00.setJavaType(TypeUtils.getObjectType(Short.class)); }
+ | typ01:"long"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ01.setJavaType(TypeUtils.getObjectType(Long.class)); }
+// )
+ | typ02:"int"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ02.setJavaType(TypeUtils.getObjectType(Integer.class)); }
+ | typ03:"float"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ03.setJavaType(TypeUtils.getObjectType(Float.class)); }
+ | typ04:"double"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ04.setJavaType(TypeUtils.getObjectType(Double.class)); }
+ | typ05:"char"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ05.setJavaType(TypeUtils.getObjectType(Character.class)); }
+ | typ06:"string"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ06.setJavaType(TypeUtils.getObjectType(String.class)); }
+ | typ07:"boolean"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ07.setJavaType(TypeUtils.getObjectType(Boolean.class)); }
+ | typ08:"byte"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ08.setJavaType(TypeUtils.getObjectType(Byte.class)); }
+ | typ09:"octet"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ09.setJavaType(TypeUtils.getObjectType(Byte.class)); }
+ | "enum"^ // unsupported
+ (
+ identifier
+ TOK_DOT
+ )?
+ identifier
+ | typ10:"date"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ10.setJavaType(TypeUtils.getObjectType(java.sql.Date.class)); }
+ | typ11:"time"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ11.setJavaType(TypeUtils.getObjectType(java.sql.Time.class)); }
+ | "interval" // unsupported
+ | typ12:"timestamp"<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ12.setJavaType(TypeUtils.getObjectType(java.sql.Timestamp.class)); }
+ | typ13:"set"^<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ TOK_LT! type TOK_GT!
+ { #typ13.setJavaType(new CollectionTypeImpl(Set.class, TypeUtils.OBJECT_TYPE /*resolved later*/)); }
+ | typ14:"collection"^<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ TOK_LT! type TOK_GT!
+ { #typ14.setJavaType(new CollectionTypeImpl(Collection.class, TypeUtils.OBJECT_TYPE /*resolved later*/)); }
+ | "bag"^ TOK_LT! type TOK_GT! // not supported
+ | typ15:"list"^<AST=org.apache.geode.cache.query.internal.parse.ASTType> TOK_LT! type TOK_GT!
+ { #typ15.setJavaType(new CollectionTypeImpl(List.class, TypeUtils.OBJECT_TYPE /*resolved later*/)); }
+ | typ16:"array"^<AST=org.apache.geode.cache.query.internal.parse.ASTType> TOK_LT! type TOK_GT!
+ { #typ16.setJavaType(new CollectionTypeImpl(Object[].class, TypeUtils.OBJECT_TYPE /*resolved later*/)); }
+ | (typ17:"dictionary"^<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ17.setJavaType(new MapTypeImpl(Map.class, TypeUtils.OBJECT_TYPE , TypeUtils.OBJECT_TYPE /*resolved later*/)); }
+ | typ18:"map"^<AST=org.apache.geode.cache.query.internal.parse.ASTType>
+ { #typ18.setJavaType(new MapTypeImpl(Map.class, TypeUtils.OBJECT_TYPE , TypeUtils.OBJECT_TYPE /*resolved later*/)); }
+ )
+ TOK_LT! type TOK_COMMA! type TOK_GT!
+ |! id:identifier { String txt = #id.getText();
+ #type = #[Identifier, txt, "org.apache.geode.cache.query.internal.parse.ASTType"];
+ ((ASTType)#type).setTypeName(txt); }
+ )
+
+
+ ;
+
+literal :
+
+ objectLiteral
+ | booleanLiteral
+ | numericLiteral
+ | charLiteral
+ | stringLiteral
+ | dateLiteral
+ | timeLiteral
+ | timestampLiteral
+ ;
+
+objectLiteral :
+
+ "nil"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ | "null"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ | "undefined"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ ;
+
+booleanLiteral :
+
+ (
+ "true"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ | "false"<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ )
+ ;
+
+numericLiteral :
+
+ ( NUM_INT<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ | NUM_LONG<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ | NUM_FLOAT<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ | NUM_DOUBLE<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ )
+
+ ;
+
+
+charLiteral :
+
+ "char"^<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ StringLiteral
+ ;
+
+
+stringLiteral :
+
+ StringLiteral<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ ;
+
+dateLiteral :
+
+ "date"^<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ StringLiteral
+ ;
+
+timeLiteral :
+
+ "time"^<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ StringLiteral
+ ;
+
+timestampLiteral :
+
+ "timestamp"^<AST=org.apache.geode.cache.query.internal.parse.ASTLiteral>
+ StringLiteral
+ ;
+
+identifier :
+ Identifier<AST=org.apache.geode.cache.query.internal.parse.ASTIdentifier>
+ | q:QuotedIdentifier<AST=org.apache.geode.cache.query.internal.parse.ASTIdentifier>
+ { #q.setType(Identifier); }
+ ;
+
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractCompiledValue.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractCompiledValue.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractCompiledValue.java
index 7924e11..d635e02 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractCompiledValue.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractCompiledValue.java
@@ -16,8 +16,8 @@ package org.apache.geode.cache.query.internal;
import java.util.*;
import org.apache.geode.cache.query.*;
-import org.apache.geode.cache.query.types.*;
import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
+import org.apache.geode.cache.query.types.*;
import org.apache.geode.cache.query.internal.types.StructTypeImpl;
import org.apache.geode.internal.i18n.LocalizedStrings;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledIn.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledIn.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledIn.java
index 7f8849e..0aa1efb 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledIn.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledIn.java
@@ -25,6 +25,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.logging.log4j.Logger;
import org.apache.geode.cache.Region;
@@ -41,7 +42,6 @@ import org.apache.geode.cache.query.TypeMismatchException;
import org.apache.geode.cache.query.internal.index.IndexData;
import org.apache.geode.cache.query.internal.index.IndexProtocol;
import org.apache.geode.cache.query.internal.index.IndexUtils;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.cache.query.internal.types.StructTypeImpl;
import org.apache.geode.cache.query.internal.types.TypeUtils;
import org.apache.geode.cache.query.types.ObjectType;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledLike.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledLike.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledLike.java
index 48e79cc..fc4a843 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledLike.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledLike.java
@@ -19,7 +19,6 @@ import java.util.regex.Pattern;
import org.apache.geode.cache.query.AmbiguousNameException;
import org.apache.geode.cache.query.FunctionDomainException;
import org.apache.geode.cache.query.NameResolutionException;
-import org.apache.geode.cache.query.QueryInvalidException;
import org.apache.geode.cache.query.QueryInvocationTargetException;
import org.apache.geode.cache.query.QueryService;
import org.apache.geode.cache.query.SelectResults;
@@ -29,7 +28,6 @@ import org.apache.geode.cache.query.internal.index.IndexProtocol;
import org.apache.geode.cache.query.internal.index.PrimaryKeyIndex;
import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.internal.cache.GemFireCacheImpl;
-import org.apache.geode.internal.i18n.LocalizedStrings;
import org.apache.geode.pdx.internal.PdxString;
/**
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledSortCriterion.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledSortCriterion.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledSortCriterion.java
index bb3ea3b..5268b1c 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledSortCriterion.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledSortCriterion.java
@@ -17,20 +17,14 @@ package org.apache.geode.cache.query.internal;
import java.util.*;
-import org.apache.geode.GemFireCacheException;
-import org.apache.geode.GemFireException;
import org.apache.geode.cache.CacheException;
import org.apache.geode.cache.query.AmbiguousNameException;
import org.apache.geode.cache.query.FunctionDomainException;
-import org.apache.geode.cache.query.IndexInvalidException;
import org.apache.geode.cache.query.NameResolutionException;
-import org.apache.geode.cache.query.QueryException;
-import org.apache.geode.cache.query.QueryInvalidException;
import org.apache.geode.cache.query.QueryInvocationTargetException;
import org.apache.geode.cache.query.TypeMismatchException;
import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.cache.query.internal.types.TypeUtils;
-import org.apache.geode.internal.i18n.LocalizedStrings;
/**
* This class represents a compiled form of sort criterian present in order by clause
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompositeGroupJunction.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompositeGroupJunction.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompositeGroupJunction.java
index 9b2ca4f..8f57ad6 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompositeGroupJunction.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompositeGroupJunction.java
@@ -32,7 +32,6 @@ import org.apache.geode.cache.query.SelectResults;
import org.apache.geode.cache.query.TypeMismatchException;
import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.cache.query.internal.types.StructTypeImpl;
-import org.apache.geode.cache.query.internal.SelectResultsComparator;
import org.apache.geode.cache.query.types.ObjectType;
import org.apache.geode.cache.query.types.StructType;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/DerivedInfo.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/DerivedInfo.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/DerivedInfo.java
index 0cfa80d..26c579a 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/DerivedInfo.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/DerivedInfo.java
@@ -17,25 +17,20 @@ package org.apache.geode.cache.query.internal;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.geode.cache.query.FunctionDomainException;
import org.apache.geode.cache.query.Index;
import org.apache.geode.cache.query.NameResolutionException;
import org.apache.geode.cache.query.QueryInvocationTargetException;
import org.apache.geode.cache.query.SelectResults;
-import org.apache.geode.cache.query.Struct;
import org.apache.geode.cache.query.TypeMismatchException;
import org.apache.geode.cache.query.internal.index.AbstractIndex;
import org.apache.geode.cache.query.internal.index.IndexProtocol;
import org.apache.geode.cache.query.internal.index.PartitionedIndex;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
-import org.apache.geode.cache.query.types.CollectionType;
import org.apache.geode.cache.query.types.ObjectType;
public class DerivedInfo {
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/IndexInfo.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/IndexInfo.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/IndexInfo.java
index e6f0f1c..c2a54bd 100755
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/IndexInfo.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/IndexInfo.java
@@ -15,13 +15,11 @@
package org.apache.geode.cache.query.internal;
import org.apache.geode.cache.query.FunctionDomainException;
-import org.apache.geode.cache.query.IndexType;
import org.apache.geode.cache.query.NameResolutionException;
import org.apache.geode.cache.query.QueryInvocationTargetException;
import org.apache.geode.cache.query.TypeMismatchException;
import org.apache.geode.cache.query.internal.index.AbstractIndex;
import org.apache.geode.cache.query.internal.index.IndexProtocol;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
public class IndexInfo {
final private CompiledValue _key;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/PathUtils.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/PathUtils.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/PathUtils.java
index 8c31b0f..bf931a2 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/PathUtils.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/PathUtils.java
@@ -24,8 +24,8 @@ import org.apache.geode.cache.query.NameNotFoundException;
import org.apache.geode.cache.query.QueryService;
import org.apache.geode.cache.query.Struct;
import org.apache.geode.cache.query.TypeMismatchException;
-import org.apache.geode.cache.query.types.*;
import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
+import org.apache.geode.cache.query.types.*;
import org.apache.geode.cache.query.internal.types.*;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/QCompiler.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/QCompiler.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/QCompiler.java
index eec2f97..1ee4d17 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/QCompiler.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/QCompiler.java
@@ -23,21 +23,17 @@ import java.util.List;
import java.util.Map;
import java.util.Stack;
+import org.apache.geode.cache.query.internal.parse.OQLLexer;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
+import org.apache.geode.cache.query.internal.parse.OQLParser;
import org.apache.logging.log4j.Logger;
-import antlr.collections.AST;
-import antlr.debug.misc.ASTFrame;
-
import org.apache.geode.cache.query.FunctionDomainException;
import org.apache.geode.cache.query.NameResolutionException;
-import org.apache.geode.cache.query.QueryException;
import org.apache.geode.cache.query.QueryInvalidException;
import org.apache.geode.cache.query.QueryInvocationTargetException;
import org.apache.geode.cache.query.TypeMismatchException;
import org.apache.geode.cache.query.internal.parse.GemFireAST;
-import org.apache.geode.cache.query.internal.parse.OQLLexer;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
-import org.apache.geode.cache.query.internal.parse.OQLParser;
import org.apache.geode.cache.query.internal.types.CollectionTypeImpl;
import org.apache.geode.cache.query.internal.types.MapTypeImpl;
import org.apache.geode.cache.query.internal.types.ObjectTypeImpl;
@@ -45,7 +41,6 @@ import org.apache.geode.cache.query.internal.types.TypeUtils;
import org.apache.geode.cache.query.types.CollectionType;
import org.apache.geode.cache.query.types.MapType;
import org.apache.geode.cache.query.types.ObjectType;
-import org.apache.geode.i18n.LogWriterI18n;
import org.apache.geode.internal.Assert;
import org.apache.geode.internal.InternalDataSerializer;
import org.apache.geode.internal.i18n.LocalizedStrings;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryUtils.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryUtils.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryUtils.java
index 33e4181..8eaa74a 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryUtils.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryUtils.java
@@ -24,6 +24,7 @@ import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.logging.log4j.Logger;
import org.apache.geode.cache.query.AmbiguousNameException;
@@ -41,7 +42,6 @@ import org.apache.geode.cache.query.internal.index.IndexManager;
import org.apache.geode.cache.query.internal.index.IndexProtocol;
import org.apache.geode.cache.query.internal.index.IndexUtils;
import org.apache.geode.cache.query.internal.index.PartitionedIndex;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.cache.query.internal.types.StructTypeImpl;
import org.apache.geode.cache.query.types.CollectionType;
import org.apache.geode.cache.query.types.ObjectType;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/RangeJunction.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/RangeJunction.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/RangeJunction.java
index b2b35ab..42fb30d 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/RangeJunction.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/RangeJunction.java
@@ -33,8 +33,8 @@ import org.apache.geode.cache.query.QueryService;
import org.apache.geode.cache.query.SelectResults;
import org.apache.geode.cache.query.Struct;
import org.apache.geode.cache.query.TypeMismatchException;
-import org.apache.geode.internal.i18n.LocalizedStrings;
import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
+import org.apache.geode.internal.i18n.LocalizedStrings;
import org.apache.geode.cache.query.internal.types.StructTypeImpl;
import org.apache.geode.cache.query.internal.types.TypeUtils;
import org.apache.geode.cache.query.types.ObjectType;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java
index 3e85ca2..96a3c83 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java
@@ -26,6 +26,7 @@ import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.logging.log4j.Logger;
import org.apache.geode.cache.Cache;
@@ -59,7 +60,6 @@ import org.apache.geode.cache.query.internal.StructFields;
import org.apache.geode.cache.query.internal.StructImpl;
import org.apache.geode.cache.query.internal.Support;
import org.apache.geode.cache.query.internal.index.IndexStore.IndexStoreEntry;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.cache.query.internal.types.StructTypeImpl;
import org.apache.geode.cache.query.internal.types.TypeUtils;
import org.apache.geode.cache.query.types.ObjectType;
@@ -73,8 +73,6 @@ import org.apache.geode.internal.cache.RegionEntry;
import org.apache.geode.internal.cache.persistence.query.CloseableIterator;
import org.apache.geode.internal.i18n.LocalizedStrings;
import org.apache.geode.internal.logging.LogService;
-import org.apache.geode.internal.offheap.StoredObject;
-import org.apache.geode.internal.offheap.annotations.Released;
import org.apache.geode.internal.offheap.annotations.Retained;
import org.apache.geode.pdx.PdxInstance;
import org.apache.geode.pdx.internal.PdxString;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/FunctionalIndexCreationHelper.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/FunctionalIndexCreationHelper.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/FunctionalIndexCreationHelper.java
index f4f5c20..eb16207 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/FunctionalIndexCreationHelper.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/FunctionalIndexCreationHelper.java
@@ -20,15 +20,12 @@
package org.apache.geode.cache.query.internal.index;
import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.query.AmbiguousNameException;
import org.apache.geode.cache.query.IndexInvalidException;
-import org.apache.geode.cache.query.IndexType;
import org.apache.geode.cache.query.NameResolutionException;
import org.apache.geode.cache.query.TypeMismatchException;
import org.apache.geode.cache.query.internal.CompiledBindArgument;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java
index b7aff62..023fbb4 100755
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java
@@ -29,11 +29,11 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.logging.log4j.Logger;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.EntryDestroyedException;
-import org.apache.geode.cache.EntryNotFoundException;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.RegionAttributes;
import org.apache.geode.cache.query.AmbiguousNameException;
@@ -63,7 +63,6 @@ import org.apache.geode.cache.query.internal.RuntimeIterator;
import org.apache.geode.cache.query.internal.Support;
import org.apache.geode.cache.query.internal.index.HashIndex.IMQEvaluator.HashIndexComparator;
import org.apache.geode.cache.query.internal.index.IndexStore.IndexStoreEntry;
-import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
import org.apache.geode.cache.query.internal.types.StructTypeImpl;
import org.apache.geode.cache.query.internal.types.TypeUtils;
import org.apache.geode.cache.query.types.ObjectType;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/MapIndexStore.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/MapIndexStore.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/MapIndexStore.java
index 262f082..74584fb 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/MapIndexStore.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/MapIndexStore.java
@@ -17,7 +17,6 @@ package org.apache.geode.cache.query.internal.index;
import java.util.Collection;
import java.util.Iterator;
-import org.apache.geode.cache.EntryDestroyedException;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.query.TypeMismatchException;
import org.apache.geode.cache.query.internal.parse.OQLLexerTokenTypes;
@@ -25,9 +24,6 @@ import org.apache.geode.cache.query.internal.types.TypeUtils;
import org.apache.geode.internal.cache.CachedDeserializable;
import org.apache.geode.internal.cache.LocalRegion;
import org.apache.geode.internal.cache.RegionEntry;
-import org.apache.geode.internal.cache.RegionEntryContext;
-import org.apache.geode.internal.cache.Token;
-import org.apache.geode.internal.cache.LocalRegion.NonTXEntry;
import org.apache.geode.internal.cache.persistence.query.CloseableIterator;
import org.apache.geode.internal.cache.persistence.query.IndexMap;
http://git-wip-us.apache.org/repos/asf/geode/blob/16e2cfcd/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/RangeIndex.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/RangeIndex.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/RangeIndex.java
index 0f0f538..5ac48bc 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/RangeIndex.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/RangeIndex.java
@@ -46,7 +46,6 @@ import org.apache.geode.cache.query.TypeMismatchException;
import org.apache.geode.cache.query.internal.CompiledSortCriterion;
import org.apache.geode.cache.query.internal.CompiledValue;
import org.apache.geode.cache.query.internal.ExecutionContext;
-import org.apache.geode.cache.query.internal.QueryMonitor;
import org.apache.geode.cache.query.internal.QueryObserver;
import org.apache.geode.cache.query.internal.QueryObserverHolder;
import org.apache.geode.cache.query.internal.RuntimeIterator;