@Override public ResultInterface query(int maxrows) { ResultInterface result = command.query(maxrows); executeRemaining(); return result; }
@Override public int update() { int updateCount = command.executeUpdate(); executeRemaining(); return updateCount; }
/** * Parse the statement and prepare it for execution. * * @param sql the SQL statement to parse * @return the prepared object */ public Prepared prepare(String sql) { Prepared p = parse(sql); p.prepare(); if (currentTokenType != END) { throw getSyntaxError(); } return p; }
private Query parseSelectSub() { if (readIf("(")) { Query command = parseSelectUnion(); read(")"); return command; } Select select = parseSelectSimple(); return select; }
private void read(String expected) { if (currentTokenQuoted || !equalsToken(expected, currentToken)) { addExpected(expected); throw getSyntaxError(); } read(); }
private void parseSelectSimpleFromPart(Select command) { do { TableFilter filter = readTableFilter(false); parseJoinTableFilter(filter, command); } while (readIf(",")); }
private String readFromAlias(String alias) { if (readIf("AS")) { alias = readAliasIdentifier(); } else if (currentTokenType == IDENTIFIER) { // left and right are not keywords (because they are functions as // well) if (!isToken("LEFT") && !isToken("RIGHT") && !isToken("FULL")) { alias = readAliasIdentifier(); } } return alias; }
private boolean readIf(String token) { if (!currentTokenQuoted && equalsToken(token, currentToken)) { read(); return true; } addExpected(token); return false; }
private boolean isToken(String token) { boolean result = equalsToken(token, currentToken) && !currentTokenQuoted; if (result) { return true; } addExpected(token); return false; }
private String readCommentIf() { if (readIf("COMMENT")) { readIf("IS"); return readString(); } return null; }
private static CommandInterface closeAndSetNull(CommandInterface command) { if (command != null) { command.close(); } return null; }
@Override public boolean isReadOnly() { if (!readOnlyKnown) { readOnly = prepared.isReadOnly(); readOnlyKnown = true; } return readOnly; }
private void checkRunOver(int i, int len, int startLoop) { if (i >= len) { parseIndex = startLoop; throw getSyntaxError(); } }
/** * Set the current row number. * * @param rowNumber the row number */ public void setCurrentRowNumber(int rowNumber) { if ((++rowScanCount & 127) == 0) { checkCanceled(); } this.currentRowNumber = rowNumber; }
CommandContainer(Parser parser, String sql, Prepared prepared) { super(parser, sql); prepared.setCommand(this); this.prepared = prepared; }