Atualizar Adaptador do Postgres - Geração de consultas
Básicamente no BlenDB uma consulta é representada como uma view.
A API faz o tradução dos atributos e transforma em um objeto do tipo Query.
Esse objeto do tipo Query é enviado a Engine que transforma em um Objeto do tipo View.
Uma view contém informações sobre quais dados estão disponiveis através dela (métricas e dimenções) e contém um conjunto de views filhas, que serão usadas como fonte de dados, a menos que a view seja materializada.
O algoritmo de geração de consultas recebe uma view e traduz em uma string SQL que é aceita pelo postgres. Isso é feito através de um processo recursivo, gerando as consultas das views filhas e então as usando como fonte (Tabelas) de dados.
Acredito que é possivel ao invés de gerar consultas para as views filhas e depois as utilizar como fonte de dados é possivel apenas identificar os pontos de interesse daquela view e propagar esses dados para "cima". Acredito que isso pode deixar a consulta mais eficiente além de facilitar manutenções e alterações.
A proposta dessa tarefa é encontrar a fonte real dos dados e subir essa informação e realizar apenas uma camada de JOINS apenas com as tabelas reais/materializadas.