databricks-labs-lakebridge 0.10.5__py3-none-any.whl → 0.10.7__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.
- databricks/labs/lakebridge/__about__.py +1 -1
- databricks/labs/lakebridge/analyzer/__init__.py +0 -0
- databricks/labs/lakebridge/analyzer/lakebridge_analyzer.py +95 -0
- databricks/labs/lakebridge/base_install.py +24 -3
- databricks/labs/lakebridge/cli.py +57 -72
- databricks/labs/lakebridge/config.py +1 -1
- databricks/labs/lakebridge/contexts/application.py +11 -4
- databricks/labs/lakebridge/deployment/dashboard.py +2 -1
- databricks/labs/lakebridge/deployment/installation.py +11 -11
- databricks/labs/lakebridge/deployment/job.py +2 -2
- databricks/labs/lakebridge/helpers/file_utils.py +36 -0
- databricks/labs/lakebridge/install.py +228 -278
- databricks/labs/lakebridge/reconcile/compare.py +70 -33
- databricks/labs/lakebridge/reconcile/connectors/data_source.py +19 -0
- databricks/labs/lakebridge/reconcile/connectors/databricks.py +11 -1
- databricks/labs/lakebridge/reconcile/connectors/dialect_utils.py +126 -0
- databricks/labs/lakebridge/reconcile/connectors/models.py +7 -0
- databricks/labs/lakebridge/reconcile/connectors/oracle.py +11 -1
- databricks/labs/lakebridge/reconcile/connectors/snowflake.py +14 -2
- databricks/labs/lakebridge/reconcile/connectors/tsql.py +27 -2
- databricks/labs/lakebridge/reconcile/constants.py +4 -3
- databricks/labs/lakebridge/reconcile/execute.py +9 -810
- databricks/labs/lakebridge/reconcile/normalize_recon_config_service.py +133 -0
- databricks/labs/lakebridge/reconcile/query_builder/base.py +3 -7
- databricks/labs/lakebridge/reconcile/recon_config.py +3 -0
- databricks/labs/lakebridge/reconcile/recon_output_config.py +2 -1
- databricks/labs/lakebridge/reconcile/reconciliation.py +508 -0
- databricks/labs/lakebridge/reconcile/schema_compare.py +26 -19
- databricks/labs/lakebridge/reconcile/trigger_recon_aggregate_service.py +98 -0
- databricks/labs/lakebridge/reconcile/trigger_recon_service.py +253 -0
- databricks/labs/lakebridge/reconcile/utils.py +38 -0
- databricks/labs/lakebridge/transpiler/lsp/lsp_engine.py +48 -63
- databricks/labs/lakebridge/transpiler/repository.py +123 -0
- databricks/labs/lakebridge/transpiler/sqlglot/dialect_utils.py +2 -0
- databricks/labs/lakebridge/transpiler/transpile_engine.py +0 -18
- {databricks_labs_lakebridge-0.10.5.dist-info → databricks_labs_lakebridge-0.10.7.dist-info}/METADATA +1 -1
- {databricks_labs_lakebridge-0.10.5.dist-info → databricks_labs_lakebridge-0.10.7.dist-info}/RECORD +41 -31
- {databricks_labs_lakebridge-0.10.5.dist-info → databricks_labs_lakebridge-0.10.7.dist-info}/WHEEL +0 -0
- {databricks_labs_lakebridge-0.10.5.dist-info → databricks_labs_lakebridge-0.10.7.dist-info}/entry_points.txt +0 -0
- {databricks_labs_lakebridge-0.10.5.dist-info → databricks_labs_lakebridge-0.10.7.dist-info}/licenses/LICENSE +0 -0
- {databricks_labs_lakebridge-0.10.5.dist-info → databricks_labs_lakebridge-0.10.7.dist-info}/licenses/NOTICE +0 -0
@@ -0,0 +1,123 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from collections.abc import Iterable
|
4
|
+
from json import loads
|
5
|
+
import logging
|
6
|
+
import os
|
7
|
+
from typing import Any
|
8
|
+
from pathlib import Path
|
9
|
+
|
10
|
+
from databricks.labs.lakebridge.config import LSPConfigOptionV1
|
11
|
+
|
12
|
+
from databricks.labs.lakebridge.transpiler.lsp.lsp_engine import LSPConfig
|
13
|
+
|
14
|
+
logger = logging.getLogger(__name__)
|
15
|
+
|
16
|
+
|
17
|
+
class TranspilerRepository:
|
18
|
+
"""
|
19
|
+
Repository for managing the installed transpilers in the user's home directory.
|
20
|
+
|
21
|
+
The default repository for a user is always located under ~/.databricks/labs, and can be obtained
|
22
|
+
via the `TranspilerRepository.user_home()` method.
|
23
|
+
"""
|
24
|
+
|
25
|
+
@staticmethod
|
26
|
+
def default_labs_path() -> Path:
|
27
|
+
"""Return the default path where labs applications are installed."""
|
28
|
+
return Path.home() / ".databricks" / "labs"
|
29
|
+
|
30
|
+
_default_repository: TranspilerRepository | None = None
|
31
|
+
|
32
|
+
@classmethod
|
33
|
+
def user_home(cls) -> TranspilerRepository:
|
34
|
+
"""The default repository for transpilers in the current user's home directory."""
|
35
|
+
repository = cls._default_repository
|
36
|
+
if repository is None:
|
37
|
+
cls._default_repository = repository = cls(cls.default_labs_path())
|
38
|
+
return repository
|
39
|
+
|
40
|
+
def __init__(self, labs_path: Path) -> None:
|
41
|
+
"""Initialize the repository, based in the given location.
|
42
|
+
|
43
|
+
This should only be used directly by tests; for the default repository, use `TranspilerRepository.user_home()`.
|
44
|
+
|
45
|
+
Args:
|
46
|
+
labs_path: The path where the labs applications are installed.
|
47
|
+
"""
|
48
|
+
if self._default_repository == self and labs_path == self.default_labs_path():
|
49
|
+
raise ValueError("Use TranspilerRepository.user_home() to get the default repository.")
|
50
|
+
self._labs_path = labs_path
|
51
|
+
|
52
|
+
def __repr__(self) -> str:
|
53
|
+
return f"TranspilerRepository(labs_path={self._labs_path!r})"
|
54
|
+
|
55
|
+
def transpilers_path(self) -> Path:
|
56
|
+
return self._labs_path / "remorph-transpilers"
|
57
|
+
|
58
|
+
def get_installed_version(self, product_name: str) -> str | None:
|
59
|
+
# Warning: product_name here (eg. 'morpheus') and transpiler_name elsewhere (eg. Morpheus) are not the same!
|
60
|
+
product_path = self.transpilers_path() / product_name
|
61
|
+
current_version_path = product_path / "state" / "version.json"
|
62
|
+
if not current_version_path.exists():
|
63
|
+
return None
|
64
|
+
text = current_version_path.read_text("utf-8")
|
65
|
+
data: dict[str, Any] = loads(text)
|
66
|
+
version: str | None = data.get("version", None)
|
67
|
+
if not version or not version.startswith("v"):
|
68
|
+
return None
|
69
|
+
return version[1:]
|
70
|
+
|
71
|
+
def all_transpiler_configs(self) -> dict[str, LSPConfig]:
|
72
|
+
all_configs = self._all_transpiler_configs()
|
73
|
+
return {config.name: config for config in all_configs}
|
74
|
+
|
75
|
+
def all_transpiler_names(self) -> set[str]:
|
76
|
+
all_configs = self.all_transpiler_configs()
|
77
|
+
return set(all_configs.keys())
|
78
|
+
|
79
|
+
def all_dialects(self) -> set[str]:
|
80
|
+
all_dialects: set[str] = set()
|
81
|
+
for config in self._all_transpiler_configs():
|
82
|
+
all_dialects = all_dialects.union(config.remorph.dialects)
|
83
|
+
return all_dialects
|
84
|
+
|
85
|
+
def transpilers_with_dialect(self, dialect: str) -> set[str]:
|
86
|
+
configs = filter(lambda cfg: dialect in cfg.remorph.dialects, self.all_transpiler_configs().values())
|
87
|
+
return set(config.name for config in configs)
|
88
|
+
|
89
|
+
def transpiler_config_path(self, transpiler_name: str) -> Path:
|
90
|
+
# Note: Can't just go straight to the directory: the transpiler names don't exactly match the directory names.
|
91
|
+
try:
|
92
|
+
config = next(c for c in self._all_transpiler_configs() if c.name == transpiler_name)
|
93
|
+
except StopIteration as e:
|
94
|
+
raise ValueError(f"No such transpiler: {transpiler_name}") from e
|
95
|
+
return config.path
|
96
|
+
|
97
|
+
def transpiler_config_options(self, transpiler_name: str, source_dialect: str) -> list[LSPConfigOptionV1]:
|
98
|
+
config = self.all_transpiler_configs().get(transpiler_name, None)
|
99
|
+
if not config:
|
100
|
+
return [] # gracefully returns an empty list, since this can only happen during testing
|
101
|
+
return config.options_for_dialect(source_dialect)
|
102
|
+
|
103
|
+
def _all_transpiler_configs(self) -> Iterable[LSPConfig]:
|
104
|
+
transpilers_path = self.transpilers_path()
|
105
|
+
if transpilers_path.exists():
|
106
|
+
all_files = os.listdir(transpilers_path)
|
107
|
+
for file in all_files:
|
108
|
+
config = self._transpiler_config(transpilers_path / file)
|
109
|
+
if config:
|
110
|
+
yield config
|
111
|
+
|
112
|
+
@classmethod
|
113
|
+
def _transpiler_config(cls, path: Path) -> LSPConfig | None:
|
114
|
+
if not path.is_dir() or not (path / "lib").is_dir():
|
115
|
+
return None
|
116
|
+
config_path = path / "lib" / "config.yml"
|
117
|
+
if not config_path.is_file():
|
118
|
+
return None
|
119
|
+
try:
|
120
|
+
return LSPConfig.load(config_path)
|
121
|
+
except ValueError as e:
|
122
|
+
logger.error(f"Could not load config: {path!s}", exc_info=e)
|
123
|
+
return None
|
@@ -6,24 +6,6 @@ from databricks.labs.lakebridge.config import TranspileResult, TranspileConfig
|
|
6
6
|
|
7
7
|
|
8
8
|
class TranspileEngine(abc.ABC):
|
9
|
-
|
10
|
-
@classmethod
|
11
|
-
def load_engine(cls, transpiler_config_path: Path) -> TranspileEngine:
|
12
|
-
# TODO remove this once sqlglot transpiler is pluggable
|
13
|
-
if str(transpiler_config_path) == "sqlglot":
|
14
|
-
# pylint: disable=import-outside-toplevel, cyclic-import
|
15
|
-
from databricks.labs.lakebridge.transpiler.sqlglot.sqlglot_engine import SqlglotEngine
|
16
|
-
|
17
|
-
return SqlglotEngine()
|
18
|
-
if not transpiler_config_path.exists():
|
19
|
-
raise ValueError(
|
20
|
-
f"Error: Invalid value for '--transpiler-config-path': '{str(transpiler_config_path)}', file does not exist."
|
21
|
-
)
|
22
|
-
# pylint: disable=import-outside-toplevel, cyclic-import
|
23
|
-
from databricks.labs.lakebridge.transpiler.lsp.lsp_engine import LSPEngine
|
24
|
-
|
25
|
-
return LSPEngine.from_config_path(transpiler_config_path)
|
26
|
-
|
27
9
|
@abc.abstractmethod
|
28
10
|
async def initialize(self, config: TranspileConfig) -> None: ...
|
29
11
|
|
{databricks_labs_lakebridge-0.10.5.dist-info → databricks_labs_lakebridge-0.10.7.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: databricks-labs-lakebridge
|
3
|
-
Version: 0.10.
|
3
|
+
Version: 0.10.7
|
4
4
|
Summary: Fast and predictable migrations to Databricks Lakehouse Platform. This tool is designed to help you migrate your data and workloads to the Databricks Lakehouse Platform in a fast, predictable, and reliable way. It provides a set of tools and utilities to help you reconcile your data and workloads, assess your current state, and plan your migration.
|
5
5
|
Project-URL: Documentation, https://databrickslabs.github.io/lakebridge
|
6
6
|
Project-URL: Issues, https://github.com/databrickslabs/lakebridge/issues
|
{databricks_labs_lakebridge-0.10.5.dist-info → databricks_labs_lakebridge-0.10.7.dist-info}/RECORD
RENAMED
@@ -8,15 +8,17 @@ docs/lakebridge/src/theme/Footer/index.tsx,sha256=Jj8zY5WDiTLXwF_mAgld8Dh1A3MY1H
|
|
8
8
|
docs/lakebridge/src/theme/Layout/index.tsx,sha256=IkdLr13jKmLxT0jWQqrwqrjVXc8Rwd_kWNpTd1t2sc0,592
|
9
9
|
databricks/__init__.py,sha256=YqH8Hy8lHJxd0hLMZF6kWirUDdPiX90LRDX6S6yTMn0,261
|
10
10
|
databricks/labs/__init__.py,sha256=YqH8Hy8lHJxd0hLMZF6kWirUDdPiX90LRDX6S6yTMn0,261
|
11
|
-
databricks/labs/lakebridge/__about__.py,sha256=
|
11
|
+
databricks/labs/lakebridge/__about__.py,sha256=7CdIUMG83fSVMGg8l6UUdCANS_DNyAMpGnOarLb7K3w,49
|
12
12
|
databricks/labs/lakebridge/__init__.py,sha256=nUNECqNvyfpT0aeWwlqG0ADT8U8ScCLb8WWpLydppcA,464
|
13
|
-
databricks/labs/lakebridge/base_install.py,sha256=
|
14
|
-
databricks/labs/lakebridge/cli.py,sha256=
|
15
|
-
databricks/labs/lakebridge/config.py,sha256=
|
16
|
-
databricks/labs/lakebridge/install.py,sha256=
|
13
|
+
databricks/labs/lakebridge/base_install.py,sha256=dKz8U961cwTAHwMInczcorPL0o1AU9re0KRig2Ibeg8,1267
|
14
|
+
databricks/labs/lakebridge/cli.py,sha256=WzajjyWjg3FkPxLifP3zkPbHx0u7jDmjqtx3_q6kqmc,31138
|
15
|
+
databricks/labs/lakebridge/config.py,sha256=iu5SHkRO-aIFeZdi5P5UXEgJsjyWY-GKFGO3kR5i4-s,5842
|
16
|
+
databricks/labs/lakebridge/install.py,sha256=SFW6q52U6GCdbthCxQIzFMcpEtZo74qg0IdZd8LbhRs,37554
|
17
17
|
databricks/labs/lakebridge/jvmproxy.py,sha256=F9pXpemzdaJXwpshHxVM9PYU_eNn4zTCUFQ5vc9WIhA,1573
|
18
18
|
databricks/labs/lakebridge/lineage.py,sha256=Q2oky4RkODRHWMwIQIwbYXSdZTmRkMWwEh6RssBiQxY,1843
|
19
19
|
databricks/labs/lakebridge/uninstall.py,sha256=hf36YgeW9XO2cRvvn6AXUZdihQ1ZMHnR38OVEF5sfRw,759
|
20
|
+
databricks/labs/lakebridge/analyzer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
+
databricks/labs/lakebridge/analyzer/lakebridge_analyzer.py,sha256=HgAOPe3vAkT__t0WS_XbDtA4hPoEqeMzjw7pT_fBQVk,4190
|
20
22
|
databricks/labs/lakebridge/assessments/configure_assessment.py,sha256=r0VDjh4fAqZAHcLSN1qmyAQaTIwWRoXyitU7JCKsT3w,8412
|
21
23
|
databricks/labs/lakebridge/assessments/pipeline.py,sha256=NlLyqy4ZkYdMX1ng4_5IWkNa5e06w8hzfwKQW3teWLQ,7728
|
22
24
|
databricks/labs/lakebridge/assessments/profiler_config.py,sha256=-ZwOdN-kpX7jmXwPWG_QrTuKipreQa-8Jz7KrlR98Ws,682
|
@@ -25,7 +27,7 @@ databricks/labs/lakebridge/connections/credential_manager.py,sha256=N8wKec2UO5P1
|
|
25
27
|
databricks/labs/lakebridge/connections/database_manager.py,sha256=RLu9aUweko_sg11lVBU_PMRjaYBwv9JdDJAV77EuWZU,3073
|
26
28
|
databricks/labs/lakebridge/connections/env_getter.py,sha256=HKczv9Qgyd7Bm3OiKFuE0wqwXNZ-NqkCiVA_k0H_y6s,322
|
27
29
|
databricks/labs/lakebridge/contexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
|
-
databricks/labs/lakebridge/contexts/application.py,sha256=
|
30
|
+
databricks/labs/lakebridge/contexts/application.py,sha256=OVtWbd7277N8t-RKigu19LjXHvoltP65f_zFsKh4yvM,5195
|
29
31
|
databricks/labs/lakebridge/coverage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
32
|
databricks/labs/lakebridge/coverage/commons.py,sha256=WskVVa5l7aLVfSJgceCiDnfDsvJXwnb9eg27lMEj-HY,7515
|
31
33
|
databricks/labs/lakebridge/coverage/lakebridge_snow_transpilation_coverage.py,sha256=QL92ei_5QIsuSSDmjpQ2qW5CN_9l08HpufedDjc1D-w,1085
|
@@ -34,9 +36,9 @@ databricks/labs/lakebridge/coverage/sqlglot_snow_transpilation_coverage.py,sha25
|
|
34
36
|
databricks/labs/lakebridge/coverage/sqlglot_tsql_transpilation_coverage.py,sha256=9SypNpibaS9VGiTYVwCcMMmVWkBGj094cTBfbhsqZxQ,183
|
35
37
|
databricks/labs/lakebridge/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
38
|
databricks/labs/lakebridge/deployment/configurator.py,sha256=uOowc6cJfpZl4LGAs0eSFBBhrhC_t6Zs8Uo17htxXzY,8859
|
37
|
-
databricks/labs/lakebridge/deployment/dashboard.py,sha256=
|
38
|
-
databricks/labs/lakebridge/deployment/installation.py,sha256=
|
39
|
-
databricks/labs/lakebridge/deployment/job.py,sha256=
|
39
|
+
databricks/labs/lakebridge/deployment/dashboard.py,sha256=6q41Jplt6gh3vtjXCKB7g-RjA9wm0ugeqQVWWN7WEWw,6119
|
40
|
+
databricks/labs/lakebridge/deployment/installation.py,sha256=vQ6OjIjFh4ldSjChz93fhrAefQX3_VqyhrRemgBmMM4,5130
|
41
|
+
databricks/labs/lakebridge/deployment/job.py,sha256=96bTI7tF_IvPtkm0jBL30NbF9i1UObKVWM4MkNXRGLA,6067
|
40
42
|
databricks/labs/lakebridge/deployment/recon.py,sha256=gRwuYE8GEg69rnYHv5IPOOwqdhZ2UPfwm0fOSFTL7pE,6258
|
41
43
|
databricks/labs/lakebridge/deployment/table.py,sha256=15pKlGRtGDiErq2lY3V-vMbbiKHSF4U-U3S6WvHeOA0,976
|
42
44
|
databricks/labs/lakebridge/deployment/upgrade_common.py,sha256=0WoMk_CUps5WfS_bm_U7zKGN6GMPcRWqdu4mgrPU0vs,4445
|
@@ -47,7 +49,7 @@ databricks/labs/lakebridge/errors/exceptions.py,sha256=PIj8wRJpxrBXOLMMt9HQhBfhZ
|
|
47
49
|
databricks/labs/lakebridge/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
50
|
databricks/labs/lakebridge/helpers/db_sql.py,sha256=chFHpn6XIuC0GrJ3a30_Y7tcXd4KZ5qO9zCAI4d7TR0,806
|
49
51
|
databricks/labs/lakebridge/helpers/execution_time.py,sha256=8oLEYh0AKz1fuiQMyDTWDymhxh6xUKlcFpINWzKnOy4,533
|
50
|
-
databricks/labs/lakebridge/helpers/file_utils.py,sha256=
|
52
|
+
databricks/labs/lakebridge/helpers/file_utils.py,sha256=ahF6mf5His6oSwvFY7-VU8YJfncWK44QKi9cJUvUSOY,3007
|
51
53
|
databricks/labs/lakebridge/helpers/metastore.py,sha256=1SKsIfNtiu3jUFjaXZ5B1fBZigVYqS1Q2OWhdn9qa8U,6425
|
52
54
|
databricks/labs/lakebridge/helpers/recon_config_utils.py,sha256=1Nq_pIonE2tz08kdVpSDS-NVKGZ1p_kGRZBUQFFWZAs,7404
|
53
55
|
databricks/labs/lakebridge/helpers/string_utils.py,sha256=TKW0BHmOZ2G8EebCohQRJLYglqeJajHgQ2BLehf9qsE,1169
|
@@ -58,28 +60,35 @@ databricks/labs/lakebridge/intermediate/dag.py,sha256=47bgyaYaBK_ELwLE5VGgFUraSx
|
|
58
60
|
databricks/labs/lakebridge/intermediate/engine_adapter.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
59
61
|
databricks/labs/lakebridge/intermediate/root_tables.py,sha256=G9PFU22qJ0BgV1FGZPK5bWNdEa8Xpo_gyEvMmATHkTw,1524
|
60
62
|
databricks/labs/lakebridge/reconcile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
61
|
-
databricks/labs/lakebridge/reconcile/compare.py,sha256=
|
62
|
-
databricks/labs/lakebridge/reconcile/constants.py,sha256=
|
63
|
+
databricks/labs/lakebridge/reconcile/compare.py,sha256=OuAsmrJyskMwCQKtJoSynUawKE6ZhhtvWkFok0FpVfo,17386
|
64
|
+
databricks/labs/lakebridge/reconcile/constants.py,sha256=foGko9c-H1mDYfvgxMSnk3NV45lHqXUsdbz0_L4vjSI,838
|
63
65
|
databricks/labs/lakebridge/reconcile/exception.py,sha256=kA-1KVAgZfWzxhcUwYha_8OapmFajJG0iY5TxPUPJyQ,1463
|
64
|
-
databricks/labs/lakebridge/reconcile/execute.py,sha256=
|
66
|
+
databricks/labs/lakebridge/reconcile/execute.py,sha256=NDYBDTM_2spPiEjRX6fLdy0m5WY7zG6732zjsd0hAdc,4415
|
67
|
+
databricks/labs/lakebridge/reconcile/normalize_recon_config_service.py,sha256=cCAsr1CmhhLPiX7VjqeZY89PrgqJfK7UyJeqVoYx9lI,5404
|
65
68
|
databricks/labs/lakebridge/reconcile/recon_capture.py,sha256=mlrKSzeTQnq3_ncbTunE1OyIFA2bLKlwiuDMicQRf5c,27317
|
66
|
-
databricks/labs/lakebridge/reconcile/recon_config.py,sha256=
|
67
|
-
databricks/labs/lakebridge/reconcile/recon_output_config.py,sha256=
|
69
|
+
databricks/labs/lakebridge/reconcile/recon_config.py,sha256=Iw8n4_QDgs2wixkbQlYLnlxw01CNqGG8Cs-KmBIiw7g,12276
|
70
|
+
databricks/labs/lakebridge/reconcile/recon_output_config.py,sha256=a_nft2xAAlEsVqL3F7TtLcL5KbcV0qT4QBUkLvrbJQg,1879
|
71
|
+
databricks/labs/lakebridge/reconcile/reconciliation.py,sha256=LFOnXSrKT1kenJOy5JN7O56_emxB6MUtO87pX3kVljc,19883
|
68
72
|
databricks/labs/lakebridge/reconcile/runner.py,sha256=g9RhTJ5y6lJynDGqzKJXAG3lECmc1ZY2TfbeCuoItvQ,4739
|
69
73
|
databricks/labs/lakebridge/reconcile/sampler.py,sha256=ND_KMiUNu7bMnvFwyr-FHdaGv1w_aNCtu7lcUVRGKrc,10453
|
70
|
-
databricks/labs/lakebridge/reconcile/schema_compare.py,sha256=
|
74
|
+
databricks/labs/lakebridge/reconcile/schema_compare.py,sha256=19QGC9kpgJzZ1vMXm6c-37pU_CpLf0isBrRE3if9nNM,5759
|
75
|
+
databricks/labs/lakebridge/reconcile/trigger_recon_aggregate_service.py,sha256=S4dsOxPIY5se1b8XIbqRlj-WDfUaq3wa9DDTzT26ihM,4178
|
76
|
+
databricks/labs/lakebridge/reconcile/trigger_recon_service.py,sha256=bVtrkJ7hTn6IXyHpNcCaHoiy-a4sg8Vmfa_ZhPMgUBE,9937
|
77
|
+
databricks/labs/lakebridge/reconcile/utils.py,sha256=5TFwSz0ZSL9FlN2n6_JcY8t2nb0wdDW0fzkVdsit8tU,1459
|
71
78
|
databricks/labs/lakebridge/reconcile/connectors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
72
|
-
databricks/labs/lakebridge/reconcile/connectors/data_source.py,sha256
|
73
|
-
databricks/labs/lakebridge/reconcile/connectors/databricks.py,sha256=
|
79
|
+
databricks/labs/lakebridge/reconcile/connectors/data_source.py,sha256=-dxJlaj-Ede0Ry7blyBCCBKg0i4ddO6Z9sm_5BD5fQk,3380
|
80
|
+
databricks/labs/lakebridge/reconcile/connectors/databricks.py,sha256=iGj9-bfvZiMM6a8uUQlDV-NrRAQQeNWzDjdCkaEvaWk,3988
|
81
|
+
databricks/labs/lakebridge/reconcile/connectors/dialect_utils.py,sha256=BGAiZUXk4y8GHFSm5qIt8Pt17NKWbAU9kYu2ta9pPT8,5539
|
74
82
|
databricks/labs/lakebridge/reconcile/connectors/jdbc_reader.py,sha256=SsY1rkeLo4Ie_2ZgxTxXH7s4cn1O2tHP_E93bNRCDRw,1516
|
75
|
-
databricks/labs/lakebridge/reconcile/connectors/
|
83
|
+
databricks/labs/lakebridge/reconcile/connectors/models.py,sha256=qfVgbw-SObpnkgqaiqeqPgjkPrkLOx2Ka7F9aRHu0QM,124
|
84
|
+
databricks/labs/lakebridge/reconcile/connectors/oracle.py,sha256=csb5Z32G-NjLxI_ir7CReRfMhST_-feoA0jZBUxm3jE,5283
|
76
85
|
databricks/labs/lakebridge/reconcile/connectors/secrets.py,sha256=vue72BaYVaaeUfTOaqIEwP-I3TApgbPiuq69Z6I2u3k,1125
|
77
|
-
databricks/labs/lakebridge/reconcile/connectors/snowflake.py,sha256=
|
86
|
+
databricks/labs/lakebridge/reconcile/connectors/snowflake.py,sha256=SVRHIuy32aMOVm2-_B0aPVHFF-OqHgtaHgVtUMipqNE,8655
|
78
87
|
databricks/labs/lakebridge/reconcile/connectors/source_adapter.py,sha256=I6LBE0C8e80lMm_lVBVIrW9g9ogIgZ53J_EFRNkcSWY,1445
|
79
|
-
databricks/labs/lakebridge/reconcile/connectors/tsql.py,sha256=
|
88
|
+
databricks/labs/lakebridge/reconcile/connectors/tsql.py,sha256=0vZCw1E3rKMzBlLGkdpqr0Y_gK86aJFydQ5yfC7dEzc,6827
|
80
89
|
databricks/labs/lakebridge/reconcile/query_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
81
90
|
databricks/labs/lakebridge/reconcile/query_builder/aggregate_query.py,sha256=zCPmLBLWeKwn0E2QMs0ua2CIJ6cnxmn77mNt4lvauTw,13783
|
82
|
-
databricks/labs/lakebridge/reconcile/query_builder/base.py,sha256=
|
91
|
+
databricks/labs/lakebridge/reconcile/query_builder/base.py,sha256=iloZdEfhmNowMDMnsaz8bnMyN4RXDW6tbCvCGSIzNQo,5394
|
83
92
|
databricks/labs/lakebridge/reconcile/query_builder/count_query.py,sha256=DsfDbyx2T3_ZUDrpWnelZQjOYmMlMsyuW-FXmt6w0-0,982
|
84
93
|
databricks/labs/lakebridge/reconcile/query_builder/expression_generator.py,sha256=AQFwWa_7ghAcCS5k1muKkdpW4ZZgVH_PmEOVXWSdjN8,10906
|
85
94
|
databricks/labs/lakebridge/reconcile/query_builder/hash_query.py,sha256=nIlyq__cPqEPOGUhQSmwhIn-biUHFP23ArIEY5RLOLk,3375
|
@@ -148,12 +157,13 @@ databricks/labs/lakebridge/resources/reconcile/queries/installation/main.sql,sha
|
|
148
157
|
databricks/labs/lakebridge/resources/reconcile/queries/installation/metrics.sql,sha256=FdvjQp7gCwsbcu4UrOuJN-bBLJFpvUIyxH6PQvg04Wo,1006
|
149
158
|
databricks/labs/lakebridge/transpiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
150
159
|
databricks/labs/lakebridge/transpiler/execute.py,sha256=AgsOGQtmPfCoWYP9U1cYezY14UjGx6TPR_PU1NAY6sE,17268
|
151
|
-
databricks/labs/lakebridge/transpiler/
|
160
|
+
databricks/labs/lakebridge/transpiler/repository.py,sha256=Iqe8Msf5_Boi2usel5NkWdsakk5rOYhIuapFHz--7cI,5066
|
161
|
+
databricks/labs/lakebridge/transpiler/transpile_engine.py,sha256=bpzelSMMdQ2j3cSa2eoeuACyM4tSCaGF9h8jFjdr1zw,768
|
152
162
|
databricks/labs/lakebridge/transpiler/transpile_status.py,sha256=MO-Ju-ki3FCY15WxgwfPV9EC7Ma9q8aIfSTgHAmnkGU,1715
|
153
163
|
databricks/labs/lakebridge/transpiler/lsp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
154
|
-
databricks/labs/lakebridge/transpiler/lsp/lsp_engine.py,sha256=
|
164
|
+
databricks/labs/lakebridge/transpiler/lsp/lsp_engine.py,sha256=VmLKWjkzXAmcfUCLLaD3a7upEWERwBTBfFO8900Y7dc,22378
|
155
165
|
databricks/labs/lakebridge/transpiler/sqlglot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
156
|
-
databricks/labs/lakebridge/transpiler/sqlglot/dialect_utils.py,sha256=
|
166
|
+
databricks/labs/lakebridge/transpiler/sqlglot/dialect_utils.py,sha256=6gg3g0VOW2cxBYb9Oq4ZcNMsz45zF88WH99QTcDvHKk,1091
|
157
167
|
databricks/labs/lakebridge/transpiler/sqlglot/lca_utils.py,sha256=vpDLGhE-wFMah1VTXkMg6gI_QnzdzpYZf0h9DUd8zcI,5154
|
158
168
|
databricks/labs/lakebridge/transpiler/sqlglot/local_expression.py,sha256=V69eEJHyZKxmyaham6OulYnwQRqkbGUrdiWm1EWP8YE,3825
|
159
169
|
databricks/labs/lakebridge/transpiler/sqlglot/sqlglot_engine.py,sha256=1uqpYIB-6vhuFqco80lXyBqqdkVkZkk9xuqFAvf2kXI,10131
|
@@ -165,9 +175,9 @@ databricks/labs/lakebridge/transpiler/sqlglot/parsers/presto.py,sha256=bY6Ku8ZPW
|
|
165
175
|
databricks/labs/lakebridge/transpiler/sqlglot/parsers/snowflake.py,sha256=dZ7BdOlBZlkbiN9G9bu4l2c456265Gx9WoWUPRa7Ffg,23203
|
166
176
|
databricks/labs/lakebridge/upgrades/v0.4.0_add_main_table_operation_name_column.py,sha256=wMTbj1q5td4fa5DCk0tWFJ-OmhhzsExRLYUe4PKmk0s,3527
|
167
177
|
databricks/labs/lakebridge/upgrades/v0.6.0_alter_metrics_datatype.py,sha256=hnTHRtqzwPSF5Judzh6ss-uB5h3IFtm2ylWduwRNq5Y,2424
|
168
|
-
databricks_labs_lakebridge-0.10.
|
169
|
-
databricks_labs_lakebridge-0.10.
|
170
|
-
databricks_labs_lakebridge-0.10.
|
171
|
-
databricks_labs_lakebridge-0.10.
|
172
|
-
databricks_labs_lakebridge-0.10.
|
173
|
-
databricks_labs_lakebridge-0.10.
|
178
|
+
databricks_labs_lakebridge-0.10.7.dist-info/METADATA,sha256=CTfyCIJTi9CKaSN3KAaTA3hv66nZWGzN2WyY0BDDAzQ,3078
|
179
|
+
databricks_labs_lakebridge-0.10.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
180
|
+
databricks_labs_lakebridge-0.10.7.dist-info/entry_points.txt,sha256=Idr1CT73b8wShdr287yu1hheGbDbhBvucVUlZcbpiPo,75
|
181
|
+
databricks_labs_lakebridge-0.10.7.dist-info/licenses/LICENSE,sha256=1hG0Cvw6mp9nL9qRoHFcCUk9fYqhcnj2vgJ75rt3BxA,3862
|
182
|
+
databricks_labs_lakebridge-0.10.7.dist-info/licenses/NOTICE,sha256=wtxMsNvTkw1hAEkkWHz8A8JrYySAUSt1tOTcqddkWEg,1797
|
183
|
+
databricks_labs_lakebridge-0.10.7.dist-info/RECORD,,
|
{databricks_labs_lakebridge-0.10.5.dist-info → databricks_labs_lakebridge-0.10.7.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|