Fixes T13208. See that task for details.
The clone $query line is safe if $query is a builtin query (like "open").
However, if it's a saved query we clone not only the query parameters but the ID, too. Then when we save() the query later, we overwrite the original query.
So this would happen in the database. First, you run a query and save it as the workboard default (query key "abc123"):
123 | abc123 | {"...xxx..."} |
Then we clone it and change the parameters, and save() it. But that causes an UPDATE ... WHERE id = 123 and the table now looks like this:
123 | def456 | {"...yyy..."} |
What we want is to create a new query instead, with an INSERT ...:
123 | abc123 | {"...xxx..."} |
124 | def456 | {"...yyy..."} |