core/src/main/java/com/orientechnologies/orient/core/sql/executor/OSelectExecutionPlanner.java
private List<IndexSearchDescriptor> findPrefixes(IndexSearchDescriptor desc, List<IndexSearchDescriptor> descriptors) {
    List<IndexSearchDescriptor> result = new ArrayList<>();
    for (IndexSearchDescriptor item : descriptors) {
      if (isPrefixOf(item, desc)) {
        result.add(item);
      }
    }
    return result;
  }
private List<IndexSearchDescriptor> findPrefixes(IndexSearchDescriptor desc, List<IndexSearchDescriptor> descriptors) {
    List<IndexSearchDescriptor> result = new ArrayList<>();
    for (IndexSearchDescriptor item : descriptors) {
      if (isPrefixOf(item, desc)) {
        result.add(item);
      }
    }
    return result;
  }
private List < IndexSearchDescriptor > findPrefixes ( IndexSearchDescriptor desc , List < IndexSearchDescriptor > descriptors ) { List < IndexSearchDescriptor > result = new ArrayList <> ( ) ; for ( IndexSearchDescriptor item : descriptors ) { if ( isPrefixOf ( item , desc ) ) { result . add ( item ) ; } } return result ; }
finds prefix conditions for a given condition, eg. if the condition is on [a,b] and in the list there is another condition on
[a] or on [a,b], then that condition is returned.

@param desc
@param descriptors

@return
finds prefix conditions for a given condition eg . if the condition is on [ a b ] and in the list there is another condition on [ a ] or on [ a b ] then that condition is returned .