apache / apache/datafusion-sqlparser-rs
Support PostgreSQL json_to_record / jsonb_to_record syntax
- Langage dominant
- Rust
- Étoiles
- 3.5k
- Forks
- 772
- Merge moyen
- 4 j 9 h
- PR mergées (30 j)
- 17
Description
### 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)
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par reproduire l’exemple SQL avec PostgreSqlDialect et consultez la documentation de PostgreSQL pour json_to_record et jsonb_to_record. C’est terminé lorsque les deux formes sont analysées correctement au lieu de lever ParseError, y compris la liste de définitions de colonnes présentée dans l’exemple.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- postgresql, rust
- Domaine
- databases
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100