@@ -1149,39 +1149,35 @@ public String[] indexAliases(
1149
1149
return requiredAliases .toArray (Strings .EMPTY_ARRAY );
1150
1150
} else {
1151
1151
final Map <String , AliasMetadata > indexAliases = indexMetadata .getAliases ();
1152
- final AliasMetadata [] aliasCandidates ;
1153
- if (iterateIndexAliases (indexAliases .size (), resolvedExpressions .size ())) {
1152
+ final int aliasCount = indexAliases .size ();
1153
+ if (aliasCount == 0 ) {
1154
+ return null ;
1155
+ }
1156
+ final List <String > aliases = new ArrayList <>(aliasCount );
1157
+ if (iterateIndexAliases (aliasCount , resolvedExpressions .size ())) {
1154
1158
// faster to iterate indexAliases
1155
- aliasCandidates = indexAliases .values ()
1156
- .stream ()
1157
- // Indices can only be referenced with a data selector, or a null selector if selectors are disabled
1158
- .filter (aliasMetadata -> resolvedExpressionsContainsAbstraction (resolvedExpressions , aliasMetadata .alias ()))
1159
- .toArray (AliasMetadata []::new );
1159
+ // Indices can only be referenced with a data selector, or a null selector if selectors are disabled
1160
+ for (AliasMetadata aliasMetadata : indexAliases .values ()) {
1161
+ var alias = aliasMetadata .alias ();
1162
+ if (resolvedExpressionsContainsAbstraction (resolvedExpressions , alias )) {
1163
+ if (requiredAlias .test (aliasMetadata ) == false ) {
1164
+ return null ;
1165
+ }
1166
+ aliases .add (alias );
1167
+ }
1168
+ }
1160
1169
} else {
1161
1170
// faster to iterate resolvedExpressions
1162
- aliasCandidates = resolvedExpressions .stream ()
1163
- .map (ResolvedExpression ::resource )
1164
- .map (indexAliases ::get )
1165
- .filter (Objects ::nonNull )
1166
- .toArray (AliasMetadata []::new );
1167
- }
1168
- List <String > aliases = null ;
1169
- for (int i = 0 ; i < aliasCandidates .length ; i ++) {
1170
- AliasMetadata aliasMetadata = aliasCandidates [i ];
1171
- if (requiredAlias .test (aliasMetadata )) {
1172
- // If required - add it to the list of aliases
1173
- if (aliases == null ) {
1174
- aliases = new ArrayList <>();
1171
+ for (ResolvedExpression resolvedExpression : resolvedExpressions ) {
1172
+ AliasMetadata aliasMetadata = indexAliases .get (resolvedExpression .resource ());
1173
+ if (aliasMetadata != null ) {
1174
+ if (requiredAlias .test (aliasMetadata ) == false ) {
1175
+ return null ;
1176
+ }
1177
+ aliases .add (aliasMetadata .getAlias ());
1175
1178
}
1176
- aliases .add (aliasMetadata .alias ());
1177
- } else {
1178
- // If not, we have a non required alias for this index - no further checking needed
1179
- return null ;
1180
1179
}
1181
1180
}
1182
- if (aliases == null ) {
1183
- return null ;
1184
- }
1185
1181
return aliases .toArray (Strings .EMPTY_ARRAY );
1186
1182
}
1187
1183
}
0 commit comments