This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

New features

This guide briefly describes the new features introduced in the most recent releases of Vertica and provides references to detailed information in the documentation set.

This guide briefly describes the new features introduced in the most recent releases of Vertica and provides references to detailed information in the documentation set.

For known and fixed issues in the most recent release, see the Vertica Release Notes.

2 - Deprecated and removed functionality

Vertica retires functionality in two phases:.

Vertica retires functionality in two phases:

  • Deprecated: Vertica announces deprecated features and functionality in a major or minor release. Deprecated features remain in the product and are functional. Published release documentation announces deprecation on this page. When users access this functionality, it may return informational messages about its pending removal.

  • Removed: Vertica removes a feature in a major or minor release that follows the deprecation announcement. Users can no longer access the functionality, and this page is updated to verify removal (see History, below). Documentation that describes this functionality is removed, but remains in previous documentation versions.

Deprecated

No deprecated functionality in this release.

The following functionality was deprecated and will be removed in future versions:

Release Functionality Notes
23.3.0 OAuthJsonConfig The functionality provided by OAuthJsonConfig will superseded by future parameters.
23.3.0 DHParams

Removed

The following functionality was removed:

Release Functionality Notes
23.3.0 Visual Studio 2012, 2013, and 2015 plug-ins and the Microsoft Connectivity Pack Removed in favor of cross-platform support for the ADO.NET driver. Downloads for these components are still available on the Client Driver downloads page for 12.0.x and lower.
23.3.0 cert manager for Helm chart TLS configuration Vertica on Kubernetes has native support for TLS certificate management through the webhook.certSource Helm chart parameter.

History

The following functionality or support has been deprecated or removed as indicated:

Functionality Component Deprecated in: Removed in:
DHParams Server 23.3.0
OAuthJsonConfig and oauthjsonconfig Client drivers 23.3.0
Visual Studio 2012, 2013, and 2015 plug-ins and the Microsoft Connectivity Pack Client drivers 12.0.4 23.3.0
ADO.NET driver support for .NET 3.5 Client drivers 12.0.3
prometheus.createServiceMonitor Helm chart parameter Kubernetes 12.0.3
cert-manager for Helm chart TLS configuration Kubernetes 12.0.2 23.3.0
Use webhook.certSource parameter to generate certificates internally or provide custom certificates. See Helm chart parameters. Kubernetes 12.0.2
vsql support for macOS 10.12-10.14 Client drivers 12.0.3
CA bundles Security 12.0.2

The following parameters for CREATE NOTIFIER and ALTER NOTIFIER:

  • TLSMODE

  • CA BUNDLE

  • CERTIFICATE

Security 12.0.2
The TLSMODE PREFER parameter for CONNECT TO VERTICA. Security 12.0.2
JDBC 4.0 and 4.1 support Client drivers 12.0.2
Support for Visual Studio 2008 and 2010 plug-ins Client drivers 12.0.2 12.0.3
Internet Explorer 11 support Management Console 12.0.1
ODBC support for macOS 10.12-10.14 Client drivers 12.0

The following ODBC/JDBC OAuth parameters:

  • OAuthAccessToken/oauthaccesstoken

  • OAuthRefreshToken/oauthrefreshtoken

  • OAuthClientId/oauthclientid

  • OAuthClientSecret/oauthclientsecret

  • OAuthTokenUrl/oauthtokenurl

  • OAuthDiscoveryUrl/oauthdiscoveryurl

  • OAuthScope/oauthscope

Client drivers 12.0
hive_partition_cols parameter for PARQUET and ORC parsers Server 12.0

The following ODBC/JDBC OAuth parameters:

  • OAuthAccessToken/oauthaccesstoken

  • OAuthRefreshToken/oauthrefreshtoken

  • OAuthClientId/oauthclientid

  • OAuthClientSecret/oauthclientsecret

  • OAuthTokenUrl/oauthtokenurl

  • OAuthDiscoveryUrl/oauthdiscoveryurl

  • OAuthScope/oauthscope

Client drivers 12.0
INFER_EXTERNAL_TABLE_DDL function Server 11.1.1
Admission Controller Webhook image Kubernetes 11.0.1 11.0.2
Admission Controller Helm chart Kubernetes 11.0.1
Shared DATA and DATA,TEMP storage locations Server 11.0.1
DESIGN_ALL option for EXPORT_CATALOG() Server 11.0
HDFSUseWebHDFS configuration parameter and LibHDFS++ Server 11.0
INFER_EXTERNAL_TABLE_DDL (path, table) syntax Server 11.0 11.1.1

AWS library functions:

  • AWS_GET_CONFIG

  • AWS_SET_CONFIG

  • S3EXPORT

  • S3EXPORT_PARTITION

Server 11.0 12.0
Vertica Spark connector V1 Client 11.0
admintools db_add_subcluster --is-secondary argument Server 11.0
Red Hat Enterprise Linux/CentOS 6.x Server 10.1.1 11.0
STRING_TO_ARRAY(array,delimiter) syntax Server 10.1.1
Vertica JDBC API com.vertica.jdbc.kv package Client Drivers 10.1
ARRAY_CONTAINS function Server 10.1

Client-server TLS parameters:

  • SSLCertificate

  • SSLPrivateKey

  • SSLCA

  • EnableSSL

LDAP authentication parameters:

  • tls_key

  • tls_cert

  • tls_cacert

  • tls_reqcert

LDAPLink and LDAPLink dry-run parameters:

  • LDAPLinkTLSCACert

  • LDAPLinkTLSCADir

  • LDAPLinkStartTLS

  • LDAPLinkTLSReqCert

Server 10.1 11.0
MD5 hashing algorithm for user passwords Server 10.1
Reading structs from ORC files as expanded columns Server 10.1 11.0
vbr configuration section [S3] and S3 configuration parameters Server 10.1
flatten_complex_type_nulls parameter to the ORC and Parquet parsers Server 10.1 11.0
System table WOS_CONTAINER_STORAGE Server 10.0.1 11.0.2
skip_strong_schema_match parameter to the Parquet parser Server 10.0.1 10.1
Specifying segmentation on specific nodes Server 10.0.1
DBD meta-function DESIGNER_SET_ANALYZE_CORRELATIONS_MODE Server 10.0.1 11.0.1
Meta-function ANALYZE_CORRELATIONS Server 10.0
Eon Mode meta-function BACKGROUND_DEPOT_WARMING Server 10.0
Reading structs from Parquet files as expanded columns Server 10.0 10.1

Eon Mode meta-functions:

  • SET_DEPOT_PIN_POLICY

  • CLEAR_DEPOT_PIN_POLICY

Server 10.0 10.1
vbr configuration parameter SnapshotEpochLagFailureThreshold Server 10.0

Array-specific functions:

  • array_min

  • array_max

  • array_sum

  • array_avg

Server 10.0 10.1
DMLTargetDirect configuration parameter Server 10.0
HiveMetadataCacheSizeMB configuration parameter Server 10.0 10.1
MoveOutInterval Server 10.0
MoveOutMaxAgeTime Server 10.0
MoveOutSizePct Server 10.0
Windows 7 Client Drivers 9.3.1
DATABASE_PARAMETERS admintools command Server 9.3.1
Write-optimized store (WOS) Server 9.3 10.0
7.2_upgrade vbr task Server 9.3
DropFailedToActivateSubscriptions configuration parameter Server 9.3 10.0
--skip-fs-checks Server 9.2.1
32-bit ODBC Linux and OS X client drivers Client 9.2.1 9.3
Vertica Python client Client 9.2.1 10.0
macOS 10.11 Client 9.2.1
DisableDirectToCommunalStorageWrites configuration parameter Server 9.2.1
CONNECT_TO_VERTICA meta-function Server 9.2.1 9.3
ReuseDataConnections configuration parameter Server 9.2.1 9.3
Network interfaces (superseded by network addresses) Server 9.2
Database branching Server 9.2 10.0
KERBEROS_HDFS_CONFIG_CHECK meta-function Server 9.2
Java 5 support JDBC Client 9.2 9.2.1

Configuration parameters for enabling projections with aggregated data:

  • EnableExprsInProjections

  • EnableGroupByProjections

  • EnableTopKProjections

  • EnableUDTProjections

Server 9.2
DISABLE_ELASTIC_CLUSTER() Server 9.1.1 11.0
eof_timeout parameter of KafkaSource Server 9.1.1 9.2
Windows Server 2012 Server 9.1.1
Debian 7.6, 7.7 Client driver 9.1.1 9.2.1
IdolLib function library Server 9.1 9.1.1
SSL certificates that contain weak CA signatures such as MD5 Server 9.1
HCatalogConnectorUseLibHDFSPP configuration parameter Server 9.1
S3 UDSource Server 9.1 9.1.1
HCatalog Connector support for WebHCat Server 9.1
partition_key column in system tables STRATA and STRATA_STRUCTURES Server 9.1 10.0.1
Vertica Pulse Server 9.0.1 9.1.1
Support for SQL Server 2008 Server 9.0.1 9.0.1
SUMMARIZE_MODEL meta-function Server 9.0 9.1
RestrictSystemTable parameter Server 9.0.1
S3EXPORT multipart parameter Server 9.0
EnableStorageBundling configuration parameter Server 9.0
Machine Learning for Predictive Analytics package parameter key_columns for data preparation functions. Server 9.0 9.0.1
DROP_PARTITION meta-function, superseded by DROP_PARTITIONS Server 9.0
Machine Learning for Predictive Analytics package parameter owner. Server 8.1.1 9.0
Backup and restore --setupconfig command Server 8.1 9.1.1
SET_RECOVER_BY_TABLE meta-function. Do not disable recovery by table. Server 8.0.1
Column rebalance_projections_status.duration_sec Server 8.0
HDFS Connector Server 8.0 9.0
Prejoin projections Server 8.0 9.2
Administration Tools option --compat21 Server 7.2.1
admin_tools -t config_nodes Server 7.2 11.0.1
Projection buddies with inconsistent sort order Server 7.2 9.0
backup.sh Server 7.2 9.0
restore.sh Server 7.2 9.0
copy_vertica_database.sh Server 7.2
JavaClassPathForUDx configuration parameter Server 7.1
ADD_LOCATION meta-function Server 7.1
bwlimit configuration parameter Server 7.1 9.0
vbr configuration parameters retryCount and retryDelay Server 7.1 11.0
EXECUTION_ENGINE_PROFILE counters: file handles, memory allocated Server 7.0 9.3
EXECUTION_ENGINE_PROFILES counter memory reserved Server 7.0
MERGE_PARTITIONS() meta-function Server 7.0

krb5 client authentication method

All clients 7.0
range-segmentation-clause Server 6.1.1 9.2
scope parameter of meta-function CLEAR_PROFILING Server 6.1
Projection creation type IMPLEMENT_TEMP_DESIGN Server, clients 6.1

3 - New and changed in Vertica 23.3

3.1 - Client connectivity

Workload routing lets you create rules for routing client connections to particular subclusters based on their workloads.

Workload routing

Workload routing lets you create rules for routing client connections to particular subclusters based on their workloads.

The primary advantages of this type of load balancing is as follows:

  • Database administrators can associate certain subclusters with certain workloads (as opposed to client IP addresses).
  • Clients do not need to know anything about the subcluster they will be routed to, only the type of workload they have.
  • Database administrators can change workload routing policies at any time, and these changes are transparent to all clients.

For details, see Workload routing.

3.2 - Client drivers

When loading data with a COPY or prepared statement for an INSERT, SQLGetDiagRec() now returns the diagnostic information for the first 50 failures.

ODBC: Improved row error reporting

When loading data with a COPY or prepared statement for an INSERT, SQLGetDiagRec() now returns the diagnostic information for the first 50 failures. Previously, SQLGetDiagRec() only returned the diagnostic information for the first failure.

For details, see Tracking load status (ODBC).

ADO.NET: Linux and macOS support

The ADO.NET driver is now available on NuGet.org for all platforms: Windows, Linux, and macOS. To use it, you must first install .NET Core 3.1+ (.NET 6.0 recommended).

Cross-platform support for this driver also brings the following changes for the ADO.NET client driver 23.3.0 and above:

  • Logging is now configured with Vertica.Data.dll.config, rather than with HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ADO.NET\Driver in the Windows registry. Existing configurations in HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ADO.NET\Driver are automatically migrated to Vertica.Data.dll.config. For details, see Log properties.
  • To use the driver, you can now reference it in your project, rather than registering it in .NET Core. For details, see Installing the ADO.NET client driver.
  • Kerberos is currently only supported on Windows.

For installation and usage details, see Installing the ADO.NET client driver.

3.3 - Complex types

New features related to complex types.

DEFAULT and SET USING

Columns of scalar types in tables that also contain columns of complex types can now use the DEFAULT and SET USING options. See CREATE TABLE and ALTER TABLE.

Columns of complex types are still restricted from using these options.

Parquet loose schema matching

The PARQUET parser do_soft_schema_match_by_name option now supports complex types.

Joins for EXPLODE and UNNEST

You can use the output of EXPLODE and UNNEST as if it were a relation in a query. In addition to CROSS JOIN, you can now use LEFT JOIN to include NULL results, as in the following example:

=> ALTER SESSION SET UDPARAMETER FOR ComplexTypesLib skip_partitioning = true;

=> SELECT student, MIN(score), AVG(score) FROM tests
LEFT JOIN LATERAL EXPLODE(scores) AS t (pos, score)
GROUP BY student;
 student | MIN |       AVG
---------+-----+------------------
 Bob     |  78 |               83
 Lee     |     |
 Pat     |     |
 Sam     |  85 | 93.3333333333333
 Tom     |  68 |               79
(5 rows)

The LATERAL keyword is required with LEFT JOIN. It is optional for CROSS JOIN.

3.4 - Containers and Kubernetes

New features related to containerized Vertica.

HTTP service configuration

The httpServerMode custom resource definition parameter controls whether the Vertica server starts its HTTP server.

For details, see Custom resource definition parameters.

Custom HTTP port

The subclusters[i].httpNodePort custom resource definition parameter lets you set a custom port for external HTTPS connections when subclusters[i].serviceType is set to NodePort.

For details, see Custom resource definition parameters.

Prometheus server metrics

Vertica on Kubernetes now exposes server metrics with the HTTPS service. After you configure the HTTPS service to accept client requests, you can export time series metrics for data reporting and visualization.

For details, see the following:

3.5 - Data export and replication

New features for data export and replication: server-based replication.

Server-based replication

Server-based replication copies data from one Eon Mode database to another. Data is copied directly from the source database's communal storage location to the target database's communal storage location. Unlike vbr-based replication, server-based replication supports replication across platforms and between databases with different node counts.

Usually, you use server-based replication to keep a table or schema in the target database up to date with a corresponding table or schema in the source database. Replication automatically determines what has changed in the source database and only transfers those changes to the target database. For more information, see Server-based replication.

3.6 - Database management

You can now manage your Vertica database with the Node Management Agent (NMA).

Node Management Agent

You can now manage your Vertica database with the Node Management Agent (NMA). The NMA provides a REST API for administrating your nodes, which can be easier to integrate with and use in cases where you cannot use ssh to connect to a Vertica node.

The current iteration of the NMA is suitable for basic and general cluster management tasks. Future versions will add endpoints and utilities to support more complex workflows.

For details, see Node Management Agent.

HTTPS service

You can now manage your Vertica database with the HTTPS service. The HTTPS service provides a REST API for managing your database and accessing server, cluster, and host metrics in Prometheus exposition format.

The HTTPS service requires that you configure mutual mode TLS (mTLS). For details, see HTTPS service.

3.7 - Eon mode

New features related to Eon mode.

Add additional subclusters to sandboxes

You can now add and remove additional secondary subclusters to existing sandboxes. For details, see Adding subclusters to existing sandboxes and Removing a sandbox's secondary subclusters.

3.8 - File exporters

Changes to EXPORT TO statements.

EXPORT TO statements can overwrite or append to directories

If the target directory for export exists, you can use the ifDirExists parameter to EXPORT TO PARQUET, EXPORT TO ORC, EXPORT TO JSON, and EXPORT TO DELIMITED to overwrite or append new files to the existing directory.

3.9 - Loading data

New features for loading data: Iceberg schema evolution.

Iceberg schema evolution

Vertica can now read Apache Iceberg tables that have undergone the following types of schema evolution:

  • Changed column types
  • Added or dropped columns
  • Added or dropped struct fields

See CREATE EXTERNAL TABLE ICEBERG.

3.10 - Machine learning

New machine learning features available in Vertica 23.3.0

Expanded PMML support

Vertica now supports additional PMML tags and attributes, including the FieldRef and LocalTransformations tags. For a list of all supported PMML model types, tags, sub-tags, and attributes, see PMML features and attributes.

Complex type support for imported TensorFlow models

The PREDICT_TENSORFLOW_SCALAR function makes predictions with imported TensorFlow models that have complex type input and output columns. This function accepts and outputs a single ROW, where each field in the ROW contains a 1D ARRAY tensor. For details, see the function reference page and TensorFlow integration and directory structure.

To use this function with an imported TensorFlow model, you must use a column-type argument of 1 when calling the freeze_tf2_model.py script. For more information, see tf_model_desc.json overview.

3.11 - Management Console

New features for the Vertica Management Console.

User authentication with Keycloak

The Management Console (MC) integrates with Keycloak to authenticate user accounts. The MC provides the following authentication options to integrate with your corporate identity management workflows:

  • Local: User account information is stored and managed within the MC.
  • Federated: Authenticate MC user accounts with information that is stored in a federated LDAP or LDAPS server.
  • Identity Provider (IDP): Authenticate MC user accounts with information that is managed by an IDP.

For details, see Users, roles, and privileges in MC.

3.12 - Projections

Improved partitioned projections refresh performance

In previous releases, new and updated projections were not available to queries before they were completely refreshed with all table data. This delayed availability of projections to process query requests. Now, when you refresh the projections of a partitioned table—for example, a new projection of a table with existing data—the refresh operation first loads data from the partition with the highest range of keys. After refreshing this partition, Vertica begins to refresh the partition with next highest partition range. This process continues until all projection partitions are refreshed. In the meantime, while the refresh operation is in progress, projection partitions that have completed the refresh process become available to process query requests.

3.13 - Security and Authentication

New features for security and authentication in 23.3.0

Single sign-on (SSO) for ODBC OAuth

The Vertica ODBC driver can now automatically open your web browser and direct you to Keycloak's authentication endpoint to sign in with SSO. This method of authenticating with the identity provider is an alternative to manually retrieving the OAuthAccessToken from the various endpoints.

This functionality is currently limited to Keycloak. For details, see Retrieving an access token.

Simplified control channel Spread TLS

Vertica nodes use the control channel to communicate. You can secure this communication channel with TLS by enabling EncryptSpreadComm. You can now also set EncryptSpreadComm when you create the database. Previously, you could only set this parameter on a running database with ALTER DATABASE.

For details, see Control channel Spread TLS.

3.14 - SQL functions and statements

SET SESSION AUTHORIZATION for current session

The SET SESSION AUTHORIZATION statement changes the current and session user for the current SQL session. Changing the session is helpful for testing and debugging purposes.

For details, see SET SESSION AUTHORIZATION.

3.15 - Stored procedures

New features for stored procedures in 23.3.0

Nested stored procedures

You can now call stored procedures and execute meta-functions from inside other stored procedures. For details, see Nested stored procedures.

Transaction semantics

Stored procedures now only automatically commit after successful execution of the entire stored procedure, including any nested stored procedures. You can also manually commit with PERFORM COMMIT. For details, see Transaction semantics.

Previously, stored procedures committed the transaction before executing, and each embedded SQL statement executed in its own autocommitted transaction.

Session semantics

Stored procedures now support session semantics. All session-based changes made in a stored procedure persist after execution.

3.16 - Users and privileges

Machine learning models can now inherit the privileges of its parent schema.

Inherited privileges for models

Machine learning models can now inherit the privileges of its parent schema. Inherited privileges can be enabled at the model level and materialized into explicit grants with ALTER MODEL.

This feature can be disabled with DisableInheritedPrivileges, which disables privilege inheritance at the database level.