You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tajo.apache.org by "Hyoungjun Kim (JIRA)" <ji...@apache.org> on 2014/12/22 02:31:13 UTC

[jira] [Created] (TAJO-1264) C/C++ Client

Hyoungjun Kim created TAJO-1264:
-----------------------------------

             Summary: C/C++ Client
                 Key: TAJO-1264
                 URL: https://issues.apache.org/jira/browse/TAJO-1264
             Project: Tajo
          Issue Type: New Feature
            Reporter: Hyoungjun Kim
            Assignee: Hyoungjun Kim


Currently Tajo is support only Java client. I think supporting multiple language is important for growing Tajo community. TAJO-1206 makes it easier to support multiple languages.   
This issue is for implementing C/C++ client which calls to TajoThriftServer. Tajo C/C++ client may have Java Tajo Client's method like the following.

{code}
// Connection API
TajoThriftConnection* OpenConnection(const char* database, std::string host, int port, char* err, size_t err_len);

// Database API
TajoReturn CloseConnection(TajoThriftConnection* conn, char* err, size_t err_len);
TajoReturn CreateDatabase(TajoThriftConnection* conn, const char* database_name, char* err, size_t err_len);
TajoReturn ExistDatabase(TajoThriftConnection* conn, const char* database_name, bool& exists, char* err, size_t err_len);
TajoReturn DropDatabase(TajoThriftConnection* conn, const char* database_name, char* err, size_t err_len);
TajoReturn GetAllDatabaseNames(TajoThriftConnection* conn, std::vector<std::string>& databases,
  char* err, size_t err_len);

// Table API
TajoReturn GetTables(TajoThriftConnection* conn, const char* database_name, std::vector<std::string>& tables,
  char* err, size_t err_len);
TajoReturn GetTablesResultSet(TajoThriftConnection* conn, const char* database_name,
  boost::shared_ptr<apache::tajo::TajoResultSet>& result_set, char* err, size_t err_len);
TajoReturn DropTable(TajoThriftConnection* conn, const char* table_name, bool purge, char* err, size_t err_len);
TajoReturn GetTableDesc(TajoThriftConnection* conn, const char* table_name,
  apache::tajo::thrift::TTableDesc& tableDesc, char* err, size_t err_len);
TajoReturn GetColumnsResultSet(TajoThriftConnection* conn, const char* database_name, const char* table_name,
  boost::shared_ptr<apache::tajo::TajoResultSet>& result_set, char* err, size_t err_len);

// Session API
TajoReturn GetCurrentDatabase(TajoThriftConnection* conn, std::string& database, char* err, size_t err_len);
TajoReturn SelectDatabase(TajoThriftConnection* conn, const char* database, char* err, size_t err_len);
TajoReturn UpdateSessionVariable(TajoThriftConnection* conn, char *key, char *value, char* err, size_t err_len);
TajoReturn UnsetSessionVariable(TajoThriftConnection* conn, char *key, char* err, size_t err_len);
TajoReturn GetAllSessionVariables(TajoThriftConnection* conn, std::map<std::string, std::string>& variables,
  char* err, size_t err_len);
TajoReturn CheckSessionAndGet(TajoThriftConnection* conn, char* err, size_t err_len);

// Query API
TajoReturn ExecuteQuery(TajoThriftConnection* conn, const char *sql,
  apache::tajo::thrift::TGetQueryStatusResponse& response, char* err, size_t err_len);
TajoReturn UpdateQuery(TajoThriftConnection* conn, const char *sql,
  apache::tajo::thrift::TServerResponse& response, char* err, size_t err_len);
TajoReturn ExecuteQueryAndGetResult(TajoThriftConnection* conn, const char *sql,
  boost::shared_ptr<apache::tajo::TajoResultSet>& result_set, char* err, size_t err_len);
TajoReturn GetQueryStatus(TajoThriftConnection* conn, const std::string query_id,
  apache::tajo::thrift::TGetQueryStatusResponse& response, char* err, size_t err_len);
TajoReturn GetQueryResultAndWait(TajoThriftConnection* conn, const std::string query_id,
  const apache::tajo::thrift::TGetQueryStatusResponse& query_response,
  boost::shared_ptr<apache::tajo::TajoResultSet>& result_set, char *err, size_t err_len);
TajoReturn GetQueryResult(TajoThriftConnection* conn, const std::string query_id, const size_t fetch_size,
  boost::shared_ptr<apache::tajo::TajoResultSet>& result_set, char* err, size_t err_len);
TajoReturn GetNextQueryResult(TajoThriftConnection* conn, const std::string query_id, size_t fetch_size,
  apache::tajo::thrift::TQueryResult& query_result, char* err, size_t err_len);
TajoReturn CloseQuery(TajoThriftConnection* conn, const std::string query_id, char* err, size_t err_len);
{code}  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)