in hugegraph-mysql/src/main/java/org/apache/hugegraph/backend/store/mysql/MysqlUtil.java [30:92]
private static String escapeString(String value, boolean wrap) {
int length = value.length();
if (!isEscapeNeededForString(value, length)) {
if (!wrap) {
return value;
}
StringBuilder buf = new StringBuilder(length + 2);
buf.append('\'').append(value).append('\'');
return buf.toString();
}
StringBuilder buffer = new StringBuilder((int) (length * 1.1d));
if (wrap) {
buffer.append('\'');
}
for (int i = 0; i < length; ++i) {
char c = value.charAt(i);
switch (c) {
case '\u0000':
buffer.append('\\');
buffer.append('0');
break;
case '\n':
buffer.append('\\');
buffer.append('n');
break;
case '\r':
buffer.append('\\');
buffer.append('r');
break;
case '\u001a':
buffer.append('\\');
buffer.append('Z');
break;
case '"':
/*
* Doesn't need to add '\', because we wrap string with "'"
* Assume that we don't use Ansi Mode
*/
buffer.append('"');
break;
case '\'':
buffer.append('\\');
buffer.append('\'');
break;
case '\\':
buffer.append('\\');
buffer.append('\\');
break;
default:
buffer.append(c);
break;
}
}
if (wrap) {
buffer.append('\'');
}
return buffer.toString();
}