From 3903ab0cbbd9a146745f550fce7328bdd08074e8 Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Sat, 17 Feb 2018 00:13:29 -0500 Subject: [PATCH] sql.l: Handle square bracket column names Credit: @mewalig Fixes #2 --- Makefile.am | 3 ++- ok3.sql | 1 + sql.l | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 ok3.sql diff --git a/Makefile.am b/Makefile.am index 3d9c288..2fbaea6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,7 +17,8 @@ EXTRA_DIST = sql.y sql.l \ fail3.sql \ fail4.sql \ ok1.sql \ - ok2.sql + ok2.sql \ + ok3.sql sql_SOURCES = exec.c sql-parser.h nodist_sql_SOURCES = sql.c sql.tab.c sql.tab.h sql.lex.h diff --git a/ok3.sql b/ok3.sql new file mode 100644 index 0000000..e496389 --- /dev/null +++ b/ok3.sql @@ -0,0 +1 @@ +select [a b] from d; diff --git a/sql.l b/sql.l index 30f58df..b04ae94 100644 --- a/sql.l +++ b/sql.l @@ -345,6 +345,7 @@ COUNT { int c = input(pstate->scanner); unput(c); [A-Za-z][A-Za-z0-9_]* { yylval->strval = strdup(yytext); return NAME; } +\[(\\.|[^\]\n])*\] | `[^`/\\.\n]+` { yylval->strval = strdup(yytext+1); yylval->strval[yyleng-2] = 0; return NAME; }