Skip to content

Commit 6924559

Browse files
committed
Merge branch 'parser-0.41.0'
2 parents d417c8d + 00999e6 commit 6924559

8 files changed

Lines changed: 45 additions & 32 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
],
4040
"dependencies": {
4141
"prettier": "^3.0.3",
42-
"sql-parser-cst": "^0.40.0"
42+
"sql-parser-cst": "^0.41.0"
4343
},
4444
"devDependencies": {
4545
"@types/jest": "^30.0.0",

src/syntax/dialects/bigquery.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,6 @@ export const bigqueryMap: CstToDocMap<AllBigqueryNodes> = {
103103
]),
104104
),
105105

106-
// ASSERT
107-
assert_stmt: (print) => group(print.spaced(["assertKw", "expr", "as"])),
108-
109106
// EXPORT
110107
export_data_stmt: (print) =>
111108
group(

src/syntax/other_clauses.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { AllOtherClauses } from "sql-parser-cst";
22
import { CstToDocMap } from "../CstToDocMap";
3-
import { line, indent, group } from "../print_utils";
3+
import { line, indent, group, hardline } from "../print_utils";
4+
import { isDynamicallyLoadedFunction, isStringLiteral } from "../node_utils";
45

56
export const otherClausesMap: CstToDocMap<AllOtherClauses> = {
67
// CLUSTER BY clause
@@ -11,6 +12,15 @@ export const otherClausesMap: CstToDocMap<AllOtherClauses> = {
1112
returning_clause: (print) =>
1213
group([print("returningKw"), indent([line, print("columns")])]),
1314

15+
as_clause: (print, node) => {
16+
if (isStringLiteral(node.expr) || isDynamicallyLoadedFunction(node.expr)) {
17+
return print.spaced(["asKw", "expr"]);
18+
}
19+
return [print("asKw"), indent([hardline, print("expr")])];
20+
},
21+
22+
comma_clause: (print) => [",", print("expr")],
23+
1424
// WHERE CURRENT OF clause
1525
where_current_of_clause: (print) =>
1626
print.spaced(["whereCurrentOfKw", "cursor"]),

src/syntax/prepared_statements.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import { AllPreparedStatementNodes } from "sql-parser-cst";
22
import { group, hardline, indent, join, line } from "../print_utils";
33
import { CstToDocMap } from "../CstToDocMap";
44

5-
export const preparedStatementsMap: CstToDocMap<AllPreparedStatementNodes> = {
5+
export const preparedStatementsMap: Partial<
6+
CstToDocMap<AllPreparedStatementNodes>
7+
> = {
68
// EXECUTE
79
execute_stmt: (print, node) => {
810
if (node.args?.type === "execute_using_clause") {

src/syntax/proc_clause.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@ export const procClauseMap: CstToDocMap<AllProcClauseNodes> = {
77
returns_clause: (print) => print.spaced(["returnsKw", "dataType"]),
88
determinism_clause: (print) => print.spaced("deterministicKw"),
99
language_clause: (print) => print.spaced(["languageKw", "name"]),
10-
as_clause: (print, node) => {
11-
if (isStringLiteral(node.expr) || isDynamicallyLoadedFunction(node.expr)) {
12-
return print.spaced(["asKw", "expr"]);
13-
}
14-
return [print("asKw"), indent([hardline, print("expr")])];
15-
},
1610
with_connection_clause: (print) =>
1711
print.spaced(["withConnectionKw", "connection"]),
1812
};

src/syntax/procedural_language.ts

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
} from "../print_utils";
1010
import { CstToDocMap } from "../CstToDocMap";
1111

12-
export const proceduralLanguageMap: CstToDocMap<AllProceduralNodes> = {
12+
export const proceduralLanguageMap: Partial<CstToDocMap<AllProceduralNodes>> = {
1313
// BEGIN .. END
1414
block_stmt: (print, node) =>
1515
group([
@@ -19,23 +19,32 @@ export const proceduralLanguageMap: CstToDocMap<AllProceduralNodes> = {
1919
hardline,
2020
print("endKw"),
2121
]),
22-
exception_clause: (print) =>
22+
exception_clause: (print, node) => {
23+
if (node.clauses.length === 1) {
24+
// Keep single exception clause on the same line as EXCEPTION keyword
25+
return group(print.spaced(["exceptionKw", "clauses"]));
26+
} else {
27+
return group([print("exceptionKw"), indent([line, print("clauses")])]);
28+
}
29+
},
30+
exception_when_clause: (print) =>
2331
group([
24-
print.spaced(["exceptionKw", "whenKw", "condition", "thenKw"]),
32+
print.spaced(["whenKw", "condition", "thenKw"]),
2533
indent([hardline, stripTrailingHardline(print("program"))]),
2634
]),
27-
error_category: (print) => print("errorKw"),
35+
36+
error_bigquery: (print) => print("errorKw"),
2837

2938
// DECLARE
3039
declare_stmt: (print) =>
3140
group(
3241
join(" ", [
3342
print("declareKw"),
3443
group(print("names")),
35-
...print.spaced(["dataType", "default"]),
44+
...print.spaced(["dataType", "init"]),
3645
]),
3746
),
38-
declare_default: (print) => print.spaced(["defaultKw", "expr"]),
47+
declare_init: (print) => print.spaced(["operator", "expr"]),
3948

4049
// SET
4150
set_stmt: (print) => group(print.spaced(["setKw", "assignments"])),
@@ -110,22 +119,23 @@ export const proceduralLanguageMap: CstToDocMap<AllProceduralNodes> = {
110119
// BREAK/CONTINUE
111120
break_stmt: (print) => group(print.spaced(["breakKw", "label"])),
112121
continue_stmt: (print) => group(print.spaced(["continueKw", "label"])),
122+
// labels
113123
labeled_stmt: (print, node) =>
114124
group([
115-
print("beginLabel"),
116-
": ",
117-
print("statement"),
125+
print.spaced(["beginLabel", "statement"]),
118126
node.endLabel ? [" ", print(["endLabel"])] : [],
119127
]),
128+
colon_label: (print) => [print("label"), ":"],
129+
120130
// CALL
121131
call_stmt: (print) => group(print.spaced(["callKw", "func"])),
122132
// RETURN
123133
return_stmt: (print) => group(print.spaced(["returnKw", "expr"])),
124134
// RAISE
125-
raise_stmt: (print) => group(print.spaced(["raiseKw", "message"])),
126-
raise_message: (print) => [
127-
print.spaced("usingMessageKw"),
128-
" = ",
129-
print("string"),
130-
],
135+
raise_stmt: (print) => group(print.spaced(["raiseKw", "using"])),
136+
raise_using_clause: (print) => group(print.spaced(["usingKw", "options"])),
137+
raise_option_element: (print) => [print("nameKw"), " = ", print("value")],
138+
// ASSERT
139+
assert_stmt: (print) =>
140+
group(print.spaced(["assertKw", "condition", "message"])),
131141
};

src/syntax/transformMap.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ import { mysqlMap } from "./dialects/mysql";
5151
import { sqliteMap } from "./dialects/sqlite";
5252
import { postgresqlMap } from "./dialects/postgresql";
5353

54-
export const transformMap: CstToDocMap<Node> = {
54+
export const transformMap: Partial<CstToDocMap<Node>> = {
5555
...aliasMap,
5656
...alterActionMap,
5757
...alterTableMap,

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2778,10 +2778,10 @@ sprintf-js@~1.0.2:
27782778
resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
27792779
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
27802780

2781-
sql-parser-cst@^0.40.0:
2782-
version "0.40.0"
2783-
resolved "https://registry.yarnpkg.com/sql-parser-cst/-/sql-parser-cst-0.40.0.tgz#1abe3d6bf4c98ee02a48d86898779dac609fd820"
2784-
integrity sha512-hPC71LUTyJjRbfwDBorqlNBTM2l1hurtIZhSB7/lNn7yXWT8HCjWIgKeqetq8FQ3jo33F7fuYyoRUJBShJdwzA==
2781+
sql-parser-cst@^0.41.0:
2782+
version "0.41.0"
2783+
resolved "https://registry.yarnpkg.com/sql-parser-cst/-/sql-parser-cst-0.41.0.tgz#f3812569310539038a4d0d97dce3af3eb2fed760"
2784+
integrity sha512-zUmYzeqZEaL93G+N3BQ3V7uZ/nbsFrHV6YOYNu8vzXAHzkG5y3ZoNMoD8hNR12uKsXDzECMkauQ/w4gwD49Naw==
27852785

27862786
stack-utils@^2.0.6:
27872787
version "2.0.6"

0 commit comments

Comments
 (0)