From 69f0be2a3c667a692cb1566e12bff4e9145d7bc8 Mon Sep 17 00:00:00 2001 From: Donnie Pinkston <donnie@cms.caltech.edu> Date: Mon, 25 Feb 2019 09:25:18 -0800 Subject: [PATCH] Translator supports NOT LIKE / NOT SIMILAR TO --- .../caltech/nanodb/sqlparse/NanoSQLTranslator.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/caltech/nanodb/sqlparse/NanoSQLTranslator.java b/src/main/java/edu/caltech/nanodb/sqlparse/NanoSQLTranslator.java index 3a7f236..fa80357 100644 --- a/src/main/java/edu/caltech/nanodb/sqlparse/NanoSQLTranslator.java +++ b/src/main/java/edu/caltech/nanodb/sqlparse/NanoSQLTranslator.java @@ -1002,16 +1002,26 @@ public class NanoSQLTranslator extends NanoSQLBaseVisitor<Object> { @Override public Object visitExprLike(NanoSQLParser.ExprLikeContext ctx) { + boolean invert = (ctx.NOT() != null); Expression lhs = (Expression) visit(ctx.expression(0)); Expression rhs = (Expression) visit(ctx.expression(1)); - return new StringMatchOperator(StringMatchOperator.Type.LIKE, lhs, rhs); + + StringMatchOperator op = new StringMatchOperator( + StringMatchOperator.Type.LIKE, lhs, rhs); + op.setInvert(invert); + return op; } @Override public Object visitExprSimilarTo(NanoSQLParser.ExprSimilarToContext ctx) { + boolean invert = (ctx.NOT() != null); Expression lhs = (Expression) visit(ctx.expression(0)); Expression rhs = (Expression) visit(ctx.expression(1)); - return new StringMatchOperator(StringMatchOperator.Type.REGEX, lhs, rhs); + + StringMatchOperator op = new StringMatchOperator( + StringMatchOperator.Type.REGEX, lhs, rhs); + op.setInvert(invert); + return op; } @Override -- GitLab