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  }