/*
 *  call-seq;
 *     query.eql?(other_query) -> bool
 *     query == other_query -> bool
 *
 *  Return true if +query+ equals +other_query+. Theoretically, two queries are
 *  equal if the always return the same results, no matter what the contents
 *  of the index. Practically, however, this is difficult to implement
 *  efficiently for queries like BooleanQuery since the ordering of clauses
 *  unspecified. "Ruby AND Rails" will not match "Rails AND Ruby" for example,
 *  although their result sets will be identical. Most queries should match as
 *  expected however.
 */
static VALUE
frt_q_eql(VALUE self, VALUE other)
{
    GET_Q();
    Query *oq;
    Data_Get_Struct(other, Query, oq);
    return q->eq(q, oq) ? Qtrue : Qfalse;
}