drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Zarei (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DRILL-1537) C++ Client: Passing the listener context to queryResultListener function
Date Wed, 15 Oct 2014 18:47:34 GMT
Alexander Zarei created DRILL-1537:

             Summary: C++ Client: Passing the listener context to queryResultListener function
                 Key: DRILL-1537
                 URL: https://issues.apache.org/jira/browse/DRILL-1537
             Project: Apache Drill
          Issue Type: Bug
          Components: Client - ODBC
            Reporter: Alexander Zarei

When submitting queries by the function `SubmitQuery(QueryType t, string& plan, pfnQueryResultsListener
l, void* lCtx)` of drillClientImp class, the listenerContext parameter provides a convenient
way of associating returned results with submitted queries.

The way it works is that the calling application passes the context to `SubmitQuery` and when
returning results, `processQueryResult` passes the context to the `queryResultListener` callback
function. As such, the callback function can associate the returned result with the context.

When we were updating QuerySubmitter example to showcase usage of `SubmitQuery` with context,
we noticed `processQueryResult` function does not pass the context directly to the `queryResultListener`
callback function; Instead, an instance of DrillClientQueryResult which contains the context
as a data member is passed to the `queryResultListener`. This requires the `queryResultListener`
function, which is implemented in consumers of the C++ Client, to know about the DrillClientQueryResult.

However, DrillClientQueryResult is not in the public API of the DrillClient. Two solutions
are imaginable at the first glance: First, passing the context instead of a DrillClientQueryResult,
which we implemented and tested it; Second, moving DrillClientQueryResult to the public API;
Moving DrillClientQueryResult to the public API does not seem to be desirable as it is internal
detail for the C++ Client.

I was wondering what your thoughts are on this.


This message was sent by Atlassian JIRA

View raw message