void getSingleExpressions() {

        LinkedHashSet<String> tab_list = new LinkedHashSet<String>();
        LinkedHashSet<String> col_list = new LinkedHashSet<String>();
        LinkedHashSet<String> colnames;
        for (Expression w : where_exp) {
            ExpressionEvaluator e1 = new ExpressionEvaluator();
            w.accept(e1);
            colnames = e1.getColNames();
            for (String tab : colnames) {
                if (tab.contains(".")) {
                    tab_list.add(tab.split("\\.")[0]);
                    col_list.add(tab);
                }

            }

            if (tab_list.size() == 1) {
                String tabname = tab_list.toArray()[0].toString();
                if (tabinfo.containsKey(tabname)) {
                    TableExpInfo t = tabinfo.get(tabname);
                    HashSet<String> col = t.getCol();
                    for (Object s : col_list.toArray()) {
                        col.add(s.toString());
                    }
                    t.setCol(col);
                    String exp = t.getExp() + " AND " + w.toString();
                    t.setExp(exp);
                    if (w.toString().contains(" OR ")) {
                        t.getAndOrList()[0].add(null);
                        t.getAndOrList()[1] = createORlist(w.toString());

                    } else {
                        Metadata m = new Metadata();
                        m.setCondition(w.toString());
                        t.getAndOrList()[0].add(m);

                    }

                    tabinfo.put(tabname, t);

                } else {
                    ArrayList<Metadata>[] mlist = new ArrayList[2];
                    mlist[0] = new ArrayList<Metadata>();
                    mlist[1] = new ArrayList<Metadata>();
                    TableExpInfo t = new TableExpInfo();
                    HashSet<String> col = new HashSet<String>();
                    for (Object s : col_list.toArray()) {
                        col.add(s.toString());
                    }

                    t.setCol(col);
                    t.setExp(w.toString());

                    if (w.toString().contains(" OR ")) {
                        mlist[0].add(null);
                        mlist[1] = createORlist(w.toString());
                    } else {
                        Metadata m = new Metadata();
                        m.setCondition(w.toString());
                        mlist[0].add(m);

                    }
                    t.setAndOrList(mlist);

                    tabinfo.put(tabname, t);

                }

            }
            tab_list.clear();
            col_list.clear();
        }

    }