sqlglot 27.13.0__py3-none-any.whl → 27.13.2__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/dialects/snowflake.py +0 -1
- sqlglot/generator.py +2 -1
- sqlglot/parser.py +12 -6
- sqlglot/tokens.py +0 -2
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.2.dist-info}/METADATA +1 -1
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.2.dist-info}/RECORD +10 -10
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.2.dist-info}/WHEEL +0 -0
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.2.dist-info}/licenses/LICENSE +0 -0
- {sqlglot-27.13.0.dist-info → sqlglot-27.13.2.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.2'
|
|
32
|
+
__version_tuple__ = version_tuple = (27, 13, 2)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
sqlglot/dialects/snowflake.py
CHANGED
|
@@ -1161,7 +1161,6 @@ class Snowflake(Dialect):
|
|
|
1161
1161
|
"RM": TokenType.COMMAND,
|
|
1162
1162
|
"SAMPLE": TokenType.TABLE_SAMPLE,
|
|
1163
1163
|
"SEMANTIC VIEW": TokenType.SEMANTIC_VIEW,
|
|
1164
|
-
"SESSION": TokenType.SESSION,
|
|
1165
1164
|
"SQL_DOUBLE": TokenType.DOUBLE,
|
|
1166
1165
|
"SQL_VARCHAR": TokenType.VARCHAR,
|
|
1167
1166
|
"STAGE": TokenType.STAGE,
|
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
|
@@ -569,6 +569,7 @@ class Parser(metaclass=_Parser):
|
|
|
569
569
|
TokenType.USE,
|
|
570
570
|
TokenType.VOLATILE,
|
|
571
571
|
TokenType.WINDOW,
|
|
572
|
+
*ALTERABLES,
|
|
572
573
|
*CREATABLES,
|
|
573
574
|
*SUBQUERY_PREDICATES,
|
|
574
575
|
*TYPE_TOKENS,
|
|
@@ -5397,7 +5398,7 @@ class Parser(metaclass=_Parser):
|
|
|
5397
5398
|
if type_token == TokenType.VECTOR and len(expressions) == 2:
|
|
5398
5399
|
expressions[0] = exp.DataType.build(expressions[0].name, dialect=self.dialect)
|
|
5399
5400
|
|
|
5400
|
-
if not
|
|
5401
|
+
if not self._match(TokenType.R_PAREN):
|
|
5401
5402
|
self._retreat(index)
|
|
5402
5403
|
return None
|
|
5403
5404
|
|
|
@@ -6464,6 +6465,11 @@ class Parser(metaclass=_Parser):
|
|
|
6464
6465
|
return this
|
|
6465
6466
|
|
|
6466
6467
|
def _parse_case(self) -> t.Optional[exp.Expression]:
|
|
6468
|
+
if self._match(TokenType.DOT, advance=False):
|
|
6469
|
+
# Avoid raising on valid expressions like case.*, supported by, e.g., spark & snowflake
|
|
6470
|
+
self._retreat(self._index - 1)
|
|
6471
|
+
return None
|
|
6472
|
+
|
|
6467
6473
|
ifs = []
|
|
6468
6474
|
default = None
|
|
6469
6475
|
|
|
@@ -7079,8 +7085,8 @@ class Parser(metaclass=_Parser):
|
|
|
7079
7085
|
if kind:
|
|
7080
7086
|
self._match(TokenType.BETWEEN)
|
|
7081
7087
|
start = self._parse_window_spec()
|
|
7082
|
-
|
|
7083
|
-
end = self._parse_window_spec()
|
|
7088
|
+
|
|
7089
|
+
end = self._parse_window_spec() if self._match(TokenType.AND) else {}
|
|
7084
7090
|
exclude = (
|
|
7085
7091
|
self._parse_var_from_options(self.WINDOW_EXCLUDE_OPTIONS)
|
|
7086
7092
|
if self._match_text_seq("EXCLUDE")
|
|
@@ -7092,8 +7098,8 @@ class Parser(metaclass=_Parser):
|
|
|
7092
7098
|
kind=kind,
|
|
7093
7099
|
start=start["value"],
|
|
7094
7100
|
start_side=start["side"],
|
|
7095
|
-
end=end
|
|
7096
|
-
end_side=end
|
|
7101
|
+
end=end.get("value"),
|
|
7102
|
+
end_side=end.get("side"),
|
|
7097
7103
|
exclude=exclude,
|
|
7098
7104
|
)
|
|
7099
7105
|
else:
|
|
@@ -7131,7 +7137,7 @@ class Parser(metaclass=_Parser):
|
|
|
7131
7137
|
"value": (
|
|
7132
7138
|
(self._match_text_seq("UNBOUNDED") and "UNBOUNDED")
|
|
7133
7139
|
or (self._match_text_seq("CURRENT", "ROW") and "CURRENT ROW")
|
|
7134
|
-
or self.
|
|
7140
|
+
or self._parse_type()
|
|
7135
7141
|
),
|
|
7136
7142
|
"side": self._match_texts(self.WINDOW_SIDES) and self._prev.text,
|
|
7137
7143
|
}
|
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=Qfj_wDzloXYOzTK9Ff0q4plSvKrkjROgU8iPJJemDqA,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=wouCp_0fjj7xFqK6R3lt1LFVpk0f3qCsWQcvQnIWSQM,333289
|
|
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
|
|
@@ -42,7 +42,7 @@ sqlglot/dialects/prql.py,sha256=fwN-SPEGx-drwf1K0U2MByN-PkW3C_rOgQ3xeJeychg,7908
|
|
|
42
42
|
sqlglot/dialects/redshift.py,sha256=_sQTom4CGozFDZXW9y6bHQcZ-KiQ7QJjjQqM5rVagSc,15889
|
|
43
43
|
sqlglot/dialects/risingwave.py,sha256=BqWwW1iT_OIVMwfRamaww79snnBwIgCfr22Go-ggO68,3289
|
|
44
44
|
sqlglot/dialects/singlestore.py,sha256=_42yJP-YYbHswIBCKO5qxP5Z_AVksLh3bMX394iivwQ,55764
|
|
45
|
-
sqlglot/dialects/snowflake.py,sha256=
|
|
45
|
+
sqlglot/dialects/snowflake.py,sha256=A3k54EodIUxwTnnBazefDHO5mxon0zSg43mep-VG_7E,72042
|
|
46
46
|
sqlglot/dialects/spark.py,sha256=PzyhkelDzbCMgJ3RVHD6yyzLIFp9NdZfwVas5IymowM,10147
|
|
47
47
|
sqlglot/dialects/spark2.py,sha256=qz36FT9k4iuiqboRpyG4VpKGkPR0P2fifmqgZ9gNUEU,14851
|
|
48
48
|
sqlglot/dialects/sqlite.py,sha256=UIQ66shIt2bQoLd7tYG4NVzh4HwCfERgAaLyukz8HjE,13231
|
|
@@ -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.2.dist-info/licenses/LICENSE,sha256=p1Yk0B4oa0l8Rh-_dYyy75d8spjPd_vTloXfz4FWxys,1065
|
|
80
|
+
sqlglot-27.13.2.dist-info/METADATA,sha256=OL06yiI1dWjxy0Z_rIYYoKTcEzkYr1aCkOn-fvZ48Y4,20682
|
|
81
|
+
sqlglot-27.13.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
82
|
+
sqlglot-27.13.2.dist-info/top_level.txt,sha256=5kRskCGA_gVADF9rSfSzPdLHXqvfMusDYeHePfNY2nQ,8
|
|
83
|
+
sqlglot-27.13.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|