Skip to content

Commit 6cd67fa

Browse files
committed
Merge branch 'preparser' of github.com:srielau/spark into preparser
2 parents b30a9c6 + d9a53a8 commit 6cd67fa

File tree

4 files changed

+13
-9
lines changed

4 files changed

+13
-9
lines changed

sql/api/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBaseParser.g4

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1693,12 +1693,8 @@ stringLitWithoutMarker
16931693
;
16941694

16951695
stringLit
1696-
: stringLitWithoutMarker
1697-
| namedParameterMarkerVal
1698-
;
1699-
1700-
namedParameterMarkerVal
1701-
: namedParameterMarker #namedParameterValue
1696+
: stringLitWithoutMarker #stringLiteralInContext
1697+
| namedParameterMarker #namedParameterValue
17021698
;
17031699

17041700
comment

sql/api/src/main/scala/org/apache/spark/sql/catalyst/parser/DataTypeAstBuilder.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ class DataTypeAstBuilder extends SqlBaseParserBaseVisitor[AnyRef] {
7070
}
7171
}
7272

73+
override def visitStringLiteralInContext(ctx: StringLiteralInContextContext): Token = {
74+
visit(ctx.stringLitWithoutMarker).asInstanceOf[Token]
75+
}
76+
7377
override def visitNamedParameterValue(ctx: NamedParameterValueContext): Token = {
7478
// For namedParameterValue in data type contexts, this shouldn't normally occur
7579
// This indicates that parameter substitution failed or wasn't applied
@@ -285,7 +289,7 @@ class DataTypeAstBuilder extends SqlBaseParserBaseVisitor[AnyRef] {
285289
/**
286290
* Visit a stringLit context by delegating to the appropriate labeled visitor.
287291
*/
288-
override def visitStringLit(ctx: StringLitContext): Token = {
292+
def visitStringLit(ctx: StringLitContext): Token = {
289293
visit(ctx).asInstanceOf[Token]
290294
}
291295

sql/api/src/main/scala/org/apache/spark/sql/catalyst/parser/SubstituteParmsAstBuilder.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ class SubstituteParmsAstBuilder extends SqlBaseParserBaseVisitor[AnyRef] {
131131
visitNamedParameterValue(ctx)
132132
case ctx: NamedParameterIntegerValueContext =>
133133
visitNamedParameterIntegerValue(ctx)
134+
case ctx: StringLiteralInContextContext =>
135+
// For string literals in context, continue traversing to find any nested parameters
136+
visitChildren(ctx)
134137
case ruleNode: RuleNode =>
135138
// Continue traversing children for rule nodes
136139
visitChildren(ruleNode)

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/ParserUtilsSuite.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,14 @@ class ParserUtilsSuite extends SparkFunSuite {
211211
if (token1 != null) {
212212
assert(string(token1) == "identifier_with_wildcards")
213213
}
214-
214+
215215
val token2 = dataTypeBuilder.visitStringLit(createDbContext.commentSpec().get(0).stringLit())
216216
if (token2 != null) {
217217
assert(string(token2) == "database_comment")
218218
}
219219

220-
val token3 = dataTypeBuilder.visitStringLit(createDbContext.locationSpec.asScala.head.stringLit())
220+
val token3 = dataTypeBuilder.visitStringLit(
221+
createDbContext.locationSpec.asScala.head.stringLit())
221222
if (token3 != null) {
222223
assert(string(token3) == "/home/user/db")
223224
}

0 commit comments

Comments
 (0)