Updated
This commit is contained in:
121
reserved_names.go
Normal file
121
reserved_names.go
Normal file
@@ -0,0 +1,121 @@
|
||||
package pgdump
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
postgresReservedNames = map[string]struct{}{
|
||||
"ALL": {},
|
||||
"ANALYSE": {},
|
||||
"ANALYZE": {},
|
||||
"AND": {},
|
||||
"ANY": {},
|
||||
"ARRAY": {},
|
||||
"AS": {},
|
||||
"ASC": {},
|
||||
"ASYMMETRIC": {},
|
||||
"AUTHORIZATION": {},
|
||||
"BINARY": {},
|
||||
"BOTH": {},
|
||||
"CASE": {},
|
||||
"CAST": {},
|
||||
"CHECK": {},
|
||||
"COLLATE": {},
|
||||
"COLLATION": {},
|
||||
"COLUMN": {},
|
||||
"CONCURRENTLY": {},
|
||||
"CONSTRAINT": {},
|
||||
"CREATE": {},
|
||||
"CROSS": {},
|
||||
"CURRENT_CATALOG": {},
|
||||
"CURRENT_DATE": {},
|
||||
"CURRENT_ROLE": {},
|
||||
"CURRENT_SCHEMA": {},
|
||||
"CURRENT_TIME": {},
|
||||
"CURRENT_TIMESTAMP": {},
|
||||
"CURRENT_USER": {},
|
||||
"DEFAULT": {},
|
||||
"DEFERRABLE": {},
|
||||
"DESC": {},
|
||||
"DISTINCT": {},
|
||||
"DO": {},
|
||||
"ELSE": {},
|
||||
"END": {},
|
||||
"EXCEPT": {},
|
||||
"FALSE": {},
|
||||
"FETCH": {},
|
||||
"FOR": {},
|
||||
"FOREIGN": {},
|
||||
"FREEZE": {},
|
||||
"FROM": {},
|
||||
"FULL": {},
|
||||
"GRANT": {},
|
||||
"GROUP": {},
|
||||
"HAVING": {},
|
||||
"ILIKE": {},
|
||||
"IN": {},
|
||||
"INITIALLY": {},
|
||||
"INNER": {},
|
||||
"INTERSECT": {},
|
||||
"INTO": {},
|
||||
"IS": {},
|
||||
"ISNULL": {},
|
||||
"JOIN": {},
|
||||
"LATERAL": {},
|
||||
"LEADING": {},
|
||||
"LEFT": {},
|
||||
"LIKE": {},
|
||||
"LIMIT": {},
|
||||
"LOCALTIME": {},
|
||||
"LOCALTIMESTAMP": {},
|
||||
"NATURAL": {},
|
||||
"NOT": {},
|
||||
"NOTNULL": {},
|
||||
"NULL": {},
|
||||
"OFFSET": {},
|
||||
"ON": {},
|
||||
"ONLY": {},
|
||||
"OR": {},
|
||||
"ORDER": {},
|
||||
"OUTER": {},
|
||||
"OVERLAPS": {},
|
||||
"PLACING": {},
|
||||
"PRIMARY": {},
|
||||
"REFERENCES": {},
|
||||
"RETURNING": {},
|
||||
"RIGHT": {},
|
||||
"SELECT": {},
|
||||
"SESSION_USER": {},
|
||||
"SIMILAR": {},
|
||||
"SOME": {},
|
||||
"SYMMETRIC": {},
|
||||
"TABLE": {},
|
||||
"TABLESAMPLE": {},
|
||||
"THEN": {},
|
||||
"TO": {},
|
||||
"TRAILING": {},
|
||||
"TRUE": {},
|
||||
"UNION": {},
|
||||
"UNIQUE": {},
|
||||
"USER": {},
|
||||
"USING": {},
|
||||
"VARIADIC": {},
|
||||
"VERBOSE": {},
|
||||
"WHEN": {},
|
||||
"WHERE": {},
|
||||
"WINDOW": {},
|
||||
"WITH": {},
|
||||
}
|
||||
)
|
||||
|
||||
func escapeReservedName(name string) string {
|
||||
normalizedName := strings.ToUpper(name)
|
||||
|
||||
if _, isReserved := postgresReservedNames[normalizedName]; isReserved {
|
||||
return fmt.Sprintf("\"%s\"", name)
|
||||
}
|
||||
|
||||
return name
|
||||
}
|
||||
Reference in New Issue
Block a user