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 }