Skip to content

Commit e7114e3

Browse files
committed
character set implemented
1 parent 0c027c1 commit e7114e3

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

src/main/java/net/sf/jsqlparser/statement/create/table/ColDataType.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class ColDataType {
2929

3030
private String dataType;
3131
private List<String> argumentsStringList;
32+
private String characterSet;
3233

3334
public List<String> getArgumentsStringList() {
3435
return argumentsStringList;
@@ -46,9 +47,18 @@ public void setDataType(String string) {
4647
dataType = string;
4748
}
4849

50+
public String getCharacterSet() {
51+
return characterSet;
52+
}
53+
54+
public void setCharacterSet(String characterSet) {
55+
this.characterSet = characterSet;
56+
}
57+
4958
@Override
5059
public String toString() {
5160
return dataType
52-
+ (argumentsStringList != null ? " " + PlainSelect.getStringList(argumentsStringList, true, true) : "");
61+
+ (argumentsStringList != null ? " " + PlainSelect.getStringList(argumentsStringList, true, true) : "")
62+
+ (characterSet != null ? " CHARACTER SET " + characterSet : "");
5363
}
5464
}

src/main/javacc/net/sf/jsqlparser/parser/JSqlParserCC.jj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2130,6 +2130,8 @@ ColDataType ColDataType():
21302130
| tk=<S_IDENTIFIER> { colDataType.setDataType(tk.image); } )
21312131

21322132
[LOOKAHEAD(2) "(" ( (tk=<S_LONG> | tk=<S_CHAR_LITERAL>) { argumentsStringList.add(tk.image); } ["," {/*argumentsStringList.add(",");*/}] )* ")"]
2133+
[<K_CHARACTER> <K_SET> tk=<S_IDENTIFIER> { colDataType.setCharacterSet(tk.image); } ]
2134+
21332135
{
21342136
if (argumentsStringList.size() > 0)
21352137
colDataType.setArgumentsStringList(argumentsStringList);

src/test/java/net/sf/jsqlparser/test/select/SelectTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1406,4 +1406,9 @@ public void testPostgreSQLRegExpCaseSensitiveMatch4() throws JSQLParserException
14061406
String stmt = "SELECT a, b FROM foo WHERE a !~* '[help].*'";
14071407
assertSqlCanBeParsedAndDeparsed(stmt);
14081408
}
1409+
1410+
public void testCharacterSetClause() throws JSQLParserException {
1411+
String stmt="SELECT DISTINCT CAST(`view0`.`nick2` AS CHAR (8000) CHARACTER SET utf8) AS `v0` FROM people `view0` WHERE `view0`.`nick2` IS NOT NULL";
1412+
assertSqlCanBeParsedAndDeparsed(stmt);
1413+
}
14091414
}

0 commit comments

Comments
 (0)