[limb-svn] r6800 - in 3.x/trunk/limb/dbal: src/query tests/cases/non-driver/query

svn at limb-project.com svn at limb-project.com
Thu Feb 14 23:57:22 MSK 2008


Author: pachanga
Date: 2008-02-14 23:57:21 +0300 (Thu, 14 Feb 2008)
New Revision: 6800
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6800

Modified:
   3.x/trunk/limb/dbal/src/query/lmbSelectRawQuery.class.php
   3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbSelectRawQueryTest.class.php
Log:
-- adding addRawOrder() into lmbSelectRawQuery which adds order fields as is without escaping

Modified: 3.x/trunk/limb/dbal/src/query/lmbSelectRawQuery.class.php
===================================================================
--- 3.x/trunk/limb/dbal/src/query/lmbSelectRawQuery.class.php	2008-02-14 12:32:06 UTC (rev 6799)
+++ 3.x/trunk/limb/dbal/src/query/lmbSelectRawQuery.class.php	2008-02-14 20:57:21 UTC (rev 6800)
@@ -90,6 +90,13 @@
     return $this;
   }
 
+  function addRawOrder($field)
+  {
+    $this->_order[] = $field;
+      
+    return $this;
+  }
+
   function order($field, $type='ASC')
   {
     return $this->addOrder($field, $type);

Modified: 3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbSelectRawQueryTest.class.php
===================================================================
--- 3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbSelectRawQueryTest.class.php	2008-02-14 12:32:06 UTC (rev 6799)
+++ 3.x/trunk/limb/dbal/tests/cases/non-driver/query/lmbSelectRawQueryTest.class.php	2008-02-14 20:57:21 UTC (rev 6800)
@@ -297,6 +297,17 @@
                        "SELECT * FROM test \nORDER BY 't1' ASC,'t2' DESC");
   }
 
+  function testAddRawOrderNoOrderClause()
+  {
+    $sql = new lmbSelectRawQuery("SELECT * FROM test \n%order%", $this->conn);
+
+    $sql->addRawOrder('rand1()');
+    $sql->addRawOrder('rand2()');
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test \nORDER BY rand1(),rand2()");
+  }
+
   function testAddOrderAsArray()
   {
     $sql = new lmbSelectRawQuery("SELECT * FROM test \n%order%", $this->conn);
@@ -316,6 +327,17 @@
                        "SELECT * FROM test ORDER BY\n 't1' ASC,'t2' DESC");
   }
 
+  function testAddRawOrderWithOrderClause()
+  {
+    $sql = new lmbSelectRawQuery("SELECT * FROM test ORDER BY\n %order%", $this->conn);
+
+    $sql->addRawOrder('rand1()');
+    $sql->addRawOrder('rand2()');
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test ORDER BY\n rand1(),rand2()");
+  }
+
   function testAddOrderWithOrderClause2()
   {
     $sql = new lmbSelectRawQuery("SELECT * FROM test ORDER BY t0 DESC\n %order%", $this->conn);
@@ -335,6 +357,20 @@
                        'SELECT * FROM test ORDER BY t0 DESC');
   }
 
+  function testMixRawAndRegularOrder()
+  {
+    $sql = new lmbSelectRawQuery("SELECT * FROM test \n%order%", $this->conn);
+
+    $sql->addRawOrder('rand1()');
+    $sql->addOrder('t1');
+    $sql->addRawOrder('rand2()');
+    $sql->addOrder('t2', 'DESC');
+
+    $this->assertEqual($sql->toString(),
+                       "SELECT * FROM test \nORDER BY rand1(),'t1' ASC,rand2(),'t2' DESC");
+  }
+
+
   function testNoGroupsAdded()
   {
     $sql = new lmbSelectRawQuery('SELECT * FROM test', $this->conn);



More information about the limb-svn mailing list