Skip to content

Commit e40c1ed

Browse files
committed
Small refactoring
1 parent fc82d87 commit e40c1ed

15 files changed

+250
-267
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ protected Session createNewTableSession(YdbValidator validator) throws SQLExcept
4545
public void executeSchemeQuery(YdbContext ctx, YdbValidator validator, YdbQuery query) throws SQLException {
4646
// Scheme query does not affect transactions or result sets
4747
ExecuteSchemeQuerySettings settings = ctx.withDefaultTimeout(new ExecuteSchemeQuerySettings());
48-
final String yql = query.getYqlQuery(null);
48+
final String yql = query.withParams(null);
4949

5050
try (Session session = createNewTableSession(validator)) {
5151
validator.execute(QueryType.SCHEME_QUERY + " >>\n" + yql, () -> session.executeSchemeQuery(yql, settings));
@@ -57,7 +57,7 @@ public ResultSetReader executeScanQuery(YdbContext ctx, YdbValidator validator,
5757
throws SQLException {
5858
ensureOpened();
5959

60-
String yql = query.getYqlQuery(params);
60+
String yql = query.withParams(params);
6161
Collection<ResultSetReader> resultSets = new LinkedBlockingQueue<>();
6262
Duration scanQueryTimeout = ctx.getOperationProperties().getScanQueryTimeout();
6363
ExecuteScanQuerySettings settings = ExecuteScanQuerySettings.newBuilder()

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ public List<ResultSetReader> executeDataQuery(
201201
) throws SQLException {
202202
ensureOpened();
203203

204-
final String yql = query.getYqlQuery(params);
204+
final String yql = query.withParams(params);
205205
ExecuteQuerySettings.Builder builder = ExecuteQuerySettings.newBuilder();
206206
if (timeout > 0) {
207207
builder = builder.withRequestTimeout(timeout, TimeUnit.SECONDS);
@@ -234,7 +234,7 @@ public void executeSchemeQuery(YdbContext ctx, YdbValidator validator, YdbQuery
234234

235235
// Scheme query does not affect transactions or result sets
236236
ExecuteQuerySettings settings = ctx.withRequestTimeout(ExecuteQuerySettings.newBuilder()).build();
237-
final String yql = query.getYqlQuery(null);
237+
final String yql = query.withParams(null);
238238

239239
try (QuerySession session = createNewQuerySession(validator)) {
240240
validator.call(QueryType.SCHEME_QUERY + " >>\n" + yql, () -> session
@@ -253,7 +253,7 @@ public ExplainedQuery executeExplainQuery(YdbContext ctx, YdbValidator validator
253253
ExecuteQuerySettings settings = ctx.withRequestTimeout(ExecuteQuerySettings.newBuilder())
254254
.withExecMode(QueryExecMode.EXPLAIN)
255255
.build();
256-
final String yql = query.getYqlQuery(null);
256+
final String yql = query.withParams(null);
257257

258258
try (QuerySession session = createNewQuerySession(validator)) {
259259
QueryInfo res = validator.call(QueryType.EXPLAIN_QUERY + " >>\n" + yql, () -> session

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public ExplainedQuery executeExplainQuery(YdbContext ctx, YdbValidator validator
159159
throws SQLException {
160160
ensureOpened();
161161

162-
String yql = query.getYqlQuery(null);
162+
String yql = query.withParams(null);
163163
ExplainDataQuerySettings settings = ctx.withDefaultTimeout(new ExplainDataQuerySettings());
164164
try (Session session = createNewTableSession(validator)) {
165165
String msg = QueryType.EXPLAIN_QUERY + " >>\n" + yql;
@@ -174,7 +174,7 @@ public List<ResultSetReader> executeDataQuery(
174174
) throws SQLException {
175175
ensureOpened();
176176

177-
final String yql = query.getYqlQuery(params);
177+
final String yql = query.withParams(params);
178178
final Session session = tx.getSession(validator);
179179
try {
180180
DataQueryResult result = validator.call(

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

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@
2020
import tech.ydb.jdbc.YdbPrepareMode;
2121
import tech.ydb.jdbc.exception.ExceptionFactory;
2222
import tech.ydb.jdbc.query.JdbcParams;
23-
import tech.ydb.jdbc.query.JdbcQueryLexer;
2423
import tech.ydb.jdbc.query.YdbQuery;
25-
import tech.ydb.jdbc.query.YdbQueryBuilder;
2624
import tech.ydb.jdbc.query.params.BatchedParams;
2725
import tech.ydb.jdbc.query.params.InMemoryParams;
2826
import tech.ydb.jdbc.query.params.PreparedParams;
@@ -255,9 +253,7 @@ public <T extends BaseRequestSettings.BaseBuilder<T>> T withRequestTimeout(T bui
255253
}
256254

257255
public YdbQuery parseYdbQuery(String sql) throws SQLException {
258-
YdbQueryBuilder builder = new YdbQueryBuilder(sql, queryOptions.getForcedQueryType());
259-
JdbcQueryLexer.buildQuery(builder, queryOptions);
260-
return builder.build(queryOptions);
256+
return YdbQuery.parseQuery(sql, queryOptions);
261257
}
262258

263259
public YdbQuery findOrParseYdbQuery(String sql) throws SQLException {
@@ -275,22 +271,22 @@ public YdbQuery findOrParseYdbQuery(String sql) throws SQLException {
275271
}
276272

277273
public JdbcParams findOrCreateJdbcParams(YdbQuery query, YdbPrepareMode mode) throws SQLException {
278-
if (query.hasIndexesParameters()
274+
if (query.hasFreeParams()
279275
|| mode == YdbPrepareMode.IN_MEMORY
280276
|| !queryOptions.iPrepareDataQueries()) {
281-
return new InMemoryParams(query.getIndexesParameters());
277+
return new InMemoryParams(query.getFreeParams());
282278
}
283279

284-
String yql = query.getYqlQuery(null);
280+
String yql = query.withParams(null);
285281
PrepareDataQuerySettings settings = withDefaultTimeout(new PrepareDataQuerySettings());
286282
try {
287-
Map<String, Type> types = queryParamsCache.getIfPresent(query.originSQL());
283+
Map<String, Type> types = queryParamsCache.getIfPresent(query.getOriginSQL());
288284
if (types == null) {
289285
types = retryCtx.supplyResult(session -> session.prepareDataQuery(yql, settings))
290286
.join()
291287
.getValue()
292288
.types();
293-
queryParamsCache.put(query.originSQL(), types);
289+
queryParamsCache.put(query.getOriginSQL(), types);
294290
}
295291

296292
boolean requireBatch = mode == YdbPrepareMode.DATA_QUERY_BATCH;
@@ -301,7 +297,7 @@ public JdbcParams findOrCreateJdbcParams(YdbQuery query, YdbPrepareMode mode) th
301297
}
302298

303299
if (requireBatch) {
304-
throw new SQLDataException(YdbConst.STATEMENT_IS_NOT_A_BATCH + query.originSQL());
300+
throw new SQLDataException(YdbConst.STATEMENT_IS_NOT_A_BATCH + query.getOriginSQL());
305301
}
306302
}
307303
return new PreparedParams(types);

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import tech.ydb.jdbc.common.FixedResultSetFactory;
1919
import tech.ydb.jdbc.context.YdbValidator;
2020
import tech.ydb.jdbc.query.ExplainedQuery;
21-
import tech.ydb.jdbc.query.YdbExpression;
21+
import tech.ydb.jdbc.query.QueryExpression;
2222
import tech.ydb.jdbc.query.YdbQuery;
2323
import tech.ydb.jdbc.settings.YdbOperationProperties;
2424
import tech.ydb.table.query.Params;
@@ -200,12 +200,12 @@ protected List<YdbResult> executeDataQuery(YdbQuery query, Params params) throws
200200

201201
List<YdbResult> results = new ArrayList<>();
202202
int idx = 0;
203-
for (YdbExpression exp: query.getExpressions()) {
203+
for (QueryExpression exp: query.getExpressions()) {
204204
if (exp.isDDL()) {
205205
results.add(NO_UPDATED);
206206
continue;
207207
}
208-
if (!exp.isSelect()) {
208+
if (!exp.hasResults()) {
209209
results.add(HAS_UPDATED);
210210
continue;
211211
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public YdbPreparedStatement prepareStatement(String sql) throws SQLException {
7676
@Override
7777
public String nativeSQL(String sql) {
7878
try {
79-
return ctx.parseYdbQuery(sql).getYqlQuery(null);
79+
return ctx.parseYdbQuery(sql).withParams(null);
8080
} catch (SQLException ex) {
8181
return ex.getMessage();
8282
}
@@ -307,8 +307,8 @@ private YdbPreparedStatement prepareStatement(String sql, int resultSetType, Ydb
307307

308308
YdbQuery query = ctx.findOrParseYdbQuery(sql);
309309

310-
if (query.type() != QueryType.DATA_QUERY && query.type() != QueryType.SCAN_QUERY) {
311-
throw new SQLException(YdbConst.UNSUPPORTED_QUERY_TYPE_IN_PS + query.type());
310+
if (query.getType() != QueryType.DATA_QUERY && query.getType() != QueryType.SCAN_QUERY) {
311+
throw new SQLException(YdbConst.UNSUPPORTED_QUERY_TYPE_IN_PS + query.getType());
312312
}
313313

314314
JdbcParams params = ctx.findOrCreateJdbcParams(query, mode);

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public YdbPreparedStatementImpl(YdbConnection connection, YdbQuery query, JdbcPa
5555

5656
@Override
5757
public String getQuery() {
58-
return query.originSQL();
58+
return query.getOriginSQL();
5959
}
6060

6161
@Override
@@ -127,15 +127,15 @@ public boolean execute() throws SQLException {
127127
clearBatch();
128128

129129
List<YdbResult> newState = null;
130-
switch (query.type()) {
130+
switch (query.getType()) {
131131
case DATA_QUERY:
132132
newState = executeDataQuery(query, params.getCurrentParams());
133133
break;
134134
case SCAN_QUERY:
135135
newState = executeScanQuery(query, params.getCurrentParams());
136136
break;
137137
default:
138-
throw new IllegalStateException("Internal error. Unsupported query type " + query.type());
138+
throw new IllegalStateException("Internal error. Unsupported query type " + query.getType());
139139
}
140140
params.clearParameters();
141141

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public boolean execute(String sql) throws SQLException {
8181

8282
YdbQuery query = getConnection().getCtx().parseYdbQuery(sql);
8383
List<YdbResult> newState = null;
84-
switch (query.type()) {
84+
switch (query.getType()) {
8585
case SCHEME_QUERY:
8686
newState = executeSchemeQuery(query);
8787
break;
@@ -95,7 +95,7 @@ public boolean execute(String sql) throws SQLException {
9595
newState = executeExplainQuery(query);
9696
break;
9797
default:
98-
throw new IllegalStateException("Internal error. Unsupported query type " + query.type());
98+
throw new IllegalStateException("Internal error. Unsupported query type " + query.getType());
9999
}
100100

101101
return updateState(newState);

0 commit comments

Comments
 (0)