Edit on GitHub

sqlglot.dialects.dax

 1from __future__ import annotations
 2
 3from sqlglot import tokens
 4from sqlglot.dialects.dialect import Dialect
 5from sqlglot.generators.dax import DAXGenerator
 6from sqlglot.parsers.dax import DAXParser
 7
 8
 9class DAX(Dialect):
10    DPIPE_IS_STRING_CONCAT = False
11
12    Generator = DAXGenerator
13
14    class Tokenizer(tokens.Tokenizer):
15        IDENTIFIERS = ["'", ("[", "]")]
16        QUOTES = ['"']
17        STRING_ESCAPES = ['"']
18        COMMENTS = ["--", "//", ("/*", "*/")]
19
20    Parser = DAXParser
class DAX(sqlglot.dialects.dialect.Dialect):
10class DAX(Dialect):
11    DPIPE_IS_STRING_CONCAT = False
12
13    Generator = DAXGenerator
14
15    class Tokenizer(tokens.Tokenizer):
16        IDENTIFIERS = ["'", ("[", "]")]
17        QUOTES = ['"']
18        STRING_ESCAPES = ['"']
19        COMMENTS = ["--", "//", ("/*", "*/")]
20
21    Parser = DAXParser
DPIPE_IS_STRING_CONCAT = False

Whether the DPIPE token (||) is a string concatenation operator.

Generator = <class 'sqlglot.generators.dax.DAXGenerator'>
Parser = <class 'sqlglot.parsers.dax.DAXParser'>
SUPPORTS_COLUMN_JOIN_MARKS = False

Whether the old-style outer join (+) syntax is supported.

STRINGS_SUPPORT_ESCAPED_SEQUENCES: bool = False

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 = False

Whether byte string literals support escape sequences. Set by the metaclass based on the tokenizer's BYTE_STRING_ESCAPES.

INITCAP_SUPPORTS_CUSTOM_DELIMITERS = False
tokenizer_class = <class 'DAX.Tokenizer'>
jsonpath_tokenizer_class = <class 'sqlglot.dialects.dialect.JSONPathTokenizer'>
parser_class = <class 'sqlglot.parsers.dax.DAXParser'>
generator_class = <class 'sqlglot.generators.dax.DAXGenerator'>
TIME_TRIE: dict = {}
FORMAT_TRIE: dict = {}
INVERSE_TIME_MAPPING: dict[str, str] = {'%mstrict': '%m', '%dstrict': '%d'}
INVERSE_TIME_TRIE: dict = {'%': {'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'}
INVERSE_FORMAT_TRIE: dict = {'%': {'m': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}, 'd': {'s': {'t': {'r': {'i': {'c': {'t': {0: True}}}}}}}}}
INVERSE_CREATABLE_KIND_MAPPING: dict[str, str] = {}
ESCAPED_SEQUENCES: dict[str, str] = {}
QUOTE_START = '"'
QUOTE_END = '"'
IDENTIFIER_START = "'"
IDENTIFIER_END = "'"
VALID_INTERVAL_UNITS: set[str] = {'MINUTE', 'Q', 'WEEKDAY', 'MS', 'MSEC', 'DECS', 'MSECONDS', 'DW', 'DAY OF YEAR', 'DAYOFWEEK_ISO', 'DD', 'MSECS', 'TIMEZONE_HOUR', 'WK', 'NSECONDS', 'SECONDS', 'QTR', 'QUARTERS', 'YEARS', 'DAYS', 'WEEKDAY_ISO', 'EPOCH_NANOSECONDS', 'WEEK', 'DECADE', 'MON', 'CENT', 'MILLISECONDS', 'NS', 'D', 'DAY', 'MILLISECON', 'WEEKOFYEAR_ISO', 'CENTURIES', 'NSEC', 'EPOCH_MILLISECOND', 'DAYOFWEEK', 'MONS', 'H', 'HOURS', 'SEC', 'HRS', 'MILLISECS', 'EPOCH', 'S', 'NSECOND', 'DECADES', 'MINUTES', 'EPOCH_MILLISECONDS', 'CENTURY', 'TZH', 'WOY', 'HH', 'SECS', 'USECOND', 'QTRS', 'DW_ISO', 'DEC', 'DAYOFYEAR', 'EPOCH_NANOSECOND', 'YEAR', 'MIL', 'MONTHS', 'MINS', 'MONTH', 'DOW_ISO', 'YRS', 'MICROSECONDS', 'M', 'EPOCH_SECONDS', 'HOUR', 'HR', 'MI', 'DAYOFMONTH', 'YYYY', 'DOY', 'TZM', 'MM', 'W', 'DOW', 'WEEKOFYEAR', 'EPOCH_SECOND', 'NANOSECS', 'US', 'MILLENIA', 'TIMEZONE_MINUTE', 'EPOCH_MICROSECOND', 'WEEK_ISO', 'WEEKOFYEARISO', 'DAY OF WEEK', 'MILLISECOND', 'MILLENNIUM', 'MILS', 'YY', 'MIN', 'USECONDS', 'MICROSECS', 'QUARTER', 'USEC', 'USECS', 'SECOND', 'NANOSECOND', 'C', 'CENTS', 'WEEKISO', 'MICROSEC', 'MICROSECOND', 'Y', 'YYY', 'MILLISEC', 'MSECOND', 'WY', 'DY', 'DAYOFWEEKISO', 'NANOSEC', 'EPOCH_MICROSECONDS', 'YR'}
BIT_START: str | None = None
BIT_END: str | None = None
HEX_START: str | None = None
HEX_END: str | None = None
BYTE_START: str | None = None
BYTE_END: str | None = None
UNICODE_START: str | None = None
UNICODE_END: str | None = None
class DAX.Tokenizer(sqlglot.tokens.Tokenizer):
15    class Tokenizer(tokens.Tokenizer):
16        IDENTIFIERS = ["'", ("[", "]")]
17        QUOTES = ['"']
18        STRING_ESCAPES = ['"']
19        COMMENTS = ["--", "//", ("/*", "*/")]
IDENTIFIERS = ["'", ('[', ']')]
QUOTES = ['"']
STRING_ESCAPES = ['"']
COMMENTS = ['--', '//', ('/*', '*/')]
BYTE_STRING_ESCAPES: ClassVar[list[str]] = ['"']