Login  Register

[GitHub] [carbondata] nihal0107 commented on a change in pull request #4068: [CARBONDATA-3987] Handled filter and IUD operation for pagination reader in SDK

Posted by GitBox on Jan 04, 2021; 2:15pm
URL: http://apache-carbondata-dev-mailing-list-archive.168.s1.nabble.com/GitHub-carbondata-nihal0107-opened-a-new-pull-request-4068-CARBONDATA-3987-Handled-filter-and-IUD-opK-tp105205p105280.html


nihal0107 commented on a change in pull request #4068:
URL: https://github.com/apache/carbondata/pull/4068#discussion_r551340796



##########
File path: sdk/sdk/src/main/java/org/apache/carbondata/sdk/file/CarbonReaderBuilder.java
##########
@@ -427,6 +436,50 @@ private CarbonFileInputFormat prepareFileInputFormat(Job job, boolean enableBloc
     }
   }
 
+  private <T> void totalRowCountInSplits(Job job, List<InputSplit> splits,
+      List<Long> rowCountInSplit) throws IOException, InterruptedException {
+    long sum = 0;
+    boolean isIUDTable = false;
+    // Check if update or delete happened on the table.
+    if (!StringUtils.isEmpty(this.tablePath)) {
+      CarbonFile[] fileList = FileFactory.getCarbonFile(this.tablePath,
+          this.hadoopConf).listFiles();
+      for (CarbonFile file : fileList) {
+        if (file.getPath().endsWith(CarbonCommonConstants.DELETE_DELTA_FILE_EXT)) {
+          isIUDTable = true;
+          break;
+        }
+      }
+    }
+    // if filter exists or IUD happened then read the total number of rows after
+    // building carbon reader else get the row count from the details info of each splits.
+    if (this.filterExpression != null || isIUDTable) {
+      for (InputSplit split : splits) {
+        List<RecordReader<Void, T>> readers = new ArrayList<>();
+        CarbonFileInputFormat format = this.prepareFileInputFormat(job, false, true);
+        RecordReader reader = this.getRecordReader(job, format, readers, split);
+        readers.add(reader);
+        CarbonReader carbonReader = new CarbonReader<>(readers);

Review comment:
       done




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[hidden email]