google-pso-data-validator 7.5.0__tar.gz → 7.5.2__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.
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/PKG-INFO +3 -3
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/google_pso_data_validator.egg-info/PKG-INFO +3 -3
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/google_pso_data_validator.egg-info/requires.txt +2 -2
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/setup.py +3 -3
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_addon/operations.py +13 -4
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_postgres/client.py +4 -2
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_teradata/registry.py +15 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/LICENSE +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/README.md +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/__main__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/app.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/cli_tools.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/client_info.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/clients.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/combiner.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/config_manager.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/consts.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/data_validation.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/exceptions.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/find_tables.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/gcs_helper.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/jellyfish_distance.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/metadata.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/partition_builder.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/query_builder/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/query_builder/partition_row_builder.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/query_builder/query_builder.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/query_builder/random_row_builder.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/raw_query.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/result_handlers/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/result_handlers/bigquery.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/result_handlers/text.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/schema_validation.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/secret_manager.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/state_manager.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/util.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/validation_builder.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/google_pso_data_validator.egg-info/SOURCES.txt +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/google_pso_data_validator.egg-info/dependency_links.txt +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/google_pso_data_validator.egg-info/entry_points.txt +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/google_pso_data_validator.egg-info/top_level.txt +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/setup.cfg +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_addon/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_addon/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_biquery/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_biquery/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_cloud_spanner/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_cloud_spanner/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_cloud_spanner/client.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_cloud_spanner/compiler.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_cloud_spanner/datatypes.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_cloud_spanner/registry.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_cloud_spanner/tests/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_cloud_spanner/tests/conftest.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_cloud_spanner/to_pandas.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_db2/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_db2/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_db2/compiler.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_db2/datatypes.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_db2/registry.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_impala/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_impala/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_mssql/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_mssql/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_mssql/datatypes.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_mssql/registry.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_mysql/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_mysql/base_sql_compiler/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_mysql/base_sql_compiler/select_builder.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_mysql/compiler.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_oracle/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_oracle/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_oracle/compiler.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_oracle/datatypes.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_oracle/registry.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_postgres/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_postgres/datatypes.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_postgres/registry.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_redshift/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_redshift/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_redshift/compiler.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_snowflake/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_snowflake/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_snowflake/datatypes.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_teradata/__init__.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_teradata/api.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_teradata/compiler.py +0 -0
- {google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_teradata/datatypes.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: google-pso-data-validator
|
|
3
|
-
Version: 7.5.
|
|
3
|
+
Version: 7.5.2
|
|
4
4
|
Summary: A package to enable easy data validation
|
|
5
5
|
Author: PSO DVT Engineering team
|
|
6
6
|
Author-email: data-validator-eng@google.com
|
|
@@ -15,7 +15,7 @@ Requires-Python: >=3.8
|
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
17
|
Requires-Dist: Flask>=2.2
|
|
18
|
-
Requires-Dist: fsspec
|
|
18
|
+
Requires-Dist: fsspec!=2025.3.1
|
|
19
19
|
Requires-Dist: google-api-python-client>=2.144.0
|
|
20
20
|
Requires-Dist: google-cloud-bigquery>=3.25.0
|
|
21
21
|
Requires-Dist: google-cloud-bigquery-storage>=2.26.0
|
|
@@ -42,7 +42,7 @@ Provides-Extra: develop
|
|
|
42
42
|
Requires-Dist: black==22.3.0; extra == "develop"
|
|
43
43
|
Requires-Dist: flake8; extra == "develop"
|
|
44
44
|
Requires-Dist: freezegun; extra == "develop"
|
|
45
|
-
Requires-Dist: pyfakefs
|
|
45
|
+
Requires-Dist: pyfakefs; extra == "develop"
|
|
46
46
|
Requires-Dist: pytest; extra == "develop"
|
|
47
47
|
Requires-Dist: pytest-cov; extra == "develop"
|
|
48
48
|
Requires-Dist: pytest-timeout; extra == "develop"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: google-pso-data-validator
|
|
3
|
-
Version: 7.5.
|
|
3
|
+
Version: 7.5.2
|
|
4
4
|
Summary: A package to enable easy data validation
|
|
5
5
|
Author: PSO DVT Engineering team
|
|
6
6
|
Author-email: data-validator-eng@google.com
|
|
@@ -15,7 +15,7 @@ Requires-Python: >=3.8
|
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
17
|
Requires-Dist: Flask>=2.2
|
|
18
|
-
Requires-Dist: fsspec
|
|
18
|
+
Requires-Dist: fsspec!=2025.3.1
|
|
19
19
|
Requires-Dist: google-api-python-client>=2.144.0
|
|
20
20
|
Requires-Dist: google-cloud-bigquery>=3.25.0
|
|
21
21
|
Requires-Dist: google-cloud-bigquery-storage>=2.26.0
|
|
@@ -42,7 +42,7 @@ Provides-Extra: develop
|
|
|
42
42
|
Requires-Dist: black==22.3.0; extra == "develop"
|
|
43
43
|
Requires-Dist: flake8; extra == "develop"
|
|
44
44
|
Requires-Dist: freezegun; extra == "develop"
|
|
45
|
-
Requires-Dist: pyfakefs
|
|
45
|
+
Requires-Dist: pyfakefs; extra == "develop"
|
|
46
46
|
Requires-Dist: pytest; extra == "develop"
|
|
47
47
|
Requires-Dist: pytest-cov; extra == "develop"
|
|
48
48
|
Requires-Dist: pytest-timeout; extra == "develop"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Flask>=2.2
|
|
2
|
-
fsspec
|
|
2
|
+
fsspec!=2025.3.1
|
|
3
3
|
google-api-python-client>=2.144.0
|
|
4
4
|
google-cloud-bigquery>=3.25.0
|
|
5
5
|
google-cloud-bigquery-storage>=2.26.0
|
|
@@ -26,7 +26,7 @@ tabulate>=0.9.0
|
|
|
26
26
|
black==22.3.0
|
|
27
27
|
flake8
|
|
28
28
|
freezegun
|
|
29
|
-
pyfakefs
|
|
29
|
+
pyfakefs
|
|
30
30
|
pytest
|
|
31
31
|
pytest-cov
|
|
32
32
|
pytest-timeout
|
|
@@ -18,7 +18,7 @@ import setuptools
|
|
|
18
18
|
|
|
19
19
|
name = "google-pso-data-validator"
|
|
20
20
|
description = "A package to enable easy data validation"
|
|
21
|
-
version = "7.5.
|
|
21
|
+
version = "7.5.2"
|
|
22
22
|
release_status = "Development Status :: 4 - Beta"
|
|
23
23
|
|
|
24
24
|
with open("README.md", "r") as fh:
|
|
@@ -26,7 +26,7 @@ with open("README.md", "r") as fh:
|
|
|
26
26
|
|
|
27
27
|
dependencies = [
|
|
28
28
|
"Flask>=2.2", # Some versions of airflow such as 2.9.1 depend on flask<2.3 and >=2.2
|
|
29
|
-
"fsspec
|
|
29
|
+
"fsspec!=2025.3.1", # Version 2025.3.1 was breaking Python 3.8 support.
|
|
30
30
|
"google-api-python-client>=2.144.0",
|
|
31
31
|
"google-cloud-bigquery>=3.25.0",
|
|
32
32
|
"google-cloud-bigquery-storage>=2.26.0",
|
|
@@ -54,7 +54,7 @@ extras_require = {
|
|
|
54
54
|
"black==22.3.0",
|
|
55
55
|
"flake8",
|
|
56
56
|
"freezegun",
|
|
57
|
-
"pyfakefs
|
|
57
|
+
"pyfakefs",
|
|
58
58
|
"pytest",
|
|
59
59
|
"pytest-cov",
|
|
60
60
|
"pytest-timeout",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
"""
|
|
15
|
+
"""The Ibis Addons Operations are intended to help facilitate new expressions
|
|
16
16
|
when required before they can be pushed upstream to Ibis.
|
|
17
17
|
|
|
18
18
|
Raw SQL Filters:
|
|
@@ -24,6 +24,7 @@ non-textual languages.
|
|
|
24
24
|
"""
|
|
25
25
|
import datetime
|
|
26
26
|
import dateutil
|
|
27
|
+
import numpy as np
|
|
27
28
|
import string
|
|
28
29
|
|
|
29
30
|
import google.cloud.bigquery as bq
|
|
@@ -94,6 +95,11 @@ except Exception:
|
|
|
94
95
|
SnowflakeExprTranslator = None
|
|
95
96
|
|
|
96
97
|
|
|
98
|
+
# Cast of datetime64 NaT to int64 and then in seconds results in the value below.
|
|
99
|
+
# We need to use this value in the datetime.date simulation of the datetime64 behaviour.
|
|
100
|
+
NAT_INT64_MIN_IN_SECONDS = np.iinfo(np.int64).min // 1_000_000_000
|
|
101
|
+
|
|
102
|
+
|
|
97
103
|
class BinaryLength(ops.Value):
|
|
98
104
|
arg = rlz.one_of([rlz.value(dt.Binary)])
|
|
99
105
|
output_dtype = dt.int32
|
|
@@ -534,6 +540,10 @@ def _bigquery_field_to_ibis_dtype(field):
|
|
|
534
540
|
def string_to_epoch(ts: str) -> int:
|
|
535
541
|
"""Function to convert string timestamp to epoch seconds"""
|
|
536
542
|
try:
|
|
543
|
+
if pd.isna(ts):
|
|
544
|
+
# Casting datetime64 to int64 uses the minimum possible int64 when it
|
|
545
|
+
# encounters NaT. Simulating the same here for when auto cast fails.
|
|
546
|
+
return NAT_INT64_MIN_IN_SECONDS
|
|
537
547
|
parsed_ts = dateutil.parser.isoparse(ts).astimezone(dateutil.tz.UTC)
|
|
538
548
|
return (
|
|
539
549
|
parsed_ts - datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc)
|
|
@@ -547,12 +557,11 @@ def string_to_epoch(ts: str) -> int:
|
|
|
547
557
|
|
|
548
558
|
@execute_node.register(ops.ExtractEpochSeconds, (datetime.datetime, pd.Series))
|
|
549
559
|
def execute_epoch_seconds_new(op, data, **kwargs):
|
|
550
|
-
import numpy as np
|
|
551
|
-
|
|
552
560
|
convert = getattr(data, "view", data.astype)
|
|
553
561
|
try:
|
|
554
562
|
series = convert(np.int64)
|
|
555
|
-
|
|
563
|
+
# We need int64 below because NaT overflows int32.
|
|
564
|
+
return (series // 1_000_000_000).astype(np.int64)
|
|
556
565
|
except TypeError:
|
|
557
566
|
# Catch 'TypeError' for large timestamps beyond max datetime64[ns] as per Issue #1053
|
|
558
567
|
# Cast to string instead to work around datetime64[ns] limitation
|
|
@@ -82,9 +82,11 @@ def _metadata(self, query: str) -> sch.Schema:
|
|
|
82
82
|
)
|
|
83
83
|
with self.begin() as con:
|
|
84
84
|
cur = con.exec_driver_sql(f"SELECT * FROM {query} t0 LIMIT 0")
|
|
85
|
+
# Table OID below is cast to bigint because OID is based on
|
|
86
|
+
# an unsigned integer which can overflow integer data type.
|
|
85
87
|
qry_cols = [
|
|
86
88
|
f"('{column.name}'::text, {column.type_code},"
|
|
87
|
-
+ f"{column.table_oid if column.table_oid else 'NULL'}::
|
|
89
|
+
+ f"{column.table_oid if column.table_oid else 'NULL'}::bigint,"
|
|
88
90
|
+ f"{column.table_column if column.table_column else 'NULL'}::int, {idx})"
|
|
89
91
|
for idx, column in enumerate(cur.cursor.description)
|
|
90
92
|
]
|
|
@@ -93,7 +95,7 @@ def _metadata(self, query: str) -> sch.Schema:
|
|
|
93
95
|
THEN format_type(t0.type_code, NULL)
|
|
94
96
|
ELSE format_type(t1.atttypid, t1.atttypmod) END AS type
|
|
95
97
|
FROM UNNEST(array[{','.join(qry_cols)}])
|
|
96
|
-
AS t0(name text, type_code int, attrelid
|
|
98
|
+
AS t0(name text, type_code int, attrelid bigint, attnum int, col_ord int)
|
|
97
99
|
LEFT JOIN pg_attribute t1 USING (attrelid, attnum) ORDER BY col_ord"""
|
|
98
100
|
)
|
|
99
101
|
yield from ((col, _get_type(typestr)) for col, typestr in type_info)
|
|
@@ -106,6 +106,21 @@ def teradata_cast_decimal_to_string(compiled_arg, from_, to):
|
|
|
106
106
|
return "TO_CHAR({},'TM9')".format(compiled_arg)
|
|
107
107
|
|
|
108
108
|
|
|
109
|
+
@teradata_cast.register(str, dt.Int8, dt.String)
|
|
110
|
+
@teradata_cast.register(str, dt.Int16, dt.String)
|
|
111
|
+
@teradata_cast.register(str, dt.Int32, dt.String)
|
|
112
|
+
def teradata_cast_integer_to_string(compiled_arg, from_, to):
|
|
113
|
+
# INTEGER in a string cannot be longer than 10 characters (+1 for sign).
|
|
114
|
+
# Included smaller integers here too to minimize overloads.
|
|
115
|
+
return "CAST({} AS VARCHAR(11))".format(compiled_arg)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
@teradata_cast.register(str, dt.Int64, dt.String)
|
|
119
|
+
def teradata_cast_bigint_to_string(compiled_arg, from_, to):
|
|
120
|
+
# BIGINT in a string cannot be longer than 20 characters (+1 for sign).
|
|
121
|
+
return "CAST({} AS VARCHAR(21))".format(compiled_arg)
|
|
122
|
+
|
|
123
|
+
|
|
109
124
|
@teradata_cast.register(str, dt.Time, dt.String)
|
|
110
125
|
def teradata_cast_time_to_string(compiled_arg, from_, to):
|
|
111
126
|
# Time always has a time zone associated with it in Teradata
|
|
File without changes
|
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/__init__.py
RENAMED
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/cli_tools.py
RENAMED
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/client_info.py
RENAMED
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/clients.py
RENAMED
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/combiner.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/consts.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/exceptions.py
RENAMED
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/find_tables.py
RENAMED
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/gcs_helper.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/metadata.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/raw_query.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/data_validation/state_manager.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
{google_pso_data_validator-7.5.0 → google_pso_data_validator-7.5.2}/third_party/ibis/ibis_db2/api.py
RENAMED
|
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
|
|
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
|