public void SetBuiltInFunctions(IEnumerable <string> builtInFunctions) { // Remove impala builtin function names foreach (var builtInFunction in builtInFunctions) { ReservedWords.Remove(builtInFunction); } }
public ImpalaDialect3() { // Add SQL:2016 reserved words foreach (var reservedWord in new[] { "abs", "acos", "allocate", "any", "are", "array_agg", "array_max_cardinality", "asensitive", "asin", "asymmetric", "at", "atan", "atomic", "avg", "begin", "begin_frame", "begin_partition", "blob", "both", "call", "called", "cardinality", "cascaded", "ceil", "ceiling", "char_length", "character", "character_length", "check", "classifier", "clob", "close", "coalesce", "collate", "collect", "commit", "condition", "connect", "constraint", "contains", "convert", "copy", "corr", "corresponding", "cos", "cosh", "count", "covar_pop", "covar_samp", "cube", "cume_dist", "current_catalog", "current_date", "current_default_transform_group", "current_path", "current_path", "current_role", "current_role", "current_row", "current_schema", "current_time", "current_timestamp", "current_transform_group_for_type", "current_user", "cursor", "cycle", "day", "deallocate", "dec", "decfloat", "declare", "define", "dense_rank", "deref", "deterministic", "disconnect", "dynamic", "each", "element", "empty", "end-exec", "end_frame", "end_partition", "equals", "escape", "every", "except", "exec", "execute", "exp", "extract", "fetch", "filter", "first_value", "floor", "foreign", "frame_row", "free", "fusion", "get", "global", "grouping", "groups", "hold", "hour", "identity", "indicator", "initial", "inout", "insensitive", "integer", "intersect", "intersection", "json_array", "json_arrayagg", "json_exists", "json_object", "json_objectagg", "json_query", "json_table", "json_table_primitive", "json_value", "lag", "language", "large", "last_value", "lateral", "lead", "leading", "like_regex", "listagg", "ln", "local", "localtime", "localtimestamp", "log", "log10 ", "lower", "match", "match_number", "match_recognize", "matches", "max", "member", "merge", "method", "min", "minute", "mod", "modifies", "module", "month", "multiset", "national", "natural", "nchar", "nclob", "new", "no", "none", "normalize", "nth_value", "ntile", "nullif", "numeric", "occurrences_regex", "octet_length", "of", "old", "omit", "one", "only", "open", "out", "overlaps", "overlay", "parameter", "pattern", "per", "percent", "percent_rank", "percentile_cont", "percentile_disc", "period", "portion", "position", "position_regex", "power", "precedes", "precision", "prepare", "procedure", "ptf", "rank", "reads", "real", "recursive", "ref", "references", "referencing", "regr_avgx", "regr_avgy", "regr_count", "regr_intercept", "regr_r2", "regr_slope", "regr_sxx", "regr_sxy", "regr_syy", "release", "result", "return", "rollback", "rollup", "row_number", "running", "savepoint", "scope", "scroll", "search", "second", "seek", "sensitive", "session_user", "similar", "sin", "sinh", "skip", "some", "specific", "specifictype", "sql", "sqlexception", "sqlstate", "sqlwarning", "sqrt", "start", "static", "stddev_pop", "stddev_samp", "submultiset", "subset", "substring", "substring_regex", "succeeds", "sum", "symmetric", "system", "system_time", "system_user", "tan", "tanh", "time", "timezone_hour", "timezone_minute", "trailing", "translate", "translate_regex", "translation", "treat", "trigger", "trim", "trim_array", "uescape", "unique", "unknown", "unnest", "update ", "upper", "user", "value", "value_of", "var_pop", "var_samp", "varbinary", "varying", "versioning", "whenever", "width_bucket", "window", "within", "without", "year" }) { ReservedWords.Add(reservedWord); } // Remove whitelist words. These words might be heavily used in production, and // impala is unlikely to implement SQL features around these words in the near future. foreach (var reservedWord in new[] { // time units "year", "month", "day", "hour", "minute", "second", "begin", "call", "check", "classifier", "close", "identity", "language", "localtime", "member", "module", "new", "nullif", "old", "open", "parameter", "period", "result", "return", "sql", "start", "system", "time", "user", "value" }) { ReservedWords.Remove(reservedWord); } }