mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 17:41:59 +00:00
Upstyle
This commit is contained in:
parent
0b201ebff2
commit
61dfebd299
@ -26,430 +26,430 @@ namespace
|
||||
|
||||
const std::unordered_set<std::string_view> keywords
|
||||
{
|
||||
"!=",
|
||||
"",
|
||||
"%",
|
||||
"*",
|
||||
"+",
|
||||
"-",
|
||||
"->",
|
||||
".",
|
||||
"/",
|
||||
":",
|
||||
"::",
|
||||
"<",
|
||||
"<=",
|
||||
"<>",
|
||||
"=",
|
||||
"==",
|
||||
">",
|
||||
">=",
|
||||
"?",
|
||||
"[",
|
||||
"]+",
|
||||
"]+|[",
|
||||
"^[",
|
||||
"||",
|
||||
"]+$",
|
||||
"ACCESS",
|
||||
"ACTION",
|
||||
"ADD",
|
||||
"ADMIN",
|
||||
"AFTER",
|
||||
"ALGORITHM",
|
||||
"ALIAS",
|
||||
"ALL",
|
||||
"ALLOWED_LATENESS",
|
||||
"ALTER",
|
||||
"AND",
|
||||
"ANTI",
|
||||
"ANY",
|
||||
"APPLY",
|
||||
"ARRAY",
|
||||
"AS",
|
||||
"ASC",
|
||||
"ASCENDING",
|
||||
"ASOF",
|
||||
"ASSUME",
|
||||
"AST",
|
||||
"ASYNC",
|
||||
"ATTACH",
|
||||
"AUTO_INCREMENT",
|
||||
"BACKUP",
|
||||
"BASE_BACKUP",
|
||||
"BEGIN",
|
||||
"BETWEEN",
|
||||
"BIDIRECTIONAL",
|
||||
"BOTH",
|
||||
"BY",
|
||||
"CACHE",
|
||||
"CACHES",
|
||||
"CASCADE",
|
||||
"CASE",
|
||||
"CASEWITHEXPRESSION",
|
||||
"CAST",
|
||||
"CHANGE",
|
||||
"CHANGEABLE_IN_READONLY",
|
||||
"CHANGED",
|
||||
"CHAR",
|
||||
"CHARACTER",
|
||||
"CHECK",
|
||||
"CLEAR",
|
||||
"CLUSTER",
|
||||
"CLUSTER_HOST_IDS",
|
||||
"CLUSTERS",
|
||||
"CN",
|
||||
"CODEC",
|
||||
"COLLATE",
|
||||
"COLLECTION",
|
||||
"COLUMN",
|
||||
"COLUMNS",
|
||||
"COMMENT",
|
||||
"COMMIT",
|
||||
"COMPRESSION",
|
||||
"CONCAT",
|
||||
"CONSTRAINT",
|
||||
"CREATE",
|
||||
"CROSS",
|
||||
"CUBE",
|
||||
"CURRENT",
|
||||
"CURRENT_USER",
|
||||
"DATABASE",
|
||||
"DATABASES",
|
||||
"DATE",
|
||||
"DATE_ADD",
|
||||
"DATEADD",
|
||||
"DATE_DIFF",
|
||||
"DATEDIFF",
|
||||
"DATE_SUB",
|
||||
"DATESUB",
|
||||
"DAY",
|
||||
"DD",
|
||||
"DDL",
|
||||
"DEDUPLICATE",
|
||||
"DEFAULT",
|
||||
"DELAY",
|
||||
"DELETE",
|
||||
"DESC",
|
||||
"DESCENDING",
|
||||
"DESCRIBE",
|
||||
"DETACH",
|
||||
"DETACHED",
|
||||
"DICTIONARIES",
|
||||
"DICTIONARY",
|
||||
"DISK",
|
||||
"DISTINCT",
|
||||
"DIV",
|
||||
"DOUBLE_SHA1_HASH",
|
||||
"DROP",
|
||||
"ELSE",
|
||||
"EMPTY",
|
||||
"ENABLED",
|
||||
"END",
|
||||
"ENFORCED",
|
||||
"ENGINE",
|
||||
"EPHEMERAL",
|
||||
"EQUALS",
|
||||
"ESTIMATE",
|
||||
"EVENT",
|
||||
"EVENTS",
|
||||
"EXCEPT",
|
||||
"EXCHANGE",
|
||||
"EXISTS",
|
||||
"EXPLAIN",
|
||||
"EXPRESSION",
|
||||
"EXTERNAL",
|
||||
"EXTRACT",
|
||||
"FALSE",
|
||||
"FETCH",
|
||||
"FILE",
|
||||
"FILESYSTEM",
|
||||
"FILL",
|
||||
"FILTER",
|
||||
"FINAL",
|
||||
"FIRST",
|
||||
"FOLLOWING",
|
||||
"FOR",
|
||||
"FOREIGN",
|
||||
"FORMAT",
|
||||
"FREEZE",
|
||||
"FROM",
|
||||
"FULL",
|
||||
"FULLTEXT",
|
||||
"FUNCTION",
|
||||
"GLOBAL",
|
||||
"GRANT",
|
||||
"GRANTEES",
|
||||
"GRANTS",
|
||||
"GRANULARITY",
|
||||
"GREATER",
|
||||
"GREATEROREQUALS",
|
||||
"GROUP",
|
||||
"GROUPING",
|
||||
"GROUPS",
|
||||
"HASH",
|
||||
"HAVING",
|
||||
"HDFS",
|
||||
"HH",
|
||||
"HIERARCHICAL",
|
||||
"HOST",
|
||||
"HOUR",
|
||||
"ID",
|
||||
"IDENTIFIED",
|
||||
"IF",
|
||||
"ILIKE",
|
||||
"IN",
|
||||
"INDEX",
|
||||
"INFILE",
|
||||
"INHERIT",
|
||||
"INJECTIVE",
|
||||
"INNER",
|
||||
"INSERT",
|
||||
"INTERPOLATE",
|
||||
"INTERSECT",
|
||||
"INTERVAL",
|
||||
"INTO",
|
||||
"INVISIBLE",
|
||||
"IP",
|
||||
"IS",
|
||||
"IS_OBJECT_ID",
|
||||
"JOIN",
|
||||
"KEY",
|
||||
"KEYED",
|
||||
"KILL",
|
||||
"LAMBDA",
|
||||
"LARGE",
|
||||
"LAST",
|
||||
"LAYOUT",
|
||||
"LEADING",
|
||||
"LEFT",
|
||||
"LESS",
|
||||
"LESSOREQUALS",
|
||||
"LEVEL",
|
||||
"LIFETIME",
|
||||
"LIKE",
|
||||
"LIMIT",
|
||||
"LIMITS",
|
||||
"LINEAR",
|
||||
"LIST",
|
||||
"LITERAL",
|
||||
"LIVE",
|
||||
"LOCAL",
|
||||
"LTRIM",
|
||||
"MATCH",
|
||||
"MATERIALIZE",
|
||||
"MATERIALIZED",
|
||||
"MAX",
|
||||
"MCS",
|
||||
"MEMORY",
|
||||
"MI",
|
||||
"MICROSECOND",
|
||||
"MILLISECOND",
|
||||
"MIN",
|
||||
"MINUS",
|
||||
"MINUTE",
|
||||
"MM",
|
||||
"MOD",
|
||||
"MODIFY",
|
||||
"MONTH",
|
||||
"MOVE",
|
||||
"MS",
|
||||
"MULTIIF",
|
||||
"MUTATION",
|
||||
"NAME",
|
||||
"NAMED",
|
||||
"NANOSECOND",
|
||||
"NEXT",
|
||||
"NO",
|
||||
"NONE",
|
||||
"NOT",
|
||||
"NOTEQUALS",
|
||||
"NOTIN",
|
||||
"NS",
|
||||
"NULL",
|
||||
"NULLS",
|
||||
"OBJECT",
|
||||
"OFFSET",
|
||||
"ON",
|
||||
"ONLY",
|
||||
"OPTIMIZE",
|
||||
"OPTION",
|
||||
"OR",
|
||||
"ORDER",
|
||||
"OUTER",
|
||||
"OUTFILE",
|
||||
"OVER",
|
||||
"OVERRIDE",
|
||||
"PART",
|
||||
"PARTIAL",
|
||||
"PARTITION",
|
||||
"PARTITIONS",
|
||||
"PART_MOVE_TO_SHARD",
|
||||
"PERMANENTLY",
|
||||
"PERMISSIVE",
|
||||
"PIPELINE",
|
||||
"PLAN",
|
||||
"PLUS",
|
||||
"POLICY",
|
||||
"POPULATE",
|
||||
"POSITION",
|
||||
"PRECEDING",
|
||||
"PRECISION",
|
||||
"PREWHERE",
|
||||
"PRIMARY",
|
||||
"PRIVILEGES",
|
||||
"PROCESSLIST",
|
||||
"PROFILE",
|
||||
"PROJECTION",
|
||||
"QQ",
|
||||
"QUARTER",
|
||||
"QUERY",
|
||||
"QUOTA",
|
||||
"RANDOMIZED",
|
||||
"RANGE",
|
||||
"READONLY",
|
||||
"REALM",
|
||||
"RECOMPRESS",
|
||||
"REFERENCES",
|
||||
"REFRESH",
|
||||
"REGEXP",
|
||||
"REGEXPQUOTEMETA",
|
||||
"REMOVE",
|
||||
"RENAME",
|
||||
"REPLACE",
|
||||
"REPLACEREGEXPALL",
|
||||
"REPLACEREGEXPONE",
|
||||
"RESET",
|
||||
"RESTORE",
|
||||
"RESTRICT",
|
||||
"RESTRICTIVE",
|
||||
"RESUME",
|
||||
"REVOKE",
|
||||
"RIGHT",
|
||||
"ROLE",
|
||||
"ROLES",
|
||||
"ROLLBACK",
|
||||
"ROLLUP",
|
||||
"ROW",
|
||||
"ROWS",
|
||||
"RTRIM",
|
||||
"S3",
|
||||
"SALT",
|
||||
"SAMPLE",
|
||||
"SECOND",
|
||||
"SELECT",
|
||||
"SEMI",
|
||||
"SERVER",
|
||||
"SET",
|
||||
"SETS",
|
||||
"SETTING",
|
||||
"SETTINGS",
|
||||
"SHA256_HASH",
|
||||
"SHARD",
|
||||
"SHOW",
|
||||
"SIGNED",
|
||||
"SIMPLE",
|
||||
"SINGLEVALUEORNULL",
|
||||
"SNAPSHOT",
|
||||
"SOURCE",
|
||||
"SPATIAL",
|
||||
"SS",
|
||||
"STDOUT",
|
||||
"STEP",
|
||||
"STORAGE",
|
||||
"STRICT",
|
||||
"STRICTLY_ASCENDING",
|
||||
"SUBPARTITION",
|
||||
"SUBPARTITIONS",
|
||||
"SUBSTRING",
|
||||
"SUSPEND",
|
||||
"SYNC",
|
||||
"SYNTAX",
|
||||
"SYSTEM",
|
||||
"TABLE",
|
||||
"TABLES",
|
||||
"TEMPORARY",
|
||||
"TEST",
|
||||
"THAN",
|
||||
"THEN",
|
||||
"TIES",
|
||||
"TIMESTAMP",
|
||||
"TIMESTAMP_ADD",
|
||||
"TIMESTAMPADD",
|
||||
"TIMESTAMP_DIFF",
|
||||
"TIMESTAMPDIFF",
|
||||
"TIMESTAMP_SUB",
|
||||
"TIMESTAMPSUB",
|
||||
"TO",
|
||||
"TODATE",
|
||||
"TODATETIME",
|
||||
"TOP",
|
||||
"TOTALS",
|
||||
"TRACKING",
|
||||
"TRAILING",
|
||||
"TRANSACTION",
|
||||
"TREE",
|
||||
"TRIGGER",
|
||||
"TRIM",
|
||||
"TRIMBOTH",
|
||||
"TRIMLEFT",
|
||||
"TRIMRIGHT",
|
||||
"TRUE",
|
||||
"TRUNCATE",
|
||||
"TTL",
|
||||
"TUPLE",
|
||||
"TYPE",
|
||||
"UNBOUNDED",
|
||||
"UNFREEZE",
|
||||
"UNION",
|
||||
"UNIQUE",
|
||||
"UNSIGNED",
|
||||
"UNTUPLE",
|
||||
"UPDATE",
|
||||
"URL",
|
||||
"USE",
|
||||
"USER",
|
||||
"USING",
|
||||
"UUID",
|
||||
"VALUES",
|
||||
"VARYING",
|
||||
"VIEW",
|
||||
"VIEWIFPERMITTED",
|
||||
"VISIBLE",
|
||||
"VOLUME",
|
||||
"WATCH",
|
||||
"WATERMARK",
|
||||
"WEEK",
|
||||
"WHEN",
|
||||
"WHERE",
|
||||
"WINDOW",
|
||||
"WITH",
|
||||
"WK",
|
||||
"WRITABLE",
|
||||
"YEAR",
|
||||
"YYYY",
|
||||
"ZKPATH"
|
||||
"!=",
|
||||
"",
|
||||
"%",
|
||||
"*",
|
||||
"+",
|
||||
"-",
|
||||
"->",
|
||||
".",
|
||||
"/",
|
||||
":",
|
||||
"::",
|
||||
"<",
|
||||
"<=",
|
||||
"<>",
|
||||
"=",
|
||||
"==",
|
||||
">",
|
||||
">=",
|
||||
"?",
|
||||
"[",
|
||||
"]+",
|
||||
"]+|[",
|
||||
"^[",
|
||||
"||",
|
||||
"]+$",
|
||||
"ACCESS",
|
||||
"ACTION",
|
||||
"ADD",
|
||||
"ADMIN",
|
||||
"AFTER",
|
||||
"ALGORITHM",
|
||||
"ALIAS",
|
||||
"ALL",
|
||||
"ALLOWED_LATENESS",
|
||||
"ALTER",
|
||||
"AND",
|
||||
"ANTI",
|
||||
"ANY",
|
||||
"APPLY",
|
||||
"ARRAY",
|
||||
"AS",
|
||||
"ASC",
|
||||
"ASCENDING",
|
||||
"ASOF",
|
||||
"ASSUME",
|
||||
"AST",
|
||||
"ASYNC",
|
||||
"ATTACH",
|
||||
"AUTO_INCREMENT",
|
||||
"BACKUP",
|
||||
"BASE_BACKUP",
|
||||
"BEGIN",
|
||||
"BETWEEN",
|
||||
"BIDIRECTIONAL",
|
||||
"BOTH",
|
||||
"BY",
|
||||
"CACHE",
|
||||
"CACHES",
|
||||
"CASCADE",
|
||||
"CASE",
|
||||
"CASEWITHEXPRESSION",
|
||||
"CAST",
|
||||
"CHANGE",
|
||||
"CHANGEABLE_IN_READONLY",
|
||||
"CHANGED",
|
||||
"CHAR",
|
||||
"CHARACTER",
|
||||
"CHECK",
|
||||
"CLEAR",
|
||||
"CLUSTER",
|
||||
"CLUSTER_HOST_IDS",
|
||||
"CLUSTERS",
|
||||
"CN",
|
||||
"CODEC",
|
||||
"COLLATE",
|
||||
"COLLECTION",
|
||||
"COLUMN",
|
||||
"COLUMNS",
|
||||
"COMMENT",
|
||||
"COMMIT",
|
||||
"COMPRESSION",
|
||||
"CONCAT",
|
||||
"CONSTRAINT",
|
||||
"CREATE",
|
||||
"CROSS",
|
||||
"CUBE",
|
||||
"CURRENT",
|
||||
"CURRENT_USER",
|
||||
"DATABASE",
|
||||
"DATABASES",
|
||||
"DATE",
|
||||
"DATE_ADD",
|
||||
"DATEADD",
|
||||
"DATE_DIFF",
|
||||
"DATEDIFF",
|
||||
"DATE_SUB",
|
||||
"DATESUB",
|
||||
"DAY",
|
||||
"DD",
|
||||
"DDL",
|
||||
"DEDUPLICATE",
|
||||
"DEFAULT",
|
||||
"DELAY",
|
||||
"DELETE",
|
||||
"DESC",
|
||||
"DESCENDING",
|
||||
"DESCRIBE",
|
||||
"DETACH",
|
||||
"DETACHED",
|
||||
"DICTIONARIES",
|
||||
"DICTIONARY",
|
||||
"DISK",
|
||||
"DISTINCT",
|
||||
"DIV",
|
||||
"DOUBLE_SHA1_HASH",
|
||||
"DROP",
|
||||
"ELSE",
|
||||
"EMPTY",
|
||||
"ENABLED",
|
||||
"END",
|
||||
"ENFORCED",
|
||||
"ENGINE",
|
||||
"EPHEMERAL",
|
||||
"EQUALS",
|
||||
"ESTIMATE",
|
||||
"EVENT",
|
||||
"EVENTS",
|
||||
"EXCEPT",
|
||||
"EXCHANGE",
|
||||
"EXISTS",
|
||||
"EXPLAIN",
|
||||
"EXPRESSION",
|
||||
"EXTERNAL",
|
||||
"EXTRACT",
|
||||
"FALSE",
|
||||
"FETCH",
|
||||
"FILE",
|
||||
"FILESYSTEM",
|
||||
"FILL",
|
||||
"FILTER",
|
||||
"FINAL",
|
||||
"FIRST",
|
||||
"FOLLOWING",
|
||||
"FOR",
|
||||
"FOREIGN",
|
||||
"FORMAT",
|
||||
"FREEZE",
|
||||
"FROM",
|
||||
"FULL",
|
||||
"FULLTEXT",
|
||||
"FUNCTION",
|
||||
"GLOBAL",
|
||||
"GRANT",
|
||||
"GRANTEES",
|
||||
"GRANTS",
|
||||
"GRANULARITY",
|
||||
"GREATER",
|
||||
"GREATEROREQUALS",
|
||||
"GROUP",
|
||||
"GROUPING",
|
||||
"GROUPS",
|
||||
"HASH",
|
||||
"HAVING",
|
||||
"HDFS",
|
||||
"HH",
|
||||
"HIERARCHICAL",
|
||||
"HOST",
|
||||
"HOUR",
|
||||
"ID",
|
||||
"IDENTIFIED",
|
||||
"IF",
|
||||
"ILIKE",
|
||||
"IN",
|
||||
"INDEX",
|
||||
"INFILE",
|
||||
"INHERIT",
|
||||
"INJECTIVE",
|
||||
"INNER",
|
||||
"INSERT",
|
||||
"INTERPOLATE",
|
||||
"INTERSECT",
|
||||
"INTERVAL",
|
||||
"INTO",
|
||||
"INVISIBLE",
|
||||
"IP",
|
||||
"IS",
|
||||
"IS_OBJECT_ID",
|
||||
"JOIN",
|
||||
"KEY",
|
||||
"KEYED",
|
||||
"KILL",
|
||||
"LAMBDA",
|
||||
"LARGE",
|
||||
"LAST",
|
||||
"LAYOUT",
|
||||
"LEADING",
|
||||
"LEFT",
|
||||
"LESS",
|
||||
"LESSOREQUALS",
|
||||
"LEVEL",
|
||||
"LIFETIME",
|
||||
"LIKE",
|
||||
"LIMIT",
|
||||
"LIMITS",
|
||||
"LINEAR",
|
||||
"LIST",
|
||||
"LITERAL",
|
||||
"LIVE",
|
||||
"LOCAL",
|
||||
"LTRIM",
|
||||
"MATCH",
|
||||
"MATERIALIZE",
|
||||
"MATERIALIZED",
|
||||
"MAX",
|
||||
"MCS",
|
||||
"MEMORY",
|
||||
"MI",
|
||||
"MICROSECOND",
|
||||
"MILLISECOND",
|
||||
"MIN",
|
||||
"MINUS",
|
||||
"MINUTE",
|
||||
"MM",
|
||||
"MOD",
|
||||
"MODIFY",
|
||||
"MONTH",
|
||||
"MOVE",
|
||||
"MS",
|
||||
"MULTIIF",
|
||||
"MUTATION",
|
||||
"NAME",
|
||||
"NAMED",
|
||||
"NANOSECOND",
|
||||
"NEXT",
|
||||
"NO",
|
||||
"NONE",
|
||||
"NOT",
|
||||
"NOTEQUALS",
|
||||
"NOTIN",
|
||||
"NS",
|
||||
"NULL",
|
||||
"NULLS",
|
||||
"OBJECT",
|
||||
"OFFSET",
|
||||
"ON",
|
||||
"ONLY",
|
||||
"OPTIMIZE",
|
||||
"OPTION",
|
||||
"OR",
|
||||
"ORDER",
|
||||
"OUTER",
|
||||
"OUTFILE",
|
||||
"OVER",
|
||||
"OVERRIDE",
|
||||
"PART",
|
||||
"PARTIAL",
|
||||
"PARTITION",
|
||||
"PARTITIONS",
|
||||
"PART_MOVE_TO_SHARD",
|
||||
"PERMANENTLY",
|
||||
"PERMISSIVE",
|
||||
"PIPELINE",
|
||||
"PLAN",
|
||||
"PLUS",
|
||||
"POLICY",
|
||||
"POPULATE",
|
||||
"POSITION",
|
||||
"PRECEDING",
|
||||
"PRECISION",
|
||||
"PREWHERE",
|
||||
"PRIMARY",
|
||||
"PRIVILEGES",
|
||||
"PROCESSLIST",
|
||||
"PROFILE",
|
||||
"PROJECTION",
|
||||
"QQ",
|
||||
"QUARTER",
|
||||
"QUERY",
|
||||
"QUOTA",
|
||||
"RANDOMIZED",
|
||||
"RANGE",
|
||||
"READONLY",
|
||||
"REALM",
|
||||
"RECOMPRESS",
|
||||
"REFERENCES",
|
||||
"REFRESH",
|
||||
"REGEXP",
|
||||
"REGEXPQUOTEMETA",
|
||||
"REMOVE",
|
||||
"RENAME",
|
||||
"REPLACE",
|
||||
"REPLACEREGEXPALL",
|
||||
"REPLACEREGEXPONE",
|
||||
"RESET",
|
||||
"RESTORE",
|
||||
"RESTRICT",
|
||||
"RESTRICTIVE",
|
||||
"RESUME",
|
||||
"REVOKE",
|
||||
"RIGHT",
|
||||
"ROLE",
|
||||
"ROLES",
|
||||
"ROLLBACK",
|
||||
"ROLLUP",
|
||||
"ROW",
|
||||
"ROWS",
|
||||
"RTRIM",
|
||||
"S3",
|
||||
"SALT",
|
||||
"SAMPLE",
|
||||
"SECOND",
|
||||
"SELECT",
|
||||
"SEMI",
|
||||
"SERVER",
|
||||
"SET",
|
||||
"SETS",
|
||||
"SETTING",
|
||||
"SETTINGS",
|
||||
"SHA256_HASH",
|
||||
"SHARD",
|
||||
"SHOW",
|
||||
"SIGNED",
|
||||
"SIMPLE",
|
||||
"SINGLEVALUEORNULL",
|
||||
"SNAPSHOT",
|
||||
"SOURCE",
|
||||
"SPATIAL",
|
||||
"SS",
|
||||
"STDOUT",
|
||||
"STEP",
|
||||
"STORAGE",
|
||||
"STRICT",
|
||||
"STRICTLY_ASCENDING",
|
||||
"SUBPARTITION",
|
||||
"SUBPARTITIONS",
|
||||
"SUBSTRING",
|
||||
"SUSPEND",
|
||||
"SYNC",
|
||||
"SYNTAX",
|
||||
"SYSTEM",
|
||||
"TABLE",
|
||||
"TABLES",
|
||||
"TEMPORARY",
|
||||
"TEST",
|
||||
"THAN",
|
||||
"THEN",
|
||||
"TIES",
|
||||
"TIMESTAMP",
|
||||
"TIMESTAMP_ADD",
|
||||
"TIMESTAMPADD",
|
||||
"TIMESTAMP_DIFF",
|
||||
"TIMESTAMPDIFF",
|
||||
"TIMESTAMP_SUB",
|
||||
"TIMESTAMPSUB",
|
||||
"TO",
|
||||
"TODATE",
|
||||
"TODATETIME",
|
||||
"TOP",
|
||||
"TOTALS",
|
||||
"TRACKING",
|
||||
"TRAILING",
|
||||
"TRANSACTION",
|
||||
"TREE",
|
||||
"TRIGGER",
|
||||
"TRIM",
|
||||
"TRIMBOTH",
|
||||
"TRIMLEFT",
|
||||
"TRIMRIGHT",
|
||||
"TRUE",
|
||||
"TRUNCATE",
|
||||
"TTL",
|
||||
"TUPLE",
|
||||
"TYPE",
|
||||
"UNBOUNDED",
|
||||
"UNFREEZE",
|
||||
"UNION",
|
||||
"UNIQUE",
|
||||
"UNSIGNED",
|
||||
"UNTUPLE",
|
||||
"UPDATE",
|
||||
"URL",
|
||||
"USE",
|
||||
"USER",
|
||||
"USING",
|
||||
"UUID",
|
||||
"VALUES",
|
||||
"VARYING",
|
||||
"VIEW",
|
||||
"VIEWIFPERMITTED",
|
||||
"VISIBLE",
|
||||
"VOLUME",
|
||||
"WATCH",
|
||||
"WATERMARK",
|
||||
"WEEK",
|
||||
"WHEN",
|
||||
"WHERE",
|
||||
"WINDOW",
|
||||
"WITH",
|
||||
"WK",
|
||||
"WRITABLE",
|
||||
"YEAR",
|
||||
"YYYY",
|
||||
"ZKPATH"
|
||||
};
|
||||
|
||||
/// We want to keep some words inside quotes. For example we want to keep HOUR inside:
|
||||
/// Select now() + INTERVAL '1 HOUR'
|
||||
const std::unordered_set<std::string_view> keep_words
|
||||
{
|
||||
"DAY",
|
||||
"HOUR",
|
||||
"ID",
|
||||
"NAME",
|
||||
"NANOSECOND",
|
||||
"MICROSECOND",
|
||||
"MILLISECOND",
|
||||
"SECOND",
|
||||
"MINUTE",
|
||||
"NUM",
|
||||
"VALUE",
|
||||
"WEEK",
|
||||
"MONTH",
|
||||
"QUARTER",
|
||||
"YEAR"
|
||||
"DAY",
|
||||
"HOUR",
|
||||
"ID",
|
||||
"NAME",
|
||||
"NANOSECOND",
|
||||
"MICROSECOND",
|
||||
"MILLISECOND",
|
||||
"SECOND",
|
||||
"MINUTE",
|
||||
"NUM",
|
||||
"VALUE",
|
||||
"WEEK",
|
||||
"MONTH",
|
||||
"QUARTER",
|
||||
"YEAR"
|
||||
};
|
||||
|
||||
/// The list of nouns collected from here: http://www.desiquintans.com/nounlist, Public domain.
|
||||
@ -1212,29 +1212,29 @@ void obfuscateLiteral(std::string_view src, WriteBuffer & result, SipHash hash_f
|
||||
while (alpha_end < src_end && isAlphaASCII(*alpha_end))
|
||||
++alpha_end;
|
||||
|
||||
String wordcopy(src_pos, alpha_end);
|
||||
Poco::toUpperInPlace(wordcopy);
|
||||
if (keep_words.contains(wordcopy))
|
||||
{
|
||||
result.write(src_pos, alpha_end - src_pos);
|
||||
src_pos = alpha_end;
|
||||
}
|
||||
else
|
||||
{
|
||||
hash_func.update(src_pos, alpha_end - src_pos);
|
||||
pcg64 rng(hash_func.get64());
|
||||
String wordcopy(src_pos, alpha_end);
|
||||
Poco::toUpperInPlace(wordcopy);
|
||||
if (keep_words.contains(wordcopy))
|
||||
{
|
||||
result.write(src_pos, alpha_end - src_pos);
|
||||
src_pos = alpha_end;
|
||||
}
|
||||
else
|
||||
{
|
||||
hash_func.update(src_pos, alpha_end - src_pos);
|
||||
pcg64 rng(hash_func.get64());
|
||||
|
||||
while (src_pos < alpha_end)
|
||||
{
|
||||
auto random = rng();
|
||||
if (isLowerAlphaASCII(*src_pos))
|
||||
result.write('a' + random % 26);
|
||||
else
|
||||
result.write('A' + random % 26);
|
||||
while (src_pos < alpha_end)
|
||||
{
|
||||
auto random = rng();
|
||||
if (isLowerAlphaASCII(*src_pos))
|
||||
result.write('a' + random % 26);
|
||||
else
|
||||
result.write('A' + random % 26);
|
||||
|
||||
++src_pos;
|
||||
}
|
||||
}
|
||||
++src_pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (isASCII(src_pos[0]))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user