https://bugzilla.wikimedia.org/show_bug.cgi?id=8859

Olivier Finlay Beaton <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|WONTFIX                     |

--- Comment #13 from Olivier Finlay Beaton <[email protected]> 
2011-12-02 01:11:19 UTC ---
This is not MySQL-specific. It's supported by Microsoft SQL Server and
PostgreSQL. But only through sub-queries on SQLite and Oracle. So since support
is at best 50/50 without workarounds, I can see why MW shouldn't include pure
join support.

It seems to me like the sub-query method is universally supported by everyone,
instead of a join syntax. It can be a tiny bit complicated (there may be issues
with keys depending on how you write the query?), is it worth standardizing it
and hiding the implementation detail from the user so they don't have to write
SQL? If it's a lot more taxing and should be discouraged, perhaps a separate
function?

So what's the recommended workaround/method? Do your SELECT with joins ahead of
time, cache the results, then run a massive ugly UPDATE statement?

My actual current example: UPDATE page
INNER JOIN categorylinks SET page_touched = CURRENT_TIMESTAMP() WHERE
page.page_id = categorylinks.cl_from AND categorylinks.cl_to =
'MyCategoryName';

Since the API didn't let me do it, and didn't tell my WHY I couldn't do it, I
just went ahead and did it anyways, this was the wrong option. If we have an
abstraction API with clear limitations, we should be clearly pointing out why
certain functionality isn't included (and pointing them to how they should do
it, say on a wiki page).

Even if this is a documentation problem I think it's far from resolved.

Personally I think even if we have to run multiple statements, we should just
do it for the user auto-magically instead of require them to jump through
hoops. It makes a ton of sense API wise and it's already confused a lot of
people and it would be safer.

-- 
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are on the CC list for the bug.

_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to