From 61adae1e49b67cfe79d5daf2bc9e649b343090bb Mon Sep 17 00:00:00 2001
From: Brice Maron <brice@bmaron.net>
Date: Sun, 24 Jun 2012 19:41:23 +0000
Subject: [PATCH] Use intervals for sessions deletion with postgres fix oc-492

---
 apps/media/lib_ampache.php | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/apps/media/lib_ampache.php b/apps/media/lib_ampache.php
index f5c91661ab..255e6f468f 100644
--- a/apps/media/lib_ampache.php
+++ b/apps/media/lib_ampache.php
@@ -77,7 +77,7 @@ class OC_MEDIA_AMPACHE{
 					$songs=OC_MEDIA_COLLECTION::getSongCount();
 					$artists=OC_MEDIA_COLLECTION::getArtistCount();
 					$albums=OC_MEDIA_COLLECTION::getAlbumCount();
-					$query=OCP\DB::prepare("INSERT INTO *PREFIX*media_sessions (`session_id`, `token`, `user_id`, `start`) VALUES (NULL, ?, ?, now());");
+					$query=OCP\DB::prepare("INSERT INTO *PREFIX*media_sessions (`token`, `user_id`, `start`) VALUES (?, ?, now());");
 					$query->execute(array($token,$user));
 					$expire=date('c',time()+600);
 					echo('<?xml version="1.0" encoding="UTF-8"?>');
@@ -136,8 +136,14 @@ class OC_MEDIA_AMPACHE{
 				return false;
 			}
 		}
+		$CONFIG_DBTYPE = OCP\Config::getSystemValue( "dbtype", "sqlite" );
+		if($CONFIG_DBTYPE == 'psql'){
+			$interval = ' \'600s\'::interval ';
+		}else {
+			$interval = '600';
+		}
 		//remove old sessions
-		$query=OCP\DB::prepare("DELETE from *PREFIX*media_sessions WHERE start<(NOW()-600)");
+		$query=OCP\DB::prepare("DELETE from *PREFIX*media_sessions WHERE start<(NOW() - ".$interval.")");
 		$query->execute();
 		
 		$query=OCP\DB::prepare("SELECT user_id from *PREFIX*media_sessions WHERE token=?");
-- 
GitLab