private Object convert(Object item) { if (item instanceof OResultSet) { return ((OResultSet) item).stream().collect(Collectors.toList()); } return item; }
public Stream<OGremlinResult> stream() { return inner.stream().map((result) -> new OGremlinResult(graph, result)); }
public Collection<ODocument> getEntries(final Collection<?> iKeys) { final StringBuilder params = new StringBuilder(128); if (!iKeys.isEmpty()) { params.append("?"); for (int i = 1; i < iKeys.size(); i++) { params.append(", ?"); } } try (OResultSet rs = getDatabase().indexQuery(getName(), String.format(QUERY_GET_ENTRIES, name, params.toString()), iKeys.toArray())) { return rs.stream().map((res) -> (ODocument) res.toElement()).collect(Collectors.toList()); } }
public Object command(final String iText, final Object... iParameters) { try (OResultSet rs = database.command(iText, iParameters)) { return rs.stream().map(x -> x.toElement()).toArray(size -> new OIdentifiable[size]); } }
public OIdentifiable[] query(final String iText, final Object... iParameters) { try (OResultSet rs = database.query(iText, iParameters)) { return rs.stream().map(x -> x.toElement()).toArray(size -> new OIdentifiable[size]); } }
public Collection<OIdentifiable> get(final Object iKey) { try (final OResultSet result = getDatabase().indexQuery(getName(), String.format(QUERY_GET, name), iKey)) { return result.stream().map((res) -> res.getIdentity().orElse(null)).collect(Collectors.toSet()); } }
public Iterator<Entry<Object, OIdentifiable>> iterator() { try (final OResultSet result = getDatabase().indexQuery(getName(), String.format(QUERY_ENTRIES, name))) { final Map<Object, OIdentifiable> map = result.stream() .collect(Collectors.toMap((res) -> res.getProperty("key"), (res) -> res.getProperty("rid"))); return map.entrySet().iterator(); } }
public Iterator<Entry<Object, Collection<OIdentifiable>>> iterator() { try (final OResultSet result = getDatabase().indexQuery(getName(), String.format(QUERY_ENTRIES, name))) { final Map<Object, Collection<OIdentifiable>> map = result.stream() .collect(Collectors.toMap((r) -> r.getProperty("key"), (r) -> r.getProperty("rid"))); return map.entrySet().iterator(); } }
@Override public int executeUpdate(final String sql) throws SQLException { try { oResultSet = executeCommand(sql); Optional<OResult> res = oResultSet.stream().findFirst(); if (res.isPresent()) { if (res.get().getProperty("count") != null) { return Math.toIntExact((Long) res.get().getProperty("count")); } else return 1; } else { return 0; } } finally { oResultSet.close(); } }
records = oResultSet.stream().collect(Collectors.toList()); } catch (Exception e) { throw new SQLException("Error occourred while mapping results ", e);
protected static Object executeQuery(OSelectStatement rightStatement, OCommandContext ctx) { OBasicCommandContext subCtx = new OBasicCommandContext(); subCtx.setParentWithoutOverridingChild(ctx); OResultSet result = rightStatement.execute(ctx.getDatabase(), ctx.getInputParameters()); return result.stream().collect(Collectors.toSet()); }
@ConsoleCommand(splitInWords = false, description = "Traverse records and display the results", onlineHelp = "SQL-Traverse") public void traverse(@ConsoleParameter(name = "query-text", description = "The traverse to execute") String iQueryText) { final int limit; if (iQueryText.toLowerCase(Locale.ENGLISH).contains(" limit ")) { // RESET CONSOLE FLAG limit = -1; } else { limit = Integer.parseInt(properties.get("limit")); } long start = System.currentTimeMillis(); OResultSet rs = currentDatabase.command("traverse " + iQueryText); setResultset(rs.stream().map(x -> x.toElement()).collect(Collectors.toList())); rs.close(); float elapsedSeconds = getElapsedSecs(start); dumpResultSet(limit); message("\n\n" + currentResultSet.size() + " item(s) found. Traverse executed in " + elapsedSeconds + " sec(s)."); }
private Object sqlCommand(final String iExpectedCommand, String iReceivedCommand, final String iMessage, final boolean iIncludeResult) { checkForDatabase(); if (iReceivedCommand == null) return null; iReceivedCommand = iExpectedCommand + " " + iReceivedCommand.trim(); resetResultSet(); final long start = System.currentTimeMillis(); final Object result; try (OResultSet rs = currentDatabase.command(iReceivedCommand)) { result = rs.stream().map(x -> x.toElement()).collect(Collectors.toList()); } float elapsedSeconds = getElapsedSecs(start); if (iIncludeResult) message(iMessage, result, elapsedSeconds); else message(iMessage, elapsedSeconds); return result; } }
@ConsoleCommand(splitInWords = false, description = "Create a new edge into the database", onlineHelp = "SQL-Create-Edge") public void createEdge( @ConsoleParameter(name = "command-text", description = "The command text to execute") String iCommandText) { String command = "create " + iCommandText; resetResultSet(); final long start = System.currentTimeMillis(); OResultSet rs = currentDatabase.command(command); final List<OIdentifiable> result = rs.stream().map(x -> x.toElement()).collect(Collectors.toList()); rs.close(); float elapsedSeconds = getElapsedSecs(start); setResultset((List<OIdentifiable>) result); int displayLimit = Integer.parseInt(properties.get("limit")); dumpResultSet(displayLimit); message("\nCreated '%s' edges in %f sec(s).\n", ((List<OIdentifiable>) result).size(), elapsedSeconds); }
protected void executeServerSideScript(final String iLanguage, final String iText) { if (iText == null) return; resetResultSet(); long start = System.currentTimeMillis(); OResultSet rs = currentDatabase.execute(iLanguage, iText); currentResult = rs.stream().map(x -> x.toElement()).collect(Collectors.toList()); rs.close(); float elapsedSeconds = getElapsedSecs(start); parseResult(); if (currentResultSet != null) { dumpResultSet(-1); message("\nServer side script executed in %f sec(s). Returned %d records", elapsedSeconds, currentResultSet.size()); } else { String lineFeed = currentResult instanceof Map<?, ?> ? "\n" : ""; message("\nServer side script executed in %f sec(s). Value returned is: %s%s", elapsedSeconds, lineFeed, currentResult); } }
@Override public Object eval(String script, Bindings n) throws ScriptException { ODatabaseDocumentInternal db = ODatabaseRecordThreadLocal.instance().getIfDefined(); if (db == null) { throw new OCommandExecutionException("No database available in threadlocal"); } Map<Object, Object> params = convertToParameters(n); OResultSet queryResult; if (params.keySet().stream().anyMatch(x -> !(x instanceof String))) { queryResult = db.execute("sql", script, params); } else { queryResult = db.execute("sql", script, (Map) params); } OLegacyResultSet finalResult = new OBasicLegacyResultSet(); queryResult.stream().forEach(x -> finalResult.add(x)); queryResult.close(); return finalResult; }
@Override public OResultSet executeSimple(OCommandContext ctx) { Object result; if (expression != null) { result = expression.execute((OResult) null, ctx); } else { Map<Object, Object> params = ctx.getInputParameters(); if (statement.originalStatement == null) { statement.setOriginalStatement(statement.toString()); } result = statement.execute(ctx.getDatabase(), params, ctx); } if (result instanceof OResultSet) { OInternalResultSet rs = new OInternalResultSet(); ((OResultSet) result).stream().forEach(x -> rs.add(x)); rs.setPlan(((OResultSet) result).getExecutionPlan().orElse(null)); ((OResultSet) result).close(); result = rs; } if (ctx != null) { if (ctx.getParent() != null) { ctx.getParent().setVariable(name.getStringValue(), result); } else { ctx.setVariable(name.getStringValue(), result); } } return new OInternalResultSet(); }