From ce981bf5ddce4bcaff763f05e1b8ef8012c4c7c9 Mon Sep 17 00:00:00 2001 From: ygrek Date: Sat, 1 Aug 2015 11:43:13 -0700 Subject: [PATCH] sql: AVG returns float (closes #26) --- lib/sql_lexer.mll | 3 ++- test/misc.sql | 7 ++++--- test/out/misc.xml | 12 +++++++++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/sql_lexer.mll b/lib/sql_lexer.mll index cad94c2..79edb99 100644 --- a/lib/sql_lexer.mll +++ b/lib/sql_lexer.mll @@ -144,7 +144,8 @@ let keywords = "year_month", YEAR_MONTH; ] in (* more *) let all token l = k := !k @ List.map (fun x -> x,token) l in - all (FUNCTION (T.Int,true)) ["max"; "min"; "count";"sum";"avg"]; + all (FUNCTION (T.Int,true)) ["max"; "min"; "count";"sum"]; + all (FUNCTION (T.Float,true)) ["avg"]; all (FUNCTION (T.Int,false)) ["length"; "random";"unix_timestamp"]; all (FUNCTION (T.Int,false)) ["least"; "greatest"]; all (FUNCTION (T.Text,false)) ["concat";"lower";"upper";"strftime"]; diff --git a/test/misc.sql b/test/misc.sql index 45d3224..156bd54 100644 --- a/test/misc.sql +++ b/test/misc.sql @@ -1,4 +1,5 @@ SELECT strftime('%s','now'); -CREATE TABLE issue20 (x INT, `key` VARBINARY(200)); -SELECT * FROM issue20 WHERE x IS NOT NULL; -CREATE INDEX `key` ON issue20(`key`(20)); +CREATE TABLE test (x INT, `key` VARBINARY(200)); +SELECT * FROM test WHERE x IS NOT NULL; +CREATE INDEX `key` ON test(`key`(20)); +SELECT avg(x) FROM test; diff --git a/test/out/misc.xml b/test/out/misc.xml index 6b47386..468eb79 100644 --- a/test/out/misc.xml +++ b/test/out/misc.xml @@ -7,19 +7,25 @@ - + - + - + + + + + + + -- 2.11.4.GIT