Skip to content

Commit

Permalink
Avoid quadratic traversal when many columns accessible
Browse files Browse the repository at this point in the history
When `hide-inaccessible-columns` is enabled and table has N accessible
columns, `filterInaccessibleFields` would have `O(N²)` running time.
  • Loading branch information
findepi committed Sep 19, 2023
1 parent 76d9b01 commit 9acc35e
Showing 1 changed file with 2 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4355,7 +4355,7 @@ private List<Field> filterInaccessibleFields(List<Field> fields)
return fields;
}

List<Field> accessibleFields = new ArrayList<>();
ImmutableSet.Builder<Field> accessibleFields = ImmutableSet.builder();

//collect fields by table
ListMultimap<QualifiedObjectName, Field> tableFieldsMap = ArrayListMultimap.create();
Expand Down Expand Up @@ -4383,7 +4383,7 @@ private List<Field> filterInaccessibleFields(List<Field> fields)
});

return fields.stream()
.filter(field -> accessibleFields.contains(field))
.filter(accessibleFields.build()::contains)
.collect(toImmutableList());
}

Expand Down

0 comments on commit 9acc35e

Please sign in to comment.