]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/database/SQLFileManager.java
add: split API and add CATS import API
[gigi.git] / src / org / cacert / gigi / database / SQLFileManager.java
index 62083c7467663619b84466040f6ed7653f9588e7..16629d54d0935323ddd7bfb87871d341105c6d84 100644 (file)
@@ -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.PRODUCTION) {
+                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;
             }