[
https://issues.apache.org/jira/browse/DRILL-1537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14179337#comment-14179337
]
Parth Chandra commented on DRILL-1537:
--------------------------------------
I think the DrillClient API I outlined above takes care of the mapping between
the application context and the query handle. You won't need the wrapper object
in that case. The API can be called from inside the listener callback so the
end result will be the same as what the patch is trying to achieve.
> 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
> Attachments: Drill-1537-patch-1.diff
>
>
> 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 C++ Client.
> 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.
> Thanks,
> Alex
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)