apache / apache/datafusion-sqlparser-rs

Support PostgreSQL json_to_record / jsonb_to_record syntax

Ouverte
#1,375 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.