/** * Indents a string with 4 spaces. * * @param s the string * @return the indented string */ public static String indent(String s) { return indent(s, 4, true); }
/** * Create an XML node with optional attributes and content. The data is * indented with 4 spaces if it contains a newline character and the indent * parameter is set to true. * * @param name the element name * @param attributes the attributes (may be null) * @param content the content (may be null) * @param indent whether to indent the content if it contains a newline * @return the node */ public static String xmlNode(String name, String attributes, String content, boolean indent) { String start = attributes == null ? name : name + attributes; if (content == null) { return "<" + start + "/>\n"; } if (indent && content.indexOf('\n') >= 0) { content = "\n" + indent(content); } return "<" + start + ">" + content + "</" + name + ">\n"; }
@Override public String getSQL() { return "EXISTS(\n" + StringUtils.indent(query.getPlanSQL(), 4, false) + ")"; }
protected String explainForWorker(List<? extends Worker> workers) { StringBuilder explain = new StringBuilder(); if (workers.size() == 1) { explain.append("SINGLE_EXECUTION"); explain.append('\n'); explain.append(StringUtils.indent(workers.iterator().next().explain(), 4, false)); } else { explain.append("MULTIPLE_EXECUTION"); for (Worker worker : workers) { String subexplain = worker.explain(); explain.append('\n'); explain.append(StringUtils.indent(subexplain, 4, false)); } } return explain.toString(); }
/** * Escapes a comment. * If the data contains '--', it is converted to '- -'. * The data is indented with 4 spaces if it contains a newline character. * * @param data the comment text * @return <!-- data --> */ public static String xmlComment(String data) { int idx = 0; while (true) { idx = data.indexOf("--", idx); if (idx < 0) { break; } data = data.substring(0, idx + 1) + " " + data.substring(idx + 1); } // must have a space at the beginning and at the end, // otherwise the data must not contain '-' as the first/last character if (data.indexOf('\n') >= 0) { return "<!--\n" + indent(data) + "-->\n"; } return "<!-- " + data + " -->\n"; }
private String executeExplain(DropTable next) { StringBuilder explain = new StringBuilder(); String plan = explainForWorker(dropWorkers.get(next)); explain.append(plan); next = next.getNext(); if (next != null) { explain.append("\n"); explain.append(StringUtils.indent(executeExplain(next), 4, false)); } return explain.toString(); }
/** * Get the PreparedExecutor with the execution explain. * * @return the execution explain */ @Override public String doExplain() { StringBuilder explain = new StringBuilder(); explain.append(explainForWorker(workers)); if(asQueryInsert != null) { String explainPlan = asQueryInsert.explainPlan(); explain.append(StringUtils.indent(explainPlan, 4, false)); } return explain.toString(); }
@Override public String getSQL() { if (isTemporary()) { return "(\n" + StringUtils.indent(querySQL) + ")"; } return super.getSQL(); }
@Override public String getSQL() { StringBuilder buff = new StringBuilder(); buff.append('(').append(left.getSQL()).append(' '); if (all) { buff.append(Comparison.getCompareOperator(compareType)). append(" ALL"); } else { if (compareType == Comparison.EQUAL) { buff.append("IN"); } else { buff.append(Comparison.getCompareOperator(compareType)). append(" ANY"); } } buff.append("(\n").append(StringUtils.indent(query.getPlanSQL(), 4, false)). append("))"); return buff.toString(); }
@Override protected String doExplain() { TableMate table = toTableMate(prepared.getTable()); if (workers != null) { return explainForWorker(workers); } else { Query query = prepared.getQuery(); String subPlan = query.explainPlan(); StringBuilder explain = new StringBuilder(); explain.append("insert into ").append(table.getName()).append(" with query result"); explain.append(StringUtils.indent(subPlan, 4, false)); return explain.toString(); } }
@Override protected String doExplain() { TableMate table = toTableMate(prepared.getTable()); if (workers != null) { return explainForWorker(workers); } else { Query query = prepared.getQuery(); String subPlan = query.explainPlan(); StringBuilder explain = new StringBuilder(); explain.append("replace into ").append(table.getName()).append(" with query result"); explain.append(StringUtils.indent(subPlan, 4, false)); return explain.toString(); } }
@Override protected String doExplain() { TableMate table = toTableMate(prepared.getTable()); if (workers != null) { return explainForWorker(workers); } else { Query query = prepared.getQuery(); String subPlan = query.explainPlan(); StringBuilder explain = new StringBuilder(); explain.append("merge into ").append(table.getName()).append(" with query result"); explain.append(StringUtils.indent(subPlan, 4, false)); return explain.toString(); } }
buff.append("(\n"); buff.append(StringUtils.indent(nested, 4, false)); if (enclose) { buff.append(')');
buff.appendExceptFirst(","); buff.append('\n'); buff.append(StringUtils.indent(exprList[i].getSQL(), 4, false));