lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Susheel Kumar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-10945) Get expression fails to operate on sort expr
Date Thu, 29 Jun 2017 14:51:00 GMT

    [ https://issues.apache.org/jira/browse/SOLR-10945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16068433#comment-16068433
] 

Susheel Kumar commented on SOLR-10945:
--------------------------------------

Hi Joel - I looked the code to debug this issue and here is what i found

The above two expressions (...merge(get(a)... or ...merge(sort(get(a)...) which are similar
(mathematically/syntactically/functionally) as a whole,  but the one which fails where merge
is passed get(a) directly, results into error since GetStream is passed in the merge init
method and GetStream.getStreamSort() method returns null (below) while in the other case SortStream
is passed  its getStreamSort() method returns proper comparator.  

Wondering how can we handle this either by passing StreamComparator to GetStream (and how)
or do something in merge to not upfront check.  Please share your thoughts

  /** Return the stream sort - ie, the order in which records are returned */
  public StreamComparator getStreamSort(){
    return null;
  }

MergeStream
--
 private void init(StreamComparator comp, TupleStream ... streams) throws IOException {
    
    // All streams must both be sorted so that comp can be derived from
    for(TupleStream stream : streams){
      if(!comp.isDerivedFrom(stream.getStreamSort())){
        throw new IOException("Invalid MergeStream - all substream comparators (sort) must
be a superset of this stream's comparator.");
      }
    }

> Get expression fails to operate on sort expr
> --------------------------------------------
>
>                 Key: SOLR-10945
>                 URL: https://issues.apache.org/jira/browse/SOLR-10945
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: search
>    Affects Versions: 6.6
>            Reporter: Susheel Kumar
>            Priority: Minor
>
> Get expr fails to operate on a variable which has sort stream and returns "Invalid MergeStream
- all substream comparators (sort) must be a superset of this stream's comparator." Exception
tuple.
> Below get is given variable a and b which are having sort expr and fails to work
> ==
> let(
> a=sort(select(tuple(id=3,email="C"),id,email),by="id asc,email asc"),
> b=sort(select(tuple(id=2,email="B"),id,email),by="id asc,email asc"),
> c=merge(get(a),get(b),on="id asc,email asc"),
> get(c)
> )
> {
>   "result-set": {
>     "docs": [
>       {
>         "EXCEPTION": "Invalid MergeStream - all substream comparators (sort) must be
a superset of this stream's comparator.",
>         "EOF": true
>       }
>     ]
>   }
> }
> while below sort outside get works
> ==
> let(
> a=select(tuple(id=3,email="C"),id,email),
> b=select(tuple(id=2,email="B"),id,email),
> c=merge(sort(get(a),by="id asc,email asc"),sort(get(b),by="id asc,email asc"),
> on="id asc,email asc"),
> get(c)
> )
> {
>   "result-set": {
>     "docs": [
>       {
>         "email": "B",
>         "id": "2"
>       },
>       {
>         "email": "C",
>         "id": "3"
>       },
>       {
>         "EOF": true,
>         "RESPONSE_TIME": 0
>       }
>     ]
>   }
> }



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message