@@ -229,6 +229,7 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
229229| <K_NEXTVAL:"NEXTVAL">
230230| <K_NO:"NO">
231231| <K_NOCYCLE:"NOCYCLE">
232+ | <K_NOLOCK:"NOLOCK">
232233| <K_NOT:"NOT">
233234| <K_NOVALIDATE : "NOVALIDATE">
234235| <K_NULL:"NULL">
@@ -1136,7 +1137,7 @@ String RelObjectNameWithoutValue() :
11361137 | tk=<K_ZONE> | tk=<K_COLUMNS> | tk=<K_DESCRIBE> | tk=<K_FN> | tk=<K_PATH>
11371138 | tk=<K_DATE_LITERAL> | tk=<K_NEXTVAL> | tk=<K_TRUE> | tk=<K_FALSE> | tk=<K_DUPLICATE>
11381139 | tk=<K_READ> | tk=<K_SIZE> | tk=<K_SESSION>
1139- | tk=<K_VIEW>
1140+ | tk=<K_VIEW> | <K_NOLOCK>
11401141/* | tk=<K_PLACING> | tk=<K_BOTH> | tk=<K_LEADING> | tk=<K_TRAILING> */
11411142 )
11421143
@@ -1501,6 +1502,17 @@ Alias Alias():
15011502 { return alias; }
15021503}
15031504
1505+ SQLServerHints SQLServerHints() : {
1506+ SQLServerHints hints = new SQLServerHints();
1507+ }
1508+ {
1509+ <K_WITH> "("
1510+ //at the moment only nolock
1511+ <K_NOLOCK> { hints.withNoLock(); }
1512+ ")"
1513+ { return hints; }
1514+ }
1515+
15041516MySQLIndexHint MySQLIndexHint():
15051517{
15061518 Token actionToken = null;
@@ -1711,6 +1723,7 @@ FromItem FromItem():
17111723 UnPivot unpivot = null;
17121724 Alias alias = null;
17131725 MySQLIndexHint indexHint = null;
1726+ SQLServerHints sqlServerHints = null;
17141727}
17151728{
17161729 (
@@ -1746,10 +1759,17 @@ FromItem FromItem():
17461759 [(LOOKAHEAD(2) pivot=PivotXml()|pivot=Pivot()) { fromItem.setPivot(pivot); } ]
17471760 [
17481761 LOOKAHEAD(2)
1749- indexHint=MySQLIndexHint() {
1750- if (fromItem instanceof Table)
1751- ((Table) fromItem).setHint(indexHint);
1752- }
1762+ (
1763+ indexHint = MySQLIndexHint() {
1764+ if (fromItem instanceof Table)
1765+ ((Table) fromItem).setHint(indexHint);
1766+ }
1767+ |
1768+ sqlServerHints = SQLServerHints() {
1769+ if (fromItem instanceof Table)
1770+ ((Table) fromItem).setSqlServerHints(sqlServerHints);
1771+ }
1772+ )
17531773 ]
17541774 )
17551775 )
0 commit comments