Skip to content

Commit b76e639

Browse files
authored
Merge pull request #594 from sh-tomer/add_support_for_sql_no_cache
Add support for MySQL SQL_NO_CACHE
2 parents ffbf96e + 8dd564e commit b76e639

File tree

4 files changed

+27
-1
lines changed

4 files changed

+27
-1
lines changed

src/main/java/net/sf/jsqlparser/statement/select/PlainSelect.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public class PlainSelect extends ASTNodeAccessImpl implements SelectBody {
6060
private boolean useBrackets = false;
6161
private Wait wait;
6262
private boolean mySqlSqlCalcFoundRows = false;
63+
private boolean sqlNoCacheFlag = false;
6364

6465
public boolean isUseBrackets() {
6566
return useBrackets;
@@ -313,6 +314,9 @@ public String toString() {
313314
if (top != null) {
314315
sql.append(top).append(" ");
315316
}
317+
if (sqlNoCacheFlag) {
318+
sql.append("SQL_NO_CACHE").append(" ");
319+
}
316320
if (mySqlSqlCalcFoundRows) {
317321
sql.append("SQL_CALC_FOUND_ROWS").append(" ");
318322
}
@@ -465,7 +469,15 @@ public void setMySqlSqlCalcFoundRows(boolean mySqlCalcFoundRows) {
465469
this.mySqlSqlCalcFoundRows = mySqlCalcFoundRows;
466470
}
467471

472+
public void setMySqlSqlNoCache(boolean sqlNoCacheFlagSet) {
473+
this.sqlNoCacheFlag = sqlNoCacheFlagSet;
474+
}
475+
468476
public boolean getMySqlSqlCalcFoundRows() {
469477
return this.mySqlSqlCalcFoundRows;
470478
}
479+
480+
public boolean getMySqlSqlNoCache() {
481+
return this.sqlNoCacheFlag;
482+
}
471483
}

src/main/java/net/sf/jsqlparser/util/deparser/SelectDeParser.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ public void visit(PlainSelect plainSelect) {
9898
buffer.append(top).append(" ");
9999
}
100100

101+
if (plainSelect.getMySqlSqlNoCache()) {
102+
buffer.append("SQL_NO_CACHE").append(" ");
103+
}
104+
101105
if (plainSelect.getMySqlSqlCalcFoundRows()) {
102106
buffer.append("SQL_CALC_FOUND_ROWS").append(" ");
103107
}

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
280280
| <K_UPSERT:"UPSERT">
281281
| <K_USE : "USE">
282282
| <K_SQL_CALC_FOUND_ROWS: "SQL_CALC_FOUND_ROWS">
283+
| <K_SQL_NO_CACHE: "SQL_NO_CACHE">
283284
| <K_USING:"USING">
284285
| <K_UNSIGNED:"UNSIGNED">
285286
| <K_VALIDATE : "VALIDATE">
@@ -1128,6 +1129,10 @@ PlainSelect PlainSelect() #PlainSelect:
11281129
(
11291130
<K_SQL_CALC_FOUND_ROWS> { plainSelect.setMySqlSqlCalcFoundRows(true); }
11301131
)
1132+
|
1133+
(
1134+
<K_SQL_NO_CACHE> { plainSelect.setMySqlSqlNoCache(true); }
1135+
)
11311136
]
11321137

11331138
[top = Top() { plainSelect.setTop(top); } ]

src/test/java/net/sf/jsqlparser/statement/select/SelectTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2388,6 +2388,11 @@ public void testJsonExpression() throws JSQLParserException {
23882388
}
23892389

23902390
@Test
2391+
public void testSqlNoCache() throws JSQLParserException {
2392+
String stmt = "SELECT SQL_NO_CACHE sales.date FROM sales";
2393+
assertSqlCanBeParsedAndDeparsed(stmt);
2394+
}
2395+
23912396
public void testSelectInto1() throws JSQLParserException {
23922397
assertSqlCanBeParsedAndDeparsed("SELECT * INTO user_copy FROM user");
23932398
}
@@ -3165,7 +3170,7 @@ public void testProblemSqlFuncParamIssue605_2() throws JSQLParserException {
31653170
public void testSqlContainIsNullFunctionShouldBeParsed() throws JSQLParserException {
31663171
assertSqlCanBeParsedAndDeparsed("SELECT name, age, ISNULL(home, 'earn more money') FROM person");
31673172
}
3168-
3173+
31693174
@Test
31703175
public void testNestedCast() throws JSQLParserException {
31713176
assertSqlCanBeParsedAndDeparsed("SELECT acolumn::bit (64)::bigint FROM mytable");

0 commit comments

Comments
 (0)