Changeset View
Changeset View
Standalone View
Standalone View
security/mailzu/files/patch-lib-DBEngine.class.php
--- lib/DBEngine.class.php.orig 2010-11-24 11:32:33.000000000 +0100 | --- lib/DBEngine.class.php.orig 2007-06-14 19:00:15 UTC | ||||
+++ lib/DBEngine.class.php 2010-11-24 11:32:41.000000000 +0100 | +++ lib/DBEngine.class.php | ||||
@@ -132,7 +132,7 @@ | @@ -133,35 +133,35 @@ class DBEngine { | ||||
MAX(stattable.badheaders) AS badheaders, | |||||
MAX(stattable.pending) AS pending | MAX(stattable.pending) AS pending | ||||
FROM ( | FROM ( | ||||
- SELECT CAST(time_iso AS DATE) AS date, | SELECT CAST(time_iso AS DATE) AS date, | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | - COUNT(content) AS spam, | ||||
COUNT(content) AS spam, | + COUNT(msgs.content) AS spam, | ||||
0 AS banned, | 0 AS banned, | ||||
0 AS viruses, | 0 AS viruses, | ||||
@@ -141,9 +141,9 @@ | 0 AS badheaders, | ||||
0 AS pending | |||||
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | ||||
WHERE content='S' AND NOT (msgs.quar_type = '') | - WHERE content='S' AND NOT (msgs.quar_type = '') | ||||
+ WHERE msgs.content='S' AND NOT (msgs.quar_type = '') | |||||
AND msgrcpt.rs IN ('','v') | AND msgrcpt.rs IN ('','v') | ||||
- GROUP BY CAST(time_iso AS DATE) | GROUP BY CAST(time_iso AS DATE) | ||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | |||||
UNION | UNION | ||||
- SELECT CAST(time_iso AS DATE) AS date, | SELECT CAST(time_iso AS DATE) AS date, | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | |||||
0 AS spam, | 0 AS spam, | ||||
COUNT(content) AS banned, | - COUNT(content) AS banned, | ||||
+ COUNT(msgs.content) AS banned, | |||||
0 AS viruses, | 0 AS viruses, | ||||
@@ -152,9 +152,9 @@ | 0 AS badheaders, | ||||
0 AS pending | |||||
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | ||||
WHERE content='B' AND NOT (msgs.quar_type = '') | - WHERE content='B' AND NOT (msgs.quar_type = '') | ||||
+ WHERE msgs.content='B' AND NOT (msgs.quar_type = '') | |||||
AND msgrcpt.rs IN ('','v') | AND msgrcpt.rs IN ('','v') | ||||
- GROUP BY CAST(time_iso AS DATE) | GROUP BY CAST(time_iso AS DATE) | ||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | |||||
UNION | UNION | ||||
- SELECT CAST(time_iso AS DATE) AS date, | SELECT CAST(time_iso AS DATE) AS date, | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | |||||
0 AS spam, | 0 AS spam, | ||||
0 AS banned, | 0 AS banned, | ||||
COUNT(content) AS viruses, | - COUNT(content) AS viruses, | ||||
@@ -163,9 +163,9 @@ | + COUNT(msgs.content) AS viruses, | ||||
0 AS badheaders, | |||||
0 AS pending | |||||
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | ||||
WHERE content='V' AND NOT (msgs.quar_type = '') | - WHERE content='V' AND NOT (msgs.quar_type = '') | ||||
+ WHERE msgs.content='V' AND NOT (msgs.quar_type = '') | |||||
AND msgrcpt.rs IN ('','v') | AND msgrcpt.rs IN ('','v') | ||||
- GROUP BY CAST(time_iso AS DATE) | GROUP BY CAST(time_iso AS DATE) | ||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | |||||
UNION | UNION | ||||
- SELECT CAST(time_iso AS DATE) AS date, | @@ -169,10 +169,10 @@ class DBEngine { | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | |||||
0 AS spam, | 0 AS spam, | ||||
0 AS banned, | 0 AS banned, | ||||
0 AS viruses, | 0 AS viruses, | ||||
@@ -174,9 +174,9 @@ | - COUNT(content) AS badheaders, | ||||
+ COUNT(msgs.content) AS badheaders, | |||||
0 AS pending | |||||
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | ||||
WHERE content='H' AND NOT (msgs.quar_type = '') | - WHERE content='H' AND NOT (msgs.quar_type = '') | ||||
+ WHERE msgs.content='H' AND NOT (msgs.quar_type = '') | |||||
AND msgrcpt.rs IN ('','v') | AND msgrcpt.rs IN ('','v') | ||||
- GROUP BY CAST(time_iso AS DATE) | GROUP BY CAST(time_iso AS DATE) | ||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | |||||
UNION | UNION | ||||
- SELECT CAST(time_iso AS DATE) AS date, | @@ -181,7 +181,7 @@ class DBEngine { | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | |||||
0 AS spam, | |||||
0 AS banned, | 0 AS banned, | ||||
0 AS viruses, | 0 AS viruses, | ||||
@@ -184,7 +184,7 @@ | 0 AS badheaders, | ||||
COUNT(content) AS pending | - COUNT(content) AS pending | ||||
+ COUNT(msgs.content) AS pending | |||||
FROM msgs JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | FROM msgs JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | ||||
WHERE msgrcpt.rs='p' AND NOT (msgs.quar_type = '') | WHERE msgrcpt.rs='p' AND NOT (msgs.quar_type = '') | ||||
- GROUP BY CAST(time_iso AS DATE) | GROUP BY CAST(time_iso AS DATE) | ||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | @@ -240,7 +240,7 @@ class DBEngine { | ||||
) AS stattable | $recipEmailClause = $this->convertEmailaddresses2SQL($emailaddresses); | ||||
GROUP BY date | |||||
ORDER BY date"; | # mysql seems to run faster with a left join | ||||
@@ -253,7 +253,7 @@ | - if ($conf['db']['dbtype'] == 'mysql') { | ||||
MAX(stattable.badheaders) AS badheaders, | + if ($conf['db']['dbType'] == 'mysql') { | ||||
$join_type = ' LEFT JOIN'; | |||||
} else { | |||||
$join_type = ' INNER JOIN'; | |||||
@@ -254,38 +254,38 @@ class DBEngine { | |||||
MAX(stattable.pending) AS pending | MAX(stattable.pending) AS pending | ||||
FROM ( | FROM ( | ||||
- SELECT CAST(time_iso AS DATE) AS date, | SELECT CAST(time_iso AS DATE) AS date, | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | - COUNT(content) AS spam, | ||||
COUNT(content) AS spam, | + COUNT(msgs.content) AS spam, | ||||
0 AS banned, | 0 AS banned, | ||||
0 AS viruses, | 0 AS viruses, | ||||
@@ -263,9 +263,9 @@ | 0 AS badheaders, | ||||
0 AS pending | |||||
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | |||||
$join_type maddr AS recip ON msgrcpt.rid=recip.id | $join_type maddr AS recip ON msgrcpt.rid=recip.id | ||||
WHERE content='S' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | - WHERE content='S' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | ||||
+ WHERE msgs.content='S' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | |||||
AND $recipEmailClause | AND $recipEmailClause | ||||
- GROUP BY CAST(time_iso AS DATE) | GROUP BY CAST(time_iso AS DATE) | ||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | |||||
UNION | UNION | ||||
- SELECT CAST(time_iso AS DATE) AS date, | SELECT CAST(time_iso AS DATE) AS date, | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | |||||
0 AS spam, | 0 AS spam, | ||||
COUNT(content) AS banned, | - COUNT(content) AS banned, | ||||
+ COUNT(msgs.content) AS banned, | |||||
0 AS viruses, | 0 AS viruses, | ||||
@@ -275,9 +275,9 @@ | 0 AS badheaders, | ||||
0 AS pending | |||||
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | |||||
$join_type maddr AS recip ON msgrcpt.rid=recip.id | $join_type maddr AS recip ON msgrcpt.rid=recip.id | ||||
WHERE content='B' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | - WHERE content='B' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | ||||
+ WHERE msgs.content='B' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | |||||
AND $recipEmailClause | AND $recipEmailClause | ||||
- GROUP BY CAST(time_iso AS DATE) | GROUP BY CAST(time_iso AS DATE) | ||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | |||||
UNION | UNION | ||||
- SELECT CAST(time_iso AS DATE) AS date, | SELECT CAST(time_iso AS DATE) AS date, | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | |||||
0 AS spam, | 0 AS spam, | ||||
0 AS banned, | 0 AS banned, | ||||
COUNT(content) AS viruses, | - COUNT(content) AS viruses, | ||||
@@ -287,9 +287,9 @@ | + COUNT(msgs.content) AS viruses, | ||||
0 AS badheaders, | |||||
0 AS pending | |||||
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | |||||
$join_type maddr AS recip ON msgrcpt.rid=recip.id | $join_type maddr AS recip ON msgrcpt.rid=recip.id | ||||
WHERE content='V' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | - WHERE content='V' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | ||||
+ WHERE msgs.content='V' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | |||||
AND $recipEmailClause | AND $recipEmailClause | ||||
- GROUP BY CAST(time_iso AS DATE) | GROUP BY CAST(time_iso AS DATE) | ||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | |||||
UNION | UNION | ||||
- SELECT CAST(time_iso AS DATE) AS date, | @@ -293,11 +293,11 @@ class DBEngine { | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | |||||
0 AS spam, | 0 AS spam, | ||||
0 AS banned, | 0 AS banned, | ||||
0 AS viruses, | 0 AS viruses, | ||||
@@ -299,9 +299,9 @@ | - COUNT(content) AS badheaders, | ||||
+ COUNT(msgs.content) AS badheaders, | |||||
0 AS pending | |||||
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | |||||
$join_type maddr AS recip ON msgrcpt.rid=recip.id | $join_type maddr AS recip ON msgrcpt.rid=recip.id | ||||
WHERE content='H' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | - WHERE content='H' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | ||||
+ WHERE msgs.content='H' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v') | |||||
AND $recipEmailClause | AND $recipEmailClause | ||||
- GROUP BY CAST(time_iso AS DATE) | GROUP BY CAST(time_iso AS DATE) | ||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | |||||
UNION | UNION | ||||
- SELECT CAST(time_iso AS DATE) AS date, | @@ -306,7 +306,7 @@ class DBEngine { | ||||
+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date, | |||||
0 AS spam, | |||||
0 AS banned, | 0 AS banned, | ||||
0 AS viruses, | 0 AS viruses, | ||||
@@ -311,7 +311,7 @@ | 0 AS badheaders, | ||||
- COUNT(content) AS pending | |||||
+ COUNT(msgs.content) AS pending | |||||
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id | |||||
$join_type maddr AS recip ON msgrcpt.rid=recip.id | $join_type maddr AS recip ON msgrcpt.rid=recip.id | ||||
WHERE msgrcpt.rs='p' AND NOT (msgs.quar_type = '') | WHERE msgrcpt.rs='p' AND NOT (msgs.quar_type = '') | ||||
AND $recipEmailClause | |||||
- GROUP BY CAST(time_iso AS DATE) | |||||
+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE) | |||||
) AS stattable | |||||
GROUP BY date | |||||
ORDER BY date"; |