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> )? - - -createUpdateProcedure ::=3D -<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 ( <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 -( 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 ( <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 | 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 | ( <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> - - -function ::=3D -( ( <CONVERT> <LPAREN> expression <COMMA> dataType <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 + ::=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==--