X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fdatabase%2FSQLFileManager.java;h=9a5f5826dd2f13fca89c1392c1106ffb64c56089;hb=0c5e049937af92e3c12eb145730841daa18b8df4;hp=62083c7467663619b84466040f6ed7653f9588e7;hpb=5fd49eb7182b2522ee36be1f413f85271a20766c;p=gigi.git diff --git a/src/org/cacert/gigi/database/SQLFileManager.java b/src/org/cacert/gigi/database/SQLFileManager.java index 62083c74..9a5f5826 100644 --- a/src/org/cacert/gigi/database/SQLFileManager.java +++ b/src/org/cacert/gigi/database/SQLFileManager.java @@ -12,11 +12,11 @@ public class SQLFileManager { public static enum ImportType { /** - * Execute Script as-as + * Execute Script as-is */ PRODUCTION, /** - * Execute Script, but changing Engine=InnoDB to Engine=Memory + * Execute Script, but change Engine=InnoDB to Engine=Memory */ TEST, /** @@ -27,17 +27,22 @@ public class SQLFileManager { public static void addFile(Statement stmt, InputStream f, ImportType type) throws IOException, SQLException { String sql = readFile(f); - sql = sql.replaceAll("--[^\n]+\n", "\n"); + sql = sql.replaceAll("--[^\n]*\n", "\n"); + sql = sql.replaceAll("#[^\n]*\n", "\n"); String[] stmts = sql.split(";"); - Pattern p = Pattern.compile("\\s*DROP TABLE IF EXISTS `([^`]+)`"); + Pattern p = Pattern.compile("\\s*DROP TABLE IF EXISTS \"([^\"]+)\""); for (String string : stmts) { Matcher m = p.matcher(string); string = string.trim(); if (string.equals("")) { continue; } + if ((string.contains("profiles") || string.contains("cacerts") || string.contains("cats_type")) && type == ImportType.TRUNCATE) { + continue; + } + string = DatabaseConnection.preprocessQuery(string); if (m.matches() && type == ImportType.TRUNCATE) { - String sql2 = "TRUNCATE `" + m.group(1) + "`"; + String sql2 = "DELETE FROM \"" + m.group(1) + "\""; stmt.addBatch(sql2); continue; }