A powerful, open source relational database system

PostgreSQL for Mac

PostgreSQL 10.4

  -  124 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 10.4.


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!

  • PostgreSQL 10.4 Screenshots

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

    PostgreSQL 10.4 Screenshot 1
  • PostgreSQL 10.4 Screenshot 2
  • PostgreSQL 10.4 Screenshot 3

What's new in this version:

- Remove public execute privilege from contrib/adminpack's pg_logfile_rotate() function (Stephen Frost)
- Fix incorrect volatility markings on a few built-in functions (Thomas Munro, Tom Lane)
- Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed TOAST entries (Pavan Deolasee)
- Correctly enforce any CHECK constraints on individual partitions during COPY to a partitioned table (Etsuro Fujita)
- Accept TRUE and FALSE as partition bound values (Amit Langote)
- Fix memory management for partition key comparison functions (Álvaro Herrera, Amit Langote)
- Fix possible crash when a query inserts tuples in several partitions of a partitioned table, and those partitions don't have identical row types (Etsuro Fujita, Amit Langote)
- Change ANALYZE's algorithm for updating pg_class.reltuples (David Gould)
- Include extended-statistics objects in the set of table properties duplicated by CREATE TABLE ... LIKE ... INCLUDING ALL (David Rowley)
- Fix CREATE TABLE ... LIKE with bigint identity columns (Peter Eisentraut)
- Avoid deadlocks in concurrent CREATE INDEX CONCURRENTLY commands that are run under SERIALIZABLE or REPEATABLE READ transaction isolation (Tom Lane)
- Fix possible slow execution of REFRESH MATERIALIZED VIEW CONCURRENTLY (Thomas Munro)
- Fix UPDATE/DELETE ... WHERE CURRENT OF to not fail when the referenced cursor uses an index-only-scan plan (Yugo Nagata, Tom Lane)
- Fix incorrect planning of join clauses pushed into parameterized paths (Andrew Gierth, Tom Lane)
- Fix possibly incorrect generation of an index-only-scan plan when the same table column appears in multiple index columns, and only some of those index columns use operator classes that can return the column value (Kyotaro Horiguchi)
- Fix misoptimization of CHECK constraints having provably-NULL subclauses of top-level AND/OR conditions (Tom Lane, Dean Rasheed)
- Prevent planner crash when a query has multiple GROUPING SETS, none of which can be implemented by sorting (Andrew Gierth)
- Fix executor crash due to double free in some GROUPING SET usages (Peter Geoghegan)
- Fix misexecution of self-joins on transition tables (Thomas Munro)
- Avoid crash if a table rewrite event trigger is added concurrently with a command that could call such a trigger (Álvaro Herrera, Andrew Gierth, Tom Lane)
- Avoid failure if a query-cancel or session-termination interrupt occurs while committing a prepared transaction (Stas Kelvich)
- Fix query-lifespan memory leakage in repeatedly executed hash joins (Tom Lane)
- Fix possible leak or double free of visibility map buffer pins (Amit Kapila)
- Avoid spuriously marking pages as all-visible (Dan Wood, Pavan Deolasee, Álvaro Herrera)
- Fix overly strict sanity check in heap_prepare_freeze_tuple (Álvaro Herrera)
- Prevent dangling-pointer dereference when a C-coded before-update row trigger returns the “old” tuple (Rushabh Lathia)
- Reduce locking during autovacuum worker scheduling (Jeff Janes)
- Ensure client hostname is copied while copying pg_stat_activity data to local memory (Edmund Horner)
- Handle pg_stat_activity information for auxiliary processes correctly (Edmund Horner)
- Fix incorrect processing of multiple compound affixes in ispell dictionaries (Arthur Zakirov)
- Fix collation-aware searches (that is, indexscans using inequality operators) in SP-GiST indexes on text columns (Tom Lane)
- Prevent query-lifespan memory leakage with SP-GiST operator classes that use traversal values (Anton Dignös)
- Count the number of index tuples correctly during initial build of an SP-GiST index (Tomas Vondra)
- Count the number of index tuples correctly during vacuuming of a GiST index (Andrey Borodin)
- Fix a corner case where a streaming standby gets stuck at a WAL continuation record (Kyotaro Horiguchi)
- In logical decoding, avoid possible double processing of WAL data when a walsender restarts (Craig Ringer)
- Fix logical replication to not assume that type OIDs match between the local and remote servers (Masahiko Sawada)
- Allow scalarltsel and scalargtsel to be used on non-core datatypes (Tomas Vondra)
- Reduce libpq's memory consumption when a server error is reported after a large amount of query output has been collected (Tom Lane)
- Fix double-free crashes in ecpg (Patrick Krecker, Jeevan Ladhe)
- Fix ecpg to handle long long int variables correctly in MSVC builds (Michael Meskes, Andrew Gierth)
- Fix mis-quoting of values for list-valued GUC variables in dumps (Michael Paquier, Tom Lane)
- Fix pg_recvlogical to not fail against pre-v10 PostgreSQL servers (Michael Paquier)
- Ensure that pg_rewind deletes files on the target server if they are deleted from the source server during the run (Takayuki Tsunakawa)
- Fix pg_rewind to handle tables in non-default tablespaces correctly (Takayuki Tsunakawa)
- Fix overflow handling in PL/pgSQL integer FOR loops (Tom Lane)
- Adjust PL/Python regression tests to pass under Python 3.7 (Peter Eisentraut)
- Support testing PL/Python and related modules when building with Python 3 and MSVC (Andrew Dunstan)
- Fix errors in initial build of contrib/bloom indexes (Tomas Vondra, Tom Lane)
- Rename internal b64_encode and b64_decode functions to avoid conflict with Solaris 11.4 built-in functions (Rainer Orth)
- Sync our copy of the timezone library with IANA tzcode release 2018e (Tom Lane)
- Update time zone data files to tzdata release 2018d for DST law changes in Palestine and Antarctica (Casey Station), plus historical corrections for Portugal and its colonies, as well as Enderbury, Jamaica, Turks & Caicos Islands, and Uruguay