Skip to content

Commit 5939a99

Browse files
committed
Address review comments: close planner when exception occurs in parseToRel
1 parent fb42b31 commit 5939a99

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/CalciteQueryPlanner.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,18 +296,24 @@ public RelNode parseToRel(String sqlStatement, QueryParameters queryParameters)
296296
Preconditions.checkArgument(
297297
queryParameters.getKind() == Kind.NONE,
298298
"Beam SQL Calcite dialect does not yet support query parameters.");
299+
boolean success = false;
299300
try {
300301
SqlNode parsed = planner.parse(sqlStatement);
301302
TableResolutionUtils.setupCustomTableResolution(connection, parsed);
302303
SqlNode validated = planner.validate(parsed);
303304
// root of original logical plan
304305
RelRoot root = planner.rel(validated);
306+
success = true;
305307
return root.rel;
306308
} catch (RelConversionException e) {
307309
throw new SqlConversionException(
308310
String.format("Unable to convert query %s", sqlStatement), e);
309311
} catch (SqlParseException | ValidationException e) {
310312
throw new ParseException(String.format("Unable to parse query %s", sqlStatement), e);
313+
} finally {
314+
if (!success) {
315+
planner.close();
316+
}
311317
}
312318
}
313319

0 commit comments

Comments
 (0)