A powerful, open source relational database system

PostgreSQL for Mac

PostgreSQL 17.9

  -  338 MB  -  Freeware

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of PostgreSQL 17.9.


For those interested in downloading the most recent release of PostgreSQL for Mac or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

Why is this app published on FileHorse? (More info)
  • PostgreSQL 17.9 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    PostgreSQL 17.9 Screenshot 1
  • PostgreSQL 17.9 Screenshot 2
  • PostgreSQL 17.9 Screenshot 3

What's new in this version:

- Fix failure after replaying a multixid truncation record from WAL that was generated by an older minor version
- Erroneous logic for coping with the way that previous versions handled multixid wraparound led to replay failure, with messages like “could not access status of transaction”. A typical scenario in which this could occur is a standby server of the latest minor version consuming WAL from a primary server of an older version.
- Avoid incorrect complaint of invalid encoding when substring() is applied to “toasted” data
- The fix for CVE-2026-2006 was too aggressive and could raise an error about an incomplete character in cases that are actually valid.
- Fix computation of the set of potentially-nulling outer joins for the output of a LATERAL UNION ALL subquery
- This error could lead to skipping NOT NULL tests in the mistaken belief that they were unnecessary, resulting in wrong query output.
- Fix pg_stat_get_backend_wait_event() and pg_stat_get_backend_wait_event_type() to report values for auxiliary processes
- Previously these functions returned NULL for auxiliary processes, but that's inconsistent with the pg_stat_activity view.
- Fix casting a composite-type variable to a domain type when returning its value from a PL/pgSQL function
- If the variable's value is NULL, a “cache lookup failed for type 0” error resulted
- Fix potential null pointer dereference in contrib/hstore's binary input function
- hstore's receive function crashed on input containing duplicate keys. hstore values generated by Postgres would never contain duplicate keys, so this mistake has gone unnoticed. The crash could be provoked by malicious or corrupted data.