Skip to content

Commit 1d0affa

Browse files
committed
Added fixed tables for DatabaseMetaData
1 parent 5280dce commit 1d0affa

File tree

6 files changed

+697
-296
lines changed

6 files changed

+697
-296
lines changed

jdbc/src/main/java/tech/ydb/jdbc/impl/BaseYdbStatement.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,15 @@
88
import java.time.Duration;
99
import java.util.ArrayList;
1010
import java.util.Collections;
11-
import java.util.HashMap;
1211
import java.util.List;
13-
import java.util.Map;
1412
import java.util.Objects;
1513
import java.util.logging.Logger;
1614

1715
import tech.ydb.jdbc.YdbConnection;
1816
import tech.ydb.jdbc.YdbConst;
1917
import tech.ydb.jdbc.YdbResultSet;
2018
import tech.ydb.jdbc.YdbStatement;
19+
import tech.ydb.jdbc.common.FixedResultSetFactory;
2120
import tech.ydb.jdbc.context.YdbExecutor;
2221
import tech.ydb.jdbc.exception.YdbResultTruncatedException;
2322
import tech.ydb.jdbc.query.YdbQuery;
@@ -39,6 +38,11 @@
3938
public abstract class BaseYdbStatement implements YdbStatement {
4039
protected static final ResultState EMPTY_STATE = new ResultState();
4140

41+
private static FixedResultSetFactory EXPLAIN_RS_FACTORY = FixedResultSetFactory.newBuilder()
42+
.addTextColumn(YdbConst.EXPLAIN_COLUMN_AST)
43+
.addTextColumn(YdbConst.EXPLAIN_COLUMN_PLAN)
44+
.build();
45+
4246
private final YdbConnection connection;
4347
private final YdbExecutor executor;
4448
private final YdbQueryOptions queryOptions;
@@ -177,10 +181,12 @@ protected void executeSchemeQuery(YdbQuery query) throws SQLException {
177181
protected ResultState executeExplainQuery(YdbQuery query) throws SQLException {
178182
ExplainDataQueryResult explainDataQuery = connection.executeExplainQuery(query, executor);
179183

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();
184190

185191
List<YdbResultSet> list = Collections.singletonList(new YdbResultSetImpl(this, result));
186192
return new ResultState(list);

0 commit comments

Comments
 (0)