@NotNull public final SqlScript script(@NotNull final String name) { TextFragment fragment = getText(name); SqlScriptBuilder b = new SqlScriptBuilder(); b.parse(fragment.text); return new SqlScript(b.build()); }
@Override public void performScript(final String... commands) { if (commands == null || commands.length == 0) return; SqlScriptBuilder b = new SqlScriptBuilder(); for (String c : commands) b.add(c); performScript(b.build()); }
public void parse(@NotNull final String text) { TextWalker walker = new TextWalker(text); while (!walker.isEOT()) { skipEmptySpace(walker); if (walker.isEOT()) break; String essentialWords = extractEssentialWords(walker, 6); boolean pl = determinePL(essentialWords); if (pl) { extractPLBlock(walker); } else { extractSQLCommand(walker); } } }
void performMetaQueryCommands(final SqlQuery<List<String>> metaQuery, final Object... params) { db.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { List<String> commands = session.query(metaQuery).withParams(params).run(); SqlScriptBuilder sb = new SqlScriptBuilder(); for (String command : commands) if (command != null && command.length() > 0) sb.add(command); SqlScript script = sb.build(); session.script(script).run(); } }); }
private void extractSQLCommand(@NotNull TextWalker walker) { skipEmptySpace(walker); final TextPointer begin = walker.getPointer(); final Matcher matcher = walker.skipToPattern(SQL_END_MARKER); final String sqlText = rtrim(walker.getText().substring(begin.offset, walker.getOffset())); SqlCommand command = new SqlCommand(sqlText, begin.row, null); myStatements.add(command); if (matcher != null) { walker.skipToOffset(matcher.end()); } }
private static SqlScript build(String text) { SqlScriptBuilder b = new SqlScriptBuilder(); b.parse(text); return b.build(); }
@Override public void run(@NotNull final DBSession session) { List<String> commands = session.query(metaQuery).withParams(params).run(); SqlScriptBuilder sb = new SqlScriptBuilder(); for (String command : commands) if (command != null && command.length() > 0) sb.add(command); SqlScript script = sb.build(); session.script(script).run(); } });