PostgreSQL Reserved Words

These are words Postgres reserves for its own SQL grammar. Don't use them as Bubble table or column names — every SQL query against your migrated database will need extra quoting if you do.

The list

91 words in total. Match is case-insensitive — so USER, User, and user all match.

  • all
  • alter
  • analyse
  • analyze
  • and
  • any
  • array
  • as
  • asc
  • asymmetric
  • authorization
  • binary
  • both
  • case
  • cast
  • check
  • collate
  • column
  • constraint
  • create
  • current_catalog
  • current_date
  • current_role
  • current_time
  • current_timestamp
  • current_user
  • default
  • deferrable
  • delete
  • desc
  • distinct
  • do
  • drop
  • else
  • end
  • except
  • false
  • fetch
  • for
  • foreign
  • from
  • grant
  • group
  • having
  • in
  • index
  • initially
  • insert
  • intersect
  • into
  • is
  • join
  • key
  • leading
  • limit
  • localtime
  • localtimestamp
  • not
  • null
  • offset
  • on
  • only
  • or
  • order
  • placing
  • primary
  • references
  • returning
  • select
  • session_user
  • some
  • symmetric
  • table
  • then
  • to
  • trailing
  • transaction
  • true
  • union
  • unique
  • update
  • user
  • using
  • value
  • variadic
  • verbose
  • view
  • when
  • where
  • window
  • with

Common ones to watch for

The most common Bubble table names that hit this list:

  • User— Bubble's default User table is fine because PlanB renames it automatically, but custom User-named tables need attention.
  • Order — common in e-commerce apps.
  • Group — common in community apps.
  • Key, Value — common in settings/config tables.

Authoritative source

For the canonical list, see PostgreSQL Documentation: SQL Key Words. The list above covers the words PlanB checks during migration.

Related

Need help? Email [email protected] or DM in the Bubble forum.