private void setColumn(SQLExpr x, Column column) { SQLObject current = x; for (; ; ) { SQLObject parent = current.getParent(); if (parent == null) { break; } if (parent instanceof SQLSelectQueryBlock) { SQLSelectQueryBlock query = (SQLSelectQueryBlock) parent; if (query.getWhere() == current) { column.setWhere(true); } break; } if (parent instanceof SQLSelectGroupByClause) { SQLSelectGroupByClause groupBy = (SQLSelectGroupByClause) parent; if (current == groupBy.getHaving()) { column.setHaving(true); } else if (groupBy.getItems().contains(current)) { column.setGroupBy(true); } break; } if (parent instanceof SQLSelectItem) { column.setSelec(true); break; } if (parent instanceof SQLJoinTableSource) { SQLJoinTableSource join = (SQLJoinTableSource) parent; if (join.getCondition() == current) { column.setJoin(true); } break; } current = parent; } }