diff options
Diffstat (limited to 'models/db')
-rw-r--r-- | models/db/context.go | 7 | ||||
-rwxr-xr-x | models/db/engine.go | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/models/db/context.go b/models/db/context.go index 55e38ba7e5..833c26ff6c 100644 --- a/models/db/context.go +++ b/models/db/context.go @@ -35,7 +35,7 @@ type Context struct { func WithEngine(ctx context.Context, e Engine) *Context { return &Context{ Context: ctx, - e: e, + e: e.Context(ctx), } } @@ -52,6 +52,11 @@ func (ctx *Context) Value(key interface{}) interface{} { return ctx.Context.Value(key) } +// WithContext returns this engine tied to this context +func (ctx *Context) WithContext(other context.Context) *Context { + return WithEngine(other, ctx.e) +} + // Engined structs provide an Engine type Engined interface { Engine() Engine diff --git a/models/db/engine.go b/models/db/engine.go index 63e1d5547a..665808d701 100755 --- a/models/db/engine.go +++ b/models/db/engine.go @@ -64,6 +64,7 @@ type Engine interface { Distinct(...string) *xorm.Session Query(...interface{}) ([]map[string][]byte, error) Cols(...string) *xorm.Session + Context(ctx context.Context) *xorm.Session } // TableInfo returns table's information via an object |