
Runs stored procedures in more than a dozen programming languages, including Java, etc. Permits the database designer to create rules which identify specific operations for a given table or view. Offers the ability to database designers to derive new tables from other tables.
PostgreSQL is an object-relational database management system (ORDBMS) created originally at University of California. Its SQL implementation strongly conforms to the ANSI-SQL 92/99 standards supporting it. It has full support for triggers, views, queries, stored procedures, joins, multiple languages, among others. Some features of this Database include multi version concurrency control (MVCC), point in time recovery, tablespaces, replication (asynchronous), nested transaction, online backups, fault tolerance and many other sophisticated features to provide data integrity.
Some of the allowed maximum values offer big possibilities for huge database systems: unlimited maximum Database size, rows per table and indexes per table, or 32TB maximum for a table's size. The system supports SSL and IPv6 protocols. It also supports many data types, like arrays and XML among many others. Third party contributions are also important for this ORDBMS, because many of the tools to develop, access or use this database exist only because of them. The system also supports GIS (Geographical Information System) data and it can be used for mapping and localization purposes.
The current release includes many fixes reported by its contributors and some new features like full text search integration, support for SQL/XML standard, includes some new data types (enumerated, arrays of composite types, XML, Universal Unique Identifier), it improves logging and statics collections, and much more.
Its installation process is very easy to perform; moreover, some third party utilities and programs are included depending your requests or needs. The Stack Builder utility manages all the installations. Its GUI depends on how would you like to view your data; a nice program to view and manage your databases is pgAdmin III. Its documentation is very complete and detailed; you can find a lot of documentation in its website and included with the program. PostgreSQL works in Linux, UNIX and Windows platforms.
v13.1
- Block DECLARE CURSOR ... WITH HOLD and firing of deferred triggers within index expressions and materialized view queries (Noah Misch).
- Fix usage of complex connection-string parameters in pg_dump, pg_restore, clusterdb, reindexdb, and vacuumdb (Tom Lane).
- When psql's \connect command re-uses connection parameters, ensure that all non-overridden parameters from a previous connection string are re-used (Tom Lane).
- Prevent psql's \gset command from modifying specially-treated variables (Noah Misch).
- Fix unintended breakage of the replication protocol (Álvaro Herrera).
- Ensure that SLRU directories are properly fsync'd during checkpoints (Thomas Munro).
This prevents possible data loss in a subsequent operating system crash..
- Fix ALTER ROLE for users with the BYPASSRLS attribute (Tom Lane, Stephen Frost).
The BYPASSRLS attribute is only allowed to be changed by superusers, but other ALTER ROLE operations, such as password changes, should be allowed with only ordinary permission checks. The previous coding erroneously restricted all changes on such a role to superusers..
- Disallow ALTER TABLE ONLY ... DROP EXPRESSION when there are child tables (Peter Eisentraut).
The current implementation cannot handle this case correctly, so just forbid it for now..
- Ensure that ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER does not recurse to child tables (Álvaro Herrera).
- Allow LOCK TABLE to succeed on a self-referential view (Tom Lane).
- Retain statistics about an index across REINDEX CONCURRENTLY (Michael Paquier, Fabrízio de Royes Mello).
- Fix incorrect progress reporting from REINDEX CONCURRENTLY (Matthias van de Meent, Michael Paquier).
- Ensure that GENERATED columns are updated when the column(s) they depend on are updated via a rule or an updatable view (Tom Lane).
- Fix failures with collation-dependent partition bound expressions (Tom Lane).
- Support hashing of text arrays (Peter Eisentraut).
- Prevent internal overflows in cross-type datetime comparisons (Nikita Glukhov, Alexander Korotkov, Tom Lane).
- Fix off-by-one conversion of negative years to BC dates in to_date() and to_timestamp() (Dar Alathar-Yemen, Tom Lane).
- Allow the jsonpath .datetime() method to accept ISO 8601-format timestamps (Nikita Glukhov).
- Ensure that standby servers will archive WAL timeline history files when archive_mode is set to always (Grigory Smolkin, Fujii Masao).
- Fix edge cases in detecting premature death of the postmaster on platforms that use kqueue() (Thomas Munro).
- Avoid generating an incorrect incremental-sort plan when the sort key is a volatile expression (James Coleman).
- Fix possible crash when considering partition-wise joins during GEQO planning (Tom Lane).
- Fix possible infinite loop or corrupted output data in TOAST decompression (Tom Lane).
- Fix counting of the number of entries in B-tree indexes during cleanup-only VACUUMs (Peter Geoghegan).
- Ensure that data is detoasted before being inserted into a BRIN index (Tomas Vondra).
- Fix buffered GiST index builds to work when the index has included columns (Pavel Borisov).
- Fix unportable use of getnameinfo() in pg_hba_file_rules view (Tom Lane).
- Avoid crash if debug_query_string is NULL when starting a parallel worker (Noah Misch).
- Avoid failures when a BEFORE ROW UPDATE trigger returns the “old” row of a table having dropped or “missing” columns (Amit Langote, Tom Lane).
- Fix EXPLAIN's output for incremental sort plans to have correct tag nesting in XML output mode (Daniel Gustafsson).
- Avoid unnecessary failure when transferring very large payloads through shared memory queues (Markus Wanner).
- Fix omission of result data type coercion in some cases in SQL-language functions (Tom Lane).
This could lead to wrong results or crashes, depending on the data types involved.
- Fix incorrect handling of template function attributes in JIT code generation (Andres Freund).
- Improve code generated for compare_exchange and fetch_add operations on PPC (Noah Misch).
- Fix relation cache memory leaks with RLS policies (Tom Lane).
- Fix edge-case memory leak in index_get_partition() (Justin Pryzby).
- Fix small memory leak when SIGHUP processing decides that a new GUC variable value cannot be applied without a restart (Tom Lane).
- Fix memory leaks in PL/pgsql's CALL processing (Pavel Stehule, Tom Lane).
- In libpq for Windows, call WSAStartup() once per process and WSACleanup() not at all (Tom Lane, Alexander Lakhin).
- Fix ecpg library's per-thread initialization logic for Windows (Tom Lane, Alexander Lakhin).
- Fix ecpg's mis-processing of B'..' and X'..' literals (Shenhao Wang).
- Ensure that pg_dump collects per-column information about extension configuration tables (Fabrízio de Royes Mello, Tom Lane).
- Make pg_upgrade check for pre-existence of tablespace directories in the target cluster (Bruce Momjian).
- Fix potential memory leak in contrib/pgcrypto (Michael Paquier).