Github user jinfengni commented on the issue:
https://github.com/apache/drill/pull/968
Project push-down rule may not work in the way we want in at least two
cases: 1) there is a bug in the code that we are not aware of, 2) it would not
push the list of columns for "select *", when the table is a dynamic table. For
HBase, that's not an issue. But it's an issue for MapRDB binary table, as it's
processed as a table on a file system, in stead of following the logic of HBase
in planning time. I could not comment why MapRDB binary table was handled that
way. But the reality is that you still will see column star in execution for
MapRDB, if we do not keep the "redundant" code in execution (which essentially
converts * into row_key/column family).
If we keep column star in record reader's columns list, then we would end
up with nullable-int vs map column. If we expand column star, then we may end
up with empty map vs a non-empty map. To me, it's easier to handle the latter
case. Plus it's something we have to deal with in case of HBase/JSON plugin.
---