Dejadoc & code duplication

Aberta
#2,698 0 comentários 1 reação 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

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

Direção de pesquisa

Start with the listed duplicate blocks in src/ast, src/dialect, and src/parser, then review the paired dialect test cases under tests/. The issue asks for cleanup based on dejadoc’s matches and explicitly says to preserve dialect-specific assertions. Done means consolidating appropriate repeated code or tests while retaining those cases; the broad list spans many parser areas.

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

Descrição

BigQuery ClickHouse DuckDB MySQL PostgreSQL Snowflake Spark SQL Server SQLite

Over the past couple of weeks I have been working on dejadoc, which is a tool to find exact code duplications. It started out as a tool to find duplicated doctests, which is where it guarantees 100% accuracy, but then I just continued to have a few ideas and now it is a general code duplication tool specialized for Rust.

TL;DR: it does reduction to canonical form followed by execution graph isomorphisms for each context block larger than a given size.

I hope it is interesting, and will likely lead to some cleaup.

Ciao,
Luca

Parser, dialects, and AST
Tests

Any consolidation should retain the dialect-specific cases and assertions. A lexical match alone does not justify deleting coverage.

Benchmarks

Review whether sharing setup would change what each benchmark measures.

Linguagem predominante
Rust
Estrelas
3.5k
Forks
805
Merge médio
2d 3h
PRs com merge (30d)
116

Preparar o ambiente

  • Sem Dockerfile nem arquivo Docker Compose
  • Tem um modelo de pull request
  • Sem guia de contribuição

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 apache/datafusion-sqlparser-rs

Todas as issues de apache/datafusion-sqlparser-rs

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.