Jackie-Jiang commented on code in PR #9902:
URL: https://github.com/apache/pinot/pull/9902#discussion_r1038441723
##########
pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/Connection.java:
##########
@@ -165,7 +163,33 @@ public Future<ResultSetGroup> executeAsync(String query)
@Deprecated
public Future<ResultSetGroup> executeAsync(Request request)
throws PinotClientException {
- return executeAsync(request.getQuery());
+ return executeAsync(null, request.getQuery());
+ }
+
+ /**
+ * Executes a query asynchronously.
+ *
+ * @param query The query to execute
+ * @return A future containing the result of the query
+ * @throws PinotClientException If an exception occurs while processing the
query
+ */
+ public Future<ResultSetGroup> executeAsync(String tableName, String query)
+ throws PinotClientException {
+ tableName = tableName == null ? resolveTableName(query) : tableName;
+ String brokerHostPort = _brokerSelector.selectBroker(tableName);
+ if (brokerHostPort == null) {
+ throw new PinotClientException("Could not find broker to query for
statement: " + query);
+ }
+ return new
ResultSetGroupFuture(_transport.executeQueryAsync(brokerHostPort, query));
+ }
+
+ private static String resolveTableName(String query) {
Review Comment:
```suggestion
@Nullable
private static String resolveTableName(String query) {
```
##########
pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/Connection.java:
##########
@@ -165,7 +163,33 @@ public Future<ResultSetGroup> executeAsync(String query)
@Deprecated
public Future<ResultSetGroup> executeAsync(Request request)
throws PinotClientException {
- return executeAsync(request.getQuery());
+ return executeAsync(null, request.getQuery());
+ }
+
+ /**
+ * Executes a query asynchronously.
+ *
+ * @param query The query to execute
+ * @return A future containing the result of the query
+ * @throws PinotClientException If an exception occurs while processing the
query
+ */
+ public Future<ResultSetGroup> executeAsync(String tableName, String query)
Review Comment:
```suggestion
public Future<ResultSetGroup> executeAsync(@Nullable String tableName,
String query)
```
##########
pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/Connection.java:
##########
@@ -165,7 +163,33 @@ public Future<ResultSetGroup> executeAsync(String query)
@Deprecated
public Future<ResultSetGroup> executeAsync(Request request)
throws PinotClientException {
- return executeAsync(request.getQuery());
+ return executeAsync(null, request.getQuery());
+ }
+
+ /**
+ * Executes a query asynchronously.
+ *
+ * @param query The query to execute
+ * @return A future containing the result of the query
+ * @throws PinotClientException If an exception occurs while processing the
query
+ */
+ public Future<ResultSetGroup> executeAsync(String tableName, String query)
+ throws PinotClientException {
+ tableName = tableName == null ? resolveTableName(query) : tableName;
+ String brokerHostPort = _brokerSelector.selectBroker(tableName);
+ if (brokerHostPort == null) {
+ throw new PinotClientException("Could not find broker to query for
statement: " + query);
+ }
+ return new
ResultSetGroupFuture(_transport.executeQueryAsync(brokerHostPort, query));
+ }
+
+ private static String resolveTableName(String query) {
+ try {
+ return
CalciteSqlCompiler.compileToBrokerRequest(query).querySource.tableName;
+ } catch (Exception e) {
+ LOGGER.error("Cannot parse table name from query: " + query, e);
Review Comment:
```suggestion
LOGGER.error("Cannot parse table name from query: {}", query, e);
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]