コード例 #1
0
  @Override
  public BasicNodeIter iter(final QueryContext qc) {
    final boolean text = index.type() == IndexType.TEXT;
    final byte kind = text ? Data.TEXT : Data.ATTR;
    final Data data = ictx.data;
    final int ml = data.meta.maxlen;
    final IndexIterator ii =
        index.min.length <= ml
                && index.max.length <= ml
                && (text ? data.meta.textindex : data.meta.attrindex)
            ? data.iter(index)
            : scan();

    return new BasicNodeIter() {
      @Override
      public ANode next() {
        return ii.more() ? new DBNode(data, ii.pre(), kind) : null;
      }
    };
  }
コード例 #2
0
 @Override
 public String toString() {
   final boolean text = index.type() == IndexType.TEXT;
   final Function func = text ? Function._DB_TEXT_RANGE : Function._DB_ATTRIBUTE_RANGE;
   return func.toString(Str.get(ictx.data.meta.name), Str.get(index.min), Str.get(index.max));
 }
コード例 #3
0
 @Override
 public void plan(final FElem plan) {
   addPlan(
       plan,
       planElem(DATA, ictx.data.meta.name, MIN, index.min, MAX, index.max, TYP, index.type()));
 }