GitHub user jianqiao reopened a pull request: https://github.com/apache/incubator-quickstep/pull/171
QUICKSTEP-68 Reorder intermediate relations' attributes to improve copy performance. Currently, all the intermediate relations (i.e. temporary relations created during query execution) have `SPLIT_ROW_STORE` layouts. One existing optimization that improves copy performance for `SPLIT_ROW_STORE` layout is that, if two (or more) attributes are consecutive in both the source relation and the destination relation, then we can memory-copy the attributes' byte stream with just one `std::memcpy` call. This PR is a complementary improvement that it adjusts the ordering of the attributes in the physical plan to maximize the opportunity of copying consecutive attributes â i.e. to minimize the number of `std::memcpy` calls. This PR uses a simple greedy algorithm to reorder the attributes, which works well with SSB/TPCH workloads. The algorithm may be further improved later. The feature can be turned on/off (default is **on**) with the `-reorder_columns` flag. You can merge this pull request into a Git repository by running: $ git pull https://github.com/apache/incubator-quickstep reorder-attrs Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-quickstep/pull/171.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #171 ---- commit 62b1742ef29bc8dea19d08fac6e0e04f45dc3f8a Author: Jianqiao Zhu <jianq...@cs.wisc.edu> Date: 2017-01-13T00:41:17Z Reorder output attribute order to improve copy performance. ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---