duck_tails
Intelligente Entwicklungsunterstützung für DuckDB – Git-bewusste Datenanalyse, mit der Sie die Git-Historie abfragen, auf Dateien in jeder Revision zugreifen und versionsbewusste Datenanalyse mit SQL durchführen können.
Maintainer: teaguesterling
Installation und Laden
INSTALL duck_tails FROM community;LOAD duck_tails;Beispiel
-- Load the extensionLOAD 'duck_tails';
-- Query git history (defaults to current directory)SELECT commit_hash, author_name, message, author_dateFROM git_log() LIMIT 5;
-- Access files from git repository at specific revisionsSELECT * FROM read_csv('git://data/sales.csv@HEAD');
-- Compare data between commitsSELECT COUNT(*) FROM read_csv('git://data/sales.csv@HEAD') AS current_count, COUNT(*) FROM read_csv('git://data/sales.csv@HEAD~1') AS previous_count;
-- Analyze text differencesSELECT * FROM read_git_diff('git://README.md@HEAD', 'git://README.md@HEAD~1');Über duck_tails
Duck Tails bringt Git-bewusste Datenanalyse nach DuckDB und ermöglicht anspruchsvolle versionskontrollierte Daten-Workflows. Die Erweiterung bietet drei Kernfähigkeiten:
Git-Dateisystemzugriff: Verwenden Sie das Protokoll git://, um auf jede Datei in Ihrem Git-Repository an jedem Commit, Branch oder Tag zuzugreifen. So können Sie historische Datenzustände abfragen, Versionen vergleichen und zeitliche Analysen direkt in SQL durchführen.
Repository-Metadatenabfragen: Fragen Sie Git-Repository-Informationen direkt mit Tabellenfunktionen wie git_log(), git_branches() und git_tags() ab. Analysieren Sie Commit-Historien, verfolgen Sie Entwicklungsmuster und integrieren Sie Repository-Metadaten in Ihre analytischen Workflows.
Text-Diff-Analyse: Umfassende Text-Diff-Funktionen mit diff_text(), read_git_diff() und text_diff_stats(). Analysieren Sie Änderungen zwischen Dateiversionen, verfolgen Sie Konfigurationsdrift und führen Sie Code-Change-Analysen durch.
Wichtige Funktionen:
git_log([path])- Commit-Historie abfragengit_branches([path])- Repository-Branches auflistengit_tags([path])- Repository-Tags auflistendiff_text(old, new)- Textunterschiede berechnenread_git_diff(file1, [file2])- Strukturierte Diff-Analysetext_diff_lines(diff)- Diff in zeilenweise Änderungen zerlegentext_diff_stats(old, new)- Diff-Statistiken und Metriken
Die Erweiterung unterstützt gemischte Dateisysteme, sodass Sie git://, lokale Dateien, S3 und andere von DuckDB unterstützte Protokolle in einer einzigen Abfrage kombinieren können. Gebaut mit libgit2 für robuste Git-Operationen und umfassende Fehlerbehandlung.
Hinzugefügte Funktionen
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| diff_text | scalar | NULL | NULL | |
| git_blame | table | NULL | NULL | |
| git_blame_each | table | NULL | NULL | |
| git_blame_hunks | table | NULL | NULL | |
| git_blame_hunks_each | table | NULL | NULL | |
| git_branches | table | NULL | NULL | |
| git_branches_each | table | NULL | NULL | |
| git_diff_tree | table | NULL | NULL | |
| git_diff_tree_each | table | NULL | NULL | |
| git_log | table | NULL | NULL | |
| git_log_each | table | NULL | NULL | |
| git_parents | table | NULL | NULL | |
| git_parents_each | table | NULL | NULL | |
| git_read | table | NULL | NULL | |
| git_read_each | table | NULL | NULL | |
| git_status | table | NULL | NULL | |
| git_status_each | table | NULL | NULL | |
| git_tags | table | NULL | NULL | |
| git_tags_each | table | NULL | NULL | |
| git_tree | table | NULL | NULL | |
| git_tree_each | table | NULL | NULL | |
| git_uri | scalar | NULL | NULL | |
| read_git_diff | table | NULL | NULL | |
| text_diff | scalar | NULL | NULL | |
| text_diff_lines | table | NULL | NULL | |
| text_diff_stats | scalar | NULL | NULL |
Überladene Funktionen
Diese Erweiterung fügt keine Funktionsüberladungen hinzu.
Hinzugefügte Typen
Diese Erweiterung fügt keine Typen hinzu.
Hinzugefügte Einstellungen
Diese Erweiterung fügt keine Einstellungen hinzu.