apache / apache/datafusion-sqlparser-rs
Allow to override all the `parser..` methods.
- Vorherrschende Sprache
- Rust
- Sterne
- 3.5k
- Forks
- 772
- Ø Merge
- 4 T. 9 Std.
- Gemergte PRs (30 T.)
- 17
Beschreibung
We are building a new RDBMS that still has only partial support for the full `SQL` dialect of Postgres.
This means that we need to parse the strings, and then rule out everything we still do not support. It will be easier and probably faster if we can do:
```rust
// As is possible here
pub fn parse_statement(&mut self) -> Result {
let _guard = self.recursion_counter.try_decrease()?;
// allow the dialect to override statement parsing
if let Some(statement) = self.dialect.parse_statement(self) {
return statement;
}
....
}
// Make at least the major components overridable:
pub fn parse_table_and_joins(&mut self) -> Result {
if let Some(result) = self.dialect.parse_table_and_joins(self) {
return result;
}
...
...
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne mit dem im Issue gezeigten vorhandenen parse_statement override und untersuche anschließend parse_table_and_joins sowie das dialect interface, um zu ermitteln, wie parser methods aufgerufen werden. Definiere die vollständige Menge der Methoden, die überschreibbar sein sollten, und überprüfe, dass das unterstützte Parsing weiterhin funktioniert, während ein dialect diese Einstiegspunkte abfangen kann.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- postgresql, rust, sql
- Bereich
- databases
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 32/100