This is an automated email from the ASF dual-hosted git repository.
yx9o pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 4089b1cb97e Replace IOException to SQLException in HBase module
(#30873)
4089b1cb97e is described below
commit 4089b1cb97e8be5d2e2320727b2ceafbc4b010e2
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Apr 12 23:54:10 2024 +0800
Replace IOException to SQLException in HBase module (#30873)
* Replace IOException to SQLException in HBase module
* Replace IOException to SQLException in HBase module
* Replace IOException to SQLException in HBase module
* Remove duplicate dependencies
---
agent/plugins/tracing/type/opentelemetry/pom.xml | 5 -----
.../hbase/connector/HBaseConnectionFactory.java | 9 +++++----
.../proxy/backend/hbase/context/HBaseContext.java | 17 +++++++++--------
.../hbase/context/HBaseMetaDataRefresher.java | 4 ++--
.../proxy/backend/hbase/executor/HBaseExecutor.java | 21 +++++++++++----------
.../hbase/handler/HBaseBackendQueryHandler.java | 9 ++-------
.../hbase/result/query/HBaseDescribeResultSet.java | 9 ++-------
.../hbase/result/query/HBaseGetResultSet.java | 9 +++++----
.../hbase/result/query/HBaseListResultSet.java | 11 +++--------
.../hbase/result/query/HBaseQueryResultSet.java | 6 +++---
.../result/update/HBaseRegionReloadUpdater.java | 4 ++--
.../query/AbstractHBaseQueryResultSetTest.java | 5 +++--
.../result/query/HBaseDescribeResultSetTest.java | 5 +++--
.../hbase/result/query/HBaseListResultSetTest.java | 8 ++++----
14 files changed, 54 insertions(+), 68 deletions(-)
diff --git a/agent/plugins/tracing/type/opentelemetry/pom.xml
b/agent/plugins/tracing/type/opentelemetry/pom.xml
index c05934df860..78ba3b59502 100644
--- a/agent/plugins/tracing/type/opentelemetry/pom.xml
+++ b/agent/plugins/tracing/type/opentelemetry/pom.xml
@@ -55,11 +55,6 @@
<artifactId>okhttp</artifactId>
<version>${okhttp.version}</version>
</dependency>
- <dependency>
- <groupId>org.jetbrains.kotlin</groupId>
- <artifactId>kotlin-stdlib-jdk8</artifactId>
- <version>${kotlin-stdlib.version}</version>
- </dependency>
</dependencies>
</dependencyManagement>
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/connector/HBaseConnectionFactory.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/connector/HBaseConnectionFactory.java
index f747a844172..2b0703cc4d8 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/connector/HBaseConnectionFactory.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/connector/HBaseConnectionFactory.java
@@ -28,9 +28,9 @@ import org.apache.hadoop.hbase.security.User;
import org.apache.hadoop.security.UserGroupInformation;
import
org.apache.shardingsphere.proxy.backend.hbase.config.YamlHBaseConfiguration;
import org.apache.shardingsphere.proxy.backend.hbase.config.YamlHBaseParameter;
-import
org.apache.shardingsphere.proxy.backend.hbase.exception.HBaseOperationException;
import java.io.IOException;
+import java.sql.SQLException;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
@@ -46,8 +46,9 @@ public final class HBaseConnectionFactory {
*
* @param yamlProxyHBaseConfig YAML HBase configuration
* @return A connection for per HBase cluster
+ * @throws SQLException SQL exception
*/
- public static Map<String, Connection> createHBaseConnections(final
YamlHBaseConfiguration yamlProxyHBaseConfig) {
+ public static Map<String, Connection> createHBaseConnections(final
YamlHBaseConfiguration yamlProxyHBaseConfig) throws SQLException {
Map<String, Connection> result = new
LinkedHashMap<>(yamlProxyHBaseConfig.getDataSources().size(), 1F);
for (Entry<String, YamlHBaseParameter> entry :
yamlProxyHBaseConfig.getDataSources().entrySet()) {
result.put(entry.getKey(), createConnection(entry.getValue()));
@@ -55,14 +56,14 @@ public final class HBaseConnectionFactory {
return result;
}
- private static Connection createConnection(final YamlHBaseParameter
parameter) {
+ private static Connection createConnection(final YamlHBaseParameter
parameter) throws SQLException {
Configuration config = createConfiguration(parameter);
try {
return Strings.isNullOrEmpty(parameter.getAccessUser())
? ConnectionFactory.createConnection(config)
: ConnectionFactory.createConnection(config,
User.create(UserGroupInformation.createRemoteUser(parameter.getAccessUser())));
} catch (final IOException ex) {
- throw new HBaseOperationException(ex.getMessage());
+ throw new SQLException(ex);
}
}
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/context/HBaseContext.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/context/HBaseContext.java
index f320f73a333..d8804c6a388 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/context/HBaseContext.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/context/HBaseContext.java
@@ -25,6 +25,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
+import
org.apache.shardingsphere.infra.exception.kernel.metadata.TableNotFoundException;
import org.apache.shardingsphere.proxy.backend.hbase.bean.HBaseCluster;
import
org.apache.shardingsphere.proxy.backend.hbase.executor.HBaseBackgroundExecutorManager;
import org.apache.shardingsphere.proxy.backend.hbase.executor.HBaseExecutor;
@@ -34,6 +35,7 @@ import
org.apache.shardingsphere.proxy.backend.hbase.props.HBasePropertyKey;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import java.io.IOException;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -81,9 +83,9 @@ public final class HBaseContext implements AutoCloseable {
* Initialize HBase context.
*
* @param connections A connection for per HBase cluster
- * @throws IOException IO exception
+ * @throws SQLException SQL exception
*/
- public void init(final Map<String, Connection> connections) throws
IOException {
+ public void init(final Map<String, Connection> connections) throws
SQLException {
this.connections = new ArrayList<>(connections.size());
warmUpContext = HBaseRegionWarmUpContext.getInstance();
warmUpContext.init(getWarmUpThreadSize());
@@ -110,9 +112,9 @@ public final class HBaseContext implements AutoCloseable {
* Load tables.
*
* @param hbaseCluster HBase cluster
- * @throws IOException IO exception
+ * @throws SQLException SQL exception
*/
- public synchronized void loadTables(final HBaseCluster hbaseCluster)
throws IOException {
+ public synchronized void loadTables(final HBaseCluster hbaseCluster)
throws SQLException {
warmUpContext.initStatisticsInfo(System.currentTimeMillis());
HTableDescriptor[] hTableDescriptor =
HBaseExecutor.executeAdmin(hbaseCluster.getConnection(), Admin::listTables);
for (String each :
Arrays.stream(hTableDescriptor).map(HTableDescriptor::getNameAsString).collect(Collectors.toList()))
{
@@ -137,7 +139,7 @@ public final class HBaseContext implements AutoCloseable {
* @return HBase connection
*/
public Connection getConnection(final String tableName) {
-
ShardingSpherePreconditions.checkState(tableConnectionMap.containsKey(tableName),
() -> new HBaseOperationException(String.format("Table `%s` is not exists",
tableName)));
+
ShardingSpherePreconditions.checkState(tableConnectionMap.containsKey(tableName),
() -> new TableNotFoundException(tableName));
return tableConnectionMap.get(tableName).getConnection();
}
@@ -164,7 +166,7 @@ public final class HBaseContext implements AutoCloseable {
}
@Override
- public void close() {
+ public void close() throws SQLException {
connections.clear();
tableConnectionMap.clear();
executorManager.close();
@@ -172,8 +174,7 @@ public final class HBaseContext implements AutoCloseable {
try {
connection.close();
} catch (final IOException ex) {
- // TODO define new exception, do not use RuntimeException
- throw new RuntimeException(ex);
+ throw new SQLException(ex);
}
}
}
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/context/HBaseMetaDataRefresher.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/context/HBaseMetaDataRefresher.java
index df55ca1795d..c32549396cb 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/context/HBaseMetaDataRefresher.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/context/HBaseMetaDataRefresher.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.proxy.backend.hbase.context;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.proxy.backend.hbase.bean.HBaseCluster;
-import java.io.IOException;
+import java.sql.SQLException;
/**
* HBase meta data refresher.
@@ -35,7 +35,7 @@ public final class HBaseMetaDataRefresher implements Runnable
{
for (HBaseCluster hBaseCluster : context.getConnections()) {
try {
context.loadTables(hBaseCluster);
- } catch (final IOException ignored) {
+ } catch (final SQLException ignored) {
}
}
}
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/executor/HBaseExecutor.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/executor/HBaseExecutor.java
index d540e06ede4..33a56f4448b 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/executor/HBaseExecutor.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/executor/HBaseExecutor.java
@@ -24,7 +24,6 @@ import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Table;
import org.apache.shardingsphere.proxy.backend.hbase.context.HBaseContext;
-import
org.apache.shardingsphere.proxy.backend.hbase.exception.HBaseOperationException;
import org.apache.shardingsphere.proxy.backend.hbase.result.HBaseAdminCallback;
import org.apache.shardingsphere.proxy.backend.hbase.result.HBaseQueryCallback;
import
org.apache.shardingsphere.proxy.backend.hbase.result.HBaseUpdateCallback;
@@ -55,11 +54,11 @@ public final class HBaseExecutor {
}
}
- private static void executeUpdate(final Table table, final
HBaseUpdateCallback operation) {
+ private static void executeUpdate(final Table table, final
HBaseUpdateCallback operation) throws SQLException {
try {
operation.executeInHBase(table);
} catch (final IOException ex) {
- throw new HBaseOperationException(ex.getMessage());
+ throw new SQLException(ex);
}
}
@@ -70,22 +69,22 @@ public final class HBaseExecutor {
* @param operation operation
* @param <T> type of result
* @return query result
- * @throws HBaseOperationException HBase operation exception
+ * @throws SQLException SQL exception
*/
- public static <T> T executeQuery(final String tableName, final
HBaseQueryCallback<T> operation) {
+ public static <T> T executeQuery(final String tableName, final
HBaseQueryCallback<T> operation) throws SQLException {
TableName backendTableName = TableName.valueOf(tableName);
try (Table table =
HBaseContext.getInstance().getConnection(tableName).getTable(backendTableName))
{
return executeQuery(table, operation);
} catch (final IOException ex) {
- throw new HBaseOperationException(ex.getMessage());
+ throw new SQLException(ex);
}
}
- private static <T> T executeQuery(final Table table, final
HBaseQueryCallback<T> operation) {
+ private static <T> T executeQuery(final Table table, final
HBaseQueryCallback<T> operation) throws SQLException {
try {
return operation.executeInHBase(table);
} catch (final IOException ex) {
- throw new HBaseOperationException(ex.getMessage());
+ throw new SQLException(ex);
}
}
@@ -96,11 +95,13 @@ public final class HBaseExecutor {
* @param operation operation
* @param <T> type of result
* @return admin result
- * @throws IOException IO exception
+ * @throws SQLException SQL exception
*/
- public static <T> T executeAdmin(final Connection connection, final
HBaseAdminCallback<T> operation) throws IOException {
+ public static <T> T executeAdmin(final Connection connection, final
HBaseAdminCallback<T> operation) throws SQLException {
try (Admin admin = connection.getAdmin()) {
return operation.executeInHBase(admin);
+ } catch (final IOException ex) {
+ throw new SQLException(ex);
}
}
}
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendQueryHandler.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendQueryHandler.java
index 54fcead27f1..f3b699031c1 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendQueryHandler.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/handler/HBaseBackendQueryHandler.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.proxy.backend.hbase.handler;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.binder.engine.SQLBindEngine;
import org.apache.shardingsphere.infra.hint.HintValueContext;
import
org.apache.shardingsphere.proxy.backend.hbase.result.HBaseBackendHandler;
import
org.apache.shardingsphere.proxy.backend.hbase.result.query.HBaseQueryResultSet;
@@ -28,7 +28,6 @@ import
org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader
import
org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import java.io.IOException;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Collection;
@@ -49,11 +48,7 @@ public final class HBaseBackendQueryHandler implements
HBaseBackendHandler {
@Override
public ResponseHeader execute() throws SQLException {
SQLStatementContext sqlStatementContext = new SQLBindEngine(null, "",
new HintValueContext()).bind(sqlStatement, Collections.emptyList());
- try {
- resultSet.init(sqlStatementContext);
- } catch (final IOException ex) {
- throw new SQLException(ex);
- }
+ resultSet.init(sqlStatementContext);
List<QueryHeader> queryHeaders =
resultSet.getColumnNames().stream().map(each -> new QueryHeader("", "", each,
each, Types.CHAR, "CHAR", 255, 0, false, false, false, false))
.collect(Collectors.toList());
return new QueryResponseHeader(queryHeaders);
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseDescribeResultSet.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseDescribeResultSet.java
index eb318e8fe87..eaa37c52897 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseDescribeResultSet.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseDescribeResultSet.java
@@ -26,7 +26,7 @@ import
org.apache.shardingsphere.proxy.backend.hbase.context.HBaseContext;
import org.apache.shardingsphere.proxy.backend.hbase.executor.HBaseExecutor;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowCreateTableStatement;
-import java.io.IOException;
+import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -40,13 +40,8 @@ public final class HBaseDescribeResultSet implements
HBaseQueryResultSet {
private Iterator<HTableDescriptor> iterator;
- /**
- * Init data.
- *
- * @param sqlStatementContext SQL statement context
- */
@Override
- public void init(final SQLStatementContext sqlStatementContext) throws
IOException {
+ public void init(final SQLStatementContext sqlStatementContext) throws
SQLException {
ShowCreateTableStatementContext statementContext =
(ShowCreateTableStatementContext) sqlStatementContext;
String tableName =
statementContext.getTablesContext().getTableNames().iterator().next();
boolean isExists =
HBaseExecutor.executeAdmin(HBaseContext.getInstance().getConnection(tableName),
admin -> admin.tableExists(TableName.valueOf(tableName)));
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseGetResultSet.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseGetResultSet.java
index 025d84e734a..0a4062b52ea 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseGetResultSet.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseGetResultSet.java
@@ -45,6 +45,7 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.Sim
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLSelectStatement;
import java.nio.charset.StandardCharsets;
+import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -86,7 +87,7 @@ public final class HBaseGetResultSet implements
HBaseQueryResultSet {
* @param sqlStatementContext SQL statement context
*/
@Override
- public void init(final SQLStatementContext sqlStatementContext) {
+ public void init(final SQLStatementContext sqlStatementContext) throws
SQLException {
statementContext = (SelectStatementContext) sqlStatementContext;
initResultNum(sqlStatementContext);
HBaseOperation operation =
HBaseOperationConverterFactory.newInstance(sqlStatementContext).convert();
@@ -108,14 +109,14 @@ public final class HBaseGetResultSet implements
HBaseQueryResultSet {
paginationSegment.ifPresent(optional -> maxLimitResultSize =
Math.min(maxLimitResultSize, ((NumberLiteralLimitValueSegment)
optional).getValue()));
}
- private void executeGetRequest(final HBaseOperation operation) {
+ private void executeGetRequest(final HBaseOperation operation) throws
SQLException {
Result result = HBaseExecutor.executeQuery(operation.getTableName(),
table -> table.get((Get) operation.getOperation()));
Collection<Result> rows = 0 == result.rawCells().length ?
Collections.emptyList() : Collections.singleton(result);
this.rows = rows.iterator();
setColumnNames(this.rows);
}
- private void executeGetsRequest(final HBaseOperation operation) {
+ private void executeGetsRequest(final HBaseOperation operation) throws
SQLException {
List<Result> results =
Arrays.asList(HBaseExecutor.executeQuery(operation.getTableName(), table ->
table.get(((HBaseSelectOperation) operation.getOperation()).getGets())));
results = results.stream().filter(result -> result.rawCells().length >
0).collect(Collectors.toList());
if (statementContext.getOrderByContext().isGenerated()) {
@@ -129,7 +130,7 @@ public final class HBaseGetResultSet implements
HBaseQueryResultSet {
return
Bytes.toString(result1.getRow()).compareTo(Bytes.toString(result2.getRow()));
}
- private void executeScanRequest(final HBaseOperation hbaseOperation) {
+ private void executeScanRequest(final HBaseOperation hbaseOperation)
throws SQLException {
Scan scan = (Scan) hbaseOperation.getOperation();
scan.setLimit((int) maxLimitResultSize);
ResultScanner resultScanner =
HBaseExecutor.executeQuery(hbaseOperation.getTableName(), table ->
table.getScanner(scan));
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseListResultSet.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseListResultSet.java
index 1d6c379f24a..c830071f987 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseListResultSet.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseListResultSet.java
@@ -26,7 +26,7 @@ import
org.apache.shardingsphere.proxy.backend.hbase.context.HBaseContext;
import org.apache.shardingsphere.proxy.backend.hbase.executor.HBaseExecutor;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTablesStatement;
-import java.io.IOException;
+import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
@@ -41,13 +41,8 @@ public final class HBaseListResultSet implements
HBaseQueryResultSet {
private Iterator<Entry<String, String>> iterator;
- /**
- * Init data.
- *
- * @param sqlStatementContext SQL statement context
- */
@Override
- public void init(final SQLStatementContext sqlStatementContext) throws
IOException {
+ public void init(final SQLStatementContext sqlStatementContext) throws
SQLException {
ShowTablesStatementContext context = (ShowTablesStatementContext)
sqlStatementContext;
Map<String, String> result;
if (context.getSqlStatement().getFromSchema().isPresent()) {
@@ -59,7 +54,7 @@ public final class HBaseListResultSet implements
HBaseQueryResultSet {
iterator = result.entrySet().iterator();
}
- private Map<String, String> listTablesInHBaseByFromSchema(final String
clusterName) throws IOException {
+ private Map<String, String> listTablesInHBaseByFromSchema(final String
clusterName) throws SQLException {
HTableDescriptor[] tables =
HBaseExecutor.executeAdmin(HBaseContext.getInstance().getConnectionByClusterName(clusterName),
Admin::listTables);
Map<String, String> result = new HashMap<>(tables.length);
for (HTableDescriptor tableDescriptor : tables) {
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseQueryResultSet.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseQueryResultSet.java
index 4eb8c914c24..d1f6406aaa1 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseQueryResultSet.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseQueryResultSet.java
@@ -21,7 +21,7 @@ import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementCont
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import java.io.IOException;
+import java.sql.SQLException;
import java.util.Collection;
/**
@@ -33,9 +33,9 @@ public interface HBaseQueryResultSet extends TypedSPI {
* Initialize data.
*
* @param sqlStatementContext SQL statement context
- * @throws IOException IO exception
+ * @throws SQLException SQL exception
*/
- void init(SQLStatementContext sqlStatementContext) throws IOException;
+ void init(SQLStatementContext sqlStatementContext) throws SQLException;
/**
* Get result set column names.
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/update/HBaseRegionReloadUpdater.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/update/HBaseRegionReloadUpdater.java
index 5cc39f7433f..aef07677158 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/update/HBaseRegionReloadUpdater.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/result/update/HBaseRegionReloadUpdater.java
@@ -18,11 +18,11 @@
package org.apache.shardingsphere.proxy.backend.hbase.result.update;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import
org.apache.shardingsphere.infra.exception.kernel.metadata.TableNotFoundException;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.update.UpdateResult;
import org.apache.shardingsphere.proxy.backend.hbase.bean.HBaseOperation;
import org.apache.shardingsphere.proxy.backend.hbase.context.HBaseContext;
import
org.apache.shardingsphere.proxy.backend.hbase.context.HBaseRegionWarmUpContext;
-import
org.apache.shardingsphere.proxy.backend.hbase.exception.HBaseOperationException;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLFlushStatement;
import java.util.Arrays;
@@ -49,7 +49,7 @@ public final class HBaseRegionReloadUpdater implements
HBaseUpdater {
}
private void checkTableExists(final String tableName) {
-
ShardingSpherePreconditions.checkState(HBaseContext.getInstance().isTableExists(tableName),
() -> new HBaseOperationException(String.format("Table `%s` is not exists",
tableName)));
+
ShardingSpherePreconditions.checkState(HBaseContext.getInstance().isTableExists(tableName),
() -> new TableNotFoundException(tableName));
}
private boolean isNotNullTableName(final String tableName) {
diff --git
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/AbstractHBaseQueryResultSetTest.java
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/AbstractHBaseQueryResultSetTest.java
index 42a4271e919..655c129efc6 100644
---
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/AbstractHBaseQueryResultSetTest.java
+++
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/AbstractHBaseQueryResultSetTest.java
@@ -38,6 +38,7 @@ import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
import java.io.IOException;
+import java.sql.SQLException;
import java.util.Collections;
import java.util.Properties;
@@ -55,7 +56,7 @@ abstract class AbstractHBaseQueryResultSetTest {
private Admin admin;
@BeforeEach
- void setUp() throws IOException {
+ void setUp() throws IOException, SQLException {
Properties props = PropertiesBuilder.build(new
Property(HBasePropertyKey.WARM_UP_THREAD_NUM.getKey(), String.valueOf(1)));
HBaseContext.getInstance().setProps(new HBaseProperties(props));
HTableDescriptor[] tableDescriptors = createHTableDescriptors();
@@ -84,7 +85,7 @@ abstract class AbstractHBaseQueryResultSetTest {
}
@AfterEach
- void tearDown() {
+ void tearDown() throws SQLException {
HBaseContext.getInstance().close();
}
}
diff --git
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseDescribeResultSetTest.java
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseDescribeResultSetTest.java
index 1f28feb8a02..49e77f73b7f 100644
---
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseDescribeResultSetTest.java
+++
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseDescribeResultSetTest.java
@@ -23,6 +23,7 @@ import
org.apache.shardingsphere.proxy.backend.hbase.result.HBaseSupportedSQLSta
import org.junit.jupiter.api.Test;
import java.io.IOException;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@@ -37,7 +38,7 @@ import static org.mockito.Mockito.when;
class HBaseDescribeResultSetTest extends AbstractHBaseQueryResultSetTest {
@Test
- void assertGetRowData() throws IOException {
+ void assertGetRowData() throws SQLException {
HBaseQueryResultSet resultSet = new HBaseDescribeResultSet();
ShowCreateTableStatementContext context =
mock(ShowCreateTableStatementContext.class);
when(context.getTablesContext()).thenReturn(mock(TablesContext.class,
RETURNS_DEEP_STUBS));
@@ -66,6 +67,6 @@ class HBaseDescribeResultSetTest extends
AbstractHBaseQueryResultSetTest {
ShowCreateTableStatementContext context =
mock(ShowCreateTableStatementContext.class);
when(context.getTablesContext()).thenReturn(mock(TablesContext.class,
RETURNS_DEEP_STUBS));
when(context.getTablesContext().getTableNames().iterator().next()).thenReturn(HBaseSupportedSQLStatement.HBASE_DATABASE_TABLE_NAME);
- assertThrows(IOException.class, () -> new
HBaseDescribeResultSet().init(context));
+ assertThrows(SQLException.class, () -> new
HBaseDescribeResultSet().init(context));
}
}
diff --git
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseListResultSetTest.java
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseListResultSetTest.java
index 6feea50dfcf..b42a16098bf 100644
---
a/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseListResultSetTest.java
+++
b/proxy/backend/type/hbase/src/test/java/org/apache/shardingsphere/proxy/backend/hbase/result/query/HBaseListResultSetTest.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTablesStatement;
import org.junit.jupiter.api.Test;
-import java.io.IOException;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@@ -38,7 +38,7 @@ import static org.mockito.Mockito.when;
class HBaseListResultSetTest extends AbstractHBaseQueryResultSetTest {
@Test
- void assertGetRowData() throws IOException {
+ void assertGetRowData() throws SQLException {
SQLStatement sqlStatement =
HBaseSupportedSQLStatement.parseSQLStatement(HBaseSupportedSQLStatement.getShowTablesStatement());
HBaseQueryResultSet resultSet = new HBaseListResultSet();
ShowTablesStatementContext context =
mock(ShowTablesStatementContext.class);
@@ -52,7 +52,7 @@ class HBaseListResultSetTest extends
AbstractHBaseQueryResultSetTest {
}
@Test
- void assertGetRowDataFromRemoteHBaseCluster() throws IOException {
+ void assertGetRowDataFromRemoteHBaseCluster() throws SQLException {
SQLStatement sqlStatement =
HBaseSupportedSQLStatement.parseSQLStatement("show /*+ hbase */ tables from
cluster_lj");
HBaseQueryResultSet resultSet = new HBaseListResultSet();
ShowTablesStatementContext context =
mock(ShowTablesStatementContext.class);
@@ -67,7 +67,7 @@ class HBaseListResultSetTest extends
AbstractHBaseQueryResultSetTest {
}
@Test
- void assertGetRowDataByLike() throws IOException {
+ void assertGetRowDataByLike() throws SQLException {
SQLStatement sqlStatement =
HBaseSupportedSQLStatement.parseSQLStatement("show /*+ hbase */ tables like
't_test' ");
HBaseQueryResultSet resultSet = new HBaseListResultSet();
ShowTablesStatementContext context =
mock(ShowTablesStatementContext.class);