77
88import com .google .common .collect .ImmutableList ;
99import java .util .List ;
10+ import javax .annotation .Nullable ;
1011import lombok .EqualsAndHashCode ;
1112import lombok .Getter ;
1213import lombok .RequiredArgsConstructor ;
1314import lombok .ToString ;
1415import org .opensearch .sql .ast .AbstractNodeVisitor ;
16+ import org .opensearch .sql .ast .expression .SearchExpression ;
1517
1618/**
1719 * Logical plan node for Search operation. Represents search expressions that get converted to
1820 * query_string function.
1921 */
2022@ Getter
2123@ ToString
22- @ EqualsAndHashCode (callSuper = false )
24+ @ EqualsAndHashCode (onlyExplicitlyIncluded = true , callSuper = false )
2325@ RequiredArgsConstructor
2426public class Search extends UnresolvedPlan {
2527
26- private final UnresolvedPlan child ;
27- private final String queryString ;
28+ @ EqualsAndHashCode .Include private final UnresolvedPlan child ;
29+ @ EqualsAndHashCode .Include private final String queryString ;
30+
31+ // Currently it's only for anonymizer
32+ private final @ Nullable SearchExpression originalExpression ;
33+
34+ public Search (UnresolvedPlan child , String queryString ) {
35+ this (child , queryString , null );
36+ }
2837
2938 @ Override
3039 public List <UnresolvedPlan > getChild () {
@@ -38,6 +47,6 @@ public <T, C> T accept(AbstractNodeVisitor<T, C> nodeVisitor, C context) {
3847
3948 @ Override
4049 public UnresolvedPlan attach (UnresolvedPlan child ) {
41- return new Search (child , queryString );
50+ return new Search (child , queryString , originalExpression );
4251 }
4352}
0 commit comments