Changeset 5089
- Timestamp:
- 10/15/08 20:31:41 (9 months ago)
- Location:
- branches/1.0
- Files:
-
- 5 modified
-
lib/Doctrine/Template/Listener/SoftDelete.php (modified) (2 diffs)
-
tests/SoftDeleteTestCase.php (modified) (3 diffs)
-
tests/Ticket/1116TestCase.php (modified) (1 diff)
-
tests/Ticket/1121TestCase.php (modified) (1 diff)
-
tests/Ticket/1480TestCase.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/1.0/lib/Doctrine/Template/Listener/SoftDelete.php
r4969 r5089 93 93 $query->from('')->update($params['component']['table']->getOption('name') . ' ' . $params['alias']); 94 94 $query->set($field, '?', array(true)); 95 $query->addWhere($field . ' = ? ', array(false));95 $query->addWhere($field . ' = ? OR ' . $field . ' IS NULL', array(false)); 96 96 } 97 97 } … … 110 110 $query = $event->getQuery(); 111 111 if ( ! $query->contains($field)) { 112 $query->addWhere($field . ' = ? ', array(false));112 $query->addWhere($field . ' = ? OR ' . $field . ' IS NULL', array(false)); 113 113 } 114 114 } -
branches/1.0/tests/SoftDeleteTestCase.php
r4716 r5089 59 59 ->where('s.name = ?', array('test')); 60 60 61 $this->assertEqual($q->getSql(), 'SELECT s.name AS s__name, s.something AS s__something, s.deleted AS s__deleted FROM soft_delete_test s WHERE s.name = ? AND s.deleted = ?');61 $this->assertEqual($q->getSql(), 'SELECT s.name AS s__name, s.something AS s__something, s.deleted AS s__deleted FROM soft_delete_test s WHERE s.name = ? AND (s.deleted = ? OR s.deleted IS NULL)'); 62 62 $params = $q->getParams(); 63 63 $this->assertEqual(count($params), 2); … … 84 84 85 85 $results = $q->execute(array('test1', 'test2')); 86 $this->assertEqual($q->getSql(), 'SELECT s.name AS s__name, s.something AS s__something, s.deleted AS s__deleted FROM soft_delete_test s WHERE s.name = ? AND s.something = ? AND s.deleted = ?');86 $this->assertEqual($q->getSql(), 'SELECT s.name AS s__name, s.something AS s__something, s.deleted AS s__deleted FROM soft_delete_test s WHERE s.name = ? AND s.something = ? AND (s.deleted = ? OR s.deleted IS NULL)'); 87 87 $this->assertEqual($q->getParams(array('test1', 'test2')), array('test1', 'test2', false)); 88 88 $this->assertEqual($results->count(), 1); … … 100 100 ->addWhere('s.something = ?', 'test2'); 101 101 102 $this->assertEqual($q->getCountQuery(), 'SELECT COUNT(DISTINCT s.name) AS num_results FROM soft_delete_test s WHERE s.name = ? AND s.something = ? AND s.deleted = ?GROUP BY s.name');102 $this->assertEqual($q->getCountQuery(), 'SELECT COUNT(DISTINCT s.name) AS num_results FROM soft_delete_test s WHERE s.name = ? AND s.something = ? AND (s.deleted = ? OR s.deleted IS NULL) GROUP BY s.name'); 103 103 $this->assertEqual($q->count(), 0); 104 104 -
branches/1.0/tests/Ticket/1116TestCase.php
r4796 r5089 61 61 $this->assertEqual(count($params), 2); // now we have array('test',null) very strange ..... 62 62 63 $this->assertEqual($sql, "SELECT u.id AS u__id, u.username AS u__username, u.deleted AS u__deleted FROM user u WHERE u.username = ? AND u.deleted = ?");63 $this->assertEqual($sql, "SELECT u.id AS u__id, u.username AS u__username, u.deleted AS u__deleted FROM user u WHERE u.username = ? AND (u.deleted = ? OR u.deleted IS NULL)"); 64 64 $this->assertEqual($params, array('test', false)); 65 65 -
branches/1.0/tests/Ticket/1121TestCase.php
r4716 r5089 51 51 52 52 // The condition and params for UserProfile SoftDelete and are not added properly 53 $this->assertEqual($q->getSql(), 'SELECT t.id AS t__id, t.username AS t__username, t.password AS t__password, t.profile_id AS t__profile_id, t.deleted AS t__deleted, t2.id AS t2__id, t2.name AS t2__name, t2.about AS t2__about, t2.deleted AS t2__deleted FROM ticket_1121__user t LEFT JOIN ticket_1121__profile t2 ON t.profile_id = t2.id WHERE t.deleted = ? AND t2.deleted = ?');53 $this->assertEqual($q->getSql(), 'SELECT t.id AS t__id, t.username AS t__username, t.password AS t__password, t.profile_id AS t__profile_id, t.deleted AS t__deleted, t2.id AS t2__id, t2.name AS t2__name, t2.about AS t2__about, t2.deleted AS t2__deleted FROM ticket_1121__user t LEFT JOIN ticket_1121__profile t2 ON t.profile_id = t2.id WHERE (t.deleted = ? OR t.deleted IS NULL) AND (t2.deleted = ? OR t2.deleted IS NULL)'); 54 54 $this->assertEqual(count($q->getParams()), 2); 55 55 Doctrine_Manager::getInstance()->setAttribute('use_dql_callbacks', false); -
branches/1.0/tests/Ticket/1480TestCase.php
r4976 r5089 46 46 ->from('Foo f') 47 47 ->addWhere('f.id IN (SELECT user_id FROM Bar b)'); 48 $this->assertEqual($q->getSql(), 'SELECT f.id AS f__id, f.name AS f__name, f.password AS f__password, f.deleted AS f__deleted FROM foo f WHERE f.id IN (SELECT f.user_id AS f__user_id FROM bar b WHERE f.deleted = ?) AND f.deleted = ?');48 $this->assertEqual($q->getSql(), 'SELECT f.id AS f__id, f.name AS f__name, f.password AS f__password, f.deleted AS f__deleted FROM foo f WHERE f.id IN (SELECT f.user_id AS f__user_id FROM bar b) AND (f.deleted = ? OR f.deleted IS NULL)'); 49 49 $this->assertEqual(count($q->getParams()), 2); 50 50 Doctrine_Manager::getInstance()->setAttribute('use_dql_callbacks', false);