private void dropIndex(String sql, StringTokenizer tokenizer) throws Exception {
		try {
			//get index name
			String idxName = tokenizer.nextToken();
			
			// Check for the semicolon
			String tok = tokenizer.nextToken();
			if (! ";".equalsIgnoreCase(tok)) {
				throw new NoSuchElementException();
			}
			
			// Check if there are more tokens
			if (tokenizer.hasMoreTokens()) {
				throw new NoSuchElementException();
			}
			
			boolean dropped = false;
			for (Table table : tables) { 
				for (Index index : table.getIndexes()) { 
					if (index.getIdxName().equalsIgnoreCase(idxName)) { 
						table.setNumIndexes(table.getNumIndexes() - 1);
						table.getIndexes().remove(index);						
						dropped = true;
						File indexFile = new File(TABLE_FOLDER_NAME, table.getTableName() + idxName + INDEX_FILE_EXT);
						try {
							indexFile.delete();
						} catch (Exception ex) {
							out.println("Unable to delete index file for " + table.getTableName() + idxName + ".");
						}
						break;
					}
				}
			}
			
			if (! dropped) {
				out.println("Index " + idxName + " does not exist.");
			} else {
				out.println("Index " + idxName + " was dropped.");
			}
			
		} catch (NoSuchElementException ex) {
			throw new DbmsError("Invalid DROP INDEX statement. '" + sql + "'.");			
		}
	}