Browse Source

Fix SQLite

Alexandre Alapetite 9 năm trước cách đây
mục cha
commit
c35111fe53
2 tập tin đã thay đổi với 11 bổ sung2 xóa
  1. 6 1
      app/Models/StatsDAO.php
  2. 5 1
      app/Models/StatsDAOSQLite.php

+ 6 - 1
app/Models/StatsDAO.php

@@ -4,6 +4,10 @@ class FreshRSS_StatsDAO extends Minz_ModelPdo {
 
 	const ENTRY_COUNT_PERIOD = 30;
 
+	protected function sqlFloor($s) {
+		return "FLOOR($s)";
+	}
+
 	/**
 	 * Calculates entry repartition for all feeds and for main stream.
 	 *
@@ -65,8 +69,9 @@ SQL;
 		$oldest = $midnight - (self::ENTRY_COUNT_PERIOD * 86400);
 
 		// Get stats per day for the last 30 days
+		$sqlDay = $this->sqlFloor("(date - $midnight) / 86400");
 		$sql = <<<SQL
-SELECT FLOOR((date - {$midnight}) / 86400) AS day,
+SELECT {$sqlDay} AS day,
 COUNT(*) as count
 FROM `{$this->prefix}entry`
 WHERE date >= {$oldest} AND date < {$midnight}

+ 5 - 1
app/Models/StatsDAOSQLite.php

@@ -2,6 +2,10 @@
 
 class FreshRSS_StatsDAOSQLite extends FreshRSS_StatsDAO {
 
+	protected function sqlFloor($s) {
+		return "CAST(($s) AS INT)";
+	}
+
 	protected function calculateEntryRepartitionPerFeedPerPeriod($period, $feed = null) {
 		if ($feed) {
 			$restrict = "WHERE e.id_feed = {$feed}";
@@ -26,7 +30,7 @@ SQL;
 			$repartition[(int) $value['period']] = (int) $value['count'];
 		}
 
-		return $this->convertToSerie($repartition);
+		return $repartition;
 	}
 
 }