apache / apache/datafusion-sqlparser-rs
Allow to override all the `parser..` methods.
- Linguagem predominante
- Rust
- Estrelas
- 3.5k
- Forks
- 772
- Merge médio
- 4d 9h
- PRs com merge (30d)
- 17
Descrição
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;
}
...
...
```
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Direção de pesquisa
Comece pelo parse_statement override existente mostrado na issue e, em seguida, inspecione parse_table_and_joins e a dialect interface para identificar como os parser methods são despachados. Defina o conjunto completo de métodos que devem ser sobrescrevíveis e verifique se o parsing compatível continua funcionando enquanto um dialect pode interceptar esses entry points.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- postgresql, rust, sql
- Domínio
- databases
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 32/100