@@ -809,16 +809,16 @@ public static int compareByteArray(byte[] bt1, byte[] bt2) {
809809
810810 private void getMaxRowFromResult (AbstractQueryStreamResult clientQueryStreamResult ,
811811 List <KeyValue > keyValueList , boolean isTableGroup ,
812- byte [] family ) throws Exception {
812+ byte [] family , boolean checkExistenceOnly ) throws Exception {
813813 byte [][] familyAndQualifier = new byte [2 ][];
814814 KeyValue kv = null ;
815815 while (clientQueryStreamResult .next ()) {
816- List <ObObj > row = clientQueryStreamResult .getRow ();
817- if (row .isEmpty ()) {
816+ if (checkExistenceOnly ) {
818817 // Currently, checkExistOnly is set, and if the row exists, it returns an empty row.
819818 keyValueList .add (new KeyValue ());
820819 return ;
821820 } else {
821+ List <ObObj > row = clientQueryStreamResult .getRow ();
822822 if (kv == null
823823 || compareByteArray (kv .getRow (), (byte []) row .get (0 ).getValue ()) <= 0 ) {
824824 if (kv != null
@@ -904,7 +904,7 @@ public Result call() throws IOException {
904904
905905 ObTableClientQueryAsyncStreamResult clientQueryStreamResult = (ObTableClientQueryAsyncStreamResult ) obTableClient
906906 .execute (request );
907- getMaxRowFromResult (clientQueryStreamResult , keyValueList , true , family );
907+ getMaxRowFromResult (clientQueryStreamResult , keyValueList , true , family , get . isCheckExistenceOnly () );
908908 } else {
909909 for (Map .Entry <byte [], NavigableSet <byte []>> entry : get .getFamilyMap ()
910910 .entrySet ()) {
@@ -927,7 +927,7 @@ public Result call() throws IOException {
927927 ObTableClientQueryStreamResult clientQueryStreamResult = (ObTableClientQueryStreamResult ) obTableClient
928928 .execute (request );
929929 getMaxRowFromResult (clientQueryStreamResult , keyValueList , false ,
930- family );
930+ family , get . isCheckExistenceOnly () );
931931 }
932932 }
933933 } catch (Exception e ) {
0 commit comments