MCPcopy Index your code
hub / github.com/bytebase/bytebase / TestValidateSQLForEditor

Function TestValidateSQLForEditor

backend/plugin/parser/plsql/query_test.go:11–96  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

9)
10
11func TestValidateSQLForEditor(t *testing.T) {
12 tests := []struct {
13 name string
14 statement string
15 valid bool
16 gotAllQuery bool
17 wantErr bool
18 }{
19 {
20 name: "single select",
21 statement: "SELECT * FROM t1;",
22 valid: true,
23 gotAllQuery: true,
24 },
25 {
26 name: "multiple selects",
27 statement: "SELECT * FROM t1; SELECT * FROM t2;",
28 valid: true,
29 gotAllQuery: true,
30 },
31 {
32 name: "explain plan",
33 statement: "EXPLAIN PLAN FOR SELECT * FROM t1;",
34 valid: true,
35 gotAllQuery: true,
36 },
37 {
38 name: "explain plan for update",
39 statement: "EXPLAIN PLAN FOR UPDATE t1 SET c1 = 1;",
40 valid: true,
41 gotAllQuery: true,
42 },
43 {
44 name: "cte select",
45 statement: "WITH x AS (SELECT * FROM t1) SELECT * FROM x;",
46 valid: true,
47 gotAllQuery: true,
48 },
49 {
50 name: "dml keywords in string and comment",
51 statement: "WITH x AS (SELECT 'update delete insert' AS c1 FROM t1 /* UPDATE */) SELECT c1 FROM x;",
52 valid: true,
53 gotAllQuery: true,
54 },
55 {
56 name: "mixed select and update rejected",
57 statement: "SELECT * FROM t1; UPDATE t1 SET c1 = 1;",
58 },
59 {
60 name: "cte update rejected",
61 statement: "WITH x AS (SELECT * FROM t1) UPDATE t1 SET c1 = 1;",
62 wantErr: true,
63 },
64 {
65 name: "sqlplus command rejected",
66 statement: "SET DEFINE OFF\nSELECT * FROM t1;",
67 },
68 {

Callers

nothing calls this directly

Calls 4

validateQueryFunction · 0.70
EqualMethod · 0.65
RunMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected