Anomie added a comment.

  Bah, I figured it out. I should have read 
https://www.sqlite.org/lang_UPSERT.html more closely. The diagram at the top 
shows part of the syntax is optional, but the text adds restrictions:
  
  > The syntax that occurs in between the "ON CONFLICT" and "DO" keywords is 
called the "conflict target". The conflict target specifies a specific 
uniqueness constraint that will trigger the upsert. **The conflict target is 
required for DO UPDATE upserts,** but is optional for DO NOTHING. When the 
conflict target is omitted, the upsert behavior is triggered by a violation of 
any uniqueness constraint on the table of the INSERT.
  
  So it's not anything to do with sqlite being 3.22 instead of 3.24, it's that 
rMW4bd1b4b45571: rdbms: optimize insert(), replace(), and upsert() for sqlite 
when possible 
<https://phabricator.wikimedia.org/rMW4bd1b4b455712c74d71ad2d5fb73060b5e6e8187> 
missed that required part of the syntax.
  
  I note that IDatabase::upsert() allows multiple "indexes" to be specified via 
`$uniqueIndexes`, but the SQLite syntax allows only one. So it would presumably 
have to fall back to the parent implementation if multiple indexes are supplied 
too.

TASK DETAIL
  https://phabricator.wikimedia.org/T234795

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Anomie
Cc: Anomie, Krinkle, aaron, Ladsgroup, Aklapper, WMDE-leszek, Iflorez, 
darthmon_wmde, alaa_wmde, DannyS712, Nandana, Imarlier, Lahi, Gq86, 
GoranSMilovanovic, QZanden, LawExplorer, Vali.matei, _jensen, rosalieper, 
Jonas, Wikidata-bugs, aude, waldyrious, Lydia_Pintscher, Mbch331
_______________________________________________
Wikidata-bugs mailing list
Wikidata-bugs@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to