From teiid-commits at lists.jboss.org Sun Nov 29 09:39:40 2009
Content-Type: multipart/mixed; boundary="===============1192834348800293278=="
MIME-Version: 1.0
From: teiid-commits at lists.jboss.org
To: teiid-commits at lists.jboss.org
Subject: [teiid-commits] teiid SVN: r1604 - in trunk:
common-internal/src/main/java/com/metamatrix/platform and 1 other
directories.
Date: Sun, 29 Nov 2009 09:39:39 -0500
Message-ID: <200911291439.nATEdd7d026305@svn01.web.mwc.hst.phx2.redhat.com>
--===============1192834348800293278==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: shawkins
Date: 2009-11-29 09:39:39 -0500 (Sun, 29 Nov 2009)
New Revision: 1604
Removed:
trunk/common-internal/src/main/java/com/metamatrix/platform/vm/
Modified:
trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml
trunk/pom.xml
Log:
TEIID-251 TEIID-873 added support for order by expressions and removing par=
sing restrictions that limited quoted identifiers.
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/gram=
mar.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xm=
l 2009-11-25 21:45:09 UTC (rev 1603)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xm=
l 2009-11-29 14:39:39 UTC (rev 1604)
@@ -1,423 +1,773 @@
-BNF Grammar
-
-Terminals
-
-
-
-
-
-
-
-<DEFAULT> SKIP : {" "| "\t"| "\n"| "\r"}
-
-
-
-
-<DEFAULT> MORE : {"/*" : IN_MULTI_LINE_COMMENT}
-
-
-
-
-<IN_MULTI_LINE_COMMENT> SPECIAL : {<MULTI_LINE_COMMENT: "*/"> =
: DEFAULT}
-
-
-
-
-<IN_MULTI_LINE_COMMENT> MORE : {<~[]>}
-
-
-
-
-<DEFAULT> TOKEN : {<STRING: "string">| <BOOLEAN: "boolean"&=
gt;| <BYTE: "byte">| <SHORT: "short">| <CHAR: "char">| &l=
t;INTEGER: "integer">| <LONG: "long">| <BIGINTEGER: "biginteger=
">| <FLOAT: "float">| <DOUBLE: "double">| <BIGDECIMAL: "b=
igdecimal">| <DATE: "date">| <TIME: "time">| <TIMESTAMP: =
"timestamp">| <OBJECT: "object">| <BLOB: "blob">| <CLOB: =
"clob">| <XML: "xml">}
-
-
-
-
-<DEFAULT> TOKEN : {<CAST: "cast">| <CONVERT: "convert">|=
<TIMESTAMPADD: "timestampadd">| <TIMESTAMPDIFF: "timestampdiff"&g=
t;| <COUNT: "count">| <SUM: "sum">| <AVG: "avg">| <MIN=
: "min">| <MAX: "max">}
-
-
-
-
-<DEFAULT> TOKEN : {<ALL: "all">| <AND: "and">| <ANY: =
"any">| <AS: "as">| <ASC: "asc">| <BEGIN: "begin">| &l=
t;BETWEEN: "between">| <BREAK: "break">| <BY: "by">| <CAS=
E: "case">| <CONTINUE: "continue">| <CREATE: "create">| <=
CRITERIA: "criteria">| <CROSS: "cross">| <DEBUG: "debug">| &=
lt;DECLARE: "declare">| <DELETE: "delete">| <DESC: "desc">| =
<DISTINCT: "distinct">| <DROP: "drop">| <ELSE: "else">| &=
lt;END: "end">| <ERROR: "error">| <ESCAPE: "escape">| <EX=
CEPT: "except">| <EXEC: "exec">| <EXECUTE: "execute">| <E=
XISTS: "exists">| <FALSE: "false">| <FN: "fn">| <FOR: "fo=
r">| <FROM: "from">| <FULL: "full">| <GROUP: "group">|=
<HAS: "has">| <HAVING: "having">| <IF: "if">| <IN: "i=
n">| <INNER: "inner">| <INSERT: "insert">| <INTERSECT: "i=
ntersect">|!
<INTO: "into">| <IS: "is">| <JOIN: "join">| <LEFT: "=
left">| <LIKE: "like">| <LIMIT: "limit">| <LOCAL: "local"=
>| <LOOP: "loop">| <MAKEDEP: "makedep">| <MAKENOTDEP: "ma=
kenotdep">| <NOCACHE: "nocache">| <NOT: "not">| <NULL: "n=
ull">| <ON: "on">| <OJ: "oj">| <OPTION: "option">| <=
;OR: "or">| <ORDER: "order">| <OUTER: "outer">| <PLANONLY=
: "planonly">| <PROCEDURE: "procedure">| <RIGHT: "right">| &=
lt;SELECT: "select">| <SET: "set">| <SHOWPLAN: "showplan">| =
<SOME: "some">| <TABLE: "table">| <TEMPORARY: "temporary">=
;| <THEN: "then">| <TRANSLATE: "translate">| <TRUE: "true"&g=
t;| <UNION: "union">| <UNKNOWN: "unknown">| <UPDATE: "update=
">| <USING: "using">| <VALUES: "values">| <VIRTUAL: "virt=
ual">| <WHEN: "when">| <WHERE: "where">| <WITH: "with">=
;| <WHILE: !
"while">}
-
-
-
-
-<DEFAULT> TOKEN : {<SQL_TSI_FRAC_SECOND: "SQL_TSI_FRAC_SECOND">=
;| <SQL_TSI_SECOND: "SQL_TSI_SECOND">| <SQL_TSI_MINUTE: "SQL_TSI_M=
INUTE">| <SQL_TSI_HOUR: "SQL_TSI_HOUR">| <SQL_TSI_DAY: "SQL_TSI=
_DAY">| <SQL_TSI_WEEK: "SQL_TSI_WEEK">| <SQL_TSI_MONTH: "SQL_TS=
I_MONTH">| <SQL_TSI_QUARTER: "SQL_TSI_QUARTER">| <SQL_TSI_YEAR:=
"SQL_TSI_YEAR">}
-
-
-
-
-<DEFAULT> TOKEN : {<ALL_IN_GROUP: (<GROUP_PART> | <MMUUI=
D_PART>) <PERIOD> <STAR>>| <VARIABLE: <ID> | <=
;MMUUID>>| <#ID: <GROUP_PART> ((<PERIOD> | <SLASH&g=
t;) (<QUOTED_ID> | <MMUUID_PART>))?>| <#ELEMENT: <GROU=
P_PART> (<PERIOD> | <SLASH>) <QUOTED_ID>>| <#GRO=
UP_PART: ("#")? (<QUOTED_ID> (<PERIOD> | <SLASH>))? <Q=
UOTED_ID>>| <#QUOTED_ID: <DOTTED_ID> | "\"" <DOTTED_ID>=
; "\"">| <#DOTTED_ID: <ID_PART> ((<PERIOD> | <SLASH>=
;) <ID_PART>)*>| <#ID_PART: ("@")? <LETTER> (<ID_CHAR&=
gt;)*>| <#ID_CHAR: <LETTER> | "_" | <DIGIT>>| <#MMU=
UID: <MMUUID_PART> (<PERIOD> <MMUUID_PART>)?>| <#MM=
UUID_PART: "mmuuid:" (<MMUUID_CHAR>)*>| <#MMUUID_CHAR: ["a"-"f"=
] | ["0"-"9"] | "-">| <DATETYPE: "{" "d">| <TIMETYPE: "{" "t"&g=
t;| <TIMEST!
AMPTYPE: "{" "ts">| <BOOLEANTYPE: "{" "b">| <INTEGERVAL: (<=
MINUS>)? (<DIGIT>)+>| <FLOATVAL: (<MINUS>)? (<DIGIT=
>)* <PERIOD> (<DIGIT>)+ (["e","E"] (["+","-"])? (<DIGIT&g=
t;)+)?>| <STRINGVAL: ("N")? (<STRINGA> | <STRINGB>)>| =
<#STRINGA: "\'" (~["\'"])* ("\'\'" (~["\'"])*)* "\'">| <#STRINGB: =
"\"" (~["\""])* ("\"\"" (~["\""])*)* "\"">| <#LETTER: ["a"-"z","A"-"Z=
"] | ["\u0153"-"\ufffd"]>| <#DIGIT: ["0"-"9"]>| <#COLON: ":">=
;}
-
-
-
-
-<DEFAULT> TOKEN : {<COMMA: ",">| <PERIOD: ".">| <LPAR=
EN: "(">| <RPAREN: ")">| <LBRACE: "{">| <RBRACE: "}">|=
<EQ: "=3D">| <NE: "<>">| <NE2: "!=3D">| <LT: "&=
lt;">| <LE: "<=3D">| <GT: ">">| <GE: ">=3D">|=
<STAR: "*">| <SLASH: "/">| <PLUS: "+">| <MINUS: "-"&g=
t;| <QMARK: "?">| <DOLLAR: "$">| <SEMICOLON: ";">| <CO=
NCAT_OP: "||">}
-
-
-
-
-
-
-
-Non-Terminals
-
-
-
-
-
-
-
-command ::=3D
-( ( createUpdateProcedure ) | userCommand | callableStatement ) ( <SEMICOLON> )? <EOF>
-
-
-userCommand ::=3D
-( queryExpression | <=
link linkend=3D"prod6">storedProcedure | ins=
ert | update | delete | dropTable | createTempTable )
-
-
-dropTable ::=3D
-<DROP> <TABLE> <VARIABLE>
-
-
-createTempTable ::=3D
-<CREATE> <LOCAL> <TEMPORARY> <T=
ABLE> <VARIABLE> <LPAREN> createEle=
mentsWithTypes <RPAREN>
-
-
-errorStatement ::=3D
-<ERROR> expression
-
-
-statement ::=3D
-( ifStatement | loopStatement | whileS=
tatement | delimitedStatement )
-
-
-delimitedStatement ::=3D
-( sqlStatement | errorStatement | assi=
gnStatement | declareStatement | continueStatement | b=
reakStatement ) <SEMICOLON>
-
-
-block ::=3D
-( statement | ( <=
BEGIN> ( statement )* <END> ) )
-
-
-breakStatement ::=3D
-<BREAK>
-
-
-continueStatement ::=3D
-<CONTINUE>
-
-
-whileStatement ::=3D
-<WHILE> <LPAREN> criteria <RPAREN> block
-
-
-loopStatement ::=3D
-<LOOP> <ON> <LPAREN> queryExpression <RPAREN> <AS> <VARIABLE>=
; block
-
-
-ifStatement ::=3D
-<IF> <LPAREN> c=
riteria <RPAREN> block ( <E=
LSE> block )?
-
-
-criteriaSelector ::=3D
-( ( <EQ> | <NE> | <NE2> | <LE&g=
t; | <GE> | <LT> | <GT> | <IN> | <LIKE> | ( &=
lt;IS> <NULL> ) | <BETWEEN> ) )? <CRITERIA> ( <ON&g=
t; <LPAREN> <VARIABLE> ( <COMMA> <VARIABLE> )* <=
RPAREN> )?
-
-
-hasCriteria ::=3D
-<HAS> criteriaSelecto=
r
-
-
-declareStatement ::=3D
-<DECLARE> dataType <VARIABLE> ( <EQ> assignStatement=
Operand )?
-
-
-assignStatement ::=3D
-<VARIABLE> <EQ> assignStatementOperand
-
-
-assignStatementOperand ::=3D =
-( ( insert ) | update | delete | <=
link linkend=3D"prod6">storedProcedure | ( =
expression ) | queryExpression )
-
-
-sqlStatement ::=3D
-( ( dynamicCommand )=
| userCommand )
-
-
-translateCriteria ::=3D
-<TRANSLATE> criteriaS=
elector ( <WITH> <LPAREN> <VARIABLE> <EQ> expression ( <COMMA> <VARIABLE> &=
lt;EQ> expression )* <RPAREN> )?=
entry>
-
-
-createUpdateProcedure ::=3D =
entry>
-<CREATE> ( <VIRTUAL> )? ( <UPDATE>=
)? <PROCEDURE> block
-
-
-dynamicCommand ::=3D
-( <EXECUTE> | <EXEC> ) <STRING> expression ( <AS> createElementsWithTypes ( <INTO> <VARIABLE> )? )? ( =
<USING> setClauseList )? ( <UPDATE=
> ( ( <INTEGERVAL> ) | ( <STAR> ) ) )?
-
-
-setClauseList ::=3D
-<VARIABLE> <EQ> ( <COMMA> <VARI=
ABLE> <EQ> )*
-
-
-createElementsWithTypes ::=3D=
-<VARIABLE> dataType=
link> ( <COMMA> <VARIABLE> dataType )*
-
-
-callableStatement ::=3D
-<LBRACE> ( <QMARK> <EQ> )? <VAR=
IABLE> <VARIABLE> ( <LPAREN> ( exec=
uteUnnamedParams ) <RPAREN> )? <RBRACE> ( option )?
-
-
-storedProcedure ::=3D
-( ( <EXEC> | <EXECUTE> ) <VARIABLE>=
; <LPAREN> ( executeNamedParams | executeUnnamedParams ) <RPAREN> ) ( option )?
-
-
-executeUnnamedParams ::=3D =
entry>
-( expression ( <C=
OMMA> expression )* )?
-
-
-executeNamedParams ::=3D
-( paramName <EQ&g=
t; expression ( <COMMA> paramName <EQ> expression=
)* )
-
-
-paramName ::=3D
-<VARIABLE>
-
-
-insert ::=3D
-<INSERT> <INTO> <VARIABLE> ( <L=
PAREN> <VARIABLE> ( <COMMA> <VARIABLE> )* <RPAREN&g=
t; )? ( ( <VALUES> rowValues ) | ( queryExpression ) ) ( option )?
-
-
-rowValues ::=3D
-<LPAREN> expression=
link> ( <COMMA> expression )* <RPA=
REN>
-
-
-update ::=3D
-<UPDATE> <VARIABLE> <SET> setClauseList ( where )? ( option )?
-
-
-delete ::=3D
-<DELETE> <FROM> <VARIABLE> ( where )? ( option )?
-
-
-queryExpression ::=3D
-queryExpressionBody<=
/entry>
-
-
-queryExpressionBody ::=3D
-queryTerm ( ( <UN=
ION> | <EXCEPT> ) ( <ALL> | <DISTINCT> )? queryTerm )* ( orderby =
)? ( limit )? ( op=
tion )?
-
-
-queryTerm ::=3D
-queryPrimary ( <I=
NTERSECT> ( <ALL> | <DISTINCT> )? q=
ueryPrimary )*
-
-
-queryPrimary ::=3D
-( query | ( <LPAR=
EN> queryExpressionBody <RPAREN> )=
)
-
-
-query ::=3D
-select ( into )? ( from ( where )? ( groupBy )? ( having )? )?
-
-
-into ::=3D
-<INTO> ( <VARIABLE> )
-
-
-select ::=3D
-<SELECT> ( <ALL> | ( <DISTINCT> ) =
)? ( <STAR> | ( selectSymbol ( <CO=
MMA> selectSymbol )* ) )
-
-
-selectSymbol ::=3D
-( ( <ALL_IN_GROUP> ) | ( expression ) ( ( <AS> )? ( <VARIABLE> | <STRINGVA=
L> ) )? )
-
-
-aggregateSymbol ::=3D
-( ( <COUNT> <LPAREN> <STAR> <RP=
AREN> ) | ( ( <COUNT> | <SUM> | <AVG> | <MIN> | =
<MAX> ) <LPAREN> ( <DISTINCT> )? expression <RPAREN> ) )
-
-
-from ::=3D
-<FROM> ( tableReferen=
ce ( <COMMA> tableReference )*=
)
-
-
-tableReference ::=3D
-( ( <LBRACE> <OJ> tableReferenceUnescaped <RBRACE> ) | tableReferenceUnescaped )
-
-
-tableReferenceUnescaped ::=3D=
-( joinedTable | tablePrimary )
-
-
-joinedTable ::=3D
-tablePrimary ( ( crossJoin | qualified=
Join ) )+
-
-
-crossJoin ::=3D
-( ( <CROSS> | <UNION> ) <JOIN> tablePrimary )
-
-
-qualifiedJoin ::=3D
-( ( ( <RIGHT> ( <OUTER> )? ) | ( <LEF=
T> ( <OUTER> )? ) | ( <FULL> ( <OUTER> )? ) | <INNE=
R> )? <JOIN> tableReference <ON=
> criteria )
-
-
-tablePrimary ::=3D
-( unaryFromClause | =
subqueryFromClause | ( <LPAREN> joinedTable <RPAREN> ) ) ( ( <MAKEDEP&g=
t; ) | ( <MAKENOTDEP> ) )?
-
-
-subqueryFromClause ::=3D
-<LPAREN> ( queryExpres=
sion | storedProcedure ) <RPAREN&g=
t; ( <AS> )? <VARIABLE>
-
-
-unaryFromClause ::=3D
-( <VARIABLE> ( ( <AS> )? <VARIABLE>=
; )? )
-
-
-where ::=3D
-<WHERE> criteria
-
-
-criteria ::=3D
-compoundCritOr
-
-
-compoundCritOr ::=3D
-compoundCritAnd ( &l=
t;OR> compoundCritAnd )*
-
-
-compoundCritAnd ::=3D
-notCrit ( <AND>=
; notCrit )*
-
-
-notCrit ::=3D
-( <NOT> )? primary
-
-
-primary ::=3D
-( predicate | ( <=
LPAREN> criteria <RPAREN> ) )
-
-
-predicate ::=3D
-( subqueryCompareCriteria=
link> | compareCrit | matchCrit | betweenCrit | setCrit | existsCriteria=
| hasCriteria | translateCriteria | isNullCrit=
)
-
-
-compareCrit ::=3D
-expression ( <EQ&=
gt; | <NE> | <NE2> | <LT> | <LE> | <GT> | <=
;GE> ) expression
-
-
-subquery ::=3D
-<LPAREN> ( queryExpres=
sion | storedProcedure ) <RPAREN&g=
t;
-
-
-subqueryCompareCriteria ::=3D=
-expression ( <EQ&=
gt; | <NE> | <NE2> | <LT> | <LE> | <GT> | <=
;GE> ) ( <ANY> | <SOME> | <ALL> ) subquery
-
-
-matchCrit ::=3D
-( expression ( <N=
OT> )? <LIKE> expression ( escapeChar | ( <LBRACE> escapeChar <RBRACE> ) )? )
-
-
-escapeChar ::=3D
-<ESCAPE> <STRINGVAL>
-
-
-betweenCrit ::=3D
-expression ( <NOT=
> )? <BETWEEN> expression <AND&=
gt; expression
-
-
-isNullCrit ::=3D
-expression <IS>=
; ( <NOT> )? <NULL>
-
-
-setCrit ::=3D
-expression ( <NOT=
> )? <IN> ( ( subquery ) | ( <L=
PAREN> expression ( <COMMA> expression )* <RPAREN> ) )
-
-
-existsCriteria ::=3D
-<EXISTS> subquery
-
-
-groupBy ::=3D
-<GROUP> <BY> ( =
groupByItem ( <COMMA> groupByItem )* )
-
-
-groupByItem ::=3D
-expression
-
-
-having ::=3D
-<HAVING> criteria
-
-
-orderby ::=3D
-<ORDER> <BY> ( <VARIABLE> | <ST=
RINGVAL> | <INTEGERVAL> ) ( <ASC> | <DESC> )? ( <CO=
MMA> ( <VARIABLE> | <STRINGVAL> | <INTEGERVAL> ) ( <=
;ASC> | <DESC> )? )*
-
-
-limit ::=3D
-<LIMIT> ( <INTEGERVAL> | <QMARK> )=
( <COMMA> ( <INTEGERVAL> | <QMARK> ) )?
-
-
-option ::=3D
-<OPTION> ( <SHOWPLAN> | <PLANONLY>=
| <DEBUG> | <MAKEDEP> <VARIABLE> ( <COMMA> <VAR=
IABLE> )* | <MAKENOTDEP> <VARIABLE> ( <COMMA> <VARI=
ABLE> )* | <NOCACHE> ( <VARIABLE> ( <COMMA> <VARIAB=
LE> )* )? )*
-
-
-expression ::=3D
-concatExpression
-
-
-concatExpression ::=3D
-( plusExpression ( &=
lt;CONCAT_OP> plusExpression )* )
-
-
-plusExpression ::=3D
-( timesExpression ( =
plusOperator times=
Expression )* )
-
-
-plusOperator ::=3D
-( <PLUS> | <MINUS> )
-
-
-timesExpression ::=3D
-( basicExpression ( =
timesOperator basi=
cExpression )* )
-
-
-timesOperator ::=3D
-( <STAR> | <SLASH> )
-
-
-basicExpression ::=3D
-( <QMARK> | literal=
link> | ( <LBRACE> <FN> function <RBRACE> ) | ( aggregateSymbol ) | =
( function ) | ( <VARIABLE> ) | ( <=
;LPAREN> expression <RPAREN> ) | <=
link linkend=3D"prod73">subquery | caseExpr=
ession | searchedCaseExpression )
-
-
-caseExpression ::=3D
-<CASE> expression ( <WHEN> expression <THEN> =
expression )+ ( <ELSE> expression )? <END>
-
-
-searchedCaseExpression ::=3D =
-<CASE> ( <WHEN> criteria <THEN> expression )+=
( <ELSE> expression )? <END>=
entry>
-
-
-function ::=3D
-( ( <CONVERT> <LPAREN> expression <COMMA> dataType=
link> <RPAREN> ) | ( <CAST> <LPAREN> expression <AS> dataType =
<RPAREN> ) | ( ( <TIMESTAMPADD> | <TIMESTAMPDIFF> ) <L=
PAREN> intervalType <COMMA> expression <COMMA> expression <RPAREN> ) | ( ( <LEFT> | <RIGHT> | &l=
t;CHAR> ) <LPAREN> ( expression ( =
<COMMA> expression )* )? <RPAREN&g=
t; ) | ( ( <INSERT> ) <LPAREN> ( expre=
ssion ( <COMMA> expression )* =
)? <RPAREN> ) | ( ( <TRANSLATE> ) <LPAREN> ( expression ( <COM!
MA> expression )* )? <RPAREN> ) |=
( <VARIABLE> <LPAREN> ( expression ( <COMMA> expression )* )? <R=
PAREN> ) )
-
-
-dataType ::=3D
-( <STRING> | <BOOLEAN> | <BYTE> | =
<SHORT> | <CHAR> | <INTEGER> | <LONG> | <BIGINTE=
GER> | <FLOAT> | <DOUBLE> | <BIGDECIMAL> | <DATE>=
; | <TIME> | <TIMESTAMP> | <OBJECT> | <BLOB> | <=
CLOB> | <XML> )
-
-
-intervalType ::=3D
-( <SQL_TSI_FRAC_SECOND> | <SQL_TSI_SECOND&g=
t; | <SQL_TSI_MINUTE> | <SQL_TSI_HOUR> | <SQL_TSI_DAY> | =
<SQL_TSI_WEEK> | <SQL_TSI_MONTH> | <SQL_TSI_QUARTER> | &l=
t;SQL_TSI_YEAR> )
-
-
-literal ::=3D
-( <STRINGVAL> | <INTEGERVAL> | <FLOAT=
VAL> | <FALSE> | <TRUE> | <UNKNOWN> | <NULL> | (=
<BOOLEANTYPE> <STRINGVAL> <RBRACE> ) | ( <TIMESTAMPTY=
PE> <STRINGVAL> <RBRACE> ) | ( <DATETYPE> <STRINGVA=
L> <RBRACE> ) | ( <TIMETYPE> <STRINGVAL> <RBRACE>=
; ) )
-
-
-
-
-
-
+ BNF for SQL Grammar
+
+ TOKENS
+
+
+
+
+
+
+
+<DEFAULT> SKIP : {
+" "
+| "\t"
+| "\n"
+| "\r"
+}
+
+
+
+
+
+
+<DEFAULT> MORE : {
+"/*" : IN_MULTI_LINE_COMMENT
+}
+
+
+
+
+
+
+<IN_MULTI_LINE_COMMENT> SPECIAL : {
+<MULTI_LINE_COMMENT: "*/"> : DEFAULT
+}
+
+
+
+
+
+
+<IN_MULTI_LINE_COMMENT> MORE : {
+<~[]>
+}
+
+
+
+
+
+
+<DEFAULT> TOKEN : {
+<STRING: "string">
+| <BOOLEAN: "boolean">
+| <BYTE: "byte">
+| <SHORT: "short">
+| <CHAR: "char">
+| <INTEGER: "integer">
+| <LONG: "long">
+| <BIGINTEGER: "biginteger">
+| <FLOAT: "float">
+| <DOUBLE: "double">
+| <BIGDECIMAL: "bigdecimal">
+| <DATE: "date">
+| <TIME: "time">
+| <TIMESTAMP: "timestamp">
+| <OBJECT: "object">
+| <BLOB: "blob">
+| <CLOB: "clob">
+| <XML: "xml">
+}
+
+
+
+
+
+
+<DEFAULT> TOKEN : {
+<CAST: "cast">
+| <CONVERT: "convert">
+| <TIMESTAMPADD: "timestampadd">
+| <TIMESTAMPDIFF: "timestampdiff">
+| <COUNT: "count">
+| <SUM: "sum">
+| <AVG: "avg">
+| <MIN: "min">
+| <MAX: "max">
+}
+
+
+
+
+
+
+<DEFAULT> TOKEN : {
+<ALL: "all">
+| <AND: "and">
+| <ANY: "any">
+| <AS: "as">
+| <ASC: "asc">
+| <BEGIN: "begin">
+| <BETWEEN: "between">
+| <BREAK: "break">
+| <BY: "by">
+| <CASE: "case">
+| <CONTINUE: "continue">
+| <CREATE: "create">
+| <CRITERIA: "criteria">
+| <CROSS: "cross">
+| <DEBUG: "debug">
+| <DECLARE: "declare">
+| <DELETE: "delete">
+| <DESC: "desc">
+| <DISTINCT: "distinct">
+| <DROP: "drop">
+| <ELSE: "else">
+| <END: "end">
+| <ERROR: "error">
+| <ESCAPE: "escape">
+| <EXCEPT: "except">
+| <EXEC: "exec">
+| <EXECUTE: "execute">
+| <EXISTS: "exists">
+| <FALSE: "false">
+| <FN: "fn">
+| <FOR: "for">
+| <FROM: "from">
+| <FULL: "full">
+| <GROUP: "group">
+| <HAS: "has">
+| <HAVING: "having">
+| <IF: "if">
+| <IN: "in">
+| <INNER: "inner">
+| <INSERT: "insert">
+| <INTERSECT: "intersect">
+| <INTO: "into">
+| <IS: "is">
+| <JOIN: "join">
+| <LEFT: "left">
+| <LIKE: "like">
+| <LIMIT: "limit">
+| <LOCAL: "local">
+| <LOOP: "loop">
+| <MAKEDEP: "makedep">
+| <MAKENOTDEP: "makenotdep">
+| <NOCACHE: "nocache">
+| <NOT: "not">
+| <NULL: "null">
+| <ON: "on">
+| <OJ: "oj">
+| <OPTION: "option">
+| <OR: "or">
+| <ORDER: "order">
+| <OUTER: "outer">
+| <PLANONLY: "planonly">
+| <PROCEDURE: "procedure">
+| <RIGHT: "right">
+| <SELECT: "select">
+| <SET: "set">
+| <SHOWPLAN: "showplan">
+| <SOME: "some">
+| <TABLE: "table">
+| <TEMPORARY: "temporary">
+| <THEN: "then">
+| <TRANSLATE: "translate">
+| <TRUE: "true">
+| <UNION: "union">
+| <UNKNOWN: "unknown">
+| <UPDATE: "update">
+| <USING: "using">
+| <VALUES: "values">
+| <VIRTUAL: "virtual">
+| <WHEN: "when">
+| <WHERE: "where">
+| <WITH: "with">
+| <WHILE: "while">
+}
+
+
+
+
+
+
+<DEFAULT> TOKEN : {
+<SQL_TSI_FRAC_SECOND: "SQL_TSI_FRAC_SECOND">
+| <SQL_TSI_SECOND: "SQL_TSI_SECOND">
+| <SQL_TSI_MINUTE: "SQL_TSI_MINUTE">
+| <SQL_TSI_HOUR: "SQL_TSI_HOUR">
+| <SQL_TSI_DAY: "SQL_TSI_DAY">
+| <SQL_TSI_WEEK: "SQL_TSI_WEEK">
+| <SQL_TSI_MONTH: "SQL_TSI_MONTH">
+| <SQL_TSI_QUARTER: "SQL_TSI_QUARTER">
+| <SQL_TSI_YEAR: "SQL_TSI_YEAR">
+}
+
+
+
+
+
+
+<DEFAULT> TOKEN : {
+<ALL_IN_GROUP: <ID> <PERIOD> <STAR>>
+| <ID: <QUOTED_ID> (<PERIOD> <QUOTED_ID>)*>
+| <#QUOTED_ID: <ID_PART> | "\"" ("\"\&qu=
ot;" | ~["\""])+ "\"">
+| <#ID_PART: ("@" | "#" | <LETTER>) (<LETT=
ER> | "_" | <DIGIT>)*>
+| <DATETYPE: "{" "d">
+| <TIMETYPE: "{" "t">
+| <TIMESTAMPTYPE: "{" "ts">
+| <BOOLEANTYPE: "{" "b">
+| <INTEGERVAL: (<MINUS>)? (<DIGIT>)+>
+| <FLOATVAL: (<MINUS>)? (<DIGIT>)* <PERIOD> (<DIGI=
T>)+ (["e","E"] (["+","-"])? (&l=
t;DIGIT>)+)?>
+| <STRINGVAL: ("N")? "\'" ("\'\&apos=
;" | ~["\'"])* "\'">
+| <#LETTER: ["a"-"z","A"-"Z"] |=
["\u0153"-"\ufffd"]>
+| <#DIGIT: ["0"-"9"]>
+}
+
+
+
+
+
+
+<DEFAULT> TOKEN : {
+<COMMA: ",">
+| <PERIOD: ".">
+| <LPAREN: "(">
+| <RPAREN: ")">
+| <LBRACE: "{">
+| <RBRACE: "}">
+| <EQ: "=3D">
+| <NE: "<>">
+| <NE2: "!=3D">
+| <LT: "<">
+| <LE: "<=3D">
+| <GT: ">">
+| <GE: ">=3D">
+| <STAR: "*">
+| <SLASH: "/">
+| <PLUS: "+">
+| <MINUS: "-">
+| <QMARK: "?">
+| <DOLLAR: "$">
+| <SEMICOLON: ";">
+| <CONCAT_OP: "||">
+}
+
+
+
+
+
+
+
+
+ NON-TERMINALS
+
+
+
+
+
+
+
+ stringVal
+ ::=3D
+ ( <STRINGVAL>=
)
+
+
+ id
+ ::=3D
+ ( <ID> )
+
+ =
+
+ command
+ ::=3D
+ ( ( createUpdateProcedure ) | userCommand | callableStatement ) ( <SEMICOLON> )? <EOF>
+
+
+ userCommand
+ ::=3D
+ ( queryExpression | storedProcedure | =
insert | update | delete | dropTable | createTempTable )
+
+ =
+
+ dropTable
+ ::=3D
+ <DROP> <TA=
BLE> id
+
+ =
+
+ createTempTable
+ ::=3D
+ <CREATE> <=
LOCAL> <TEMPORARY> <TABLE> id <LPAREN> crea=
teElementsWithTypes <RPAREN>
+
+ =
+
+ errorStatement
+ ::=3D
+ <ERROR> expression
+
+ =
+
+ statement
+ ::=3D
+ ( ifStatement | loopStatement | whi=
leStatement | delimitedState=
ment )
+
+
+ delimitedStatement
+ ::=3D
+ ( sqlStatement | errorStatement | a=
ssignStatement | declareStat=
ement | continueStatement | breakStatement ) <=
SEMICOLON>
+
+ =
+
+ block
+ ::=3D
+ ( statement | ( <BEGIN> ( statement )* <END> ) )
+
+ =
+
+ breakStatement
+ ::=3D
+ <BREAK>
+
+ =
+
+ continueStatement
+ ::=3D
+ <CONTINUE>
+
+ =
+
+ whileStatement
+ ::=3D
+ <WHILE> <L=
PAREN> criteria <RPARE=
N> block
+
+ =
+
+ loopStatement
+ ::=3D
+ <LOOP> <ON=
> <LPAREN> queryExpression<=
/link> <RPAREN> <AS> id<=
/link>block
+
+ =
+
+ ifStatement
+ ::=3D
+ <IF> <LPAR=
EN> criteria <RPAREN&g=
t; block ( <ELSE> block )?
+
+ =
+
+ criteriaSelector<=
/entry>
+ ::=3D
+ ( ( <EQ> | &l=
t;NE> | <NE2> | <LE> | <GE> | <LT> | <GT> =
| <IN> | <LIKE> | ( <IS> <NULL> ) | <BETWEEN>=
) )? <CRITERIA> ( <ON> <LPAREN> id ( <COMMA> id )* <RPAREN> )?
+
+ =
+
+ hasCriteria
+ ::=3D
+ <HAS> criteriaSelector
+
+ =
+
+ declareStatement<=
/entry>
+ ::=3D
+ <DECLARE> dataTypeid ( <EQ> assignStatementOperand )?
+
+ =
+
+ assignStatement
+ ::=3D
+ id <EQ> assignStatementOperand
+
+ =
+
+ assignStatementOpe=
rand
+ ::=3D
+ ( ( insert ) | update | delete | storedProcedure | ( expression ) | queryExpression )
+
+ =
+
+ sqlStatement
+ ::=3D
+ ( ( dynamicCommand ) | userCommand )
+
+
+ translateCriteria
+ ::=3D
+ <TRANSLATE> <=
link linkend=3D"SQLParser.html-prod29">criteriaSelector ( <WITH&g=
t; <LPAREN> id <EQ&g=
t; expression ( <COMMA>=
; id <EQ> expression )* <RPAREN> )?
+
+ =
+
+ createUpdateProcedur=
e
+ ::=3D
+ <CREATE> ( &l=
t;VIRTUAL> )? ( <UPDATE> )? <PROCEDURE> block
+
+ =
+
+ dynamicCommand
+ ::=3D
+ ( <EXECUTE> |=
<EXEC> ) <STRING> expr=
ession ( <AS> createEl=
ementsWithTypes ( <INTO> id )? )? ( <USING> s=
etClauseList )? ( <UPDATE> ( ( <INTEGERVAL> ) | ( <ST=
AR> ) ) )?
+
+
+ setClauseList
+ ::=3D
+ id <EQ> ( <COMMA> id <EQ> )*
+
+ =
+
+ createElementsWit=
hTypes
+ ::=3D
+ iddataTy=
pe ( <COMMA> id<=
link linkend=3D"SQLParser.html-prod31">dataType )*
+
+
+ callableStatement=
+ ::=3D
+ <LBRACE> ( &l=
t;QMARK> <EQ> )? <ID> id ( <LPAREN> ( execu=
teUnnamedParams ) <RPAREN> )? <RBRACE> ( option )?
+
+ =
+
+ storedProcedure
+ ::=3D
+ ( ( <EXEC> | =
<EXECUTE> ) id <LPAR=
EN> ( executeNamedParams =
| executeUnnamedParams ) <=
;RPAREN> ) ( option )?
+
+ =
+
+ executeUnnamedParams=
+ ::=3D
+ ( expression ( <COMMA> expression )* )?
+
+ =
+
+ executeNamedParams
+ ::=3D
+ ( id <EQ> expression ( <COMMA> id <EQ> expressi=
on )* )
+
+ =
+
+ insert
+ ::=3D
+ <INSERT> <=
INTO> id ( <LPAREN> =
id ( <COMMA> id )* <RPAREN> )? ( ( <VALUES&=
gt; rowValues ) | ( queryExpression ) ) ( option )?
+
+ =
+
+ rowValues
+ ::=3D
+ <LPAREN> expression ( <COMMA> expression )* <RPAREN>
+
+ =
+
+ update
+ ::=3D
+ <UPDATE> id <SET> setClauseList ( where )? ( option<=
/link> )?
+
+ =
+
+ delete
+ ::=3D
+ <DELETE> <=
FROM> id ( where )? ( option )?
+
+ =
+
+ queryExpression
+ ::=3D
+ queryExpressionBody
+
+
+ queryExpressionBody=
para>
+ ::=3D
+ queryTerm ( ( <UNION> | <EXCEPT> ) =
( <ALL> | <DISTINCT> )? queryTerm )* ( orderby )? ( limit )? ( option )?
+
+
+ queryTerm
+ ::=3D
+ queryPrimary ( <INTERSECT> ( <ALL> =
| <DISTINCT> )? queryPrimary<=
/link> )*
+
+
+ queryPrimary
+ ::=3D
+ ( query | ( <LPAREN> queryExpressionBody <RPAREN> ) )
+
+ =
+
+ query
+ ::=3D
+ select ( into )? ( from ( where )? ( groupBy )? ( having )? )?
+
+
+ into
+ ::=3D
+ <INTO> ( id )
+
+ =
+
+ select
+ ::=3D
+ <SELECT> ( &l=
t;ALL> | ( <DISTINCT> ) )? ( <STAR> | ( selectSymbol ( <COMMA> selectSymbol )* ) )
+
+
+ selectSymbol
+ ::=3D
+ ( ( <ALL_IN_GROU=
P> ) | ( expression ) ( (=
<AS> )? ( id ) )? )
+
+
+ aggregateSymbol
+ ::=3D
+ ( ( <COUNT> &=
lt;LPAREN> <STAR> <RPAREN> ) | ( ( <COUNT> | <SUM&g=
t; | <AVG> | <MIN> | <MAX> ) <LPAREN> ( <DISTINC=
T> )? expression <RPAR=
EN> ) )
+
+ =
+
+ from
+ ::=3D
+ <FROM> ( tableReference ( <COMMA> <=
link linkend=3D"SQLParser.html-prod54">tableReference )* )
+
+ =
+
+ tableReference
+ ::=3D
+ ( ( <LBRACE> =
<OJ> tableReferenceUnescaped<=
/link> <RBRACE> ) | tableRefe=
renceUnescaped )
+
+
+ tableReferenceUne=
scaped
+ ::=3D
+ ( joinedTable | tablePrimary )
+
+
+ joinedTable
+ ::=3D
+ tablePrimary ( ( crossJoin | qualif=
iedJoin ) )+
+
+
+ crossJoin
+ ::=3D
+ ( ( <CROSS> |=
<UNION> ) <JOIN> table=
Primary )
+
+
+ qualifiedJoin
+ ::=3D
+ ( ( ( <RIGHT>=
( <OUTER> )? ) | ( <LEFT> ( <OUTER> )? ) | ( <FULL>=
; ( <OUTER> )? ) | <INNER> )? <JOIN> tableReference <ON> criteria )
+
+
+ tablePrimary
+ ::=3D
+ ( unaryFromClause | subqueryFromClause | ( <LPAREN> joinedTable <RPAREN> ) ) ( ( <MAKEDE=
P> ) | ( <MAKENOTDEP> ) )?
+
+ =
+
+ subqueryFromClause
+ ::=3D
+ <LPAREN> ( queryExpression | storedProcedure ) <RPAREN> ( <AS&=
gt; )? id
+
+ =
+
+ unaryFromClause
+ ::=3D
+ ( <ID> ( ( &l=
t;AS> )? id )? )
+
+ =
+
+ where
+ ::=3D
+ <WHERE> criteria
+
+ =
+
+ criteria
+ ::=3D
+ compoundCritOr
+
+ =
+
+ compoundCritOr
+ ::=3D
+ compoundCritAnd ( <OR> compoundCritAnd )*
+
+ =
+
+ compoundCritAnd
+ ::=3D
+ notCrit ( <AND> notCrit )*
+
+ =
+
+ notCrit
+ ::=3D
+ ( <NOT> )? primary
+
+ =
+
+ primary
+ ::=3D
+ ( predicate | ( <LPAREN> criteria <RPAREN> ) )
+
+ =
+
+ predicate
+ ::=3D
+ ( subqueryCompareCriteria | compareCrit | matchCrit | betweenCr=
it | setCrit | existsCriteria | hasCriteria | translateCriteria | isNullCrit )
+
+ =
+
+ compareCrit
+ ::=3D
+ expression ( <EQ> | <NE> | <NE2&=
gt; | <LT> | <LE> | <GT> | <GE> ) expression
+
+
+ subquery
+ ::=3D
+ <LPAREN> ( queryExpression | storedProcedure ) <RPAREN>
+
+ =
+
+ subqueryCompareCr=
iteria
+ ::=3D
+ expression ( <EQ> | <NE> | <NE2&=
gt; | <LT> | <LE> | <GT> | <GE> ) ( <ANY> | &=
lt;SOME> | <ALL> ) subquer=
y
+
+ =
+
+ matchCrit
+ ::=3D
+ ( expression ( <NOT> )? <LIKE> expression ( escapeChar | ( <LBRACE> escapeChar <RBRACE> ) )? )
+
+
+ escapeChar
+ ::=3D
+ <ESCAPE> stringVal
+
+ =
+
+ betweenCrit
+ ::=3D
+ expression ( <NOT> )? <BETWEEN> expression <AND> expression
+
+ =
+
+ isNullCrit
+ ::=3D
+ expression <IS> ( <NOT> )? <NULL=
>
+
+ =
+
+ setCrit
+ ::=3D
+ expression ( <NOT> )? <IN> ( ( subquery ) | ( <LPAREN> expression ( <COMMA> expression )* <RPAREN> ) =
)
+
+ =
+
+ existsCriteria
+ ::=3D
+ <EXISTS> subquery
+
+ =
+
+ groupBy
+ ::=3D
+ <GROUP> <B=
Y> ( groupByItem ( <CO=
MMA> groupByItem )* )
+
+ =
+
+ groupByItem
+ ::=3D
+ expression
+
+ =
+
+ having
+ ::=3D
+ <HAVING> criteria
+
+ =
+
+ orderby
+ ::=3D
+ <ORDER> <B=
Y> sortKey ( <ASC> =
| <DESC> )? ( <COMMA> s=
ortKey ( <ASC> | <DESC> )? )*
+
+
+ sortKey
+ ::=3D
+ expression
+
+ =
+
+ limit
+ ::=3D
+ <LIMIT> ( <=
;INTEGERVAL> | <QMARK> ) ( <COMMA> ( <INTEGERVAL> | &l=
t;QMARK> ) )?
+
+ =
+
+ option
+ ::=3D
+ <OPTION> ( &l=
t;SHOWPLAN> | <PLANONLY> | <DEBUG> | <MAKEDEP> id ( <COMMA> id )* | <MAKENOTDEP> id ( <COMMA> id )* | <NOCACHE> ( id ( <COMMA> id<=
/link> )* )? )*
+
+ =
+
+ expression
+ ::=3D
+ concatExpression
+
+ =
+
+ concatExpression<=
/entry>
+ ::=3D
+ ( plusExpression ( <CONCAT_OP> plusExpression )* )
+
+ =
+
+ plusExpression
+ ::=3D
+ ( timesExpression ( plusOperatortim=
esExpression )* )
+
+ =
+
+ plusOperator
+ ::=3D
+ ( <PLUS> | &l=
t;MINUS> )
+
+ =
+
+ timesExpression
+ ::=3D
+ ( basicExpression ( timesOperatorba=
sicExpression )* )
+
+ =
+
+ timesOperator
+ ::=3D
+ ( <STAR> | &l=
t;SLASH> )
+
+ =
+
+ basicExpression
+ ::=3D
+ ( <QMARK> | <=
link linkend=3D"SQLParser.html-prod84">literal | ( <LBRACE> &l=
t;FN> function <RBRACE=
> ) | ( aggregateSymbol )=
| ( function ) | ( <ID&g=
t; ) | ( <LPAREN> expression<=
/link> <RPAREN> ) | subquery<=
/link> | caseExpression | searchedCaseExpression )
+
+ =
+
+ caseExpression
+ ::=3D
+ <CASE> expression ( <WHEN> expression <THEN> expression )+ ( <ELSE> expression )? <END>
+
+ =
+
+ searchedCaseExpres=
sion
+ ::=3D
+ <CASE> ( <=
WHEN> criteria <THEN&g=
t; expression )+ ( <ELSE&=
gt; expression )? <END>=
;
+
+ =
+
+ function
+ ::=3D
+ ( ( <CONVERT>=
<LPAREN> expression &=
lt;COMMA> dataType <RP=
AREN> ) | ( <CAST> <LPAREN> expression <AS> dataType <RPAREN> ) | ( ( <TIMESTAMPADD> | <TIMESTA=
MPDIFF> ) <LPAREN> interva=
lType <COMMA> expressi=
on <COMMA> expression<=
/link> <RPAREN> ) | ( ( <LEFT> | <RIGHT> | <CHAR> )=
<LPAREN> ( expression=
( <COMMA> expression =
)* )? <RPAREN> ) | ( ( <INSERT> ) <LPAREN> ( expression!
( <COMMA> expression=
)* )? <RPAREN> ) | ( ( <TRANSLATE> ) <LPAREN> ( <=
link linkend=3D"SQLParser.html-prod16">expression ( <COMMA> expression )* )? <RPAREN>=
; ) | ( id <LPAREN> ( <=
link linkend=3D"SQLParser.html-prod16">expression ( <COMMA> expression )* )? <RPAREN>=
; ) )
+
+ =
+
+ dataType
+ ::=3D
+ ( <STRING> | =
<BOOLEAN> | <BYTE> | <SHORT> | <CHAR> | <INTEGER=
> | <LONG> | <BIGINTEGER> | <FLOAT> | <DOUBLE> |=
<BIGDECIMAL> | <DATE> | <TIME> | <TIMESTAMP> | <=
;OBJECT> | <BLOB> | <CLOB> | <XML> )
+
+ =
+
+ intervalType
+ ::=3D
+ ( <SQL_TSI_FRAC_=
SECOND> | <SQL_TSI_SECOND> | <SQL_TSI_MINUTE> | <SQL_TSI_=
HOUR> | <SQL_TSI_DAY> | <SQL_TSI_WEEK> | <SQL_TSI_MONTH&g=
t; | <SQL_TSI_QUARTER> | <SQL_TSI_YEAR> )
+
+ =
+
+ literal
+ ::=3D
+ ( stringVal | <INTEGERVAL> | <FLOATVAL&=
gt; | <FALSE> | <TRUE> | <UNKNOWN> | <NULL> | ( ( &=
lt;BOOLEANTYPE> | <TIMESTAMPTYPE> | <DATETYPE> | <TIMETYP=
E> ) stringVal <RBRACE&=
gt; ) )
+
+
+
+
+
Modified: trunk/pom.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/pom.xml 2009-11-25 21:45:09 UTC (rev 1603)
+++ trunk/pom.xml 2009-11-29 14:39:39 UTC (rev 1604)
@@ -87,9 +87,7 @@
build/assembly/cdk/cdk-dist.xml
build/assembly/adminshell/admi=
nshell-dependencies.xml
build/assembly/adminshell/admi=
nshell-dist.xml
-
target/distribution
target/assembly/work
--===============1192834348800293278==--