Author: dr
Date: Mon Dec 3 13:43:47 2007
New Revision: 6902
Log:
- Fixed bug #12152: The SQLite's unixTimestamp() expression function
implementation uses the current UTC offset, instead of the UTC offset that
belongs to the date for which a Unix timestamp should be generated.
Modified:
trunk/Database/ChangeLog
trunk/Database/src/handlers/sqlite.php
trunk/Database/src/sqlabstraction/implementations/expression_sqlite.php
trunk/Database/src/sqlabstraction/implementations/query_sqlite_function_implementations.php
trunk/Database/tests/sqlabstraction/expression_test.php
Modified: trunk/Database/ChangeLog
==============================================================================
--- trunk/Database/ChangeLog [iso-8859-1] (original)
+++ trunk/Database/ChangeLog [iso-8859-1] Mon Dec 3 13:43:47 2007
@@ -1,3 +1,11 @@
+1.3.3 - [RELEASEDATE]
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Fixed bug #12152: The SQLite's unixTimestamp() expression function
+ implementation uses the current UTC offset, instead of the UTC offset that
+ belongs to the date for which a Unix timestamp should be generated.
+
+
1.3.2 - Wednesday 28 November 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Modified: trunk/Database/src/handlers/sqlite.php
==============================================================================
--- trunk/Database/src/handlers/sqlite.php [iso-8859-1] (original)
+++ trunk/Database/src/handlers/sqlite.php [iso-8859-1] Mon Dec 3 13:43:47 2007
@@ -72,6 +72,7 @@
$this->sqliteCreateFunction( 'floor', array(
'ezcQuerySqliteFunctions', 'floorImpl'), 1 );
$this->sqliteCreateFunction( 'ceil', array( 'ezcQuerySqliteFunctions',
'ceilImpl'), 1 );
$this->sqliteCreateFunction( 'concat', array(
'ezcQuerySqliteFunctions', 'concatImpl') );
+ $this->sqliteCreateFunction( 'toUnixTimestamp', array(
'ezcQuerySqliteFunctions', 'toUnixTimestampImpl' ), 1 );
$this->sqliteCreateFunction( 'now', 'time', 0 );
}
Modified:
trunk/Database/src/sqlabstraction/implementations/expression_sqlite.php
==============================================================================
--- trunk/Database/src/sqlabstraction/implementations/expression_sqlite.php
[iso-8859-1] (original)
+++ trunk/Database/src/sqlabstraction/implementations/expression_sqlite.php
[iso-8859-1] Mon Dec 3 13:43:47 2007
@@ -99,7 +99,7 @@
else
{
$column = $this->getIdentifier( $column );
- return " strftime( '%s', {$column} ) - ".date('Z')." ";
+ return " toUnixTimestamp( {$column} ) ";
}
}
Modified:
trunk/Database/src/sqlabstraction/implementations/query_sqlite_function_implementations.php
==============================================================================
---
trunk/Database/src/sqlabstraction/implementations/query_sqlite_function_implementations.php
[iso-8859-1] (original)
+++
trunk/Database/src/sqlabstraction/implementations/query_sqlite_function_implementations.php
[iso-8859-1] Mon Dec 3 13:43:47 2007
@@ -87,5 +87,16 @@
{
return (int) ceil( $number );
}
+
+ /**
+ * Returns the unix timestamp belonging to a date/time spec
+ *
+ * @param string $spec
+ * @return integer
+ */
+ static public function toUnixTimestampImpl( $spec )
+ {
+ return strtotime( $spec );
+ }
}
?>
Modified: trunk/Database/tests/sqlabstraction/expression_test.php
==============================================================================
--- trunk/Database/tests/sqlabstraction/expression_test.php [iso-8859-1]
(original)
+++ trunk/Database/tests/sqlabstraction/expression_test.php [iso-8859-1] Mon
Dec 3 13:43:47 2007
@@ -976,12 +976,20 @@
$this->assertSame( 4, (int)$stmt->fetchColumn( 0 ) );
}
- public function testUnixTimestampImpl()
+ public function testUnixTimestampImpl1()
{
$this->q->select( $this->e->unixTimestamp( "'2007-05-03 11:54:17'" ) );
$stmt = $this->q->prepare();
$stmt->execute();
$this->assertSame( strtotime( '2007-05-03 11:54:17' ),
(int)$stmt->fetchColumn( 0 ) );
+ }
+
+ public function testUnixTimestampImpl2()
+ {
+ $this->q->select( $this->e->unixTimestamp( "'2007-12-03 11:54:17'" ) );
+ $stmt = $this->q->prepare();
+ $stmt->execute();
+ $this->assertSame( strtotime( '2007-12-03 11:54:17' ),
(int)$stmt->fetchColumn( 0 ) );
}
public function testDateSubSecondImpl()
--
svn-components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/svn-components