MCPcopy Create free account
hub / github.com/apecloud/myduckserver / TestIsPureDataQuery

Function TestIsPureDataQuery

main_test.go:88–154  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

86}
87
88func 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 },

Callers

nothing calls this directly

Calls 4

IsPureDataQueryFunction · 0.92
SetupMethod · 0.80
NewEngineMethod · 0.80
NewContextMethod · 0.65

Tested by

no test coverage detected