refactor to use isOra()

This commit is contained in:
Jim Lambert 2020-02-15 16:12:28 -05:00
parent 582cc3cc49
commit 0dcedf8a04

View File

@ -511,7 +511,7 @@ func (scope *Scope) scan(rows *sql.Rows, columns []string, fields []*Field) {
} }
for fieldIndex, field := range selectFields { for fieldIndex, field := range selectFields {
if field.DBName == column || (scope.isOracle() && strings.EqualFold(field.DBName, column)) { if field.DBName == column || (scope.isOra() && strings.EqualFold(field.DBName, column)) {
if field.Field.Kind() == reflect.Ptr { if field.Field.Kind() == reflect.Ptr {
values[index] = field.Field.Addr().Interface() values[index] = field.Field.Addr().Interface()
} else { } else {
@ -1035,14 +1035,14 @@ func (scope *Scope) count(value interface{}) *Scope {
scope.prepareQuerySQL() scope.prepareQuerySQL()
scope.Search = &search{} scope.Search = &search{}
scope.Search.Select("count(*)") scope.Search.Select("count(*)")
if scope.isOracle() { if scope.isOra() {
scope.Search.Table(fmt.Sprintf("( %s )", scope.SQL)) scope.Search.Table(fmt.Sprintf("( %s )", scope.SQL))
} else { } else {
scope.Search.Table(fmt.Sprintf("( %s ) AS count_table", scope.SQL)) scope.Search.Table(fmt.Sprintf("( %s ) AS count_table", scope.SQL))
} }
} else { } else {
scope.Search.Select("count(*) FROM ( SELECT count(*) as name ") scope.Search.Select("count(*) FROM ( SELECT count(*) as name ")
if scope.isOracle() { if scope.isOra() {
scope.Search.group += " )" scope.Search.group += " )"
} else { } else {
scope.Search.group += " ) AS count_table" scope.Search.group += " ) AS count_table"
@ -1259,7 +1259,7 @@ func (scope *Scope) addForeignKey(field string, dest string, onDelete string, on
if scope.Dialect().HasForeignKey(scope.TableName(), keyName) { if scope.Dialect().HasForeignKey(scope.TableName(), keyName) {
return return
} }
if scope.isOracle() { if scope.isOra() {
query := fmt.Sprintf(`ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s`, scope.QuotedTableName(), scope.quoteIfPossible(keyName), scope.quoteIfPossible(field), dest) query := fmt.Sprintf(`ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s`, scope.QuotedTableName(), scope.quoteIfPossible(keyName), scope.quoteIfPossible(field), dest)
if !strings.EqualFold(onDelete, "RESTRICT") { if !strings.EqualFold(onDelete, "RESTRICT") {
query = fmt.Sprintf("%s ON DELETE %s", query, onDelete) query = fmt.Sprintf("%s ON DELETE %s", query, onDelete)
@ -1455,7 +1455,7 @@ func (scope *Scope) hasConditions() bool {
len(scope.Search.notConditions) > 0 len(scope.Search.notConditions) > 0
} }
// isOracle gives a scope an easy way to determine if the dialect uses Oracle for its RMDBS, since oracle could have multiple dialects for different drivers. func (scope *Scope) isOra() bool {
func (scope *Scope) isOracle() bool { _, ok := scope.Dialect().(OraDialect)
return scope.Dialect().GetName() == "oci8" return ok
} }