Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
747152a
Fixes #1684: Support CREATE MATERIALIZED VIEW with AUTO REFRESH
zaza Dec 11, 2022
9e09005
Merge branch 'master' into 1684-create-mv-auto-refresh
zaza Dec 22, 2022
ea4477b
Reduce cyclomatic complexity in CreateView.toString
zaza Jan 8, 2023
b5321d6
Enhanced Keywords
manticore-projects Oct 18, 2021
5fae2f5
Fix incorrect tests
manticore-projects Oct 18, 2021
f49e828
Define Reserved Keywords explicitly
manticore-projects Oct 24, 2021
86f337d
Fix test resources
manticore-projects Oct 24, 2021
2d51a82
Adjust Gradle to JUnit 5
manticore-projects Nov 22, 2021
232aff6
Do not mark SpeedTest for concurrent execution
manticore-projects Nov 24, 2021
3ba5410
Remove unused imports
manticore-projects Nov 28, 2021
e960a35
Adjust Gradle to JUnit 5
manticore-projects Nov 22, 2021
67f7951
Do not mark SpeedTest for concurrent execution
manticore-projects Nov 24, 2021
a016be0
Remove unused imports
manticore-projects Nov 28, 2021
2ef6637
Sphinx Documentation
manticore-projects Sep 2, 2022
57193b8
doc: request for `Conventional Commit` messages
manticore-projects Sep 6, 2022
b94b2cc
feat: make important Classes Serializable
manticore-projects Sep 15, 2022
02202c5
chore: Make Serializable
manticore-projects Oct 14, 2022
a3ca325
doc: Better integration of the RR diagrams
manticore-projects Jan 7, 2023
fcb5ab1
Merge
manticore-projects Jan 7, 2023
c57c427
feat: Oracle Alternative Quoting
manticore-projects Jan 29, 2023
2aec1f6
style: Appease PMD/Codacy
manticore-projects Jan 29, 2023
1c8d8da
feat: CREATE VIEW ... REFRESH AUTO...
manticore-projects Jan 30, 2023
b707b23
doc: fix the issue template
manticore-projects Feb 1, 2023
46314c4
Update issue templates
manticore-projects Feb 1, 2023
4aeafbc
Update issue templates
manticore-projects Feb 1, 2023
b081484
feat: Support more Statement Separators
manticore-projects Feb 2, 2023
5885e1c
Merge remote-tracking branch 'origin/master'
manticore-projects Feb 13, 2023
581d97a
Merge branch 'master' of https://github.com/JSQLParser/JSqlParser
manticore-projects Feb 24, 2023
0979b2e
feat: FETCH uses EXPRESSION
manticore-projects Mar 7, 2023
ed17f87
style: apply Spotless
manticore-projects Mar 7, 2023
96808d2
test: commit missing test
manticore-projects Mar 7, 2023
21c4550
Merge branch 'master' of https://github.com/JSQLParser/JSqlParser
manticore-projects Mar 12, 2023
e8a29de
Merge branch 'master' of https://github.com/JSQLParser/JSqlParser
manticore-projects Apr 29, 2023
8a1bdec
feat: Lateral View
manticore-projects Apr 29, 2023
4efb99f
feat: Oracle `HAVING` before `GROUP BY`
manticore-projects Apr 29, 2023
9da7a06
feat: Multi-Part Names for Variables and Parameters
manticore-projects Apr 29, 2023
4b7f21c
feat: ClickHouse `Select...` ``FINAL` modifier
manticore-projects Apr 29, 2023
6281b07
feat: Test if a JOIN is an INNER JOIN according to the SQL:2016
manticore-projects Apr 30, 2023
b6ea8b1
feat: Switch off contradicting `JOIN` qualifiers, when setting a qual…
manticore-projects Apr 30, 2023
3a27a9d
feat: implement SQL:2016 Convert() and Trim()
manticore-projects Apr 30, 2023
4d5e26d
feat: ClickHouse `LIMIT ... BY ...` clause
manticore-projects Apr 30, 2023
f0a6f37
test: add specific tests for closed issues
manticore-projects Apr 30, 2023
ff16faf
test: add specific tests for closed issues
manticore-projects Apr 30, 2023
b9057d2
refactor: remove `SelectExpressionItem` in favor of `SelectItem`
manticore-projects Apr 30, 2023
286834d
doc: Update examples
manticore-projects Apr 30, 2023
0be65a4
build: Add missing import
manticore-projects Apr 30, 2023
4ddc835
doc: Update the README.md
manticore-projects May 1, 2023
fc577ca
fix: assign Enum case insensitive
manticore-projects May 2, 2023
86d0ace
fix: assign Enum case insensitive
manticore-projects May 2, 2023
a5140c7
Revert "fix: assign Enum case insensitive"
manticore-projects May 2, 2023
288b177
feat: Consolidate the `ExpressionList`, removing many redundant List …
manticore-projects May 3, 2023
905ef65
fix: Remove tests for `()`, since `ParenthesedExpressionList` will ca…
manticore-projects May 3, 2023
85b3bc4
refactor: UpdateSets for `Update` and `InsertConflictTarget`
manticore-projects May 3, 2023
e16ba5d
build: Increase TimeOut for the GitHub CI
manticore-projects May 3, 2023
2eb8c80
style: Appease Codacy
manticore-projects May 3, 2023
f449263
style: Checkstyle
manticore-projects May 3, 2023
141708e
refactor: Remove `ItemsList`, `MultiExpressionList`, `Replace`
manticore-projects May 4, 2023
67b3804
style: Appease Codacy
manticore-projects May 4, 2023
f89df27
style: Rework all the ENUMs
manticore-projects May 5, 2023
a590036
doc: Better Sphinx Tabs
manticore-projects May 6, 2023
c81d60a
doc: RR chart colors cater for Dark Mode
manticore-projects May 6, 2023
3903a80
refactor: remove SimpleFunction
manticore-projects May 6, 2023
2d200b0
build: improve Gradle Build
manticore-projects May 7, 2023
89600d4
refactor: `Insert` uses `ExpressionList` and `UpdateSet`
manticore-projects May 7, 2023
a11febb
test: Disable API Sanitation for the moment
manticore-projects May 7, 2023
399e1d7
style: Appease Checkstyle
manticore-projects May 7, 2023
f5d35d0
style: Appease PMD
manticore-projects May 7, 2023
21389b7
fix: find the correct position when field belongs to an internal class
manticore-projects May 9, 2023
52df291
style: replace all List<Expression> with ExpressionList<> and enforce…
manticore-projects May 9, 2023
9fbdaae
refactor: generify `SelectItem` and remove `FunctionItem` and `Expres…
manticore-projects May 9, 2023
7cecd29
fix: Java Version 8
manticore-projects May 9, 2023
c07a43b
feat: JdbcNamedParameter allows "&" (instead of ":")
manticore-projects May 11, 2023
09a70a4
feat: access Elements of Array Columns
manticore-projects May 11, 2023
6e7a78d
feat: `MEMBER OF` condition as shown at https://dev.mysql.com/doc/ref…
manticore-projects May 11, 2023
8a75aa7
style: appease PMD/Codacy
manticore-projects May 11, 2023
ce2b18a
style: appease PMD/Codacy
manticore-projects May 11, 2023
c9dce62
Merge remote-tracking branch 'manticore/Lateral_View' into Lateral_View
manticore-projects May 11, 2023
decf662
test: add unit test for issue #1778
manticore-projects May 11, 2023
c53667f
feat: Write API documentation to the WebSite via XMLDoclet
manticore-projects May 14, 2023
1132338
Update sphinx.yml
manticore-projects May 14, 2023
f3e8952
build: Sphinx build fixes
manticore-projects May 14, 2023
f515cda
Merge branch 'master' of https://github.com/manticore-projects/JSqlPa…
manticore-projects May 14, 2023
11b563c
build: Sphinx build fixes
manticore-projects May 14, 2023
961378d
build: Sphinx build fixes
manticore-projects May 14, 2023
48d5340
Merge branch 'master' of https://github.com/manticore-projects/JSqlPa…
manticore-projects May 14, 2023
8fb9110
build: improve the GIT Snapshot detection
manticore-projects May 15, 2023
88d1b62
fix: issue #1791
manticore-projects May 15, 2023
d20c8e9
fix: issue #1789
manticore-projects May 16, 2023
32ec561
fix: issue #1789
manticore-projects May 16, 2023
9fa0f4b
Merge remote-tracking branch 'manticore/Lateral_View' into Lateral_View
manticore-projects May 16, 2023
01a5fb7
refactor: simplify production `CreateParameter()`
manticore-projects May 16, 2023
daa56ed
refactor: SHOW statement, supporting any RDBMS specific implementation
manticore-projects May 16, 2023
4fb1cfb
refactor: RETURNING clause
manticore-projects May 16, 2023
da32442
refactor: CREATE and ALTER productions
manticore-projects May 16, 2023
4f0488c
fix: Complex Parsing Approach
manticore-projects May 17, 2023
3ff9774
style: Quieten the logger
manticore-projects May 17, 2023
a7dfb94
style: Cosmetic improvements
manticore-projects May 17, 2023
6ef5e0b
feat: chaining JSON Expressions
manticore-projects May 17, 2023
4f91746
style: remove unused imports
manticore-projects May 17, 2023
9dafae8
refact: Statements extends List<Statement>
manticore-projects May 17, 2023
4bdabed
build: try to work around the Maven/JDK8 issue on GitHub
manticore-projects May 17, 2023
64b0331
feat: parse CREATE TRIGGER as UnsupportedStatement
manticore-projects May 17, 2023
e19dc0e
feat: functions blocks, parenthesed JSON Expressions
manticore-projects May 18, 2023
5263b91
feat: functions blocks, parenthesed JSON Expressions
manticore-projects May 18, 2023
be7fc53
Create gradle.yml
manticore-projects May 18, 2023
73c55fd
feat: Quoted Identifiers can contain double-quotes (PostgreSQL)
manticore-projects May 18, 2023
a558871
build: improve Upload task
manticore-projects May 19, 2023
5e7732c
doc: Website improvements
manticore-projects May 22, 2023
68ce27c
doc: Website, fix tabs
manticore-projects May 24, 2023
cb960a3
fix: throw the specific exception
manticore-projects May 29, 2023
2b4a929
doc: write migration guide
manticore-projects May 29, 2023
54b4303
Merge branch 'master' of https://github.com/manticore-projects/JSqlPa…
manticore-projects May 29, 2023
b6fab2a
fix: expose IntervalExpression attributes and use DeParser
manticore-projects Jun 1, 2023
6d2b421
doc: migration guide
manticore-projects Jun 2, 2023
8027dbf
feat: T-SQL `FOR ...` clause
manticore-projects Jun 2, 2023
94d00f0
Merge remote-tracking branch 'origin/master'
manticore-projects Jun 2, 2023
6f27765
fix: SPHINX modules and themes
manticore-projects Jun 2, 2023
f5e9f53
docs: write migration guide
manticore-projects Jun 11, 2023
996ebd9
Merge branch 'master' of github.com:manticore-projects/JSqlParser
manticore-projects Jun 11, 2023
75e4d30
feat: `QUALIFY` clause
manticore-projects Jun 15, 2023
386dc7a
feat: Postgres `NOTNULL` support
manticore-projects Jun 15, 2023
f132547
feat: MySQL `NOT RLIKE`, `NOT REGEXP` expressions
manticore-projects Jun 15, 2023
420d7d8
fix: `INSERT` must use simple Column Names only
manticore-projects Jun 15, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: MySQL NOT RLIKE, NOT REGEXP expressions
- fixes #1553
- remove RegExpMySQLOperator, replaced by flavoured `LIKE` expression

Signed-off-by: Andreas Reichel <andreas@manticore-projects.com>
  • Loading branch information
manticore-projects committed Jun 15, 2023
commit f132547f56a1edd6e6a0e1454b53ac2e422a835b
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
import net.sf.jsqlparser.expression.operators.relational.MinorThanEquals;
import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
import net.sf.jsqlparser.expression.operators.relational.RegExpMatchOperator;
import net.sf.jsqlparser.expression.operators.relational.RegExpMySQLOperator;
import net.sf.jsqlparser.expression.operators.relational.SimilarToExpression;
import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.statement.select.AllColumns;
Expand Down Expand Up @@ -168,8 +167,6 @@ public interface ExpressionVisitor {

void visit(JsonOperator jsonExpr);

void visit(RegExpMySQLOperator regExpMySQLOperator);

void visit(UserVariable var);

void visit(NumericBind bind);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
import net.sf.jsqlparser.expression.operators.relational.MinorThanEquals;
import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
import net.sf.jsqlparser.expression.operators.relational.RegExpMatchOperator;
import net.sf.jsqlparser.expression.operators.relational.RegExpMySQLOperator;
import net.sf.jsqlparser.expression.operators.relational.SimilarToExpression;
import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.statement.select.AllColumns;
Expand Down Expand Up @@ -433,11 +432,6 @@ public void visit(JsonOperator expr) {
visitBinaryExpression(expr);
}

@Override
public void visit(RegExpMySQLOperator expr) {
visitBinaryExpression(expr);
}

@Override
public void visit(UserVariable var) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,18 @@
import net.sf.jsqlparser.expression.ExpressionVisitor;

public class LikeExpression extends BinaryExpression {
public enum KeyWord {
LIKE, ILIKE, RLIKE, REGEXP;

public static KeyWord from(String keyword) {
return Enum.valueOf(KeyWord.class, keyword.toUpperCase());
}
}

private boolean not = false;
private boolean useBinary = false;
private Expression escapeExpression = null;
private boolean caseInsensitive = false;
private KeyWord likeKeyWord = KeyWord.LIKE;

public boolean isNot() {
return not;
Expand All @@ -27,23 +35,33 @@ public void setNot(boolean b) {
not = b;
}

public boolean isUseBinary() {
return useBinary;
}

public LikeExpression setUseBinary(boolean useBinary) {
this.useBinary = useBinary;
return this;
}

@Override
public void accept(ExpressionVisitor expressionVisitor) {
expressionVisitor.visit(this);
}

@Deprecated
@Override
public String getStringExpression() {
return caseInsensitive ? "ILIKE" : "LIKE";
return likeKeyWord.toString();
}

@Override
public String toString() {
String retval = getLeftExpression() + " " + (not ? "NOT " : "") + getStringExpression() + " " + getRightExpression();
String retval = getLeftExpression() + " " + (not ? "NOT " : "")
+ likeKeyWord + " " + (useBinary ? "BINARY " : "") + getRightExpression();
if (escapeExpression != null) {
retval += " ESCAPE " + escapeExpression ;
retval += " ESCAPE " + escapeExpression;
}

return retval;
}

Expand All @@ -55,19 +73,36 @@ public void setEscape(Expression escapeExpression) {
this.escapeExpression = escapeExpression;
}

@Deprecated
public boolean isCaseInsensitive() {
return caseInsensitive;
return likeKeyWord == KeyWord.ILIKE;
}

@Deprecated
public void setCaseInsensitive(boolean caseInsensitive) {
this.caseInsensitive = caseInsensitive;
this.likeKeyWord = KeyWord.ILIKE;
}

public KeyWord getLikeKeyWord() {
return likeKeyWord;
}

public LikeExpression setLikeKeyWord(KeyWord likeKeyWord) {
this.likeKeyWord = likeKeyWord;
return this;
}

public LikeExpression setLikeKeyWord(String likeKeyWord) {
this.likeKeyWord = KeyWord.from(likeKeyWord);
return this;
}

public LikeExpression withEscape(Expression escape) {
this.setEscape(escape);
return this;
}

@Deprecated
public LikeExpression withCaseInsensitive(boolean caseInsensitive) {
this.setCaseInsensitive(caseInsensitive);
return this;
Expand Down

This file was deleted.

6 changes: 0 additions & 6 deletions src/main/java/net/sf/jsqlparser/util/TablesNamesFinder.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,6 @@
import net.sf.jsqlparser.expression.operators.relational.MinorThanEquals;
import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
import net.sf.jsqlparser.expression.operators.relational.RegExpMatchOperator;
import net.sf.jsqlparser.expression.operators.relational.RegExpMySQLOperator;
import net.sf.jsqlparser.expression.operators.relational.SimilarToExpression;
import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.schema.Table;
Expand Down Expand Up @@ -659,11 +658,6 @@ public void visit(RegExpMatchOperator rexpr) {
visitBinaryExpression(rexpr);
}

@Override
public void visit(RegExpMySQLOperator rexpr) {
visitBinaryExpression(rexpr);
}

@Override
public void visit(JsonExpression jsonExpr) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@
import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
import net.sf.jsqlparser.expression.operators.relational.OldOracleJoinBinaryExpression;
import net.sf.jsqlparser.expression.operators.relational.RegExpMatchOperator;
import net.sf.jsqlparser.expression.operators.relational.RegExpMySQLOperator;
import net.sf.jsqlparser.expression.operators.relational.SimilarToExpression;
import net.sf.jsqlparser.expression.operators.relational.SupportsOldOracleJoinSyntax;
import net.sf.jsqlparser.schema.Column;
Expand Down Expand Up @@ -330,8 +329,17 @@ public void visit(JdbcParameter jdbcParameter) {

@Override
public void visit(LikeExpression likeExpression) {
visitBinaryExpression(likeExpression, (likeExpression.isNot() ? " NOT" : "")
+ (likeExpression.isCaseInsensitive() ? " ILIKE " : " LIKE "));
likeExpression.getLeftExpression().accept(this);
buffer.append(" ");
if (likeExpression.isNot()) {
buffer.append("NOT ");
}
buffer.append(likeExpression.getLikeKeyWord()).append(" ");
if (likeExpression.isUseBinary()) {
buffer.append("BINARY ");
}
likeExpression.getRightExpression().accept(this);

Expression escape = likeExpression.getEscape();
if (escape != null) {
buffer.append(" ESCAPE ");
Expand Down Expand Up @@ -847,10 +855,6 @@ public void visit(RegExpMatchOperator rexpr) {
visitBinaryExpression(rexpr, " " + rexpr.getStringExpression() + " ");
}

@Override
public void visit(RegExpMySQLOperator rexpr) {
visitBinaryExpression(rexpr, " " + rexpr.getStringExpression() + " ");
}

@Override
public void visit(JsonExpression jsonExpr) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,6 @@
import net.sf.jsqlparser.expression.operators.relational.NotEqualsTo;
import net.sf.jsqlparser.expression.operators.relational.OldOracleJoinBinaryExpression;
import net.sf.jsqlparser.expression.operators.relational.RegExpMatchOperator;
import net.sf.jsqlparser.expression.operators.relational.RegExpMySQLOperator;
import net.sf.jsqlparser.expression.operators.relational.SimilarToExpression;
import net.sf.jsqlparser.expression.operators.relational.SupportsOldOracleJoinSyntax;
import net.sf.jsqlparser.parser.feature.Feature;
Expand Down Expand Up @@ -481,11 +480,6 @@ public void visit(RegExpMatchOperator rexpr) {
visitBinaryExpression(rexpr, " " + rexpr.getStringExpression() + " ");
}

@Override
public void visit(RegExpMySQLOperator rexpr) {
visitBinaryExpression(rexpr, " " + rexpr.getStringExpression() + " ");
}

@Override
public void visit(JsonExpression jsonExpr) {
validateOptionalExpression(jsonExpr.getExpression());
Expand Down
12 changes: 9 additions & 3 deletions src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt
Original file line number Diff line number Diff line change
Expand Up @@ -3270,8 +3270,6 @@ Expression RegularCondition() #RegularCondition:
| token=<OP_NOTEQUALSBANG> { result = new NotEqualsTo(token.image); }
| "@@" { result = new Matches(); }
| "~" { result = new RegExpMatchOperator(RegExpMatchOperatorType.MATCH_CASESENSITIVE); }
| [<K_NOT> { not=true; } ] <K_REGEXP> [ LOOKAHEAD(2) <K_BINARY> { binary=true; } ] { result = new RegExpMySQLOperator(not, binary?RegExpMatchOperatorType.MATCH_CASESENSITIVE:RegExpMatchOperatorType.MATCH_CASEINSENSITIVE); }
| <K_RLIKE> [ LOOKAHEAD(2) <K_BINARY> { binary=true; } ] { result = new RegExpMySQLOperator(binary?RegExpMatchOperatorType.MATCH_CASESENSITIVE:RegExpMatchOperatorType.MATCH_CASEINSENSITIVE).useRLike(); }
| "~*" { result = new RegExpMatchOperator(RegExpMatchOperatorType.MATCH_CASEINSENSITIVE); }
| "!~" { result = new RegExpMatchOperator(RegExpMatchOperatorType.NOT_MATCH_CASESENSITIVE); }
| "!~*" { result = new RegExpMatchOperator(RegExpMatchOperatorType.NOT_MATCH_CASEINSENSITIVE); }
Expand Down Expand Up @@ -3400,7 +3398,15 @@ Expression LikeExpression(Expression leftExpression) #LikeExpression:
Token token;
}
{
[<K_NOT> { result.setNot(true); } ] ( <K_LIKE> | <K_ILIKE> { result.setCaseInsensitive(true); } ) rightExpression=SimpleExpression()
[<K_NOT> { result.setNot(true); } ]
(
token = <K_LIKE>
| token = <K_ILIKE>
| token = <K_RLIKE>
| token = <K_REGEXP>
) { result.setLikeKeyWord( LikeExpression.KeyWord.from(token.image)); }
[ <K_BINARY> {result.setUseBinary(true); } ]
rightExpression=SimpleExpression()
[ LOOKAHEAD(2) <K_ESCAPE>
(
LOOKAHEAD(2) token = <S_CHAR_LITERAL> { result.setEscape( new StringValue( token.image ) ); }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.StringValue;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.test.TestUtils;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;
Expand All @@ -32,12 +33,20 @@ public void testLikeNotIssue660() {

@Test
public void testSetEscapeAndGetStringExpression() throws JSQLParserException {
LikeExpression instance = (LikeExpression) CCJSqlParserUtil.parseExpression("name LIKE 'J%$_%'");
LikeExpression instance =
(LikeExpression) CCJSqlParserUtil.parseExpression("name LIKE 'J%$_%'");
// escape character should be $
Expression instance2 = new StringValue("$");
instance.setEscape(instance2);

// match all records with names that start with letter ’J’ and have the ’_’ character in them
// match all records with names that start with letter ’J’ and have the ’_’ character in
// them
assertEquals("name LIKE 'J%$_%' ESCAPE '$'", instance.toString());
}

@Test
void testNotRLikeIssue1553() throws JSQLParserException {
String sqlStr = "select * from test where id not rlike '111'";
TestUtils.assertSqlCanBeParsedAndDeparsed(sqlStr, true);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,6 @@ public class ReflectionModelTest {
new net.sf.jsqlparser.expression.operators.relational.NotEqualsTo(),
new net.sf.jsqlparser.expression.operators.relational.RegExpMatchOperator(
RegExpMatchOperatorType.MATCH_CASEINSENSITIVE),
new net.sf.jsqlparser.expression.operators.relational.RegExpMySQLOperator(
RegExpMatchOperatorType.NOT_MATCH_CASESENSITIVE),
new net.sf.jsqlparser.expression.operators.relational.SimilarToExpression(),
new net.sf.jsqlparser.schema.Column(), new net.sf.jsqlparser.schema.Database("db"),
new net.sf.jsqlparser.schema.Sequence(),
Expand Down