From 14226fc845521fd9c7100a056db9aaac0a7352da Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 05 Jun 2013 12:08:27 -0400
Subject: [PATCH] Use built-in sqlite functions to "emulate" now() and unix_timestamp()

---
 program/lib/Roundcube/rcube_db_sqlite.php |   34 +++++++++++++---------------------
 1 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/program/lib/Roundcube/rcube_db_sqlite.php b/program/lib/Roundcube/rcube_db_sqlite.php
index 145b8a3..e548ed1 100644
--- a/program/lib/Roundcube/rcube_db_sqlite.php
+++ b/program/lib/Roundcube/rcube_db_sqlite.php
@@ -56,10 +56,6 @@
      */
     protected function conn_configure($dsn, $dbh)
     {
-        // we emulate via callback some missing functions
-        $dbh->sqliteCreateFunction('unix_timestamp', array('rcube_db_sqlite', 'sqlite_unix_timestamp'), 1);
-        $dbh->sqliteCreateFunction('now', array('rcube_db_sqlite', 'sqlite_now'), 0);
-
         // Initialize database structure in file is empty
         if (!empty($dsn['database']) && !filesize($dsn['database'])) {
             $data = file_get_contents(RCUBE_INSTALL_PATH . 'SQL/sqlite.initial.sql');
@@ -83,30 +79,26 @@
     }
 
     /**
-     * Callback for sqlite: unix_timestamp()
+     * Return SQL statement to convert a field value into a unix timestamp
+     *
+     * @param string $field Field name
+     *
+     * @return string  SQL statement to use in query
+     * @deprecated
      */
-    public static function sqlite_unix_timestamp($timestamp = '')
+    public function unixtimestamp($field)
     {
-        $timestamp = trim($timestamp);
-        if (!$timestamp) {
-            $ret = time();
-        }
-        else if (!preg_match('/^[0-9]+$/s', $timestamp)) {
-            $ret = strtotime($timestamp);
-        }
-        else {
-            $ret = $timestamp;
-        }
-
-        return $ret;
+        return "strftime('%s', $field)";
     }
 
     /**
-     * Callback for sqlite: now()
+     * Return SQL function for current time and date
+     *
+     * @return string SQL function to use in query
      */
-    public static function sqlite_now()
+    public function now()
     {
-        return date("Y-m-d H:i:s");
+        return "datetime('now')";
     }
 
     /**

--
Gitblit v1.9.1