apache / apache/datafusion-sqlparser-rs

Support PostgreSQL json_to_record / jsonb_to_record syntax

Aperta
#1,375 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
3.5k
Fork
772
Merge medio
4g 9h
PR unite (30g)
17

Descrizione

### 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)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia riproducendo l'esempio SQL con PostgreSqlDialect e consulta la documentazione di PostgreSQL per json_to_record e jsonb_to_record. Il lavoro è completato quando entrambe le forme vengono analizzate correttamente invece di generare ParseError, inclusa la lista di definizione delle colonne mostrata nell'esempio.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
postgresql, rust
Ambito
databases
Tipo di issue
Funzionalità
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.