@@ -479,7 +479,7 @@ public Result call() throws IOException {
479
479
filter = buildObHTableFilter (get .getFilter (), get .getTimeRange (),
480
480
get .getMaxVersions (), null );
481
481
obTableQuery = buildObTableQuery (filter , get .getRow (), true , get .getRow (),
482
- true , - 1 );
482
+ true );
483
483
request = buildObTableQueryRequest (obTableQuery ,
484
484
getTargetTableName (tableNameString ));
485
485
@@ -489,14 +489,12 @@ public Result call() throws IOException {
489
489
} else {
490
490
for (Map .Entry <byte [], NavigableSet <byte []>> entry : get .getFamilyMap ()
491
491
.entrySet ()) {
492
-
493
492
family = entry .getKey ();
494
-
495
493
filter = buildObHTableFilter (get .getFilter (), get .getTimeRange (),
496
494
get .getMaxVersions (), entry .getValue ());
497
495
498
496
obTableQuery = buildObTableQuery (filter , get .getRow (), true ,
499
- get .getRow (), true , - 1 );
497
+ get .getRow (), true );
500
498
501
499
request = buildObTableQueryRequest (obTableQuery ,
502
500
getTargetTableName (tableNameString , Bytes .toString (family )));
@@ -540,8 +538,7 @@ public Result getRowOrBefore(byte[] row, byte[] family) {
540
538
541
539
@ Override
542
540
public ResultScanner getScanner (final Scan scan ) throws IOException {
543
-
544
- if (scan .getFamilyMap ().keySet () == null || scan .getFamilyMap ().keySet ().size () == 0 ) {
541
+ if (scan .getFamilyMap ().keySet ().isEmpty ()) {
545
542
// check nothing, use table group;
546
543
} else {
547
544
checkFamilyViolation (scan .getFamilyMap ().keySet ());
@@ -558,20 +555,11 @@ public ResultScanner call() throws IOException {
558
555
ObTableQuery obTableQuery ;
559
556
ObHTableFilter filter ;
560
557
try {
561
- if (scan .getFamilyMap ().keySet () == null
562
- || scan .getFamilyMap ().keySet ().size () == 0 ) {
558
+ if (scan .getFamilyMap ().keySet ().isEmpty ()) {
563
559
filter = buildObHTableFilter (scan .getFilter (), scan .getTimeRange (),
564
560
scan .getMaxVersions (), null );
565
- if (scan .isReversed ()) {
566
- obTableQuery = buildObTableQuery (filter , scan .getStopRow (), false ,
567
- scan .getStartRow (), true , scan .getBatch ());
568
- } else {
569
- obTableQuery = buildObTableQuery (filter , scan .getStartRow (), true ,
570
- scan .getStopRow (), false , scan .getBatch ());
571
- }
572
- if (scan .isReversed ()) { // reverse scan 时设置为逆序
573
- obTableQuery .setScanOrder (ObScanOrder .Reverse );
574
- }
561
+ obTableQuery = buildObTableQuery (filter , scan );
562
+
575
563
request = buildObTableQueryAsyncRequest (obTableQuery ,
576
564
getTargetTableName (tableNameString ));
577
565
clientQueryAsyncStreamResult = (ObTableClientQueryAsyncStreamResult ) obTableClient
@@ -584,19 +572,7 @@ public ResultScanner call() throws IOException {
584
572
family = entry .getKey ();
585
573
filter = buildObHTableFilter (scan .getFilter (), scan .getTimeRange (),
586
574
scan .getMaxVersions (), entry .getValue ());
587
- if (scan .isReversed ()) {
588
- obTableQuery = buildObTableQuery (filter , scan .getStopRow (), false ,
589
- scan .getStartRow (), true , scan .getBatch ());
590
- } else {
591
- obTableQuery = buildObTableQuery (filter , scan .getStartRow (), true ,
592
- scan .getStopRow (), false , scan .getBatch ());
593
- }
594
- if (scan .isReversed ()) { // reverse scan 时设置为逆序
595
- obTableQuery .setScanOrder (ObScanOrder .Reverse );
596
- }
597
-
598
- // no support set maxResultSize.
599
- // obTableQuery.setMaxResultSize(scan.getMaxResultSize());
575
+ obTableQuery = buildObTableQuery (filter , scan );
600
576
601
577
request = buildObTableQueryAsyncRequest (obTableQuery ,
602
578
getTargetTableName (tableNameString , Bytes .toString (family )));
@@ -824,7 +800,7 @@ private boolean checkAndMutation(byte[] row, byte[] family, byte[] qualifier, Co
824
800
keyValueList .addAll (entry .getValue ());
825
801
}
826
802
}
827
- ObTableQuery obTableQuery = buildObTableQuery (filter , row , true , row , true , - 1 );
803
+ ObTableQuery obTableQuery = buildObTableQuery (filter , row , true , row , true );
828
804
829
805
ObTableBatchOperation batch = buildObTableBatchOperation (keyValueList , false , null );
830
806
@@ -862,7 +838,7 @@ public Result append(Append append) throws IOException {
862
838
true , qualifiers );
863
839
// the later hbase has supported timeRange
864
840
ObHTableFilter filter = buildObHTableFilter (null , null , 1 , qualifiers );
865
- ObTableQuery obTableQuery = buildObTableQuery (filter , r , true , r , true , - 1 );
841
+ ObTableQuery obTableQuery = buildObTableQuery (filter , r , true , r , true );
866
842
ObTableQueryAndMutate queryAndMutate = new ObTableQueryAndMutate ();
867
843
queryAndMutate .setTableQuery (obTableQuery );
868
844
queryAndMutate .setMutations (batchOperation );
@@ -921,7 +897,7 @@ public Result increment(Increment increment) throws IOException {
921
897
ObHTableFilter filter = buildObHTableFilter (null , increment .getTimeRange (), 1 ,
922
898
qualifiers );
923
899
924
- ObTableQuery obTableQuery = buildObTableQuery (filter , rowKey , true , rowKey , true , - 1 );
900
+ ObTableQuery obTableQuery = buildObTableQuery (filter , rowKey , true , rowKey , true );
925
901
ObTableQueryAndMutate queryAndMutate = new ObTableQueryAndMutate ();
926
902
queryAndMutate .setMutations (batch );
927
903
queryAndMutate .setTableQuery (obTableQuery );
@@ -971,7 +947,7 @@ public long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, lo
971
947
972
948
ObHTableFilter filter = buildObHTableFilter (null , null , 1 , qualifiers );
973
949
974
- ObTableQuery obTableQuery = buildObTableQuery (filter , row , true , row , true , - 1 );
950
+ ObTableQuery obTableQuery = buildObTableQuery (filter , row , true , row , true );
975
951
ObTableQueryAndMutate queryAndMutate = new ObTableQueryAndMutate ();
976
952
queryAndMutate .setMutations (batch );
977
953
queryAndMutate .setTableQuery (obTableQuery );
@@ -1373,8 +1349,7 @@ private ObHTableFilter buildObHTableFilter(String filterString, TimeRange timeRa
1373
1349
}
1374
1350
1375
1351
private ObTableQuery buildObTableQuery (ObHTableFilter filter , byte [] start ,
1376
- boolean includeStart , byte [] stop , boolean includeStop ,
1377
- int batchSize ) {
1352
+ boolean includeStart , byte [] stop , boolean includeStop ) {
1378
1353
ObNewRange obNewRange = new ObNewRange ();
1379
1354
1380
1355
if (Arrays .equals (start , HConstants .EMPTY_BYTE_ARRAY )) {
@@ -1394,23 +1369,37 @@ private ObTableQuery buildObTableQuery(ObHTableFilter filter, byte[] start,
1394
1369
} else {
1395
1370
obNewRange .setEndKey (ObRowKey .getInstance (stop , ObObj .getMin (), ObObj .getMin ()));
1396
1371
}
1397
-
1398
- return buildObTableQuery (filter , obNewRange , batchSize );
1399
- }
1400
-
1401
- private ObTableQuery buildObTableQuery (ObHTableFilter filter , ObNewRange obNewRange ,
1402
- int batchSize ) {
1403
1372
ObTableQuery obTableQuery = new ObTableQuery ();
1404
1373
obTableQuery .setIndexName ("PRIMARY" );
1405
1374
obTableQuery .sethTableFilter (filter );
1406
1375
for (String column : ALL_COLUMNS ) {
1407
1376
obTableQuery .addSelectColumn (column );
1408
1377
}
1409
- if (obNewRange != null ) {
1410
- obTableQuery .addKeyRange (obNewRange );
1378
+ obTableQuery .addKeyRange (obNewRange );
1379
+
1380
+ return obTableQuery ;
1381
+ }
1382
+
1383
+ private ObTableQuery buildObTableQuery (ObHTableFilter filter , final Scan scan ) {
1384
+ ObTableQuery obTableQuery ;
1385
+ if (scan .getMaxResultsPerColumnFamily () > 0 ) {
1386
+ filter .setLimitPerRowPerCf (scan .getMaxResultsPerColumnFamily ());
1387
+ }
1388
+ if (scan .getRowOffsetPerColumnFamily () > 0 ) {
1389
+ filter .setOffsetPerRowPerCf (scan .getRowOffsetPerColumnFamily ());
1390
+ }
1391
+ if (scan .isReversed ()) {
1392
+ obTableQuery = buildObTableQuery (filter , scan .getStopRow (), false , scan .getStartRow (),
1393
+ true );
1394
+ } else {
1395
+ obTableQuery = buildObTableQuery (filter , scan .getStartRow (), true , scan .getStopRow (),
1396
+ false );
1397
+ }
1398
+ if (scan .isReversed ()) { // reverse scan 时设置为逆序
1399
+ obTableQuery .setScanOrder (ObScanOrder .Reverse );
1411
1400
}
1412
- if (batchSize > 0 ) {
1413
- obTableQuery .setBatchSize (batchSize );
1401
+ if (scan . getBatch () > 0 ) {
1402
+ obTableQuery .setBatchSize (scan . getBatch () );
1414
1403
}
1415
1404
return obTableQuery ;
1416
1405
}
0 commit comments