@@ -1149,39 +1149,35 @@ public String[] indexAliases(
11491149 return requiredAliases .toArray (Strings .EMPTY_ARRAY );
11501150 } else {
11511151 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 ())) {
11541158 // 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+ }
11601169 } else {
11611170 // 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 ());
11751178 }
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 ;
11801179 }
11811180 }
1182- if (aliases == null ) {
1183- return null ;
1184- }
11851181 return aliases .toArray (Strings .EMPTY_ARRAY );
11861182 }
11871183 }
0 commit comments