mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-02 16:04:20 +01:00
Accept parsing SET statements with repeated names, like `.. SET (a, a) =
(1, 2)`
This commit is contained in:
@@ -802,22 +802,28 @@ cmd ::= with(C) UPDATE orconf(R) xfullname(X) indexed_opt(I) SET setlist(Y) from
|
||||
}
|
||||
%endif
|
||||
|
||||
%type reidlist {Names}
|
||||
|
||||
reidlist(A) ::= reidlist(A) COMMA nm(Y).
|
||||
{let id = Y; A.insert(id)?;}
|
||||
reidlist(A) ::= nm(Y).
|
||||
{ A = Names::new(Y); /*A-overwrites-Y*/}
|
||||
|
||||
%type setlist {Vec<Set>}
|
||||
|
||||
setlist(A) ::= setlist(A) COMMA nm(X) EQ expr(Y). {
|
||||
let s = Set{ col_names: DistinctNames::single(X), expr: Y };
|
||||
let s = Set{ col_names: Names::single(X), expr: Y };
|
||||
A.push(s);
|
||||
}
|
||||
setlist(A) ::= setlist(A) COMMA LP idlist(X) RP EQ expr(Y). {
|
||||
setlist(A) ::= setlist(A) COMMA LP reidlist(X) RP EQ expr(Y). {
|
||||
let s = Set{ col_names: X, expr: Y };
|
||||
A.push(s);
|
||||
}
|
||||
setlist(A) ::= nm(X) EQ expr(Y). {
|
||||
A = vec![Set{ col_names: DistinctNames::single(X), expr: Y }];
|
||||
A = vec![Set{ col_names: Names::single(X), expr: Y }];
|
||||
|
||||
}
|
||||
setlist(A) ::= LP idlist(X) RP EQ expr(Y). {
|
||||
setlist(A) ::= LP reidlist(X) RP EQ expr(Y). {
|
||||
A = vec![Set{ col_names: X, expr: Y }];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user