@Override
 public CompoundExplainer getExplainer(ExplainContext context) {
   Attributes atts = new Attributes();
   atts.put(Label.NAME, PrimitiveExplainer.getInstance(getName()));
   atts.put(Label.LIMIT, PrimitiveExplainer.getInstance(limit));
   atts.put(Label.INPUT_OPERATOR, inputOperator.getExplainer(context));
   return new CompoundExplainer(Type.LIMIT_OPERATOR, atts);
 }
  @Override
  public CompoundExplainer getExplainer(ExplainContext context) {
    Attributes att = new Attributes();

    att.put(Label.NAME, PrimitiveExplainer.getInstance(getName()));
    att.put(Label.SCAN_OPTION, PrimitiveExplainer.getInstance(cursorCreator.describeRange()));
    TableName rootName = cursorCreator.group().getRoot().getName();
    att.put(Label.TABLE_SCHEMA, PrimitiveExplainer.getInstance(rootName.getSchemaName()));
    att.put(Label.TABLE_NAME, PrimitiveExplainer.getInstance(rootName.getTableName()));
    return new CompoundExplainer(Type.SCAN_OPERATOR, att);
  }
 @Override
 public CompoundExplainer getExplainer(ExplainContext context) {
   Attributes atts = new Attributes();
   atts.put(Label.NAME, PrimitiveExplainer.getInstance(getName()));
   atts.put(Label.BINDING_POSITION, PrimitiveExplainer.getInstance(bindingPosition));
   atts.put(Label.INPUT_OPERATOR, input.getExplainer(context));
   atts.put(Label.INPUT_OPERATOR, onPositive.getExplainer(context));
   for (TPreparedExpression field : tFields) {
     atts.put(Label.EXPRESSIONS, field.getExplainer(context));
   }
   atts.put(Label.PIPELINE, PrimitiveExplainer.getInstance(pipeline));
   return new CompoundExplainer(Type.BLOOM_FILTER, atts);
 }