PostgreSQL Global Development Group - ( Freeware)
PostgreSQL is a good choice when it comes to object-relational database management system, being one of the strongest competitors for Microsoft SQL Server, Firebird, Oracle, Sybase.
PostgreSQL for Windows is a software for managing relational database and Ordbms objects that will run on your operating system. It is recognized worldwide for its stability and its programming possibilities particularly extensive in the engine of your database using the PL / pgSQL.
PostgreSQL is the main competitor for MySQL, Firebird, Oracle, Sybase or Microsoft SQL Server and it is fully ACID compliant and has support for foreign keys, joins, views, triggers, and stored procedures. It also includes the windowing functions, common table expressions and recursive joins a parallel restore, consolidated hash indexes, support for SSL certificates for user authentication, routines statistics function, etc.It allows to manage tables, libraries for many languages to access records from programs written in Java (JDBC), C + + / C, Perl or Tcl / Tk.ODBC API allows any application that supports this type of interface to access PostgreSQL databases.
PostgreSQL is highly customizable running stored procedures in more than a dozen programming languages, including Java, Perl, Python, Ruby, Tcl, C/C++,and its own PL/pgSQL, which is similar to Oracle's PL/SQL.
- Fix possible mis-evaluation of nested CASE-WHEN expressions. A CASE expression appearing within the test value subexpression of another CASE could become confused about whether its own test value was null or not. Also, inlining of a SQL function implementing the equality operator used by a CASE expression could result in passing the wrong test value to functions called within a CASE expression in the SQL function's body. If the test values were of different data types, a crash might result; moreover such situations could be abused to allow disclosure of portions of server memory.
- Fix client programs' handling of special characters in database and role names.
- Fix corner-case misbehaviors for IS NULL/IS NOT NULL applied to nested composite values
- Fix "unrecognized node type" error for INSERT ... ON CONFLICT within a recursive CTE (a WITH item)
- Fix INSERT ... ON CONFLICT to successfully match index expressions or index predicates that are simplified during the planner's expression preprocessing phase
- Correctly handle violations of exclusion constraints that apply to the target table of an INSERT ... ON CONFLICT command, but are not one of the selected arbiter indexes Such a case should raise a normal constraint-violation error, but it got into an infinite loop instead.
- Fix INSERT ... ON CONFLICT to not fail if the target table has a unique index on OID
- Make the inet and cidr data types properly reject IPv6 addresses with too many colon-separated fields
- Prevent crash in close_ps() (the point ## lseg operator) for NaN input coordinates.Make it return NULL instead of crashing.
- Avoid possible crash in pg_get_expr() when inconsistent values are passed to it
- Fix several one-byte buffer over-reads in to_number()
- Do not run the planner on the query contained in CREATE MATERIALIZED VIEW or CREATE TABLE AS when WITH NO DATA is specified
- Avoid unsafe intermediate state during expensive paths through heap_update()
- Fix hint bit update during WAL replay of row locking operations
- Avoid unnecessary "could not serialize access" errors when acquiring FOR KEY SHARE row locks in serializable mode
- Make sure "expanded" datums returned by a plan node are read-only
- Avoid crash in postgres -C when the specified variable has a null string value
- Prevent unintended waits for the receiver in WAL sender processes
- Fix possible loss of large subtransactions in logical decoding
- Fix failure of logical decoding when a subtransaction contains no actual changes
- Ensure that backends see up-to-date statistics for shared catalogs
- Avoid redundant writes of the statistics files when multiple backends request updates close together
- Avoid consuming a transaction ID during VACUUM
- Prevent possible failure when vacuuming multixact IDs in an installation that has been pg_upgrade'd from pre-9.3
- When a manual ANALYZE specifies a column list, don't reset the table's changes_since_analyze counter
- Fix ANALYZE's overestimation of n_distinct for a unique or nearly-unique column with many null entries
- Prevent autovacuum from starting multiple workers for the same shared catalog
- Fix bug in b-tree mark/restore processing
- Avoid duplicate buffer lock release when abandoning a b-tree index page deletion attempt
- Fix building of large (bigger than shared_buffers) hash indexes
- Prevent infinite loop in GiST index build for geometric columns containing NaN component values
- Fix possible crash during a nearest-neighbor (ORDER BY distance) indexscan on a contrib/btree_gist index on an interval column
- Fix "PANIC: failed to add BRIN tuple" error when attempting to update a BRIN index entry
- Fix possible crash during background worker shutdown
- Fix PL/pgSQL's handling of the INTO clause within IMPORT FOREIGN SCHEMA commands
- Fix contrib/btree_gin to handle the smallest possible bigint value correctly
- Teach libpq to correctly decode server version from future servers
- Fix ecpg's code for unsigned long long array elements
- In pg_dump with both -c and -C options, avoid emitting an unwanted CREATE SCHEMA public command
- Improve handling of SIGTERM/control-C in parallel pg_dump and pg_restore
- Fix error reporting in parallel pg_dump and pg_restore
- Ensure that parallel pg_dump or pg_restore on Windows will shut down properly after an error
- Make parallel pg_dump fail cleanly when run against a standby server
- Make pg_dump behave better when built without zlib support
- Make pg_basebackup accept -Z 0 as specifying no compression
- Fix makefiles' rule for building AIX shared libraries to be safe for parallel make
- Fix TAP tests and MSVC scripts to work when build directory's path name contains spaces
- Be more predictable about reporting "statement timeout" versus "lock timeout"
- Make regression tests safe for Danish and Welsh locales
- Update our copy of the timezone code to match IANA's tzcode release 2016c
- Update time zone data files to tzdata release 2016f for DST law changes in Kemerovo and Novosibirsk, plus historical corrections for Azerbaijan, Belarus, and Morocco.