From 028d32b0ff5af3ef09879dc1b4e7407d235cbced Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Thu, 25 Nov 2010 07:39:51 +0000 Subject: [PATCH] Give SQLite a translation for MySQL's UNIX_TIMESTAMP() functions. Pg will probably need something similar. --- includes/db/Database.php | 10 +++++++++- includes/db/DatabaseSqlite.php | 9 +++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/includes/db/Database.php b/includes/db/Database.php index 26d4d2b7d0..94b95fe8c9 100644 --- a/includes/db/Database.php +++ b/includes/db/Database.php @@ -596,6 +596,14 @@ abstract class DatabaseBase implements DatabaseType { return !preg_match( '/^(?:SELECT|BEGIN|COMMIT|SET|SHOW|\(SELECT)\b/i', $sql ); } + /** + * Database specific translations like MySQL's UNIX_TIMESTAMP() to + * something the DB can use. + */ + function translateSQLFunctions( $vars ) { + return $vars; + } + /** * Usually aborts on failure. If errors are explicitly ignored, returns success. * @@ -650,7 +658,7 @@ abstract class DatabaseBase implements DatabaseType { } else { $userName = ''; } - $commentedSql = preg_replace( '/\s/', " /* $fname $userName */ ", $sql, 1 ); + $commentedSql = $this->translateSQLFunctions( preg_replace( '/\s/', " /* $fname $userName */ ", $sql, 1 ) ); # } else { # $commentedSql = $sql; # } diff --git a/includes/db/DatabaseSqlite.php b/includes/db/DatabaseSqlite.php index e29e1a48ff..3eb978ac02 100644 --- a/includes/db/DatabaseSqlite.php +++ b/includes/db/DatabaseSqlite.php @@ -363,6 +363,15 @@ class DatabaseSqlite extends DatabaseBase { return parent::makeSelectOptions( $options ); } + /** + * Database specific translations like MySQL's UNIX_TIMESTAMP() to + * something the DB can use. + */ + function translateSQLFunctions( $vars ) { + return preg_replace( '/UNIX_TIMESTAMP\(([^()]+)\)/', 'strftime("%s",\1)', $vars ); + } + + /** * Based on generic method (parent) with some prior SQLite-sepcific adjustments */ -- 2.20.1