Files
pgdump/reserved_names.go

122 lines
3.0 KiB
Go
Raw Normal View History

2026-04-10 22:02:47 +02:00
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
}