Dejadoc & code duplication

Ouverte
#2,698 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
45/100
Type d'issue
Refactorisation
Clarté
Plutôt claire
Activité
Active
Stack technique
rust
Domaine
backend, databases

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Rust
Étoiles
3.5k
Forks
805
Merge moyen
2 j 3 h
PR mergées (30 j)
116

Préparer son environnement

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de apache/datafusion-sqlparser-rs

Toutes les issues de apache/datafusion-sqlparser-rs

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.