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 various rich sets of the feature. This article will largely be discussing 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 datasource 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 for Postgres, which includes numerous feature 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 a unique index is created in Postgres, what Postgres internally does is create a B-Tree where all the data pointer is kept, used to search data efficiently. There is various limitation on a unique index like multiple table rows with equal indexed values; null values are not allowed.
- PG_Dumpall: It is a utility that is included in Postgres installation whose major purposes are to take a dump of all the database in a cluster in a script file as a SQL which later can be used to restore the database.
2. Versions 6.1
This version was released in 1997 which supports features like:
- Sequences: The sequence is a special type of data used to create identifiers in the database, which can be mainly used as a primary key in a table.
- Money Data Type: It is used to store 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: Implementation of JDBC Specification for Java Programming Language so that Java Programmer can use Postgres in its software more efficiently.
- Triggers: Triggers are the most useful feature which DB administrators can use. Triggers are the special user-defined function invoked automatically by the database on any particular event like insert, update, or delete in a row of a particular table.
4. Versions 6.3
This version was released in 1998 and reached its end of life in 2003 it’s 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 feature are:
- Views: It acts as a virtual table that represents data of one or more underlying tables through a bunch of SQL statements.
- Rules: It allows us to define additional commands when inserted, update, and delete in a table.
6. Versions 6.5
It was released in 1999 and reached its end of life in 2004 it’s feature are:
- MVCC: Multiversion concurrency control is a kind of main techniques through which Postgres implement transactions. It helps to keep multiple simultaneous transactions isolated from each other.
- Temporary Table: It’s a short-lived table that 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 feature are:
- Foreign Keys: It is used to maintain a relationship between more than one table in a database.
- SQL Joins: Joins were introduced in Postgres for fetching data from more than one table in a more efficient manner than sub-query.
8. Versions 7.1
It was released in 2001 and reached its end of life in 2006 it’s feature are:
- WAL: Write ahead log is a kind of logging mechanism which 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 feature 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 all kinds of languages.
10. Versions 7.3
It was released in 2008 and reached its end of life in 2007 it’s feature are:
- Schema: It is a namespace that contains tables, views, data types, functions, etc.
- Prepared Query: It’s a kind of query which has an optimized performance; it’s get 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 that contains certain 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 feature are:
- Savepoints: It is kind of a special mark inside a transaction that 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 store 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 feature are:
- Two-Phase Commit: In this, users can commit or rollback it’s a transaction in two phases and both the phases can be in two different sessions. After the first commit, data is stored on disk, and if a database failure occurs, the transaction can still be committed in the database.
- Table partitioning: It is used to split 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 feature are:
- Advisory Locks: Postgres mainly used lock during the transaction for concurrency control. Advisory locks in enforced via the application, and it 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 feature are:
- Full-Text Search: Support for full text searching for a better user experience.
- Enum, UUID types: Support for 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 feature are:
- Column Level Permission: It can be used to deny any users from altering a particular table’s column.
- Parallel Database Restore: It can be used to restore a large database running on a multi-processor machine.
17. Versions 9.0
It was released in 2015 and reached its end of life in 2015 it’s feature are:
- Binary Replication: It’s a full 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 feature are:
- Foreign Tables: It is used to fetch data from outside the Postgres with the external data source with a foreign-data wrapper’s help.
- Unlogged Tables: It is used to increase writing operation performance because here, 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 feature 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 feature are:
- Lateral Joins: It is a foreach version of SQL.
- Materialized View: It’s a kind of view that is stored in a disc, and the underlying query is not executed every time, so its kind of high performance as compared to view, and it can be refreshed for more updated data.
21. Versions 9.4
It was released in 2019 and will reach its end of life in 2020 it’s feature are:
- JSONB Data Type: It is used to JSON document just like NoSQL databases.
- 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 feature are:
- Row Level Security: It can be used to deny any users from altering a particular 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 feature are:
- Parallel Query Support: It allows us to make use of 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 feature 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 feature are:
- Transaction support in PL/SQL: Now, users can perform transactions in stored procedures.
- 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 of 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. There is a lot more to cover and many more features introduced in Postgres that are untouched in this article.
Recommended Articles
This is a guide to PostgreSQL Versions. Here we discuss the basic concept and the different versions of PostgreSQL along with its features in detail. You may also look at the following articles to learn more –