From 1490814686233dc8a693bd54e0d09b74131ea313 Mon Sep 17 00:00:00 2001
From: miigotu <miigotu@gmail.com>
Date: Sat, 5 Dec 2015 18:32:36 -0800
Subject: [PATCH] Fix error with sql when checking should_update for ended
 shows (this never worked before, everything was ALWAYS null because of
 checking is some values where = 'x' and the columns are numeric Also, make it
 0 when the WHERE causes it to have no rows to calculate min or max Fixes
 https://github.com/SickRage/sickrage-issues/issues/151

---
 sickbeard/tv.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/sickbeard/tv.py b/sickbeard/tv.py
index 9b346c3d2..4136255b8 100644
--- a/sickbeard/tv.py
+++ b/sickbeard/tv.py
@@ -302,21 +302,21 @@ class TVShow(object):
         # get latest aired episode to compare against today - graceperiod and today + graceperiod
         myDB = db.DBConnection()
         sql_result = myDB.select(
-            "SELECT MAX(airdate) FROM tv_episodes WHERE showid = ? AND season > '0' AND airdate > '1' AND status > '1'",
+            "SELECT IFNULL(MAX(airdate), 0) as last_aired FROM tv_episodes WHERE showid = ? AND season > 0 AND airdate > 1 AND status > 1",
             [self.indexerid])
 
-        if sql_result:
-            last_airdate = datetime.date.fromordinal(sql_result[0][0])
+        if sql_result and sql_result[0]['last_aired'] != 0:
+            last_airdate = datetime.date.fromordinal(sql_result[0]['last_aired'])
             if last_airdate >= (update_date - graceperiod) and last_airdate <= (update_date + graceperiod):
                 return True
 
         # get next upcoming UNAIRED episode to compare against today + graceperiod
         sql_result = myDB.select(
-            "SELECT MIN(airdate) FROM tv_episodes WHERE showid = ? AND season > '0' AND airdate > '1' AND status = '1'",
+            "SELECT IFNULL(MIN(airdate), 0) as airing_next FROM tv_episodes WHERE showid = ? AND season > 0 AND airdate > 1 AND status = 1",
             [self.indexerid])
 
-        if sql_result:
-            next_airdate = datetime.date.fromordinal(sql_result[0][0])
+        if sql_result and sql_result[0]['airing_next'] != 0:
+            next_airdate = datetime.date.fromordinal(sql_result[0]['airing_next'])
             if next_airdate <= (update_date + graceperiod):
                 return True
 
-- 
GitLab