protected final Item simplifyUnnecessaryComposites(Item item) { if (item == null) return null; QueryTree root = new QueryTree(item); QueryCanonicalizer.canonicalize(root); return root.getRoot() instanceof NullItem ? null : root.getRoot(); }
@Override public QueryTree parse(Parsable query) { Item root = parse(query.getQuery(), null, null, null, null, null); if (root == null) { root = new NullItem(); } return new QueryTree(root); }
@NonNull private QueryTree buildTree(OperatorNode<?> filterPart) { Preconditions.checkArgument(filterPart.getArguments().length == 2, "Expected 2 arguments to filter, got %s.", filterPart.getArguments().length); populateYqlSources(filterPart.<OperatorNode<?>> getArgument(0)); OperatorNode<ExpressionOperator> filterExpression = filterPart.getArgument(1); Item root = convertExpression(filterExpression); connectItems(); userQuery = null; return new QueryTree(root); }
private QueryTree buildTree() { Inspector inspector = SlimeUtils.jsonToSlime(this.query.getSelect().getWhereString().getBytes()).get(); if (inspector.field("error_message").valid()){ throw new QueryException("Illegal query: "+inspector.field("error_message").asString() + ", at: "+ new String(inspector.field("offending_input").asData(), StandardCharsets.UTF_8)); } Item root = walkJson(inspector); connectItems(); QueryTree newTree = new QueryTree(root); return newTree; }
@Override public final QueryTree parse(Parsable query) { Item root = null; if (query != null) { root = parse(query.getQuery(), query.getFilter(), query.getExplicitLanguage().orElse(query.getLanguage()), environment.getIndexFacts().newSession(query.getSources(), query.getRestrict()), query.getDefaultIndexName(), query); } if (root == null) { root = new NullItem(); } return new QueryTree(root); }