Deduplicate parsing

Aberta
#608 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 10 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
55/100
Tipo de issue
Refatoração
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
backend, performance

Direção de pesquisa

Start by tracing execute_with_reader(), validate(), and prepare_data_with_reader() to see where each builds the source tree and AST. Work out how those parsed values could be reused across the calls; done means the same query is parsed once while dispatch, validation, and data preparation still work correctly.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

This issue is an extract from https://github.com/posit-dev/ggsql/pull/558#issuecomment-6597261929
We parse and build the AST several times. If we look at execute_with_reader():

  • It builds the source tree, builds the AST for dispatch purposes and calls validate()
  • validate() itself also rebuilds the source tree and the AST internally (for the 2nd time)
  • execute_with_reader() passes the query on prepare_data_with_reader(), not the source tree / AST that were already build. It also does parsing and AST building (for the 3rd time).
Linguagem predominante
Rust
Estrelas
572
Forks
31
Merge médio
9d 4h
PRs com merge (30d)
12

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de posit-dev/ggsql

Todas as issues de posit-dev/ggsql

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.