dcs-sdk 1.7.1__tar.gz → 1.7.3__tar.gz

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.
Files changed (161) hide show
  1. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/PKG-INFO +2 -2
  2. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/README.md +1 -1
  3. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/azure_blob.py +0 -6
  4. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/mssql.py +8 -5
  5. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/oracle.py +2 -4
  6. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/postgres.py +0 -2
  7. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/__version__.py +1 -1
  8. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/data_diff/data_differ.py +4 -4
  9. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/pyproject.toml +1 -1
  10. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/__init__.py +0 -0
  11. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/__main__.py +0 -0
  12. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/abcs/__init__.py +0 -0
  13. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/abcs/compiler.py +0 -0
  14. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/abcs/database_types.py +0 -0
  15. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/config.py +0 -0
  16. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/__init__.py +0 -0
  17. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/_connect.py +0 -0
  18. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/base.py +0 -0
  19. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/bigquery.py +0 -0
  20. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/clickhouse.py +0 -0
  21. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/databricks.py +0 -0
  22. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/duckdb.py +0 -0
  23. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/mssql.py +0 -0
  24. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/mysql.py +0 -0
  25. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/oracle.py +0 -0
  26. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/postgresql.py +0 -0
  27. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/presto.py +0 -0
  28. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/redis.py +0 -0
  29. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/redshift.py +0 -0
  30. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/snowflake.py +0 -0
  31. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/sybase.py +0 -0
  32. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/trino.py +0 -0
  33. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/databases/vertica.py +0 -0
  34. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/diff_tables.py +0 -0
  35. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/errors.py +0 -0
  36. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/format.py +0 -0
  37. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/hashdiff_tables.py +0 -0
  38. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/info_tree.py +0 -0
  39. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/joindiff_tables.py +0 -0
  40. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/lexicographic_space.py +0 -0
  41. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/parse_time.py +0 -0
  42. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/py.typed +0 -0
  43. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/queries/__init__.py +0 -0
  44. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/queries/api.py +0 -0
  45. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/queries/ast_classes.py +0 -0
  46. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/queries/base.py +0 -0
  47. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/queries/extras.py +0 -0
  48. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/query_utils.py +0 -0
  49. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/schema.py +0 -0
  50. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/table_segment.py +0 -0
  51. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/thread_utils.py +0 -0
  52. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/utils.py +0 -0
  53. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/data_diff/version.py +0 -0
  54. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/__init__.py +0 -0
  55. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/__main__.py +0 -0
  56. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/__version__.py +0 -0
  57. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/cli/__init__.py +0 -0
  58. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/cli/cli.py +0 -0
  59. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/__init__.py +0 -0
  60. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/__init__.py +0 -0
  61. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/errors.py +0 -0
  62. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/models/__init__.py +0 -0
  63. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/models/configuration.py +0 -0
  64. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/models/dashboard.py +0 -0
  65. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/models/data_source_resource.py +0 -0
  66. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/models/metric.py +0 -0
  67. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/models/profile.py +0 -0
  68. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/models/validation.py +0 -0
  69. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/common/models/widget.py +0 -0
  70. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/configuration/__init__.py +0 -0
  71. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/configuration/config_loader.py +0 -0
  72. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/configuration/configuration_parser.py +0 -0
  73. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/configuration/configuration_parser_arc.py +0 -0
  74. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/datasource/__init__.py +0 -0
  75. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/datasource/base.py +0 -0
  76. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/datasource/file_datasource.py +0 -0
  77. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/datasource/manager.py +0 -0
  78. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/datasource/search_datasource.py +0 -0
  79. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/datasource/sql_datasource.py +0 -0
  80. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/inspect.py +0 -0
  81. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/logger/__init__.py +0 -0
  82. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/logger/base.py +0 -0
  83. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/logger/default_logger.py +0 -0
  84. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/metric/__init__.py +0 -0
  85. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/metric/base.py +0 -0
  86. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/metric/combined_metric.py +0 -0
  87. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/metric/custom_metric.py +0 -0
  88. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/metric/manager.py +0 -0
  89. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/metric/numeric_metric.py +0 -0
  90. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/metric/reliability_metric.py +0 -0
  91. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/profiling/__init__.py +0 -0
  92. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/profiling/datasource_profiling.py +0 -0
  93. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/profiling/numeric_field_profiling.py +0 -0
  94. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/profiling/text_field_profiling.py +0 -0
  95. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/repository/__init__.py +0 -0
  96. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/repository/metric_repository.py +0 -0
  97. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/utils/__init__.py +0 -0
  98. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/utils/log.py +0 -0
  99. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/utils/tracking.py +0 -0
  100. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/utils/utils.py +0 -0
  101. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/validation/__init__.py +0 -0
  102. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/validation/base.py +0 -0
  103. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/validation/completeness_validation.py +0 -0
  104. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/validation/custom_query_validation.py +0 -0
  105. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/validation/manager.py +0 -0
  106. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/validation/numeric_validation.py +0 -0
  107. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/validation/reliability_validation.py +0 -0
  108. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/validation/uniqueness_validation.py +0 -0
  109. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/core/validation/validity_validation.py +0 -0
  110. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/__init__.py +0 -0
  111. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/__init__.py +0 -0
  112. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/bigquery.py +0 -0
  113. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/databricks.py +0 -0
  114. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/db2.py +0 -0
  115. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/duck_db.py +0 -0
  116. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/elasticsearch.py +0 -0
  117. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/mysql.py +0 -0
  118. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/opensearch.py +0 -0
  119. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/redshift.py +0 -0
  120. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/snowflake.py +0 -0
  121. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/spark_df.py +0 -0
  122. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/databases/sybase.py +0 -0
  123. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/storage/__init__.py +0 -0
  124. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/storage/local_file.py +0 -0
  125. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/utils/__init__.py +0 -0
  126. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/integrations/utils/utils.py +0 -0
  127. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/__init__.py +0 -0
  128. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/dashboard.py +0 -0
  129. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/models.py +0 -0
  130. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/assets/fonts/DMSans-Bold.ttf +0 -0
  131. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/assets/fonts/DMSans-Medium.ttf +0 -0
  132. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/assets/fonts/DMSans-Regular.ttf +0 -0
  133. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/assets/fonts/DMSans-SemiBold.ttf +0 -0
  134. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/assets/images/docs.svg +0 -0
  135. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/assets/images/github.svg +0 -0
  136. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/assets/images/logo.svg +0 -0
  137. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/assets/images/slack.svg +0 -0
  138. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/index.js +0 -0
  139. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_core/report/static/index.js.LICENSE.txt +0 -0
  140. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/__init__.py +0 -0
  141. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/__main__.py +0 -0
  142. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/cli/__init__.py +0 -0
  143. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/cli/cli.py +0 -0
  144. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/__init__.py +0 -0
  145. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/config/__init__.py +0 -0
  146. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/config/config_loader.py +0 -0
  147. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/data_diff/__init__.py +0 -0
  148. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/rules/__init__.py +0 -0
  149. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/rules/rules_mappping.py +0 -0
  150. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/rules/rules_repository.py +0 -0
  151. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/rules/schema_rules.py +0 -0
  152. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/__init__.py +0 -0
  153. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/serializer.py +0 -0
  154. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/similarity_score/__init__.py +0 -0
  155. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/similarity_score/base_provider.py +0 -0
  156. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/similarity_score/cosine_similarity_provider.py +0 -0
  157. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/similarity_score/jaccard_provider.py +0 -0
  158. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/similarity_score/levenshtein_distance_provider.py +0 -0
  159. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/table.py +0 -0
  160. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/themes.py +0 -0
  161. {dcs_sdk-1.7.1 → dcs_sdk-1.7.3}/dcs_sdk/sdk/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dcs-sdk
3
- Version: 1.7.1
3
+ Version: 1.7.3
4
4
  Summary: SDK for DataChecks
5
5
  Author: Waterdip Labs
6
6
  Author-email: hello@waterdip.ai
@@ -86,7 +86,7 @@ Requires-Dist: vertica-python (>=1.4.0) ; extra == "vertica" or extra == "all-db
86
86
  Description-Content-Type: text/markdown
87
87
 
88
88
  <h1 align="center">
89
- DCS SDK v1.7.1
89
+ DCS SDK v1.7.3
90
90
  </h1>
91
91
 
92
92
  > SDK for DataChecks
@@ -1,5 +1,5 @@
1
1
  <h1 align="center">
2
- DCS SDK v1.7.1
2
+ DCS SDK v1.7.3
3
3
  </h1>
4
4
 
5
5
  > SDK for DataChecks
@@ -12,21 +12,15 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- import os
16
- import uuid
17
- from pathlib import Path
18
15
  from typing import Any, Dict, Optional
19
16
 
20
- import duckdb
21
17
  from azure.storage.blob import BlobServiceClient
22
18
  from loguru import logger
23
19
 
24
20
  from dcs_core.core.common.errors import (
25
- DatachecksColumnFetchError,
26
21
  DataChecksDataSourcesConnectionError,
27
22
  DatachecksTableFetchError,
28
23
  )
29
- from dcs_core.core.common.models.data_source_resource import RawColumnInfo
30
24
  from dcs_core.core.datasource.file_datasource import FileDataSource
31
25
 
32
26
 
@@ -167,8 +167,6 @@ class MssqlDataSource(SQLDataSource):
167
167
  :return: Dictionary with index details
168
168
  """
169
169
  schema = schema or self.schema_name
170
- table = table.upper()
171
- schema = schema.upper()
172
170
 
173
171
  query = f"""
174
172
  SELECT
@@ -673,8 +671,6 @@ class MssqlDataSource(SQLDataSource):
673
671
 
674
672
  quoted_name = self.quote_column(name)
675
673
 
676
- query_parts.append(f"COUNT(DISTINCT {quoted_name}) AS [{name}_distinct]")
677
- query_parts.append(f"COUNT({quoted_name}) - COUNT(DISTINCT {quoted_name}) AS [{name}_duplicate]")
678
674
  query_parts.append(f"SUM(CASE WHEN {quoted_name} IS NULL THEN 1 ELSE 0 END) AS [{name}_is_null]")
679
675
 
680
676
  if dtype in (
@@ -690,13 +686,20 @@ class MssqlDataSource(SQLDataSource):
690
686
  "money",
691
687
  "smallmoney",
692
688
  ):
689
+ query_parts.append(f"COUNT({quoted_name}) - COUNT(DISTINCT {quoted_name}) AS [{name}_duplicate]")
693
690
  query_parts.append(f"MIN({quoted_name}) AS [{name}_min]")
694
691
  query_parts.append(f"MAX({quoted_name}) AS [{name}_max]")
695
692
  query_parts.append(f"AVG(CAST({quoted_name} AS FLOAT)) AS [{name}_average]")
693
+ query_parts.append(f"COUNT(DISTINCT {quoted_name}) AS [{name}_distinct]")
696
694
 
697
- elif dtype in ("varchar", "nvarchar", "char", "nchar", "text", "ntext"):
695
+ elif dtype in ("varchar", "nvarchar", "char", "nchar"):
698
696
  query_parts.append(f"MAX(LEN({quoted_name})) AS [{name}_max_character_length]")
699
697
 
698
+ elif dtype in ("text", "ntext", "xml"):
699
+ query_parts.append(
700
+ f"MAX(LEN(CAST({quoted_name} AS NVARCHAR(MAX)))) " f"AS [{name}_max_character_length]"
701
+ )
702
+
700
703
  if additional_queries:
701
704
  query_parts.extend(additional_queries)
702
705
 
@@ -143,8 +143,6 @@ class OracleDataSource(SQLDataSource):
143
143
  :return: Dictionary with index details
144
144
  """
145
145
  schema = schema or self.schema_name
146
- table = table.upper()
147
- schema = schema.upper()
148
146
 
149
147
  query = f"""
150
148
  SELECT
@@ -696,8 +694,8 @@ class OracleDataSource(SQLDataSource):
696
694
  AND r_ac.OWNER = r_acc.OWNER
697
695
  AND acc.POSITION = r_acc.POSITION
698
696
  WHERE ac.CONSTRAINT_TYPE = 'R'
699
- AND ac.TABLE_NAME = '{table_name.upper()}'
700
- AND ac.OWNER = '{schema.upper()}';
697
+ AND ac.TABLE_NAME = '{table_name}'
698
+ AND ac.OWNER = '{schema}';
701
699
  """
702
700
 
703
701
  try:
@@ -136,8 +136,6 @@ class PostgresDataSource(SQLDataSource):
136
136
  :return: Dictionary with index details
137
137
  """
138
138
  schema = schema or self.schema_name
139
- table = table.lower()
140
- schema = schema.lower()
141
139
 
142
140
  query = f"""
143
141
  SELECT
@@ -12,4 +12,4 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- __version__ = "1.7.1"
15
+ __version__ = "1.7.3"
@@ -738,10 +738,10 @@ class DBTableDiffer:
738
738
 
739
739
  self.response.update({"column_transforms": column_transforms})
740
740
  self.response.update({"schema_overrides": schema_overrides})
741
- self.config.source.table = self.original_source_table_name
742
- self.config.target.table = self.original_target_table_name
743
- self.response["source_dataset"]["table_name"] = self.original_source_table_name
744
- self.response["target_dataset"]["table_name"] = self.original_target_table_name
741
+ self.config.source.table = self.original_source_table_name or self.config.source.table
742
+ self.config.target.table = self.original_target_table_name or self.config.target.table
743
+ self.response["source_dataset"]["table_name"] = self.original_source_table_name or self.config.source.table
744
+ self.response["target_dataset"]["table_name"] = self.original_target_table_name or self.config.target.table
745
745
  return self.response
746
746
  except Exception as e:
747
747
  logger.exception(f"Error during diff_tables: {e}")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "dcs-sdk"
3
- version = "1.7.1"
3
+ version = "1.7.3"
4
4
  description = "SDK for DataChecks"
5
5
  authors = ["Waterdip Labs <hello@waterdip.ai>"]
6
6
  readme = "README.md"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes