From 659dbc472546b8418c5052d79a85e19126399a66 Mon Sep 17 00:00:00 2001 From: Benjamin Gaidioz Date: Fri, 5 Jul 2024 09:13:42 +0200 Subject: [PATCH 1/4] Added test for RD-11232 --- .../scala/raw/client/sql/TestSqlParser.scala | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/sql-client/src/test/scala/raw/client/sql/TestSqlParser.scala b/sql-client/src/test/scala/raw/client/sql/TestSqlParser.scala index dcac97002..52f82cc8e 100644 --- a/sql-client/src/test/scala/raw/client/sql/TestSqlParser.scala +++ b/sql-client/src/test/scala/raw/client/sql/TestSqlParser.scala @@ -624,4 +624,31 @@ class TestSqlParser extends AnyFunSuite { } } + test("newline after comment") { + val code = """select + | id, + | key, + | summary, + | project_key, + | status, + | assignee_display_name, + | assignee_account_id + |from + | "jira-danai".jira_backlog_issue + | limit 2 + |--where + |-- assignee_display_name = 'yann'; + | """.stripMargin + val result = doTest(code) + checkStartEnd(result) + } + + private def checkStartEnd(result: ParseProgramResult) = { + val SqlProgramNode(stmt) = result.tree + assert(result.positions.getStart(stmt).isDefined) + assert(result.positions.getFinish(stmt).isDefined) + assert(result.positions.getStart(stmt).flatMap(_.optOffset).isDefined) + assert(result.positions.getFinish(stmt).flatMap(_.optOffset).isDefined) + } + } From 940cba064fab0f6634af0706fc5110923d3ea96d Mon Sep 17 00:00:00 2001 From: Alex Zerntev Date: Fri, 5 Jul 2024 17:44:11 +0300 Subject: [PATCH 2/4] fix --- .../scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala b/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala index 634b097e6..606fb9841 100644 --- a/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala +++ b/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala @@ -26,7 +26,9 @@ class RawSqlSyntaxAnalyzer(val positions: Positions) extends Parsers(positions) val source = StringSource(s) val rawErrorListener = new RawSqlErrorListener() - val lexer = new PsqlLexer(CharStreams.fromString(s)) + val striped = s.stripTrailing() + val withoutNewLine = if(striped.endsWith("\n")) striped.substring(0, striped.length - 1) else striped + val lexer = new PsqlLexer(CharStreams.fromString(withoutNewLine)) lexer.removeErrorListeners() lexer.addErrorListener(rawErrorListener) From daeb66b040d28becd35f0612708a6dc34fd3233e Mon Sep 17 00:00:00 2001 From: Alex Zerntev Date: Fri, 5 Jul 2024 17:52:04 +0300 Subject: [PATCH 3/4] fix --- .../scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala b/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala index 606fb9841..2351fe3b1 100644 --- a/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala +++ b/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala @@ -26,9 +26,8 @@ class RawSqlSyntaxAnalyzer(val positions: Positions) extends Parsers(positions) val source = StringSource(s) val rawErrorListener = new RawSqlErrorListener() - val striped = s.stripTrailing() - val withoutNewLine = if(striped.endsWith("\n")) striped.substring(0, striped.length - 1) else striped - val lexer = new PsqlLexer(CharStreams.fromString(withoutNewLine)) + val striped = s.stripTrailing().stripSuffix("\r\n").stripSuffix("\n").stripSuffix("\r") + val lexer = new PsqlLexer(CharStreams.fromString(striped)) lexer.removeErrorListeners() lexer.addErrorListener(rawErrorListener) From 33de22559c3e239f46ebc70fa5e4e2a8524ac8ee Mon Sep 17 00:00:00 2001 From: Alex Zerntev Date: Mon, 8 Jul 2024 10:35:35 +0300 Subject: [PATCH 4/4] fix --- .../main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala b/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala index 2351fe3b1..0f116cf8e 100644 --- a/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala +++ b/sql-client/src/main/scala/raw/client/sql/antlr4/RawSqlSyntaxAnalyzer.scala @@ -26,7 +26,7 @@ class RawSqlSyntaxAnalyzer(val positions: Positions) extends Parsers(positions) val source = StringSource(s) val rawErrorListener = new RawSqlErrorListener() - val striped = s.stripTrailing().stripSuffix("\r\n").stripSuffix("\n").stripSuffix("\r") + val striped = s.stripTrailing() val lexer = new PsqlLexer(CharStreams.fromString(striped)) lexer.removeErrorListeners() lexer.addErrorListener(rawErrorListener)