Zum Inhalt springen

PEG-Parser

DuckDB v1.5 hat einen experimentellen Parser auf Basis von PEG (Parser Expression Grammars) ausgeliefert. Der neue Parser ermöglicht bessere Vorschläge, verbesserte Fehlermeldungen und erlaubt Erweiterungen, die Grammatik zu ergänzen. Der PEG-Parser ist derzeit standardmäßig deaktiviert, Sie können ihn jedoch so aktivieren:

CALL enable_peg_parser();

Der PEG-Parser wird bereits zur Erzeugung von Vorschlägen verwendet. Mit TAB können Sie die Optionen durchlaufen.

«animals_db» D FROM ducks WHERE habitat IS
IS ISNULL ILIKE ⌊ININTERSECT LIKE

Wir planen, mit der Veröffentlichung von DuckDB v2.0 auf den neuen Parser umzustellen.

Als Kompromiss hat der Parser einen geringen Leistungsverlust; dieser liegt jedoch im Bereich von Millisekunden und ist für analytische Abfragen daher vernachlässigbar. Weitere Details zur Begründung für einen PEG-Parser und Benchmark-Ergebnisse finden Sie im CIDR-2026-Paper von Hannes Mühleisen und Mark Raasveldt oder in ihrem Blogbeitrag, der das Paper zusammenfasst.