1 33 package smallsql.database; 34 35 import java.io.*; 36 37 38 public class CommandDrop extends Command { 39 40 CommandDrop( Logger log, String catalog, String name, int type ){ 41 super(log); 42 this.type = type; 43 this.catalog = catalog; 44 this.name = name; 45 } 46 47 void executeImpl(SSConnection con, SSStatement st) throws Exception { 48 switch(type){ 49 case SQLTokenizer.DATABASE: 50 if(name.startsWith("file:")) 51 name = name.substring(5); 52 File dir = new File( name ); 53 if(!dir.isDirectory() || 54 !new File( dir, Utils.MASTER_FILENAME ).exists()) 55 throw Utils.createSQLException("Database '" + name + "' does not exists."); 56 File files[] = dir.listFiles(); 57 if(files != null) 58 for(int i=0; i<files.length; i++){ 59 files[i].delete(); 60 } 61 dir.delete(); 62 break; 63 case SQLTokenizer.TABLE: 64 Database.dropTable( con, catalog, name ); 65 break; 66 case SQLTokenizer.VIEW: 67 Database.dropView( con, catalog, name ); 68 break; 69 case SQLTokenizer.INDEX: 70 case SQLTokenizer.PROCEDURE: 71 throw new java.lang.UnsupportedOperationException (); 72 default: 73 throw new Error (); 74 } 75 } 76 } | Popular Tags |