Fandt endelig svar på mit eget spørgsmål efter at have gravet hsqldb-kildekoden på sourceforge.
Version 2.3.3 af HSQLDB understøtter IKKE NOWAIT.
Jeg har stillet dette spørgsmål i deres diskussionsforum og rejst spørgsmålet, men det er ikke som GitHub, hvor du kan oprette et problem, så ingen formel udgave/anmodning åbnede.
Jeg kommer overens med et dårligt hack for nu at ændre HSQLDB
kode mig selv org.hsqldb.ParserDQL
klasse for bare at ignorere NOWAIT i SQL-filen, der skal opdateres.
Hvis nogen har et bedre svar, vil jeg acceptere deres svar.
OPDATERING:(24. august 2015)
Modtaget bekræftelse fra HSQLDB forum, at NOWAIT vil blive ignoreret. I mellemtiden poster jeg kodestykket for at ignorere NOWAIT, som jeg modtog fra HSQLDB sourceforge-forummet. Du vil måske vente på den næste version af HSQLDB end at tilføje denne til din kodebase (som et hack).
if (Tokens.T_NOWAIT.equals(token.tokenString)) { read(); }
OPDATERET for at vise den fulde kontekst med hensyn til, hvor ovenstående uddrag skal tilføjes i ParserDQL.java
/** * Henter en SELECT eller et andet forespørgselsudtryk fra denne parsekontekst. */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); } andet { readThis(Tokens.UPDATE); props =ResultProperties.addUpdatable(props, true); if (token.tokenType ==Tokens.OF) { readThis(Tokens.OF); colNames =new OrderedHashSet(); readColumnNameList(columnNames, null, false); } if (Tokens.T_NOWAIT.equalsIgnoreCase(token.tokenString)) { readIfThis(Tokens.X_IDENTIFIER); } } }