Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit11de859

Browse files
authored
Multiple sqls in the one file (#190)
* bumpup version to 1.5.1* enable to lint multiple sqls in the same file
1 parentab6d8c3 commit11de859

File tree

8 files changed

+196
-70
lines changed

8 files changed

+196
-70
lines changed

‎package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name":"sql-language-server",
33
"displayName":"SQL Language Server",
44
"description":"SQL Language Server Extension for VSC",
5-
"version":"1.5.0",
5+
"version":"1.5.1",
66
"main":"./packages/client/out/extension",
77
"repository": {
88
"type":"git",

‎packages/sql-parser/base/fromClauseParser.js

Lines changed: 83 additions & 32 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎packages/sql-parser/base/parser.js

Lines changed: 83 additions & 32 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎packages/sql-parser/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,3 +386,4 @@ type FromClauseParserResult = {
386386

387387
exportfunctionparseFromClause(sql:string):FromClauseParserResult
388388
exportfunctionparse(sql:string):AST
389+
exportfunctionparseAll(sql:string):AST[]

‎packages/sql-parser/index.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,17 @@ exports.parse = function (sql){
88
returnap.ast;
99
};
1010

11+
exports.parseAll=function(sql){
12+
varap=Parser.parse(sql);
13+
returnap.asts;
14+
}
15+
1116
exports.parseFromClause=function(sql){
1217
returnFromClauseParser.parse(sql)
1318
}
1419

1520
module.exports={
1621
parse:exports.parse,
17-
parseFromClause:exports.parseFromClause
22+
parseFromClause:exports.parseFromClause,
23+
parseAll:exports.parseAll,
1824
}

‎packages/sql-parser/parser.pegjs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,16 +65,18 @@
6565
}
6666

6767
start
68-
=&{returntrue; }__ast:(union_stmt/update_stmt/replace_insert_stmt/delete_stmt/create_table_stmt/alter_table_stmt/create_index_stmt)__EOSQL?__ {
68+
=&{returntrue; }__ast:ast__tail: ((EOSQL__start/EOSQL))* {
6969
return {
7070
ast: ast,
71+
asts: [ast].concat(tail.map(v=> v[2].ast))
7172
}
7273
}
7374
/ast:proc_stmts {
7475
return {
7576
ast: ast
7677
}
7778
}
79+
ast=union_stmt/update_stmt/replace_insert_stmt/delete_stmt/create_table_stmt/alter_table_stmt/create_index_stmt
7880

7981
union_stmt
8082
=head:select_stmttail:(__KW_UNION__KW_ALL?__select_stmt)* {

‎packages/sql-parser/test/select.test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,14 @@ describe('table name with double quotes', () => {
1212
expect(result).toMatchObject({type:'select'})
1313
})
1414
})
15+
16+
17+
describe('multiple sqls in the same file',()=>{
18+
constsql=`
19+
SELECT "T1"."COL1" FROM "T1" WHERE "T1"."num" = 1;
20+
SELECT "T1"."COL1" FROM "T1" WHERE "T1"."num" = 2;
21+
`
22+
constresult=parse(sql)
23+
expect(result).toBeDefined()
24+
expect(result).toMatchObject({type:'select'})
25+
});

‎packages/sqlint/src/rules/index.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import{parse,NodeRange,AST,Node,BaseNode}from'@joe-re/sql-parser'
1+
import{parseAll,NodeRange,AST,Node,BaseNode}from'@joe-re/sql-parser'
22
importlog4jsfrom'log4js'
33
import{Fixer,FixDescription,createFixer}from'../fixer'
44
import{reservedWordCase}from'./reservedWordCase'
@@ -80,8 +80,12 @@ export function execute(sql: string, config: Config): Diagnostic[] {
8080
registerRule(requireAsToRenameColumn,config,sql)
8181

8282
try{
83-
constast=parse(sql)
84-
returnwalk(ast)
83+
constast=parseAll(sql)
84+
returnast
85+
.map((v)=>{
86+
returnwalk(v)
87+
})
88+
.flat()
8589
}catch(e){
8690
logger.debug(e)
8791
return[]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp