MCPcopy Create free account
hub / github.com/auxten/postgresql-parser / TestParse

Function TestParse

pkg/sql/parser/parse_test.go:34–1433  ·  view source on GitHub ↗

TestParse verifies that we can parse the supplied SQL and regenerate the SQL string from the syntax tree.

(t *testing.T)

Source from the content-addressed store, hash-verified

32// TestParse verifies that we can parse the supplied SQL and regenerate the SQL
33// string from the syntax tree.
34func TestParse(t *testing.T) {
35 testData := []struct {
36 sql string
37 }{
38 {``},
39 {`VALUES ("")`},
40
41 {`BEGIN TRANSACTION`},
42 {`BEGIN TRANSACTION READ ONLY`},
43 {`BEGIN TRANSACTION READ WRITE`},
44 {`BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE`},
45 {`BEGIN TRANSACTION PRIORITY LOW`},
46 {`BEGIN TRANSACTION PRIORITY NORMAL`},
47 {`BEGIN TRANSACTION PRIORITY HIGH`},
48 {`BEGIN TRANSACTION AS OF SYSTEM TIME '2018-12-18'`},
49 {`BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE, AS OF SYSTEM TIME '2018-12-18'`},
50 {`BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE, PRIORITY LOW, AS OF SYSTEM TIME '2018-12-18'`},
51 {`BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE, PRIORITY LOW, READ ONLY, AS OF SYSTEM TIME '-1ns'`},
52 {`BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE, PRIORITY HIGH`},
53 {`BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE, PRIORITY HIGH, READ WRITE`},
54 {`COMMIT TRANSACTION`},
55 {`ROLLBACK TRANSACTION`},
56 {`SAVEPOINT foo`},
57 {`SAVEPOINT "foo bar"`},
58
59 {`CREATE DATABASE a`},
60 {`EXPLAIN CREATE DATABASE a`},
61 {`CREATE DATABASE a TEMPLATE = 'template0'`},
62 {`CREATE DATABASE a TEMPLATE = 'invalid'`},
63 {`CREATE DATABASE a ENCODING = 'UTF8'`},
64 {`CREATE DATABASE a ENCODING = 'INVALID'`},
65 {`CREATE DATABASE a LC_COLLATE = 'C.UTF-8'`},
66 {`CREATE DATABASE a LC_COLLATE = 'INVALID'`},
67 {`CREATE DATABASE a LC_CTYPE = 'C.UTF-8'`},
68 {`CREATE DATABASE a LC_CTYPE = 'INVALID'`},
69 {`CREATE DATABASE a TEMPLATE = 'template0' ENCODING = 'UTF8' LC_COLLATE = 'C.UTF-8' LC_CTYPE = 'INVALID'`},
70 {`CREATE DATABASE IF NOT EXISTS a`},
71 {`CREATE DATABASE IF NOT EXISTS a TEMPLATE = 'template0'`},
72 {`CREATE DATABASE IF NOT EXISTS a TEMPLATE = 'invalid'`},
73 {`CREATE DATABASE IF NOT EXISTS a ENCODING = 'UTF8'`},
74 {`CREATE DATABASE IF NOT EXISTS a ENCODING = 'INVALID'`},
75 {`CREATE DATABASE IF NOT EXISTS a LC_COLLATE = 'C.UTF-8'`},
76 {`CREATE DATABASE IF NOT EXISTS a LC_COLLATE = 'INVALID'`},
77 {`CREATE DATABASE IF NOT EXISTS a LC_CTYPE = 'C.UTF-8'`},
78 {`CREATE DATABASE IF NOT EXISTS a LC_CTYPE = 'INVALID'`},
79 {`CREATE DATABASE IF NOT EXISTS a TEMPLATE = 'template0' ENCODING = 'UTF8' LC_COLLATE = 'C.UTF-8' LC_CTYPE = 'INVALID'`},
80 {`CREATE SCHEMA IF NOT EXISTS foo`},
81 {`CREATE SCHEMA foo`},
82
83 {`CREATE INDEX a ON b (c)`},
84 {`CREATE INDEX CONCURRENTLY a ON b (c)`},
85 {`EXPLAIN CREATE INDEX a ON b (c)`},
86 {`CREATE INDEX a ON b.c (d)`},
87 {`CREATE INDEX ON a (b)`},
88 {`CREATE INDEX ON a (b) STORING (c)`},
89 {`CREATE INDEX ON a (b) INTERLEAVE IN PARENT c (d)`},
90 {`CREATE INDEX ON a (b) INTERLEAVE IN PARENT c.d (e)`},
91 {`CREATE INDEX ON a (b ASC, c DESC)`},

Callers

nothing calls this directly

Calls 3

ParseMethod · 0.95
StringMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…