{
    "case_insensitive": true,
    "contains": [
        {
            "beginKeywords": "build create index delete drop explain infer|10 insert merge prepare select update upsert|10",
            "end": ";",
            "endsWithParent": true,
            "keywords": {
                "keyword": "all alter analyze and any array as asc begin between binary boolean break bucket build by call case cast cluster collate collection commit connect continue correlate cover create database dataset datastore declare decrement delete derived desc describe distinct do drop each element else end every except exclude execute exists explain fetch first flatten for force from function grant group gsi having if ignore ilike in include increment index infer inline inner insert intersect into is join key keys keyspace known last left let letting like limit lsm map mapping matched materialized merge minus namespace nest not number object offset on option or order outer over parse partition password path pool prepare primary private privilege procedure public raw realm reduce rename return returning revoke right role rollback satisfies schema select self semi set show some start statistics string system then to transaction trigger truncate under union unique unknown unnest unset update upsert use user using validate value valued values via view when where while with within work xor",
                "literal": "true false null missing|5",
                "built_in": "array_agg array_append array_concat array_contains array_count array_distinct array_ifnull array_length array_max array_min array_position array_prepend array_put array_range array_remove array_repeat array_replace array_reverse array_sort array_sum avg count max min sum greatest least ifmissing ifmissingornull ifnull missingif nullif ifinf ifnan ifnanorinf naninf neginfif posinfif clock_millis clock_str date_add_millis date_add_str date_diff_millis date_diff_str date_part_millis date_part_str date_trunc_millis date_trunc_str duration_to_str millis str_to_millis millis_to_str millis_to_utc millis_to_zone_name now_millis now_str str_to_duration str_to_utc str_to_zone_name decode_json encode_json encoded_size poly_length base64 base64_encode base64_decode meta uuid abs acos asin atan atan2 ceil cos degrees e exp ln log floor pi power radians random round sign sin sqrt tan trunc object_length object_names object_pairs object_inner_pairs object_values object_inner_values object_add object_put object_remove object_unwrap regexp_contains regexp_like regexp_position regexp_replace contains initcap length lower ltrim position repeat replace rtrim split substr title trim upper isarray isatom isboolean isnumber isobject isstring type toarray toatom toboolean tonumber toobject tostring"
            },
            "contains": [
                {
                    "className": "string",
                    "begin": "'",
                    "end": "'",
                    "contains": [
                        {
                            "begin": "\\\\[\\s\\S]",
                            "relevance": 0
                        }
                    ],
                    "relevance": 0
                },
                {
                    "className": "string",
                    "begin": "\"",
                    "end": "\"",
                    "contains": [
                        {
                            "$ref": "#contains.0.contains.0.contains.0"
                        }
                    ],
                    "relevance": 0
                },
                {
                    "className": "symbol",
                    "begin": "`",
                    "end": "`",
                    "contains": [
                        {
                            "$ref": "#contains.0.contains.0.contains.0"
                        }
                    ],
                    "relevance": 2
                },
                {
                    "className": "number",
                    "begin": "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
                    "relevance": 0
                },
                {
                    "className": "comment",
                    "begin": "\/\\*",
                    "end": "\\*\/",
                    "contains": [
                        {
                            "begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b"
                        },
                        {
                            "className": "doctag",
                            "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
                            "relevance": 0
                        }
                    ]
                }
            ]
        },
        {
            "$ref": "#contains.0.contains.4"
        }
    ]
}
