Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
New
Description
Discussed on thread: http://markmail.org/thread/gjqk35t7e3y4fo5j
"QueryNode(s) are data objects, and it makes sense to override
their equals method. But before, we need to define what is a QueryNode
equality. Should two nodes be considered equal if they represent
syntactically or semantically the same query? e.g. an ORQueryNode created
from the query <a OR b OR c> will not have the same children ordering as the
query <b OR c OR a>, so they are syntactically not equal, but they are
semantically equal, because the order of the OR operands (usually) does not
matter when the query is executed. I say it usually does not matter, because
it's up to the Query object implementation built from that ORQueryNode
object, for this reason, I vote for defining that two query nodes should be
equals if they are syntactically equal.
I also vote for excluding query node tags from the equality check, because
they are not meant to represent the query structure, but to attach extra
info to the node, which is usually used for communication between
processors."