Resolved issues release notes for 9.3.x.
This hotfix was internal to Vertica.
Issue Key |
Component |
Description |
VER-42720 |
Execution Engine |
Vertica occasionally generated misleading error messages in certain distributed query executions.
This issue has been resolved. |
VER-63714 |
Cloud - Google |
Previously, exporting parquet files to Google Cloud Storage caused an error. This is now fixed. |
VER-66216 |
Admin Tools |
Passwords are now validated when creating databases. |
VER-66903 |
Kafka Integration |
Users can now use kafka_conf to override the kafka ssl setting to allow SASL+SSL authentication to
work. |
VER-67029 |
Client Drivers - JDBC |
The maxconnection limitation check no longer fails after running a distribute query. |
VER-67201 |
Client Drivers - ODBC |
Previously, the names of files used in copy local operations were not correctly represented within
the Windows version of the ODBC/OLEDB drivers; as a result, non-ASCII characters could not be used
in these filenames. The same problem existed for the names of rejection and exception filenames
specified in a copy local operation. This problem has now been corrected, and non-ASCII characters
can be used in all three types of files. |
VER-67497 |
Client Drivers - VSQL |
Previously, the VSQL options -B (connection backup server/port) and -k/-K (Kerberos service and
host name) were incompatible, and the latter would be ignored. Now, these options can be set
together. |
VER-67511 |
Tuple Mover |
Configuration parameter MergeOutInterval specifies in seconds (by default 600) how often the Tuple
Mover checks the mergeout request queue for pending requests. If the queue is empty, the Tuple Mover
processes storage location move requests. In previous releases, Tuple Mover threads that were
triggered by DML operations ignored the MergeOutInterval parameter and processed all pending
requests, including storage location move requests. This sometimes resulted in frequent checks for
storage location move requests, which could adversely affect performance. To resolve this issue,
Tuple Mover threads that are spawned by DML operations are now subject to MergeOutInterval. |
VER-67701 |
LocalPlanner |
Vertica occasionally failed when running COUNT DISTINCT queries with predicates on lead columns in
the projection sort order. This issue has been resolved. |
VER-67964 |
Execution Engine |
In rare circumstances, if a cluster's partitioning was short-lived due to network problems, then
the whole cluster may have gone down. This issue has been resolved. |
VER-67966 |
Backup/DR |
If a user performed a copycluster task and a swap partition task concurrently, the data that
participated in the swap partition could end up missing on the target cluster. This issue has been
resolved. |
VER-67980 |
Client Drivers - ODBC |
Error messages containing Japanese column names now display correctly. |
VER-68414 |
SAL |
Queries could fail when Vertica 9.2 tried to read a ROS file format from Vertica 6.0 or earlier.
Vertica now properly handles files created in this format. |
VER-68549 |
UI - Management Console |
A problem occurred when an MC Admin user chose to bind to LDAP anonymously, where the setting did
not take effect despite clicking 'Apply' and 'Done'. This problem has now been fixed. |
VER-68633 |
Security |
To ensure that username case is consistent between SESSIONS and other system tables, the SESSIONS
system tables are now populated with the username value from the catalog. |
VER-68644 |
Tuple Mover |
In previous releases, Vertica considered unsafe projections when it tried to advance AHM. Now,
Vertica ignores unsafe projections when it determines the AHM. |
VER-68720 |
UDX |
GRANT and REVOKE statements now support ALTER and DROP privileges for user-defined functions. |
VER-68726 |
Kafka Integration |
Vertica no longer fails when it encounters improper Kafka SSL key/certificate setup error
information on RedHat Linux. |
VER-68790 |
Backup/DR |
If a user deleted an object during a backup on EON mode, the backup could potentially fail. This
issue has been resolved. |
VER-68853 |
Subscriptions |
A failure in one EON Mode subcluster no longer has the ability to affect another subcluster. |
VER-68898 |
Data Removal - Delete, Purge, Partitioning |
DROP_PARTITIONS requires that the range of partition keys to drop exclusively occupy the same ROS
container. If the target ROS container contains partition keys that are outside the specified range
of partition keys, the force-split argument must be set to true, otherwise the function returns with
an error.
In rare cases, DROP_PARTITIONS executes at the same time as a mergeout operation on the
same ROS container. When this happens, the function cannot execute the force-split operation and
returns with an error. This error message has been modified to better identify the source of the
problem, and also provides a hint to try calling DROP_PARTITIONS again. |
VER-69184 |
Execution Engine |
In cases where COUNT (DISTINCT) and aggregates such as AVG were involved in a query of a numeric
datatype input, the GroupGeneratorHashing Step was causing a memory conflict when the size of the
input datatype (numeric) was greater than the size of output datatype (float for average), producing
incorrect results. This issue has been resolved. |
VER-69217 |
Data load / COPY |
Sending excessively long inputs to a NUMERIC column in a COPY statement could cause Vertica to
crash. This issue has been resolved. |
VER-69229 |
Execution Engine |
In some cases, queries failed to sort UUIDs correctly if the ORDER BY clause did not specify the
UUID column first. This problem has been resolved. |
VER-69292 |
Execution Engine, UDX, Vertica Log Text Search |
Previously, the v_txtindex.StringTokenizerDelim UDx made copies of the input for each token, which
could lead to memory issues. This function no longer makes copies of the original input and now
returns one column containing the tokens.
To produce the old behavior that maps the tokens to the original input, include a
"PARTITION BY <input_col>" clause inside the OVER() clause of the UDx call. |
VER-69383 |
Optimizer - Statistics and Histogram |
ANALYZE_ROW_COUNT can no longer change STATISTICS_TYPE from FULL to ROWCOUNT. |
VER-69431 |
Data Export |
S3EXPORT now supports a null_as parameter that specifies how to export null values from the source
data. If this parameter is included, S3EXPORT replaces all null values with the specified string. |
VER-69486 |
Security |
Previously, LDAP Link required a global catalog lock during the entire operation. This would
sometimes cause the database to fail if the LDAP server took too long to respond. Now, LDAP Link
only requires a global catalog lock when it maps LDAP entries to Vertica users and roles. |
VER-69489 |
Data load / COPY |
COPY statements could automatically generate rejected data file names that were too long for
Vertica's file system, causing the COPY to error out. Vertica will now truncate these file names to
prevent this from happening. |
VER-69535 |
Data load / COPY |
A bug in tracking disk usage of rejected data tables would rarely cause Vertica to crash. This
issue has been resolved. |
VER-69606 |
Catalog Engine |
ETL queries no longer fail with the error "Active subscriptions changed during query planning" if
you run the query while running REBALANCE_SHARDS on another subcluster. |
VER-69702 |
Communications/messaging |
Queries performed against a virtual table no longer display duplicate error messages if performed
while one or more nodes is down. |
VER-70487 |
Admin Tools |
Starting a subcluster in an EON Mode database no longer writes duplicate entries to the
admintools.log file. |
Issue Key |
Component |
Description |
VER-67087 |
Admin Tools |
Sometimes during database revive, admintools treated s3 and hdfs user storage locations as local
filesystem paths. This led to errors during revive. This issue has been resolved. |
VER-68531 |
Admin Tools |
Previously, environment variables used by admintools during SSH operations were set incorrectly on
remote hosts.
This issue has been resolved. |
VER-64171 |
Backup/DR |
If the hardlink failed during a hardlink backup, vbr switched to copying data instead of failing the
backup and threw an error. This issue has been resolved. |
VER-66956 |
Backup/DR |
Dropping the user that owns an object involved in a replicate or restore operation during that
replicate or restore operation can cause the nodes involved in the operation to fail. |
VER-62334 |
Catalog Engine |
Previously, if a DROP statement on an object failed and was rolled back, Vertica would generate a
NOTICE for each dependent object. This was problematic in cases where the DROP operation had a large
number of dependencies. This issue has been resolved: Vertica now generates up to 10 messages for
dependent objects, and then displays the total number of dependencies. |
VER-67734 |
Catalog Engine |
In Eon mode, queries sometimes failed if they were submitted at the same time as a new node was
added to the cluster. This issue has been resolved. |
VER-68188 |
Catalog Engine |
Exporting a catalog on a view that references itself could cause Vertica to fail. This issue has
been resolved. |
VER-68603 |
Catalog Sync and Revive |
Database startup occasionally failed when catalog truncation failed because the disk was full. This
issue has been resolved. |
VER-68494 |
Client Drivers - Misc |
Some kinds of node failures did not reset the list of available nodes for connection load balancing.
These failures now update the available node list. |
VER-67342 |
Data Removal - Delete, Purge, Partitioning
Client Drivers - ODBC |
Queries use the query epoch (current epoch -1) to determine which storage containers to use. A query
epoch is set when the query is launched, and is compared with storage container epochs during the
local planning stage. Occasionally, a swap partition operation was committed in the interval between
query launch and local planning. In this case, the epoch of the post-commit storage containers was
higher than the query epoch, so the query could not use them, and it returned empty results. This
problem was resolved by making SWAP_PARTITIONS_BETWEEN_TABLES atomic. |
VER-66546 |
Cloud - Amazon |
The verticad script restarts the Vertica process on a node when the operating system starts. On
Amazon Linux, the script sometimes was unable to detect the operating system and returned an error.
This issue has been resolved. |
VER-53370 |
DDL - Projection |
Previously, projections of a renamed table retained their original names, which were often derived
from the table's previous name. This issue has been resolved: now, when you rename a table, all
projections whose names are prefixed by the anchor table name are renamed with the new table name. |
VER-66882 |
DDL - Table |
The database statistics tool SELECT ANALYZE_STATISTICS no longer acquires a GCL-X lock when running
against local temp tables. |
VER-67105 |
S3
Data Export |
In previous releases, s3export could not export files in CSV format. The function now supports two
new parameters, enclosed_by and escape_as, that enable exporting files in CSV format. |
VER-68619 |
Hadoop
Data Export |
Date Columns now includes the Parquet Logical type, enabling other tools to recognize this column as
a Date type. |
VER-66272 |
Data Removal - Delete, Purge, Partitioning |
Queries use the query epoch (current epoch -1) to determine which storage containers to use. A query
epoch is set when the query is launched, and is compared with storage container epochs during the
local planning stage. Occasionally, a swap partition operation was committed in the interval between
query launch and local planning. In this case, the epoch of the post-commit storage containers was
higher than the query epoch, so the query could not use them, and it returned empty results. This
problem was resolved by making SWAP_PARTITIONS_BETWEEN_TABLES atomic. |
VER-65427 |
Data load / COPY |
Vertica could crash if its client disconnected during a COPY LOCAL with REJECTED DATA. This issue
has been resolved. |
VER-65659 |
Data load / COPY |
Occasionally, a copy or external table query could crash a node. This has been resolved. |
VER-68033 |
Data load / COPY |
A bug in the Apache Parquet C++ library sometimes caused Vertica to fail when reading Parquet files
with large Varchar statistics. This issue has been resolved. |
VER-53981 |
Database Designer Core |
In some cases, DESIGNER_DESIGN_PROJECTION_ENCODINGS mistakenly removed comments from the target
projections. This issue has been resolved. |
VER-62628 |
Execution Engine |
If a subquery that is used as an expression returns more than one row, Vertica returns with an
error. In past releases, Vertica used this error message:
ERROR 4840: Subquery used as an expression returned more than one row
In cases where the query contained multiple subqueries, this message did not help users identify the
source of the problem. With this release, the error message now provides the Join label and
localplan_id. For example:
ERROR 4840: Subquery used as an expression returned more than one row
DETAIL: Error occurred in Join [(public.t1 x public.t2) using t1_super and subquery (PATH ID: 1)]
with localplan_id=[4] |
VER-66224 |
Execution Engine |
On rare occasions, a query that exceeded its runtime cap automatically restarted instead of
reporting the timeout error. This issue has been resolved. |
VER-67069 |
Execution Engine |
Some queries with complex predicates ignored cancel attempts, manual or via the runtime cap, and
continued to run for a long time. Cancel attempts themselves also caused the query to run longer
than it would have otherwise. This issue has been resolved. |
VER-67102 |
Execution Engine |
Users were unable to cancel meta-function RUN_INDEX_TOOL. This problem has been resolved. |
VER-69066 |
Execution Engine |
In some cases, queries failed to sort UUIDs correctly if the ORDER BY clause did not specify the
UUID column first. This problem has been resolved. |
VER-64680 |
Kafka Integration |
Previously, the version of the kafkacat utility distributed with Vertica had an issue that prevented
it from working when TLS/SSL encryption was enabled. This issue has been corrected, and the version
of kafkacat bundled with Vertica can now make TLS/SSL encrypted connections. |
VER-68192 |
License |
Upgrading 8.1.1-x databases with Autopass license installed to 9.0 or later can lead to license
tampering startup issues. This problem has been resolved. |
VER-67573 |
Nimbus |
In the past, DDL transactions remained open until all pending file deletions were complete. In Eon
mode, this dependency could cause significant delays. This issue has been resolved: now, DDL
transactions can complete while file deletions continue to execute in the background. |
VER-26260 |
Optimizer |
Vertica can now optimize queries on system tables where the queried columns are guaranteed to
contain unique values. In this case, the optimizer prunes away unnecessary joins on columns that are
not queried. |
VER-66423 |
Optimizer |
The Optimizer's is better able to derive transitive selection predicates from subqueries. |
VER-66902 |
Optimizer |
EXPORT TO VERTICA returned an error if the table to export was a flattened table that already
existed in the source and target databases. This issue has been resolved. |
VER-66933 |
Optimizer |
Previously, export operations such as export_tables() exported all table constraints as ALTER
statements, whether they were part of the original CREATE statement, or added later with ALTER
TABLE. This was problematic for global temporary tables, which cannot be modified with any
constraints other than foreign keys; attempts to add constraints on a temporary table with ALTER
TABLE return with an error. Thus, the DDL that was exported for a temporary table with constraints
could not be used to reproduce that table.
This problem has been resolved: now, export operations always export DDL for all constraints (except
foreign keys) as part the CREATE statement. This change applies to all tables, temporary and
otherwise.
|
VER-66968 |
Optimizer |
Queries that perform an inner join and group the results now return consistent results. |
VER-67138 |
Optimizer |
When flattening subqueries, Vertica could sometimes move subqueries to the ON clause which is not
supported. This issue has been resolved. |
VER-67443 |
Optimizer |
ALTER TABLE...ALTER CONSTRAINT returned an error when a node was down. This issue has been resolved:
you can now enable enable or disable table constraints when nodes are down. |
VER-67740 |
Optimizer |
Vertica sometimes crashed when certain combinations of analytic functions were applied to the output
of a merge join. This issue has been resolved. |
VER-67908 |
Optimizer |
Prepared statements do not support WITH clause materialization. Previously, Vertica threw an error
when it tried to materialize a WITH clause for prepared statement queries. Now, Vertica throws a
warning and processes the WITH clause without materializing it. |
VER-68306 |
Optimizer |
Queries with multiple analytic functions over complex expression arguments and different PARTITION
BY/ORDER BY column sets would sometimes produce incorrect and inconsistent results between
Enterprise and Eon. This issue has been resolved. |
VER-68379 |
Optimizer |
Calls to REFRESH_COLUMNS can now be monitored in the new "dc_refresh_columns" table, which logs, for
every call to REFRESH_COLUMNS, the time of the call, the name of the table, the refreshed columns,
the mode used, the minimum and maximum key values, and the epoch. |
VER-68594 |
Optimizer |
Queries sorting on subquery outputs sometimes produced inconsistent results. This issue has been
resolved. |
VER-68828 |
Optimizer |
When a session's transaction isolation mode was set to serializable, MERGE statements sometimes
returned with the error message 'Can't run historical queries at epochs prior to the Ancient History
Mark'. This issue has been resolved. |
VER-49136 |
Optimizer
Optimizer - Projection Chooser |
TRUNCATE TABLE caused all existing table- and partition-level statistics to be dropped. This issue
has been resolved. |
VER-68826 |
Optimizer - Statistics and Histogram |
If you partitioned a table by date and used EXPORT_STATISTICS_PARTITION to export results to a file,
the function wrote empty content to the target file. This issue has been resolved. |
VER-67647 |
Build and Release
Performance tests |
The ST_IsValid() geospatial function, when used with the geography data type, has seen a slight
performance degradation of around 10%. |
VER-66648 |
QA |
When a query returned many rows with wide columns, Vertica threw the following error message: "ERROR
8617: Request size too big." This message incorrectly suggested that query output consumed excessive
memory. This issue has been resolved. |
VER-64783 |
Recovery |
When applying partition events during recovery, Vertica determined that recovery was complete only
after all table projections were recovered. This rule did not differentiate between regular and live
aggregate projections of the same table, which typically recovered in different stages. If recovery
was interrupted after all regular projections of a table were recovered but before recovery of its
live aggregate projections was complete, Vertical returned an error. This problem has been resolved:
Vertica now determines that recovery is complete when all regular projections are recovered, and
disregards the recovery status of live aggregate projections. |
VER-68504 |
Execution Engine
S3 |
If you refreshed a large projection in Eon mode and the refresh operation used temp space on S3, the
refresh operation occasionally caused the node to crash. This issue has been resolved. |
VER-60036 |
SDK |
All C++ UDXs require c++11 standard now. That can be done by setting -std=c++11 flag at compilation. |
VER-61780 |
Scrutinize |
Scrutinize previously generated a UnicodeEncodeError if the system locale was set to a language with
non-ASCII characters. This issue has been resolved. |
VER-66988 |
Scrutinize |
When running scrutinize, the database password would be written to scrutinize_collection.log. This
has been resolved: the "db_password" entry has been removed from the log file. |
VER-62276 |
Security |
Changes to the SSLCertificate, SSLPrivateKey, and SSLCA parameters take effect for all new
connections and no longer require a restart. |
VER-65168 |
Security |
Before release 9.1, the default Linux file system permissions on scripts generated by the Database
Designer were 666 (rw-rw-rw-). Beginning with release 9.1, default permissions changed to 600
(rw-------). With this release, default permissions have reverted to 666 (rw-rw-rw). |
VER-65890 |
Security |
Two system tables have been added to monitor inherited privileges on tables and views:
inheriting_objects shows which catalog objects have inheritance enabled, and inherited_privileges
shows what privileges users and roles inherit on those objects. |
VER-68616 |
Security |
When the only privileges on a view came via ownership and schema-inherited privileges instead of
GRANT statements, queries on the view by non-owners bypassed the privilege check for the view owner
on the anchor relation(s). Queries by non-owners with inherited privileges on a view now correctly
ensure that the view owner has SELECT WITH GRANT OPTION on the anchor relation(s). |
VER-67658 |
Spread |
In unstable networks, some UDP-based Vertica control messages could be lost. This could result in
hanging sessions that could not be cancelled. This issue has been resolved. |
VER-47639 |
Supported Platforms |
Vertica now supports the XFS file storage system. |
VER-67234 |
Tuple Mover |
The algorithm for prioritizing mergeout requests sometimes overlooked slow-loading jobs, especially
when these competed with faster jobs that loaded directly into ROS. This could cause mergeout
requests to queue indefinitely, leading to ROS pushback. This problem was resolved by changing the
algorithm for prioritizing mergeout requests. |
VER-67275 |
Tuple Mover |
Previously, the mergeout thread dedicated to processing active partition jobs ignored eligible jobs
in the mergeout queue, if a non-eligible job was at the top of the queue. This issue has been
resolved: now the thread scans the entire queue for eligible mergeout jobs. |
VER-68383 |
Tuple Mover |
Mergeout did not execute purge requests on storage containers for partitioned tables if the requests
had invalid partition keys. At the same time, the Tuple Mover generated and queued purge requests
without validating their partition keys. As a result, mergeout was liable to generate repeated purge
requests that it could not execute, which led to rapid growth of the Vertica log. This issue has
been resolved. |
VER-65744 |
UDX |
Flex table views now properly show UTF-8 encoded multi-byte characters. |
VER-62048 |
UI - Management Console |
Certain design steps in the Events history tab of the MC Design page were appearing in the wrong
order and with incorrect time stamps. This issue has been resolved. |
VER-65561 |
UI - Management Console |
Under some conditions in MC, a password could appear in the scrutinize collection log. This issue
has been resolved. |
VER-67903 |
UI - Management Console |
MC was not correctly handling design tables when they contained Japanese characters. This issue has
been resolved. |
VER-68357 |
UI - Management Console |
When Clockskew was detected, MC was incorrectly updating the alert during the subsequent checks with
the timestamp of the last check, instead of the timestamp when the Clockskew was first detected.
This issue was fixed, and also the status of the alert (resolved/unresolved) was added to the
display. |
VER-68448 |
UI - Management Console |
MC catches Vertica’s SNMP traps and generates an alert for each one. MC was not generating an alert
for the Vertica SNMP trap: CRC Mismatch. This issue has been resolved. |