Dejadoc & code duplication

未關閉
#2,698 0 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
45/100
Issue 類型
重構
描述清晰度
基本清楚
活躍度
活躍
技術堆疊
rust
領域
backend, databases

研究方向

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.

由索引模型根據 Issue 內容生成。

描述

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.

主要語言
Rust
星號
3.5k
分支
805
平均合併
2 天 3 小時
30 天內合併 PR
116

環境準備

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 有 Pull Request 範本
  • 沒有貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

apache/datafusion-sqlparser-rs 的其他 Issue

查看 apache/datafusion-sqlparser-rs 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。