Skip to content

Commit 8baac04

Browse files
committed
Fixed issue processing for scheme queries
1 parent c703fc7 commit 8baac04

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

jdbc/src/main/java/tech/ydb/jdbc/context/QueryServiceExecutor.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
import java.sql.SQLFeatureNotSupportedException;
66
import java.time.Duration;
77
import java.util.ArrayList;
8+
import java.util.Arrays;
89
import java.util.List;
910
import java.util.concurrent.TimeUnit;
1011

1112
import tech.ydb.common.transaction.TxMode;
13+
import tech.ydb.core.Issue;
1214
import tech.ydb.core.Result;
1315
import tech.ydb.core.UnexpectedResultException;
1416
import tech.ydb.jdbc.YdbConst;
@@ -17,7 +19,9 @@
1719
import tech.ydb.jdbc.query.YdbQuery;
1820
import tech.ydb.query.QueryClient;
1921
import tech.ydb.query.QuerySession;
22+
import tech.ydb.query.QueryStream;
2023
import tech.ydb.query.QueryTransaction;
24+
import tech.ydb.query.result.QueryResultPart;
2125
import tech.ydb.query.settings.CommitTransactionSettings;
2226
import tech.ydb.query.settings.ExecuteQuerySettings;
2327
import tech.ydb.query.settings.RollbackTransactionSettings;
@@ -228,12 +232,31 @@ public void executeSchemeQuery(YdbContext ctx, YdbValidator validator, YdbQuery
228232
final String yql = query.getYqlQuery(null);
229233

230234
try (QuerySession session = createNewQuerySession(validator)) {
231-
validator.call(QueryType.SCHEME_QUERY + " >>\n" + yql,
232-
() -> session.createQuery(yql, TxMode.NONE, Params.empty(), settings).execute()
235+
validator.call(QueryType.SCHEME_QUERY + " >>\n" + yql, () -> session
236+
.createQuery(yql, TxMode.NONE, Params.empty(), settings)
237+
.execute(new IssueHandler(validator))
233238
);
234239
}
235240
}
236241

242+
private class IssueHandler implements QueryStream.PartsHandler {
243+
private final YdbValidator validator;
244+
245+
public IssueHandler(YdbValidator validator) {
246+
this.validator = validator;
247+
}
248+
249+
@Override
250+
public void onIssues(Issue[] issues) {
251+
validator.addStatusIssues(Arrays.asList(issues));
252+
}
253+
254+
@Override
255+
public void onNextPart(QueryResultPart part) {
256+
// nothing
257+
}
258+
}
259+
237260
@Override
238261
public boolean isValid(YdbValidator validator, int timeout) throws SQLException {
239262
ensureOpened();

0 commit comments

Comments
 (0)