apache / apache/datafusion-sqlparser-rs

Increase testing & SQL support

Aberta
#212 2 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Rust
Estrelas
3.5k
Forks
772
Merge médio
4d 9h
PRs com merge (30d)
17

Descrição

I want to write down some ideas about increasing support for commonly used SQL statement.

Some different ideas for doing more testing:

1. Add SQL corpora that should be parsed correctly. I think we can create a directory with multiple dialects with multiple corpora.
Examples can be TPCDS benchmark http://www.tpc.org/tpcds/ and other resources from different projects.
We can test two main things here:
- Whether everything parses to a statement
- When serialized (e.g. to JSON), whether it outputs the same thing as a earlier version of slqparser.
2. Increasing test coverage by adding unit tests
3. Increasing test coverage (not only when measuring coverage by line) by adding property-based tests https://github.com/BurntSushi/quickcheck https://github.com/AltSysrq/proptest
3. Add debug asserts, to make sure any assumptions about the inputs are correct. Because those are enabled during testing, they can be very helpful in general to make sure those really hold.
4. Fuzzing https://github.com/andygrove/sqlparser-rs/pull/211 . This can help with finding any edge cases in the parser which crashes without much effort.

Some great list of general testing strategies can be found here:
https://www.sqlite.org/testing.html

Any feedback, ideas on this?

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Esta issue é uma proposta ampla que abrange corpora SQL, testes unitários e baseados em propriedades, asserções de debug e fuzzing, sem indicar nenhum arquivo ou teste específico. Comece revisando os pontos de entrada atuais dos testes do parser e o trabalho de fuzzing em PR #211. Para considerar a tarefa concluída, é necessário restringir a proposta a uma mudança concreta nos testes com um resultado explícito de parsing, serialização ou fuzzing.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
rust, sql
Domínio
databases, testing-qa
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.