Issue #23: Add filters to API
Uma mudança que adiciona um novo parametro a API pode parecer simples simples, mas essa mudança é propagada a diversas partes do código.
As classes mais afetadas foram View e Query que receberam novos parametros. Os novos parametros da View afetaram o algoritmo de cobertura que índica se uma view pode ser escolhida ou não. Em resumo um view só ṕode ser escolhida se o seu conjunto de clausulas for um subconjunto da consulta a ser escolhida.
Depois disso o código do adaptador teve que ser complementado para adicionar condições a clausula WHERE que seriam os filtros.
Os filtros foram organizados em uma estutura CNF (Conjunctive normal form), em resumo um AND de ORs. Na API condições separadas por vírgulas funcionam como OR's e ponto-e-vírgula funciona como AND.
Signed-off-by: Lucas Fernandes de Oliveira lfo14@inf.ufpr.br