Skip to content

Commit

Permalink
add all charset introducers (#157)
Browse files Browse the repository at this point in the history
  • Loading branch information
jennifersp committed Apr 20, 2022
1 parent 30b631c commit b48d222
Show file tree
Hide file tree
Showing 5 changed files with 6,076 additions and 5,238 deletions.
53 changes: 46 additions & 7 deletions go/vt/sqlparser/ast.go
Original file line number Diff line number Diff line change
Expand Up @@ -4371,13 +4371,52 @@ type UnaryExpr struct {

// UnaryExpr.Operator
const (
UPlusStr = "+"
UMinusStr = "-"
TildaStr = "~"
BangStr = "!"
BinaryStr = "binary "
UBinaryStr = "_binary "
Utf8mb4Str = "_utf8mb4 "
UPlusStr = "+"
UMinusStr = "-"
TildaStr = "~"
BangStr = "!"
BinaryStr = "binary "
Armscii8Str = "_armscii8 "
AsciiStr = "_ascii "
Big5Str = "_big5 "
UBinaryStr = "_binary "
Cp1250Str = "_cp1250 "
Cp1251Str = "_cp1251 "
Cp1256Str = "_cp1256 "
Cp1257Str = "_cp1257 "
Cp850Str = "_cp850 "
Cp852Str = "_cp852 "
Cp866Str = "_cp866 "
Cp932Str = "_cp932 "
Dec8Str = "_dec8 "
EucjpmsStr = "_eucjpms "
EuckrStr = "_euckr "
Gb18030Str = "_gb18030 "
Gb2312Str = "_gb2312 "
GbkStr = "_gbk "
Geostd8Str = "_geostd8 "
GreekStr = "_greek "
HebrewStr = "_hebrew "
Hp8Str = "_hp8 "
Keybcs2Str = "_keybcs2 "
Koi8rStr = "_koi8r "
Koi8uStr = "_koi8u "
Latin1Str = "_latin1 "
Latin2Str = "_latin2 "
Latin5Str = "_latin5 "
Latin7Str = "_latin7 "
MacceStr = "_macce "
MacromanStr = "_macroman "
SjisStr = "_sjis "
Swe7Str = "_swe7 "
Tis620Str = "_tis620 "
Ucs2Str = "_ucs2 "
UjisStr = "_ujis "
Utf16Str = "_utf16 "
Utf16leStr = "_utf16le "
Utf32Str = "_utf32 "
Utf8mb3Str = "_utf8mb3 "
Utf8mb4Str = "_utf8mb4 "
)

// Format formats the node.
Expand Down
21 changes: 21 additions & 0 deletions go/vt/sqlparser/parse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2452,6 +2452,27 @@ var (
}, {
input: "CREATE DATABASE `somedb` CHARACTER SET binary CHARSET binary COLLATE binary collate binary encryption 'n' encryption 'n'",
output: "create database somedb character set binary charset binary collate binary collate binary encryption n encryption n",
}, {
input: "CREATE TABLE mytable (h int DEFAULT (date_format(now(),_utf8mb4'%Y')))",
output: "create table mytable (\n\th int default (date_format(now(), _utf8mb4 '%Y'))\n)",
}, {
input: "CREATE TABLE mytable (pk int NOT NULL, col2 varchar(20) NOT NULL DEFAULT sometext, PRIMARY KEY (pk), CONSTRAINT status CHECK (col2 like _utf8mb4'%sometext%'))",
output: "create table mytable (\n\tpk int not null,\n\tcol2 varchar(20) not null default sometext,\n\tPRIMARY KEY (pk),\n\tconstraint status check (col2 like _utf8mb4 '%sometext%')\n)",
}, {
input: "SELECT _utf8mb4'abc'",
output: "select _utf8mb4 'abc' from dual",
}, {
input: "SELECT _latin1 X'4D7953514C'",
output: "select _latin1 X'4D7953514C' from dual",
}, {
input: "SELECT _utf8mb4'abc' COLLATE utf8mb4_danish_ci",
output: "select _utf8mb4 'abc' collate utf8mb4_danish_ci from dual",
}, {
input: "CREATE TABLE engine_cost (cost_name varchar(64) NOT NULL PRIMARY KEY, default_value float GENERATED ALWAYS AS ((case cost_name when _utf8mb3'io_block_read_cost' then 1.0 when _utf8mb3'memory_block_read_cost' then 0.25 else NULL end)) VIRTUAL)",
output: "create table engine_cost (\n\tcost_name varchar(64) not null primary key,\n\tdefault_value float generated always as ((case cost_name when _utf8mb3 'io_block_read_cost' then 1.0 when _utf8mb3 'memory_block_read_cost' then 0.25 else null end)) virtual\n)",
}, {
input: "CREATE VIEW myview AS SELECT concat(a.first_name, _utf8mb4 ' ', a.last_name) AS name, if(a.active, _utf8mb4 'active', _utf8mb4 '') AS notes FROM a",
output: "create view myview as select concat(a.first_name, _utf8mb4 ' ', a.last_name) as name, if(a.active, _utf8mb4 'active', _utf8mb4 '') as notes from a",
},
}
// Any tests that contain multiple statements within the body (such as BEGIN/END blocks) should go here.
Expand Down

0 comments on commit b48d222

Please sign in to comment.