From 5a0c7b1e75ebc24c81353b734ed77fe52bfc4adf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20Nieto?= <jose.carlos@menteslibres.net>
Date: Sat, 2 Apr 2016 11:08:08 -0600
Subject: [PATCH] Removing Drop and Use. Closes #155

---
 db.go                  |  7 -------
 mongo/database.go      | 21 ---------------------
 mongo/database_test.go | 19 -------------------
 mysql/database.go      | 25 -------------------------
 postgresql/database.go | 25 -------------------------
 ql/database.go         | 25 -------------------------
 sqlite/database.go     | 25 -------------------------
 7 files changed, 147 deletions(-)

diff --git a/db.go b/db.go
index 961b37f9..bc392928 100644
--- a/db.go
+++ b/db.go
@@ -203,13 +203,6 @@ type Database interface {
 	// Collections returns the names of all non-system tables on the database.
 	Collections() ([]string, error)
 
-	// Use attempts to connect to another database using the same connection
-	// settings.
-	Use(string) error
-
-	// Drop deletes all tables on the active database and drops the database.
-	Drop() error
-
 	// Setup stores database connection settings.
 	Setup(ConnectionURL) error
 
diff --git a/mongo/database.go b/mongo/database.go
index 44d61e4b..675cd1c1 100644
--- a/mongo/database.go
+++ b/mongo/database.go
@@ -115,27 +115,6 @@ func (s *Source) Close() error {
 	return nil
 }
 
-// Use changes the active database.
-func (s *Source) Use(database string) (err error) {
-	var conn ConnectionURL
-
-	if conn, err = ParseURL(s.connURL.String()); err != nil {
-		return err
-	}
-
-	conn.Database = database
-
-	s.connURL = conn
-
-	return s.Open()
-}
-
-// Drop drops the current database.
-func (s *Source) Drop() error {
-	err := s.database.DropDatabase()
-	return err
-}
-
 // Collections returns a list of non-system tables from the database.
 func (s *Source) Collections() (cols []string, err error) {
 	var rawcols []string
diff --git a/mongo/database_test.go b/mongo/database_test.go
index 93e297db..7052b39d 100644
--- a/mongo/database_test.go
+++ b/mongo/database_test.go
@@ -195,25 +195,6 @@ func TestOpenWithWrongData(t *testing.T) {
 	}
 }
 
-// Test USE
-func TestUse(t *testing.T) {
-	var err error
-	var sess db.Database
-
-	// Opening database, no error expected.
-	if sess, err = db.Open(Adapter, settings); err != nil {
-		t.Fatal(err)
-	}
-
-	// Connecting to another database, error expected.
-	if err = sess.Use("."); err == nil {
-		t.Fatal("This is not a database")
-	}
-
-	// Closing connection.
-	sess.Close()
-}
-
 // Truncates all collections.
 func TestTruncate(t *testing.T) {
 
diff --git a/mysql/database.go b/mysql/database.go
index 95485b09..7f08baf7 100644
--- a/mysql/database.go
+++ b/mysql/database.go
@@ -80,19 +80,6 @@ func (d *database) Setup(connURL db.ConnectionURL) error {
 	return d.Open()
 }
 
-// Use changes the active database.
-func (d *database) Use(name string) (err error) {
-	var conn ConnectionURL
-	if conn, err = ParseURL(d.ConnectionURL().String()); err != nil {
-		return err
-	}
-	conn.Database = name
-	if d.BaseDatabase != nil {
-		d.Close()
-	}
-	return d.Setup(conn)
-}
-
 // Clone creates a new database connection with the same settings as the
 // original.
 func (d *database) Clone() (db.Database, error) {
@@ -125,18 +112,6 @@ func (d *database) Collections() (collections []string, err error) {
 	return collections, nil
 }
 
-// Drop removes all tables from the current database.
-func (d *database) Drop() error {
-	stmt := &sqlgen.Statement{
-		Type:     sqlgen.DropDatabase,
-		Database: sqlgen.DatabaseWithName(d.Schema().Name()),
-	}
-	if _, err := d.Builder().Exec(stmt); err != nil {
-		return err
-	}
-	return nil
-}
-
 // Transaction starts a transaction block and returns a db.Tx struct that can
 // be used to issue transactional queries.
 func (d *database) Transaction() (db.Tx, error) {
diff --git a/postgresql/database.go b/postgresql/database.go
index 700daac6..ffb30cb3 100644
--- a/postgresql/database.go
+++ b/postgresql/database.go
@@ -93,19 +93,6 @@ func (d *database) Setup(connURL db.ConnectionURL) error {
 	return d.Open()
 }
 
-// Use changes the active database.
-func (d *database) Use(name string) (err error) {
-	var conn ConnectionURL
-	if conn, err = ParseURL(d.ConnectionURL().String()); err != nil {
-		return err
-	}
-	conn.Database = name
-	if d.BaseDatabase != nil {
-		d.Close()
-	}
-	return d.Setup(conn)
-}
-
 // Clone creates a new database connection with the same settings as the
 // original.
 func (d *database) Clone() (db.Database, error) {
@@ -137,18 +124,6 @@ func (d *database) Collections() (collections []string, err error) {
 	return collections, nil
 }
 
-// Drop removes all tables from the current database.
-func (d *database) Drop() error {
-	stmt := &sqlgen.Statement{
-		Type:     sqlgen.DropDatabase,
-		Database: sqlgen.DatabaseWithName(d.Schema().Name()),
-	}
-	if _, err := d.Builder().Exec(stmt); err != nil {
-		return err
-	}
-	return nil
-}
-
 // Transaction starts a transaction block and returns a db.Tx struct that can
 // be used to issue transactional queries.
 func (d *database) Transaction() (db.Tx, error) {
diff --git a/ql/database.go b/ql/database.go
index 91b7946a..3612c719 100644
--- a/ql/database.go
+++ b/ql/database.go
@@ -120,19 +120,6 @@ func (d *database) Setup(connURL db.ConnectionURL) error {
 	return d.Open()
 }
 
-// Use changes the active database.
-func (d *database) Use(name string) (err error) {
-	var conn ConnectionURL
-	if conn, err = ParseURL(d.ConnectionURL().String()); err != nil {
-		return err
-	}
-	conn.Database = name
-	if d.BaseDatabase != nil {
-		d.Close()
-	}
-	return d.Setup(conn)
-}
-
 func (d *database) Close() error {
 	if d.BaseDatabase != nil {
 		if atomic.AddInt32(&fileOpenCount, -1) < 0 {
@@ -177,18 +164,6 @@ func (d *database) Collections() (collections []string, err error) {
 	return collections, nil
 }
 
-// Drop removes all tables from the current database.
-func (d *database) Drop() error {
-	stmt := &sqlgen.Statement{
-		Type:     sqlgen.DropDatabase,
-		Database: sqlgen.DatabaseWithName(d.Schema().Name()),
-	}
-	if _, err := d.Builder().Exec(stmt); err != nil {
-		return err
-	}
-	return nil
-}
-
 // Transaction starts a transaction block and returns a db.Tx struct that can
 // be used to issue transactional queries.
 func (d *database) Transaction() (db.Tx, error) {
diff --git a/sqlite/database.go b/sqlite/database.go
index 5752917f..59b33319 100644
--- a/sqlite/database.go
+++ b/sqlite/database.go
@@ -110,19 +110,6 @@ func (d *database) Setup(connURL db.ConnectionURL) error {
 	return d.Open()
 }
 
-// Use changes the active database.
-func (d *database) Use(name string) (err error) {
-	var conn ConnectionURL
-	if conn, err = ParseURL(d.ConnectionURL().String()); err != nil {
-		return err
-	}
-	conn.Database = name
-	if d.BaseDatabase != nil {
-		d.Close()
-	}
-	return d.Setup(conn)
-}
-
 func (d *database) Close() error {
 	if d.Session() != nil {
 		if atomic.AddInt32(&fileOpenCount, -1) < 0 {
@@ -164,18 +151,6 @@ func (d *database) Collections() (collections []string, err error) {
 	return collections, nil
 }
 
-// Drop removes all tables from the current database.
-func (d *database) Drop() error {
-	stmt := &sqlgen.Statement{
-		Type:     sqlgen.DropDatabase,
-		Database: sqlgen.DatabaseWithName(d.Schema().Name()),
-	}
-	if _, err := d.Builder().Exec(stmt); err != nil {
-		return err
-	}
-	return nil
-}
-
 // Transaction starts a transaction block and returns a db.Tx struct that can
 // be used to issue transactional queries.
 func (d *database) Transaction() (db.Tx, error) {
-- 
GitLab