From 48930b60ebd37488079c793a65f6f8a30f928c04 Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Tue, 28 Oct 2014 17:01:05 +0800 Subject: [PATCH 1/2] Fix spelling error in README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f7550408..41ee9c4d 100644 --- a/README.md +++ b/README.md @@ -164,7 +164,7 @@ db.NewRecord(user) // => true db.Create(&user) -// will ruturn false after `user` created +// will return false after `user` created db.NewRecord(user) // => false // You could use `Save` to create record also if its primary key is null @@ -691,7 +691,7 @@ db.Exec("UPDATE orders SET shipped_at=? WHERE id IN (?)", time.Now, []int64{11,2 ## Row & Rows -You are even possible to get query result as `*sql.Row` or `*sql.Rows` +It is even possible to get query result as `*sql.Row` or `*sql.Rows` ```go row := db.Table("users").Where("name = ?", "jinzhu").Select("name, age").Row() // (*sql.Row) From a29ac54e484be3c027d28090b59118be79dd4864 Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Tue, 28 Oct 2014 17:18:11 +0800 Subject: [PATCH 2/2] Limit condition should not be inherited by following queries --- main.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 3a6eb5c1..14a76b19 100644 --- a/main.go +++ b/main.go @@ -166,12 +166,18 @@ func (s *DB) Assign(attrs ...interface{}) *DB { } func (s *DB) First(out interface{}, where ...interface{}) *DB { - return s.clone().Limit(1).NewScope(out).InstanceSet("gorm:order_by_primary_key", "ASC"). + newScope := s.clone().NewScope(out) + newScope.Search = newScope.Search.clone() + newScope.Search.limit(1) + return newScope.InstanceSet("gorm:order_by_primary_key", "ASC"). inlineCondition(where...).callCallbacks(s.parent.callback.queries).db } func (s *DB) Last(out interface{}, where ...interface{}) *DB { - return s.clone().Limit(1).NewScope(out).InstanceSet("gorm:order_by_primary_key", "DESC"). + newScope := s.clone().NewScope(out) + newScope.Search = newScope.Search.clone() + newScope.Search.limit(1) + return newScope.InstanceSet("gorm:order_by_primary_key", "DESC"). inlineCondition(where...).callCallbacks(s.parent.callback.queries).db }