Skip to content

Commit 38a97ac

Browse files
committed
add getDesc test case
1 parent 61b48c2 commit 38a97ac

File tree

4 files changed

+45
-12
lines changed

4 files changed

+45
-12
lines changed

src/main/java/com/alipay/oceanbase/hbase/OHTableClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,8 @@ public HTableDescriptor getTableDescriptor() throws IOException {
223223

224224
@Override
225225
public TableDescriptor getDescriptor() throws IOException {
226-
return null;
226+
checkStatus();
227+
return ohTable.getDescriptor();
227228
}
228229

229230
@Override

src/main/java/com/alipay/oceanbase/hbase/util/OHAdmin.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,16 @@ public HTableDescriptor getTableDescriptor(TableName tableName) throws TableNotF
145145
if (e.getCause() instanceof ObTableTransportException
146146
&& ((ObTableTransportException) e.getCause()).getErrorCode() == TransportCodes.BOLT_TIMEOUT) {
147147
throw new TimeoutIOException(e.getCause());
148+
} else if (e.getCause().getMessage().contains("OB_TABLEGROUP_NOT_EXIST")) {
149+
throw new TableNotFoundException(tableName);
148150
} else {
149151
throw e;
150152
}
151153
}
152154
}
153155

154156
@Override
155-
public TableDescriptor getDescriptor(TableName tableName) throws TableNotFoundException, IOException {
157+
public TableDescriptor getDescriptor(TableName tableName) throws IOException {
156158
OHConnectionConfiguration connectionConf = new OHConnectionConfiguration(conf);
157159
ObTableClient tableClient = ObTableClientManager.getOrCreateObTableClientByTableName(tableName, connectionConf);
158160
OHTableDescriptorExecutor executor = new OHTableDescriptorExecutor(tableName.getNameAsString(), tableClient);
@@ -162,6 +164,8 @@ public TableDescriptor getDescriptor(TableName tableName) throws TableNotFoundEx
162164
if (e.getCause() instanceof ObTableTransportException
163165
&& ((ObTableTransportException) e.getCause()).getErrorCode() == TransportCodes.BOLT_TIMEOUT) {
164166
throw new TimeoutIOException(e.getCause());
167+
} else if (e.getCause().getMessage().contains("OB_TABLEGROUP_NOT_EXIST")) {
168+
throw new TableNotFoundException(tableName);
165169
} else {
166170
throw e;
167171
}

src/test/java/com/alipay/oceanbase/hbase/OHTableClientTest.java

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
import com.alipay.oceanbase.hbase.util.ObHTableTestUtil;
2121
import org.apache.hadoop.hbase.HTableDescriptor;
22+
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
23+
import org.apache.hadoop.hbase.client.TableDescriptor;
2224
import org.junit.*;
2325

2426
import java.util.LinkedList;
@@ -77,7 +79,9 @@ public void testNew() throws Exception {
7779
`T` bigint(20) NOT NULL,
7880
`V` varbinary(1024) DEFAULT NULL,
7981
PRIMARY KEY (`K`, `Q`, `T`)
80-
) TABLEGROUP = test_desc PARTITION BY RANGE COLUMNS(K) (
82+
) TABLEGROUP = test_desc
83+
KV_ATTRIBUTES ='{"Hbase": {"TimeToLive": 3600, "MaxVersions": 3}}'
84+
PARTITION BY RANGE COLUMNS(K) (
8185
PARTITION p1 VALUES LESS THAN ('c'),
8286
PARTITION p2 VALUES LESS THAN ('e'),
8387
PARTITION p3 VALUES LESS THAN ('g'),
@@ -96,7 +100,9 @@ PARTITION p10 VALUES LESS THAN (MAXVALUE)
96100
`T` bigint(20) NOT NULL,
97101
`V` varbinary(1024) DEFAULT NULL,
98102
PRIMARY KEY (`K`, `Q`, `T`)
99-
) TABLEGROUP = test_desc PARTITION BY RANGE COLUMNS(K) (
103+
) TABLEGROUP = test_desc
104+
KV_ATTRIBUTES ='{"Hbase": {"TimeToLive": 7200, "MaxVersions": 3}}'
105+
PARTITION BY RANGE COLUMNS(K) (
100106
PARTITION p1 VALUES LESS THAN ('c'),
101107
PARTITION p2 VALUES LESS THAN ('e'),
102108
PARTITION p3 VALUES LESS THAN ('g'),
@@ -116,11 +122,30 @@ public void testGetTableDescriptor() throws Exception {
116122
OHTableClient hTable2 = ObHTableTestUtil.newOHTableClient(tableNameStr);
117123
hTable2.init();
118124
try {
119-
HTableDescriptor descriptor = hTable2.getTableDescriptor();
120-
Assert.assertNotNull(descriptor);
121-
Assert.assertTrue(descriptor.hasFamily("family1".getBytes()));
122-
Assert.assertTrue(descriptor.hasFamily("family2".getBytes()));
123-
Assert.assertFalse(descriptor.hasFamily("family".getBytes()));
125+
{
126+
HTableDescriptor descriptor1 = hTable2.getTableDescriptor();
127+
Assert.assertNotNull(descriptor1);
128+
Assert.assertEquals(2, descriptor1.getColumnFamilyCount());
129+
Assert.assertTrue(descriptor1.hasFamily("family1".getBytes()));
130+
Assert.assertTrue(descriptor1.hasFamily("family2".getBytes()));
131+
Assert.assertFalse(descriptor1.hasFamily("family".getBytes()));
132+
ColumnFamilyDescriptor family1 = descriptor1.getColumnFamily("family1".getBytes());
133+
ColumnFamilyDescriptor family2 = descriptor1.getColumnFamily("family2".getBytes());
134+
Assert.assertEquals(3600, family1.getTimeToLive());
135+
Assert.assertEquals(7200, family2.getTimeToLive());
136+
}
137+
{
138+
TableDescriptor descriptor2 = hTable2.getDescriptor();
139+
Assert.assertNotNull(descriptor2);
140+
Assert.assertEquals(2, descriptor2.getColumnFamilyCount());
141+
Assert.assertTrue(descriptor2.hasColumnFamily("family1".getBytes()));
142+
Assert.assertTrue(descriptor2.hasColumnFamily("family2".getBytes()));
143+
Assert.assertFalse(descriptor2.hasColumnFamily("family".getBytes()));
144+
ColumnFamilyDescriptor family1 = descriptor2.getColumnFamily("family1".getBytes());
145+
ColumnFamilyDescriptor family2 = descriptor2.getColumnFamily("family2".getBytes());
146+
Assert.assertEquals(3600, family1.getTimeToLive());
147+
Assert.assertEquals(7200, family2.getTimeToLive());
148+
}
124149
} finally {
125150
hTable2.close();
126151
}

src/test/java/unit_test_db.sql

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,14 +298,15 @@ CREATE TABLE `test_region_locator$family_region_locator` (
298298
);
299299

300300
CREATE TABLEGROUP test_desc SHARDING = 'ADAPTIVE';
301-
302301
CREATE TABLE `test_desc$family1` (
303302
`K` varbinary(1024) NOT NULL,
304303
`Q` varbinary(256) NOT NULL,
305304
`T` bigint(20) NOT NULL,
306305
`V` varbinary(1024) DEFAULT NULL,
307306
PRIMARY KEY (`K`, `Q`, `T`)
308-
) TABLEGROUP = test_desc PARTITION BY RANGE COLUMNS(K) (
307+
) TABLEGROUP = test_desc
308+
KV_ATTRIBUTES ='{"Hbase": {"TimeToLive": 3600, "MaxVersions": 3}}'
309+
PARTITION BY RANGE COLUMNS(K) (
309310
PARTITION p1 VALUES LESS THAN ('c'),
310311
PARTITION p2 VALUES LESS THAN ('e'),
311312
PARTITION p3 VALUES LESS THAN ('g'),
@@ -324,7 +325,9 @@ CREATE TABLE `test_desc$family2` (
324325
`T` bigint(20) NOT NULL,
325326
`V` varbinary(1024) DEFAULT NULL,
326327
PRIMARY KEY (`K`, `Q`, `T`)
327-
) TABLEGROUP = test_desc PARTITION BY RANGE COLUMNS(K) (
328+
) TABLEGROUP = test_desc
329+
KV_ATTRIBUTES ='{"Hbase": {"TimeToLive": 7200, "MaxVersions": 3}}'
330+
PARTITION BY RANGE COLUMNS(K) (
328331
PARTITION p1 VALUES LESS THAN ('c'),
329332
PARTITION p2 VALUES LESS THAN ('e'),
330333
PARTITION p3 VALUES LESS THAN ('g'),

0 commit comments

Comments
 (0)