diff --git a/hetu-docs/en/connector/HBase.md b/hetu-docs/en/connector/HBase.md index ff2b5c623..0876de8f4 100644 --- a/hetu-docs/en/connector/HBase.md +++ b/hetu-docs/en/connector/HBase.md @@ -141,7 +141,7 @@ HBase Connector supports two forms of table creation: 1. Create a table and directly link to a existing table in the HBase data source. -2. Create a new table that does not exist in the HBase data source. +2. Create a new table that does not exist in the HBase data source. We must specify 'external = false'. Below is an example of how to create a table `schemaName.tableName` and link it to an existing table named `hbaseNamespace:hbaseTable` : diff --git a/hetu-docs/zh/connector/HBase.md b/hetu-docs/zh/connector/HBase.md index 1d28b5b5e..1875c7774 100644 --- a/hetu-docs/zh/connector/HBase.md +++ b/hetu-docs/zh/connector/HBase.md @@ -132,7 +132,7 @@ HBase连接器支持两种建表形式: 1. 创建表并直接链接到HBase数据源中已存在的表。 -2. 创建HBase数据源中不存在的新表。 +2. 创建HBase数据源中不存在的新表。我们必须指定‘external = false’。 以下示例创建表`schemaName.tableName`并链接到一个名为`hbaseNamespace:hbaseTable`的现有表: diff --git a/hetu-hbase/src/main/java/io/hetu/core/plugin/hbase/connector/HBaseConnection.java b/hetu-hbase/src/main/java/io/hetu/core/plugin/hbase/connector/HBaseConnection.java index 0265b7c7d..c3fbd94cd 100644 --- a/hetu-hbase/src/main/java/io/hetu/core/plugin/hbase/connector/HBaseConnection.java +++ b/hetu-hbase/src/main/java/io/hetu/core/plugin/hbase/connector/HBaseConnection.java @@ -564,6 +564,12 @@ public class HBaseConnection } } else { + if (table.isExternal()) { + throw new PrestoException( + HBaseErrorCode.HBASE_CREATE_ERROR, + format("Use lk creating new HBase table [%s], we must specify 'with(external=false)'. ", table.getTable())); + } + // create namespace if not exist createNamespaceIfNotExist(this.getHbaseAdmin(), table.getSchema()); diff --git a/hetu-hbase/src/main/java/io/hetu/core/plugin/hbase/metadata/HBaseConnectorMetadata.java b/hetu-hbase/src/main/java/io/hetu/core/plugin/hbase/metadata/HBaseConnectorMetadata.java index ac38b3e15..156968fae 100644 --- a/hetu-hbase/src/main/java/io/hetu/core/plugin/hbase/metadata/HBaseConnectorMetadata.java +++ b/hetu-hbase/src/main/java/io/hetu/core/plugin/hbase/metadata/HBaseConnectorMetadata.java @@ -177,13 +177,13 @@ public class HBaseConnectorMetadata { checkNoRollback(); SchemaTableName tableName = tableMetadata.getTable(); - HBaseTable table = hbaseConn.createTable(tableMetadata); if (HBaseTableProperties.isExternal(tableMetadata.getProperties())) { throw new PrestoException( HBaseErrorCode.HBASE_CREATE_ERROR, format("Use lk creating new HBase table [%s], we must specify 'with(external=false)'. ", tableName.toString())); } + HBaseTable table = hbaseConn.createTable(tableMetadata); // support create table xxx as select * from yyy HBaseTableHandle handle = new HBaseTableHandle(