Latest in branch 7.3
7.3.21
Released 03 Jan 2008
(18 years ago)
SoftwarePostgreSQL
Version7.3
Status
End of life
Initial release7.3.0
27 Nov 2002
(23 years ago)
Latest release7.3.21
03 Jan 2008
(18 years ago)
End of life27 Nov 2007
(Ended 18 years, 6 months ago)
Release noteshttps://www.postgresql.org/docs/7.3/release.html
Source codehttps://github.com/postgres/postgres/tree/REL7_3_21
Documentationhttps://www.postgresql.org/docs/7.3/
Downloadhttps://www.postgresql.org/download/
PostgreSQL 7.3 ReleasesView full list

What Is New in PostgreSQL 7.3

PostgreSQL 7.3 delivers significant enhancements across query optimization, SQL standard compliance, and overall performance. This release focuses on making the database smarter and more efficient for complex workloads.

Category Key Changes
New Features Schema support, SET FROM CURRENT, psql \df command, prepared statement improvements
Performance Better outer join optimization, new GEQO default, improved optimizer statistics
SQL Conformance Full support for SQL92 schema syntax, IS UNKNOWN/IS NOT UNKNOWN
Server Settings New unix_socket_group and unix_socket_permissions parameters
Internationalization Multi-byte support for SUBSTRING(), new locale options

How did PostgreSQL 7.3 improve query optimization?

The optimizer got significantly smarter at handling complex queries, especially those involving outer joins. It can now flatten subqueries that contain outer joins, turning them into regular joins which execute much faster.

This matters because complex reports and analytical queries often use subqueries with outer joins. The new optimization can reduce execution time from minutes to seconds without requiring any code changes.

The Genetic Query Optimizer (GEQO) also became the default for queries with many joins. In practice, this helps the planner find good execution paths for complex queries faster.

What SQL standard features were added in version 7.3?

Full SQL92 schema syntax support arrived, finally making the CREATE SCHEMA command complete. You can now create schemas and all their contained objects in a single, standard-compliant statement.

The IS UNKNOWN and IS NOT UNKNOWN predicates were implemented for proper three-valued logic handling with NULLs. This brings PostgreSQL's behavior in line with the SQL standard for boolean tests.

Another subtle but useful addition was SET FROM CURRENT for ALTER TABLE. This lets you change a column's default value to whatever it's currently set to, which is handy for schema evolution scripts.

What new administrative controls were introduced?

Socket security got finer control with new unix_socket_group and unix_socket_permissions parameters. You can now specify exactly which group owns the Unix domain socket and what permissions it has.

The psql tool gained the \df command to display function information, making it easier to explore your database's function landscape without writing custom queries.

Prepared statements became more usable with the ability to specify parameter types. This helps avoid type resolution ambiguity and makes prepared statements more reliable for application development.

How did internationalization support improve?

The SUBSTRING() function finally works correctly with multi-byte character sets like UTF-8. Previously, it counted bytes instead of characters, which caused issues with non-ASCII text.

New locale options were added for collation support, making sorting and ordering work better in various languages. This was part of the ongoing effort to make PostgreSQL truly global-ready.

These changes matter for applications serving international users where proper text handling is non-negotiable. The fixed substring behavior prevents data corruption in multi-byte environments.

FAQ

Does PostgreSQL 7.3 handle outer joins better?
Yes, significantly. The optimizer can now flatten subqueries containing outer joins into regular joins, which often results in much faster execution times for complex queries.

Is SQL92 schema syntax fully supported now?
Yes, the CREATE SCHEMA command is finally complete. You can create a schema and all its objects (tables, views, etc.) in a single, standard-compliant statement.

Can I control Unix socket permissions more precisely?
Absolutely. New unix_socket_group and unix_socket_permissions parameters let you specify exactly which group owns the socket and what file permissions it should have.

Does SUBSTRING() work with multi-byte characters now?
Yes, this was fixed. SUBSTRING() now properly handles multi-byte character sets like UTF-8 by counting characters instead of bytes, preventing corruption of non-ASCII text.

What's new with prepared statements?
You can now explicitly specify parameter types when creating prepared statements. This eliminates type resolution ambiguity and makes them more reliable for application use.

Releases In Branch 7.3

VersionRelease date
7.3.2103 Jan 2008
(18 years ago)
7.3.2016 Sep 2007
(18 years ago)
7.3.1920 Apr 2007
(19 years ago)
7.3.1802 Feb 2007
(19 years ago)
7.3.1706 Jan 2007
(19 years ago)
7.3.1612 Oct 2006
(19 years ago)
7.3.1521 May 2006
(20 years ago)
7.3.1412 Feb 2006
(20 years ago)
7.3.1306 Jan 2006
(20 years ago)
7.3.1209 Dec 2005
(20 years ago)
7.3.1103 Oct 2005
(20 years ago)
7.3.1009 May 2005
(21 years ago)
7.3.930 Jan 2005
(21 years ago)
7.3.822 Oct 2004
(21 years ago)
7.3.715 Aug 2004
(21 years ago)
7.3.602 Mar 2004
(22 years ago)
7.3.502 Dec 2003
(22 years ago)
7.3.424 Jul 2003
(22 years ago)
7.3.322 May 2003
(23 years ago)
7.3.203 Feb 2003
(23 years ago)
7.3.121 Dec 2002
(23 years ago)
7.3.027 Nov 2002
(23 years ago)