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]>

Reply via email to