sqlmesh 0.194.2.dev3__py3-none-any.whl → 0.194.2.dev5__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.
- sqlmesh/_version.py +2 -2
- sqlmesh/lsp/reference.py +134 -0
- {sqlmesh-0.194.2.dev3.dist-info → sqlmesh-0.194.2.dev5.dist-info}/METADATA +1 -1
- {sqlmesh-0.194.2.dev3.dist-info → sqlmesh-0.194.2.dev5.dist-info}/RECORD +8 -8
- {sqlmesh-0.194.2.dev3.dist-info → sqlmesh-0.194.2.dev5.dist-info}/WHEEL +0 -0
- {sqlmesh-0.194.2.dev3.dist-info → sqlmesh-0.194.2.dev5.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.194.2.dev3.dist-info → sqlmesh-0.194.2.dev5.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.194.2.dev3.dist-info → sqlmesh-0.194.2.dev5.dist-info}/top_level.txt +0 -0
sqlmesh/_version.py
CHANGED
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '0.194.2.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 194, 2, '
|
|
20
|
+
__version__ = version = '0.194.2.dev5'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 194, 2, 'dev5')
|
sqlmesh/lsp/reference.py
CHANGED
|
@@ -208,6 +208,17 @@ def get_model_definitions_for_a_path(
|
|
|
208
208
|
target_range=target_range,
|
|
209
209
|
)
|
|
210
210
|
)
|
|
211
|
+
|
|
212
|
+
column_references = _process_column_references(
|
|
213
|
+
scope=scope,
|
|
214
|
+
reference_name=table.name,
|
|
215
|
+
read_file=read_file,
|
|
216
|
+
referenced_model_uri=document_uri,
|
|
217
|
+
description="",
|
|
218
|
+
reference_type="cte",
|
|
219
|
+
cte_target_range=target_range,
|
|
220
|
+
)
|
|
221
|
+
references.extend(column_references)
|
|
211
222
|
continue
|
|
212
223
|
|
|
213
224
|
# For non-CTE tables, process as before (external model references)
|
|
@@ -276,6 +287,19 @@ def get_model_definitions_for_a_path(
|
|
|
276
287
|
target_range=yaml_target_range,
|
|
277
288
|
)
|
|
278
289
|
)
|
|
290
|
+
|
|
291
|
+
column_references = _process_column_references(
|
|
292
|
+
scope=scope,
|
|
293
|
+
reference_name=normalized_reference_name,
|
|
294
|
+
read_file=read_file,
|
|
295
|
+
referenced_model_uri=referenced_model_uri,
|
|
296
|
+
description=description,
|
|
297
|
+
yaml_target_range=yaml_target_range,
|
|
298
|
+
reference_type="external_model",
|
|
299
|
+
default_catalog=lint_context.context.default_catalog,
|
|
300
|
+
dialect=dialect,
|
|
301
|
+
)
|
|
302
|
+
references.extend(column_references)
|
|
279
303
|
else:
|
|
280
304
|
references.append(
|
|
281
305
|
LSPModelReference(
|
|
@@ -288,6 +312,18 @@ def get_model_definitions_for_a_path(
|
|
|
288
312
|
)
|
|
289
313
|
)
|
|
290
314
|
|
|
315
|
+
column_references = _process_column_references(
|
|
316
|
+
scope=scope,
|
|
317
|
+
reference_name=normalized_reference_name,
|
|
318
|
+
read_file=read_file,
|
|
319
|
+
referenced_model_uri=referenced_model_uri,
|
|
320
|
+
description=description,
|
|
321
|
+
reference_type="model",
|
|
322
|
+
default_catalog=lint_context.context.default_catalog,
|
|
323
|
+
dialect=dialect,
|
|
324
|
+
)
|
|
325
|
+
references.extend(column_references)
|
|
326
|
+
|
|
291
327
|
return references
|
|
292
328
|
|
|
293
329
|
|
|
@@ -735,6 +771,104 @@ def _position_within_range(position: Position, range: Range) -> bool:
|
|
|
735
771
|
)
|
|
736
772
|
|
|
737
773
|
|
|
774
|
+
def _get_column_table_range(column: exp.Column, read_file: t.List[str]) -> Range:
|
|
775
|
+
"""
|
|
776
|
+
Get the range for a column's table reference, handling both simple and qualified table names.
|
|
777
|
+
|
|
778
|
+
Args:
|
|
779
|
+
column: The column expression
|
|
780
|
+
read_file: The file content as list of lines
|
|
781
|
+
|
|
782
|
+
Returns:
|
|
783
|
+
The Range covering the table reference in the column
|
|
784
|
+
"""
|
|
785
|
+
|
|
786
|
+
table_parts = column.parts[:-1]
|
|
787
|
+
|
|
788
|
+
start_range = TokenPositionDetails.from_meta(table_parts[0].meta).to_range(read_file)
|
|
789
|
+
end_range = TokenPositionDetails.from_meta(table_parts[-1].meta).to_range(read_file)
|
|
790
|
+
|
|
791
|
+
return Range(
|
|
792
|
+
start=to_lsp_position(start_range.start),
|
|
793
|
+
end=to_lsp_position(end_range.end),
|
|
794
|
+
)
|
|
795
|
+
|
|
796
|
+
|
|
797
|
+
def _process_column_references(
|
|
798
|
+
scope: t.Any,
|
|
799
|
+
reference_name: str,
|
|
800
|
+
read_file: t.List[str],
|
|
801
|
+
referenced_model_uri: URI,
|
|
802
|
+
description: t.Optional[str] = None,
|
|
803
|
+
yaml_target_range: t.Optional[Range] = None,
|
|
804
|
+
reference_type: t.Literal["model", "external_model", "cte"] = "model",
|
|
805
|
+
default_catalog: t.Optional[str] = None,
|
|
806
|
+
dialect: t.Optional[str] = None,
|
|
807
|
+
cte_target_range: t.Optional[Range] = None,
|
|
808
|
+
) -> t.List[Reference]:
|
|
809
|
+
"""
|
|
810
|
+
Process column references for a given table and create appropriate reference objects.
|
|
811
|
+
|
|
812
|
+
Args:
|
|
813
|
+
scope: The SQL scope to search for columns
|
|
814
|
+
reference_name: The full reference name (may include database/catalog)
|
|
815
|
+
read_file: The file content as list of lines
|
|
816
|
+
referenced_model_uri: URI of the referenced model
|
|
817
|
+
description: Markdown description for the reference
|
|
818
|
+
yaml_target_range: Target range for external models (YAML files)
|
|
819
|
+
reference_type: Type of reference - "model", "external_model", or "cte"
|
|
820
|
+
default_catalog: Default catalog for normalization
|
|
821
|
+
dialect: SQL dialect for normalization
|
|
822
|
+
cte_target_range: Target range for CTE references
|
|
823
|
+
|
|
824
|
+
Returns:
|
|
825
|
+
List of table references for column usages
|
|
826
|
+
"""
|
|
827
|
+
|
|
828
|
+
references: t.List[Reference] = []
|
|
829
|
+
for column in scope.find_all(exp.Column):
|
|
830
|
+
if column.table:
|
|
831
|
+
if reference_type == "cte":
|
|
832
|
+
if column.table == reference_name:
|
|
833
|
+
table_range = _get_column_table_range(column, read_file)
|
|
834
|
+
references.append(
|
|
835
|
+
LSPCteReference(
|
|
836
|
+
uri=referenced_model_uri.value,
|
|
837
|
+
range=table_range,
|
|
838
|
+
target_range=cte_target_range,
|
|
839
|
+
)
|
|
840
|
+
)
|
|
841
|
+
else:
|
|
842
|
+
table_parts = [part.sql(dialect) for part in column.parts[:-1]]
|
|
843
|
+
table_ref = ".".join(table_parts)
|
|
844
|
+
normalized_reference_name = normalize_model_name(
|
|
845
|
+
table_ref,
|
|
846
|
+
default_catalog=default_catalog,
|
|
847
|
+
dialect=dialect,
|
|
848
|
+
)
|
|
849
|
+
if normalized_reference_name == reference_name:
|
|
850
|
+
table_range = _get_column_table_range(column, read_file)
|
|
851
|
+
if reference_type == "external_model":
|
|
852
|
+
references.append(
|
|
853
|
+
LSPExternalModelReference(
|
|
854
|
+
uri=referenced_model_uri.value,
|
|
855
|
+
range=table_range,
|
|
856
|
+
markdown_description=description,
|
|
857
|
+
target_range=yaml_target_range,
|
|
858
|
+
)
|
|
859
|
+
)
|
|
860
|
+
else:
|
|
861
|
+
references.append(
|
|
862
|
+
LSPModelReference(
|
|
863
|
+
uri=referenced_model_uri.value,
|
|
864
|
+
range=table_range,
|
|
865
|
+
markdown_description=description,
|
|
866
|
+
)
|
|
867
|
+
)
|
|
868
|
+
|
|
869
|
+
return references
|
|
870
|
+
|
|
871
|
+
|
|
738
872
|
def _get_yaml_model_range(path: Path, model_name: str) -> t.Optional[Range]:
|
|
739
873
|
"""
|
|
740
874
|
Find the range of a specific model block in a YAML file.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
sqlmesh/__init__.py,sha256=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
|
|
2
|
-
sqlmesh/_version.py,sha256=
|
|
2
|
+
sqlmesh/_version.py,sha256=vWZYierTsnmgc70f_uUxpkz-6KWsuGJUZGDQTJ5S82Q,528
|
|
3
3
|
sqlmesh/magics.py,sha256=ysPC5ohXpgQ8IHQPwtQtwGoVypmVq_YBlm1noUueDIw,40448
|
|
4
4
|
sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -173,7 +173,7 @@ sqlmesh/lsp/description.py,sha256=PjguwyVw5YeYSgT0JMhkf5U1Jry-sDPLvQ2caIR9JPQ,85
|
|
|
173
173
|
sqlmesh/lsp/helpers.py,sha256=EFc1u3-b7kSv5-tNwmKUDxId72RCLDBnN2lLTgRSzzQ,1020
|
|
174
174
|
sqlmesh/lsp/hints.py,sha256=j-blccBUil94yRoDjWfkSM0HqMmsKD6hP2TaWdWWVk4,3734
|
|
175
175
|
sqlmesh/lsp/main.py,sha256=EanNAS5ArBRc2oYsS3jhL46pfzXLn78xwSW-9R4RQ3o,33731
|
|
176
|
-
sqlmesh/lsp/reference.py,sha256=
|
|
176
|
+
sqlmesh/lsp/reference.py,sha256=NyfpK12TouDuy5-G7KOhvifkJItMfrakKwnMoU6SiVk,32088
|
|
177
177
|
sqlmesh/lsp/uri.py,sha256=mvSLbZGmMTHPpliThOtVWiFcHnfJzp1w39q9l-xD2SI,802
|
|
178
178
|
sqlmesh/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
179
179
|
sqlmesh/migrations/v0001_init.py,sha256=h8FwMYJj9_O8yGpk12guaSaGwX5A3we2GiKeHrXi15o,2048
|
|
@@ -282,7 +282,7 @@ sqlmesh/utils/pydantic.py,sha256=I898jAFqa3qU6lG2uPpRebVFncOUo8ZrLWM_R3K3DHU,116
|
|
|
282
282
|
sqlmesh/utils/rich.py,sha256=BpB47G0-JcU41LkGkeGKroexj4NOV5fox4-GOIXPgIc,3545
|
|
283
283
|
sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
|
|
284
284
|
sqlmesh/utils/yaml.py,sha256=np-WVcwmwsKghCgAj1OBBMsK1SXSRn4wR-H37cGiFr8,2282
|
|
285
|
-
sqlmesh-0.194.2.
|
|
285
|
+
sqlmesh-0.194.2.dev5.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
286
286
|
web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
287
287
|
web/client/dist/index.html,sha256=w71qWSLmp-xwmVJO8m41k8Rtni3iZlF0hmhiTr-NeCI,5472
|
|
288
288
|
web/client/dist/assets/Audits-sYYNn2gO.js,sha256=zSAKkif2kU0JuPH05xjNYITNPmsbDlvLKUc2-orr8AY,1041
|
|
@@ -400,8 +400,8 @@ web/server/api/endpoints/models.py,sha256=ud-lRwriyI_OYg9tZchrBgeiXELiRTLNEodraf
|
|
|
400
400
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
401
401
|
web/server/api/endpoints/plan.py,sha256=OYuQ_4dgbhG9ibTcX1a8mvYgH3ANxw9Fhbb4wg6QWqc,9222
|
|
402
402
|
web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
|
|
403
|
-
sqlmesh-0.194.2.
|
|
404
|
-
sqlmesh-0.194.2.
|
|
405
|
-
sqlmesh-0.194.2.
|
|
406
|
-
sqlmesh-0.194.2.
|
|
407
|
-
sqlmesh-0.194.2.
|
|
403
|
+
sqlmesh-0.194.2.dev5.dist-info/METADATA,sha256=hm8y9oQMhQIgbYfCoRdNtUtIJlHgIeUVNIDLqkuAj3Q,26690
|
|
404
|
+
sqlmesh-0.194.2.dev5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
405
|
+
sqlmesh-0.194.2.dev5.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
|
|
406
|
+
sqlmesh-0.194.2.dev5.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
|
|
407
|
+
sqlmesh-0.194.2.dev5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|