Encontré la respuesta a mi propia pregunta finalmente después de buscar el código fuente de hsqldb en sourceforge.
La versión 2.3.3 de HSQLDB NO es compatible con NOWAIT.
Hice esta pregunta en su foro de discusión y planteé el problema; sin embargo, no es como GitHub, donde puede crear un problema, por lo que no se abre ningún problema/solicitud formal.
Me llevo bien con un mal truco para ahora modificar HSQLDB
código yo mismo org.hsqldb.ParserDQL
class para simplemente ignorar NOWAIT en el SQL seleccionado para actualizar.
Si alguien tiene una respuesta mejor, aceptaré su respuesta.
ACTUALIZACIÓN:(24 de agosto de 2015)
Se recibió la confirmación del foro HSQLDB de que se ignorará NOWAIT. Mientras tanto, estoy publicando el fragmento de código para ignorar NOWAIT que recibí del foro HSQLDB sourceforge. Es posible que desee esperar a la próxima versión de HSQLDB en lugar de agregar esto a su base de código (como un truco).
if (Tokens.T_NOWAIT.equals(token.tokenString)) {
read();
}
ACTUALIZADO para mostrar el contexto completo sobre dónde agregar el fragmento anterior en ParserDQL.java
/**
* Retrieves a SELECT or other query expression Statement from this parse context.
*/
StatementQuery compileCursorSpecification(RangeGroup[] rangeGroups,
int props, boolean isRoutine) {
OrderedHashSet colNames = null;
QueryExpression queryExpression = XreadQueryExpression();
if (token.tokenType == Tokens.FOR) {
read();
if (token.tokenType == Tokens.READ
|| token.tokenType == Tokens.FETCH) {
read();
readThis(Tokens.ONLY);
props = ResultProperties.addUpdatable(props, false);
} else {
readThis(Tokens.UPDATE);
props = ResultProperties.addUpdatable(props, true);
if (token.tokenType == Tokens.OF) {
readThis(Tokens.OF);
colNames = new OrderedHashSet();
readColumnNameList(colNames, null, false);
}
if (Tokens.T_NOWAIT.equalsIgnoreCase(token.tokenString)) {
readIfThis(Tokens.X_IDENTIFIER);
}
}
}