apache / apache/datafusion-sqlparser-rs
Allow to override all the `parser..` methods.
- Langage dominant
- Rust
- Étoiles
- 3.5k
- Forks
- 772
- Merge moyen
- 4 j 9 h
- PR mergées (30 j)
- 17
Description
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;
}
...
...
```
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par le parse_statement override existant montré dans l’issue, puis examinez parse_table_and_joins et la dialect interface afin d’identifier comment les parser methods sont dispatchées. Définissez l’ensemble complet des méthodes qui devraient pouvoir être redéfinies et vérifiez que le parsing pris en charge continue de fonctionner tandis qu’un dialect peut intercepter ces entry points.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- postgresql, rust, sql
- Domaine
- databases
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 32/100