sqlglot 27.13.0__py3-none-any.whl → 27.13.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sqlglot/_version.py +2 -2
- sqlglot/generator.py +2 -1
- sqlglot/parser.py +11 -6
- sqlglot/tokens.py +0 -2
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.1.dist-info}/METADATA +1 -1
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.1.dist-info}/RECORD +9 -9
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.1.dist-info}/WHEEL +0 -0
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.1.dist-info}/licenses/LICENSE +0 -0
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.1.dist-info}/top_level.txt +0 -0
sqlglot/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '27.13.
|
|
32
|
-
__version_tuple__ = version_tuple = (27, 13,
|
|
31
|
+
__version__ = version = '27.13.1'
|
|
32
|
+
__version_tuple__ = version_tuple = (27, 13, 1)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
sqlglot/generator.py
CHANGED
|
@@ -5243,7 +5243,8 @@ class Generator(metaclass=_Generator):
|
|
|
5243
5243
|
metrics = self.seg(f"METRICS {metrics}") if metrics else ""
|
|
5244
5244
|
where = self.sql(expression, "where")
|
|
5245
5245
|
where = self.seg(f"WHERE {where}") if where else ""
|
|
5246
|
-
|
|
5246
|
+
body = self.indent(this + metrics + dimensions + where, skip_first=True)
|
|
5247
|
+
return f"SEMANTIC_VIEW({body}{self.seg(')', sep='')}"
|
|
5247
5248
|
|
|
5248
5249
|
def getextract_sql(self, expression: exp.GetExtract) -> str:
|
|
5249
5250
|
this = expression.this
|
sqlglot/parser.py
CHANGED
|
@@ -5397,7 +5397,7 @@ class Parser(metaclass=_Parser):
|
|
|
5397
5397
|
if type_token == TokenType.VECTOR and len(expressions) == 2:
|
|
5398
5398
|
expressions[0] = exp.DataType.build(expressions[0].name, dialect=self.dialect)
|
|
5399
5399
|
|
|
5400
|
-
if not
|
|
5400
|
+
if not self._match(TokenType.R_PAREN):
|
|
5401
5401
|
self._retreat(index)
|
|
5402
5402
|
return None
|
|
5403
5403
|
|
|
@@ -6464,6 +6464,11 @@ class Parser(metaclass=_Parser):
|
|
|
6464
6464
|
return this
|
|
6465
6465
|
|
|
6466
6466
|
def _parse_case(self) -> t.Optional[exp.Expression]:
|
|
6467
|
+
if self._match(TokenType.DOT, advance=False):
|
|
6468
|
+
# Avoid raising on valid expressions like case.*, supported by, e.g., spark & snowflake
|
|
6469
|
+
self._retreat(self._index - 1)
|
|
6470
|
+
return None
|
|
6471
|
+
|
|
6467
6472
|
ifs = []
|
|
6468
6473
|
default = None
|
|
6469
6474
|
|
|
@@ -7079,8 +7084,8 @@ class Parser(metaclass=_Parser):
|
|
|
7079
7084
|
if kind:
|
|
7080
7085
|
self._match(TokenType.BETWEEN)
|
|
7081
7086
|
start = self._parse_window_spec()
|
|
7082
|
-
|
|
7083
|
-
end = self._parse_window_spec()
|
|
7087
|
+
|
|
7088
|
+
end = self._parse_window_spec() if self._match(TokenType.AND) else {}
|
|
7084
7089
|
exclude = (
|
|
7085
7090
|
self._parse_var_from_options(self.WINDOW_EXCLUDE_OPTIONS)
|
|
7086
7091
|
if self._match_text_seq("EXCLUDE")
|
|
@@ -7092,8 +7097,8 @@ class Parser(metaclass=_Parser):
|
|
|
7092
7097
|
kind=kind,
|
|
7093
7098
|
start=start["value"],
|
|
7094
7099
|
start_side=start["side"],
|
|
7095
|
-
end=end
|
|
7096
|
-
end_side=end
|
|
7100
|
+
end=end.get("value"),
|
|
7101
|
+
end_side=end.get("side"),
|
|
7097
7102
|
exclude=exclude,
|
|
7098
7103
|
)
|
|
7099
7104
|
else:
|
|
@@ -7131,7 +7136,7 @@ class Parser(metaclass=_Parser):
|
|
|
7131
7136
|
"value": (
|
|
7132
7137
|
(self._match_text_seq("UNBOUNDED") and "UNBOUNDED")
|
|
7133
7138
|
or (self._match_text_seq("CURRENT", "ROW") and "CURRENT ROW")
|
|
7134
|
-
or self.
|
|
7139
|
+
or self._parse_type()
|
|
7135
7140
|
),
|
|
7136
7141
|
"side": self._match_texts(self.WINDOW_SIDES) and self._prev.text,
|
|
7137
7142
|
}
|
sqlglot/tokens.py
CHANGED
|
@@ -234,7 +234,6 @@ class TokenType(AutoName):
|
|
|
234
234
|
# keywords
|
|
235
235
|
ALIAS = auto()
|
|
236
236
|
ALTER = auto()
|
|
237
|
-
ALWAYS = auto()
|
|
238
237
|
ALL = auto()
|
|
239
238
|
ANTI = auto()
|
|
240
239
|
ANY = auto()
|
|
@@ -713,7 +712,6 @@ class Tokenizer(metaclass=_Tokenizer):
|
|
|
713
712
|
"~~*": TokenType.ILIKE,
|
|
714
713
|
"~*": TokenType.IRLIKE,
|
|
715
714
|
"ALL": TokenType.ALL,
|
|
716
|
-
"ALWAYS": TokenType.ALWAYS,
|
|
717
715
|
"AND": TokenType.AND,
|
|
718
716
|
"ANTI": TokenType.ANTI,
|
|
719
717
|
"ANY": TokenType.ANY,
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
sqlglot/__init__.py,sha256=za08rtdPh2v7dOpGdNomttlIVGgTrKja7rPd6sQwaTg,5391
|
|
2
2
|
sqlglot/__main__.py,sha256=022c173KqxsiABWTEpUIq_tJUxuNiW7a7ABsxBXqvu8,2069
|
|
3
3
|
sqlglot/_typing.py,sha256=-1HPyr3w5COlSJWqlgt8jhFk2dyMvBuvVBqIX1wyVCM,642
|
|
4
|
-
sqlglot/_version.py,sha256=
|
|
4
|
+
sqlglot/_version.py,sha256=ou5bykwli5rw5_qblbMze4DFs75loRI8NxexhmePC64,708
|
|
5
5
|
sqlglot/diff.py,sha256=PtOllQMQa1Sw1-V2Y8eypmDqGujXYPaTOp_WLsWkAWk,17314
|
|
6
6
|
sqlglot/errors.py,sha256=QNKMr-pzLUDR-tuMmn_GK6iMHUIVdb_YSJ_BhGEvuso,2126
|
|
7
7
|
sqlglot/expressions.py,sha256=oestq-dQt-OC2XLgG0B-I3cDgg7DptuXmcUW7_uP6aQ,253755
|
|
8
|
-
sqlglot/generator.py,sha256=
|
|
8
|
+
sqlglot/generator.py,sha256=cO2HdHWKlL8Y7zs81hSsR-mFcy7U5x0Wd3A27jkn3lk,224692
|
|
9
9
|
sqlglot/helper.py,sha256=9nZjFVRBtMKFC3EdzpDQ6jkazFO19po6BF8xHiNGZIo,15111
|
|
10
10
|
sqlglot/jsonpath.py,sha256=SQgaxzaEYBN7At9dkTK4N1Spk6xHxvHL6QtCIP6iM30,7905
|
|
11
11
|
sqlglot/lineage.py,sha256=Qj5ykuDNcATppb9vOjoIKBqRVLbu3OMPiZk9f3iyv40,15312
|
|
12
|
-
sqlglot/parser.py,sha256=
|
|
12
|
+
sqlglot/parser.py,sha256=6QMiFaVbl7LJX-YMaZvJT_g28de2k3G5V-uDAx3zWTg,333268
|
|
13
13
|
sqlglot/planner.py,sha256=ql7Li-bWJRcyXzNaZy_n6bQ6B2ZfunEIB8Ztv2xaxq4,14634
|
|
14
14
|
sqlglot/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
sqlglot/schema.py,sha256=13H2qKQs27EKdTpDLOvcNnSTDAUbYNKjWtJs4aQCSOA,20509
|
|
16
16
|
sqlglot/serde.py,sha256=DQVJ95WrIvhYfe02Ytb4NQug2aMwDCEwpMBW1LKDqzE,2031
|
|
17
17
|
sqlglot/time.py,sha256=Q62gv6kL40OiRBF6BMESxKJcMVn7ZLNw7sv8H34z5FI,18400
|
|
18
|
-
sqlglot/tokens.py,sha256=
|
|
18
|
+
sqlglot/tokens.py,sha256=GuRPOipxixWdEJDxIat9ZLPAn3JhQ2cP94qvOelXogU,49076
|
|
19
19
|
sqlglot/transforms.py,sha256=utNDsCBsA7hPUK3-aby3DDgiY_XVMAKQqeoLm1EyihI,41218
|
|
20
20
|
sqlglot/trie.py,sha256=v27uXMrHfqrXlJ6GmeTSMovsB_3o0ctnlKhdNt7W6fI,2245
|
|
21
21
|
sqlglot/dialects/__init__.py,sha256=e3K2NHrZO7oXfBzEpRsvgWAgJ_UCEyg7SlUCRqvnPj4,3799
|
|
@@ -76,8 +76,8 @@ sqlglot/optimizer/qualify_tables.py,sha256=dA4ZazL7ShQh2JgBwpHuG-4c5lBw1TNzCnuN7
|
|
|
76
76
|
sqlglot/optimizer/scope.py,sha256=UOTrbwqcTc5iRQf0WStgYWXpE24w6riZy-tJYA18yTw,31229
|
|
77
77
|
sqlglot/optimizer/simplify.py,sha256=-_yus42OYwqjQ9a2TSGhtG2G0pSkInUry1z7hEMz2pY,51062
|
|
78
78
|
sqlglot/optimizer/unnest_subqueries.py,sha256=kzWUVDlxs8z9nmRx-8U-pHXPtVZhEIwkKqmKhr2QLvc,10908
|
|
79
|
-
sqlglot-27.13.
|
|
80
|
-
sqlglot-27.13.
|
|
81
|
-
sqlglot-27.13.
|
|
82
|
-
sqlglot-27.13.
|
|
83
|
-
sqlglot-27.13.
|
|
79
|
+
sqlglot-27.13.1.dist-info/licenses/LICENSE,sha256=p1Yk0B4oa0l8Rh-_dYyy75d8spjPd_vTloXfz4FWxys,1065
|
|
80
|
+
sqlglot-27.13.1.dist-info/METADATA,sha256=rnD1jn-fbRMKBZZGZWvzMgUuE3KzqbHgqXMzDSnwIcw,20682
|
|
81
|
+
sqlglot-27.13.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
82
|
+
sqlglot-27.13.1.dist-info/top_level.txt,sha256=5kRskCGA_gVADF9rSfSzPdLHXqvfMusDYeHePfNY2nQ,8
|
|
83
|
+
sqlglot-27.13.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|