apache / apache/datafusion-sqlparser-rs
Unable to parse 'max' for optional precision column with MS Sql dialect
- Linguagem predominante
- Rust
- Estrelas
- 3.5k
- Forks
- 774
- Merge médio
- 4d 9h
- PRs com merge (30d)
- 17
Descrição
The following is a valid MS Sql query, but cannot ne parsed due to the `varbinary` implementation.
Variable character-based columns, `nvarchar` and `varchar`, use a union type `CharacterLength` type that allows for either `IntegerLength` or `Max` values. The `varbinary` implementation needs a similar union, such as `BinaryLength` (reusing `CharacterLength` seems to have a naming mismatch).
```
#[test]
fn parse_ms_sql_varbinary_max(){
let sql = "CREATE TABLE example(VarBinaryMaxCol varbinary(max) not null);";
let parsed = ms().parse_sql_statements(sql);
assert!(parsed.is_ok());
}
```
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Direção de pesquisa
Comece pela implementação de varbinary e compare-a com o tratamento de CharacterLength descrito na issue. Execute o teste fornecido parse_ms_sql_varbinary_max; concluído significa que a instrução MS SQL CREATE TABLE com varbinary(max) é analisada com sucesso.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- rust
- Domínio
- databases
- Tipo de issue
- Bug
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Status de atividade
- Estagnada
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 55/100