Skip to content

Commit 1799e28

Browse files
authored
schema: quote schema (go-mysql-org#99)
1 parent 1787346 commit 1799e28

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

schema/schema.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ func NewTable(conn mysql.Executer, schema string, name string) (*Table, error) {
162162
}
163163

164164
func (ta *Table) fetchColumns(conn mysql.Executer) error {
165-
r, err := conn.Execute(fmt.Sprintf("describe %s.%s", ta.Schema, ta.Name))
165+
r, err := conn.Execute(fmt.Sprintf("describe `%s`.`%s`", ta.Schema, ta.Name))
166166
if err != nil {
167167
return errors.Trace(err)
168168
}
@@ -179,7 +179,7 @@ func (ta *Table) fetchColumns(conn mysql.Executer) error {
179179
}
180180

181181
func (ta *Table) fetchIndexes(conn mysql.Executer) error {
182-
r, err := conn.Execute(fmt.Sprintf("show index from %s.%s", ta.Schema, ta.Name))
182+
r, err := conn.Execute(fmt.Sprintf("show index from `%s`.`%s`", ta.Schema, ta.Name))
183183
if err != nil {
184184
return errors.Trace(err)
185185
}

schema/schema_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,15 @@ func (s *schemaTestSuite) TestSchema(c *C) {
7070
c.Assert(ta.Columns[5].SetValues, DeepEquals, []string{"a", "b", "c"})
7171
c.Assert(ta.Columns[7].Type, Equals, TYPE_FLOAT)
7272
}
73+
74+
func (s *schemaTestSuite) TestQuoteSchema(c *C) {
75+
str := "CREATE TABLE IF NOT EXISTS `a-b_test` (`a.b` INT) ENGINE = INNODB"
76+
77+
_, err := s.conn.Execute(str)
78+
c.Assert(err, IsNil)
79+
80+
ta, err := NewTable(s.conn, "test", "a-b_test")
81+
c.Assert(err, IsNil)
82+
83+
c.Assert(ta.Columns[0].Name, Equals, "a.b")
84+
}

0 commit comments

Comments
 (0)