From ef79a2b4846c43a8801b4d8c83d366a6d8e74869 Mon Sep 17 00:00:00 2001 From: slene Date: Sat, 4 Jan 2014 00:04:15 +0800 Subject: [PATCH] fix #440 --- orm/db.go | 2 ++ orm/db_tables.go | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/orm/db.go b/orm/db.go index 782e3bc3..66ae498e 100644 --- a/orm/db.go +++ b/orm/db.go @@ -461,6 +461,8 @@ func (d *dbBase) deleteRels(q dbQuerier, mi *modelInfo, args []interface{}, tz * func (d *dbBase) DeleteBatch(q dbQuerier, qs *querySet, mi *modelInfo, cond *Condition, tz *time.Location) (int64, error) { tables := newDbTables(mi, d.ins) + tables.skipEnd = true + if qs != nil { tables.parseRelated(qs.related, qs.relDepth) } diff --git a/orm/db_tables.go b/orm/db_tables.go index 1ab47cdb..972077c2 100644 --- a/orm/db_tables.go +++ b/orm/db_tables.go @@ -23,6 +23,7 @@ type dbTables struct { tables []*dbTable mi *modelInfo base dbBaser + skipEnd bool } func (t *dbTables) set(names []string, mi *modelInfo, fi *fieldInfo, inner bool) *dbTable { @@ -221,9 +222,13 @@ func (t *dbTables) parseExprs(mi *modelInfo, exprs []string) (index, name string inner = false } - jt, _ := t.add(names, mmi, fi, inner) - jt.jtl = jtl - jtl = jt + if num == i && t.skipEnd { + } else { + jt, _ := t.add(names, mmi, fi, inner) + jt.jtl = jtl + jtl = jt + } + } if num == i {