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)