diff options
-rw-r--r-- | README.markdown | 1 | ||||
-rw-r--r-- | idiorm.php | 2 | ||||
-rwxr-xr-x | test/test_queries.php | 6 |
3 files changed, 8 insertions, 1 deletions
diff --git a/README.markdown b/README.markdown index f441206..4a361ba 100644 --- a/README.markdown +++ b/README.markdown @@ -45,6 +45,7 @@ Changelog * Add `is_new` method - closes issue #85 * Fix last insert ID for PostgreSQL using RETURNING - closes issues #62 and #89 [[laacz](https://github.com/laacz)] * Add `get_last_statement()` - closes issue #84 [[tag](https://github.com/tag)] +* Fix when using `set_expr` alone it doesn't trigger query creation - closes issue #90 #### 1.2.3 - release 2012-11-28 @@ -1329,7 +1329,7 @@ if (!$this->_is_new) { // UPDATE // If there are no dirty values, do nothing - if (count($values) == 0) { + if (empty($values) && empty($this->_expr_fields)) { return true; } $query = $this->_build_update(); diff --git a/test/test_queries.php b/test/test_queries.php index d3749cb..d30a49f 100755 --- a/test/test_queries.php +++ b/test/test_queries.php @@ -326,6 +326,12 @@ $expected = 'SELECT * FROM `widget` WHERE comments LIKE "has been released?%"'; Tester::check_equal('Issue #57 - _log_query method raises a warning when query contains "?"', $expected); + $widget = ORM::for_table('widget')->find_one(1); + $widget->set_expr('added', 'NOW()'); + $widget->save(); + $expected = "UPDATE `widget` SET `added` = NOW() WHERE `id` = '1'"; + Tester::check_equal("Issue #90 - When using set_expr alone it doesn't trigger query creation", $expected); + // Tests that alter Idiorm's config are done last ORM::configure('id_column', 'primary_key'); |