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

Reply via email to