(t *testing.T)
| 93 | } |
| 94 | |
| 95 | func TestLexSqlCreate(t *testing.T) { |
| 96 | |
| 97 | // CREATE {DATABASE | SCHEMA | SOURCE | VIEW | CONTINUOUSVIEW} [IF NOT EXISTS] db_name |
| 98 | // [create_specification] ... |
| 99 | verifyTokens(t, `CREATE SCHEMA IF NOT EXISTS mysource |
| 100 | WITH stuff = "hello"; |
| 101 | `, |
| 102 | []Token{ |
| 103 | tv(TokenCreate, "CREATE"), |
| 104 | tv(TokenSchema, "SCHEMA"), |
| 105 | tv(TokenIf, "IF"), |
| 106 | tv(TokenNegate, "NOT"), |
| 107 | tv(TokenExists, "EXISTS"), |
| 108 | tv(TokenIdentity, "mysource"), |
| 109 | tv(TokenWith, "WITH"), |
| 110 | tv(TokenIdentity, "stuff"), |
| 111 | tv(TokenEqual, "="), |
| 112 | tv(TokenValue, "hello"), |
| 113 | }) |
| 114 | |
| 115 | verifyTokens(t, `CREATE SCHEMA mysource WITH stuff = "hello";`, |
| 116 | []Token{ |
| 117 | tv(TokenCreate, "CREATE"), |
| 118 | tv(TokenSchema, "SCHEMA"), |
| 119 | tv(TokenIdentity, "mysource"), |
| 120 | tv(TokenWith, "WITH"), |
| 121 | tv(TokenIdentity, "stuff"), |
| 122 | tv(TokenEqual, "="), |
| 123 | tv(TokenValue, "hello"), |
| 124 | }) |
| 125 | |
| 126 | verifyTokens(t, `CREATE DATABASE mydb WITH stuff = "hello";`, |
| 127 | []Token{ |
| 128 | tv(TokenCreate, "CREATE"), |
| 129 | tv(TokenDatabase, "DATABASE"), |
| 130 | tv(TokenIdentity, "mydb"), |
| 131 | tv(TokenWith, "WITH"), |
| 132 | tv(TokenIdentity, "stuff"), |
| 133 | tv(TokenEqual, "="), |
| 134 | tv(TokenValue, "hello"), |
| 135 | }) |
| 136 | |
| 137 | verifyTokens(t, `CREATE SOURCE mysource WITH stuff = "hello";`, |
| 138 | []Token{ |
| 139 | tv(TokenCreate, "CREATE"), |
| 140 | tv(TokenSource, "SOURCE"), |
| 141 | tv(TokenIdentity, "mysource"), |
| 142 | tv(TokenWith, "WITH"), |
| 143 | tv(TokenIdentity, "stuff"), |
| 144 | tv(TokenEqual, "="), |
| 145 | tv(TokenValue, "hello"), |
| 146 | }) |
| 147 | |
| 148 | verifyTokens(t, `CREATE OR REPLACE VIEW viewx |
| 149 | AS SELECT a, b FROM mydb.tbl |
| 150 | WITH stuff = "hello";`, |
| 151 | []Token{ |
| 152 | tv(TokenCreate, "CREATE"), |
nothing calls this directly
no test coverage detected