apache / apache/datafusion-sqlparser-rs

Unable to parse 'max' for optional precision column with MS Sql dialect

Aberta
#1,714 0 comentários 0 reações 0 responsáveis Ver no GitHub
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

Receba novas issues na sua caixa de entrada

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