(t *testing.T)
| 86 | } |
| 87 | |
| 88 | func TestIsPureDataQuery(t *testing.T) { |
| 89 | harness := harness.NewDefaultDuckHarness() |
| 90 | harness.Setup( |
| 91 | setup.MydbData, |
| 92 | []setup.SetupScript{ |
| 93 | { |
| 94 | "CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(255))", |
| 95 | "CREATE table xy (x int primary key, y int, unique index y_idx(y));", |
| 96 | "CREATE view myview as select * from users", |
| 97 | }, |
| 98 | }) |
| 99 | engine, err := harness.NewEngine(t) |
| 100 | require.NoError(t, err) |
| 101 | tests := []struct { |
| 102 | name string |
| 103 | query string |
| 104 | expected bool |
| 105 | }{ |
| 106 | { |
| 107 | name: "Simple SELECT query", |
| 108 | query: "SELECT * FROM users", |
| 109 | expected: true, |
| 110 | }, |
| 111 | { |
| 112 | name: "Query from mysql system table", |
| 113 | query: "SELECT * FROM mysql.user", |
| 114 | expected: false, |
| 115 | }, |
| 116 | { |
| 117 | name: "Query with system function", |
| 118 | query: "SELECT DATABASE()", |
| 119 | expected: false, |
| 120 | }, |
| 121 | { |
| 122 | name: "Query with subquery from system table", |
| 123 | query: "SELECT u.name, (SELECT COUNT(*) FROM mysql.user) FROM users u", |
| 124 | expected: false, |
| 125 | }, |
| 126 | { |
| 127 | name: "Query from information_schema", |
| 128 | query: "SELECT * FROM information_schema.tables", |
| 129 | expected: false, |
| 130 | }, |
| 131 | { |
| 132 | name: "Query with subquery", |
| 133 | query: "select * from xy where x in (select 1 having false);", |
| 134 | expected: true, |
| 135 | }, |
| 136 | { |
| 137 | name: "Date parse query", |
| 138 | query: "SELECT STR_TO_DATE('Jan 3, 2000', '%b %e, %Y')", |
| 139 | expected: false, |
| 140 | }, |
| 141 | { |
| 142 | name: "View query", |
| 143 | query: "SELECT * FROM myview WHERE id = 1", |
| 144 | expected: true, |
| 145 | }, |
nothing calls this directly
no test coverage detected