A most-requested feature by application developers for several years,
"UPSERT" is shorthand for "INSERT, ON CONFLICT UPDATE", allowing new
and updated rows to be treated the same. UPSERT simplifies web and
mobile application development by enabling the database to handle
conflicts between concurrent data changes. This feature also removes
the last significant barrier to migrating legacy MySQL applications to
Developed over the last two years by Heroku programmer Peter
Geoghegan, PostgreSQL's implementation of UPSERT is significantly more
flexible and powerful than those offered by other relational
databases. The new ON CONFLICT clause permits ignoring the new data,
or updating different columns or relations in ways which will support
complex ETL (Extract, Transform, Load) toolchains for bulk data
loading. And, like all of PostgreSQL, it is designed to be absolutely
concurrency-safe and to integrate with all other PostgreSQL features,
including Logical Replication.
Row Level Security
PostgreSQL continues to expand database security capabilities with its
new Row Level Security (RLS) feature. RLS implements true per-row and
per-column data access control which integrates with external
label-based security stacks such as SE Linux. PostgreSQL is already
known as "the most secure by default." RLS cements its position as the
best choice for applications with strong data security requirements,
such as compliance with PCI, the European Data Protection Directive,
and healthcare data protection standards.
RLS is the culmination of five years of security features added to
PostgreSQL, including extensive work by KaiGai Kohei of NEC, Stephen
Frost of Crunchy Data, and Dean Rasheed. Through it, database
administrators can set security "policies" which filter which rows
particular users are allowed to update or view. Data security
implemented this way is resistant to SQL injection exploits and other
application-level security holes.
Big Data Features
PostgreSQL 9.5 includes multiple new features for bigger databases,
and for integrating with other Big Data systems. These features
ensure that PostgreSQL continues to have a strong role in the rapidly
growing open source Big Data marketplace. Among them are:
BRIN Indexing: This new type of index supports creating tiny, but
effective indexes for very large, "naturally ordered" tables. For
example, tables containing logging data with billions of rows could be
indexed and searched in 5% of the time required by standard BTree
Faster Sorts: PostgreSQL now sorts text and NUMERIC data faster, using
an algorithm called "abbreviated keys". This makes some queries which
need to sort large amounts of data 2X to 12X faster, and can speed up
index creation by 20X.
CUBE, ROLLUP and GROUPING SETS: These new standard SQL clauses let
users produce reports with multiple levels of summarization in one
query instead of requiring several. CUBE will also enable tightly
integrating PostgreSQL with more Online Analytic Processing (OLAP)
reporting tools such as Tableau.
Foreign Data Wrappers (FDWs): These already allow using PostgreSQL as
a query engine for other Big Data systems such as Hadoop and
Cassandra. Version 9.5 adds IMPORT FOREIGN SCHEMA and JOIN pushdown
making query connections to external databases both easier to set up
and more efficient.
TABLESAMPLE: This SQL clause allows grabbing a quick statistical
sample of huge tables, without the need for expensive sorting.
Részletek a bejelentésben.