sqlglot 27.18.0__py3-none-any.whl → 27.19.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/bigquery.py +25 -9
- sqlglot/dialects/snowflake.py +10 -0
- sqlglot/expressions.py +14 -0
- sqlglot/parser.py +2 -0
- {sqlglot-27.18.0.dist-info → sqlglot-27.19.0.dist-info}/METADATA +1 -1
- {sqlglot-27.18.0.dist-info → sqlglot-27.19.0.dist-info}/RECORD +10 -10
- {sqlglot-27.18.0.dist-info → sqlglot-27.19.0.dist-info}/WHEEL +0 -0
- {sqlglot-27.18.0.dist-info → sqlglot-27.19.0.dist-info}/licenses/LICENSE +0 -0
- {sqlglot-27.18.0.dist-info → sqlglot-27.19.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.19.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (27, 19, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
sqlglot/dialects/bigquery.py
CHANGED
|
@@ -754,15 +754,31 @@ class BigQuery(Dialect):
|
|
|
754
754
|
SUPPORTS_IMPLICIT_UNNEST = True
|
|
755
755
|
JOINS_HAVE_EQUAL_PRECEDENCE = True
|
|
756
756
|
|
|
757
|
-
# BigQuery does not allow ASC/DESC to be used as an identifier
|
|
758
|
-
ID_VAR_TOKENS =
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
757
|
+
# BigQuery does not allow ASC/DESC to be used as an identifier, allows GRANT as an identifier
|
|
758
|
+
ID_VAR_TOKENS = {
|
|
759
|
+
*parser.Parser.ID_VAR_TOKENS,
|
|
760
|
+
TokenType.GRANT,
|
|
761
|
+
} - {TokenType.ASC, TokenType.DESC}
|
|
762
|
+
|
|
763
|
+
ALIAS_TOKENS = {
|
|
764
|
+
*parser.Parser.ALIAS_TOKENS,
|
|
765
|
+
TokenType.GRANT,
|
|
766
|
+
} - {TokenType.ASC, TokenType.DESC}
|
|
767
|
+
|
|
768
|
+
TABLE_ALIAS_TOKENS = {
|
|
769
|
+
*parser.Parser.TABLE_ALIAS_TOKENS,
|
|
770
|
+
TokenType.GRANT,
|
|
771
|
+
} - {TokenType.ASC, TokenType.DESC}
|
|
772
|
+
|
|
773
|
+
COMMENT_TABLE_ALIAS_TOKENS = {
|
|
774
|
+
*parser.Parser.COMMENT_TABLE_ALIAS_TOKENS,
|
|
775
|
+
TokenType.GRANT,
|
|
776
|
+
} - {TokenType.ASC, TokenType.DESC}
|
|
777
|
+
|
|
778
|
+
UPDATE_ALIAS_TOKENS = {
|
|
779
|
+
*parser.Parser.UPDATE_ALIAS_TOKENS,
|
|
780
|
+
TokenType.GRANT,
|
|
781
|
+
} - {TokenType.ASC, TokenType.DESC}
|
|
766
782
|
|
|
767
783
|
FUNCTIONS = {
|
|
768
784
|
**parser.Parser.FUNCTIONS,
|
sqlglot/dialects/snowflake.py
CHANGED
|
@@ -532,10 +532,13 @@ class Snowflake(Dialect):
|
|
|
532
532
|
exp.DataType.Type.INT: {
|
|
533
533
|
*Dialect.TYPE_TO_EXPRESSIONS[exp.DataType.Type.INT],
|
|
534
534
|
exp.Ascii,
|
|
535
|
+
exp.ByteLength,
|
|
535
536
|
exp.Length,
|
|
537
|
+
exp.RtrimmedLength,
|
|
536
538
|
exp.BitLength,
|
|
537
539
|
exp.Levenshtein,
|
|
538
540
|
exp.JarowinklerSimilarity,
|
|
541
|
+
exp.StrPosition,
|
|
539
542
|
},
|
|
540
543
|
exp.DataType.Type.VARCHAR: {
|
|
541
544
|
*Dialect.TYPE_TO_EXPRESSIONS[exp.DataType.Type.VARCHAR],
|
|
@@ -579,6 +582,10 @@ class Snowflake(Dialect):
|
|
|
579
582
|
exp.DataType.Type.ARRAY: {
|
|
580
583
|
exp.Split,
|
|
581
584
|
},
|
|
585
|
+
exp.DataType.Type.OBJECT: {
|
|
586
|
+
exp.ParseUrl,
|
|
587
|
+
exp.ParseIp,
|
|
588
|
+
},
|
|
582
589
|
}
|
|
583
590
|
|
|
584
591
|
ANNOTATORS = {
|
|
@@ -732,6 +739,9 @@ class Snowflake(Dialect):
|
|
|
732
739
|
"NULLIFZERO": _build_if_from_nullifzero,
|
|
733
740
|
"OBJECT_CONSTRUCT": _build_object_construct,
|
|
734
741
|
"OCTET_LENGTH": exp.ByteLength.from_arg_list,
|
|
742
|
+
"PARSE_URL": lambda args: exp.ParseUrl(
|
|
743
|
+
this=seq_get(args, 0), permissive=seq_get(args, 1)
|
|
744
|
+
),
|
|
735
745
|
"REGEXP_EXTRACT_ALL": _build_regexp_extract(exp.RegexpExtractAll),
|
|
736
746
|
"REGEXP_REPLACE": _build_regexp_replace,
|
|
737
747
|
"REGEXP_SUBSTR": _build_regexp_extract(exp.RegexpExtract),
|
sqlglot/expressions.py
CHANGED
|
@@ -6888,6 +6888,16 @@ class ParseJSON(Func):
|
|
|
6888
6888
|
arg_types = {"this": True, "expression": False, "safe": False}
|
|
6889
6889
|
|
|
6890
6890
|
|
|
6891
|
+
# Snowflake: https://docs.snowflake.com/en/sql-reference/functions/parse_url
|
|
6892
|
+
# Databricks: https://docs.databricks.com/aws/en/sql/language-manual/functions/parse_url
|
|
6893
|
+
class ParseUrl(Func):
|
|
6894
|
+
arg_types = {"this": True, "part_to_extract": False, "key": False, "permissive": False}
|
|
6895
|
+
|
|
6896
|
+
|
|
6897
|
+
class ParseIp(Func):
|
|
6898
|
+
arg_types = {"this": True, "type": True, "permissive": False}
|
|
6899
|
+
|
|
6900
|
+
|
|
6891
6901
|
class ParseTime(Func):
|
|
6892
6902
|
arg_types = {"this": True, "format": True}
|
|
6893
6903
|
|
|
@@ -6918,6 +6928,10 @@ class Length(Func):
|
|
|
6918
6928
|
_sql_names = ["LENGTH", "LEN", "CHAR_LENGTH", "CHARACTER_LENGTH"]
|
|
6919
6929
|
|
|
6920
6930
|
|
|
6931
|
+
class RtrimmedLength(Func):
|
|
6932
|
+
pass
|
|
6933
|
+
|
|
6934
|
+
|
|
6921
6935
|
class BitLength(Func):
|
|
6922
6936
|
pass
|
|
6923
6937
|
|
sqlglot/parser.py
CHANGED
|
@@ -809,6 +809,8 @@ class Parser(metaclass=_Parser):
|
|
|
809
809
|
exp.DataType: lambda self: self._parse_types(allow_identifiers=False, schema=True),
|
|
810
810
|
exp.Expression: lambda self: self._parse_expression(),
|
|
811
811
|
exp.From: lambda self: self._parse_from(joins=True),
|
|
812
|
+
exp.GrantPrincipal: lambda self: self._parse_grant_principal(),
|
|
813
|
+
exp.GrantPrivilege: lambda self: self._parse_grant_privilege(),
|
|
812
814
|
exp.Group: lambda self: self._parse_group(),
|
|
813
815
|
exp.Having: lambda self: self._parse_having(),
|
|
814
816
|
exp.Hint: lambda self: self._parse_hint_body(),
|
|
@@ -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=wVbD9GMknBXDREyMG-Yx-Nw3OZVxyzYGofDpSiCozV4,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=gR0XWI066giI1oStYhmswO7FY_pA0twxmc1P2XTo1tU,258468
|
|
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=4UXHIDwR9mdbN5C7PVMffheR-cj3ipVJqIIK8W-o5ac,337436
|
|
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
|
|
@@ -20,7 +20,7 @@ sqlglot/transforms.py,sha256=utNDsCBsA7hPUK3-aby3DDgiY_XVMAKQqeoLm1EyihI,41218
|
|
|
20
20
|
sqlglot/trie.py,sha256=v27uXMrHfqrXlJ6GmeTSMovsB_3o0ctnlKhdNt7W6fI,2245
|
|
21
21
|
sqlglot/dialects/__init__.py,sha256=g3HRtyb32r3LooiHKTzuUNB0_rBO_RauuOegp42gB48,3811
|
|
22
22
|
sqlglot/dialects/athena.py,sha256=ofArmayYLev4qZQ15GM8mevG04qqR5WGFb2ZcuYm6x4,10966
|
|
23
|
-
sqlglot/dialects/bigquery.py,sha256=
|
|
23
|
+
sqlglot/dialects/bigquery.py,sha256=m3Tk_rieNds4i-t0v-dELB5MvLfIvJY3ozuU6FItXJ8,72758
|
|
24
24
|
sqlglot/dialects/clickhouse.py,sha256=6kx1cm0YhtHbg5kvcY64Hau2KdeC7Y26SVlVHGLyPEA,58579
|
|
25
25
|
sqlglot/dialects/databricks.py,sha256=H4QTq7gg6tJylKc_YWsGp6049KydoI_wlQUHM7iCJtI,4753
|
|
26
26
|
sqlglot/dialects/dialect.py,sha256=KfBctpr7VdrCdHrP1Tk7CqAml53tRq9x-aDAkaN-9l0,73540
|
|
@@ -42,7 +42,7 @@ 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=D9GlZtIDLU_aqHWvGQUC8AS-U94WPBS_qEzErIJIoWY,78746
|
|
46
46
|
sqlglot/dialects/solr.py,sha256=pydnl4ml-3M1Fc4ALm6cMVO9h-5EtqZxPZH_91Nz1Ss,617
|
|
47
47
|
sqlglot/dialects/spark.py,sha256=PzyhkelDzbCMgJ3RVHD6yyzLIFp9NdZfwVas5IymowM,10147
|
|
48
48
|
sqlglot/dialects/spark2.py,sha256=qz36FT9k4iuiqboRpyG4VpKGkPR0P2fifmqgZ9gNUEU,14851
|
|
@@ -77,8 +77,8 @@ sqlglot/optimizer/qualify_tables.py,sha256=dA4ZazL7ShQh2JgBwpHuG-4c5lBw1TNzCnuN7
|
|
|
77
77
|
sqlglot/optimizer/scope.py,sha256=UOTrbwqcTc5iRQf0WStgYWXpE24w6riZy-tJYA18yTw,31229
|
|
78
78
|
sqlglot/optimizer/simplify.py,sha256=27IYsqbz1kyMlURSfRkm_ADSQJg-4805AOMFOjKKytU,51049
|
|
79
79
|
sqlglot/optimizer/unnest_subqueries.py,sha256=kzWUVDlxs8z9nmRx-8U-pHXPtVZhEIwkKqmKhr2QLvc,10908
|
|
80
|
-
sqlglot-27.
|
|
81
|
-
sqlglot-27.
|
|
82
|
-
sqlglot-27.
|
|
83
|
-
sqlglot-27.
|
|
84
|
-
sqlglot-27.
|
|
80
|
+
sqlglot-27.19.0.dist-info/licenses/LICENSE,sha256=p1Yk0B4oa0l8Rh-_dYyy75d8spjPd_vTloXfz4FWxys,1065
|
|
81
|
+
sqlglot-27.19.0.dist-info/METADATA,sha256=yaLkwFBKI3tGRmU2ayVsF3uEDoRgBLryVjdzeePUW4M,20703
|
|
82
|
+
sqlglot-27.19.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
83
|
+
sqlglot-27.19.0.dist-info/top_level.txt,sha256=5kRskCGA_gVADF9rSfSzPdLHXqvfMusDYeHePfNY2nQ,8
|
|
84
|
+
sqlglot-27.19.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|