Skip to content

Commit 0c46591

Browse files
authored
Merge pull request #824 from tomershay/support_default_mode_in_full_text_search
Support default mode in full text search
2 parents 694d06c + ecb5464 commit 0c46591

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

src/main/java/net/sf/jsqlparser/expression/operators/relational/FullTextSearch.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ public String toString() {
6969
columnsListCommaSeperated += ",";
7070
}
7171
}
72-
return "MATCH (" + columnsListCommaSeperated + ") AGAINST (" + this._againstValue + " " + this._searchModifier + ")";
72+
73+
return "MATCH (" + columnsListCommaSeperated + ") AGAINST (" + this._againstValue +
74+
(this._searchModifier != null ? " " + this._searchModifier : "") + ")";
7375
}
7476
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,8 @@ public void visit(FullTextSearch fullTextSearch) {
215215
columnsListCommaSeperated += ",";
216216
}
217217
}
218-
buffer.append("MATCH (" + columnsListCommaSeperated + ") AGAINST (" + fullTextSearch.getAgainstValue() + " " + fullTextSearch.getSearchModifier() + ")");
218+
buffer.append("MATCH (" + columnsListCommaSeperated + ") AGAINST (" + fullTextSearch.getAgainstValue() +
219+
(fullTextSearch.getSearchModifier() != null ? " " + fullTextSearch.getSearchModifier() : "") + ")");
219220
}
220221

221222
@Override

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

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3239,13 +3239,15 @@ FullTextSearch FullTextSearch() : {
32393239
{
32403240
<K_MATCH> "(" col=Column() { matchedColumns.add(col); } ("," col=Column() { matchedColumns.add(col); } )* ")" <K_AGAINST>
32413241
"(" againstValue=<S_CHAR_LITERAL> { fs.setAgainstValue(new StringValue(againstValue.image)); }
3242-
(
3243-
searchModifier="IN NATURAL LANGUAGE MODE"
3244-
| searchModifier="IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION"
3245-
| searchModifier="IN BOOLEAN MODE"
3246-
| searchModifier="WITH QUERY EXPANSION"
3247-
)
3248-
{ fs.setSearchModifier(searchModifier.image); }
3242+
[
3243+
(
3244+
searchModifier="IN NATURAL LANGUAGE MODE"
3245+
| searchModifier="IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION"
3246+
| searchModifier="IN BOOLEAN MODE"
3247+
| searchModifier="WITH QUERY EXPANSION"
3248+
)
3249+
{ fs.setSearchModifier(searchModifier.image); }
3250+
]
32493251
")"
32503252
{
32513253
fs.setMatchColumns(matchedColumns);

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1864,6 +1864,12 @@ public void testSeveralColumnsFullTextSearchMySQL() throws JSQLParserException {
18641864
assertSqlCanBeParsedAndDeparsed(statement);
18651865
}
18661866

1867+
@Test
1868+
public void testFullTextSearchInDefaultMode() throws JSQLParserException {
1869+
String statement = "SELECT col FROM tbl WHERE MATCH (col1,col2,col3) AGAINST ('test') ORDER BY col";
1870+
assertSqlCanBeParsedAndDeparsed(statement);
1871+
}
1872+
18671873
@Test
18681874
public void testIsTrue() throws JSQLParserException {
18691875
String statement = "SELECT col FROM tbl WHERE col IS TRUE";

0 commit comments

Comments
 (0)