if (readIf("(")) { if (isSelect()) { command.setQuery(parseSelect()); read(")"); return command; } while (readIf(",")); } else { command.setQuery(parseSelect());
command.setQuery(parseSelect()); read(")"); return command; } while (readIf(",")); } else { command.setQuery(parseSelect());
if (readIf("(")) { if (isSelect()) { command.setQuery(parseSelect()); read(")"); return command; command.addRow(values.toArray(new Expression[0])); } else { command.setQuery(parseSelect());
command.setQuery(parseSelect()); read(")");
session.setParsingCreateView(true, viewName); try { query = parseSelect(); query.prepare(); } finally {
read("AS"); read("("); Query withQuery = parseSelect(); if (isPersistent) { withQuery.session = session;
break; case '(': c = parseSelect(); break; case 'a': case 'F': if (isToken("FROM")) { c = parseSelect(); case 'S': if (isToken("SELECT")) { c = parseSelect(); } else if (readIf("SET")) { c = parseSet();
private Explain parseExplain() { Explain command = new Explain(session); if (readIf("ANALYZE")) { command.setExecuteCommand(true); } else { if (readIf("PLAN")) { readIf("FOR"); } } if (isToken("SELECT") || isToken("FROM") || isToken("(") || isToken("WITH")) { Query query = parseSelect(); query.setNeverLazy(true); command.setCommand(query); } else if (readIf("DELETE")) { command.setCommand(parseDelete()); } else if (readIf("UPDATE")) { command.setCommand(parseUpdate()); } else if (readIf("INSERT")) { command.setCommand(parseInsert()); } else if (readIf("MERGE")) { command.setCommand(parseMerge()); } else { throw getSyntaxError(); } return command; }
Query query = parseSelect(); } else { if (isSelect()) { Query query = parseSelect(); if (readIf("ALL")) { read("("); Query query = parseSelect(); r = new ConditionInSelect(database, r, query, true, compareType); r = new ConditionInParameter(database, r, p); } else { Query query = parseSelect(); r = new ConditionInSelect(database, r, query, false, compareType);
command.setSortedInsertMode(true); command.setQuery(parseSelect());
case KEYWORD: if (isToken("SELECT") || isToken("FROM") || isToken("WITH")) { Query query = parseSelect(); r = new Subquery(query); } else {
if (readIf("(")) { if (isSelect()) { command.setQuery(parseSelect()); read(")"); return command; } while (readIf(",")); } else { command.setQuery(parseSelect());
if (readIf("(")) { if (isSelect()) { command.setQuery(parseSelect()); read(")"); return command; } while (readIf(",")); } else { command.setQuery(parseSelect());
private Query parserWith() throws SQLException { String tempViewName = readIdentifierWithSchema(); Schema schema = getSchema(); TableData recursiveTable; read("("); String[] cols = parseColumnList(); ObjectArray columns = new ObjectArray(); for (int i = 0; i < cols.length; i++) { columns.add(new Column(cols[i], Value.STRING)); } int id = database.allocateObjectId(true, true); recursiveTable = schema.createTable(tempViewName, id, columns, false, false); recursiveTable.setTemporary(true); session.addLocalTempTable(recursiveTable); String querySQL = StringCache.getNew(sqlCommand.substring(parseIndex)); read("AS"); Query withQuery = parseSelect(); withQuery.prepare(); session.removeLocalTempTable(recursiveTable); id = database.allocateObjectId(true, true); TableView view = new TableView(schema, id, tempViewName, querySQL, null, cols, session, true); view.setTemporary(true); // view.setOnCommitDrop(true); session.addLocalTempTable(view); Query query = parseSelect(); query.prepare(); query.setPrepareAlways(true); // session.removeLocalTempTable(view); return query; }
private CreateView parseCreateView(boolean force) throws SQLException { boolean ifNotExists = readIfNoExists(); String viewName = readIdentifierWithSchema(); CreateView command = new CreateView(session, getSchema()); this.prepared = command; command.setViewName(viewName); command.setIfNotExists(ifNotExists); command.setComment(readCommentIf()); if (readIf("(")) { String[] cols = parseColumnList(); command.setColumnNames(cols); } String select = StringCache.getNew(sqlCommand.substring(parseIndex)); read("AS"); try { Query query = parseSelect(); query.prepare(); command.setSelect(query); } catch (SQLException e) { if (force) { command.setSelectSQL(select); } else { throw e; } } return command; }
session.setParsingView(true); try { query = parseSelect(); query.prepare(); } finally {
private ExplainPlan parseExplain() throws SQLException { ExplainPlan command = new ExplainPlan(session); readIf("PLAN"); readIf("FOR"); if (isToken("SELECT") || isToken("FROM") || isToken("(")) { command.setCommand(parseSelect()); } else if (readIf("DELETE")) { command.setCommand(parseDelete()); } else if (readIf("UPDATE")) { command.setCommand(parseUpdate()); } else if (readIf("INSERT")) { command.setCommand(parseInsert()); } else if (readIf("MERGE")) { command.setCommand(parseMerge()); } else { throw getSyntaxError(); } return command; }
private Explain parseExplain() { Explain command = new Explain(session); if (readIf("ANALYZE")) { command.setExecuteCommand(true); } else { if (readIf("PLAN")) { readIf("FOR"); } } if (isToken("SELECT") || isToken("FROM") || isToken("(") || isToken("WITH")) { command.setCommand(parseSelect()); } else if (readIf("DELETE")) { command.setCommand(parseDelete()); } else if (readIf("UPDATE")) { command.setCommand(parseUpdate()); } else if (readIf("INSERT")) { command.setCommand(parseInsert()); } else if (readIf("MERGE")) { command.setCommand(parseMerge()); } else { throw getSyntaxError(); } return command; }
private Explain parseExplain() { Explain command = new Explain(session); if (readIf("ANALYZE")) { command.setExecuteCommand(true); } else { if (readIf("PLAN")) { readIf("FOR"); } } if (isToken("SELECT") || isToken("FROM") || isToken("(")) { command.setCommand(parseSelect()); } else if (readIf("DELETE")) { command.setCommand(parseDelete()); } else if (readIf("UPDATE")) { command.setCommand(parseUpdate()); } else if (readIf("INSERT")) { command.setCommand(parseInsert()); } else if (readIf("MERGE")) { command.setCommand(parseMerge()); } else if (readIf("WITH")) { command.setCommand(parseWith()); } else { throw getSyntaxError(); } return command; }
} while (readIf(",")); } else { command.setQuery(parseSelect());