mozilla/mentat

Extend query builder to allow composing parts of the query

Open

#649 aberto em 20 de abr. de 2018

Ver no GitHub
 (3 comments) (0 reactions) (0 assignees)Rust (116 forks)github user discovery
A-queryenhancementgood first bughelp wanted

Métricas do repositório

Stars
 (1.661 stars)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

Right now, the query builder takes a blob of EDN and allows to bind values. I would like to be able to compose the parts of the query in a granular fashion. By manipulating the string, I hacked in support for :order and :limit, but I'd like to be able to say

let qb = QueryBuilder::new();
qb.add_find("?x ?y");
qb.add_where("[?x :is 10]");
if limit {
  qb.set_limit("20");
}
if sort {
  qb.set_order("?y ?x");
}

I think that parsing any string given to the QueryBuilder into a FindQuery up front, and then updating the FindQuery with the builder pattern, should do the trick.

This is follow-up to https://github.com/mozilla/mentat/pull/602.

Guia do colaborador