From 1e4a1c2371396cf0eb84b27a96e99e7f4d23a926 Mon Sep 17 00:00:00 2001 From: moparisthebest Date: Tue, 31 Mar 2020 23:50:48 -0400 Subject: [PATCH] Allow parens directly before and after FROM --- .../com/moparisthebest/jdbc/codegen/SimpleSQLParser.java | 2 +- .../com/moparisthebest/jdbc/codegen/SimpleSQLParserTest.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/SimpleSQLParser.java b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/SimpleSQLParser.java index 032c34a..3fb09e8 100644 --- a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/SimpleSQLParser.java +++ b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/SimpleSQLParser.java @@ -10,7 +10,7 @@ public class SimpleSQLParser extends AbstractSQLParser { private static final Pattern aliasPattern = Pattern.compile("^.*\\."); private static final Pattern parenPattern = Pattern.compile("\\([^)]+\\)"); - private static final Pattern fromPattern = Pattern.compile("\\s+FROM\\s+"); + private static final Pattern fromPattern = Pattern.compile("[\\s)]+FROM[\\s(]+"); public SimpleSQLParser() { super(null, false); diff --git a/test/src/test/java/com/moparisthebest/jdbc/codegen/SimpleSQLParserTest.java b/test/src/test/java/com/moparisthebest/jdbc/codegen/SimpleSQLParserTest.java index ac37967..82e9103 100644 --- a/test/src/test/java/com/moparisthebest/jdbc/codegen/SimpleSQLParserTest.java +++ b/test/src/test/java/com/moparisthebest/jdbc/codegen/SimpleSQLParserTest.java @@ -37,6 +37,11 @@ public class SimpleSQLParserTest { assertTrue(ret.isSelect()); assertArrayEquals(new String[]{null, "SOMETHING_FROM_BOB"}, ret.columnNames()); } + { + final SQLParser ret = getFactory().parse("select something_from_bob from( tom)"); + assertTrue(ret.isSelect()); + assertArrayEquals(new String[]{null, "SOMETHING_FROM_BOB"}, ret.columnNames()); + } } @Test