(t *testing.T)
| 32 | } |
| 33 | |
| 34 | func TestSqlParser(t *testing.T) { |
| 35 | |
| 36 | parseSqlTest(t, `## this is a comment |
| 37 | SELECT a FROM x;`) |
| 38 | |
| 39 | parseSqlError(t, `SELECT a FROM x LIMIT 1 NOTAWORD;`) |
| 40 | |
| 41 | parseSqlError(t, `SELECT a, tolower(b) AS b INTO newtable FROM FROM WHERE a != "hello";`) |
| 42 | parseSqlTest(t, ` |
| 43 | SELECT a.language, a.template, Count(*) AS count |
| 44 | FROM |
| 45 | (Select Distinct language, template FROM content WHERE language != "en" OFFSET 1) AS a |
| 46 | Left Join users AS b |
| 47 | On b.language = a.language AND b.template = b.template |
| 48 | GROUP BY a.language, a.template`) |
| 49 | parseSqlTest(t, ` |
| 50 | SELECT a FROM x WHERE a IN (select ax FROM z); |
| 51 | `) |
| 52 | |
| 53 | // CREATE |
| 54 | parseSqlTest(t, `CREATE CONTINUOUSVIEW viewx AS SELECT a FROM tbl;`) |
| 55 | parseSqlError(t, `CREATE FAKEITEM viewx;`) |
| 56 | parseSqlTest(t, `CREATE OR REPLACE VIEW viewx |
| 57 | AS SELECT a, b FROM mydb.tbl |
| 58 | WITH stuff = "hello";`) |
| 59 | parseSqlTest(t, `CREATE TABLE articles |
| 60 | --comment-here |
| 61 | ( |
| 62 | ID int(11) NOT NULL AUTO_INCREMENT, |
| 63 | Email char(150) NOT NULL DEFAULT '' UNIQUE COMMENT 'this-is-comment', |
| 64 | stuff varchar(150), |
| 65 | profile text, |
| 66 | PRIMARY KEY (ID), |
| 67 | visitct BIGINT, |
| 68 | CONSTRAINT emails_fk FOREIGN KEY (Email) REFERENCES Emails (Email) |
| 69 | ) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8;`) |
| 70 | |
| 71 | // DROP |
| 72 | parseSqlTest(t, `DROP CONTINUOUSVIEW viewx WITH stuff = "hello";`) |
| 73 | } |
nothing calls this directly
no test coverage detected