Skip to content

Commit f0adcf1

Browse files
committed
Fix import from sql for mssql
1 parent 5476470 commit f0adcf1

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

package-lock.json

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"jsonschema": "^1.4.1",
3131
"jspdf": "^2.5.1",
3232
"lexical": "^0.12.5",
33-
"node-sql-parser": "^5.3.4",
33+
"node-sql-parser": "^5.3.6",
3434
"octokit": "^4.0.2",
3535
"react": "^18.2.0",
3636
"react-dom": "^18.2.0",

src/utils/importSQL/mssql.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,8 @@ export function fromMSSQL(ast, diagramDb = DB.GENERIC) {
199199
e.expr.forEach((expr) => {
200200
if (
201201
expr.action === "add" &&
202-
expr.create_definitions.constraint_type.toLowerCase() === "foreign key"
202+
expr.create_definitions.constraint_type.toLowerCase() ===
203+
"foreign key"
203204
) {
204205
const relationship = {};
205206
const startTable = e.table[0].table;
@@ -266,16 +267,18 @@ export function fromMSSQL(ast, diagramDb = DB.GENERIC) {
266267

267268
if (ast.go_next) {
268269
let x = { ...ast };
269-
let done = Array.isArray(x.go_next);
270+
let done = false;
270271
while (!done) {
271272
parseSingleStatement(x.ast);
273+
done = Array.isArray(x.go_next) && x.go_next.length === 0;
272274
x = { ...x.go_next };
273-
done = Array.isArray(x.go_next);
274275
}
275276
} else if (Array.isArray(ast)) {
276277
ast.forEach((e) => {
277278
parseSingleStatement(e);
278279
});
280+
} else if (typeof ast === "object") {
281+
parseSingleStatement(ast);
279282
}
280283

281284
return { tables, relationships };

0 commit comments

Comments
 (0)