65
65
import org .apache .hadoop .hbase .util .VersionInfo ;
66
66
import org .slf4j .Logger ;
67
67
68
+ import javax .swing .plaf .synth .Region ;
68
69
import java .io .ByteArrayOutputStream ;
69
70
import java .io .IOException ;
70
71
import java .util .*;
@@ -193,7 +194,23 @@ public class OHTable implements Table {
193
194
*/
194
195
private final Configuration configuration ;
195
196
197
+ <<<<<<< HEAD
196
198
private int scannerTimeout ;
199
+ =======
200
+ private int scannerTimeout ;
201
+
202
+ /**
203
+ * the bufferedMutator to execute Puts
204
+ */
205
+ private OHBufferedMutatorImpl mutator ;
206
+
207
+ private RegionLocator regionLocator ;
208
+
209
+ /**
210
+ * flag for whether closed
211
+ */
212
+ private boolean isClosed = false ;
213
+ >>>>>>> 161 a7ce (fix delete family version result error )
197
214
198
215
/**
199
216
* Creates an object to access a HBase table.
@@ -2082,7 +2099,7 @@ private QueryAndMutate buildDeleteQueryAndMutate(KeyValue kv,
2082
2099
if (!isTableGroup ) {
2083
2100
filter = buildObHTableFilter (null , null , Integer .MAX_VALUE );
2084
2101
} else {
2085
- filter = buildObHTableFilter (null , null , Integer .MAX_VALUE );
2102
+ filter = buildObHTableFilter (null , null , Integer .MAX_VALUE , kv . getQualifier () );
2086
2103
}
2087
2104
} else {
2088
2105
range .setStartKey (ObRowKey .getInstance (CellUtil .cloneRow (kv ), ObObj .getMin (),
@@ -2104,20 +2121,31 @@ private QueryAndMutate buildDeleteQueryAndMutate(KeyValue kv,
2104
2121
ObObj .getMin ()));
2105
2122
range .setEndKey (ObRowKey .getInstance (CellUtil .cloneRow (kv ), ObObj .getMax (),
2106
2123
ObObj .getMax ()));
2107
- filter = buildObHTableFilter (null , null , Integer .MAX_VALUE );
2124
+ // [MAX_VALUE, MAX_VALUE), delete nothing
2125
+ filter = buildObHTableFilter (null , new TimeRange (Long .MAX_VALUE ), Integer .MAX_VALUE );
2108
2126
} else {
2127
+ <<<<<<< HEAD
2109
2128
range .setStartKey (ObRowKey .getInstance (CellUtil .cloneRow (kv ), ObObj .getMin (),
2129
+ =======
2130
+ TimeRange timeRange = new TimeRange (kv .getTimestamp (), kv .getTimestamp () + 1 );
2131
+ range .setStartKey (ObRowKey .getInstance (kv .getRow (), ObObj .getMin (),
2132
+ >>>>>>> 161 a7ce (fix delete family version result error )
2110
2133
ObObj .getMin ()));
2111
2134
range .setEndKey (ObRowKey .getInstance (CellUtil .cloneRow (kv ), ObObj .getMax (),
2112
2135
ObObj .getMax ()));
2113
2136
if (!isTableGroup ) {
2114
2137
filter = buildObHTableFilter (null ,
2115
- new TimeRange ( 0 , kv . getTimestamp () + 1 ) ,
2138
+ timeRange ,
2116
2139
Integer .MAX_VALUE );
2117
2140
} else {
2118
2141
filter = buildObHTableFilter (null ,
2142
+ <<<<<<< HEAD
2119
2143
new TimeRange (0 , kv .getTimestamp () + 1 ),
2120
2144
Integer .MAX_VALUE , CellUtil .cloneQualifier (kv ));
2145
+ =======
2146
+ timeRange ,
2147
+ Integer .MAX_VALUE , kv .getQualifier ());
2148
+ >>>>>>> 161 a7ce (fix delete family version result error )
2121
2149
}
2122
2150
}
2123
2151
break ;
@@ -2432,27 +2460,27 @@ public void refreshTableEntry(String familyString, boolean hasTestLoad) throws E
2432
2460
}
2433
2461
2434
2462
public byte [][] getStartKeys () throws IOException {
2435
- byte [][] startKeys = new byte [0 ][];
2436
- try {
2437
- startKeys = obTableClient .getHBaseTableStartKeys (tableNameString );
2438
- } catch (Exception e ) {
2439
- throw new IOException ("Fail to get start keys of HBase Table: " + tableNameString , e );
2463
+ if (regionLocator == null ) {
2464
+ OHRegionLocatorExecutor executor = new OHRegionLocatorExecutor (tableNameString , obTableClient );
2465
+ regionLocator = executor .getRegionLocator (tableNameString );
2440
2466
}
2441
- return startKeys ;
2467
+ return regionLocator . getStartKeys () ;
2442
2468
}
2443
2469
2444
2470
public byte [][] getEndKeys () throws IOException {
2445
- byte [][] endKeys = new byte [0 ][];
2446
- try {
2447
- endKeys = obTableClient .getHBaseTableEndKeys (tableNameString );
2448
- } catch (Exception e ) {
2449
- throw new IOException ("Fail to get start keys of HBase Table: " + tableNameString , e );
2471
+ if (regionLocator == null ) {
2472
+ OHRegionLocatorExecutor executor = new OHRegionLocatorExecutor (tableNameString , obTableClient );
2473
+ regionLocator = executor .getRegionLocator (tableNameString );
2450
2474
}
2451
- return endKeys ;
2475
+ return regionLocator . getEndKeys () ;
2452
2476
}
2453
2477
2454
2478
public Pair <byte [][], byte [][]> getStartEndKeys () throws IOException {
2455
- return new Pair <>(getStartKeys (), getEndKeys ());
2479
+ if (regionLocator == null ) {
2480
+ OHRegionLocatorExecutor executor = new OHRegionLocatorExecutor (tableNameString , obTableClient );
2481
+ regionLocator = executor .getRegionLocator (tableNameString );
2482
+ }
2483
+ return regionLocator .getStartEndKeys ();
2456
2484
}
2457
2485
2458
2486
private CompareFilter .CompareOp getCompareOp (CompareOperator cmpOp ) {
0 commit comments