sqlglot.dialects.doris
1from __future__ import annotations 2 3from sqlglot.dialects.mysql import MySQL 4from sqlglot.generators.doris import DorisGenerator 5from sqlglot.parsers.doris import DorisParser 6 7 8class Doris(MySQL): 9 DATE_FORMAT = "'yyyy-MM-dd'" 10 DATEINT_FORMAT = "'yyyyMMdd'" 11 TIME_FORMAT = "'yyyy-MM-dd HH:mm:ss'" 12 13 class Tokenizer(MySQL.Tokenizer): 14 DASH_COMMENT_REQUIRES_BOUNDARY = False 15 COMMENTS_TERMINATE_AT_NEWLINE_ONLY = False 16 17 Parser = DorisParser 18 19 Generator = DorisGenerator
9class Doris(MySQL): 10 DATE_FORMAT = "'yyyy-MM-dd'" 11 DATEINT_FORMAT = "'yyyyMMdd'" 12 TIME_FORMAT = "'yyyy-MM-dd HH:mm:ss'" 13 14 class Tokenizer(MySQL.Tokenizer): 15 DASH_COMMENT_REQUIRES_BOUNDARY = False 16 COMMENTS_TERMINATE_AT_NEWLINE_ONLY = False 17 18 Parser = DorisParser 19 20 Generator = DorisGenerator
Parser =
<class 'sqlglot.parsers.doris.DorisParser'>
Generator =
<class 'sqlglot.generators.doris.DorisGenerator'>
VALID_INTERVAL_UNITS: set[str] =
{'MINUTE', 'QUARTERS', 'H', 'MILLISECON', 'EPOCH_MICROSECONDS', 'CENTS', 'EPOCH_MILLISECONDS', 'DW_ISO', 'WEEKOFYEAR', 'WK', 'WEEK_ISO', 'QUARTER', 'NSEC', 'SECONDS', 'DOW', 'MINUTES', 'S', 'WEEK', 'HOUR_MINUTE', 'CENT', 'EPOCH', 'QTRS', 'YRS', 'MILLISEC', 'Q', 'MICROSECOND', 'HOUR_MICROSECOND', 'MONTHS', 'MINUTE_MICROSECOND', 'MILLISECONDS', 'DAYOFMONTH', 'DAY_MINUTE', 'CENTURY', 'HH', 'EPOCH_SECONDS', 'MSECONDS', 'MON', 'MI', 'NANOSEC', 'DAY OF YEAR', 'SECOND_MICROSECOND', 'DAYS', 'DAYOFWEEK_ISO', 'MICROSECS', 'HRS', 'NANOSECS', 'DOW_ISO', 'YR', 'MS', 'USECOND', 'DY', 'NANOSECOND', 'YYY', 'MSECS', 'CENTURIES', 'QTR', 'D', 'DW', 'WEEKOFYEARISO', 'MSEC', 'DOY', 'DAY', 'WY', 'EPOCH_MILLISECOND', 'MONS', 'EPOCH_SECOND', 'M', 'YY', 'EPOCH_NANOSECONDS', 'MICROSECONDS', 'TIMEZONE_HOUR', 'DAYOFWEEK', 'YEAR', 'USECONDS', 'DECS', 'HOUR', 'MICROSEC', 'USECS', 'HOUR_SECOND', 'DAY_MICROSECOND', 'WEEKISO', 'MIL', 'MILS', 'EPOCH_NANOSECOND', 'Y', 'W', 'WEEKDAY_ISO', 'DECADES', 'MILLENNIUM', 'DAY_HOUR', 'YEAR_MONTH', 'DAY_SECOND', 'DD', 'SECS', 'US', 'DEC', 'HOURS', 'MM', 'DAYOFWEEKISO', 'YEARS', 'TZH', 'MILLISECS', 'MIN', 'NSECONDS', 'C', 'MINUTE_SECOND', 'SEC', 'USEC', 'TZM', 'TIMEZONE_MINUTE', 'SECOND', 'DAYOFYEAR', 'WEEKOFYEAR_ISO', 'MILLISECOND', 'DAY OF WEEK', 'EPOCH_MICROSECOND', 'MINS', 'MONTH', 'WOY', 'YYYY', 'MILLENIA', 'NS', 'HR', 'DECADE', 'WEEKDAY', 'NSECOND', 'MSECOND'}
UNESCAPED_SEQUENCES: dict[str, str] =
{'\\a': 'a', '\\b': '\x08', '\\f': 'f', '\\n': '\n', '\\r': '\r', '\\t': '\t', '\\v': 'v', '\\\\': '\\', '\\0': '\x00', '\\Z': '\x1a', '\\%': '\\%', '\\_': '\\_'}
Mapping of an escaped sequence (\n) to its unescaped version (
).
STRINGS_SUPPORT_ESCAPED_SEQUENCES: bool =
True
Whether string literals support escape sequences (e.g. \n). Set by the metaclass based on the tokenizer's STRING_ESCAPES.
BYTE_STRINGS_SUPPORT_ESCAPED_SEQUENCES: bool =
True
Whether byte string literals support escape sequences. Set by the metaclass based on the tokenizer's BYTE_STRING_ESCAPES.
IDENTIFIER_ESCAPED_SEQUENCES: dict[str, str] =
{}
Mapping of an identifier escape char (\) to its escaped version (\\). Set by the metaclass based on the tokenizer's IDENTIFIER_ESCAPES.
tokenizer_class =
<class 'Doris.Tokenizer'>
parser_class =
<class 'sqlglot.parsers.doris.DorisParser'>
generator_class =
<class 'sqlglot.generators.doris.DorisGenerator'>
TIME_TRIE: dict =
{'%': {'M': {0: True}, 'c': {0: True}, 'e': {0: True}, 'h': {0: True}, 'i': {0: True}, 's': {0: True}, 'u': {0: True}, 'k': {0: True}, 'l': {0: True}, 'r': {0: True}, 'T': {0: True}, 'W': {0: True}, 'x': {0: True}}}
FORMAT_TRIE: dict =
{'%': {'M': {0: True}, 'c': {0: True}, 'e': {0: True}, 'h': {0: True}, 'i': {0: True}, 's': {0: True}, 'u': {0: True}, 'k': {0: True}, 'l': {0: True}, 'r': {0: True}, 'T': {0: True}, 'W': {0: True}, 'x': {0: True}}}
INVERSE_TIME_MAPPING: dict[str, str] =
{'%B': '%M', '%-m': '%c', '%-d': '%e', '%I': '%h', '%M': '%i', '%S': '%s', '%W': '%u', '%-H': '%k', '%-I': '%l', '%I:%M:%S %p': '%r', '%H:%M:%S': '%T', '%A': '%W', '%G': '%x', '%mstrict': '%m', '%dstrict': '%d', '%Hstrict': '%H', '%Istrict': '%h', '%Mstrict': '%i', '%Sstrict': '%s'}
INVERSE_TIME_TRIE: dict =
{'%': {'B': {0: True}, '-': {'m': {0: True}, 'd': {0: True}, 'H': {0: True}, 'I': {0: True}}, 'I': {0: True, ':': {'%': {'M': {':': {'%': {'S': {' ': {'%': {'p': {0: True}}}}}}}}}, 's': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'M': {0: True, 's': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'S': {0: True, 's': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'W': {0: True}, 'H': {':': {'%': {'M': {':': {'%': {'S': {0: True}}}}}}, 's': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'A': {0: True}, 'G': {0: True}, 'm': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'd': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}}}
INVERSE_FORMAT_MAPPING: dict[str, str] =
{'%mstrict': '%m', '%dstrict': '%d', '%Hstrict': '%H', '%Istrict': '%I', '%Mstrict': '%M', '%Sstrict': '%S'}
INVERSE_FORMAT_TRIE: dict =
{'%': {'m': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'd': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'H': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'I': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'M': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'S': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}}}
ESCAPED_SEQUENCES: dict[str, str] =
{'\x08': '\\b', '\n': '\\n', '\r': '\\r', '\t': '\\t', '\\': '\\\\', '\x00': '\\0', '\x1a': '\\Z'}
Inherited Members
- sqlglot.dialects.mysql.MySQL
- PROMOTE_TO_INFERRED_DATETIME_TYPE
- USING_COLUMN_ORDER
- IDENTIFIERS_CAN_START_WITH_DIGIT
- NORMALIZATION_STRATEGY
- DPIPE_IS_STRING_CONCAT
- CONCAT_WS_COALESCE
- SUPPORTS_USER_DEFINED_TYPES
- SAFE_DIVISION
- SAFE_TO_ELIMINATE_DOUBLE_NEGATION
- LEAST_GREATEST_IGNORES_NULLS
- EXPRESSION_METADATA
- TIME_MAPPING
14 class Tokenizer(MySQL.Tokenizer): 15 DASH_COMMENT_REQUIRES_BOUNDARY = False 16 COMMENTS_TERMINATE_AT_NEWLINE_ONLY = False
Inherited Members
- sqlglot.tokens.Tokenizer
- Tokenizer
- SINGLE_TOKENS
- BYTE_STRINGS
- NATIONAL_RAW_STRINGS
- RAW_STRINGS
- HEREDOC_STRINGS
- UNICODE_STRINGS
- VAR_SINGLE_TOKENS
- IDENTIFIER_ESCAPES
- HEREDOC_TAG_IS_IDENTIFIER
- HEREDOC_STRING_ALTERNATIVE
- STRING_ESCAPES_ALLOWED_IN_RAW_STRINGS
- NUMERIC_ESCAPES
- NUMERIC_ESCAPES_ARE_BYTES
- LONE_SURROGATE_REPLACEMENT
- HINT_START
- TOKENS_PRECEDING_HINT
- COMMAND_PREFIX_TOKENS
- NUMERIC_LITERALS
- NUMBERS_CAN_HAVE_DECIMALS
- dialect
- tokenize
- sql
- size
- tokens