Пример #1
0
 public void SetBuiltInFunctions(IEnumerable <string> builtInFunctions)
 {
     // Remove impala builtin function names
     foreach (var builtInFunction in builtInFunctions)
     {
         ReservedWords.Remove(builtInFunction);
     }
 }
Пример #2
0
        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);
            }
        }