Open topic with navigation
This is a list of the current known issues for this release:
- A UNION DISTINCT of SELECT statements does not recognize duplicates if the corresponding columns in the SELECT statements are of a different data type.
- When using the READ COMMITTED isolation level, it is possible that an internal locking error may occur, causing the transaction to fail.
- A SELECT with extra parentheses around a subquery will generate an error. The workaround is to remove the extra set of parentheses.
- Decimal values can erroneously be returned to clients as one of the three integer types (SMALLINT, INTEGER, BIGINT) along with a scale.
- "A SELECT statement may not return rows when the materialization strategy is used for a subquery against the DUAL table where the outer expression has case-insensitive collation. Workaround1: instead of ""Column in (select 'abc' from dual) "" use ""Column in ('abc'). Workaround2: temporarily disable materialization, but beware that this may affect performance (set system property MAX_MATERIALIZED_QUERY_SIZE=0;)"
- String values stored in a covering index have their trailing spaces trimmed.
- The use of aggregate functions with an OVER clause is not yet supported.
- Generating result sets within a UDF may generate an error "Maximum number of open result sets".
- If there is a trigger on a table using transition tables (new_table or old_table) and that table is altered to remove one or more columns, the trigger to fire may fail. There is no workaround.
- Certain queries over JDBC return an incorrect data type value.
- Dropping an index on a permanent table that matches the name of a temporary table may result in drop the temporary table index instead of the permanent index. The workaround is not to create indexes on temporary tables with the same name as indexes on permanent tables.
- Dropping a schema may return an error if there is a table trigger that references a view in the schema. The workaround is to drop the trigger before dropping the schema.
- Returns from queries containing subqueries that return arithmetic can be erroneously typed as strings.
- Renaming a table that references a user-defined sequence makes the referenced sequence undeletable.
- ALTER TABLE can only create a single unnamed check constraint. The workaround is to either add the unnamed check constraints during the CREATE TABLE command or use named check constraints.
- Index name uniqueness may not be enforced when adding constraints using CREATE TABLE. Do not use DROP INDEX for dropping table constraints, use ALTER TABLE DROP CONSTRAINT instead.
- Queries returning expressions derived from decimal literals or long integer literals will have string type rather than a number type.
- getObject() does not work for Enum data types, and throws an exception. A workaround is to use getString() instead.
- When dropping a domain, the same case (as was used to create the domain) for the domain name must be used. Otherwise, the domain will be left in the domain's system table. The workaround is to recreate the domain and drop the domain with the same case.
- Attempts to cancel a running SQL statement using the kill command may result in an error "Unable to find connection". There is no workaround.
- In certain situations, forcefully shutting down (kill -9) all SMs or Hot Copy may result in an archive with indexes missing records.
Do not forcefully shutdown all SMs - always use the Admin commands or console to shutdown SMs.
If all SMs are forcefully shutdown or after a Hot Copy operation, always run nuochk to validate the archive.
If there are missing records in the indexes, follow the nuochk instructions to rebuild the indexes on the archive before restarting the SMs or moving the archive for backup purposes.
Alternatively, instead of Hot Copy an offline backup can be made (see Using Offline Backup).
- Nuodbmgr allows the creation of Storage Groups with numeric names. However, using numeric Storage Group names in a Create Table statement will generate an error. The workaround is to create non-numeric Storage Group names.
- Creating and using a temporary table within a stored procedure may result in reduced performance for certain queries. The workaround is to create the temporary table outside the stored procedure.
- Once the collation for a column is set to case_insensitive it is not possible to change it back to a case sensitive collation. There is no workaround for this.
- With the new feature of support multiple statements in a single call, the TRUNCATE command can only be used if it is the first statement in the call. If it is not, an error is returned.
- When a stored procedure executes DDL, the SYSTEM.TABLES is not updated until the stored procedure exits. There is no workaround.
- A network partition will result in an automatic shutdown of TEs and SMs in the minority Region.
When the network partition is healed, it may not be possible to restart the engine processes. This is because the database state in the Brokers/Agents is incorrect.
To workaround this issue, restart all Brokers and/or Agents in all Regions.
- If using ALTER TRIGGER to change the POSITION of a trigger, the change will not take effect immediately. It may be necessary to drop and recreate the trigger to force it to take effect.
- Selecting from the snapshots system table (system.snapshots) may not show the latest SSM snapshot. The system table is only updated based on the snapshot-min-time configuration setting. Retry the select after the snapshot-min-time setting.
- Custom data types created with 'create domain' cannot be referenced by stored procedures. There is no workaround.
- Nuodbmgr command "show domain summary" does not show altAddress if set.
- No error message is provided when dropping a non-existant schema.
- Quoted table or index names in index hints must be must be specified in all uppercase letters. Otherwise an error "Can't follow the specified Use_Index hint(s)" is returned.
- NuoDB does not support the ability to use the ORDER BY clause with column position numbers. The workaround is to use the column names as part of the ORDER BY clause.
- The nuosql command line does not allow creating tables with different cases (e.g. MyTable and mytable). The workaround is to use another client to create tables with the same name but different case or create tables with different names instead of different case.
- The following host properties are not displayed by the nuodbmgr command: agentPeerTimeout, binDir, log, regionBalancerLocalFallback, requireConnectKey, trackprocessOnReconnect.
Trying to alter a sequence to set the start value equal to a value less than the ceiling does not generate an error. While no error is returned, the operation also does not change the start value.
- Accessing a ResultSet after the data has been exhausted will cause TE to exit.
- Columns named HELP may pick up leading spaces from the query used to create. The workaround is to use backticks or use another name for the column.
- When creating partitioned tables with unique indexes or primary keys, users must make sure that the partitioning key is a subset of all unique indexes and of the primary key.
If this criterion is not met, then the unique integrity constraint will not be enforced.
Users can use SHOW TABLE <table name> to discover columns belonging to unique indexes/primary key for a table.
- When working with updatable cursors (cursors created specifying the FOR UPDATE clause), users are advised to only update rows immediately after fetching them. If the row is modified between the cursor fetch and the "update...where current of" operations then it may produce unexpected results.
- When working with updatable cursors (cursors created specifying the FOR UPDATE clause), users must make sure to not reference rows after they have been deleted.
Failure to do so will lead to a connection reset. For example, do not use the syntax as shown below. It will result in a connect reset at the
""fetch cur1 into x;"" line.
declare cur1 cursor for select * from t1 for update;
fetch cur1 into x;
while(fetch_status() = 0)
delete from t1 where current of cur1;
fetch cur1 into x; -- referencing deleted current row will cause a reset
- There are known issues with creating an index on a table with concurrent writes to the same table.
The workaround is to either ensure that the create index and concurrent writes are being sent to the same TE, or issue the create index command during a period of low activity or maintenance window.
- NuoDB converts string literals to UTC timestamps (or DateTime types) ignoring the timezone information. To get around this issue, users must always supply timestamps and date-times values in the absolute (UTC timezone) value.
- A SELECT statement that fetches a column of type BLOB only returns the decimal value for each character in the BLOB.