Page MenuHomePhabricator

Create a Query Builder for IDatabase::insertSelect or remove the function
Open, Needs TriagePublic

Description

The function IDatabase::insertSelect of the database abstraction layer does not have a query builder replacement.

  • Add InsertQueryBuilder::select and take a SelectQueryBuilder there
  • Duplicate the (relevant) functions from SelectQueryBuilder to InsertQueryBuilder and checks, that the right mode is used
  • Create a new Query Builder
  • Deprecate and remove the function - It could be replaced with explicit select and insert with proper batching, but that would transfer all database from server to client to server.

Usage: https://codesearch.wmcloud.org/search/?q=%5CbinsertSelect%5Cb&files=&excludeFiles=&repos=

In deployed code:

  • In core it is used on upload and file deletion
  • Flow on insert of new threads
  • SecurePoll on edit vote list
  • Translate on new revisions
  • Wikibase - tests only