Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions crates/squawk_parser/src/syntax_kind.rs
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,8 @@ pub enum SyntaxKind {
ENCRYPTED_KW,
/// `end`
END_KW,
/// `enforced`
ENFORCED_KW,
/// `enum`
ENUM_KW,
/// `error`
Expand Down Expand Up @@ -648,6 +650,8 @@ pub enum SyntaxKind {
NUMERIC_KW,
/// `object`
OBJECT_KW,
/// `objects`
OBJECTS_KW,
/// `of`
OF_KW,
/// `off`
Expand Down Expand Up @@ -1014,6 +1018,8 @@ pub enum SyntaxKind {
VIEW_KW,
/// `views`
VIEWS_KW,
/// `virtual`
VIRTUAL_KW,
/// `volatile`
VOLATILE_KW,
/// `when`
Expand Down Expand Up @@ -1775,6 +1781,8 @@ impl SyntaxKind {
SyntaxKind::ENCRYPTED_KW
} else if ident.eq_ignore_ascii_case("end") {
SyntaxKind::END_KW
} else if ident.eq_ignore_ascii_case("enforced") {
SyntaxKind::ENFORCED_KW
} else if ident.eq_ignore_ascii_case("enum") {
SyntaxKind::ENUM_KW
} else if ident.eq_ignore_ascii_case("error") {
Expand Down Expand Up @@ -2083,6 +2091,8 @@ impl SyntaxKind {
SyntaxKind::NUMERIC_KW
} else if ident.eq_ignore_ascii_case("object") {
SyntaxKind::OBJECT_KW
} else if ident.eq_ignore_ascii_case("objects") {
SyntaxKind::OBJECTS_KW
} else if ident.eq_ignore_ascii_case("of") {
SyntaxKind::OF_KW
} else if ident.eq_ignore_ascii_case("off") {
Expand Down Expand Up @@ -2449,6 +2459,8 @@ impl SyntaxKind {
SyntaxKind::VIEW_KW
} else if ident.eq_ignore_ascii_case("views") {
SyntaxKind::VIEWS_KW
} else if ident.eq_ignore_ascii_case("virtual") {
SyntaxKind::VIRTUAL_KW
} else if ident.eq_ignore_ascii_case("volatile") {
SyntaxKind::VOLATILE_KW
} else if ident.eq_ignore_ascii_case("when") {
Expand Down Expand Up @@ -2602,6 +2614,7 @@ pub(crate) const COLUMN_OR_TABLE_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::ENABLE_KW,
SyntaxKind::ENCODING_KW,
SyntaxKind::ENCRYPTED_KW,
SyntaxKind::ENFORCED_KW,
SyntaxKind::ENUM_KW,
SyntaxKind::ERROR_KW,
SyntaxKind::ESCAPE_KW,
Expand Down Expand Up @@ -2725,6 +2738,7 @@ pub(crate) const COLUMN_OR_TABLE_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::NULLS_KW,
SyntaxKind::NUMERIC_KW,
SyntaxKind::OBJECT_KW,
SyntaxKind::OBJECTS_KW,
SyntaxKind::OF_KW,
SyntaxKind::OFF_KW,
SyntaxKind::OIDS_KW,
Expand Down Expand Up @@ -2878,6 +2892,7 @@ pub(crate) const COLUMN_OR_TABLE_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::VERSION_KW,
SyntaxKind::VIEW_KW,
SyntaxKind::VIEWS_KW,
SyntaxKind::VIRTUAL_KW,
SyntaxKind::VOLATILE_KW,
SyntaxKind::WHITESPACE_KW,
SyntaxKind::WITHIN_KW,
Expand Down Expand Up @@ -3001,6 +3016,7 @@ pub(crate) const TYPE_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::ENABLE_KW,
SyntaxKind::ENCODING_KW,
SyntaxKind::ENCRYPTED_KW,
SyntaxKind::ENFORCED_KW,
SyntaxKind::ENUM_KW,
SyntaxKind::ERROR_KW,
SyntaxKind::ESCAPE_KW,
Expand Down Expand Up @@ -3135,6 +3151,7 @@ pub(crate) const TYPE_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::NULLS_KW,
SyntaxKind::NUMERIC_KW,
SyntaxKind::OBJECT_KW,
SyntaxKind::OBJECTS_KW,
SyntaxKind::OF_KW,
SyntaxKind::OFF_KW,
SyntaxKind::OIDS_KW,
Expand Down Expand Up @@ -3294,6 +3311,7 @@ pub(crate) const TYPE_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::VERSION_KW,
SyntaxKind::VIEW_KW,
SyntaxKind::VIEWS_KW,
SyntaxKind::VIRTUAL_KW,
SyntaxKind::VOLATILE_KW,
SyntaxKind::WHITESPACE_KW,
SyntaxKind::WITHIN_KW,
Expand Down Expand Up @@ -3447,6 +3465,7 @@ pub(crate) const ALL_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::ENCODING_KW,
SyntaxKind::ENCRYPTED_KW,
SyntaxKind::END_KW,
SyntaxKind::ENFORCED_KW,
SyntaxKind::ENUM_KW,
SyntaxKind::ERROR_KW,
SyntaxKind::ESCAPE_KW,
Expand Down Expand Up @@ -3601,6 +3620,7 @@ pub(crate) const ALL_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::NULLS_KW,
SyntaxKind::NUMERIC_KW,
SyntaxKind::OBJECT_KW,
SyntaxKind::OBJECTS_KW,
SyntaxKind::OF_KW,
SyntaxKind::OFF_KW,
SyntaxKind::OFFSET_KW,
Expand Down Expand Up @@ -3784,6 +3804,7 @@ pub(crate) const ALL_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::VERSION_KW,
SyntaxKind::VIEW_KW,
SyntaxKind::VIEWS_KW,
SyntaxKind::VIRTUAL_KW,
SyntaxKind::VOLATILE_KW,
SyntaxKind::WHEN_KW,
SyntaxKind::WHERE_KW,
Expand Down Expand Up @@ -3935,6 +3956,7 @@ pub(crate) const BARE_LABEL_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::ENCODING_KW,
SyntaxKind::ENCRYPTED_KW,
SyntaxKind::END_KW,
SyntaxKind::ENFORCED_KW,
SyntaxKind::ENUM_KW,
SyntaxKind::ERROR_KW,
SyntaxKind::ESCAPE_KW,
Expand Down Expand Up @@ -4073,6 +4095,7 @@ pub(crate) const BARE_LABEL_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::NULLS_KW,
SyntaxKind::NUMERIC_KW,
SyntaxKind::OBJECT_KW,
SyntaxKind::OBJECTS_KW,
SyntaxKind::OF_KW,
SyntaxKind::OFF_KW,
SyntaxKind::OIDS_KW,
Expand Down Expand Up @@ -4245,6 +4268,7 @@ pub(crate) const BARE_LABEL_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::VERSION_KW,
SyntaxKind::VIEW_KW,
SyntaxKind::VIEWS_KW,
SyntaxKind::VIRTUAL_KW,
SyntaxKind::VOLATILE_KW,
SyntaxKind::WHEN_KW,
SyntaxKind::WHITESPACE_KW,
Expand Down Expand Up @@ -4351,6 +4375,7 @@ pub(crate) const UNRESERVED_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::ENABLE_KW,
SyntaxKind::ENCODING_KW,
SyntaxKind::ENCRYPTED_KW,
SyntaxKind::ENFORCED_KW,
SyntaxKind::ENUM_KW,
SyntaxKind::ERROR_KW,
SyntaxKind::ESCAPE_KW,
Expand Down Expand Up @@ -4446,6 +4471,7 @@ pub(crate) const UNRESERVED_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::NOWAIT_KW,
SyntaxKind::NULLS_KW,
SyntaxKind::OBJECT_KW,
SyntaxKind::OBJECTS_KW,
SyntaxKind::OF_KW,
SyntaxKind::OFF_KW,
SyntaxKind::OIDS_KW,
Expand Down Expand Up @@ -4584,6 +4610,7 @@ pub(crate) const UNRESERVED_KEYWORDS: TokenSet = TokenSet::new(&[
SyntaxKind::VERSION_KW,
SyntaxKind::VIEW_KW,
SyntaxKind::VIEWS_KW,
SyntaxKind::VIRTUAL_KW,
SyntaxKind::VOLATILE_KW,
SyntaxKind::WHITESPACE_KW,
SyntaxKind::WITHIN_KW,
Expand Down
3 changes: 1 addition & 2 deletions crates/squawk_parser/tests/snapshots/tests__listen_ok.snap
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/listen.sql
snapshot_kind: text
---
SOURCE_FILE
COMMENT "-- pg_docs"
Expand All @@ -17,6 +16,6 @@ SOURCE_FILE
LISTEN_KW "LISTEN"
WHITESPACE " "
NAME
IDENT "virtual"
VIRTUAL_KW "virtual"
SEMICOLON ";"
WHITESPACE "\n\n"
3 changes: 1 addition & 2 deletions crates/squawk_parser/tests/snapshots/tests__notify_ok.snap
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/notify.sql
snapshot_kind: text
---
SOURCE_FILE
COMMENT "-- notify_stmt"
Expand All @@ -17,7 +16,7 @@ SOURCE_FILE
NOTIFY_KW "NOTIFY"
WHITESPACE " "
NAME
IDENT "virtual"
VIRTUAL_KW "virtual"
COMMA ","
WHITESPACE " "
LITERAL
Expand Down
3 changes: 1 addition & 2 deletions crates/squawk_parser/tests/snapshots/tests__unlisten_ok.snap
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
source: crates/squawk_parser/tests/tests.rs
input_file: crates/squawk_parser/tests/data/ok/unlisten.sql
snapshot_kind: text
---
SOURCE_FILE
COMMENT "-- pg_docs"
Expand All @@ -10,7 +9,7 @@ SOURCE_FILE
UNLISTEN_KW "unlisten"
WHITESPACE " "
NAME
IDENT "virtual"
VIRTUAL_KW "virtual"
SEMICOLON ";"
WHITESPACE "\n\n"
UNLISTEN_STMT
Expand Down
4 changes: 2 additions & 2 deletions crates/xtask/src/generate_keywords.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ pub(crate) fn generate_keywords() -> Result<()> {
}

fn update_syntax_kind(keywords: &HashMap<String, KeywordMeta>) -> Result<()> {
let path = "crates/parser/src/syntax_kind.rs";
let path = "crates/squawk_parser/src/syntax_kind.rs";

let data = std::fs::read_to_string(path)?;
let data = std::fs::read_to_string(path).context("opening syntax_kind.rs")?;

let mut keys: Vec<_> = keywords.keys().collect();
keys.sort();
Expand Down
11 changes: 7 additions & 4 deletions postgres/kwlist.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// synced from:
// commit: e032e4c7ddd0e1f7865b246ec18944365d4f8614
// committed at: 2024-11-30T17:42:19Z
// file: https://github.com/postgres/postgres/blob/e032e4c7ddd0e1f7865b246ec18944365d4f8614/src/include/parser/kwlist.h
// commit: cb1456423d3925f9c70a488b58f03f186561f00f
// committed at: 2025-05-22T21:14:54Z
// file: https://github.com/postgres/postgres/blob/cb1456423d3925f9c70a488b58f03f186561f00f/src/include/parser/kwlist.h
//
// update via:
// cargo xtask sync-kwlist
Expand All @@ -15,7 +15,7 @@
* by the PG_KEYWORD macro, which is not defined in this file; it can
* be defined by the caller for special purposes.
*
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
* Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
Expand Down Expand Up @@ -161,6 +161,7 @@ PG_KEYWORD("enable", ENABLE_P, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("encoding", ENCODING, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("encrypted", ENCRYPTED, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("end", END_P, RESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("enforced", ENFORCED, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("enum", ENUM_P, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("error", ERROR_P, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("escape", ESCAPE, UNRESERVED_KEYWORD, BARE_LABEL)
Expand Down Expand Up @@ -315,6 +316,7 @@ PG_KEYWORD("nullif", NULLIF, COL_NAME_KEYWORD, BARE_LABEL)
PG_KEYWORD("nulls", NULLS_P, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("numeric", NUMERIC, COL_NAME_KEYWORD, BARE_LABEL)
PG_KEYWORD("object", OBJECT_P, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("objects", OBJECTS_P, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("of", OF, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("off", OFF, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("offset", OFFSET, RESERVED_KEYWORD, AS_LABEL)
Expand Down Expand Up @@ -498,6 +500,7 @@ PG_KEYWORD("verbose", VERBOSE, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL)
PG_KEYWORD("version", VERSION_P, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("view", VIEW, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("views", VIEWS, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("virtual", VIRTUAL, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("volatile", VOLATILE, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("when", WHEN, RESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("where", WHERE, RESERVED_KEYWORD, AS_LABEL)
Expand Down
Loading