Skip to content

Commit d747bbe

Browse files
authored
Merge pull request #26 from alex268/fix_metadata_columns
Add DatabaseMetaData tables
2 parents b0b978a + 7f8bd79 commit d747bbe

File tree

10 files changed

+1417
-616
lines changed

10 files changed

+1417
-616
lines changed

jdbc/src/main/java/tech/ydb/jdbc/common/FixedResultSetFactory.java

Lines changed: 465 additions & 0 deletions
Large diffs are not rendered by default.

jdbc/src/main/java/tech/ydb/jdbc/common/MappingResultSets.java

Lines changed: 0 additions & 94 deletions
This file was deleted.

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)