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:42:13 UTC
[jira] [Commented] (TAJO-1264) C/C++ Client
[ https://issues.apache.org/jira/browse/TAJO-1264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14255346#comment-14255346 ]
Hyoungjun Kim commented on TAJO-1264:
-------------------------------------
I have question about placing c/c++ client code. I think there are three selections.
1. placed in the tajo-thrift-server sub-project.
2. placed in the tajo-client sub-project.
3. making new sub-project named tajo-cpp-client.
4. Other opinion.
> 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)