Closed (fixed)
Project:
Drupal core
Version:
6.x-dev
Component:
search.module
Priority:
Normal
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
13 May 2008 at 13:14 UTC
Updated:
1 Oct 2008 at 06:52 UTC
Jump to comment: Most recent file
Comments
Comment #1
damien tournoud commentedHum. And what about the big comment in front of the
UPDATEthat says:This
UPDATEis required, so this is by design.Comment #2
douggreen commentedAh, I think you're right on the collate comment. But if that's the only case where we need to UPDATE, we should try the INSERT first and then do the UPDATE if the INSERT fails. The duplicate INSERT will fail because of the word_sid_type unique key. I think that this approach will result in one query instead of two 99% of the time.
Comment #3
damien tournoud commentedRight, we should invert those queries, because the INSERT will infrequently fail.
Comment #4
douggreen commentedComment #5
douggreen commentedAnd since scores are floats and not numbers the %d in the UPDATE should be fixed.
Comment #6
damien tournoud commentedPlease also fix the type of the sid column in the
UPDATEquery (it should be an int). Oh this was messy, and the fact that I fixed that bug on the day of the release of D6 is not an excuse.Comment #7
douggreen commentedWhat's wrong with the type? It's a string, which is correct.
Comment #8
damien tournoud commentedThe sid is an int column:
But there the
%din theUPDATEquery is in quotes.Comment #9
douggreen commentedI didn't notice the quotes around '%d'... The attached patch fixes those too.
Comment #10
moshe weitzman commentedLooks good to me. This is a big performance win, and should be backported IMO.
Comment #11
damien tournoud commentedOoops. We overslept on that one.
Here is a slightly modified version of douggreen's patch (with an updated comment).
Please review!
Comment #12
douggreen commented@Damien, thanks for fixing the comment, I obviously missed that!
Is it at all possible to keep the comment on two lines, or did it break 80 characters that way?
Please remove the @ in front of db_query. I'm not sure why and when people need to add this, but I don't think it's needed.
Comment #13
douggreen commentedI replaced
@db_query. withdb_query. I tried to make that comment fit on 2 lines, but couldn't make it terse yet explanatory. But while working on it, I modified Damien's text. I'm not going to be stubborn on what the comment says, it's the code here that's really important. As moshe points out, we might want to backport this, so let's try to agree on the comment verbiage, and get this RTBC!Comment #14
moshe weitzman commented@douggreen - did you mean to attach a patch?
Comment #15
douggreen commenteddoh!
Comment #16
damien tournoud commentedHum. The comment looks good. But the @ in front of the db_query is required. The INSERT should fail with a duplicated key warning.
Comment #17
douggreen commentedWhat does the @ do in php? I thought it was redundant. The only place in core that there is an @db_query is in modules/node/node.module line +194, and I kinda assumed that this was a mistake.
Comment #18
damien tournoud commentedThe @ prefix suppresses error reporting (http://www.php.net/manual/en/language.operators.errorcontrol.php).
Comment #19
douggreen commentedI think that this is ready now... new patch attached restoring the '@' sign. Damien's patch (#11) above was good enough too. My latest patch should be identical to his, just with a slightly different comment.
The reason this patch has take so long is that it just took some education on my part to understand why we needed @db_query!
Comment #20
damien tournoud commented@douggreen, I like your comment better.
Marking #19 as (very well) reviewed. We finally made it!
Comment #21
catchstill applies cleanly.
Comment #22
dries commentedTested, reviewed and committed. Thanks.
Comment #23
moshe weitzman commentedpatch applies just fine to D6.
Comment #24
gábor hojtsyThanks, committed to 6.x.
Comment #25
Anonymous (not verified) commentedAutomatically closed -- issue fixed for two weeks with no activity.