Parser does not properly recognize some multiline string literals #543
Comments
Hi Brian, sorry for the late reply. I fixed the first case. The second one is the same as #63 Cheers |
axelfontaine
added a commit
that referenced
this issue
Mar 4, 2015
jmahonin
added a commit
to jmahonin/flyway
that referenced
this issue
Jul 15, 2015
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Axel,
We are encountering SQL parsing errors when single quotes are adjacent to characters not explicitly specified as token delimiters in SqlStatementBuilder.endsWithOpenMultilineStringLiteral.
To reproduce, add these assertions to a test:
assertFalse(new SQLServerSqlStatementBuilder().endsWithOpenMultilineStringLiteral("print 'baz'+"));
assertFalse(new SQLServerSqlStatementBuilder().endsWithOpenMultilineStringLiteral("print 'baz'-- Oops"));
I think your approach of splitting on SQL special characters may be the issue. I think there are many other special characters (see http://savage.net.au/SQL/sql-2003-2.bnf.html) and also multiple-character sequences ('--') which may need to be included.
Please see related issue #544, in which I suggest two options to reduce or eliminate these parsing errors.
Thanks,
Brian
The text was updated successfully, but these errors were encountered: