Erstellung eines einfachen SQL-Abfrageevaluators

2025-02-19
Erstellung eines einfachen SQL-Abfrageevaluators

Dieser Beitrag beschreibt die Erstellung eines einfachen SQL-Abfrageevaluators, der grundlegende SELECT-Anweisungen verarbeiten kann. Der Autor beginnt mit der Erstellung einer einfachen Testdatenbank und verbessert dann die vorherige Arbeit an der Analyse des SQLite-Dateiformats und der SQL-Analyse, um komplexere Abfragen zu verarbeiten. Der Kern ist die Implementierung von `Operator` und `Planner`; `Operator` führt Datenbankoperationen aus, und `Planner` übersetzt die analysierte SQL-Anweisung in `Operator`. Derzeit fehlt die Unterstützung für Filterung, Sortierung, Gruppierung und Joins, aber es wird die Grundlage für das Hinzufügen dieser Funktionen gelegt. Verbesserungen am `Pager` für den gleichzeitigen Zugriff werden ebenfalls beschrieben.

Mehr lesen
Entwicklung Abfrageevaluator

Rust SQLite Parser: Erweiterung um CREATE TABLE Unterstützung

2025-02-04
Rust SQLite Parser: Erweiterung um CREATE TABLE Unterstützung

Dieser Beitrag beschreibt die Erweiterung eines Rust-basierten SQLite-Parsers um die Unterstützung von CREATE TABLE-Anweisungen. Durch das Parsen der Schema-Tabelle der Datenbank extrahiert das Programm Tabellennamen, Root-Seitennummern und Spaltennamen und -typen. Der Artikel erklärt die lexikalische Analyse, die Syntaxanalyse und den Aufbau des abstrakten Syntaxbaums (AST) und zeigt, wie die extrahierten Metadaten in der Datenbankstruktur gespeichert werden, was zu einem vollständigeren SQLite-Parser führt.

Mehr lesen
Entwicklung