PostgreSQL URI format

URI definition for PostgreSQL follows this standard:

Identifier fragments:

  • Namespace: postgres://{host}:{port}
    • Scheme = postgres
    • Authority = {host}:{port}
  • Unique name: {database}.{schema}.{table}

URI format:

  • postgres://{host}:{port}/{database}.{schema}.{table}

Parameters limitations:

  • host identifier must start with a lowercase letter and include only lowercase letters, numbers, dash and dot (regex: [a-z][a-z0-9-.]+)
  • port number must include only numbers
  • database, schema and table can have two format, following PostgreSQL naming standards: quoted format and unquoted format
    • unquoted identifier must include only lowercases letters, numbers, underscore and dollar and characters included in the unicode range U+0080 to U+FFFF
    • quoted identifier needs to be quoted using double quotes and must include only characters included in the unicode range U+0001 to U+FFFF, excluding double-quote character. If a double quote character is present in the name, it needs to be escaped with another double quote character in front of it.

Examples:

  • postgres://sifflet-dev-postgres.cfbungc.eu-west-1.rds.com:5432/my_database.my_schema.my_table
  • postgres://sifflet-dev-postgres.cfbungc.eu-west-1.rds.com:5432/"My database"."My schema".my_table