Changed to public SqlCommon interface
This commit is contained in:
		
							parent
							
								
									cd40e372d3
								
							
						
					
					
						commit
						6248976861
					
				
							
								
								
									
										10
									
								
								interface.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								interface.go
									
									
									
									
									
								
							@ -4,7 +4,7 @@ import (
 | 
				
			|||||||
	"database/sql"
 | 
						"database/sql"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type sqlCommon interface {
 | 
					type SqlCommon interface {
 | 
				
			||||||
	Exec(query string, args ...interface{}) (sql.Result, error)
 | 
						Exec(query string, args ...interface{}) (sql.Result, error)
 | 
				
			||||||
	Prepare(query string) (*sql.Stmt, error)
 | 
						Prepare(query string) (*sql.Stmt, error)
 | 
				
			||||||
	Query(query string, args ...interface{}) (*sql.Rows, error)
 | 
						Query(query string, args ...interface{}) (*sql.Rows, error)
 | 
				
			||||||
@ -25,9 +25,11 @@ type Database interface {
 | 
				
			|||||||
	DB() *sql.DB
 | 
						DB() *sql.DB
 | 
				
			||||||
	New() Database
 | 
						New() Database
 | 
				
			||||||
	NewScope(value interface{}) *Scope
 | 
						NewScope(value interface{}) *Scope
 | 
				
			||||||
	CommonDB() sqlCommon
 | 
					
 | 
				
			||||||
	Callback() *callback
 | 
						CommonDB() SqlCommon
 | 
				
			||||||
	SetLogger(l logger)
 | 
						//Callback() *callback
 | 
				
			||||||
 | 
						//SetLogger(l logger)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	LogMode(enable bool) Database
 | 
						LogMode(enable bool) Database
 | 
				
			||||||
	SingularTable(enable bool)
 | 
						SingularTable(enable bool)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								main.go
									
									
									
									
									
								
							@ -24,7 +24,7 @@ type DB struct {
 | 
				
			|||||||
	Error             error
 | 
						Error             error
 | 
				
			||||||
	RowsAffected      int64
 | 
						RowsAffected      int64
 | 
				
			||||||
	callback          *callback
 | 
						callback          *callback
 | 
				
			||||||
	db                sqlCommon
 | 
						db                SqlCommon
 | 
				
			||||||
	parent            *DB
 | 
						parent            *DB
 | 
				
			||||||
	search            *search
 | 
						search            *search
 | 
				
			||||||
	logMode           int
 | 
						logMode           int
 | 
				
			||||||
@ -44,7 +44,7 @@ func Open(dialect string, args ...interface{}) (DB, error) {
 | 
				
			|||||||
		err = errors.New("invalid database source")
 | 
							err = errors.New("invalid database source")
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		var source string
 | 
							var source string
 | 
				
			||||||
		var dbSql sqlCommon
 | 
							var dbSql SqlCommon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		switch value := args[0].(type) {
 | 
							switch value := args[0].(type) {
 | 
				
			||||||
		case string:
 | 
							case string:
 | 
				
			||||||
@ -59,7 +59,7 @@ func Open(dialect string, args ...interface{}) (DB, error) {
 | 
				
			|||||||
				driver = "postgres" // FoundationDB speaks a postgres-compatible protocol.
 | 
									driver = "postgres" // FoundationDB speaks a postgres-compatible protocol.
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			dbSql, err = sql.Open(driver, source)
 | 
								dbSql, err = sql.Open(driver, source)
 | 
				
			||||||
		case sqlCommon:
 | 
							case SqlCommon:
 | 
				
			||||||
			source = reflect.Indirect(reflect.ValueOf(value)).FieldByName("dsn").String()
 | 
								source = reflect.Indirect(reflect.ValueOf(value)).FieldByName("dsn").String()
 | 
				
			||||||
			dbSql = value
 | 
								dbSql = value
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@ -107,7 +107,7 @@ func (db *DB) NewScope(value interface{}) *Scope {
 | 
				
			|||||||
// CommonDB Return the underlying sql.DB or sql.Tx instance.
 | 
					// CommonDB Return the underlying sql.DB or sql.Tx instance.
 | 
				
			||||||
// Use of this method is discouraged. It's mainly intended to allow
 | 
					// Use of this method is discouraged. It's mainly intended to allow
 | 
				
			||||||
// coexistence with legacy non-GORM code.
 | 
					// coexistence with legacy non-GORM code.
 | 
				
			||||||
func (s *DB) CommonDB() sqlCommon {
 | 
					func (s *DB) CommonDB() SqlCommon {
 | 
				
			||||||
	return s.db
 | 
						return s.db
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -338,7 +338,7 @@ func (s *DB) Begin() Database {
 | 
				
			|||||||
	c := s.clone()
 | 
						c := s.clone()
 | 
				
			||||||
	if db, ok := c.db.(sqlDb); ok {
 | 
						if db, ok := c.db.(sqlDb); ok {
 | 
				
			||||||
		tx, err := db.Begin()
 | 
							tx, err := db.Begin()
 | 
				
			||||||
		c.db = interface{}(tx).(sqlCommon)
 | 
							c.db = interface{}(tx).(SqlCommon)
 | 
				
			||||||
		c.AddError(err)
 | 
							c.AddError(err)
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		c.AddError(CantStartTransaction)
 | 
							c.AddError(CantStartTransaction)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								scope.go
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								scope.go
									
									
									
									
									
								
							@ -66,7 +66,7 @@ func (scope *Scope) DB() *DB {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SqlDB return *sql.DB
 | 
					// SqlDB return *sql.DB
 | 
				
			||||||
func (scope *Scope) SqlDB() sqlCommon {
 | 
					func (scope *Scope) SqlDB() SqlCommon {
 | 
				
			||||||
	return scope.db.db
 | 
						return scope.db.db
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -366,7 +366,7 @@ func (scope *Scope) Trace(t time.Time) {
 | 
				
			|||||||
func (scope *Scope) Begin() *Scope {
 | 
					func (scope *Scope) Begin() *Scope {
 | 
				
			||||||
	if db, ok := scope.SqlDB().(sqlDb); ok {
 | 
						if db, ok := scope.SqlDB().(sqlDb); ok {
 | 
				
			||||||
		if tx, err := db.Begin(); err == nil {
 | 
							if tx, err := db.Begin(); err == nil {
 | 
				
			||||||
			scope.db.db = interface{}(tx).(sqlCommon)
 | 
								scope.db.db = interface{}(tx).(SqlCommon)
 | 
				
			||||||
			scope.InstanceSet("gorm:started_transaction", true)
 | 
								scope.InstanceSet("gorm:started_transaction", true)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user