Examples of OQueryOperator


Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

  private void analyzeQueryBranch(final OClass iSchemaClass, final OSQLFilterCondition iCondition,
      final List<OSearchInIndexTriple> iSearchInIndexTriples) {
    if (iCondition == null)
      return;

    final OQueryOperator operator = iCondition.getOperator();
    if (operator == null)
      if (iCondition.getLeft() != null && iCondition.getRight() == null) {
        analyzeQueryBranch(iSchemaClass, (OSQLFilterCondition) iCondition.getLeft(), iSearchInIndexTriples);
        return;
      } else {
        return;
      }

    final OIndexReuseType indexReuseType = operator.getIndexReuseType(iCondition.getLeft(), iCondition.getRight());
    if (indexReuseType.equals(OIndexReuseType.ANY_INDEX)) {
      analyzeQueryBranch(iSchemaClass, (OSQLFilterCondition) iCondition.getLeft(), iSearchInIndexTriples);
      analyzeQueryBranch(iSchemaClass, (OSQLFilterCondition) iCondition.getRight(), iSearchInIndexTriples);
    } else if (indexReuseType.equals(OIndexReuseType.INDEX_METHOD)) {
      if (!searchIndexedProperty(iSchemaClass, iCondition, iCondition.getLeft(), iSearchInIndexTriples))
View Full Code Here

Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

      final Object right = compiledFilter.getRootCondition().getRight();
      final Object keyValue = OSQLHelper.getValue(right);

      Collection<OIdentifiable> result = null;
      final OQueryOperator indexOperator = compiledFilter.getRootCondition().getOperator();
      if (indexOperator instanceof OQueryOperatorBetween) {
        final Object[] values = (Object[]) compiledFilter.getRootCondition().getRight();

        if (projections != null && projections.size() == 1 && projections.keySet().iterator().next().equalsIgnoreCase("@rid")) {
          // SPECIAL CASE
View Full Code Here

Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

    if (right instanceof OSQLFilterCondition)
      // ANALYSE RIGHT RECURSIVELY
      optimizeBranch(iCondition, (OSQLFilterCondition) right);

    final OQueryOperator oper = iCondition.getOperator();

    Object result = null;

    if (left instanceof OSQLFilterItemField & right instanceof OSQLFilterItemField) {
      if (((OSQLFilterItemField) left).getName().equals(((OSQLFilterItemField) right).getName())) {
View Full Code Here

Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

  public void optimize(OSQLFilter filter, OIndexSearchResult indexMatch) {
    filter.setRootCondition(optimize(filter.getRootCondition(), indexMatch));
  }

  private OSQLFilterCondition optimize(OSQLFilterCondition condition, OIndexSearchResult indexMatch) {
    OQueryOperator operator = condition.getOperator();
    while (operator == null) {
      if (condition.getRight() == null && condition.getLeft() instanceof OSQLFilterCondition) {
        condition = (OSQLFilterCondition) condition.getLeft();
        operator = condition.getOperator();
      } else {
        return condition;
      }
    }

    final OIndexReuseType reuseType = operator.getIndexReuseType(condition.getLeft(), condition.getRight());
    switch (reuseType) {
    case INDEX_METHOD:
      if (isCovered(indexMatch, operator, condition.getLeft(), condition.getRight())
          || isCovered(indexMatch, operator, condition.getRight(), condition.getLeft())) {
        return null;
View Full Code Here

Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

  private OIndexSearchResult analyzeFilterBranch(final OClass iSchemaClass, OSQLFilterCondition condition,
      final List<OIndexSearchResult> iIndexSearchResults, OCommandContext iContext) {
    if (condition == null)
      return null;

    OQueryOperator operator = condition.getOperator();

    while (operator == null) {
      if (condition.getRight() == null && condition.getLeft() instanceof OSQLFilterCondition) {
        condition = (OSQLFilterCondition) condition.getLeft();
        operator = condition.getOperator();
      } else {
        return null;
      }
    }

    final OIndexReuseType indexReuseType = operator.getIndexReuseType(condition.getLeft(), condition.getRight());
    switch (indexReuseType) {
    case INDEX_INTERSECTION:
      return analyzeIntersection(iSchemaClass, condition, iIndexSearchResults, iContext);
    case INDEX_METHOD:
      return analyzeIndexMethod(iSchemaClass, condition, iIndexSearchResults);
View Full Code Here

Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

    }
    boolean added;
    do {
      added = false;
      scan: for (final Iterator<OQueryOperator> it = operators.iterator(); it.hasNext();) {
        final OQueryOperator candidate = it.next();
        for (final Pair pair : pairs) {
          if (pair.after == candidate) {
            continue scan;
          }
        }
View Full Code Here

Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

    while (parserSkipWhiteSpaces()) {

      if (!parserIsEnded() && parserGetCurrentChar() == ')')
        return currentCondition;

      final OQueryOperator nextOperator = extractConditionOperator();
      if (nextOperator == null)
        return currentCondition;

      if (nextOperator.precedence > currentCondition.getOperator().precedence) {
        // SWAP ITEMS
View Full Code Here

Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

    Object left = extractConditionItem(true, 1);

    if (left != null && checkForEnd(left.toString()))
      return null;

    OQueryOperator oper;
    final Object right;

    if (left instanceof OQueryOperator && ((OQueryOperator) left).isUnary()) {
      oper = (OQueryOperator) left;
      left = extractConditionItem(false, 1);
View Full Code Here

Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

    if (operatorPos == -1) {
      parserGoBack();
      return null;
    }

    final OQueryOperator op = operators[operatorPos];
    if (op.expectsParameters) {
      // PARSE PARAMETERS IF ANY
      parserGoBack();

      parserNextWord(true, " 0123456789'\"");
      final String word = parserGetLastWord();

      final List<String> params = new ArrayList<String>();
      // CHECK FOR PARAMETERS
      if (word.length() > op.keyword.length() && word.charAt(op.keyword.length()) == OStringSerializerHelper.EMBEDDED_BEGIN) {
        int paramBeginPos = parserGetCurrentPosition() - (word.length() - op.keyword.length());
        parserSetCurrentPosition(OStringSerializerHelper.getParameters(parserText, paramBeginPos, -1, params));
      } else if (!word.equals(op.keyword))
        throw new OQueryParsingException("Malformed usage of operator '" + op.toString() + "'. Parsed operator is: " + word);

      try {
        // CONFIGURE COULD INSTANTIATE A NEW OBJECT: ACT AS A FACTORY
        return op.configure(params);
      } catch (Exception e) {
        throw new OQueryParsingException("Syntax error using the operator '" + op.toString() + "'. Syntax is: " + op.getSyntax());
      }
    } else
      parserMoveCurrentPosition(+1);
    return op;
  }
View Full Code Here

Examples of com.orientechnologies.orient.core.sql.operator.OQueryOperator

    } else if (right instanceof OSQLFunctionRuntime) {
      right = optimizeFunction((OSQLFunctionRuntime) right);
      iCondition.setRight(right);
    }

    final OQueryOperator oper = iCondition.getOperator();

    Object result = null;

    if (left instanceof OSQLFilterItemField && right instanceof OSQLFilterItemField) {
      if (((OSQLFilterItemField) left).getRoot().equals(((OSQLFilterItemField) right).getRoot())) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.