Fix potential crash whne resolving columns

This commit is contained in:
Simon Binder 2023-12-07 00:10:49 +01:00
parent 633cc52129
commit 1563b99b58
No known key found for this signature in database
GPG Key ID: 7891917E4147B8C0
1 changed files with 7 additions and 5 deletions

View File

@ -366,7 +366,7 @@ class ColumnResolver extends RecursiveVisitor<ColumnResolverContext, void> {
// result, but also expressions that appear as result columns // result, but also expressions that appear as result columns
for (final resultColumn in columns) { for (final resultColumn in columns) {
if (resultColumn is StarResultColumn) { if (resultColumn is StarResultColumn) {
Iterable<Column>? visibleColumnsForStar; Iterable<Column> visibleColumnsForStar;
if (resultColumn.tableName != null) { if (resultColumn.tableName != null) {
final tableResolver = final tableResolver =
@ -380,9 +380,11 @@ class ColumnResolver extends RecursiveVisitor<ColumnResolverContext, void> {
continue; continue;
} }
visibleColumnsForStar = visibleColumnsForStar = tableResolver
tableResolver.resultSet.resultSet?.resolvedColumns?.map( .resultSet.resultSet?.resolvedColumns
(tableColumn) => AvailableColumn(tableColumn, tableResolver)); ?.map((tableColumn) =>
AvailableColumn(tableColumn, tableResolver)) ??
const [];
} else { } else {
// we have a * column without a table, that resolves to every column // we have a * column without a table, that resolves to every column
// available // available
@ -401,7 +403,7 @@ class ColumnResolver extends RecursiveVisitor<ColumnResolverContext, void> {
} }
final added = final added =
visibleColumnsForStar!.where((e) => e.includedInResults).toList(); visibleColumnsForStar.where((e) => e.includedInResults).toList();
usedColumns.addAll(added); usedColumns.addAll(added);
resultColumn.resolvedColumns = added; resultColumn.resolvedColumns = added;