refactor select_columns
restore order-by
support relational column definition