From 2361c5723d9532703dee333883f82719c67b4bb2 Mon Sep 17 00:00:00 2001 From: Albin Zeng Date: Thu, 4 Feb 2021 16:26:10 +0800 Subject: [PATCH] fix: #40 --- src/sqlParser.jison | 5 +++-- test/main.test.js | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/sqlParser.jison b/src/sqlParser.jison index 3e0f452..cc99391 100644 --- a/src/sqlParser.jison +++ b/src/sqlParser.jison @@ -126,8 +126,9 @@ UNION return 'UNION' [a-zA-Z_\u4e00-\u9fa5][a-zA-Z0-9_\u4e00-\u9fa5]* return 'IDENTIFIER' \. return 'DOT' -['"][a-zA-Z_\u4e00-\u9fa5][a-zA-Z0-9_\u4e00-\u9fa5]*["'] return 'IDENTIFIER' -([`])(?:(?=(\\?))\2.)*?\1 return 'IDENTIFIER' +["][a-zA-Z_\u4e00-\u9fa5][a-zA-Z0-9_\u4e00-\u9fa5]*["] return 'STRING' +['][a-zA-Z_\u4e00-\u9fa5][a-zA-Z0-9_\u4e00-\u9fa5]*['] return 'STRING' +[`].+[`] return 'IDENTIFIER' <> return 'EOF' . return 'INVALID' diff --git a/test/main.test.js b/test/main.test.js index 8ba2249..88b9cda 100644 --- a/test/main.test.js +++ b/test/main.test.js @@ -422,4 +422,13 @@ describe('select grammar support', function () { testParser('select a as "A A" from z'); testParser('select a as "A A" from z order by "A A" desc'); }); + + it('support quoted alias', function () { + testParser('select a as \'A A\' from z'); + testParser('select a as \'"A#A\' from z order by \'"A#A\' desc'); + }); + + it.only('test IDENTIFIER', function () { + testParser('select `aa#sfs`(a) as \'A A\' from z'); + }); });