Examples of QueryCantBeHandled


Examples of org.persvr.data.QueryCantBeHandled

      if (expression.getLastChild().getType() == Token.STRING && expression.getFirstChild().getType() == Token.THIS)
        name = expression.getLastChild().getString();
    }

    if (name == null)
      throw new QueryCantBeHandled("The first operand in a comparison must be a simple property of the form @.property");
    if ("id".equals(name))
      return "id=" + new Long(valueNode.getString());
    int fieldType;
    Object value = null;
    switch (conditionType) {
      case Token.EQ:
      case Token.SHEQ:
        operator = "=";
        break;
      case Token.NE:
      case Token.SHNE:
        operator = "!=";
        break;
      case Token.GE:
        operator = ">=";
        break;
      case Token.GT:
        operator = ">";
        break;
      case Token.LE:
        operator = "<=";
        break;
      case Token.LT:
        operator = "<";
        break;
    }
    sql.append(nameInQuery(name));
    switch (valueNode.getType()) {
      case Token.NUMBER:
        sql.append(numberComparisonInQuery(valueNode.getDouble(),operator));
        break;
      case Token.STRING:
       
        if (valueNode.getType() == Token.STRING) {
          value = valueNode.getString();
        }
        // fall through for big num
        if (!"=".equals(operator) && !"!=".equals(operator))
          throw new QueryCantBeHandled("Can only do equal comparison with strings");
        sql.append(stringComparisonInQuery((String)value));
        break;
      default:
        throw new QueryCantBeHandled("Unknown token");
    }
    return sql.toString();
  }
View Full Code Here

Examples of org.persvr.data.QueryCantBeHandled

        } catch (QueryCantBeHandled e) {
          // try it the other way then
          return comparison(condition.getLastChild(), condition.getFirstChild(), condition.getType());
        }
      default:
        throw new QueryCantBeHandled();
    }
  }
View Full Code Here

Examples of org.persvr.data.QueryCantBeHandled

  }
  public Collection query(Query query) throws Exception {
    if ("".equals(query.subObjectId) && query.getCondition() == null && query.getSort() == null){
      return objects;
    }
    throw new QueryCantBeHandled("Can't handle any queries for InMemorySource");
  }
View Full Code Here

Examples of org.persvr.data.QueryCantBeHandled

      // check to make sure we can handle the query
      try {
        Traverser traverser = createTraverser(query.getCondition(), getId());
        if(query.getSort() != null && traverser.estimatedSize(0) < Math.sqrt(getDatabase().getTraverserForTable(getId(), "id").estimatedSize(0)))
          // TODO: We also need to check to see if the sourceTraverser is already in the correct order, or can be sorted by simply reversing it
          throw new QueryCantBeHandled("Sort more efficient to be handled by an iterator");
      } catch (IOException e) {
        throw new RuntimeException(e);
      }
      this.query = query;
    }
View Full Code Here

Examples of org.persvr.data.QueryCantBeHandled

          case Token.SHEQ:
            String property;
            Object value;
            try {
              if(!(expression.getFirstChild().getType() == Token.GETPROP && expression.getFirstChild().getFirstChild().getType() == Token.THIS))
                throw new QueryCantBeHandled("Can't handle non-direct property comparisons");
              property = expression.getFirstChild().getLastChild().getString();
              Node valueNode = expression.getLastChild();
              switch(valueNode.getType()){
                case Token.STRING:
                  value = valueNode.getString();
                  break;
                case Token.NUMBER:
                  value = valueNode.getDouble();
                  break;
                case Token.NULL:
                  value = null;
                  break;
                case Token.TRUE:
                  value = true;
                  break;
                case Token.FALSE:
                  value = false;
                  break;
                case Token.AND:
                  if(valueNode.getLastChild().getType() == Token.GETPROP && "__ids__".equals(valueNode.getLastChild().getFirstChild().getString())){
                    value = Identification.idForString(valueNode.getFirstChild().getString());
                    break;
                  }
                  throw new QueryCantBeHandled("unknown value type");
                case Token.CALL:
                  if(valueNode.getFirstChild().getType() == Token.NAME &&
                      "date".equals(valueNode.getFirstChild().getString())){
                    value = new Date((long) valueNode.getLastChild().getDouble());
                    break;
                  }
                default:
                  throw new QueryCantBeHandled("unknown value type");
              }
            } catch (RuntimeException e) {
              throw new QueryCantBeHandled("not valid structure");
            }
            IndexTraverser traverser = getDatabase().getTraverserForTable(table, property);
            switch(expression.getType()){   
              case Token.SHNE:
              case Token.NE:
              case Token.SHEQ:
              case Token.EQ:
                traverser.minKey = value;
                traverser.maxKey = value;
                break;
              case Token.GE:
                traverser.minKey = value;
                break;
              case Token.GT:
                traverser.minReference = JavaScriptDB.MAX_MAX_REFERENCE;
                traverser.minKey = value;
                break;
              case Token.LE:
                traverser.maxKey = value;
                break;
              case Token.LT:
                traverser.maxKey = value;
                traverser.maxReference = JavaScriptDB.MIN_MIN_REFERENCE;
            }
            return not ? new NotTraverser(traverser, table) : traverser;
          default:
            throw new QueryCantBeHandled("Unknown expression");
        }
      } catch (IOException e) {
        throw new RuntimeException(e);
      }
    }
View Full Code Here

Examples of org.persvr.data.QueryCantBeHandled

    @Override
    public Iterator<Persistable> iterator() {
      try {
        Traverser traverser = createTraverserWithSubclasses(query.getCondition(), JavaScriptDBSource.this);
        if(traverser == null)
          throw new QueryCantBeHandled("Property hasn't been indexed");
        if(query.getSort() != null){
          //TODO: only handle simple sorts
          traverser = createSortedTraverserWithSubclasses(query.getSort(), traverser);
        }
        traverser.advance(start);
View Full Code Here

Examples of org.persvr.data.QueryCantBeHandled

    }
    public int size() {
      try {
        Traverser traverser = createTraverserWithSubclasses(query.getCondition(), JavaScriptDBSource.this);
        if(traverser == null)
          throw new QueryCantBeHandled("Property hasn't been indexed");
        return (int) traverser.size();
      } catch (IOException e) {
        throw new RuntimeException(e);
      }
    }
View Full Code Here

Examples of org.persvr.data.QueryCantBeHandled

    }
    public long estimatedSize(long exactWithin) {
      try {
        Traverser traverser = createTraverserWithSubclasses(query.getCondition(), JavaScriptDBSource.this);
        if(traverser == null)
          throw new QueryCantBeHandled("Property hasn't been indexed");
        return traverser.estimatedSize(exactWithin);
      } catch (IOException e) {
        throw new RuntimeException(e);
      }
    }
View Full Code Here

Examples of org.persvr.data.QueryCantBeHandled

          + " AND value IN (SELECT id FROM obj WHERE field != ':isDeleted' ");
    }
    if (query.getCondition() != null)
      sql.append(" AND ").append(addConditionToQuery(query.getCondition()));
    if (query.getSort() != null)
      throw new QueryCantBeHandled();
    boolean useCachedCount = false;
    if (rootQuery){
      sql.append((sql.toString().endsWith("WHERE ") ? "": " AND ") + "id >= " + startingId + " AND id < "
          + endingId);
      if(query.getCondition() == null){
View Full Code Here

Examples of org.persvr.data.QueryCantBeHandled

    else
      sql.append(')');
    return useCachedCount ? new QueryIterator(selectPart + sql, tableSize) : new QueryIterator(selectPart + sql, "SELECT COUNT(DISTINCT id) " + sql);
  }
  protected String addBooleanOperator(String operator, Node condition) throws SQLException{
    throw new QueryCantBeHandled("Can't do AND or OR expressions in SQL with the object database");
  }
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.