Known Issues

Known Issues in NuoDB 3.3

This section provides a summary of the new issues identified at the release of NuoDB 3.3. Where known issues have been reported, the associated Zendesk reference number is displayed. For example, (4706).

Issue description Workaround
Comparisons of two ENUM types, with different definitions, return invalid results where an index is used for the comparison. Do not create indexes containing ENUM columns.
Temporary table index statistics are not automatically updated in the way that regular table index statistics. To manually update temporary table statistics, use the ANALYZE command.

It is possible to cast an invalid INTEGER value to an ENUM data type without an error. For example:

SQL> select cast(123 AS ENUM('a','b','c')) FROM DUAL;


None. Do not cast invalid integer values to ENUM data types.
Queries using MIN and MAX functions on ENUM columns can return different results whether or not the query uses an index on the ENUM column. None.
Concurrent overlapping DELETE statements with a LIMIT clause may return less rows than specified by the limit. This is because NuoDB acquires locks for the delete after the limit is applied. Some of the rows to be deleted may have been already deleted by a different DELETE statement. None.
If Transaction Engines (TEs) are started on systems with different locale settings, the TE may exit with an error message similar to: Node startup failed: unable to convert string "10,00000" into type "double"' or the dual table may be empty. Ensure that all systems used to run TEs for the same database have the same locale settings.

The NuoDB Query Optimizer does not prune partitions for queries using the LEFT clause with parameters. For example, the following query will scan partitions of a table named t1:

SELECT * FROM t1 WHERE LEFT(f1,2) = ?;


A SELECT statement, which fetches a BLOB column type, returns only the decimal value for each character in the BLOB. (4706)

NuoDB converts string literals to UTC timestamps (or DateTime types) and ignores timezone information. Provide timestamps and date-time values in the absolute (UTC timezone) value.

The type declarations TIME (precision) and TIMESTAMP (precision) ignore the specified value for precision. Values with this type use the precision with which they were created (default is 6). (8523)


When working with updatable cursors (cursors created using the FOR UPDATE clause), there is an issue with connection resets.

Do not reference rows after they have been deleted.
Unexpected results occur when working with updatable cursors. Update rows immediately after fetching them.
Columns named HELP may pick up leading spaces from the query used to create them. Use single quotes around the name HELP, or use an alternative name for the column.

An error is not returned when attempting to alter a sequence which sets the start value to less than that of the ceiling.

None. (While no error is returned, the operation does not change the start value.)

Using the nuosql command line, you cannot create tables with different cases, for example MyTable and mytable.

Use another client to create tables with an identical name but using a different case. Alternatively, create tables with different names.

A Can't follow the specified Use_Index hint(s) error is returned when quoted table or index names in index hints are not defined completely in upper case.

When a schema that does not exist is dropped, no error message is returned. None.
Custom data types created with CREATE DOMAIN cannot be referenced by stored procedures. None.
Temporary tables are incorrectly listed in the SYSTEM schema but cannot be accessed using the SYSTEM schema. Temporary tables must be accessed using the USER schema.
When using multiple statements in a single call, the TRUNCATE command can be used only if it is the first statement in the call. None.
The ALTER TABLE command is not supported when working with temporary tables. (6363) Create a permanent table for any table that may require altering.
When dropping a domain, the same case (as was used to create the domain) for the domain name must be used. Otherwise, the domain is left in the DOMAINS system table. Recreate the domain and drop the domain using the same case that was used to create it.
The ALTER TABLE statement can create only one unnamed check constraint. Either add the unnamed check constraints when using the CREATE TABLE statement or use named check constraints.

DDL statements are not supported in stored procedures, except when using dynamic SQL. (6313)

DDL statements can be accessed in separate stored procedures which are executed after DDL stored procedures have been executed.

The trailing spaces in string values (stored in a covering index) get trimmed.

SELECT statements, with extra parentheses around a subquery, return an error. Remove the extra set of parentheses.
When a storage group is removed from a Storage Manager (SM), the on-disk files for the data removed are not automatically deleted. Use NuoDB Check to remove on-disk files.

NuoDB does not support the NO PAD collation option. As a result, unexpected results occur when comparing two strings where one is a substring of the other. For example:

"abc" = "abc"
"abc" > "abcX", where X is a non-printing character with value less than ASCII 32 (SPACE) (6854)


If a database process, for example a TE or a SM, does not connect to an agent process, it cannot be stopped or restarted. If this happens, the database process is shown as UNREACHABLE.

Manually stop the database process using {kill -6 <pid>} in the command line, and remove the entry using the NuoDB Manager's domainstate removeprocess id <id> command. Then contact NuoDB Support to provide details of the core file obtained by the KILL command.

NuoDB Loader does not support the loading of binary values cast into binary columns.


The XA DataSource does not support statement and connection caching like the regular DataSource.


Global temporary tables are not supported. (6942)

Altering column data types does not change the values stored in tables; only field metadata is changed. (6955, 7244) None.
DDL statements are executed in separate system transactions and are not part of the user transaction. As a result, the DDL statement's changes are immediately visible under READ COMMITTED transaction isolation and are not rolled back. None.
The NuoDB JDBC driver does not support scrollable cursors. None.
NuoDB Manager's capture command does not store altAddress values if advertiseAlt is set to true. The local DNS IP address is used instead.

NuoDB does not support recursive DDL triggers.

The JDBC driver does not support the setNetworkTimeout property. (7430, 7865) None.
The following host properties are not displayed by the NuoDB Manager command:
agentPeerTimeout, binDir, log, regionBalancerLocalFallback, requireConnectKey, and trackprocessOnReconnect.
It is not possible to change the TABLE GENERATED clause syntax after a table has been created. None.
The return type of DATE_ADD and DATE_SUB functions with STRING arguments is dependent on the format of the string. To avoid inconsistent results, do not use the DATE_ADD and DATE_SUB functions with STRING data type columns
If an expression calls a user-defined-function, the supplied DEFAULTexpression is not checked to ensure it matches the type of the column it applies to. None.
NuoDB does not support the NULLS FIRST ordering clause. None.
The incorrect F ailed to apply license: Error applying license: failed to set configuration: default.license error is returned when there is no raft leader among the brokers. (8234) Ensure that all brokers in the raft membership are started and that there are no connectivity issues.
Point-in-time restore does not allow you to restore all available committed transactions. Instead, you must restore the database state to a specified transaction ID. As a result, the effects of other concurrent transactions (with different transaction IDs), may not be restored. None.
A column cannot be made to be the primary key of a table if that column was added to an existing table. (8748) None.
TEs use the system locale settings to define the character encoding used by the TE. If the system locale is different across the database nodes, this can result in unexpected behavior. For example, a TE may report data conversion errors on startup (bootstrap) if it is using a locale that is different from the existing TEs in the database. Ensure that all systems to be use for the database have the same locale setting.
Operations resulting in NUMERIC data types may have variable scale and precision depending on the operation and its operand types. Workaround: Explicitly cast the results to set the specific scale and precision. Explicitly cast the results to set the specific scale and precision.
It is not possible to use the same cursor name twice inside a stored procedure, even after closing that cursor. None.
The use of BINARY literal values as partitioning keys for STRING type columns, in CREATE TABLE statements, is not supported. None.
It is possible to create invalid table partitions when using case insensitive columns. This can result incorrect partition selection and returning data from the incorrect partition. Do not create partitions on a column that is case insensitive.
If two or more SMs enter a SYNCING state concurrently, on occasion, they may not transition out of that SYNCING state (as indicated by NuoDB Manager's show domain summary" command). The log messages of a SM stuck in the SYNCING state will include a SYNC: <number>: STARTED message but not have a corresponding SYNC: <number>: COMPLETED message. (8679) Kill one of these SMs to allow the other one to transition out the SYNCING state. Generally, try not to start two or more SMs concurrently. Instead, start SMs one at time after they have been synchronized.
Creating a table with TEXT column with a DEFAULT clause throws the Conversion to type "clob" is not implemented error. Either avoid using the DEFAULT clause or use a different data type.
Table partitioning does not support partitions based on sub-second precision. Do not create table partitions with sub-second partitions.
Occasionally (when a Storage Manager is under memory pressure), transactions may hang. Check whether transactions have hung by querying the SYSTEMS.CONNECTIONS table to see how long transactions have been running. For example:

SQL> select nodeid, transid, connid, created from system.connections where transid is not null;

Where transactions have hung, close the connection using the kill connid command. If that doesn't resolve the issue, restart Storage Managers one at a time until the hung transactions have been cleared from the system.
The information provided with the –help or -h options in NuoDB SQL has not been updated. Refer to support documentation in the Using NuoDB SQL Command Line section of NuoDB's online documentation
Concurrent execution of DDL statements with DML statements is not supported. If DDL statements are to be executed concurrently with DML statements, ensure that a LOCK TABLE command is executed before executing the DDL statement.
LOCK was introduced as a new reserved keyword in NuoDB 3.3. At this time, the new keyword is not documented which may result in issues when upgrading to NuoDB 3.3. Rename objects using the LOCK keyword, or postpone your upgrade until NuoDB 3.3.1, where LOCK is no longer a reserved keyword.
Using query timeouts (SET QUERY TIMEOUT) when committing a transaction, or acquiring a table lock, may result in lost connections. Turn off query timeout before committing a transaction or acquiring a table lock.
In NuoDB 3.2.2 and higher, the DECLARED_TYPE column (SYSTEM.FIELDS table) shows columns created using DECIMAL data type as NUMERIC, and shows columns created using FLOAT data type as DOUBLE. (9187) None
Concurrent execution of DDL statements with DML statements is not supported. Execution of concurrent DDL and DML statements may result in incorrect query results and/or incorrect table content. For example, issuing a CREATE INDEX statement with concurrent insert, update or delete operations on the same table may lead to duplicate or missing index keys. Or, issuing an ALTER TABLE statement with concurrent insert, update or delete operations on the same table may lead to values violating check constraints. Avoid issuing concurrent DDL and DML statements, or execute a LOCK TABLE command before executing the DDL statement.