add reserved words for mysql,sqlite,mssql,oracle
This commit is contained in:
parent
fa34521ab9
commit
6ea489a1a9
199
mssql_dialect.go
199
mssql_dialect.go
|
@ -13,6 +13,196 @@ import (
|
||||||
// RegisterDialect("mssql", &mssql{})
|
// RegisterDialect("mssql", &mssql{})
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
var (
|
||||||
|
mssqlReservedWords = map[string]bool{
|
||||||
|
"ADD": true,
|
||||||
|
"EXTERNAL": true,
|
||||||
|
"PROCEDURE": true,
|
||||||
|
"ALL": true,
|
||||||
|
"FETCH": true,
|
||||||
|
"PUBLIC": true,
|
||||||
|
"ALTER": true,
|
||||||
|
"FILE": true,
|
||||||
|
"RAISERROR": true,
|
||||||
|
"AND": true,
|
||||||
|
"FILLFACTOR": true,
|
||||||
|
"READ": true,
|
||||||
|
"ANY": true,
|
||||||
|
"FOR": true,
|
||||||
|
"READTEXT": true,
|
||||||
|
"AS": true,
|
||||||
|
"FOREIGN": true,
|
||||||
|
"RECONFIGURE": true,
|
||||||
|
"ASC": true,
|
||||||
|
"FREETEXT": true,
|
||||||
|
"REFERENCES": true,
|
||||||
|
"AUTHORIZATION": true,
|
||||||
|
"FREETEXTTABLE": true,
|
||||||
|
"REPLICATION": true,
|
||||||
|
"BACKUP": true,
|
||||||
|
"FROM": true,
|
||||||
|
"RESTORE": true,
|
||||||
|
"BEGIN": true,
|
||||||
|
"FULL": true,
|
||||||
|
"RESTRICT": true,
|
||||||
|
"BETWEEN": true,
|
||||||
|
"FUNCTION": true,
|
||||||
|
"RETURN": true,
|
||||||
|
"BREAK": true,
|
||||||
|
"GOTO": true,
|
||||||
|
"REVERT": true,
|
||||||
|
"BROWSE": true,
|
||||||
|
"GRANT": true,
|
||||||
|
"REVOKE": true,
|
||||||
|
"BULK": true,
|
||||||
|
"GROUP": true,
|
||||||
|
"RIGHT": true,
|
||||||
|
"BY": true,
|
||||||
|
"HAVING": true,
|
||||||
|
"ROLLBACK": true,
|
||||||
|
"CASCADE": true,
|
||||||
|
"HOLDLOCK": true,
|
||||||
|
"ROWCOUNT": true,
|
||||||
|
"CASE": true,
|
||||||
|
"IDENTITY": true,
|
||||||
|
"ROWGUIDCOL": true,
|
||||||
|
"CHECK": true,
|
||||||
|
"IDENTITY_INSERT": true,
|
||||||
|
"RULE": true,
|
||||||
|
"CHECKPOINT": true,
|
||||||
|
"IDENTITYCOL": true,
|
||||||
|
"SAVE": true,
|
||||||
|
"CLOSE": true,
|
||||||
|
"IF": true,
|
||||||
|
"SCHEMA": true,
|
||||||
|
"CLUSTERED": true,
|
||||||
|
"IN": true,
|
||||||
|
"SECURITYAUDIT": true,
|
||||||
|
"COALESCE": true,
|
||||||
|
"INDEX": true,
|
||||||
|
"SELECT": true,
|
||||||
|
"COLLATE": true,
|
||||||
|
"INNER": true,
|
||||||
|
"SEMANTICKEYPHRASETABLE": true,
|
||||||
|
"COLUMN": true,
|
||||||
|
"INSERT": true,
|
||||||
|
"SEMANTICSIMILARITYDETAILSTABLE": true,
|
||||||
|
"COMMIT": true,
|
||||||
|
"INTERSECT": true,
|
||||||
|
"SEMANTICSIMILARITYTABLE": true,
|
||||||
|
"COMPUTE": true,
|
||||||
|
"INTO": true,
|
||||||
|
"SESSION_USER": true,
|
||||||
|
"CONSTRAINT": true,
|
||||||
|
"IS": true,
|
||||||
|
"SET": true,
|
||||||
|
"CONTAINS": true,
|
||||||
|
"JOIN": true,
|
||||||
|
"SETUSER": true,
|
||||||
|
"CONTAINSTABLE": true,
|
||||||
|
"KEY": true,
|
||||||
|
"SHUTDOWN": true,
|
||||||
|
"CONTINUE": true,
|
||||||
|
"KILL": true,
|
||||||
|
"SOME": true,
|
||||||
|
"CONVERT": true,
|
||||||
|
"LEFT": true,
|
||||||
|
"STATISTICS": true,
|
||||||
|
"CREATE": true,
|
||||||
|
"LIKE": true,
|
||||||
|
"SYSTEM_USER": true,
|
||||||
|
"CROSS": true,
|
||||||
|
"LINENO": true,
|
||||||
|
"TABLE": true,
|
||||||
|
"CURRENT": true,
|
||||||
|
"LOAD": true,
|
||||||
|
"TABLESAMPLE": true,
|
||||||
|
"CURRENT_DATE": true,
|
||||||
|
"MERGE": true,
|
||||||
|
"TEXTSIZE": true,
|
||||||
|
"CURRENT_TIME": true,
|
||||||
|
"NATIONAL": true,
|
||||||
|
"THEN": true,
|
||||||
|
"CURRENT_TIMESTAMP": true,
|
||||||
|
"NOCHECK": true,
|
||||||
|
"TO": true,
|
||||||
|
"CURRENT_USER": true,
|
||||||
|
"NONCLUSTERED": true,
|
||||||
|
"TOP": true,
|
||||||
|
"CURSOR": true,
|
||||||
|
"NOT": true,
|
||||||
|
"TRAN": true,
|
||||||
|
"DATABASE": true,
|
||||||
|
"NULL": true,
|
||||||
|
"TRANSACTION": true,
|
||||||
|
"DBCC": true,
|
||||||
|
"NULLIF": true,
|
||||||
|
"TRIGGER": true,
|
||||||
|
"DEALLOCATE": true,
|
||||||
|
"OF": true,
|
||||||
|
"TRUNCATE": true,
|
||||||
|
"DECLARE": true,
|
||||||
|
"OFF": true,
|
||||||
|
"TRY_CONVERT": true,
|
||||||
|
"DEFAULT": true,
|
||||||
|
"OFFSETS": true,
|
||||||
|
"TSEQUAL": true,
|
||||||
|
"DELETE": true,
|
||||||
|
"ON": true,
|
||||||
|
"UNION": true,
|
||||||
|
"DENY": true,
|
||||||
|
"OPEN": true,
|
||||||
|
"UNIQUE": true,
|
||||||
|
"DESC": true,
|
||||||
|
"OPENDATASOURCE": true,
|
||||||
|
"UNPIVOT": true,
|
||||||
|
"DISK": true,
|
||||||
|
"OPENQUERY": true,
|
||||||
|
"UPDATE": true,
|
||||||
|
"DISTINCT": true,
|
||||||
|
"OPENROWSET": true,
|
||||||
|
"UPDATETEXT": true,
|
||||||
|
"DISTRIBUTED": true,
|
||||||
|
"OPENXML": true,
|
||||||
|
"USE": true,
|
||||||
|
"DOUBLE": true,
|
||||||
|
"OPTION": true,
|
||||||
|
"USER": true,
|
||||||
|
"DROP": true,
|
||||||
|
"OR": true,
|
||||||
|
"VALUES": true,
|
||||||
|
"DUMP": true,
|
||||||
|
"ORDER": true,
|
||||||
|
"VARYING": true,
|
||||||
|
"ELSE": true,
|
||||||
|
"OUTER": true,
|
||||||
|
"VIEW": true,
|
||||||
|
"END": true,
|
||||||
|
"OVER": true,
|
||||||
|
"WAITFOR": true,
|
||||||
|
"ERRLVL": true,
|
||||||
|
"PERCENT": true,
|
||||||
|
"WHEN": true,
|
||||||
|
"ESCAPE": true,
|
||||||
|
"PIVOT": true,
|
||||||
|
"WHERE": true,
|
||||||
|
"EXCEPT": true,
|
||||||
|
"PLAN": true,
|
||||||
|
"WHILE": true,
|
||||||
|
"EXEC": true,
|
||||||
|
"PRECISION": true,
|
||||||
|
"WITH": true,
|
||||||
|
"EXECUTE": true,
|
||||||
|
"PRIMARY": true,
|
||||||
|
"WITHIN": true,
|
||||||
|
"EXISTS": true,
|
||||||
|
"PRINT": true,
|
||||||
|
"WRITETEXT": true,
|
||||||
|
"EXIT": true,
|
||||||
|
"PROC": true,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
type mssql struct {
|
type mssql struct {
|
||||||
core.Base
|
core.Base
|
||||||
}
|
}
|
||||||
|
@ -74,6 +264,15 @@ func (db *mssql) SupportInsertMany() bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *mssql) IsReserved(name string) bool {
|
||||||
|
_, ok := mssqlReservedWords[name]
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (db *mssql) Quote(name string) string {
|
||||||
|
return "[" + name + "]"
|
||||||
|
}
|
||||||
|
|
||||||
func (db *mssql) QuoteStr() string {
|
func (db *mssql) QuoteStr() string {
|
||||||
return "\""
|
return "\""
|
||||||
}
|
}
|
||||||
|
|
262
mysql_dialect.go
262
mysql_dialect.go
|
@ -16,118 +16,147 @@ import (
|
||||||
// }
|
// }
|
||||||
|
|
||||||
var (
|
var (
|
||||||
reservedWords = map[string]bool{
|
mysqlReservedWords = map[string]bool{
|
||||||
"ADD":true,
|
"ADD": true,
|
||||||
"ALL":true,
|
"ALL": true,
|
||||||
"ALTER":true,
|
"ALTER": true,
|
||||||
"ANALYZE":true,
|
"ANALYZE": true,
|
||||||
"AND":true,
|
"AND": true,
|
||||||
"AS": true,
|
"AS": true,
|
||||||
"ASC":true,
|
"ASC": true,
|
||||||
"ASENSITIVE":true,
|
"ASENSITIVE": true,
|
||||||
"BEFORE":true,
|
"BEFORE": true,
|
||||||
"BETWEEN":true,
|
"BETWEEN": true,
|
||||||
"BIGINT":true,
|
"BIGINT": true,
|
||||||
"BINARY":true,
|
"BINARY": true,
|
||||||
"BLOB":true,
|
"BLOB": true,
|
||||||
"BOTH":true,
|
"BOTH": true,
|
||||||
"BY":true,
|
"BY": true,
|
||||||
"CALL":true,
|
"CALL": true,
|
||||||
"CASCADE":true,
|
"CASCADE": true,
|
||||||
"CASE":true,
|
"CASE": true,
|
||||||
"CHANGE":true,
|
"CHANGE": true,
|
||||||
"CHAR":true,
|
"CHAR": true,
|
||||||
"CHARACTER":true,
|
"CHARACTER": true,
|
||||||
"CHECK":true,
|
"CHECK": true,
|
||||||
"COLLATE":true,
|
"COLLATE": true,
|
||||||
"COLUMN":true,
|
"COLUMN": true,
|
||||||
"CONDITION":true,
|
"CONDITION": true,
|
||||||
"CONNECTION":true,
|
"CONNECTION": true,
|
||||||
"CONSTRAINT":true,
|
"CONSTRAINT": true,
|
||||||
"CONTINUE":true,
|
"CONTINUE": true,
|
||||||
"CONVERT":true,
|
"CONVERT": true,
|
||||||
"CREATE":true,
|
"CREATE": true,
|
||||||
"CROSS":true,
|
"CROSS": true,
|
||||||
"CURRENT_DATE":true,
|
"CURRENT_DATE": true,
|
||||||
"CURRENT_TIME":true,
|
"CURRENT_TIME": true,
|
||||||
"CURRENT_TIMESTAMP":true,
|
"CURRENT_TIMESTAMP": true,
|
||||||
"CURRENT_USER":true,
|
"CURRENT_USER": true,
|
||||||
"CURSOR":true,
|
"CURSOR": true,
|
||||||
"DATABASE":true,
|
"DATABASE": true,
|
||||||
"DATABASES":true,
|
"DATABASES": true,
|
||||||
"DAY_HOUR":true,
|
"DAY_HOUR": true,
|
||||||
"DAY_MICROSECOND":true,
|
"DAY_MICROSECOND": true,
|
||||||
"DAY_MINUTE":true,
|
"DAY_MINUTE": true,
|
||||||
"DAY_SECOND":true,
|
"DAY_SECOND": true,
|
||||||
DEC DECIMAL DECLARE
|
"DEC": true,
|
||||||
DEFAULT DELAYED DELETE
|
"DECIMAL": true,
|
||||||
DESC DESCRIBE DETERMINISTIC
|
"DECLARE": true,
|
||||||
DISTINCT DISTINCTROW DIV
|
"DEFAULT": true,
|
||||||
DOUBLE DROP DUAL
|
"DELAYED": true,
|
||||||
EACH ELSE ELSEIF
|
"DELETE": true,
|
||||||
ENCLOSED ESCAPED EXISTS
|
"DESC": true,
|
||||||
EXIT EXPLAIN FALSE
|
"DESCRIBE": true,
|
||||||
FETCH FLOAT FLOAT4
|
"DETERMINISTIC": true,
|
||||||
FLOAT8 FOR FORCE
|
"DISTINCT": true,
|
||||||
FOREIGN FROM FULLTEXT
|
"DISTINCTROW": true,
|
||||||
GOTO GRANT GROUP
|
"DIV": true,
|
||||||
HAVING HIGH_PRIORITY HOUR_MICROSECOND
|
"DOUBLE": true,
|
||||||
HOUR_MINUTE HOUR_SECOND IF
|
"DROP": true,
|
||||||
IGNORE IN INDEX
|
"DUAL": true,
|
||||||
INFILE INNER INOUT
|
"EACH": true,
|
||||||
INSENSITIVE INSERT INT
|
"ELSE": true,
|
||||||
INT1 INT2 INT3
|
"ELSEIF": true,
|
||||||
INT4 INT8 INTEGER
|
"ENCLOSED": true,
|
||||||
INTERVAL INTO IS
|
"ESCAPED": true,
|
||||||
ITERATE JOIN KEY
|
"EXISTS": true,
|
||||||
KEYS KILL LABEL
|
"EXIT": true,
|
||||||
LEADING LEAVE LEFT
|
"EXPLAIN": true,
|
||||||
LIKE LIMIT LINEAR
|
"FALSE": true,
|
||||||
LINES LOAD LOCALTIME
|
"FETCH": true,
|
||||||
LOCALTIMESTAMP LOCK LONG
|
"FLOAT": true,
|
||||||
LONGBLOB LONGTEXT LOOP
|
"FLOAT4": true,
|
||||||
LOW_PRIORITY MATCH MEDIUMBLOB
|
"FLOAT8": true,
|
||||||
MEDIUMINT MEDIUMTEXT MIDDLEINT
|
"FOR": true,
|
||||||
MINUTE_MICROSECOND MINUTE_SECOND MOD
|
"FORCE": true,
|
||||||
MODIFIES NATURAL NOT
|
"FOREIGN": true,
|
||||||
NO_WRITE_TO_BINLOG NULL NUMERIC
|
"FROM": true,
|
||||||
ON OPTIMIZE OPTION
|
"FULLTEXT": true,
|
||||||
OPTIONALLY OR ORDER
|
"GOTO": true,
|
||||||
OUT OUTER OUTFILE
|
"GRANT": true,
|
||||||
PRECISION PRIMARY PROCEDURE
|
"GROUP": true,
|
||||||
PURGE RAID0 RANGE
|
"HAVING": true,
|
||||||
READ READS REAL
|
"HIGH_PRIORITY": true,
|
||||||
REFERENCES REGEXP RELEASE
|
"HOUR_MICROSECOND": true,
|
||||||
RENAME REPEAT REPLACE
|
"HOUR_MINUTE": true,
|
||||||
REQUIRE RESTRICT RETURN
|
"HOUR_SECOND": true,
|
||||||
REVOKE RIGHT RLIKE
|
"IF": true,
|
||||||
SCHEMA SCHEMAS SECOND_MICROSECOND
|
"IGNORE": true,
|
||||||
SELECT SENSITIVE SEPARATOR
|
"IN": true, "INDEX": true,
|
||||||
SET SHOW SMALLINT
|
"INFILE": true, "INNER": true, "INOUT": true,
|
||||||
SPATIAL SPECIFIC SQL
|
"INSENSITIVE": true, "INSERT": true, "INT": true,
|
||||||
SQLEXCEPTION SQLSTATE SQLWARNING
|
"INT1": true, "INT2": true, "INT3": true,
|
||||||
SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT
|
"INT4": true, "INT8": true, "INTEGER": true,
|
||||||
SSL STARTING STRAIGHT_JOIN
|
"INTERVAL": true, "INTO": true, "IS": true,
|
||||||
TABLE TERMINATED THEN
|
"ITERATE": true, "JOIN": true, "KEY": true,
|
||||||
TINYBLOB TINYINT TINYTEXT
|
"KEYS": true, "KILL": true, "LABEL": true,
|
||||||
TO TRAILING TRIGGER
|
"LEADING": true, "LEAVE": true, "LEFT": true,
|
||||||
TRUE UNDO UNION
|
"LIKE": true, "LIMIT": true, "LINEAR": true,
|
||||||
UNIQUE UNLOCK UNSIGNED
|
"LINES": true, "LOAD": true, "LOCALTIME": true,
|
||||||
UPDATE USAGE USE
|
"LOCALTIMESTAMP": true, "LOCK": true, "LONG": true,
|
||||||
USING UTC_DATE UTC_TIME
|
"LONGBLOB": true, "LONGTEXT": true, "LOOP": true,
|
||||||
UTC_TIMESTAMP VALUES VARBINARY
|
"LOW_PRIORITY": true, "MATCH": true, "MEDIUMBLOB": true,
|
||||||
"VARCHAR":true,
|
"MEDIUMINT": true, "MEDIUMTEXT": true, "MIDDLEINT": true,
|
||||||
"VARCHARACTER":true,
|
"MINUTE_MICROSECOND": true, "MINUTE_SECOND": true, "MOD": true,
|
||||||
"VARYING":true,
|
"MODIFIES": true, "NATURAL": true, "NOT": true,
|
||||||
"WHEN":true,
|
"NO_WRITE_TO_BINLOG": true, "NULL": true, "NUMERIC": true,
|
||||||
"WHERE":true,
|
"ON OPTIMIZE": true, "OPTION": true,
|
||||||
"WHILE":true,
|
"OPTIONALLY": true, "OR": true, "ORDER": true,
|
||||||
"WITH":true,
|
"OUT": true, "OUTER": true, "OUTFILE": true,
|
||||||
"WRITE":true,
|
"PRECISION": true, "PRIMARY": true, "PROCEDURE": true,
|
||||||
"X509":true,
|
"PURGE": true, "RAID0": true, "RANGE": true,
|
||||||
"XOR":true,
|
"READ": true, "READS": true, "REAL": true,
|
||||||
"YEAR_MONTH":true,
|
"REFERENCES": true, "REGEXP": true, "RELEASE": true,
|
||||||
"ZEROFILL":true,
|
"RENAME": true, "REPEAT": true, "REPLACE": true,
|
||||||
|
"REQUIRE": true, "RESTRICT": true, "RETURN": true,
|
||||||
|
"REVOKE": true, "RIGHT": true, "RLIKE": true,
|
||||||
|
"SCHEMA": true, "SCHEMAS": true, "SECOND_MICROSECOND": true,
|
||||||
|
"SELECT": true, "SENSITIVE": true, "SEPARATOR": true,
|
||||||
|
"SET": true, "SHOW": true, "SMALLINT": true,
|
||||||
|
"SPATIAL": true, "SPECIFIC": true, "SQL": true,
|
||||||
|
"SQLEXCEPTION": true, "SQLSTATE": true, "SQLWARNING": true,
|
||||||
|
"SQL_BIG_RESULT": true, "SQL_CALC_FOUND_ROWS": true, "SQL_SMALL_RESULT": true,
|
||||||
|
"SSL": true, "STARTING": true, "STRAIGHT_JOIN": true,
|
||||||
|
"TABLE": true, "TERMINATED": true, "THEN": true,
|
||||||
|
"TINYBLOB": true, "TINYINT": true, "TINYTEXT": true,
|
||||||
|
"TO": true, "TRAILING": true, "TRIGGER": true,
|
||||||
|
"TRUE": true, "UNDO": true, "UNION": true,
|
||||||
|
"UNIQUE": true, "UNLOCK": true, "UNSIGNED": true,
|
||||||
|
"UPDATE": true, "USAGE": true, "USE": true,
|
||||||
|
"USING": true, "UTC_DATE": true, "UTC_TIME": true,
|
||||||
|
"UTC_TIMESTAMP": true, "VALUES": true, "VARBINARY": true,
|
||||||
|
"VARCHAR": true,
|
||||||
|
"VARCHARACTER": true,
|
||||||
|
"VARYING": true,
|
||||||
|
"WHEN": true,
|
||||||
|
"WHERE": true,
|
||||||
|
"WHILE": true,
|
||||||
|
"WITH": true,
|
||||||
|
"WRITE": true,
|
||||||
|
"X509": true,
|
||||||
|
"XOR": true,
|
||||||
|
"YEAR_MONTH": true,
|
||||||
|
"ZEROFILL": true,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -211,6 +240,15 @@ func (db *mysql) SupportInsertMany() bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *mysql) IsReserved(name string) bool {
|
||||||
|
_, ok := mysqlReservedWords[name]
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (db *mysql) Quote(name string) string {
|
||||||
|
return "`" + name + "`"
|
||||||
|
}
|
||||||
|
|
||||||
func (db *mysql) QuoteStr() string {
|
func (db *mysql) QuoteStr() string {
|
||||||
return "`"
|
return "`"
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,490 @@ import (
|
||||||
// RegisterDialect("oracle", &oracle{})
|
// RegisterDialect("oracle", &oracle{})
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
var (
|
||||||
|
oracleReservedWords = map[string]bool{
|
||||||
|
"ACCESS": true,
|
||||||
|
"ACCOUNT": true,
|
||||||
|
"ACTIVATE": true,
|
||||||
|
"ADD": true,
|
||||||
|
"ADMIN": true,
|
||||||
|
"ADVISE": true,
|
||||||
|
"AFTER": true,
|
||||||
|
"ALL": true,
|
||||||
|
"ALL_ROWS": true,
|
||||||
|
"ALLOCATE": true,
|
||||||
|
"ALTER": true,
|
||||||
|
"ANALYZE": true,
|
||||||
|
"AND": true,
|
||||||
|
"ANY": true,
|
||||||
|
"ARCHIVE": true,
|
||||||
|
"ARCHIVELOG": true,
|
||||||
|
"ARRAY": true,
|
||||||
|
"AS": true,
|
||||||
|
"ASC": true,
|
||||||
|
"AT": true,
|
||||||
|
"AUDIT": true,
|
||||||
|
"AUTHENTICATED": true,
|
||||||
|
"AUTHORIZATION": true,
|
||||||
|
"AUTOEXTEND": true,
|
||||||
|
"AUTOMATIC": true,
|
||||||
|
"BACKUP": true,
|
||||||
|
"BECOME": true,
|
||||||
|
"BEFORE": true,
|
||||||
|
"BEGIN": true,
|
||||||
|
"BETWEEN": true,
|
||||||
|
"BFILE": true,
|
||||||
|
"BITMAP": true,
|
||||||
|
"BLOB": true,
|
||||||
|
"BLOCK": true,
|
||||||
|
"BODY": true,
|
||||||
|
"BY": true,
|
||||||
|
"CACHE": true,
|
||||||
|
"CACHE_INSTANCES": true,
|
||||||
|
"CANCEL": true,
|
||||||
|
"CASCADE": true,
|
||||||
|
"CAST": true,
|
||||||
|
"CFILE": true,
|
||||||
|
"CHAINED": true,
|
||||||
|
"CHANGE": true,
|
||||||
|
"CHAR": true,
|
||||||
|
"CHAR_CS": true,
|
||||||
|
"CHARACTER": true,
|
||||||
|
"CHECK": true,
|
||||||
|
"CHECKPOINT": true,
|
||||||
|
"CHOOSE": true,
|
||||||
|
"CHUNK": true,
|
||||||
|
"CLEAR": true,
|
||||||
|
"CLOB": true,
|
||||||
|
"CLONE": true,
|
||||||
|
"CLOSE": true,
|
||||||
|
"CLOSE_CACHED_OPEN_CURSORS": true,
|
||||||
|
"CLUSTER": true,
|
||||||
|
"COALESCE": true,
|
||||||
|
"COLUMN": true,
|
||||||
|
"COLUMNS": true,
|
||||||
|
"COMMENT": true,
|
||||||
|
"COMMIT": true,
|
||||||
|
"COMMITTED": true,
|
||||||
|
"COMPATIBILITY": true,
|
||||||
|
"COMPILE": true,
|
||||||
|
"COMPLETE": true,
|
||||||
|
"COMPOSITE_LIMIT": true,
|
||||||
|
"COMPRESS": true,
|
||||||
|
"COMPUTE": true,
|
||||||
|
"CONNECT": true,
|
||||||
|
"CONNECT_TIME": true,
|
||||||
|
"CONSTRAINT": true,
|
||||||
|
"CONSTRAINTS": true,
|
||||||
|
"CONTENTS": true,
|
||||||
|
"CONTINUE": true,
|
||||||
|
"CONTROLFILE": true,
|
||||||
|
"CONVERT": true,
|
||||||
|
"COST": true,
|
||||||
|
"CPU_PER_CALL": true,
|
||||||
|
"CPU_PER_SESSION": true,
|
||||||
|
"CREATE": true,
|
||||||
|
"CURRENT": true,
|
||||||
|
"CURRENT_SCHEMA": true,
|
||||||
|
"CURREN_USER": true,
|
||||||
|
"CURSOR": true,
|
||||||
|
"CYCLE": true,
|
||||||
|
"DANGLING": true,
|
||||||
|
"DATABASE": true,
|
||||||
|
"DATAFILE": true,
|
||||||
|
"DATAFILES": true,
|
||||||
|
"DATAOBJNO": true,
|
||||||
|
"DATE": true,
|
||||||
|
"DBA": true,
|
||||||
|
"DBHIGH": true,
|
||||||
|
"DBLOW": true,
|
||||||
|
"DBMAC": true,
|
||||||
|
"DEALLOCATE": true,
|
||||||
|
"DEBUG": true,
|
||||||
|
"DEC": true,
|
||||||
|
"DECIMAL": true,
|
||||||
|
"DECLARE": true,
|
||||||
|
"DEFAULT": true,
|
||||||
|
"DEFERRABLE": true,
|
||||||
|
"DEFERRED": true,
|
||||||
|
"DEGREE": true,
|
||||||
|
"DELETE": true,
|
||||||
|
"DEREF": true,
|
||||||
|
"DESC": true,
|
||||||
|
"DIRECTORY": true,
|
||||||
|
"DISABLE": true,
|
||||||
|
"DISCONNECT": true,
|
||||||
|
"DISMOUNT": true,
|
||||||
|
"DISTINCT": true,
|
||||||
|
"DISTRIBUTED": true,
|
||||||
|
"DML": true,
|
||||||
|
"DOUBLE": true,
|
||||||
|
"DROP": true,
|
||||||
|
"DUMP": true,
|
||||||
|
"EACH": true,
|
||||||
|
"ELSE": true,
|
||||||
|
"ENABLE": true,
|
||||||
|
"END": true,
|
||||||
|
"ENFORCE": true,
|
||||||
|
"ENTRY": true,
|
||||||
|
"ESCAPE": true,
|
||||||
|
"EXCEPT": true,
|
||||||
|
"EXCEPTIONS": true,
|
||||||
|
"EXCHANGE": true,
|
||||||
|
"EXCLUDING": true,
|
||||||
|
"EXCLUSIVE": true,
|
||||||
|
"EXECUTE": true,
|
||||||
|
"EXISTS": true,
|
||||||
|
"EXPIRE": true,
|
||||||
|
"EXPLAIN": true,
|
||||||
|
"EXTENT": true,
|
||||||
|
"EXTENTS": true,
|
||||||
|
"EXTERNALLY": true,
|
||||||
|
"FAILED_LOGIN_ATTEMPTS": true,
|
||||||
|
"FALSE": true,
|
||||||
|
"FAST": true,
|
||||||
|
"FILE": true,
|
||||||
|
"FIRST_ROWS": true,
|
||||||
|
"FLAGGER": true,
|
||||||
|
"FLOAT": true,
|
||||||
|
"FLOB": true,
|
||||||
|
"FLUSH": true,
|
||||||
|
"FOR": true,
|
||||||
|
"FORCE": true,
|
||||||
|
"FOREIGN": true,
|
||||||
|
"FREELIST": true,
|
||||||
|
"FREELISTS": true,
|
||||||
|
"FROM": true,
|
||||||
|
"FULL": true,
|
||||||
|
"FUNCTION": true,
|
||||||
|
"GLOBAL": true,
|
||||||
|
"GLOBALLY": true,
|
||||||
|
"GLOBAL_NAME": true,
|
||||||
|
"GRANT": true,
|
||||||
|
"GROUP": true,
|
||||||
|
"GROUPS": true,
|
||||||
|
"HASH": true,
|
||||||
|
"HASHKEYS": true,
|
||||||
|
"HAVING": true,
|
||||||
|
"HEADER": true,
|
||||||
|
"HEAP": true,
|
||||||
|
"IDENTIFIED": true,
|
||||||
|
"IDGENERATORS": true,
|
||||||
|
"IDLE_TIME": true,
|
||||||
|
"IF": true,
|
||||||
|
"IMMEDIATE": true,
|
||||||
|
"IN": true,
|
||||||
|
"INCLUDING": true,
|
||||||
|
"INCREMENT": true,
|
||||||
|
"INDEX": true,
|
||||||
|
"INDEXED": true,
|
||||||
|
"INDEXES": true,
|
||||||
|
"INDICATOR": true,
|
||||||
|
"IND_PARTITION": true,
|
||||||
|
"INITIAL": true,
|
||||||
|
"INITIALLY": true,
|
||||||
|
"INITRANS": true,
|
||||||
|
"INSERT": true,
|
||||||
|
"INSTANCE": true,
|
||||||
|
"INSTANCES": true,
|
||||||
|
"INSTEAD": true,
|
||||||
|
"INT": true,
|
||||||
|
"INTEGER": true,
|
||||||
|
"INTERMEDIATE": true,
|
||||||
|
"INTERSECT": true,
|
||||||
|
"INTO": true,
|
||||||
|
"IS": true,
|
||||||
|
"ISOLATION": true,
|
||||||
|
"ISOLATION_LEVEL": true,
|
||||||
|
"KEEP": true,
|
||||||
|
"KEY": true,
|
||||||
|
"KILL": true,
|
||||||
|
"LABEL": true,
|
||||||
|
"LAYER": true,
|
||||||
|
"LESS": true,
|
||||||
|
"LEVEL": true,
|
||||||
|
"LIBRARY": true,
|
||||||
|
"LIKE": true,
|
||||||
|
"LIMIT": true,
|
||||||
|
"LINK": true,
|
||||||
|
"LIST": true,
|
||||||
|
"LOB": true,
|
||||||
|
"LOCAL": true,
|
||||||
|
"LOCK": true,
|
||||||
|
"LOCKED": true,
|
||||||
|
"LOG": true,
|
||||||
|
"LOGFILE": true,
|
||||||
|
"LOGGING": true,
|
||||||
|
"LOGICAL_READS_PER_CALL": true,
|
||||||
|
"LOGICAL_READS_PER_SESSION": true,
|
||||||
|
"LONG": true,
|
||||||
|
"MANAGE": true,
|
||||||
|
"MASTER": true,
|
||||||
|
"MAX": true,
|
||||||
|
"MAXARCHLOGS": true,
|
||||||
|
"MAXDATAFILES": true,
|
||||||
|
"MAXEXTENTS": true,
|
||||||
|
"MAXINSTANCES": true,
|
||||||
|
"MAXLOGFILES": true,
|
||||||
|
"MAXLOGHISTORY": true,
|
||||||
|
"MAXLOGMEMBERS": true,
|
||||||
|
"MAXSIZE": true,
|
||||||
|
"MAXTRANS": true,
|
||||||
|
"MAXVALUE": true,
|
||||||
|
"MIN": true,
|
||||||
|
"MEMBER": true,
|
||||||
|
"MINIMUM": true,
|
||||||
|
"MINEXTENTS": true,
|
||||||
|
"MINUS": true,
|
||||||
|
"MINVALUE": true,
|
||||||
|
"MLSLABEL": true,
|
||||||
|
"MLS_LABEL_FORMAT": true,
|
||||||
|
"MODE": true,
|
||||||
|
"MODIFY": true,
|
||||||
|
"MOUNT": true,
|
||||||
|
"MOVE": true,
|
||||||
|
"MTS_DISPATCHERS": true,
|
||||||
|
"MULTISET": true,
|
||||||
|
"NATIONAL": true,
|
||||||
|
"NCHAR": true,
|
||||||
|
"NCHAR_CS": true,
|
||||||
|
"NCLOB": true,
|
||||||
|
"NEEDED": true,
|
||||||
|
"NESTED": true,
|
||||||
|
"NETWORK": true,
|
||||||
|
"NEW": true,
|
||||||
|
"NEXT": true,
|
||||||
|
"NOARCHIVELOG": true,
|
||||||
|
"NOAUDIT": true,
|
||||||
|
"NOCACHE": true,
|
||||||
|
"NOCOMPRESS": true,
|
||||||
|
"NOCYCLE": true,
|
||||||
|
"NOFORCE": true,
|
||||||
|
"NOLOGGING": true,
|
||||||
|
"NOMAXVALUE": true,
|
||||||
|
"NOMINVALUE": true,
|
||||||
|
"NONE": true,
|
||||||
|
"NOORDER": true,
|
||||||
|
"NOOVERRIDE": true,
|
||||||
|
"NOPARALLEL": true,
|
||||||
|
"NOREVERSE": true,
|
||||||
|
"NORMAL": true,
|
||||||
|
"NOSORT": true,
|
||||||
|
"NOT": true,
|
||||||
|
"NOTHING": true,
|
||||||
|
"NOWAIT": true,
|
||||||
|
"NULL": true,
|
||||||
|
"NUMBER": true,
|
||||||
|
"NUMERIC": true,
|
||||||
|
"NVARCHAR2": true,
|
||||||
|
"OBJECT": true,
|
||||||
|
"OBJNO": true,
|
||||||
|
"OBJNO_REUSE": true,
|
||||||
|
"OF": true,
|
||||||
|
"OFF": true,
|
||||||
|
"OFFLINE": true,
|
||||||
|
"OID": true,
|
||||||
|
"OIDINDEX": true,
|
||||||
|
"OLD": true,
|
||||||
|
"ON": true,
|
||||||
|
"ONLINE": true,
|
||||||
|
"ONLY": true,
|
||||||
|
"OPCODE": true,
|
||||||
|
"OPEN": true,
|
||||||
|
"OPTIMAL": true,
|
||||||
|
"OPTIMIZER_GOAL": true,
|
||||||
|
"OPTION": true,
|
||||||
|
"OR": true,
|
||||||
|
"ORDER": true,
|
||||||
|
"ORGANIZATION": true,
|
||||||
|
"OSLABEL": true,
|
||||||
|
"OVERFLOW": true,
|
||||||
|
"OWN": true,
|
||||||
|
"PACKAGE": true,
|
||||||
|
"PARALLEL": true,
|
||||||
|
"PARTITION": true,
|
||||||
|
"PASSWORD": true,
|
||||||
|
"PASSWORD_GRACE_TIME": true,
|
||||||
|
"PASSWORD_LIFE_TIME": true,
|
||||||
|
"PASSWORD_LOCK_TIME": true,
|
||||||
|
"PASSWORD_REUSE_MAX": true,
|
||||||
|
"PASSWORD_REUSE_TIME": true,
|
||||||
|
"PASSWORD_VERIFY_FUNCTION": true,
|
||||||
|
"PCTFREE": true,
|
||||||
|
"PCTINCREASE": true,
|
||||||
|
"PCTTHRESHOLD": true,
|
||||||
|
"PCTUSED": true,
|
||||||
|
"PCTVERSION": true,
|
||||||
|
"PERCENT": true,
|
||||||
|
"PERMANENT": true,
|
||||||
|
"PLAN": true,
|
||||||
|
"PLSQL_DEBUG": true,
|
||||||
|
"POST_TRANSACTION": true,
|
||||||
|
"PRECISION": true,
|
||||||
|
"PRESERVE": true,
|
||||||
|
"PRIMARY": true,
|
||||||
|
"PRIOR": true,
|
||||||
|
"PRIVATE": true,
|
||||||
|
"PRIVATE_SGA": true,
|
||||||
|
"PRIVILEGE": true,
|
||||||
|
"PRIVILEGES": true,
|
||||||
|
"PROCEDURE": true,
|
||||||
|
"PROFILE": true,
|
||||||
|
"PUBLIC": true,
|
||||||
|
"PURGE": true,
|
||||||
|
"QUEUE": true,
|
||||||
|
"QUOTA": true,
|
||||||
|
"RANGE": true,
|
||||||
|
"RAW": true,
|
||||||
|
"RBA": true,
|
||||||
|
"READ": true,
|
||||||
|
"READUP": true,
|
||||||
|
"REAL": true,
|
||||||
|
"REBUILD": true,
|
||||||
|
"RECOVER": true,
|
||||||
|
"RECOVERABLE": true,
|
||||||
|
"RECOVERY": true,
|
||||||
|
"REF": true,
|
||||||
|
"REFERENCES": true,
|
||||||
|
"REFERENCING": true,
|
||||||
|
"REFRESH": true,
|
||||||
|
"RENAME": true,
|
||||||
|
"REPLACE": true,
|
||||||
|
"RESET": true,
|
||||||
|
"RESETLOGS": true,
|
||||||
|
"RESIZE": true,
|
||||||
|
"RESOURCE": true,
|
||||||
|
"RESTRICTED": true,
|
||||||
|
"RETURN": true,
|
||||||
|
"RETURNING": true,
|
||||||
|
"REUSE": true,
|
||||||
|
"REVERSE": true,
|
||||||
|
"REVOKE": true,
|
||||||
|
"ROLE": true,
|
||||||
|
"ROLES": true,
|
||||||
|
"ROLLBACK": true,
|
||||||
|
"ROW": true,
|
||||||
|
"ROWID": true,
|
||||||
|
"ROWNUM": true,
|
||||||
|
"ROWS": true,
|
||||||
|
"RULE": true,
|
||||||
|
"SAMPLE": true,
|
||||||
|
"SAVEPOINT": true,
|
||||||
|
"SB4": true,
|
||||||
|
"SCAN_INSTANCES": true,
|
||||||
|
"SCHEMA": true,
|
||||||
|
"SCN": true,
|
||||||
|
"SCOPE": true,
|
||||||
|
"SD_ALL": true,
|
||||||
|
"SD_INHIBIT": true,
|
||||||
|
"SD_SHOW": true,
|
||||||
|
"SEGMENT": true,
|
||||||
|
"SEG_BLOCK": true,
|
||||||
|
"SEG_FILE": true,
|
||||||
|
"SELECT": true,
|
||||||
|
"SEQUENCE": true,
|
||||||
|
"SERIALIZABLE": true,
|
||||||
|
"SESSION": true,
|
||||||
|
"SESSION_CACHED_CURSORS": true,
|
||||||
|
"SESSIONS_PER_USER": true,
|
||||||
|
"SET": true,
|
||||||
|
"SHARE": true,
|
||||||
|
"SHARED": true,
|
||||||
|
"SHARED_POOL": true,
|
||||||
|
"SHRINK": true,
|
||||||
|
"SIZE": true,
|
||||||
|
"SKIP": true,
|
||||||
|
"SKIP_UNUSABLE_INDEXES": true,
|
||||||
|
"SMALLINT": true,
|
||||||
|
"SNAPSHOT": true,
|
||||||
|
"SOME": true,
|
||||||
|
"SORT": true,
|
||||||
|
"SPECIFICATION": true,
|
||||||
|
"SPLIT": true,
|
||||||
|
"SQL_TRACE": true,
|
||||||
|
"STANDBY": true,
|
||||||
|
"START": true,
|
||||||
|
"STATEMENT_ID": true,
|
||||||
|
"STATISTICS": true,
|
||||||
|
"STOP": true,
|
||||||
|
"STORAGE": true,
|
||||||
|
"STORE": true,
|
||||||
|
"STRUCTURE": true,
|
||||||
|
"SUCCESSFUL": true,
|
||||||
|
"SWITCH": true,
|
||||||
|
"SYS_OP_ENFORCE_NOT_NULL$": true,
|
||||||
|
"SYS_OP_NTCIMG$": true,
|
||||||
|
"SYNONYM": true,
|
||||||
|
"SYSDATE": true,
|
||||||
|
"SYSDBA": true,
|
||||||
|
"SYSOPER": true,
|
||||||
|
"SYSTEM": true,
|
||||||
|
"TABLE": true,
|
||||||
|
"TABLES": true,
|
||||||
|
"TABLESPACE": true,
|
||||||
|
"TABLESPACE_NO": true,
|
||||||
|
"TABNO": true,
|
||||||
|
"TEMPORARY": true,
|
||||||
|
"THAN": true,
|
||||||
|
"THE": true,
|
||||||
|
"THEN": true,
|
||||||
|
"THREAD": true,
|
||||||
|
"TIMESTAMP": true,
|
||||||
|
"TIME": true,
|
||||||
|
"TO": true,
|
||||||
|
"TOPLEVEL": true,
|
||||||
|
"TRACE": true,
|
||||||
|
"TRACING": true,
|
||||||
|
"TRANSACTION": true,
|
||||||
|
"TRANSITIONAL": true,
|
||||||
|
"TRIGGER": true,
|
||||||
|
"TRIGGERS": true,
|
||||||
|
"TRUE": true,
|
||||||
|
"TRUNCATE": true,
|
||||||
|
"TX": true,
|
||||||
|
"TYPE": true,
|
||||||
|
"UB2": true,
|
||||||
|
"UBA": true,
|
||||||
|
"UID": true,
|
||||||
|
"UNARCHIVED": true,
|
||||||
|
"UNDO": true,
|
||||||
|
"UNION": true,
|
||||||
|
"UNIQUE": true,
|
||||||
|
"UNLIMITED": true,
|
||||||
|
"UNLOCK": true,
|
||||||
|
"UNRECOVERABLE": true,
|
||||||
|
"UNTIL": true,
|
||||||
|
"UNUSABLE": true,
|
||||||
|
"UNUSED": true,
|
||||||
|
"UPDATABLE": true,
|
||||||
|
"UPDATE": true,
|
||||||
|
"USAGE": true,
|
||||||
|
"USE": true,
|
||||||
|
"USER": true,
|
||||||
|
"USING": true,
|
||||||
|
"VALIDATE": true,
|
||||||
|
"VALIDATION": true,
|
||||||
|
"VALUE": true,
|
||||||
|
"VALUES": true,
|
||||||
|
"VARCHAR": true,
|
||||||
|
"VARCHAR2": true,
|
||||||
|
"VARYING": true,
|
||||||
|
"VIEW": true,
|
||||||
|
"WHEN": true,
|
||||||
|
"WHENEVER": true,
|
||||||
|
"WHERE": true,
|
||||||
|
"WITH": true,
|
||||||
|
"WITHOUT": true,
|
||||||
|
"WORK": true,
|
||||||
|
"WRITE": true,
|
||||||
|
"WRITEDOWN": true,
|
||||||
|
"WRITEUP": true,
|
||||||
|
"XID": true,
|
||||||
|
"YEAR": true,
|
||||||
|
"ZONE": true,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
type oracle struct {
|
type oracle struct {
|
||||||
core.Base
|
core.Base
|
||||||
}
|
}
|
||||||
|
@ -56,6 +540,15 @@ func (db *oracle) SupportInsertMany() bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *oracle) IsReserved(name string) bool {
|
||||||
|
_, ok := oracleReservedWords[name]
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (db *oracle) Quote(name string) string {
|
||||||
|
return "\"" + name + "\""
|
||||||
|
}
|
||||||
|
|
||||||
func (db *oracle) QuoteStr() string {
|
func (db *oracle) QuoteStr() string {
|
||||||
return "\""
|
return "\""
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,9 @@ import (
|
||||||
// func init() {
|
// func init() {
|
||||||
// RegisterDialect("postgres", &postgres{})
|
// RegisterDialect("postgres", &postgres{})
|
||||||
// }
|
// }
|
||||||
|
var (
|
||||||
|
postgresReservedWords = map[string]bool{}
|
||||||
|
)
|
||||||
|
|
||||||
type postgres struct {
|
type postgres struct {
|
||||||
core.Base
|
core.Base
|
||||||
|
@ -73,6 +76,15 @@ func (db *postgres) SupportInsertMany() bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *postgres) IsReserved(name string) bool {
|
||||||
|
_, ok := postgresReservedWords[name]
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (db *postgres) Quote(name string) string {
|
||||||
|
return "\"" + name + "\""
|
||||||
|
}
|
||||||
|
|
||||||
func (db *postgres) QuoteStr() string {
|
func (db *postgres) QuoteStr() string {
|
||||||
return "\""
|
return "\""
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,135 @@ import (
|
||||||
// RegisterDialect("sqlite3", &sqlite3{})
|
// RegisterDialect("sqlite3", &sqlite3{})
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
var (
|
||||||
|
sqlite3ReservedWords = map[string]bool{
|
||||||
|
"ABORT": true,
|
||||||
|
"ACTION": true,
|
||||||
|
"ADD": true,
|
||||||
|
"AFTER": true,
|
||||||
|
"ALL": true,
|
||||||
|
"ALTER": true,
|
||||||
|
"ANALYZE": true,
|
||||||
|
"AND": true,
|
||||||
|
"AS": true,
|
||||||
|
"ASC": true,
|
||||||
|
"ATTACH": true,
|
||||||
|
"AUTOINCREMENT": true,
|
||||||
|
"BEFORE": true,
|
||||||
|
"BEGIN": true,
|
||||||
|
"BETWEEN": true,
|
||||||
|
"BY": true,
|
||||||
|
"CASCADE": true,
|
||||||
|
"CASE": true,
|
||||||
|
"CAST": true,
|
||||||
|
"CHECK": true,
|
||||||
|
"COLLATE": true,
|
||||||
|
"COLUMN": true,
|
||||||
|
"COMMIT": true,
|
||||||
|
"CONFLICT": true,
|
||||||
|
"CONSTRAINT": true,
|
||||||
|
"CREATE": true,
|
||||||
|
"CROSS": true,
|
||||||
|
"CURRENT_DATE": true,
|
||||||
|
"CURRENT_TIME": true,
|
||||||
|
"CURRENT_TIMESTAMP": true,
|
||||||
|
"DATABASE": true,
|
||||||
|
"DEFAULT": true,
|
||||||
|
"DEFERRABLE": true,
|
||||||
|
"DEFERRED": true,
|
||||||
|
"DELETE": true,
|
||||||
|
"DESC": true,
|
||||||
|
"DETACH": true,
|
||||||
|
"DISTINCT": true,
|
||||||
|
"DROP": true,
|
||||||
|
"EACH": true,
|
||||||
|
"ELSE": true,
|
||||||
|
"END": true,
|
||||||
|
"ESCAPE": true,
|
||||||
|
"EXCEPT": true,
|
||||||
|
"EXCLUSIVE": true,
|
||||||
|
"EXISTS": true,
|
||||||
|
"EXPLAIN": true,
|
||||||
|
"FAIL": true,
|
||||||
|
"FOR": true,
|
||||||
|
"FOREIGN": true,
|
||||||
|
"FROM": true,
|
||||||
|
"FULL": true,
|
||||||
|
"GLOB": true,
|
||||||
|
"GROUP": true,
|
||||||
|
"HAVING": true,
|
||||||
|
"IF": true,
|
||||||
|
"IGNORE": true,
|
||||||
|
"IMMEDIATE": true,
|
||||||
|
"IN": true,
|
||||||
|
"INDEX": true,
|
||||||
|
"INDEXED": true,
|
||||||
|
"INITIALLY": true,
|
||||||
|
"INNER": true,
|
||||||
|
"INSERT": true,
|
||||||
|
"INSTEAD": true,
|
||||||
|
"INTERSECT": true,
|
||||||
|
"INTO": true,
|
||||||
|
"IS": true,
|
||||||
|
"ISNULL": true,
|
||||||
|
"JOIN": true,
|
||||||
|
"KEY": true,
|
||||||
|
"LEFT": true,
|
||||||
|
"LIKE": true,
|
||||||
|
"LIMIT": true,
|
||||||
|
"MATCH": true,
|
||||||
|
"NATURAL": true,
|
||||||
|
"NO": true,
|
||||||
|
"NOT": true,
|
||||||
|
"NOTNULL": true,
|
||||||
|
"NULL": true,
|
||||||
|
"OF": true,
|
||||||
|
"OFFSET": true,
|
||||||
|
"ON": true,
|
||||||
|
"OR": true,
|
||||||
|
"ORDER": true,
|
||||||
|
"OUTER": true,
|
||||||
|
"PLAN": true,
|
||||||
|
"PRAGMA": true,
|
||||||
|
"PRIMARY": true,
|
||||||
|
"QUERY": true,
|
||||||
|
"RAISE": true,
|
||||||
|
"RECURSIVE": true,
|
||||||
|
"REFERENCES": true,
|
||||||
|
"REGEXP": true,
|
||||||
|
"REINDEX": true,
|
||||||
|
"RELEASE": true,
|
||||||
|
"RENAME": true,
|
||||||
|
"REPLACE": true,
|
||||||
|
"RESTRICT": true,
|
||||||
|
"RIGHT": true,
|
||||||
|
"ROLLBACK": true,
|
||||||
|
"ROW": true,
|
||||||
|
"SAVEPOINT": true,
|
||||||
|
"SELECT": true,
|
||||||
|
"SET": true,
|
||||||
|
"TABLE": true,
|
||||||
|
"TEMP": true,
|
||||||
|
"TEMPORARY": true,
|
||||||
|
"THEN": true,
|
||||||
|
"TO": true,
|
||||||
|
"TRANSACTI": true,
|
||||||
|
"TRIGGER": true,
|
||||||
|
"UNION": true,
|
||||||
|
"UNIQUE": true,
|
||||||
|
"UPDATE": true,
|
||||||
|
"USING": true,
|
||||||
|
"VACUUM": true,
|
||||||
|
"VALUES": true,
|
||||||
|
"VIEW": true,
|
||||||
|
"VIRTUAL": true,
|
||||||
|
"WHEN": true,
|
||||||
|
"WHERE": true,
|
||||||
|
"WITH": true,
|
||||||
|
"WITHOUT": true,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
type sqlite3 struct {
|
type sqlite3 struct {
|
||||||
core.Base
|
core.Base
|
||||||
}
|
}
|
||||||
|
@ -54,6 +183,15 @@ func (db *sqlite3) SupportInsertMany() bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *sqlite3) IsReserved(name string) bool {
|
||||||
|
_, ok := sqlite3ReservedWords[name]
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (db *sqlite3) Quote(name string) string {
|
||||||
|
return "`" + name + "`"
|
||||||
|
}
|
||||||
|
|
||||||
func (db *sqlite3) QuoteStr() string {
|
func (db *sqlite3) QuoteStr() string {
|
||||||
return "`"
|
return "`"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue