public List<String> getTableColumns(String table,String clientId) {
		Connection connection = AppDBContext.IS_MUST_READ_MASTER_MACHINE?AppDBContext.getWCon(clientId):AppDBContext.getRCon(clientId);
        if(connection == null){
            new DaoException("get connection error");
        }
        PreparedStatement statement = null;
        List<String> ret = new LinkedList<String>();
        String sql = "select * from " + table + " where 1=0";
        try {
            statement = connection.prepareStatement(sql);
            ResultSet resultSet = statement.executeQuery();
            ResultSetMetaData data = resultSet.getMetaData();
            int count = data.getColumnCount();
            for (int i = 1; i <= count; ++i) {
            	String column = data.getColumnLabel(i); 
            	if("join".equals(column)){
            		column = "`" +  column + "`";
            	}
        		ret.add(column);
        	}
        } catch (SQLException e) {
        	String msg = "sql=" +sql;
        	if (msg.length() > 2000) {
        		msg = msg.substring(0, 2000);
        	}
            log.error("error" + e.getMessage() + ", tableId=" + clientId + ", " + msg, e);
            throw new DaoException("query " + sql + "error", e);
        } finally {
            DBUtil.closePs(statement);
        }
        return ret;
	}