Alex Behm has posted comments on this change.

Change subject: PREVIEW: Basic column-wise slot materialization in Parquet 
scanner.
......................................................................


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/2779/1/be/src/exec/hdfs-parquet-scanner.cc
File be/src/exec/hdfs-parquet-scanner.cc:

Line 325:         continue_execution = ReadValue(pool, tuple);
> Good idea. As discussed I will give this a try. I'll make this change in it
I think it only works if we have an instance to call the function on, i.e. we 
cannot just do ReaderType::ReadValue() but we'd have to 
static_cast<ReaderType*>(this)->ReadValue() which becomes more more painful to 
implement because we'll need *Impl versions of NextLevels() and ReadValue().

You can try it for yourself with this test program:

#include <iostream>

class Base {
public:
  virtual void vfunc() = 0;

  template<typename CONCRETE_TYPE>
  void tfunc() {
    std::cout << "Called tfunc";
    CONCRETE_TYPE::sfunc();
  }

  void sfunc() {
        std::cout << "Called Base sfunc";
  }
};

class Derived : public Base {
public:
  virtual void vfunc() {
        tfunc<Derived>();
  }
  void sfunc() {
        std::cout << "Called Derived sfunc";
  }
};

int main() {

  Base* b = new Derived();
  b->vfunc();
  delete b;

  std::cout << "DONE" << std::endl;
  return 0;
}


-- 
To view, visit http://gerrit.cloudera.org:8080/2779
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I72a613fa805c542e39df20588fb25c57b5f139aa
Gerrit-PatchSet: 1
Gerrit-Project: Impala
Gerrit-Branch: cdh5-trunk
Gerrit-Owner: Alex Behm <[email protected]>
Gerrit-Reviewer: Alex Behm <[email protected]>
Gerrit-Reviewer: Mostafa Mokhtar <[email protected]>
Gerrit-Reviewer: Tim Armstrong <[email protected]>
Gerrit-HasComments: Yes

Reply via email to