Merging upstream version 6.2.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
0822fbed3a
commit
9bc11b290e
22 changed files with 312 additions and 45 deletions
|
@ -27,6 +27,7 @@ class Dialects(str, Enum):
|
|||
STARROCKS = "starrocks"
|
||||
TABLEAU = "tableau"
|
||||
TRINO = "trino"
|
||||
TSQL = "tsql"
|
||||
|
||||
|
||||
class _Dialect(type):
|
||||
|
@ -53,7 +54,6 @@ class _Dialect(type):
|
|||
klass.parser_class = getattr(klass, "Parser", Parser)
|
||||
klass.generator_class = getattr(klass, "Generator", Generator)
|
||||
|
||||
klass.tokenizer = klass.tokenizer_class()
|
||||
klass.quote_start, klass.quote_end = list(klass.tokenizer_class._QUOTES.items())[0]
|
||||
klass.identifier_start, klass.identifier_end = list(klass.tokenizer_class._IDENTIFIERS.items())[0]
|
||||
|
||||
|
@ -95,7 +95,6 @@ class Dialect(metaclass=_Dialect):
|
|||
tokenizer_class = None
|
||||
parser_class = None
|
||||
generator_class = None
|
||||
tokenizer = None
|
||||
|
||||
@classmethod
|
||||
def get_or_raise(cls, dialect):
|
||||
|
@ -138,6 +137,12 @@ class Dialect(metaclass=_Dialect):
|
|||
def transpile(self, code, **opts):
|
||||
return self.generate(self.parse(code), **opts)
|
||||
|
||||
@property
|
||||
def tokenizer(self):
|
||||
if not hasattr(self, "_tokenizer"):
|
||||
self._tokenizer = self.tokenizer_class()
|
||||
return self._tokenizer
|
||||
|
||||
def parser(self, **opts):
|
||||
return self.parser_class(
|
||||
**{
|
||||
|
@ -170,7 +175,15 @@ class Dialect(metaclass=_Dialect):
|
|||
|
||||
|
||||
def rename_func(name):
|
||||
return lambda self, expression: f"{name}({csv(*[self.sql(e) for e in expression.args.values()])})"
|
||||
def _rename(self, expression):
|
||||
args = (
|
||||
self.expressions(expression, flat=True)
|
||||
if isinstance(expression, exp.Func) and expression.is_var_len_args
|
||||
else csv(*[self.sql(e) for e in expression.args.values()])
|
||||
)
|
||||
return f"{name}({args})"
|
||||
|
||||
return _rename
|
||||
|
||||
|
||||
def approx_count_distinct_sql(self, expression):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue