Skip to content

Commit

Permalink
implement base type
Browse files Browse the repository at this point in the history
  • Loading branch information
joe-re committed Aug 13, 2023
1 parent af56f67 commit 3fb6a71
Show file tree
Hide file tree
Showing 4 changed files with 285 additions and 7 deletions.
98 changes: 96 additions & 2 deletions packages/sql-parser/base/fromClauseParser.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

98 changes: 96 additions & 2 deletions packages/sql-parser/base/parser.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 33 additions & 2 deletions packages/sql-parser/parser.pegjs
Original file line number Diff line number Diff line change
Expand Up @@ -1806,7 +1806,7 @@ create_index_stmt
}

create_type_stmt
= create_type_stmt_composite / create_type_stmt_enum / create_type_stmt_range
= create_type_stmt_composite / create_type_stmt_enum / create_type_stmt_range / create_type_stmt_base

create_type_stmt_composite =
kw_create: KW_CREATE __
Expand Down Expand Up @@ -1893,16 +1893,47 @@ create_type_stmt_range =
}

assign_value_expr =
name:ident __ "=" __ val:ident {
name:ident __ "=" __ val:(ident / literal_numeric) {
if (val.type === 'number') {
val = val.value
}
return {
type: 'assign_value_expr',
name: name,
value: val,
location: location()
}
} /
name:ident {
return {
type: 'assign_value_expr',
name: name,
value: true,
location: location()
}
}

assign_value_expr_list =
head:assign_value_expr tail:(__ COMMA __ assign_value_expr)* {
return createList(head, tail);
}

create_type_stmt_base =
kw_create: KW_CREATE __
kw_type: KW_TYPE __
name: ident __
values:(
LPAREN __
assign_value_expr_list __
RPAREN
)? {
return {
type: 'create_type',
type_variant: 'base_type',
create_keyword: kw_create,
type_keyword: kw_type,
name: name,
values: (values && values[2]) || [],
location: location()
}
}
Loading

0 comments on commit 3fb6a71

Please sign in to comment.