Skip to content

Commit 557a6f6

Browse files
committed
distinguish between schema.Time and tag time
fix go-gorm/gorm#6033
1 parent 475168b commit 557a6f6

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

bigquery.go

+13-6
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,18 @@ package bigquery
33
import (
44
"database/sql"
55
"fmt"
6-
"gorm.io/driver/bigquery/adaptor"
7-
_ "gorm.io/driver/bigquery/driver"
6+
"reflect"
7+
"regexp"
8+
"strings"
9+
810
"gorm.io/gorm"
911
"gorm.io/gorm/clause"
1012
"gorm.io/gorm/logger"
1113
"gorm.io/gorm/migrator"
1214
"gorm.io/gorm/schema"
13-
"reflect"
14-
"regexp"
15-
"strings"
15+
16+
"gorm.io/driver/bigquery/adaptor"
17+
_ "gorm.io/driver/bigquery/driver"
1618
)
1719

1820
type Dialector struct {
@@ -87,7 +89,12 @@ func (dialector Dialector) DataTypeOf(field *schema.Field) string {
8789
case schema.String:
8890
return "STRING"
8991
case schema.Time:
90-
return "TIMESTAMP"
92+
// Distinguish between schema.Time and tag time
93+
if val, ok := field.TagSettings["TYPE"]; ok {
94+
return val
95+
} else {
96+
return "TIMESTAMP"
97+
}
9198
case schema.Bytes:
9299
return "BYTES"
93100
}

0 commit comments

Comments
 (0)