github.com/hasnat/dolt/go@v0.0.0-20210628190320-9eb5d843fbb7/libraries/doltcore/sqle/constants.go (about) 1 // Copyright 2020 Dolthub, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package sqle 16 17 // SQL keyword constants for use in switches and comparisons 18 const ( 19 ADD = "add" 20 AGAINST = "against" 21 ALL = "all" 22 ALTER = "alter" 23 ANALYZE = "analyze" 24 AND = "and" 25 AS = "as" 26 ASC = "asc" 27 AUTO_INCREMENT = "auto_increment" 28 BEGIN = "begin" 29 BETWEEN = "between" 30 BIGINT = "bigint" 31 BINARY = "binary" 32 BIT = "bit" 33 BLOB = "blob" 34 BOOL = "bool" 35 BOOLEAN = "boolean" 36 BY = "by" 37 CASE = "case" 38 CAST = "cast" 39 CHAR = "char" 40 CHARACTER = "character" 41 CHARSET = "charset" 42 COLLATE = "collate" 43 COLUMN = "column" 44 COMMENT = "comment" 45 COMMIT = "commit" 46 COMMITTED = "committed" 47 CONSTRAINT = "constraint" 48 CONVERT = "convert" 49 CREATE = "create" 50 CROSS = "cross" 51 CURRENT_DATE = "current_date" 52 CURRENT_TIME = "current_time" 53 CURRENT_TIMESTAMP = "current_timestamp" 54 DATABASE = "database" 55 DATABASES = "databases" 56 DATE = "date" 57 DATETIME = "datetime" 58 DECIMAL = "decimal" 59 DEFAULT = "default" 60 DELETE = "delete" 61 DESC = "desc" 62 DESCRIBE = "describe" 63 DISTINCT = "distinct" 64 DIV = "div" 65 DOUBLE = "double" 66 DROP = "drop" 67 DUAL = "dual" 68 DUPLICATE = "duplicate" 69 ELSE = "else" 70 END = "end" 71 ENUM = "enum" 72 ESCAPE = "escape" 73 EXISTS = "exists" 74 EXPANSION = "expansion" 75 EXPLAIN = "explain" 76 EXTENDED = "extended" 77 FALSE = "false" 78 FLOAT_TYPE = "float" 79 FOR = "for" 80 FORCE = "force" 81 FOREIGN = "foreign" 82 FROM = "from" 83 FULL = "full" 84 FULLTEXT = "fulltext" 85 GEOMETRY = "geometry" 86 GEOMETRYCOLLECTION = "geometrycollection" 87 GLOBAL = "global" 88 GROUP = "group" 89 GROUP_CONCAT = "group_concat" 90 HAVING = "having" 91 IF = "if" 92 IGNORE = "ignore" 93 IN = "in" 94 INDEX = "index" 95 INNER = "inner" 96 INSERT = "insert" 97 INT = "int" 98 INTEGER = "integer" 99 INTERVAL = "interval" 100 INTO = "into" 101 IS = "is" 102 ISOLATION = "isolation" 103 JOIN = "join" 104 JSON = "json" 105 KEY = "key" 106 KEYS = "keys" 107 KEY_BLOCK_SIZE = "key_block_size" 108 LANGUAGE = "language" 109 LAST_INSERT_ID = "last_insert_id" 110 LEFT = "left" 111 LESS = "less" 112 LEVEL = "level" 113 LIKE = "like" 114 LIMIT = "limit" 115 LINESTRING = "linestring" 116 LOCALTIME = "localtime" 117 LOCALTIMESTAMP = "localtimestamp" 118 LOCK = "lock" 119 LONGBLOB = "longblob" 120 LONGTEXT = "longtext" 121 MATCH = "match" 122 MAXVALUE = "maxvalue" 123 MEDIUMBLOB = "mediumblob" 124 MEDIUMINT = "mediumint" 125 MEDIUMTEXT = "mediumtext" 126 MOD = "mod" 127 MODE = "mode" 128 MULTILINESTRING = "multilinestring" 129 MULTIPOINT = "multipoint" 130 MULTIPOLYGON = "multipolygon" 131 NAMES = "names" 132 NATURAL = "natural" 133 NCHAR = "nchar" 134 NEXT = "next" 135 NOT = "not" 136 NULL = "null" 137 NUMERIC = "numeric" 138 OFFSET = "offset" 139 ON = "on" 140 ONLY = "only" 141 OPTIMIZE = "optimize" 142 OR = "or" 143 ORDER = "order" 144 OUTER = "outer" 145 PARTITION = "partition" 146 POINT = "point" 147 POLYGON = "polygon" 148 PRIMARY = "primary" 149 PROCEDURE = "procedure" 150 PROCESSLIST = "processlist" 151 QUERY = "query" 152 READ = "read" 153 REAL = "real" 154 REGEXP = "regexp" 155 RLIKE = "rlike" 156 RENAME = "rename" 157 REORGANIZE = "reorganize" 158 REPAIR = "repair" 159 REPEATABLE = "repeatable" 160 REPLACE = "replace" 161 RIGHT = "right" 162 ROLLBACK = "rollback" 163 SCHEMA = "schema" 164 SELECT = "select" 165 SEPARATOR = "separator" 166 SERIALIZABLE = "serializable" 167 SESSION = "session" 168 SET = "set" 169 SHARE = "share" 170 SHOW = "show" 171 SIGNED = "signed" 172 SMALLINT = "smallint" 173 SPATIAL = "spatial" 174 SQL_CACHE = "sql_cache" 175 SQL_NO_CACHE = "sql_no_cache" 176 START = "start" 177 STATUS = "status" 178 STRAIGHT_JOIN = "straight_join" 179 STREAM = "stream" 180 SUBSTR = "substr" 181 SUBSTRING = "substring" 182 TABLE = "table" 183 TABLES = "tables" 184 TEXT = "text" 185 THAN = "than" 186 THEN = "then" 187 TIME = "time" 188 TIMESTAMP = "timestamp" 189 TINYBLOB = "tinyblob" 190 TINYINT = "tinyint" 191 TINYTEXT = "tinytext" 192 TO = "to" 193 TRANSACTION = "transaction" 194 TRIGGER = "trigger" 195 TRUE = "true" 196 TRUNCATE = "truncate" 197 UNCOMMITTED = "uncommitted" 198 UNDERSCORE_BINARY = "_binary" 199 UNION = "union" 200 UNIQUE = "unique" 201 UNSIGNED = "unsigned" 202 UPDATE = "update" 203 USE = "use" 204 USING = "using" 205 UTC_DATE = "utc_date" 206 UTC_TIME = "utc_time" 207 UTC_TIMESTAMP = "utc_timestamp" 208 UUID = "uuid" 209 VALUES = "values" 210 VARBINARY = "varbinary" 211 VARCHAR = "varchar" 212 VARIABLES = "variables" 213 VIEW = "view" 214 WHEN = "when" 215 WHERE = "where" 216 WITH = "with" 217 WRITE = "write" 218 YEAR = "year" 219 ZEROFILL = "zerofill" 220 ) 221 222 // All SQL keywords that we treat as reserved words 223 var AllKeywords = []string{ 224 ADD, 225 AGAINST, 226 ALL, 227 ALTER, 228 ANALYZE, 229 AND, 230 AS, 231 ASC, 232 AUTO_INCREMENT, 233 BEGIN, 234 BETWEEN, 235 BIGINT, 236 BINARY, 237 BIT, 238 BLOB, 239 BOOL, 240 BOOLEAN, 241 BY, 242 CASE, 243 CAST, 244 CHAR, 245 CHARACTER, 246 CHARSET, 247 COLLATE, 248 COLUMN, 249 COMMENT, 250 COMMIT, 251 COMMITTED, 252 CONSTRAINT, 253 CONVERT, 254 CREATE, 255 CROSS, 256 CURRENT_DATE, 257 CURRENT_TIME, 258 CURRENT_TIMESTAMP, 259 DATABASE, 260 DATABASES, 261 DATE, 262 DATETIME, 263 DECIMAL, 264 DEFAULT, 265 DELETE, 266 DESC, 267 DESCRIBE, 268 DISTINCT, 269 DIV, 270 DOUBLE, 271 DROP, 272 DUAL, 273 DUPLICATE, 274 ELSE, 275 END, 276 ENUM, 277 ESCAPE, 278 EXISTS, 279 EXPANSION, 280 EXPLAIN, 281 EXTENDED, 282 FALSE, 283 FLOAT_TYPE, 284 FOR, 285 FORCE, 286 FOREIGN, 287 FROM, 288 FULL, 289 FULLTEXT, 290 GEOMETRY, 291 GEOMETRYCOLLECTION, 292 GLOBAL, 293 GROUP, 294 GROUP_CONCAT, 295 HAVING, 296 IF, 297 IGNORE, 298 IN, 299 INDEX, 300 INNER, 301 INSERT, 302 INT, 303 INTEGER, 304 INTERVAL, 305 INTO, 306 IS, 307 ISOLATION, 308 JOIN, 309 JSON, 310 KEY, 311 KEYS, 312 KEY_BLOCK_SIZE, 313 LANGUAGE, 314 LAST_INSERT_ID, 315 LEFT, 316 LESS, 317 LEVEL, 318 LIKE, 319 LIMIT, 320 LINESTRING, 321 LOCALTIME, 322 LOCALTIMESTAMP, 323 LOCK, 324 LONGBLOB, 325 LONGTEXT, 326 MATCH, 327 MAXVALUE, 328 MEDIUMBLOB, 329 MEDIUMINT, 330 MEDIUMTEXT, 331 MOD, 332 MODE, 333 MULTILINESTRING, 334 MULTIPOINT, 335 MULTIPOLYGON, 336 NAMES, 337 NATURAL, 338 NCHAR, 339 NEXT, 340 NOT, 341 NULL, 342 NUMERIC, 343 OFFSET, 344 ON, 345 ONLY, 346 OPTIMIZE, 347 OR, 348 ORDER, 349 OUTER, 350 PARTITION, 351 POINT, 352 POLYGON, 353 PRIMARY, 354 PROCEDURE, 355 PROCESSLIST, 356 QUERY, 357 READ, 358 REAL, 359 REGEXP, 360 RLIKE, 361 RENAME, 362 REORGANIZE, 363 REPAIR, 364 REPEATABLE, 365 REPLACE, 366 RIGHT, 367 ROLLBACK, 368 SCHEMA, 369 SELECT, 370 SEPARATOR, 371 SERIALIZABLE, 372 SESSION, 373 SET, 374 SHARE, 375 SHOW, 376 SIGNED, 377 SMALLINT, 378 SPATIAL, 379 SQL_CACHE, 380 SQL_NO_CACHE, 381 START, 382 STATUS, 383 STRAIGHT_JOIN, 384 STREAM, 385 SUBSTR, 386 SUBSTRING, 387 TABLE, 388 TABLES, 389 TEXT, 390 THAN, 391 THEN, 392 TIME, 393 TIMESTAMP, 394 TINYBLOB, 395 TINYINT, 396 TINYTEXT, 397 TO, 398 TRANSACTION, 399 TRIGGER, 400 TRUE, 401 TRUNCATE, 402 UNCOMMITTED, 403 UNDERSCORE_BINARY, 404 UNION, 405 UNIQUE, 406 UNSIGNED, 407 UPDATE, 408 USE, 409 USING, 410 UTC_DATE, 411 UTC_TIME, 412 UTC_TIMESTAMP, 413 UUID, 414 VALUES, 415 VARBINARY, 416 VARCHAR, 417 VARIABLES, 418 VIEW, 419 WHEN, 420 WHERE, 421 WITH, 422 WRITE, 423 YEAR, 424 ZEROFILL, 425 } 426 427 // Well-supported keywords that are likely to be useful in e.g. autocompletion 428 var CommonKeywords = []string{ 429 ADD, 430 ALTER, 431 AND, 432 AS, 433 ASC, 434 BIGINT, 435 BINARY, 436 BIT, 437 BLOB, 438 BOOL, 439 BOOLEAN, 440 BY, 441 CHAR, 442 CHARACTER, 443 COLUMN, 444 COMMENT, 445 CREATE, 446 DECIMAL, 447 DEFAULT, 448 DELETE, 449 DESC, 450 DESCRIBE, 451 DISTINCT, 452 DOUBLE, 453 DROP, 454 EXISTS, 455 FALSE, 456 FLOAT_TYPE, 457 FROM, 458 FULL, 459 IGNORE, 460 IN, 461 INSERT, 462 INT, 463 INTEGER, 464 INTO, 465 IS, 466 JOIN, 467 KEY, 468 KEYS, 469 LIMIT, 470 LONGBLOB, 471 LONGTEXT, 472 MEDIUMBLOB, 473 MEDIUMINT, 474 MEDIUMTEXT, 475 NOT, 476 NULL, 477 NUMERIC, 478 OFFSET, 479 ON, 480 OR, 481 ORDER, 482 PRIMARY, 483 RENAME, 484 SCHEMA, 485 SELECT, 486 SET, 487 SHOW, 488 SIGNED, 489 SMALLINT, 490 TABLE, 491 TABLES, 492 TEXT, 493 TINYINT, 494 TINYTEXT, 495 TRUE, 496 UNSIGNED, 497 UPDATE, 498 UUID, 499 VALUES, 500 VARCHAR, 501 WHERE, 502 }