Plop,
Je viens de voir passer les tickets sur les incompatibilités sqlite et ces
^$^'(é"( de UPDATE et DELETE pas supportés de manière uniforme selon les
drivers.
Je propose une approche radicale : faire une requête uniforme à base de
select imbriqué, qui permettra de virer ces tests de drivers dans dcBlog,
et ce pour la prochaine version 2.6.X.
En clair, ce qui va changer :
Dans delComments :
DELETE FROM dc_comment tc
USING dc_post tp
WHERE tc.post_id = tp.post_id '.
AND tp.blog_id = 'default'
AND comment_id in (...)
AND user_id='...'
deviendra :
DELETE FROM dc_comment
WHERE comment_id in (..)
AND post_id in (SELECT tp.post_id from dc_post where tp.blog_id='default'
and tp.user_id='...');
Dans delJunkComments on aura un truc du genre :
DELETE FROM dc_comment
WHERE comment_status = -1
AND post_id in (
SELECT tp.post_id
FROM dc_post
WHERE tp.blog_id='default'
AND tp.user_id='...'
);
dans updComments:
UPDATE dc_comment tc
SET comment_status = '...'
FROM dc_post tp
WHERE blog_id = 'default'
AND comment_id in (...)
AND tc.post_id = tp.post_id
AND user_id = '...'
deviendra :
UPDATE dc_comment
SET comment_status = '...'
WHERE post_id in (
SELECT tp.post_id
FROM dc_post tp
WHERE tp.blog_id = 'default'
AND tp.user_id = '...'
)
Des objections ?
--
Bruno