1.1

Table Of Contents
LONG/LOB Column Restrictions
SQLFire does not support using columns of the following data types in indexes, ORDER BY clauses, GROUP
BY clauses, DISTINCT clauses, UNION clauses, or other set operations:
BLOB
CLOB
LONG VARCHAR FOR BIT DATA
Columns of type LONG VARCHAR are supported in these cases.
Bulk Update Limitations
If a SQL statement performs a bulk update operation on multiple SQLFire members, any exception that occurs
during the bulk update can leave some rows updated while other rows are not updated. Use transactions with
bulk update statements to ensure that all updates succeed or roll back as a whole. See Atomicity for Bulk Updates
on page 146.
Cascade DELETE Not Supported
SQLFire does not support cascade delete operations.
Locking Prioritizes DML over DDL
The SQLFire locking behavior prioritizes DML execution over DDL statements. DDL statments may receive a
lock timeout exception (SQLState: 40XL1) if your system is processing numerous concurrent DML and DDL
statements. You can congure the maximum amount of time that DDL statements wait for locks using
sqlre.max-lock-wait.
Expiration and Eviction Limitations
EXPIRE ENTRY WITH IDLETIME works only when a primary key based query is red. Otherwise the system
will not modify its accessed time when table scans or index scans happen and it gets destroyed.
EXPIRATION or EVICTION with action as DESTROY should not be set on a parent table having child tables
with foreign key reference to it. This is due to a lack of cascade delete support in SQLFire. If an attempt is made
to create a child table having foreign key reference to a table with such a policy then a SQLException is thrown
(SQLState: "X0Y99").
INSERT with subselect
SQLFire has a limited support for INSERT statements that use a subselect statement. Nested selects and selects
having aggregates are not supported; these queries throw a feature not implemented exception (SQLSTATE
0A000).
LOCK TABLE
The LOCK TABLE statement is not supported in this release of SQLFire.
Procedure Invocation (Data-Aware and Non-Data-Aware Procedures)
When you use the ON TABLE extension in a CALL statement, the WHERE clause is mandatory. If you need
to route a data-aware procedure to all members that host the table (without any pruning), then you must specify
some extraneous condition that always evaluates to true (such as WHERE 1=1).
A server can only handle Java procedure denitions that exactly match the JDBC parameter types in a CREATE
PROCEDURE statement. If a procedure species parameter types that use the base class of a corresponding
vFabric SQLFire User's Guide688
vFabric SQLFire Reference