Page MenuHomePhabricator

Make use of (BatchRowIterator|BatchRowWriter)::setCaller
Closed, ResolvedPublic

Description

T260354: Allow to set a caller on BatchRowIterator and BatchRowWriter added a setCaller to BatchRowIterator and BatchRowWriter

We should use the function on some of the callers/usages, to fix the underlying issue that T260354 and the dupe at T260473 were looking to address.

Not all usages will necessarily need/want it... But some definitely do!

Class
    BatchRowWriter   
Found usages  (10 usages found)
    New instance creation  (5 usages found)
        mediawiki  (5 usages found)
            core  (1 usage found)
                tests  (1 usage found)
                    phpunit  (1 usage found)
                        includes  (1 usage found)
                            utils  (1 usage found)
                                BatchRowUpdateTest.php  (1 usage found)
                                    16 $writer = new BatchRowWriter( $db, 'echo_event' );
            extensions  (4 usages found)
                Echo  (1 usage found)
                    maintenance  (1 usage found)
                        updateEchoSchemaForSuppression.php  (1 usage found)
                            60 new BatchRowWriter( $dbw, $this->table, $wgEchoCluster ),
                Flow  (3 usages found)
                    maintenance  (3 usages found)
                        FlowExternalStoreMoveCluster.php  (1 usage found)
                            138 new BatchRowWriter( $dbw, $schema['table'] ),
                        FlowFixLog.php  (1 usage found)
                            51 new BatchRowWriter( wfGetDB( DB_MASTER ), 'logging' ),
                        FlowUpdateWorkflowPageId.php  (1 usage found)
                            51 $writer = new BatchRowWriter( $dbw, 'flow_workflow', $wgFlowCluster );
    Unclassified usage  (1 usage found)
        mediawiki  (1 usage found)
            core  (1 usage found)
                includes  (1 usage found)
                    utils  (1 usage found)
                        BatchRowUpdate.php  (1 usage found)
                            75 BatchRowIterator $reader, BatchRowWriter $writer, RowUpdateGenerator $generator
    Usage in comments  (3 usages found)
        mediawiki  (3 usages found)
            core  (3 usages found)
                includes  (2 usages found)
                    utils  (2 usages found)
                        BatchRowUpdate.php  (2 usages found)
                            50 * @var BatchRowWriter Writer capable of pushing row updates
                            69 * @param BatchRowWriter $writer Writer capable of pushing
                tests  (1 usage found)
                    phpunit  (1 usage found)
                        includes  (1 usage found)
                            utils  (1 usage found)
                                BatchRowUpdateTest.php  (1 usage found)
                                    10 * @covers BatchRowWriter
    Usage in extends clause  (1 usage found)
        mediawiki  (1 usage found)
            extensions  (1 usage found)
                Flow  (1 usage found)
                    maintenance  (1 usage found)
                        FlowFixWorkflowLastUpdateTimestamp.php  (1 usage found)
                            161 class UpdateWorkflowLastUpdateTimestampWriter extends BatchRowWriter {

and

Class
    BatchRowIterator   
Found usages  (76 usages found)
    New instance creation  (47 usages found)
        mediawiki  (47 usages found)
            core  (10 usages found)
                maintenance  (6 usages found)
                    categoryChangesAsRdf.php  (3 usages found)
                        239 $it = new BatchRowIterator( $dbr,
                        306 $it = new BatchRowIterator( $dbr,
                        394 $it = new BatchRowIterator(
                    dumpCategoriesAsRdf.php  (2 usages found)
                        59 $it = new BatchRowIterator(
                        97 $it = new BatchRowIterator(
                    initUserPreference.php  (1 usage found)
                        45 $iterator = new BatchRowIterator(
                tests  (4 usages found)
                    phpunit  (4 usages found)
                        includes  (4 usages found)
                            utils  (4 usages found)
                                BatchRowUpdateTest.php  (4 usages found)
                                    45 $reader = new BatchRowIterator( $db, 'some_table', 'id_field', $batchSize );
                                    83 $reader = new BatchRowIterator( $this->mockDb(), 'some_table', array_keys( $expected ), 8675309 );
                                    136 $reader = new BatchRowIterator( $db, 'some_table', $primaryKeys, 22 );
                                    181 $reader = new BatchRowIterator( $db, 'some_table', $primaryKeys, $batchSize );
            extensions  (37 usages found)
                AntiSpoof  (1 usage found)
                    maintenance  (1 usage found)
                        BatchAntiSpoofClass.php  (1 usage found)
                            82 $iterator = new BatchRowIterator( $this->getDB( DB_MASTER ),
                CirrusSearch  (5 usages found)
                    maintenance  (4 usages found)
                        ForceSearchIndex.php  (4 usages found)
                            394 $it = new BatchRowIterator(
                            443 $it = new BatchRowIterator( $dbr, $pageQuery['tables'], 'page_id', $this->getBatchSize() );
                            457 $it = new BatchRowIterator(
                            478 $it = new BatchRowIterator( $dbr,  $pageQuery['tables'], 'page_id', $this->getBatchSize() );
                    tests  (1 usage found)
                        jenkins  (1 usage found)
                            deleteBrowserTestPages.php  (1 usage found)
                                62 $it = new \BatchRowIterator( $dbw, 'page', 'page_id', 500 );
                Echo  (11 usages found)
                    includes  (3 usages found)
                        mapper  (1 usage found)
                            NotificationMapper.php  (1 usage found)
                                345 $iterator = new BatchRowIterator(
                        EmailBatch.php  (1 usage found)
                            264 $iterator = new BatchRowIterator( $dbr, 'echo_email_batch', 'eeb_event_id', $wgUpdateRowsPerQuery );
                        UserLocator.php  (1 usage found)
                            22 $it = new BatchRowIterator(
                    maintenance  (8 usages found)
                        backfillUnreadWikis.php  (2 usages found)
                            25 $iterator = new BatchRowIterator(
                            34 $iterator = new BatchRowIterator(
                        recomputeNotifCounts.php  (2 usages found)
                            47 $userIterator = new BatchRowIterator(
                            65 $userIterator = new BatchRowIterator( $dbr, $userQuery['tables'], 'user_id', $this->getBatchSize() );
                        removeOrphanedEvents.php  (2 usages found)
                            37 $iterator = new BatchRowIterator(
                            70 $iterator = new BatchRowIterator(
                        updateEchoSchemaForSuppression.php  (1 usage found)
                            51 $reader = new BatchRowIterator( $dbr, $this->table, $this->idField, $this->mBatchSize );
                        updatePerUserBlacklist.php  (1 usage found)
                            37 $iterator = new BatchRowIterator(
                Flow  (15 usages found)
                    includes  (5 usages found)
                        Data  (1 usage found)
                            Utils  (1 usage found)
                                UserMerger.php  (1 usage found)
                                    88 $it = new BatchRowIterator( $dbw, $table, $config['pk'], 500 );
                        Dump  (1 usage found)
                            Exporter.php  (1 usage found)
                                137 $iterator = new BatchRowIterator( $dbr, 'flow_workflow', 'workflow_id', 300 );
                        Import  (1 usage found)
                            Postprocessor  (1 usage found)
                                LqtNotifications.php  (1 usage found)
                                    90 $it = new BatchRowIterator(
                        Utils  (2 usages found)
                            NamespaceIterator.php  (1 usage found)
                                41 $it = new BatchRowIterator(
                            PagesWithPropertyIterator.php  (1 usage found)
                                58 $it = new BatchRowIterator(
                    maintenance  (10 usages found)
                        FlowAddMissingModerationLogs.php  (1 usage found)
                            46 $rowIterator = new BatchRowIterator(
                        FlowExternalStoreMoveCluster.php  (1 usage found)
                            81 $iterator = new BatchRowIterator( $dbr, $schema['table'], $schema['pk'], $this->mBatchSize );
                        FlowFixInconsistentBoards.php  (1 usage found)
                            73 $iterator = new BatchRowIterator( $wikiDbw, 'page', 'page_id', $this->mBatchSize );
                        FlowFixLinks.php  (1 usage found)
                            70 $iterator = new BatchRowIterator( $dbr, 'flow_workflow', 'workflow_id', $this->mBatchSize );
                        FlowFixLog.php  (1 usage found)
                            39 $iterator = new BatchRowIterator( wfGetDB( DB_REPLICA ), 'logging', 'log_id', $this->mBatchSize );
                        FlowFixWorkflowLastUpdateTimestamp.php  (1 usage found)
                            46 $iterator = new BatchRowIterator( $dbFactory->getDB( DB_REPLICA ), 'flow_workflow', 'workflow_id', $this->mBatchSize );
                        FlowReserializeRevisionContent.php  (1 usage found)
                            84 $iterator = new BatchRowIterator( $dbw, 'flow_revision', 'rev_id', $this->mBatchSize );
                        FlowUpdateResolvedNotifTitles.php  (1 usage found)
                            44 $iterator = new BatchRowIterator(
                        FlowUpdateRevisionContentLength.php  (1 usage found)
                            78 $it = new BatchRowIterator(
                        FlowUpdateWorkflowPageId.php  (1 usage found)
                            39 $it = new BatchRowIterator(
                Kartographer  (1 usage found)
                    maintenance  (1 usage found)
                        purgeMapPages.php  (1 usage found)
                            31 $iterator = new BatchRowIterator(
                LoginNotify  (1 usage found)
                    maintenance  (1 usage found)
                        migratePreferences.php  (1 usage found)
                            47 $iterator = new BatchRowIterator( $dbr,
                ORES  (1 usage found)
                    maintenance  (1 usage found)
                        BackfillPageTriageQueue.php  (1 usage found)
                            43 $iterator = new BatchRowIterator(
                PageTriage  (2 usages found)
                    maintenance  (2 usages found)
                        DeleteAfcStates.php  (1 usage found)
                            30 $iterator = new BatchRowIterator(
                        FixNominatedForDeletion.php  (1 usage found)
                            28 $iterator = new BatchRowIterator(
    Unclassified usage  (7 usages found)
        mediawiki  (7 usages found)
            core  (3 usages found)
                includes  (1 usage found)
                    utils  (1 usage found)
                        BatchRowUpdate.php  (1 usage found)
                            75 BatchRowIterator $reader, BatchRowWriter $writer, RowUpdateGenerator $generator
                maintenance  (2 usages found)
                    categoryChangesAsRdf.php  (2 usages found)
                        370 private function addTimestampConditions( BatchRowIterator $it, IDatabase $dbr ) {
                        381 private function addIndex( BatchRowIterator $it ) {
            extensions  (4 usages found)
                CirrusSearch  (3 usages found)
                    maintenance  (3 usages found)
                        ForceSearchIndex.php  (3 usages found)
                            499 IDatabase $dbr, BatchRowIterator $it, $columnPrefix
                            513 private function attachPageConditions( IDatabase $dbr, BatchRowIterator $it, $columnPrefix ) {
                            536 private function wrapDecodeResults( BatchRowIterator $it, $endingAtColumn ) {
                Flow  (1 usage found)
                    includes  (1 usage found)
                        Dump  (1 usage found)
                            Exporter.php  (1 usage found)
                                183 public function dump( BatchRowIterator $workflowIterator ) {
    Usage in comments  (14 usages found)
        mediawiki  (14 usages found)
            core  (11 usages found)
                includes  (2 usages found)
                    utils  (2 usages found)
                        BatchRowUpdate.php  (2 usages found)
                            44 * @var BatchRowIterator Iterator that returns an array of
                            67 * @param BatchRowIterator $reader Iterator that returns an
                maintenance  (8 usages found)
                    categoryChangesAsRdf.php  (8 usages found)
                        228 * @return BatchRowIterator
                        269 * @return BatchRowIterator
                        283 * @return BatchRowIterator
                        303 * @return BatchRowIterator
                        330 * @return BatchRowIterator
                        351 * @return BatchRowIterator
                        367 * @param BatchRowIterator $it Iterator
                        379 * @param BatchRowIterator $it
                tests  (1 usage found)
                    phpunit  (1 usage found)
                        includes  (1 usage found)
                            utils  (1 usage found)
                                BatchRowUpdateTest.php  (1 usage found)
                                    9 * @covers BatchRowIterator
            extensions  (3 usages found)
                CirrusSearch  (1 usage found)
                    maintenance  (1 usage found)
                        ForceSearchIndex.php  (1 usage found)
                            532 * @param BatchRowIterator $it
                Flow  (2 usages found)
                    includes  (2 usages found)
                        Dump  (2 usages found)
                            Exporter.php  (2 usages found)
                                130 * @return BatchRowIterator
                                178 * @param BatchRowIterator $workflowIterator
    Usage in import statement  (8 usages found)
        mediawiki  (8 usages found)
            extensions  (8 usages found)
                CirrusSearch  (1 usage found)
                    maintenance  (1 usage found)
                        ForceSearchIndex.php  (1 usage found)
                            5 use BatchRowIterator;
                Flow  (5 usages found)
                    includes  (5 usages found)
                        Data  (1 usage found)
                            Utils  (1 usage found)
                                UserMerger.php  (1 usage found)
                                    5 use BatchRowIterator;
                        Dump  (1 usage found)
                            Exporter.php  (1 usage found)
                                5 use BatchRowIterator;
                        Import  (1 usage found)
                            Postprocessor  (1 usage found)
                                LqtNotifications.php  (1 usage found)
                                    5 use BatchRowIterator;
                        Utils  (2 usages found)
                            NamespaceIterator.php  (1 usage found)
                                5 use BatchRowIterator;
                            PagesWithPropertyIterator.php  (1 usage found)
                                5 use BatchRowIterator;
                LoginNotify  (1 usage found)
                    maintenance  (1 usage found)
                        migratePreferences.php  (1 usage found)
                            5 use BatchRowIterator;
                ORES  (1 usage found)
                    maintenance  (1 usage found)
                        BackfillPageTriageQueue.php  (1 usage found)
                            5 use BatchRowIterator;

Event Timeline

Change 624786 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/core@master] maintenance: Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624786

Change 624794 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/extensions/AntiSpoof@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624794

Change 624796 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/extensions/LoginNotify@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624796

Change 624797 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/extensions/Kartographer@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624797

Change 624798 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/extensions/PageTriage@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624798

Change 624801 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/extensions/ORES@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624801

Change 624796 merged by jenkins-bot:
[mediawiki/extensions/LoginNotify@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624796

Change 624797 merged by jenkins-bot:
[mediawiki/extensions/Kartographer@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624797

Change 624798 merged by jenkins-bot:
[mediawiki/extensions/PageTriage@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624798

Change 624794 merged by jenkins-bot:
[mediawiki/extensions/AntiSpoof@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624794

Change 624801 merged by jenkins-bot:
[mediawiki/extensions/ORES@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624801

Untagging teams/projects for where the patch is merged (to save cluttering workboards)

Basically core (mostly WIP), CirrusSearch, Echo and Flow left to do

Change 625017 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/extensions/Echo@master] Make use of BatchRow(Iterator|Writer)::setCaller

https://gerrit.wikimedia.org/r/625017

Change 625022 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/extensions/Flow@master] Make use of BatchRow(Iterator|Writer)::setCaller

https://gerrit.wikimedia.org/r/625022

Change 625024 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/extensions/CirrusSearch@master] Make use of BatchRow(Iterator|Writer)::setCaller

https://gerrit.wikimedia.org/r/625024

Change 625017 merged by jenkins-bot:
[mediawiki/extensions/Echo@master] Make use of BatchRow(Iterator|Writer)::setCaller

https://gerrit.wikimedia.org/r/625017

Change 625024 merged by jenkins-bot:
[mediawiki/extensions/CirrusSearch@master] Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/625024

Change 625022 merged by jenkins-bot:
[mediawiki/extensions/Flow@master] Make use of BatchRow(Iterator|Writer)::setCaller

https://gerrit.wikimedia.org/r/625022

Change 624786 merged by jenkins-bot:
[mediawiki/core@master] maintenance: Make use of BatchRowIterator::setCaller

https://gerrit.wikimedia.org/r/624786

Change 625427 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/extensions/Flow@master] One more BatchRowWriter::setCaller()

https://gerrit.wikimedia.org/r/625427

Just one usage in Flow that got missed (did the refactor, but didn't paste in setCaller) bar some test usages (which we don't really care about)

Change 625427 merged by jenkins-bot:
[mediawiki/extensions/Flow@master] One more BatchRowWriter::setCaller()

https://gerrit.wikimedia.org/r/625427