MCPcopy Index your code
hub / github.com/cloudspannerecosystem/spanner-cli / TestBuildStatement

Function TestBuildStatement

statement_test.go:30–661  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

28)
29
30func TestBuildStatement(t *testing.T) {
31 timestamp, err := time.Parse(time.RFC3339Nano, "2020-03-30T22:54:44.834017+09:00")
32 if err != nil {
33 t.Fatalf("unexpected time parse error: %v", err)
34 }
35
36 // valid tests
37 for _, test := range []struct {
38 desc string
39 input string
40 want Statement
41 skipLowerCase bool
42 }{
43 {
44 desc: "SELECT statement",
45 input: "SELECT * FROM t1",
46 want: &SelectStatement{Query: "SELECT * FROM t1"},
47 },
48 {
49 desc: "SELECT statement in multiple lines",
50 input: "SELECT\n*\nFROM t1",
51 want: &SelectStatement{Query: "SELECT\n*\nFROM t1"},
52 },
53 {
54 desc: "SELECT statement with comment",
55 input: "SELECT 0x1/**/A",
56 want: &SelectStatement{Query: "SELECT 0x1/**/A"},
57 },
58 {
59 desc: "WITH statement",
60 input: "WITH sub AS (SELECT 1) SELECT * FROM sub",
61 want: &SelectStatement{Query: "WITH sub AS (SELECT 1) SELECT * FROM sub"},
62 },
63 {
64 // https://cloud.google.com/spanner/docs/query-syntax#statement-hints
65 desc: "SELECT statement with statement hint",
66 input: "@{USE_ADDITIONAL_PARALLELISM=TRUE} SELECT * FROM t1",
67 want: &SelectStatement{Query: "@{USE_ADDITIONAL_PARALLELISM=TRUE} SELECT * FROM t1"},
68 },
69 {
70 desc: "SELECT statement in parenthesis",
71 input: "(SELECT * FROM t1)",
72 want: &SelectStatement{Query: "(SELECT * FROM t1)"},
73 },
74 {
75 desc: "WITH statement in parenthesis",
76 input: "(WITH sub AS (SELECT 1) SELECT * FROM sub)",
77 want: &SelectStatement{Query: "(WITH sub AS (SELECT 1) SELECT * FROM sub)"},
78 },
79 {
80 desc: "SELECT statement in parenthesis with statement hint",
81 input: "@{USE_ADDITIONAL_PARALLELISM=TRUE} (SELECT * FROM t1)",
82 want: &SelectStatement{Query: "@{USE_ADDITIONAL_PARALLELISM=TRUE} (SELECT * FROM t1)"},
83 },
84 {
85 desc: "CREATE DATABASE statement",
86 input: "CREATE DATABASE d1",
87 want: &CreateDatabaseStatement{CreateStatement: "CREATE DATABASE d1"},

Callers

nothing calls this directly

Calls 1

BuildStatementFunction · 0.85

Tested by

no test coverage detected