19 private $iteratorFactory;
24 private $rangeIteratorFactory;
34 BatchRangeIteratorFactory $rangeIteratorFactory =
null 36 $this->iteratorFactory = $iteratorFactory;
38 ->get(\
Magento\Framework\DB\
Query\BatchRangeIteratorFactory::class);
77 if (empty($fromSelect)) {
80 'The select object must have the correct "FROM" part. Verify and try again.' 85 $fieldCorrelationName =
'';
86 foreach ($fromSelect as $correlationName => $fromPart) {
88 $fieldCorrelationName = $correlationName;
97 $rangeFieldAlias = $rangeField;
100 if (
$table == $fieldCorrelationName && $columnName == $rangeField) {
101 $rangeFieldAlias =
$alias ?: $rangeField;
106 return $this->iteratorFactory->create(
109 'batchSize' => $batchSize,
110 'correlationName' => $fieldCorrelationName,
111 'rangeField' => $rangeField,
112 'rangeFieldAlias' => $rangeFieldAlias
147 if (empty($fromSelect)) {
150 'The select object must have the correct "FROM" part. Verify and try again.' 155 $fieldCorrelationName =
'';
156 foreach ($fromSelect as $correlationName => $fromPart) {
158 $fieldCorrelationName = $correlationName;
167 $rangeFieldAlias = $rangeField;
170 if (
$table == $fieldCorrelationName && $columnName == $rangeField) {
171 $rangeFieldAlias =
$alias ?: $rangeField;
176 return $this->rangeIteratorFactory->create(
179 'batchSize' => $batchSize,
180 'correlationName' => $fieldCorrelationName,
181 'rangeField' => $rangeField,
182 'rangeFieldAlias' => $rangeFieldAlias,
generateByRange( $rangeField, \Magento\Framework\DB\Select $select, $batchSize=100)
generate( $rangeField, \Magento\Framework\DB\Select $select, $batchSize=100, $batchStrategy=\Magento\Framework\DB\Query\BatchIteratorInterface::UNIQUE_FIELD_ITERATOR)
const NON_UNIQUE_FIELD_ITERATOR
const UNIQUE_FIELD_ITERATOR
__construct(BatchIteratorFactory $iteratorFactory, BatchRangeIteratorFactory $rangeIteratorFactory=null)