From 11bf5d2412a548ecd8f4efcdaa83bce565b01d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Tue, 5 Sep 2017 14:36:58 +0300 Subject: [PATCH] MXS-1389: Add tests for function use with columns The test checks that only the functions that aren't allowed are blocked. --- maxscale-system-test/fw/deny12 | 10 ++++++++++ maxscale-system-test/fw/pass12 | 7 +++++++ maxscale-system-test/fw/rules12 | 2 ++ maxscale-system-test/fwf.cpp | 2 +- 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 maxscale-system-test/fw/deny12 create mode 100644 maxscale-system-test/fw/pass12 create mode 100644 maxscale-system-test/fw/rules12 diff --git a/maxscale-system-test/fw/deny12 b/maxscale-system-test/fw/deny12 new file mode 100644 index 000000000..6c4a2c343 --- /dev/null +++ b/maxscale-system-test/fw/deny12 @@ -0,0 +1,10 @@ +SELECT SUM(name), address FROM t1; +SELECT name, SUM(address) FROM t1; +SELECT address, SUM(name) FROM t1; +SELECT SUM(address), name FROM t1; +SELECT AVG(name), address FROM t1; +SELECT name, AVG(address) FROM t1; +SELECT address, AVG(name) FROM t1; +SELECT AVG(address), name FROM t1; +SELECT AVG(name), SUM(address) FROM t1; +SELECT SUM(name), AVG(address) FROM t1; diff --git a/maxscale-system-test/fw/pass12 b/maxscale-system-test/fw/pass12 new file mode 100644 index 000000000..e10091e2f --- /dev/null +++ b/maxscale-system-test/fw/pass12 @@ -0,0 +1,7 @@ +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (name int, address int, email int); +INSERT INTO t1 VALUES (1, 1, 1); +SELECT name, address, email FROM t1; +SELECT name, address, SUM(email) FROM t1; +SELECT CAST(name AS TEXT), CAST(address AS TEXT), SUM(email) FROM t1; + diff --git a/maxscale-system-test/fw/rules12 b/maxscale-system-test/fw/rules12 new file mode 100644 index 000000000..07fd196fd --- /dev/null +++ b/maxscale-system-test/fw/rules12 @@ -0,0 +1,2 @@ +rule no_func deny functions sum avg columns name address +users %@% match any rules no_func diff --git a/maxscale-system-test/fwf.cpp b/maxscale-system-test/fwf.cpp index bceddb3d4..aa076107b 100644 --- a/maxscale-system-test/fwf.cpp +++ b/maxscale-system-test/fwf.cpp @@ -33,7 +33,7 @@ int main(int argc, char *argv[]) FILE* file; sprintf(rules_dir, "%s/fw/", test_dir); - int N = 11; + int N = 12; int i; for (i = 1; i < N + 1; i++)