Merge pull request #395 from winkyao/master

parser/parser.y: add StringType OptCharset OptCollate support
This commit is contained in:
Shen Li
2015-10-15 16:47:37 +08:00
2 changed files with 11 additions and 2 deletions

View File

@ -3868,21 +3868,25 @@ BitValueType:
}
StringType:
NationalOpt "CHAR" FieldLen OptBinary
NationalOpt "CHAR" FieldLen OptBinary OptCharset OptCollate
{
x := types.NewFieldType(mysql.TypeString)
x.Flen = $3.(int)
if $4.(bool) {
x.Flag |= mysql.BinaryFlag
}
x.Charset = $5.(string)
x.Collate = $6.(string)
$$ = x
}
| NationalOpt "CHAR" OptBinary
| NationalOpt "CHAR" OptBinary OptCharset OptCollate
{
x := types.NewFieldType(mysql.TypeString)
if $3.(bool) {
x.Flag |= mysql.BinaryFlag
}
x.Charset = $4.(string)
x.Collate = $5.(string)
$$ = x
}
| NationalOpt "VARCHAR" FieldLen OptBinary OptCharset OptCollate

View File

@ -442,6 +442,11 @@ func (s *testParserSuite) TestDDL(c *C) {
{"CREATE TABLE foo (a SMALLINT UNSIGNED, b INT UNSIGNED) // foo", true},
{"CREATE TABLE foo (a SMALLINT UNSIGNED, b INT UNSIGNED) /* foo */", true},
{"CREATE TABLE foo /* foo */ (a SMALLINT UNSIGNED, b INT UNSIGNED) /* foo */", true},
{"CREATE TABLE foo (name CHAR(50) BINARY)", true},
{"CREATE TABLE foo (name CHAR(50) COLLATE utf8_bin)", true},
{"CREATE TABLE foo (name CHAR(50) CHARACTER SET utf8)", true},
{"CREATE TABLE foo (name CHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin)", true},
{"CREATE TABLE foo (a.b, b);", false},
{"CREATE TABLE foo (a, b.c);", false},
// For table option