private boolean checkTable() {
		String sql = "";
		try {
			Statement state = con.createStatement();
			sql = "DESC " + database + "." + table;
			ResultSet rs = state.executeQuery(sql);
			int size = 0;
			while (rs.next()) {
				String field = rs.getString("Field");
				String type = rs.getString("Type");
				if (!this.columns.containsKey(field)) {
					System.err.println("Table column " + field + " is undefined in any patterns.");
					return false;
				}
				else if (this.columns.get(field).toLowerCase().indexOf(type) == -1 
					&& type.indexOf(this.columns.get(field).toLowerCase()) == -1) {
					System.err.println("Table column " + field + ":" + type + 
							  " doesn't match defined patterns " + field + ":" + this.columns.get(field).toLowerCase() + ".");
					return false;
				}
				size ++;
			}
			if (size != this.columns.size()) {
				System.err.println("[Error] " + size + " columns defined in table, but " + this.columns.size() + " patterns defined.");
				return false;
			}
		}
		catch (Exception e) {
			System.err.println(e.toString());
			return false;
		}
		return true;
	}