@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)."); }
@ConsoleCommand(splitInWords = false, description = "Move from current record by evaluating a predicate against current record") public void move(@ConsoleParameter(name = "text", description = "The sql predicate to evaluate") final String iText) { if (iText == null) return; if (currentRecord == null) return; final Object result = new OSQLPredicate(iText).evaluate(currentRecord, null, null); if (result != null) { if (result instanceof OIdentifiable) { setResultset(new ArrayList<OIdentifiable>()); currentRecord = ((OIdentifiable) result).getRecord(); dumpRecordDetails(); } else if (result instanceof List<?>) { setResultset((List<OIdentifiable>) result); dumpResultSet(-1); } else if (result instanceof Iterator<?>) { final List<OIdentifiable> list = new ArrayList<OIdentifiable>(); while (((Iterator) result).hasNext()) list.add(((Iterator<OIdentifiable>) result).next()); setResultset(list); dumpResultSet(-1); } else setResultset(new ArrayList<OIdentifiable>()); } }
@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); }
dumpResultSet(displayLimit);
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); } }
dumpResultSet(displayLimit);
@SuppressWarnings("unchecked") @ConsoleCommand(splitInWords = false, description = "Execute javascript commands in the console") public void js( @ConsoleParameter(name = "text", description = "The javascript to execute. Use 'db' to reference to a document database, 'gdb' for a graph database") final String iText) { if (iText == null) return; resetResultSet(); long start = System.currentTimeMillis(); while (true) { try { final OCommandExecutorScript cmd = new OCommandExecutorScript(); cmd.parse(new OCommandScript("Javascript", iText)); currentResult = cmd.execute(null); break; } catch (ORetryQueryException e) { continue; } } float elapsedSeconds = getElapsedSecs(start); parseResult(); if (currentResultSet != null) { dumpResultSet(-1); message("\nClient side script executed in %f sec(s). Returned %d records", elapsedSeconds, currentResultSet.size()); } else message("\nClient side script executed in %f sec(s). Value returned is: %s", elapsedSeconds, currentResult); }