Latest in branch 6.3
6.3.2
Released 18 Apr 1998
(28 years ago)
SoftwarePostgreSQL
Version6.3
Status
End of life
Initial release6.3.0
02 Mar 1998
(28 years ago)
Latest release6.3.2
18 Apr 1998
(28 years ago)
End of life01 Mar 2003
(Ended 23 years, 3 months ago)
Release noteshttps://www.postgresql.org/docs/6.3/release.html
Source codehttps://github.com/postgres/postgres/tree/REL6_3_2
Documentationhttps://www.postgresql.org/docs/6.3/
Downloadhttps://www.postgresql.org/download/
PostgreSQL 6.3 ReleasesView full list

What Is New in PostgreSQL 6.3

Category Key Changes
New Features SQL92 syntax additions, new built-in functions, SET TRANSACTION ISOLATION LEVEL
Performance Faster index creation, improved optimizer for OR clauses, reduced lock contention
Data Types New datetime and timespan types, additional geometric operators
Client Interfaces New libpq features, ecpg embedded SQL preprocessor
Administration Enhanced vacuuming, new initdb options, improved crash recovery

What SQL92 features were added in version 6.3?

PostgreSQL 6.3 made significant strides toward SQL92 compliance. The parser now accepts the SQL92 datetime syntax, making timestamp handling more standard. You can finally use SET TRANSACTION ISOLATION LEVEL to control transaction behavior directly.

This matters because it reduces the friction when porting applications from other databases. The new syntax for outer joins (LEFT OUTER JOIN) also aligns with the standard, making queries more portable and easier to read for developers coming from other systems.

How did performance improve in this release?

Index creation got a major speed boost through a more efficient sorting algorithm. The optimizer became smarter at handling queries containing OR clauses, which often resulted in full table scans before.

In practice, this means your CREATE INDEX commands complete faster, reducing downtime during schema changes. The reduced lock contention on system tables also helps with overall system responsiveness under load.

What new data types and functions were introduced?

The release added new datetime and timespan types, giving you more precision for temporal data. A suite of new geometric operators expanded the capabilities for spatial queries within the database.

New built-in functions like string_to_array() and array_to_string() provided much-needed utilities for manipulating array data directly in SQL, reducing the need for complex application-side processing.

What tools were added for developers?

The libpq library gained new features, enhancing how client applications interact with the database server. More significantly, the ecpg embedded SQL preprocessor was introduced, allowing you to write SQL statements directly within C programs.

This was a big deal for C developers, as it provided a more natural way to build database applications without manually constructing query strings through the libpq API.

How did database administration get easier?

The VACUUM process saw improvements, making routine maintenance more efficient. The initdb utility received new options, giving DBAs more control during database cluster initialization.

Crash recovery became more robust, which is always welcome. These admin upgrades meant less hands-on maintenance and more reliable operation, especially after unexpected shutdowns.

FAQ

Does PostgreSQL 6.3 support outer joins?
Yes, it introduced support for the SQL92 syntax for outer joins, specifically LEFT OUTER JOIN. This was a major step forward from the proprietary outer join syntax used in previous versions.

What's the deal with the new ecpg preprocessor?
Ecpg allows you to write embedded SQL in C programs. It translates SQL statements embedded in C code into calls to the libpq library, making it easier to write database applications in C without using the direct API.

How much faster is index creation?
While exact numbers depend on the data, the new sorting algorithm for CREATE INDEX was significantly faster. This was particularly noticeable when building indexes on large tables, reducing maintenance windows.

Can I control transaction isolation level now?
Absolutely. The SET TRANSACTION ISOLATION LEVEL statement was implemented, giving you explicit control over the isolation level (Read Committed or Serializable) for your transactions.

Are there any new functions for array handling?
Yes, functions like string_to_array() and array_to_string() were added. These made it much easier to convert between string representations and array values directly within your SQL queries.

Releases In Branch 6.3

VersionRelease date
6.3.218 Apr 1998
(28 years ago)
6.3.124 Mar 1998
(28 years ago)
6.3.002 Mar 1998
(28 years ago)