Skip to content

Commit e08ef54

Browse files
committed
Move analytics routing after profiling setup
Move the analytics index routing check after QueryContext.setProfile() and wrapWithProfilingClear(listener). Use clearingListener instead of raw listener so profiling thread-local state is properly cleaned up after analytics path execution. Signed-off-by: Kai Huang <kaihuang@amazon.com> Signed-off-by: Kai Huang <ahkcs@amazon.com>
1 parent 0ea384a commit e08ef54

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

plugin/src/main/java/org/opensearch/sql/plugin/transport/TransportPPLQueryAction.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,17 +122,17 @@ protected void doExecute(
122122

123123
// in order to use PPL service, we need to convert TransportPPLQueryRequest to PPLQueryRequest
124124
PPLQueryRequest transformedRequest = transportRequest.toPPLQueryRequest();
125+
QueryContext.setProfile(transformedRequest.profile());
126+
ActionListener<TransportPPLQueryResponse> clearingListener = wrapWithProfilingClear(listener);
125127

126128
// Route to analytics engine for non-Lucene (e.g., Parquet-backed) indices
127129
if (RestUnifiedQueryAction.isAnalyticsIndex(transformedRequest.getRequest())) {
128130
unifiedQueryHandler.executeViaTransport(
129-
transformedRequest.getRequest(), QueryType.PPL, transformedRequest, listener);
131+
transformedRequest.getRequest(), QueryType.PPL, transformedRequest, clearingListener);
130132
return;
131133
}
132134

133135
PPLService pplService = injector.getInstance(PPLService.class);
134-
QueryContext.setProfile(transformedRequest.profile());
135-
ActionListener<TransportPPLQueryResponse> clearingListener = wrapWithProfilingClear(listener);
136136

137137
if (transformedRequest.isExplainRequest()) {
138138
pplService.explain(

0 commit comments

Comments
 (0)