docs: private void createTasksForTable(Table table,
                                       Collection<IndexSnapshotRequestConfig.PartitionRanges> partitionRanges,
                                       Map<Integer, Long> pidToLocalHSIDs,
                                       AtomicInteger numTables,
                                       SnapshotRegistry.Snapshot snapshotRecord)
      {
          // no work on this node
          if (pidToLocalHSIDs.isEmpty()) {
              return;
          }
  
          // create a null data target
          final DevNullSnapshotTarget dataTarget = new DevNullSnapshotTarget();
          final Runnable onClose = new TargetStatsClosure(dataTarget,
                                                          table.getTypeName(),
                                                          numTables,
                                                          snapshotRecord);
          dataTarget.setOnCloseHandler(onClose);
          m_targets.add(dataTarget);
  
          // go over all local sites, create a task for each source site
          for (IndexSnapshotRequestConfig.PartitionRanges partitionRange : partitionRanges) {
              Long localHSId = pidToLocalHSIDs.get(partitionRange.partitionId);
  
              // The partition may not exist on this node. If so, keep calm and carry on
              if (localHSId != null) {
                  // based on the source partition, the predicate is different
                  final SnapshotTableTask task =
                      new SnapshotTableTask(table,
                                            new SnapshotDataFilter[0],
                                            createIndexExpressionForTable(table, partitionRange.ranges),
                                            false);
                  task.setTarget(dataTarget);
  
                  placeTask(task, Arrays.asList(localHSId));
              }
          }
      }