mirror of
https://gitee.com/johng/gf.git
synced 2024-12-02 12:17:53 +08:00
44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
|
|
//
|
|
// This Source Code Form is subject to the terms of the MIT License.
|
|
// If a copy of the MIT was not distributed with this file,
|
|
// You can obtain one at https://github.com/gogf/gf.
|
|
|
|
package gdb
|
|
|
|
import (
|
|
"database/sql"
|
|
)
|
|
|
|
// dbLink is used to implement interface Link for DB.
|
|
type dbLink struct {
|
|
*sql.DB // Underlying DB object.
|
|
isOnMaster bool // isOnMaster marks whether current link is operated on master node.
|
|
}
|
|
|
|
// txLink is used to implement interface Link for TX.
|
|
type txLink struct {
|
|
*sql.Tx
|
|
}
|
|
|
|
// IsTransaction returns if current Link is a transaction.
|
|
func (l *dbLink) IsTransaction() bool {
|
|
return false
|
|
}
|
|
|
|
// IsOnMaster checks and returns whether current link is operated on master node.
|
|
func (l *dbLink) IsOnMaster() bool {
|
|
return l.isOnMaster
|
|
}
|
|
|
|
// IsTransaction returns if current Link is a transaction.
|
|
func (l *txLink) IsTransaction() bool {
|
|
return true
|
|
}
|
|
|
|
// IsOnMaster checks and returns whether current link is operated on master node.
|
|
// Note that, transaction operation is always operated on master node.
|
|
func (l *txLink) IsOnMaster() bool {
|
|
return true
|
|
}
|