sqlglot 27.17.0__py3-none-any.whl → 27.18.0__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/__init__.py +1 -0
- sqlglot/dialects/dialect.py +9 -0
- sqlglot/dialects/mysql.py +15 -0
- sqlglot/dialects/snowflake.py +23 -7
- sqlglot/dialects/solr.py +22 -0
- sqlglot/expressions.py +19 -0
- sqlglot/optimizer/simplify.py +1 -1
- sqlglot/parser.py +25 -17
- {sqlglot-27.17.0.dist-info → sqlglot-27.18.0.dist-info}/METADATA +3 -2
- {sqlglot-27.17.0.dist-info → sqlglot-27.18.0.dist-info}/RECORD +14 -13
- {sqlglot-27.17.0.dist-info → sqlglot-27.18.0.dist-info}/WHEEL +0 -0
- {sqlglot-27.17.0.dist-info → sqlglot-27.18.0.dist-info}/licenses/LICENSE +0 -0
- {sqlglot-27.17.0.dist-info → sqlglot-27.18.0.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.
|
|
32
|
-
__version_tuple__ = version_tuple = (27,
|
|
31
|
+
__version__ = version = '27.18.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (27, 18, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
sqlglot/dialects/__init__.py
CHANGED
sqlglot/dialects/dialect.py
CHANGED
|
@@ -99,6 +99,7 @@ class Dialects(str, Enum):
|
|
|
99
99
|
REDSHIFT = "redshift"
|
|
100
100
|
RISINGWAVE = "risingwave"
|
|
101
101
|
SNOWFLAKE = "snowflake"
|
|
102
|
+
SOLR = "solr"
|
|
102
103
|
SPARK = "spark"
|
|
103
104
|
SPARK2 = "spark2"
|
|
104
105
|
SQLITE = "sqlite"
|
|
@@ -291,6 +292,12 @@ class _Dialect(type):
|
|
|
291
292
|
TokenType.SEMI,
|
|
292
293
|
}
|
|
293
294
|
|
|
295
|
+
klass.VALID_INTERVAL_UNITS = {
|
|
296
|
+
*klass.VALID_INTERVAL_UNITS,
|
|
297
|
+
*klass.DATE_PART_MAPPING.keys(),
|
|
298
|
+
*klass.DATE_PART_MAPPING.values(),
|
|
299
|
+
}
|
|
300
|
+
|
|
294
301
|
return klass
|
|
295
302
|
|
|
296
303
|
|
|
@@ -551,6 +558,8 @@ class Dialect(metaclass=_Dialect):
|
|
|
551
558
|
IDENTIFIER_START = '"'
|
|
552
559
|
IDENTIFIER_END = '"'
|
|
553
560
|
|
|
561
|
+
VALID_INTERVAL_UNITS: t.Set[str] = set()
|
|
562
|
+
|
|
554
563
|
# Delimiters for bit, hex, byte and unicode literals
|
|
555
564
|
BIT_START: t.Optional[str] = None
|
|
556
565
|
BIT_END: t.Optional[str] = None
|
sqlglot/dialects/mysql.py
CHANGED
|
@@ -179,6 +179,21 @@ class MySQL(Dialect):
|
|
|
179
179
|
"%W": "%A",
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
+
VALID_INTERVAL_UNITS = {
|
|
183
|
+
*Dialect.VALID_INTERVAL_UNITS,
|
|
184
|
+
"SECOND_MICROSECOND",
|
|
185
|
+
"MINUTE_MICROSECOND",
|
|
186
|
+
"MINUTE_SECOND",
|
|
187
|
+
"HOUR_MICROSECOND",
|
|
188
|
+
"HOUR_SECOND",
|
|
189
|
+
"HOUR_MINUTE",
|
|
190
|
+
"DAY_MICROSECOND",
|
|
191
|
+
"DAY_SECOND",
|
|
192
|
+
"DAY_MINUTE",
|
|
193
|
+
"DAY_HOUR",
|
|
194
|
+
"YEAR_MONTH",
|
|
195
|
+
}
|
|
196
|
+
|
|
182
197
|
class Tokenizer(tokens.Tokenizer):
|
|
183
198
|
QUOTES = ["'", '"']
|
|
184
199
|
COMMENTS = ["--", "#", ("/*", "*/")]
|
sqlglot/dialects/snowflake.py
CHANGED
|
@@ -535,17 +535,20 @@ class Snowflake(Dialect):
|
|
|
535
535
|
exp.Length,
|
|
536
536
|
exp.BitLength,
|
|
537
537
|
exp.Levenshtein,
|
|
538
|
+
exp.JarowinklerSimilarity,
|
|
538
539
|
},
|
|
539
540
|
exp.DataType.Type.VARCHAR: {
|
|
540
541
|
*Dialect.TYPE_TO_EXPRESSIONS[exp.DataType.Type.VARCHAR],
|
|
541
542
|
exp.Base64DecodeString,
|
|
542
543
|
exp.Base64Encode,
|
|
544
|
+
exp.DecompressString,
|
|
543
545
|
exp.MD5,
|
|
544
546
|
exp.AIAgg,
|
|
545
547
|
exp.AIClassify,
|
|
546
548
|
exp.AISummarizeAgg,
|
|
547
549
|
exp.Chr,
|
|
548
550
|
exp.Collate,
|
|
551
|
+
exp.Collation,
|
|
549
552
|
exp.HexDecodeString,
|
|
550
553
|
exp.HexEncode,
|
|
551
554
|
exp.Initcap,
|
|
@@ -562,6 +565,7 @@ class Snowflake(Dialect):
|
|
|
562
565
|
*Dialect.TYPE_TO_EXPRESSIONS[exp.DataType.Type.BINARY],
|
|
563
566
|
exp.Base64DecodeBinary,
|
|
564
567
|
exp.Compress,
|
|
568
|
+
exp.DecompressBinary,
|
|
565
569
|
exp.MD5Digest,
|
|
566
570
|
exp.SHA1Digest,
|
|
567
571
|
exp.SHA2Digest,
|
|
@@ -588,7 +592,9 @@ class Snowflake(Dialect):
|
|
|
588
592
|
expr_type: lambda self, e: self._annotate_by_args(e, "this")
|
|
589
593
|
for expr_type in (
|
|
590
594
|
exp.Left,
|
|
595
|
+
exp.Pad,
|
|
591
596
|
exp.Right,
|
|
597
|
+
exp.Stuff,
|
|
592
598
|
exp.Substring,
|
|
593
599
|
)
|
|
594
600
|
},
|
|
@@ -1503,13 +1509,23 @@ class Snowflake(Dialect):
|
|
|
1503
1509
|
|
|
1504
1510
|
def datatype_sql(self, expression: exp.DataType) -> str:
|
|
1505
1511
|
expressions = expression.expressions
|
|
1506
|
-
if (
|
|
1507
|
-
expressions
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1512
|
+
if expressions and expression.is_type(*exp.DataType.STRUCT_TYPES):
|
|
1513
|
+
for field_type in expressions:
|
|
1514
|
+
# The correct syntax is OBJECT [ (<key> <value_type [NOT NULL] [, ...]) ]
|
|
1515
|
+
if isinstance(field_type, exp.DataType):
|
|
1516
|
+
return "OBJECT"
|
|
1517
|
+
if (
|
|
1518
|
+
isinstance(field_type, exp.ColumnDef)
|
|
1519
|
+
and field_type.this
|
|
1520
|
+
and field_type.this.is_string
|
|
1521
|
+
):
|
|
1522
|
+
# Doing OBJECT('foo' VARCHAR) is invalid snowflake Syntax. Moreover, besides
|
|
1523
|
+
# converting 'foo' into an identifier, we also need to quote it because these
|
|
1524
|
+
# keys are case-sensitive. For example:
|
|
1525
|
+
#
|
|
1526
|
+
# WITH t AS (SELECT OBJECT_CONSTRUCT('x', 'y') AS c) SELECT c:x FROM t -- correct
|
|
1527
|
+
# WITH t AS (SELECT OBJECT_CONSTRUCT('x', 'y') AS c) SELECT c:X FROM t -- incorrect, returns NULL
|
|
1528
|
+
field_type.this.replace(exp.to_identifier(field_type.name, quoted=True))
|
|
1513
1529
|
|
|
1514
1530
|
return super().datatype_sql(expression)
|
|
1515
1531
|
|
sqlglot/dialects/solr.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from sqlglot import exp, parser, tokens
|
|
2
|
+
from sqlglot.dialects.dialect import Dialect, NormalizationStrategy
|
|
3
|
+
from sqlglot.tokens import TokenType
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# https://solr.apache.org/guide/solr/latest/query-guide/sql-query.html
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Solr(Dialect):
|
|
10
|
+
NORMALIZATION_STRATEGY = NormalizationStrategy.CASE_INSENSITIVE
|
|
11
|
+
DPIPE_IS_STRING_CONCAT = False
|
|
12
|
+
SUPPORTS_SEMI_ANTI_JOIN = False
|
|
13
|
+
|
|
14
|
+
class Parser(parser.Parser):
|
|
15
|
+
DISJUNCTION = {
|
|
16
|
+
**parser.Parser.DISJUNCTION,
|
|
17
|
+
TokenType.DPIPE: exp.Or,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
class Tokenizer(tokens.Tokenizer):
|
|
21
|
+
QUOTES = ["'"]
|
|
22
|
+
IDENTIFIERS = ["`"]
|
sqlglot/expressions.py
CHANGED
|
@@ -5531,6 +5531,10 @@ class EuclideanDistance(Func):
|
|
|
5531
5531
|
arg_types = {"this": True, "expression": True}
|
|
5532
5532
|
|
|
5533
5533
|
|
|
5534
|
+
class JarowinklerSimilarity(Func):
|
|
5535
|
+
arg_types = {"this": True, "expression": True}
|
|
5536
|
+
|
|
5537
|
+
|
|
5534
5538
|
class AggFunc(Func):
|
|
5535
5539
|
pass
|
|
5536
5540
|
|
|
@@ -6022,6 +6026,10 @@ class Collate(Binary, Func):
|
|
|
6022
6026
|
pass
|
|
6023
6027
|
|
|
6024
6028
|
|
|
6029
|
+
class Collation(Func):
|
|
6030
|
+
pass
|
|
6031
|
+
|
|
6032
|
+
|
|
6025
6033
|
class Ceil(Func):
|
|
6026
6034
|
arg_types = {"this": True, "decimals": False, "to": False}
|
|
6027
6035
|
_sql_names = ["CEIL", "CEILING"]
|
|
@@ -6483,6 +6491,7 @@ class HexDecodeString(Func):
|
|
|
6483
6491
|
pass
|
|
6484
6492
|
|
|
6485
6493
|
|
|
6494
|
+
# https://docs.snowflake.com/en/sql-reference/functions/hex_encode
|
|
6486
6495
|
class HexEncode(Func):
|
|
6487
6496
|
arg_types = {"this": True, "case": False}
|
|
6488
6497
|
|
|
@@ -6493,6 +6502,16 @@ class Compress(Func):
|
|
|
6493
6502
|
arg_types = {"this": True, "method": False}
|
|
6494
6503
|
|
|
6495
6504
|
|
|
6505
|
+
# Snowflake: https://docs.snowflake.com/en/sql-reference/functions/decompress_binary
|
|
6506
|
+
class DecompressBinary(Func):
|
|
6507
|
+
arg_types = {"this": True, "method": True}
|
|
6508
|
+
|
|
6509
|
+
|
|
6510
|
+
# Snowflake: https://docs.snowflake.com/en/sql-reference/functions/decompress_string
|
|
6511
|
+
class DecompressString(Func):
|
|
6512
|
+
arg_types = {"this": True, "method": True}
|
|
6513
|
+
|
|
6514
|
+
|
|
6496
6515
|
class LowerHex(Hex):
|
|
6497
6516
|
pass
|
|
6498
6517
|
|
sqlglot/optimizer/simplify.py
CHANGED
sqlglot/parser.py
CHANGED
|
@@ -3123,21 +3123,26 @@ class Parser(metaclass=_Parser):
|
|
|
3123
3123
|
)
|
|
3124
3124
|
|
|
3125
3125
|
def _parse_update(self) -> exp.Update:
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
"
|
|
3134
|
-
|
|
3135
|
-
"
|
|
3136
|
-
|
|
3137
|
-
"
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3126
|
+
kwargs: t.Dict[str, t.Any] = {
|
|
3127
|
+
"this": self._parse_table(joins=True, alias_tokens=self.UPDATE_ALIAS_TOKENS),
|
|
3128
|
+
}
|
|
3129
|
+
while self._curr:
|
|
3130
|
+
if self._match(TokenType.SET):
|
|
3131
|
+
kwargs["expressions"] = self._parse_csv(self._parse_equality)
|
|
3132
|
+
elif self._match(TokenType.RETURNING, advance=False):
|
|
3133
|
+
kwargs["returning"] = self._parse_returning()
|
|
3134
|
+
elif self._match(TokenType.FROM, advance=False):
|
|
3135
|
+
kwargs["from"] = self._parse_from(joins=True)
|
|
3136
|
+
elif self._match(TokenType.WHERE, advance=False):
|
|
3137
|
+
kwargs["where"] = self._parse_where()
|
|
3138
|
+
elif self._match(TokenType.ORDER_BY, advance=False):
|
|
3139
|
+
kwargs["order"] = self._parse_order()
|
|
3140
|
+
elif self._match(TokenType.LIMIT, advance=False):
|
|
3141
|
+
kwargs["limit"] = self._parse_limit()
|
|
3142
|
+
else:
|
|
3143
|
+
break
|
|
3144
|
+
|
|
3145
|
+
return self.expression(exp.Update, **kwargs)
|
|
3141
3146
|
|
|
3142
3147
|
def _parse_use(self) -> exp.Use:
|
|
3143
3148
|
return self.expression(
|
|
@@ -4240,9 +4245,11 @@ class Parser(metaclass=_Parser):
|
|
|
4240
4245
|
)
|
|
4241
4246
|
|
|
4242
4247
|
def _parse_unnest(self, with_alias: bool = True) -> t.Optional[exp.Unnest]:
|
|
4243
|
-
if not self.
|
|
4248
|
+
if not self._match_pair(TokenType.UNNEST, TokenType.L_PAREN, advance=False):
|
|
4244
4249
|
return None
|
|
4245
4250
|
|
|
4251
|
+
self._advance()
|
|
4252
|
+
|
|
4246
4253
|
expressions = self._parse_wrapped_csv(self._parse_equality)
|
|
4247
4254
|
offset = self._match_pair(TokenType.WITH, TokenType.ORDINALITY)
|
|
4248
4255
|
|
|
@@ -5104,7 +5111,8 @@ class Parser(metaclass=_Parser):
|
|
|
5104
5111
|
isinstance(this, exp.Column)
|
|
5105
5112
|
and not this.table
|
|
5106
5113
|
and not this.this.quoted
|
|
5107
|
-
and
|
|
5114
|
+
and self._curr
|
|
5115
|
+
and self._curr.text.upper() not in self.dialect.VALID_INTERVAL_UNITS
|
|
5108
5116
|
):
|
|
5109
5117
|
self._retreat(index)
|
|
5110
5118
|
return None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlglot
|
|
3
|
-
Version: 27.
|
|
3
|
+
Version: 27.18.0
|
|
4
4
|
Summary: An easily customizable SQL parser and transpiler
|
|
5
5
|
Author-email: Toby Mao <toby.mao@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -39,7 +39,7 @@ Dynamic: provides-extra
|
|
|
39
39
|
|
|
40
40
|

|
|
41
41
|
|
|
42
|
-
SQLGlot is a no-dependency SQL parser, transpiler, optimizer, and engine. It can be used to format SQL or translate between [
|
|
42
|
+
SQLGlot is a no-dependency SQL parser, transpiler, optimizer, and engine. It can be used to format SQL or translate between [31 different dialects](https://github.com/tobymao/sqlglot/blob/main/sqlglot/dialects/__init__.py) like [DuckDB](https://duckdb.org/), [Presto](https://prestodb.io/) / [Trino](https://trino.io/), [Spark](https://spark.apache.org/) / [Databricks](https://www.databricks.com/), [Snowflake](https://www.snowflake.com/en/), and [BigQuery](https://cloud.google.com/bigquery/). It aims to read a wide variety of SQL inputs and output syntactically and semantically correct SQL in the targeted dialects.
|
|
43
43
|
|
|
44
44
|
It is a very comprehensive generic SQL parser with a robust [test suite](https://github.com/tobymao/sqlglot/blob/main/tests/). It is also quite [performant](#benchmarks), while being written purely in Python.
|
|
45
45
|
|
|
@@ -613,6 +613,7 @@ x + interval '1' month
|
|
|
613
613
|
| RisingWave | Community |
|
|
614
614
|
| SingleStore | Community |
|
|
615
615
|
| Snowflake | Official |
|
|
616
|
+
| Solr | Community |
|
|
616
617
|
| Spark | Official |
|
|
617
618
|
| SQLite | Official |
|
|
618
619
|
| StarRocks | Official |
|
|
@@ -1,15 +1,15 @@
|
|
|
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=7UxZQRE12m08A5rXKriqghWBW14eGYzdfIFlvSEPOcI,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
|
-
sqlglot/expressions.py,sha256=
|
|
7
|
+
sqlglot/expressions.py,sha256=KEMqwokmUV8udKzoUAQlkjZJXV-FkwAJLmSOIpGt4_k,258058
|
|
8
8
|
sqlglot/generator.py,sha256=ZHFzi6_EOJl5V-dnz71QJOIwtxj66oJdF6tUQoxBpck,226436
|
|
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=wlw73WjzXAHC9AH7Ezkfyeh134P97HheLPueCgXk4Mc,337292
|
|
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
|
|
@@ -18,12 +18,12 @@ sqlglot/time.py,sha256=Q62gv6kL40OiRBF6BMESxKJcMVn7ZLNw7sv8H34z5FI,18400
|
|
|
18
18
|
sqlglot/tokens.py,sha256=M6E-2vbIs41CYwyLIFtRqre9Mh9kO7Qt9rQvpfVeB7w,49217
|
|
19
19
|
sqlglot/transforms.py,sha256=utNDsCBsA7hPUK3-aby3DDgiY_XVMAKQqeoLm1EyihI,41218
|
|
20
20
|
sqlglot/trie.py,sha256=v27uXMrHfqrXlJ6GmeTSMovsB_3o0ctnlKhdNt7W6fI,2245
|
|
21
|
-
sqlglot/dialects/__init__.py,sha256=
|
|
21
|
+
sqlglot/dialects/__init__.py,sha256=g3HRtyb32r3LooiHKTzuUNB0_rBO_RauuOegp42gB48,3811
|
|
22
22
|
sqlglot/dialects/athena.py,sha256=ofArmayYLev4qZQ15GM8mevG04qqR5WGFb2ZcuYm6x4,10966
|
|
23
23
|
sqlglot/dialects/bigquery.py,sha256=9Q-oCXcpa2vrT2eMgVGHWwEvECMm4RQeV1XkjJj0nPA,72483
|
|
24
24
|
sqlglot/dialects/clickhouse.py,sha256=6kx1cm0YhtHbg5kvcY64Hau2KdeC7Y26SVlVHGLyPEA,58579
|
|
25
25
|
sqlglot/dialects/databricks.py,sha256=H4QTq7gg6tJylKc_YWsGp6049KydoI_wlQUHM7iCJtI,4753
|
|
26
|
-
sqlglot/dialects/dialect.py,sha256=
|
|
26
|
+
sqlglot/dialects/dialect.py,sha256=KfBctpr7VdrCdHrP1Tk7CqAml53tRq9x-aDAkaN-9l0,73540
|
|
27
27
|
sqlglot/dialects/doris.py,sha256=CFnF955Oav3IjZWA80ickOI8tPpCjxk7BN5R4Z6pA1U,25263
|
|
28
28
|
sqlglot/dialects/dremio.py,sha256=nOMxu_4xVKSOmMGNSwdxXSPc243cNbbpb-xXzYdgdeg,8460
|
|
29
29
|
sqlglot/dialects/drill.py,sha256=FOh7_KjPx_77pv0DiHKZog0CcmzqeF9_PEmGnJ1ESSM,5825
|
|
@@ -34,7 +34,7 @@ sqlglot/dialects/exasol.py,sha256=ay3g_VyT5WvHTgNyJuCQu0nBt4bpllLZ9IdMBizEgYM,15
|
|
|
34
34
|
sqlglot/dialects/fabric.py,sha256=BdkvzM8s-m5DIdBwdjEYskp32ub7aHCAex_xlhQn92I,10222
|
|
35
35
|
sqlglot/dialects/hive.py,sha256=UGIkXjMCk5a9ndUXQtvfG560oi3emdpqOYLQCmGabBk,32046
|
|
36
36
|
sqlglot/dialects/materialize.py,sha256=LD2q1kTRrCwkIu1BfoBvnjTGbupDtoQ8JQMDCIYAXHg,3533
|
|
37
|
-
sqlglot/dialects/mysql.py,sha256=
|
|
37
|
+
sqlglot/dialects/mysql.py,sha256=xxVAR-pXMljYCUioavP3nROtOqKmK4kfdp4WWXX7X9g,50049
|
|
38
38
|
sqlglot/dialects/oracle.py,sha256=zWPCpzGiTlgCJ5E6FjfX3Rszjcw4SnHg6xeVboMYIyo,15972
|
|
39
39
|
sqlglot/dialects/postgres.py,sha256=_pXSu29684utgeuzPziSJ0Sw54WEIIunwLugJw7KFD8,34853
|
|
40
40
|
sqlglot/dialects/presto.py,sha256=XVeYr2NP86x5enlRqI7MYR6le85_ucYg_BBRocGN3jM,33413
|
|
@@ -42,7 +42,8 @@ sqlglot/dialects/prql.py,sha256=fwN-SPEGx-drwf1K0U2MByN-PkW3C_rOgQ3xeJeychg,7908
|
|
|
42
42
|
sqlglot/dialects/redshift.py,sha256=FIwtP3yEg-way9pa32kxCJc6IaFkHVIvgYKZA-Ilmi0,15919
|
|
43
43
|
sqlglot/dialects/risingwave.py,sha256=BqWwW1iT_OIVMwfRamaww79snnBwIgCfr22Go-ggO68,3289
|
|
44
44
|
sqlglot/dialects/singlestore.py,sha256=0QqNYOucNklPQuyeGcsisLI97qPGx_RfWKOFarJz2qw,61711
|
|
45
|
-
sqlglot/dialects/snowflake.py,sha256=
|
|
45
|
+
sqlglot/dialects/snowflake.py,sha256=RqCEW6nMXlkJ-XqS3W4HA-ZPSQTHv_bc_CMBTmvZJOk,78425
|
|
46
|
+
sqlglot/dialects/solr.py,sha256=pydnl4ml-3M1Fc4ALm6cMVO9h-5EtqZxPZH_91Nz1Ss,617
|
|
46
47
|
sqlglot/dialects/spark.py,sha256=PzyhkelDzbCMgJ3RVHD6yyzLIFp9NdZfwVas5IymowM,10147
|
|
47
48
|
sqlglot/dialects/spark2.py,sha256=qz36FT9k4iuiqboRpyG4VpKGkPR0P2fifmqgZ9gNUEU,14851
|
|
48
49
|
sqlglot/dialects/sqlite.py,sha256=zzXEbnaLjJeg6hPLHricjpfSkuf8tpXECnjcHtoqIbw,13263
|
|
@@ -74,10 +75,10 @@ sqlglot/optimizer/qualify.py,sha256=oAPfwub7dEkrlCrsptcJWpLya4BgKhN6M5SwIs_86LY,
|
|
|
74
75
|
sqlglot/optimizer/qualify_columns.py,sha256=7aabZhD-dKNiwIW_ZjOEr0RPbWfhSbuR-WI6NnVCZAA,45298
|
|
75
76
|
sqlglot/optimizer/qualify_tables.py,sha256=dA4ZazL7ShQh2JgBwpHuG-4c5lBw1TNzCnuN7m0iVTA,6645
|
|
76
77
|
sqlglot/optimizer/scope.py,sha256=UOTrbwqcTc5iRQf0WStgYWXpE24w6riZy-tJYA18yTw,31229
|
|
77
|
-
sqlglot/optimizer/simplify.py,sha256
|
|
78
|
+
sqlglot/optimizer/simplify.py,sha256=27IYsqbz1kyMlURSfRkm_ADSQJg-4805AOMFOjKKytU,51049
|
|
78
79
|
sqlglot/optimizer/unnest_subqueries.py,sha256=kzWUVDlxs8z9nmRx-8U-pHXPtVZhEIwkKqmKhr2QLvc,10908
|
|
79
|
-
sqlglot-27.
|
|
80
|
-
sqlglot-27.
|
|
81
|
-
sqlglot-27.
|
|
82
|
-
sqlglot-27.
|
|
83
|
-
sqlglot-27.
|
|
80
|
+
sqlglot-27.18.0.dist-info/licenses/LICENSE,sha256=p1Yk0B4oa0l8Rh-_dYyy75d8spjPd_vTloXfz4FWxys,1065
|
|
81
|
+
sqlglot-27.18.0.dist-info/METADATA,sha256=UxjiFljC-bu1PB4zuYgt_3aWXJu36fhzoq05oQnH8jU,20703
|
|
82
|
+
sqlglot-27.18.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
83
|
+
sqlglot-27.18.0.dist-info/top_level.txt,sha256=5kRskCGA_gVADF9rSfSzPdLHXqvfMusDYeHePfNY2nQ,8
|
|
84
|
+
sqlglot-27.18.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|