From da664d20a1ecfa35ede73c0edfb265f295ebebb5 Mon Sep 17 00:00:00 2001 From: Serge Artishev Date: Sat, 16 Nov 2019 11:25:39 +1300 Subject: [PATCH] add user function call with schema name --- sql.ne | 2 +- test/test1.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/sql.ne b/sql.ne index 77f5cf7..10693be 100644 --- a/sql.ne +++ b/sql.ne @@ -549,7 +549,7 @@ identifier -> function_identifier -> btstring {% d => ({value:d[0]}) %} - | [a-zA-Z_] [a-zA-Z0-9_]:* {% (d,l,reject) => { + | [a-zA-Z_] [a-zA-Z0-9_.]:* {% (d,l,reject) => { const value = d[0] + d[1].join(''); if(reserved.indexOf(value.toUpperCase()) != -1 && valid_function_identifiers.indexOf(value.toUpperCase()) == -1) return reject; return {value: value}; diff --git a/test/test1.js b/test/test1.js index eb69db8..f79747c 100644 --- a/test/test1.js +++ b/test/test1.js @@ -333,6 +333,17 @@ const tests = [ b: 's.d' } } + }, + { + sql: `select x = 'x', y = upper(a.y), z = a.fnUserFunction(a.y) from c a group by a.y`, + toSql: + '(select (`x` = "x"), (`y` = upper(`a`.`y`)), (`z` = a.fnUserFunction(`a`.`y`)) from (`c`as `a`) group by (`a`.`y`))', + expected: { + sourceTables: ['c'], + aliases: { + a: 'c' + } + } } ];