good morning!!!!

Skip to content
Snippets Groups Projects
Commit 58a7a50a authored by José Carlos's avatar José Carlos Committed by GitHub
Browse files

Merge pull request #220 from upper/issue-219

Make clone() no longer force a new connection. Closes #219.
parents 7dbed97c 114fc6c4
No related branches found
No related tags found
No related merge requests found
......@@ -180,15 +180,21 @@ func (d *database) Close() error {
d.sessMu.Unlock()
}()
if d.sess != nil {
if d.Transaction() != nil && !d.Transaction().Committed() {
d.Transaction().Rollback()
if cleaner, ok := d.PartialDatabase.(HasCleanUp); ok {
cleaner.CleanUp()
}
d.cachedCollections.Clear()
d.cachedStatements.Clear() // Closes prepared statements as well.
if cleaner, ok := d.PartialDatabase.(HasCleanUp); ok {
cleaner.CleanUp()
tx := d.Transaction()
if tx == nil {
// Not within a transaction.
return d.sess.Close()
}
if !tx.Committed() {
tx.Rollback()
}
return d.sess.Close()
}
return nil
}
......
......@@ -133,10 +133,15 @@ func (d *database) clone() (*database, error) {
return nil, err
}
if err := clone.open(); err != nil {
clone.BaseDatabase = sqladapter.NewBaseDatabase(clone)
b, err := sqlbuilder.WithSession(clone.BaseDatabase, template)
if err != nil {
return nil, err
}
clone.Builder = b
clone.BaseDatabase.BindSession(d.BaseDatabase.Session())
return clone, nil
}
......
......@@ -132,10 +132,15 @@ func (d *database) clone() (*database, error) {
return nil, err
}
if err := clone.open(); err != nil {
clone.BaseDatabase = sqladapter.NewBaseDatabase(clone)
b, err := sqlbuilder.WithSession(clone.BaseDatabase, template)
if err != nil {
return nil, err
}
clone.Builder = b
clone.BaseDatabase.BindSession(d.BaseDatabase.Session())
return clone, nil
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment