Skip to content

Commit d4517c5

Browse files
authored
Support ENUM and SET type in DatabaseTypeName() (#1520)
1 parent 2cdf624 commit d4517c5

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

AUTHORS

+3-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Animesh Ray <mail.rayanimesh at gmail.com>
2121
Arne Hormann <arnehormann at gmail.com>
2222
Ariel Mashraki <ariel at mashraki.co.il>
2323
Asta Xie <xiemengjun at gmail.com>
24+
Brian Hendriks <brian at dolthub.com>
2425
Bulat Gaifullin <gaifullinbf at gmail.com>
2526
Caine Jette <jette at alum.mit.edu>
2627
Carlos Nieto <jose.carlos at menteslibres.net>
@@ -55,6 +56,7 @@ Jason Ng <oblitorum at gmail.com>
5556
Jean-Yves Pellé <jy at pelle.link>
5657
Jeff Hodges <jeff at somethingsimilar.com>
5758
Jeffrey Charles <jeffreycharles at gmail.com>
59+
Jennifer Purevsuren <jennifer at dolthub.com>
5860
Jerome Meyer <jxmeyer at gmail.com>
5961
Jiajia Zhong <zhong2plus at gmail.com>
6062
Jian Zhen <zhenjl at gmail.com>
@@ -116,13 +118,13 @@ Zhang Xiang <angwerzx at 126.com>
116118
Zhenye Xie <xiezhenye at gmail.com>
117119
Zhixin Wen <john.wenzhixin at gmail.com>
118120
Ziheng Lyu <zihenglv at gmail.com>
119-
Brian Hendriks <brian at dolthub.com>
120121

121122
# Organizations
122123

123124
Barracuda Networks, Inc.
124125
Counting Ltd.
125126
DigitalOcean Inc.
127+
Dolthub Inc.
126128
dyves labs AG
127129
Facebook Inc.
128130
GitHub Inc.
@@ -136,4 +138,3 @@ Pivotal Inc.
136138
Shattered Silicon Ltd.
137139
Stripe Inc.
138140
Zendesk Inc.
139-
Dolthub Inc.

driver_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -3007,6 +3007,8 @@ func TestRowsColumnTypes(t *testing.T) {
30073007
{"datetime6", "DATETIME(6)", "DATETIME", scanTypeNullTime, true, 6, 6, [3]string{"'2006-01-02 15:04:05'", "'2006-01-02 15:04:05.1'", "'2006-01-02 15:04:05.111111'"}, [3]interface{}{nt0, nt1, nt6}},
30083008
{"date", "DATE", "DATE", scanTypeNullTime, true, 0, 0, [3]string{"'2006-01-02'", "NULL", "'2006-03-04'"}, [3]interface{}{nd1, ndNULL, nd2}},
30093009
{"year", "YEAR NOT NULL", "YEAR", scanTypeUint16, false, 0, 0, [3]string{"2006", "2000", "1994"}, [3]interface{}{uint16(2006), uint16(2000), uint16(1994)}},
3010+
{"enum", "ENUM('', 'v1', 'v2')", "ENUM", scanTypeNullString, true, 0, 0, [3]string{"''", "'v1'", "'v2'"}, [3]interface{}{ns(""), ns("v1"), ns("v2")}},
3011+
{"set", "set('', 'v1', 'v2')", "SET", scanTypeNullString, true, 0, 0, [3]string{"''", "'v1'", "'v1,v2'"}, [3]interface{}{ns(""), ns("v1"), ns("v1,v2")}},
30103012
}
30113013

30123014
schema := ""

fields.go

+5
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,11 @@ func (mf *mysqlField) typeDatabaseName() string {
7777
}
7878
return "SMALLINT"
7979
case fieldTypeString:
80+
if mf.flags&flagEnum != 0 {
81+
return "ENUM"
82+
} else if mf.flags&flagSet != 0 {
83+
return "SET"
84+
}
8085
if mf.charSet == binaryCollationID {
8186
return "BINARY"
8287
}

0 commit comments

Comments
 (0)