Skip to content

Commit 7de6452

Browse files
committed
fix getScriptFieldFromQuery can't get requestBuilder from QueryPlan
Signed-off-by: Sean Kao <seankao@amazon.com>
1 parent fcd64f5 commit 7de6452

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

legacy/src/main/java/org/opensearch/sql/legacy/plugin/SearchDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ public Client getClient() {
4545
*/
4646
public QueryAction explain(QueryActionRequest queryActionRequest)
4747
throws SqlParseException, SQLFeatureNotSupportedException, SQLFeatureDisabledException {
48-
return OpenSearchActionFactory.create(client, queryActionRequest);
48+
return OpenSearchActionFactory.create(client, queryActionRequest, false);
4949
}
5050
}

legacy/src/main/java/org/opensearch/sql/legacy/query/OpenSearchActionFactory.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,22 @@ public class OpenSearchActionFactory {
6363

6464
public static QueryAction create(Client client, String sql)
6565
throws SqlParseException, SQLFeatureNotSupportedException, SQLFeatureDisabledException {
66-
return create(client, new QueryActionRequest(sql, new ColumnTypeProvider(), Format.JDBC));
66+
return create(client, sql, false);
67+
}
68+
69+
public static QueryAction create(Client client, String sql, boolean bypassMigrateToQueryPlan)
70+
throws SqlParseException, SQLFeatureNotSupportedException, SQLFeatureDisabledException {
71+
return create(client, new QueryActionRequest(sql, new ColumnTypeProvider(), Format.JDBC), bypassMigrateToQueryPlan);
6772
}
6873

6974
/**
7075
* Create the compatible Query object based on the SQL query.
7176
*
7277
* @param request The SQL query.
78+
* @param bypassMigrateToQueryPlan Avoid using QueryPlan.
7379
* @return Query object.
7480
*/
75-
public static QueryAction create(Client client, QueryActionRequest request)
81+
public static QueryAction create(Client client, QueryActionRequest request, boolean bypassMigrateToQueryPlan)
7682
throws SqlParseException, SQLFeatureNotSupportedException, SQLFeatureDisabledException {
7783
String sql = request.getSql();
7884
// Remove line breaker anywhere and semicolon at the end
@@ -116,7 +122,7 @@ public static QueryAction create(Client client, QueryActionRequest request)
116122
} else {
117123
sqlExpr.accept(new TermFieldRewriter());
118124
// migrate aggregation to query planner framework.
119-
if (shouldMigrateToQueryPlan(sqlExpr)) {
125+
if (!bypassMigrateToQueryPlan && shouldMigrateToQueryPlan(sqlExpr)) {
120126
return new QueryPlanQueryAction(
121127
new QueryPlanRequestBuilder(
122128
new BindingTupleQueryPlanner(client, sqlExpr, request.getTypeProvider())));

legacy/src/test/java/org/opensearch/sql/legacy/unittest/JSONRequestTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ private String translate(String sql, JSONObject jsonRequest)
435435
CheckScriptContents.stubMockClient(mockClient);
436436
QueryAction queryAction =
437437
OpenSearchActionFactory.create(
438-
mockClient, new QueryActionRequest(sql, columnTypeProvider, Format.JDBC));
438+
mockClient, new QueryActionRequest(sql, columnTypeProvider, Format.JDBC), false);
439439

440440
SqlRequest sqlRequest = new SqlRequest(sql, jsonRequest);
441441
queryAction.setSqlRequest(sqlRequest);

legacy/src/test/java/org/opensearch/sql/legacy/util/CheckScriptContents.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ public static ScriptField getScriptFieldFromQuery(String query) {
6363
try {
6464
Client mockClient = mock(Client.class);
6565
stubMockClient(mockClient);
66-
QueryAction queryAction = OpenSearchActionFactory.create(mockClient, query);
66+
// Avoid creating QueryPlanQueryAction so that scriptFields is available
67+
QueryAction queryAction = OpenSearchActionFactory.create(mockClient, query, true);
6768
SqlElasticRequestBuilder requestBuilder = queryAction.explain();
6869

6970
SearchRequestBuilder request = (SearchRequestBuilder) requestBuilder.getBuilder();

0 commit comments

Comments
 (0)