Thomas Tauber-Marshall has submitted this change and it was merged. Change subject: Initial structure for the C++ hiveserver2 client. ......................................................................
Initial structure for the C++ hiveserver2 client. The basic model: clients connect to the hiveserver2 server using hs2client::Service::Connect. Sessions can then be started with Service::OpenSession, and operations can be run on the session with functions like Session::ExecuteStatement. The operation handle provides functions for checking the operation status and retrieving results. The PIMPL idiom is used to hide Thrift from the public header files, and a ThriftRPC struct containing the Thrift client object is passed from the service into the session and operations to give them access to RPC calls. Currently, only fetching column oriented results is supported. Fetched results are accessible via a ColumnarRowSet, and columns of a given type can be accessed by their index. Column objects expose pointers to the raw data returned by Thrift to give clients access without unnecessary copying. There is also a Status class that is used to indicate when RPCs are unsuccessful, and a sample usage file to demonstrate how a client can use the interface. Change-Id: I7be82d5897ad6093116915b17924674c4ae508a0 --- A .gitignore M CMakeLists.txt A src/hs2client/api.h A src/hs2client/columnar-row-set.cc A src/hs2client/columnar-row-set.h A src/hs2client/logging.h A src/hs2client/macros.h A src/hs2client/operation-test.cc A src/hs2client/operation.cc A src/hs2client/operation.h A src/hs2client/public-api-test.cc A src/hs2client/sample-usage.cc A src/hs2client/service-test.cc A src/hs2client/service.cc A src/hs2client/service.h A src/hs2client/session-test.cc A src/hs2client/session.cc A src/hs2client/session.h A src/hs2client/status.cc A src/hs2client/status.h A src/hs2client/test-util.h A src/hs2client/thrift-internal.cc A src/hs2client/thrift-internal.h A src/hs2client/types.cc A src/hs2client/types.h A src/hs2client/util.cc A src/hs2client/util.h 27 files changed, 2,668 insertions(+), 3 deletions(-) Approvals: Wes McKinney: Looks good to me, but someone else must approve Matthew Jacobs: Looks good to me, but someone else must approve -- To view, visit http://gerrit.cloudera.org:8080/2645 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I7be82d5897ad6093116915b17924674c4ae508a0 Gerrit-PatchSet: 17 Gerrit-Project: hs2client Gerrit-Branch: master Gerrit-Owner: Thomas Tauber-Marshall <[email protected]> Gerrit-Reviewer: Marcel Kornacker <[email protected]> Gerrit-Reviewer: Matthew Jacobs <[email protected]> Gerrit-Reviewer: Thomas Tauber-Marshall <[email protected]> Gerrit-Reviewer: Wes McKinney <[email protected]>
