From 72170b490b42982613560f0afcb34a29792eeb91 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Tue, 8 Dec 2015 22:38:56 +0100 Subject: [PATCH] Bug fixes --- Zutil.jar | Bin 1182610 -> 1182524 bytes src/zutil/db/DBUpgradeHandler.java | 29 +++++++++++------------------ 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/Zutil.jar b/Zutil.jar index 7aba28fde9a244eb224eae5dd8cf08840a4664df..cc99db7f6ed49129d904271f2c2e22e9b3bd26db 100755 GIT binary patch delta 10292 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 WLm}Xy>ELAGb{?7`$F^{QCiXwgTIH_* delta 10384 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 refTables = reference.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); - List targetTables = reference.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); + List targetTables = target.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); for(String table : refTables){ if(!targetTables.contains(table)){ @@ -91,23 +91,20 @@ public class DBUpgradeHandler { private void upgradeDropTables() throws SQLException { List refTables = reference.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); - List targetTables = reference.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); + List targetTables = target.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); for(String table : targetTables){ if(!refTables.contains(table)){ - logger.fine("Dropping table: "); - PreparedStatement stmt = target.getPreparedStatement("DROP TABLE ?"); - stmt.setString(1, table); - DBConnection.exec(stmt); + logger.fine("Dropping table: " + table); + target.exec("DROP TABLE " + table); } } } private void upgradeAlterTables() throws SQLException { List refTables = reference.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); - List targetTables = reference.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); + List targetTables = target.exec("SELECT name FROM sqlite_master WHERE type='table';", new ListSQLResult()); - PreparedStatement stmt; for(String table : targetTables){ if(refTables.contains(table)){ // Get reference structure @@ -121,16 +118,12 @@ public class DBUpgradeHandler { for(DBColumn column : refStruct) { if(!targetStruct.contains(column)) { logger.fine("Adding column '" + column.name + "' to table: " + table); - stmt = target.getPreparedStatement("ALTER TABLE ? ADD COLUMN ? ? ?"); - stmt.setString(1, table); // Table name - stmt.setString(2, column.name); // Column name - stmt.setString(2, column.type); // Column type - stmt.setString(2, ""+// Column constraints - (column.defaultValue != null ? " DEFAULT '"+column.defaultValue+"'" : "")+ - (column.notNull ? " NOT NULL" : "")+ - (column.publicKey ? " PRIMARY KEY" : "") - ); - DBConnection.exec(stmt); + target.exec("ALTER TABLE "+table+" ADD COLUMN" + + " " + column.name // Column name + + " " + column.type // Column type + + (column.defaultValue != null ? " DEFAULT '"+column.defaultValue+"'" : "") + + (column.notNull ? " NOT NULL" : "") + + (column.publicKey ? " PRIMARY KEY" : "")); } } // Check unnecessary columns