Author: Alexandru Stanoi Date: 2007-01-29 12:05:24 +0100 (Mon, 29 Jan 2007) New Revision: 4593
Log: - Fixed issue #9526: Implemented expression now() for each database handler. Modified: trunk/Database/ChangeLog trunk/Database/src/sqlabstraction/expression.php trunk/Database/src/sqlabstraction/implementations/expression_oracle.php trunk/Database/src/sqlabstraction/implementations/expression_pgsql.php trunk/Database/src/sqlabstraction/implementations/expression_sqlite.php trunk/Database/tests/sqlabstraction/expression_test.php Modified: trunk/Database/ChangeLog =================================================================== --- trunk/Database/ChangeLog 2007-01-29 09:16:29 UTC (rev 4592) +++ trunk/Database/ChangeLog 2007-01-29 11:05:24 UTC (rev 4593) @@ -7,7 +7,9 @@ - Implemented enhancement #8473: Oracle Limit/Offset optimization. - Implemented issue #9965: Support for delayed initialization through ezcBaseInit. +- Fixed issue #9526: Implemented expression now() for each database handler. + 1.2 - Monday 18 December 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Modified: trunk/Database/src/sqlabstraction/expression.php =================================================================== --- trunk/Database/src/sqlabstraction/expression.php 2007-01-29 09:16:29 UTC (rev 4592) +++ trunk/Database/src/sqlabstraction/expression.php 2007-01-29 11:05:24 UTC (rev 4593) @@ -758,7 +758,7 @@ } /** - * Returns the current system date. + * Returns the current system date and time. * * @return string */ Modified: trunk/Database/src/sqlabstraction/implementations/expression_oracle.php =================================================================== --- trunk/Database/src/sqlabstraction/implementations/expression_oracle.php 2007-01-29 09:16:29 UTC (rev 4592) +++ trunk/Database/src/sqlabstraction/implementations/expression_oracle.php 2007-01-29 11:05:24 UTC (rev 4593) @@ -72,5 +72,19 @@ return "substr( {$value}, {$from}, {$len} )"; } } + + /** + * Returns the current system date and time. + * + * Note: The returned timestamp is a SYSDATE. + * The format can be set after connecting with e.g.: + * ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS' + * + * @return string + */ + public function now() + { + return "LOCALTIMESTAMP"; + } } ?> Modified: trunk/Database/src/sqlabstraction/implementations/expression_pgsql.php =================================================================== --- trunk/Database/src/sqlabstraction/implementations/expression_pgsql.php 2007-01-29 09:16:29 UTC (rev 4592) +++ trunk/Database/src/sqlabstraction/implementations/expression_pgsql.php 2007-01-29 11:05:24 UTC (rev 4593) @@ -114,5 +114,15 @@ return join( ' || ' , $cols ); } + + /** + * Returns the current system date and time. + * + * @return string + */ + public function now() + { + return "LOCALTIMESTAMP(0)"; + } } ?> Modified: trunk/Database/src/sqlabstraction/implementations/expression_sqlite.php =================================================================== --- trunk/Database/src/sqlabstraction/implementations/expression_sqlite.php 2007-01-29 09:16:29 UTC (rev 4592) +++ trunk/Database/src/sqlabstraction/implementations/expression_sqlite.php 2007-01-29 11:05:24 UTC (rev 4593) @@ -45,5 +45,15 @@ return "substr( {$value}, {$from}, {$len} )"; } } + + /** + * Returns the current system date and time. + * + * @return string + */ + public function now() + { + return '"' . date( 'Y-m-d H:i:s' ) . '"'; + } } ?> Modified: trunk/Database/tests/sqlabstraction/expression_test.php =================================================================== --- trunk/Database/tests/sqlabstraction/expression_test.php 2007-01-29 09:16:29 UTC (rev 4592) +++ trunk/Database/tests/sqlabstraction/expression_test.php 2007-01-29 11:05:24 UTC (rev 4593) @@ -373,7 +373,29 @@ public function testNow() { - $reference = 'NOW()'; + switch ( get_class( $this->db ) ) + { + case 'ezcDbHandlerMysql': + $reference = 'NOW()'; + break; + + case 'ezcDbHandlerSqlite': + $reference = '"' . date( 'Y-m-d H:i:s' ) . '"'; + break; + + case 'ezcDbHandlerPgsql': + $reference = 'LOCALTIMESTAMP(0)'; + break; + + case 'ezcDbHandlerOracle': + $reference = "LOCALTIMESTAMP"; + break; + + default: + $reference = 'NOW()'; + break; + } + $this->assertEquals( $reference, $this->e->now() ); } -- svn-components mailing list svn-components@lists.ez.no http://lists.ez.no/mailman/listinfo/svn-components