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 extension
LOAD 'duck_tails';
-- Query git history (defaults to current directory)
SELECT commit_hash, author_name, message, author_date
FROM git_log() LIMIT 5;
-- Access files from git repository at specific revisions
SELECT * FROM read_csv('git://data/sales.csv@HEAD');
-- Compare data between commits
SELECT 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 differences
SELECT * 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 abfragen
  • git_branches([path]) - Repository-Branches auflisten
  • git_tags([path]) - Repository-Tags auflisten
  • diff_text(old, new) - Textunterschiede berechnen
  • read_git_diff(file1, [file2]) - Strukturierte Diff-Analyse
  • text_diff_lines(diff) - Diff in zeilenweise Änderungen zerlegen
  • text_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.