<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vertica Documentation – New and changed in Vertica 12.0.4</title>
    <link>/en/new-features/12.0.4/</link>
    <description>Recent content in New and changed in Vertica 12.0.4 on Vertica Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/en/new-features/12.0.4/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>New-Features: admintools</title>
      <link>/en/new-features/12.0.4/admin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/admin/</guid>
      <description>
        
        
        &lt;h2 id=&#34;setting-re_ip-timeout&#34;&gt;Setting re_ip timeout&lt;/h2&gt;
&lt;p&gt;You can configure how long &lt;code&gt;re_ip&lt;/code&gt; executes a given task before it times out, by editing the setting of 
&lt;code&gt;&lt;a href=&#34;../../../en/admin/managing-db/managing-nodes/reconfiguring-node-messaging/re_ip_Timeout&#34;&gt;prepare_timeout_sec&lt;/a&gt;&lt;/code&gt; in &lt;code&gt;admintools.conf&lt;/code&gt;. By default, this parameter is set to 7200 (seconds).&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Client connectivity</title>
      <link>/en/new-features/12.0.4/client-connectivity/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/client-connectivity/</guid>
      <description>
        
        
        &lt;h2 id=&#34;set-idle-timeouts-during-connection-initialization&#34;&gt;Set idle timeouts during connection initialization&lt;/h2&gt;
&lt;p&gt;You can set the &lt;a href=&#34;../../../en/sql-reference/config-parameters/general-parameters/&#34;&gt;IdleTimeoutInitializingConnectionsMs&lt;/a&gt; configuration parameter to change the length of time that the server waits for an idle client during each step in connection initialization, before a session is created.&lt;/p&gt;
&lt;h2 id=&#34;client-hostnames&#34;&gt;Client hostnames&lt;/h2&gt;
&lt;p&gt;The hostnames of clients (as reported by their operating systems) are now recorded in the CLIENT_OS_HOSTNAME column of the following tables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/sessions/&#34;&gt;SESSIONS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/current-session/&#34;&gt;CURRENT_SESSION&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/user-sessions/&#34;&gt;USER_SESSIONS&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Client drivers</title>
      <link>/en/new-features/12.0.4/client-drivers/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/client-drivers/</guid>
      <description>
        
        
        &lt;h2 id=&#34;odbc-and-vsql-support-for-m1-and-m2-processors&#34;&gt;ODBC and vsql: support for M1 and M2 processors&lt;/h2&gt;
&lt;p&gt;The ODBC and vsql client drivers now support Apple M1 and M2 processors. For details, see &lt;a href=&#34;../../../en/supported-platforms/client-drivers-support/&#34;&gt;Client drivers support&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Complex types</title>
      <link>/en/new-features/12.0.4/complex-types/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/complex-types/</guid>
      <description>
        
        
        &lt;h2 id=&#34;unnest-function&#34;&gt;UNNEST function&lt;/h2&gt;
&lt;p&gt;The new &lt;a href=&#34;../../../en/sql-reference/functions/data-type-specific-functions/collection-functions/unnest/&#34;&gt;UNNEST&lt;/a&gt; function expands one or more array columns. UNNEST is similar to EXPLODE, with two key differences:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;UNNEST returns element values but not positions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;UNNEST automatically expands all arrays that are passed to it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;explode-performance-optimization&#34;&gt;EXPLODE performance optimization&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;../../../en/sql-reference/functions/data-type-specific-functions/collection-functions/explode/&#34;&gt;EXPLODE&lt;/a&gt; function translates a single row of input into multiple rows of output, one per collection element. There is, therefore, usually no benefit to partitioning the input. Previously, a query using EXPLODE required an OVER clause and Vertica partitioned the input before calling EXPLODE. Now, you can skip this partitioning step by using the &lt;code&gt;skip_partitioning&lt;/code&gt; function parameter and omitting the OVER clause.&lt;/p&gt;
&lt;h2 id=&#34;cross-join-explode&#34;&gt;CROSS JOIN EXPLODE&lt;/h2&gt;
&lt;p&gt;You can use the output of &lt;a href=&#34;../../../en/sql-reference/functions/data-type-specific-functions/collection-functions/explode/&#34;&gt;EXPLODE&lt;/a&gt; as if it were a relation by using CROSS JOIN EXPLODE in a query, as in the following example:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER SESSION SET UDPARAMETER FOR ComplexTypesLib skip_partitioning = true;

=&amp;gt; SELECT student, score FROM tests
   CROSS JOIN EXPLODE(scores) AS t (pos, score)
   ORDER BY score DESC;
 student | score
---------+-------
 Sam     |    98
 Sam     |    97
 Bob     |    92
 Tom     |    91
 Sam     |    85
 Tom     |    82
 Bob     |    79
 Bob     |    78
 Tom     |    75
 Tom     |    68
(10 rows)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For details, see &lt;a href=&#34;../../../en/sql-reference/functions/data-type-specific-functions/collection-functions/explode/#Joining&#34;&gt;Joining on Results&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Database management</title>
      <link>/en/new-features/12.0.4/db-management/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/db-management/</guid>
      <description>
        
        
        &lt;h2 id=&#34;amazon-simple-notification-service-sns-notifiers&#34;&gt;Amazon simple notification service (SNS) notifiers&lt;/h2&gt;
&lt;p&gt;You can now send messages to SNS topics with &lt;a href=&#34;../../../en/sql-reference/statements/create-statements/create-notifier/&#34;&gt;notifiers&lt;/a&gt;. For details, see &lt;a href=&#34;../../../en/admin/monitoring/monitoring-events/configuring-event-reporting/configuring-reporting-simple-notification-service-sns/&#34;&gt;Configuring reporting for the simple notification service (SNS)&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Directed queries</title>
      <link>/en/new-features/12.0.4/directed-queries/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/directed-queries/</guid>
      <description>
        
        
        &lt;h2 id=&#34;insertselect-hints&#34;&gt;INSERT...SELECT hints&lt;/h2&gt;
&lt;p&gt;You can now annotate the query of an &lt;a href=&#34;../../../en/sql-reference/statements/insert/#InsertSelect&#34;&gt;INSERT...SELECT&lt;/a&gt; statement with &lt;a href=&#34;../../../en/admin/managing-queries/directed-queries/&#34;&gt;directed query&lt;/a&gt; hints.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Documentation updates</title>
      <link>/en/new-features/12.0.4/documentation-updates/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/documentation-updates/</guid>
      <description>
        
        
        &lt;h2 id=&#34;data-exploration&#34;&gt;Data exploration&lt;/h2&gt;
&lt;p&gt;When data is not well-specified in a schema, developing a table definition so you can load the data can be challenging. Vertica provides tools you can use to explore data and refine a table definition. These tools and processes are now described in a new top-level section of the documentation, &lt;a href=&#34;../../../en/data-exploration/&#34;&gt;Data exploration&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Eon Mode</title>
      <link>/en/new-features/12.0.4/eon/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/eon/</guid>
      <description>
        
        
        &lt;h2 id=&#34;subcluster-sandboxing&#34;&gt;Subcluster sandboxing&lt;/h2&gt;
&lt;p&gt;Sandboxing enables you to spin-off a secondary subcluster from an existing cluster, resulting in two mutually isolated clusters that share the same data but do not interfere with each other. After &lt;a href=&#34;../../../en/eon/subcluster-sandboxing/creating-sandboxes/&#34;&gt;sandbox creation&lt;/a&gt;, you can perform standard database operations and queries, such as creating new tables or loading libraries, without affecting the other cluster. For example, dropping a table in the sandboxed subcluster does not drop the table in the main cluster, and vice versa.&lt;/p&gt;
&lt;p&gt;Sandboxes support many use cases, including the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Testing a new version of Vertica without needing to spin-up a new cluster and reload data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trying out features without compromising the consistency of the main cluster.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sharing data with another team by giving them access to a sandboxed subcluster.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After &lt;a href=&#34;../../../en/eon/subcluster-sandboxing/removing-sandboxes/&#34;&gt;removing the sandbox&lt;/a&gt; and performing necessary cleanup tasks, the subcluster can rejoin the main cluster.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Apache Kafka integration</title>
      <link>/en/new-features/12.0.4/kafka-integration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/kafka-integration/</guid>
      <description>
        
        
        &lt;h2 id=&#34;kafka_conf_secret-parameter&#34;&gt;kafka_conf_secret parameter&lt;/h2&gt;
&lt;p&gt;The kafka_conf_secret parameter conceals sensitive data that you must pass to rdkafka to configure the Vertica and Kafka integration. Vertica does not log or store values that you pass in kafka_conf_secret.&lt;/p&gt;
&lt;p&gt;This option is available on tools and functions that use the kafka_conf parameter.&lt;/p&gt;
&lt;p&gt;For details, see &lt;a href=&#34;../../../en/kafka-integration/configuring-and-kafka/directly-setting-kafka-library-options/&#34;&gt;Directly setting Kafka library options&lt;/a&gt; and &lt;a href=&#34;../../../en/kafka-integration/&#34;&gt;Apache Kafka integration&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Loading data</title>
      <link>/en/new-features/12.0.4/loading-data/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/loading-data/</guid>
      <description>
        
        
        &lt;h2 id=&#34;optimization-for-external-tables-on-object-stores&#34;&gt;Optimization for external tables on object stores&lt;/h2&gt;
&lt;p&gt;When an external table uses data that is stored on an object store (S3, GCS, or Azure), and that data has many levels of partitioning, performance can be affected. The ObjectStoreGlobStrategy configuration parameter allows you to read and prune partitions using a different strategy, improving performance when queries are selective and there are many partition directory levels. With this setting, fewer calls are made to the object store API. For details, see &lt;a href=&#34;../../../en/data-load/working-with-external-data/partitioned-file-paths/#Partitio&#34;&gt;Partitions on Object Stores&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;iceberg-support&#34;&gt;Iceberg support&lt;/h2&gt;
&lt;p&gt;You can now define external tables backed by Parquet data stored by &lt;a href=&#34;https://iceberg.apache.org/spec/&#34;&gt;Apache Iceberg&lt;/a&gt;. An Iceberg table consists of data files and metadata describing the schema. Unlike other external tables, an Iceberg external table need not specify column definitions (DDL). The information is read from Iceberg metadata at query time. For certain data types you can adjust column definitions, for example to specify VARCHAR sizes. See &lt;a href=&#34;../../../en/sql-reference/statements/create-statements/create-external-table-iceberg/&#34;&gt;CREATE EXTERNAL TABLE ICEBERG&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Machine learning</title>
      <link>/en/new-features/12.0.4/ml/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/ml/</guid>
      <description>
        
        
        &lt;h2 id=&#34;model-versioning&#34;&gt;Model versioning&lt;/h2&gt;
&lt;p&gt;Model versioning provides an infrastructure to track and manage the status of registered models in a database. The versioning infrastructure supports a collaborative environment where multiple users can submit candidate models for individual applications. dbadmin and users with the &lt;a href=&#34;../../../en/admin/db-users-and-privileges/db-roles/predefined-db-roles/mlsupervisor/&#34;&gt;MLSUPERVISOR&lt;/a&gt; role can manage and change the status of all registered models, including which models are currently in production.&lt;/p&gt;
&lt;p&gt;Vertica provides the following model versioning functionality:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../en/sql-reference/functions/ml-functions/model-management/register-model/&#34;&gt;REGISTER_MODEL&lt;/a&gt;: Registers a model and adds it to the versioning environment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../en/sql-reference/functions/ml-functions/model-management/change-model-status/&#34;&gt;CHANGE_MODEL_STATUS&lt;/a&gt;: Changes the status of a registered model.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-catalog-schema/registered-models/&#34;&gt;REGISTERED_MODELS&lt;/a&gt;: Lists registered models in the database.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/model-status-history/&#34;&gt;MODEL_STATUS_HISTORY&lt;/a&gt;: Tracks the status history of registered models.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For details about the model versioning environment and an in-depth example, see &lt;a href=&#34;../../../en/data-analysis/ml-predictive-analytics/model-management/model-versioning/&#34;&gt;Model versioning&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;poisson-regression&#34;&gt;Poisson regression&lt;/h2&gt;
&lt;p&gt;Vertica now supports the &lt;a href=&#34;../../../en/data-analysis/ml-predictive-analytics/regression-algorithms/poisson-regression/&#34;&gt;Poisson regression algorithm&lt;/a&gt; to model count data. Poisson regression offers an alternative to linear regression or logistic regression and is useful when your desired prediction range is non-negative real numbers or integers.&lt;/p&gt;
&lt;h2 id=&#34;autoregresssive-integrated-moving-average-arima-support&#34;&gt;Autoregresssive integrated moving average (ARIMA) support&lt;/h2&gt;
&lt;p&gt;Vertica now supports autoregressive integrated moving average (ARIMA) models for time series analytics. ARIMA models combine the abilities of &lt;a href=&#34;../../../en/sql-reference/functions/ml-functions/ml-algorithms/autoregressor/&#34;&gt;AUTOREGRESSOR&lt;/a&gt; and &lt;a href=&#34;../../../en/sql-reference/functions/ml-functions/ml-algorithms/moving-average/&#34;&gt;MOVING_AVERAGE&lt;/a&gt; models by making future predictions based on both preceding time series values and errors of previous predictions. You can use the &lt;a href=&#34;../../../en/sql-reference/functions/ml-functions/ml-algorithms/arima/&#34;&gt;ARIMA&lt;/a&gt; function to create and train an ARIMA model and the &lt;a href=&#34;../../../en/sql-reference/functions/ml-functions/transformation-functions/predict-arima/&#34;&gt;PREDICT_ARIMA&lt;/a&gt; function to make predictions.&lt;/p&gt;
&lt;p&gt;For an in-depth example that trains and makes predictions with an ARIMA model, see &lt;a href=&#34;../../../en/data-analysis/ml-predictive-analytics/time-series-forecasting/arima-model-example/&#34;&gt;ARIMA model example&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Partitioning</title>
      <link>/en/new-features/12.0.4/partitioning/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/partitioning/</guid>
      <description>
        
        
        &lt;h2 id=&#34;window-partitioning-for-1n-transform-functions-using-partition-row&#34;&gt;Window partitioning for 1:N transform functions using PARTITION ROW&lt;/h2&gt;
&lt;p&gt;Previously, window partitioning could only be used for 1:1 analytic functions. Now, the &lt;a href=&#34;../../../en/sql-reference/language-elements/window-clauses/window-partition-clause/&#34;&gt;PARTITION ROW&lt;/a&gt; syntax can be used for window partitioning 1:N transform functions.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Performance improvements</title>
      <link>/en/new-features/12.0.4/performance-improvements/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/performance-improvements/</guid>
      <description>
        
        
        &lt;h2 id=&#34;refreshing-partitioned-projections&#34;&gt;Refreshing partitioned projections&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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 this partition is refreshed, 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.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Resource management</title>
      <link>/en/new-features/12.0.4/resource-management/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/resource-management/</guid>
      <description>
        
        
        &lt;h2 id=&#34;default-user-resource-pool&#34;&gt;Default user resource pool&lt;/h2&gt;
&lt;p&gt;The new configuration parameter &lt;a href=&#34;../../../en/sql-reference/config-parameters/general-parameters/#DefaultResourcePoolForUsers&#34;&gt;DefaultResourcePoolForUsers&lt;/a&gt; lets you configure the default user resource pool that is assigned to new users, including LDAP users. For details, see &lt;a href=&#34;../../../en/admin/managing-db/managing-workloads/resource-pool-architecture/user-resource-allocation/&#34;&gt;User resource allocation&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: SDK updates</title>
      <link>/en/new-features/12.0.4/sdk-updates/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/sdk-updates/</guid>
      <description>
        
        
        &lt;h2 id=&#34;one-to-many-udtfs-and-partition-row&#34;&gt;One-to-many UDTFs and PARTITION ROW&lt;/h2&gt;
&lt;p&gt;Single-phase user-defined transform functions (UDTFs) written in C++ and Python now support the &lt;code&gt;isExploder&lt;/code&gt; class property, which indicates whether the UDTF performs a one-to-many transform. If this property is set to True within the &lt;code&gt;getTransformFunctionProperties&lt;/code&gt; factory method, the function uses an OVER(PARTITION ROW) clause by default and thereby removes the need to specify an OVER clause when calling the UDTF. Users can also include any expression in SELECT queries that call a one-to-many UDTF.&lt;/p&gt;
&lt;p&gt;For more information about this class property and one-to-many UDTFs, see &lt;a href=&#34;../../../en/extending/developing-udxs/transform-functions-udtfs/partitioning-options-udtfs/&#34;&gt;Partitioning options for UDTFs&lt;/a&gt; and &lt;a href=&#34;../../../en/extending/developing-udxs/transform-functions-udtfs/transformfunctionfactory-class/&#34;&gt;TransformFunctionFactory class&lt;/a&gt;. See &lt;a href=&#34;../../../en/extending/developing-udxs/transform-functions-udtfs/python-example-explode/&#34;&gt;Python example: explode&lt;/a&gt; for an in-depth example detailing a one-to-many UDTF.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Security and authentication</title>
      <link>/en/new-features/12.0.4/security-and-authentication/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/security-and-authentication/</guid>
      <description>
        
        
        &lt;h2 id=&#34;oauth&#34;&gt;OAuth&lt;/h2&gt;
&lt;h3 id=&#34;json-web-token-validation-keycloak-only&#34;&gt;JSON web token validation (keycloak only)&lt;/h3&gt;
&lt;p&gt;Vertica can now validate OAuth tokens without contacting the identity provider by verifying the signer of the OAuth token. To enable this feature, &lt;a href=&#34;../../../en/sql-reference/statements/create-statements/create-authentication/&#34;&gt;create&lt;/a&gt; an authentication record that uses &#39;&lt;code&gt;oauth&lt;/code&gt;&#39; and &lt;a href=&#34;../../../en/sql-reference/statements/alter-statements/alter-authentication/&#34;&gt;set the authentication parameters&lt;/a&gt; to use JWT validation. For details, see &lt;a href=&#34;../../../en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/&#34;&gt;Configuring OAuth authentication&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;just-in-time-user-provisioning-keycloak-only&#34;&gt;Just-in-time user provisioning (keycloak only)&lt;/h3&gt;
&lt;p&gt;Just-in-time (JIT) user provisioning is the act of automatically configuring an authenticated user and their roles based on information provided by the identity provider. When a client &lt;a href=&#34;../../../en/security-and-authentication/client-authentication/&#34;&gt;authenticates&lt;/a&gt; to Vertica with an OAuth token the &lt;a href=&#34;../../../en/sql-reference/statements/create-statements/create-authentication/&#34;&gt;authentication record&lt;/a&gt; enables JIT user provisioning, Vertica automatically creates the user (if the user does not already exist in Vertica) and granting to them the roles specified by the identity provider.&lt;/p&gt;
&lt;p&gt;For example, if a client presents an OAuth token to authenticate as user &lt;code&gt;Alice&lt;/code&gt; with role &lt;code&gt;director&lt;/code&gt;, and &lt;code&gt;Alice&lt;/code&gt; does not exist in Vertica, Vertica automatically creates the user &lt;code&gt;Alice&lt;/code&gt;, grants to her the authentication record, and grants to her the &lt;code&gt;director&lt;/code&gt; role as a &lt;a href=&#34;../../../en/admin/db-users-and-privileges/db-roles/enabling-roles-automatically/&#34;&gt;default role&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For details, see &lt;a href=&#34;../../../en/security-and-authentication/client-authentication/oauth-2-0-authentication/just-time-user-provisioning/&#34;&gt;Just-in-time user provisioning&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;jdbc-custom-truststore&#34;&gt;JDBC: custom truststore&lt;/h3&gt;
&lt;p&gt;You can use a custom truststore to secure the connection between the JDBC client and the identity provider. This is useful if your identity provider&#39;s certificate is not signed by a well-known certificate authority.&lt;/p&gt;
&lt;p&gt;The path to the truststore and its password are specified with the following connection properties:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;oauthtruststorepath&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;oauthtruststorepassword&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If oauthtruststorepath is not specified, the JDBC client uses the default truststore.&lt;/p&gt;
&lt;p&gt;For details on this and other connection properties, see &lt;a href=&#34;../../../en/connecting-to/client-libraries/accessing/java/creating-and-configuring-connection/jdbc-connection-properties/&#34;&gt;JDBC connection properties&lt;/a&gt;. For details on configuring OAuth, see &lt;a href=&#34;../../../en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/&#34;&gt;Configuring OAuth authentication&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: Stored procedures</title>
      <link>/en/new-features/12.0.4/stored-procedures/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/stored-procedures/</guid>
      <description>
        
        
        &lt;h2 id=&#34;scheduled-execution&#34;&gt;Scheduled execution&lt;/h2&gt;
&lt;p&gt;You can now schedule the automatic execution of stored procedures. This can be used to automate various tasks, like logging database activity, revoking privileges, or creating roles. For details, see &lt;a href=&#34;../../../en/extending/stored-procedures/executing-stored-procedures/triggers/scheduled-execution/&#34;&gt;Scheduled execution&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;viewing-overloaded-stored-procedures&#34;&gt;Viewing overloaded stored procedures&lt;/h2&gt;
&lt;p&gt;You can now view the source code of a particular implementation of an overloaded stored procedure with &lt;a href=&#34;../../../en/sql-reference/functions/management-functions/catalog-functions/export-objects/&#34;&gt;EXPORT_OBJECTS&lt;/a&gt;. For details, see &lt;a href=&#34;../../../en/data-export/db-export-and-import/using-export-functions/exporting-objects/&#34;&gt;Exporting objects&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>New-Features: User-defined extensions</title>
      <link>/en/new-features/12.0.4/udxs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/new-features/12.0.4/udxs/</guid>
      <description>
        
        
        &lt;h2 id=&#34;redactable-user-defined-extension-and-session-parameters&#34;&gt;Redactable user-defined extension and session parameters&lt;/h2&gt;
&lt;p&gt;User-defined &lt;a href=&#34;../../../en/extending/developing-udxs/udx-parameters/defining-udx-parameters/&#34;&gt;extension&lt;/a&gt; and &lt;a href=&#34;../../../en/extending/developing-udxs/udx-parameters/user-defined-session-parameters/&#34;&gt;session&lt;/a&gt; parameters that meet any of the following criteria are automatically redacted from logs and system tables like &lt;a href=&#34;../../../en/sql-reference/system-tables/v-monitor-schema/query-requests/&#34;&gt;QUERY_REQUESTS&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Named &amp;quot;secret&amp;quot; or &amp;quot;password&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;End with &amp;quot;_secret&amp;quot; or &amp;quot;_password&amp;quot;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
