|
8 | 8 | import java.time.Duration; |
9 | 9 | import java.util.ArrayList; |
10 | 10 | import java.util.Collections; |
11 | | -import java.util.HashMap; |
12 | 11 | import java.util.List; |
13 | | -import java.util.Map; |
14 | 12 | import java.util.Objects; |
15 | 13 | import java.util.logging.Logger; |
16 | 14 |
|
17 | 15 | import tech.ydb.jdbc.YdbConnection; |
18 | 16 | import tech.ydb.jdbc.YdbConst; |
19 | 17 | import tech.ydb.jdbc.YdbResultSet; |
20 | 18 | import tech.ydb.jdbc.YdbStatement; |
| 19 | +import tech.ydb.jdbc.common.FixedResultSetFactory; |
21 | 20 | import tech.ydb.jdbc.context.YdbExecutor; |
22 | 21 | import tech.ydb.jdbc.exception.YdbResultTruncatedException; |
23 | 22 | import tech.ydb.jdbc.query.YdbQuery; |
|
39 | 38 | public abstract class BaseYdbStatement implements YdbStatement { |
40 | 39 | protected static final ResultState EMPTY_STATE = new ResultState(); |
41 | 40 |
|
| 41 | + private static FixedResultSetFactory EXPLAIN_RS_FACTORY = FixedResultSetFactory.newBuilder() |
| 42 | + .addTextColumn(YdbConst.EXPLAIN_COLUMN_AST) |
| 43 | + .addTextColumn(YdbConst.EXPLAIN_COLUMN_PLAN) |
| 44 | + .build(); |
| 45 | + |
42 | 46 | private final YdbConnection connection; |
43 | 47 | private final YdbExecutor executor; |
44 | 48 | private final YdbQueryOptions queryOptions; |
@@ -177,10 +181,12 @@ protected void executeSchemeQuery(YdbQuery query) throws SQLException { |
177 | 181 | protected ResultState executeExplainQuery(YdbQuery query) throws SQLException { |
178 | 182 | ExplainDataQueryResult explainDataQuery = connection.executeExplainQuery(query, executor); |
179 | 183 |
|
180 | | - Map<String, Object> row = new HashMap<>(); |
181 | | - row.put(YdbConst.EXPLAIN_COLUMN_AST, explainDataQuery.getQueryAst()); |
182 | | - row.put(YdbConst.EXPLAIN_COLUMN_PLAN, explainDataQuery.getQueryPlan()); |
183 | | - ResultSetReader result = MappingResultSets.readerFromMap(row); |
| 184 | + ResultSetReader result = EXPLAIN_RS_FACTORY.createResultSet() |
| 185 | + .newRow() |
| 186 | + .withTextValue(YdbConst.EXPLAIN_COLUMN_AST, explainDataQuery.getQueryAst()) |
| 187 | + .withTextValue(YdbConst.EXPLAIN_COLUMN_PLAN, explainDataQuery.getQueryPlan()) |
| 188 | + .build() |
| 189 | + .build(); |
184 | 190 |
|
185 | 191 | List<YdbResultSet> list = Collections.singletonList(new YdbResultSetImpl(this, result)); |
186 | 192 | return new ResultState(list); |
|
0 commit comments