mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-22 23:14:07 +00:00
add support for FOR ORDINALITY
and NESTED
in JSON_TABLE (#1493)
This commit is contained in:
parent
a5b0092506
commit
fc0e13b80e
4 changed files with 102 additions and 14 deletions
|
@ -2773,6 +2773,12 @@ fn parse_json_table() {
|
|||
r#"SELECT * FROM JSON_TABLE('[1,2]', '$[*]' COLUMNS(x INT PATH '$' ERROR ON EMPTY)) AS t"#,
|
||||
);
|
||||
mysql().verified_only_select(r#"SELECT * FROM JSON_TABLE('[1,2]', '$[*]' COLUMNS(x INT PATH '$' ERROR ON EMPTY DEFAULT '0' ON ERROR)) AS t"#);
|
||||
mysql().verified_only_select(
|
||||
r#"SELECT jt.* FROM JSON_TABLE('["Alice", "Bob", "Charlie"]', '$[*]' COLUMNS(row_num FOR ORDINALITY, name VARCHAR(50) PATH '$')) AS jt"#,
|
||||
);
|
||||
mysql().verified_only_select(
|
||||
r#"SELECT * FROM JSON_TABLE('[ {"a": 1, "b": [11,111]}, {"a": 2, "b": [22,222]}, {"a":3}]', '$[*]' COLUMNS(a INT PATH '$.a', NESTED PATH '$.b[*]' COLUMNS (b INT PATH '$'))) AS jt"#,
|
||||
);
|
||||
assert_eq!(
|
||||
mysql()
|
||||
.verified_only_select(
|
||||
|
@ -2784,14 +2790,14 @@ fn parse_json_table() {
|
|||
json_expr: Expr::Value(Value::SingleQuotedString("[1,2]".to_string())),
|
||||
json_path: Value::SingleQuotedString("$[*]".to_string()),
|
||||
columns: vec![
|
||||
JsonTableColumn {
|
||||
JsonTableColumn::Named(JsonTableNamedColumn {
|
||||
name: Ident::new("x"),
|
||||
r#type: DataType::Int(None),
|
||||
path: Value::SingleQuotedString("$".to_string()),
|
||||
exists: false,
|
||||
on_empty: Some(JsonTableColumnErrorHandling::Default(Value::SingleQuotedString("0".to_string()))),
|
||||
on_error: Some(JsonTableColumnErrorHandling::Null),
|
||||
},
|
||||
}),
|
||||
],
|
||||
alias: Some(TableAlias {
|
||||
name: Ident::new("t"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue