Skip to content

Commit 2729630

Browse files
authored
parser: add AsName node for column aliases / column labels (#689)
1 parent 95e3d88 commit 2729630

15 files changed

+418
-307
lines changed

crates/squawk_parser/src/generated/syntax_kind.rs

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/squawk_parser/src/grammar.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4714,23 +4714,23 @@ fn opt_target_el(p: &mut Parser) -> Option<CompletedMarker> {
47144714
Some(m.complete(p, TARGET))
47154715
}
47164716

4717-
fn opt_as_col_label(p: &mut Parser<'_>) -> bool {
4717+
fn opt_as_col_label(p: &mut Parser<'_>) {
4718+
let m = p.start();
47184719
if p.eat(AS_KW) {
47194720
if p.at_ts(COL_LABEL_FIRST) {
47204721
col_label(p);
4721-
true
4722+
m.complete(p, AS_NAME);
47224723
} else {
47234724
p.err_and_bump(&format!("expected column label, got {:?}", p.current()));
4724-
false
4725+
m.abandon(p);
47254726
}
4727+
} else if p.at(FORMAT_KW) && p.nth_at(1, JSON_KW) {
4728+
m.abandon(p);
4729+
} else if p.at_ts(BARE_COL_LABEL_FIRST) {
4730+
col_label(p);
4731+
m.complete(p, AS_NAME);
47264732
} else {
4727-
if p.at(FORMAT_KW) && p.nth_at(1, JSON_KW) {
4728-
return true;
4729-
}
4730-
if p.at_ts(BARE_COL_LABEL_FIRST) {
4731-
col_label(p);
4732-
}
4733-
true
4733+
m.abandon(p);
47344734
}
47354735
}
47364736

crates/squawk_parser/tests/snapshots/tests__create_materialized_view_ok.snap

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,10 +253,11 @@ SOURCE_FILE
253253
LITERAL
254254
STRING "'country'"
255255
WHITESPACE " "
256-
AS_KW "as"
257-
WHITESPACE " "
258-
NAME
259-
IDENT "\"country\""
256+
AS_NAME
257+
AS_KW "as"
258+
WHITESPACE " "
259+
NAME
260+
IDENT "\"country\""
260261
WHITESPACE " \n "
261262
FROM_CLAUSE
262263
FROM_KW "from"

crates/squawk_parser/tests/snapshots/tests__create_view_ok.snap

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@ SOURCE_FILE
5252
LITERAL
5353
STRING "'Hello World'"
5454
WHITESPACE " "
55-
AS_KW "AS"
56-
WHITESPACE " "
57-
NAME
58-
IDENT "hello"
55+
AS_NAME
56+
AS_KW "AS"
57+
WHITESPACE " "
58+
NAME
59+
IDENT "hello"
5960
SEMICOLON ";"
6061
WHITESPACE "\n\n"
6162
CREATE_VIEW
@@ -233,10 +234,11 @@ SOURCE_FILE
233234
IDENT "country_code"
234235
R_PAREN ")"
235236
WHITESPACE " "
236-
AS_KW "AS"
237-
WHITESPACE " "
238-
NAME
239-
IDENT "country"
237+
AS_NAME
238+
AS_KW "AS"
239+
WHITESPACE " "
240+
NAME
241+
IDENT "country"
240242
COMMA ","
241243
WHITESPACE "\n "
242244
TARGET
@@ -293,10 +295,11 @@ SOURCE_FILE
293295
IDENT "id"
294296
R_PAREN ")"
295297
WHITESPACE " "
296-
AS_KW "AS"
297-
WHITESPACE " "
298-
NAME
299-
IDENT "avg_rating"
298+
AS_NAME
299+
AS_KW "AS"
300+
WHITESPACE " "
301+
NAME
302+
IDENT "avg_rating"
300303
WHITESPACE "\n "
301304
FROM_CLAUSE
302305
FROM_KW "FROM"

crates/squawk_parser/tests/snapshots/tests__delete_ok.snap

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -308,10 +308,11 @@ SOURCE_FILE
308308
IDENT "login_time"
309309
R_PAREN ")"
310310
WHITESPACE " "
311-
AS_KW "as"
312-
WHITESPACE " "
313-
NAME
314-
IDENT "last_login"
311+
AS_NAME
312+
AS_KW "as"
313+
WHITESPACE " "
314+
NAME
315+
IDENT "last_login"
315316
WHITESPACE "\n "
316317
FROM_CLAUSE
317318
FROM_KW "from"

crates/squawk_parser/tests/snapshots/tests__merge_pg17_ok.snap

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -377,18 +377,20 @@ SOURCE_FILE
377377
NAME_REF
378378
IDENT "u"
379379
WHITESPACE " "
380-
AS_KW "as"
381-
WHITESPACE " "
382-
NAME
383-
IDENT "bar"
380+
AS_NAME
381+
AS_KW "as"
382+
WHITESPACE " "
383+
NAME
384+
IDENT "bar"
384385
COMMA ","
385386
WHITESPACE " "
386387
TARGET
387388
NAME_REF
388389
IDENT "t"
389390
WHITESPACE " "
390-
NAME
391-
IDENT "b"
391+
AS_NAME
392+
NAME
393+
IDENT "b"
392394
COMMA ","
393395
WHITESPACE " "
394396
TARGET

0 commit comments

Comments
 (0)