private void addACLPrivileges(String acl, HashMap privileges)
	{
		int equalIndex = acl.lastIndexOf("=");
		String name = acl.substring(0, equalIndex);
		if(name.length() == 0)
		{
			name = "PUBLIC";
		}
		String privs = acl.substring(equalIndex + 1);
		for(int i = 0; i < privs.length(); i++)
		{
			char c = privs.charAt(i);
			String sqlpriv;
			switch(c)
			{
				case 'a':
					sqlpriv = "INSERT";
					break;
				case 'r':
					sqlpriv = "SELECT";
					break;
				case 'w':
					sqlpriv = "UPDATE";
					break;
				case 'd':
					sqlpriv = "DELETE";
					break;
				case 'R':
					sqlpriv = "RULE";
					break;
				case 'x':
					sqlpriv = "REFERENCES";
					break;
				case 't':
					sqlpriv = "TRIGGER";
					break;
				// the folloowing can't be granted to a table, but
				// we'll keep them for completeness.
				case 'X':
					sqlpriv = "EXECUTE";
					break;
				case 'U':
					sqlpriv = "USAGE";
					break;
				case 'C':
					sqlpriv = "CREATE";
					break;
				case 'T':
					sqlpriv = "CREATE TEMP";
					break;
				default:
					sqlpriv = "UNKNOWN";
			}
			ArrayList usersWithPermission = (ArrayList)privileges.get(sqlpriv);
			if(usersWithPermission == null)
			{
				usersWithPermission = new ArrayList();
				privileges.put(sqlpriv, usersWithPermission);
			}
			usersWithPermission.add(name);
		}
	}