
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.
v10.5 [Aug 30, 2018]
- Fix failure to reset libpq's state fully between connection attempts (Tom Lane).
- Fix INSERT ... ON CONFLICT UPDATE through a view that isn't just SELECT * FROM ... (Dean Rasheed, Amit Langote).
- Ensure that updates to the relfrozenxid and relminmxid values for “nailed” system catalogs are processed in a timely fashion (Andres Freund).
- Fix case where a freshly-promoted standby crashes before having completed its first post-recovery checkpoint (Michael Paquier, Kyotaro Horiguchi, Pavan Deolasee, Álvaro Herrera).
- Avoid emitting a bogus WAL record when recycling an all-zero btree page (Amit Kapila).
- During WAL replay, guard against corrupted record lengths exceeding 1GB (Michael Paquier).
- When ending recovery, delay writing the timeline history file as long as possible (Heikki Linnakangas).
- Improve performance of WAL replay for transactions that drop many relations (Fujii Masao).
- Improve performance of lock releasing in standby server WAL replay (Thomas Munro).
- Make logical WAL senders report streaming state correctly (Simon Riggs, Sawada Masahiko).
- Ensure that a snapshot is provided when executing data type input functions in logical replication subscribers (Minh-Quan Tran, Álvaro Herrera).
- Fix bugs in snapshot handling during logical decoding, allowing wrong decoding results in rare cases (Arseny Sher, Álvaro Herrera).
- Add subtransaction handling in logical-replication table synchronization workers (Amit Khandekar, Robert Haas).
- Ensure a table's cached index list is correctly rebuilt after an index creation fails partway through (Peter Geoghegan).
- Fix mishandling of empty uncompressed posting list pages in GIN indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov).
- Pad arrays of unnamed POSIX semaphores to reduce cache line sharing (Thomas Munro).
- Ensure that a process doing a parallel index scan will respond to signals (Amit Kapila).
- Ensure that VACUUM will respond to signals within btree page deletion loops (Andres Freund).
- Fix hash-join costing mistake introduced with inner_unique optimization (David Rowley).
- Fix misoptimization of equivalence classes involving composite-type columns (Tom Lane).
- Fix planner to avoid “ORDER/GROUP BY expression not found in targetlist” errors in some queries with set-returning functions (Tom Lane).
- Fix handling of partition keys whose data type uses a polymorphic btree operator class, such as arrays (Amit Langote, Álvaro Herrera).
- Fix SQL-standard FETCH FIRST syntax to allow parameters ($n), as the standard expects (Andrew Gierth).
- Remove undocumented restriction against duplicate partition key columns (Yugo Nagata).
- Disallow temporary tables from being partitions of non-temporary tables (Amit Langote, Michael Paquier).
- Fix EXPLAIN's accounting for resource usage, particularly buffer accesses, in parallel workers (Amit Kapila, Robert Haas).
- Fix SHOW ALL to show all settings to roles that are members of pg_read_all_settings, and also allow such roles to see source filename and line number in the pg_settings view (Laurenz Albe, Álvaro Herrera).
- Fix failure to schema-qualify some object names in getObjectDescription and getObjectIdentity output (Kyotaro Horiguchi, Tom Lane).
- Fix CREATE AGGREGATE type checking so that parallelism support functions can be attached to variadic aggregates (Alexey Bashtanov).
- Widen COPY FROM's current-line-number counter from 32 to 64 bits (David Rowley).
- Allow replication slots to be dropped in single-user mode (Álvaro Herrera).
- Fix incorrect results from variance(int4) and related aggregates when run in parallel aggregation mode (David Rowley).
- Process TEXT and CDATA nodes correctly in xmltable() column expressions (Markus Winand).
- Cope with possible failure of OpenSSL's RAND_bytes() function (Dean Rasheed, Michael Paquier).
- Fix libpq's handling of some cases where hostaddr is specified (Hari Babu, Tom Lane, Robert Haas).
- Add a string freeing function to ecpg's pgtypes library, so that cross-module memory management problems can be avoided on Windows (Takayuki Tsunakawa).
- Fix ecpg's support for long long variables on Windows, as well as other platforms that declare strtoll/strtoull nonstandardly or not at all (Dang Minh Huong, Tom Lane).
- Fix misidentification of SQL statement type in PL/pgSQL, when a rule change causes a change in the semantics of a statement intra-session (Tom Lane).
- Fix password prompting in client programs so that echo is properly disabled on Windows when stdin is not the terminal (Matthew Stickney).
- Further fix mis-quoting of values for list-valued GUC variables in dumps (Tom Lane).