#3780 - Support upsert on non-MySQL backends (Make use of MySQL REPLACE INTO syntax)

Identifier #3780
Issue type Feature request or suggestion
Title Support upsert on non-MySQL backends (Make use of MySQL REPLACE INTO syntax)
Status Open
Tags

Type: Performance (custom)

Handling member Deleted
Addon core_database_drivers
Description put_into_cache and set_value are both highly trafficed functions that do a query_delete (DELETE FROM) followed by a query_insert (INSERT INTO). These cases could be single REPLACE INTO calls in MySQL.

The ideal solution would be to extend the insert_into method to change $fail_ok to take constants QUERY_FAIL_HARD, QUERY_FAIL_SILENT, and QUERY_REPLACE_INTO.
Then each database driver could do it's own implementation. Almost every database backend has some kind of syntax for it https://en.wikipedia.org/wiki/Merge_(SQL)

However, a quick and dirty detection of whether MySQL is running, and coding in an alternative query, would be fine.
Steps to reproduce

Funded? No
The system will post a comment when this issue is modified (e.g., status changes). To be notified of this, click "Enable comment notifications".

Rating

Unrated