apache / apache/datafusion-sqlparser-rs
Support PostgreSQL json_to_record / jsonb_to_record syntax
- Linguagem predominante
- Rust
- Estrelas
- 3.5k
- Forks
- 774
- Merge médio
- 4d 9h
- PRs com merge (30d)
- 17
Descrição
### Current state:
`PostgreSQL` `json_to_record` / `jsonb_to_record` syntax raises a `ParseError`:
```
use sqlparser::dialect::PostgreSqlDialect;
use sqlparser::parser::Parser;
fn main() {
let sql = r#"select * from json_to_record('{"a":1,"b":[1,2,3],"c":[1,2,3],"e":"bar"}') as x(a int, b text, c int[], d text);"#;
let dialect = PostgreSqlDialect {};
let ast = Parser::parse_sql(&dialect, sql).unwrap();
println!("AST: {:?}", ast);
}
```
### Future state:
`json_to_record` / `jsonb_to_record` syntax supported.
### Additional:
As per [the postgresql docs](https://www.postgresql.org/docs/16/functions-json.html) - search for json_to_record (no deep link)
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Direção de pesquisa
Comece reproduzindo o exemplo de SQL com PostgreSqlDialect e consulte a documentação do PostgreSQL sobre json_to_record e jsonb_to_record. Considera-se concluído quando ambas as formas forem analisadas com sucesso em vez de gerar ParseError, incluindo a lista de definição de colunas mostrada no exemplo.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- postgresql, rust
- Domínio
- databases
- Tipo de issue
- Funcionalidade
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 45/100