Updated May 29, 2023
Introduction to PostgreSQL Versions
PostgreSQL is an open-source relational database management system. It supports both SQL for relational and JSON for non-relational queries. Postgres’ initial release date was way back in 1996; from then, various new PostgreSQL Versions have been introduced with multiple rich sets of the feature. This article will largely discuss all these versions and the features they brought to us.
Key features for Postgres include:
- Supports for MVCC.
- SQL Standard.
- Support for client-server network architecture.
- Locking mechanisms.
- Log and Trigger-based replication.
- Support for JSON allows linking with other NoSQL data sources like MongoDB.
- Server-side programming facility.
Versions and Features of PostgreSQL
Versions of PostgreSQL are given below:
1. Versions 6.0
This was the first public release version of Postgres, which includes numerous features like:
- Unique Index: This is the most widely used feature in every SQL database, even today; using this feature, the user can fetch data from the database more quickly than a normal SQL query. Postgres automatically maintains a unique index for every row in a table, either with its unique constraint or primary key. When creating a unique index in Postgres, it internally generates a B-Tree that stores all the data pointers and enables efficient data searching. There is various limitation on a unique index, like multiple table rows with equal indexed values; null values are not allowed.
- PG_Dumpall: PG_Dumpall, included in the Postgres installation, is a utility with the primary purpose of dumping the entire database in a cluster into a script file in SQL format. This file can later be used for restoring the database.
2. Versions 6.1
This version was released in 1997 and supports features like:
- Sequences: Sequences are a specific type of data utilized in the database for generating identifiers, often employed as primary keys within tables.
- Money Data Type: It stores money in a database with fixed precision.
3. Versions 6.2
This version was also released in 1997, just after 4 months with the previous version it’s features are:
- JDBC Interface: Implement JDBC Specification for Java Programming Language so that Java Programmer can use Postgres in its software more efficiently.
- Triggers: Triggers are the most helpful feature which DB administrators can use. Triggers are special user-defined functions that the database automatically invokes upon specific events, such as inserting, updating, or deleting a row from a particular table.
4. Versions 6.3
This version was released in 1998 and reached its end of life in 2003. Its features are:
- SQL Sub-select: Now, users can use the nested select query to fetch its record from more than one table in a single round-trip to the database.
- PL/pgTCL: It is a procedural language through which users can create a database procedure.
5. Versions 6.4
It was also released in 1998 and reached its end of life in 2003 it’s features are:
- Views: It acts as a virtual table representing data of one or more underlying tables through several SQL statements.
- Rules: It allows us to define additional commands when inserted, updated, and delete in a table.
6. Versions 6.5
It was released in 1999 and reached its end of life in 2004 it’s features are:
- MVCC: Multiversion concurrency control is the main technique through which Postgres implements transactions. It helps to keep multiple simultaneous transactions isolated from each other.
- Temporary Table: A short-lived table exists for the duration of a database transaction or session.
7. Versions 7.0
It was released in 2000 and reached its end of life in 2004 it’s features are:
- Foreign Keys: It maintains a relationship between multiple tables in a database.
- SQL Joins: Joins were introduced in Postgres for fetching data from more than one table more efficiently than sub-query.
8. Versions 7.1
It was released in 2001 and reached its end of life in 2006 it’s features are:
- WAL: Write ahead log is a kind of logging mechanism that writes everything before the actual action, like insert, update, delete, etc., which users can use for any purpose like real-time database replication, master-slave replication, etc.
9. Versions 7.2
It was released in 2005 and reached its end of life in 2007 it’s features are:
- PL/Python: Users can now write the function in the Python programming language.
- Localization: Provides support for different character sets to support text in various languages.
10. Versions 7.3
It was released in 2008 and reached its end of life in 2007 its features are:
- Schema: It is a namespace that contains tables, views, data types, functions, etc.
- Prepared Query: It’s a kind of query with an optimized performance; it’s compiled only the first time, and at the successive call, only dynamic parameters are changed. The whole query is not interpreted again.
11. Versions 7.4
It was a small release in 2010 with features like Optimized Joins and warehouse functions.
12. Versions 8.0
It was released in 2010 and reached its end of life in 2010 it’s features are:
- Savepoints: A unique mark inside a transaction can be used if that transaction is rolled back; users can proceed from that savepoint instead of starting from the start.
- Tablespaces: It is a location on an underlying file system where the database stores objects. The database administrators can define it.
13. Versions 8.1
It was released in 2010 and reached its end of life in 2010 it’s features are:
- Two-Phase Commit: In this, users can commit or rollback it’s a transaction in two phases, and both phases can be in two different sessions. After making the initial commit, the system stores the data on disk, enabling the successful commitment of the transaction in the database, even if a database failure occurs.
- Table partitioning: It splits one large table into physically smaller pieces.
14. Versions 8.2
It was released in 2011 and reached its end of life in 2011 it’s features are:
- Advisory Locks: Postgres mainly used locks during the transaction for concurrency control. Advisory locks in enforced via the application and will not block any writes to the table.
15. Versions 8.3
It was released in 2013 and reached its end of life in 2013 it’s features are:
- Full-Text Search: Support for full text searching for a better user experience.
- Enum, UUID types: Support the new data type like Enum and UUID.
16. Versions 8.4
It was released in 2014 and reached its end of life in 2014 it’s features are:
- Column Level Permission: It can be used to deny any users from altering a particular table’s column.
- Parallel Database Restore: It can restore a large database on a multi-processor machine.
17. Versions 9.0
It was released in 2015 and reached its end of life in 2015 its features are:
- Binary Replication: A complete database replication mechanism between master and slave, including tables, logs, etc.
18. Versions 9.1
It was released in 2016 and reached its end of life in 2016 it’s features are:
- Foreign Tables: It fetches data from outside Postgres with the external data source with a foreign-data wrapper’s help.
- Unlogged Tables: It increases writing operation performance because there is no overhead (disk I/O) of maintaining a write-ahead log.
19. Versions 9.2
It was released in 2017 and reached its end of life in 2017 it’s features are:
- JSON Support: Support of native JSON.
- Cascading Replication: The standby database can directly replicate to another standby database rather than directly from the primary.
20. Versions 9.3
It was released in 2018 and reached its end of life in 2018 it’s features are:
- Lateral Joins: It is a foreach version of SQL.
- Materialized View: A materialized view stores data on disk and avoids executing the underlying query each time it is accessed. This results in enhanced performance compared to regular views. Moreover, users can refresh materialized views to incorporate more up-to-date data.
21. Versions 9.4
It was released in 2019 and will reach its end of life in 2020 it’s features are:
- JSONB Data Type: The JSONB data type stores JSON documents, similar to how NoSQL databases handle them.
- Database Cache: For better performance for the select query.
22. Versions 9.5
It was released in 2019 and will reach its end of life in 2020 it’s features are:
- Row Level Security: It can deny any users from altering a table’s row.
- Upsert: Insert a row if not present otherwise, update a row in a database table.
23. Versions 9.6
It was released in 2019 and will reach its end of life in 2022 it’s features are:
- Parallel Query Support: We can use a multi-core CPU to finish queries faster.
- Faster Vacuuming: Garbage collection of Database.
25. Versions 10
It was released in 2019 and will reach its end of life in 2022 it’s features are:
- Improved Query Parallelism: Improvement of Parallel Query Support.
- Logical Replication: Replication of database table row using the primary key of a table.
26. Versions 11
It was released in 2019 and will reach its end of life in 2023 it’s features are:
- Transaction support in PL/SQL: Users can now perform stored procedures transactions.
- JIT Compilation: Just-in-Time compilation of SQL query for better performance.
27. Versions 12
It was released in 2019 and will reach its end of life in 2024 it’s feature is Improvements in Query and Space Performance, Improvements to localization and authentication, and many more.
Conclusion
Well, there were a lot of PostgreSQL Versions. From these many features, it is for sure Postgres is a production-ready database with high reliability on large data sets. This article has not covered many additional features that Postgres has introduced.
Recommended Articles
We hope that this EDUCBA information on “PostgreSQL Versions” was beneficial to you. You can view EDUCBA’s recommended articles for more information.