snowflake-data-validation 1.47.0__tar.gz → 1.48.0__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.
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/PKG-INFO +30 -3
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/README.md +28 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/pyproject.toml +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_column_metrics_templates.yaml +24 -156
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_datatypes_normalization_templates.yaml +3 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_table_metadata_query.sql.j2 +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/query/query_generator_azure_synapse.py +5 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_column_metrics_templates.yaml +11 -103
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_table_metadata_query.sql.j2 +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/query/query_generator_bigquery.py +4 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_column_metrics_templates.yaml +69 -257
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_table_metadata_query.sql.j2 +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/query/query_generator_db2.py +4 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/executer/async_validation_executor.py +34 -20
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/executer/base_validation_executor.py +51 -21
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/extractor/sql_queries_template_generator.py +5 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_column_metrics_templates.yaml +48 -193
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_datatypes_normalization_templates.yaml +15 -12
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_table_metadata_query.sql.j2 +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/oracle_iso_normalization.py +80 -7
- snowflake_data_validation-1.48.0/src/snowflake/snowflake_data_validation/oracle/oracle_spatial.py +100 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/query/query_generator_oracle.py +14 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_column_metrics_templates.yaml +115 -390
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_table_metadata_query.sql.j2 +2 -2
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/query/query_generator_postgresql.py +21 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/query_generation/schema_metrics_queries.py +9 -2
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/extractor/templates/query_column_metrics_templates.yaml +11 -29
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/float_bit_normalization.py +0 -20
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/query_generator_base.py +31 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_column_metrics_templates.yaml +48 -254
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/query/query_generator_redshift.py +8 -2
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_column_metrics_templates.yaml +19 -72
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_snowflake.py +2 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_column_metrics_templates.yaml +42 -96
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_datatypes_normalization_templates.yaml +10 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_table_metadata_query.sql.j2 +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/query/query_generator_snowflake.py +42 -34
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_column_metrics_templates.yaml +9 -35
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_table_metadata_query.sql.j2 +2 -2
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_column_metrics_templates.yaml +51 -228
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_datatypes_normalization_templates.yaml +3 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_table_metadata_query.sql.j2 +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/query/query_generator_sqlserver.py +5 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_string_length_normalization.py +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_column_metrics_templates.yaml +40 -241
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_table_metadata_query.sql.j2 +4 -2
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_to_snowflake_datatypes_mapping_template.yaml +2 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/query/charset_normalization.py +61 -17
- snowflake_data_validation-1.48.0/src/snowflake/snowflake_data_validation/teradata/query/hash_md5_function.py +60 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/query/query_generator_teradata.py +65 -5
- snowflake_data_validation-1.48.0/src/snowflake/snowflake_data_validation/utils/catalog_literals.py +39 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/column_partitioning_strategy.py +9 -13
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/configuration_file_generator.py +8 -7
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/constants.py +4 -3
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/iceberg_dv_common.py +20 -13
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/interval_common.py +48 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/model/table_context.py +12 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/snapshot_validation_statements.py +8 -12
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/telemetry.py +2 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/teradata_string_rtrim.py +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/comparison_codec.py +45 -16
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/data_validator_base.py +14 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/base.py +5 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/snowflake.py +6 -2
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/teradata.py +5 -4
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/integration/Redshift/test_metadata_extractor_integration.py +17 -180
- snowflake_data_validation-1.48.0/tests/integration/test_async_generation_integration.py +376 -0
- snowflake_data_validation-1.48.0/tests/integration/test_async_validation_integration.py +347 -0
- snowflake_data_validation-1.48.0/tests/integration/test_source_validation_integration.py +638 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Postgresql/test_postgresql_bit_count_distinct.py +9 -19
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Postgresql/test_postgresql_collation.py +18 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Postgresql/test_postgresql_spatial_templates.py +1 -2
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_redshift_collation.py +15 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_redshift_hllsketch_templates.py +1 -3
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_redshift_spatial_templates.py +2 -4
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_redshift_varchar_count_distinct.py +0 -29
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_query_generator_teradata.py +1 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_blob_metrics.py +8 -6
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_collation.py +28 -3
- snowflake_data_validation-1.48.0/tests/unit/Teradata/test_teradata_hash_md5_function.py +129 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_integer_stddev_exact.py +11 -33
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_row_md5_select_template.py +3 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_spatial_templates.py +2 -5
- snowflake_data_validation-1.48.0/tests/unit/Teradata/test_teradata_table_metadata_unbounded_number.py +107 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/azure_synapse/test_azure_synapse_metrics_templates.py +19 -19
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/bigquery/test_bigquery_spatial_templates.py +2 -3
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/bigquery/test_query_generator_bigquery.py +18 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/db2/test_db2_query_generator.py +3 -11
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/db2/test_db2_xml_long_metrics.py +1 -10
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_iso_normalization.py +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_metrics_templates.py +7 -10
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_query_generator.py +34 -4
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_query_modifiers.py +11 -6
- snowflake_data_validation-1.48.0/tests/unit/oracle/test_oracle_signed_year.py +68 -0
- snowflake_data_validation-1.48.0/tests/unit/oracle/test_oracle_snowflake_signed_year.py +73 -0
- snowflake_data_validation-1.48.0/tests/unit/oracle/test_oracle_spatial.py +89 -0
- snowflake_data_validation-1.48.0/tests/unit/query/test_unsigned_hex_slice_sql.py +105 -0
- snowflake_data_validation-1.48.0/tests/unit/snowflake/test_snowflake_ipaddress_metrics_templates.py +34 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/snowflake/test_snowflake_spatial_metrics_templates.py +2 -3
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_json.py +0 -7
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_length_metrics_chars.py +8 -3
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_row_queries.py +45 -16
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_spatial_metrics_templates.py +2 -3
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_string_length_pairing.py +1 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_xml_image_metrics.py +1 -25
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_tsql_integer_stddev_exact.py +10 -38
- snowflake_data_validation-1.48.0/tests/unit/test_async_validation_executor.py +100 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_charset_normalization.py +32 -6
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_column_partitioning_strategy.py +11 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_comparison_codec.py +105 -4
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_configuration_file_generator.py +24 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_connector_snowflake.py +2 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_data_validator.py +37 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_float_canonical_templates.py +44 -9
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_iceberg_dv_l3_normalization.py +178 -9
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_iceberg_v2_metrics_exclusion.py +89 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_metrics_templates_casts.py +42 -21
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_postgresql_normalization_templates.py +1 -19
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_redshift_native_timestamptz_ltz.py +8 -4
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_schema_accepted_native_datatypes.py +69 -3
- snowflake_data_validation-1.48.0/tests/unit/test_schema_query_row_count_option.py +136 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_spatial_wkt_canonicalization.py +51 -2
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_sqlserver_multi_version_support.py +2 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_sync_validation_executor.py +26 -0
- snowflake_data_validation-1.48.0/tests/unit/test_teradata_aimv_normalization.py +85 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_teradata_string_rtrim_policy.py +0 -1
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_tsql_float_l2_aggregates.py +14 -121
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_vector_bit_normalization.py +6 -0
- snowflake_data_validation-1.48.0/tests/unit/utils/test_catalog_literals.py +34 -0
- snowflake_data_validation-1.47.0/src/snowflake/snowflake_data_validation/query/float_aggregate_reduction.py +0 -57
- snowflake_data_validation-1.47.0/tests/integration/test_async_generation_integration.py +0 -579
- snowflake_data_validation-1.47.0/tests/integration/test_async_validation_integration.py +0 -649
- snowflake_data_validation-1.47.0/tests/integration/test_source_validation_integration.py +0 -810
- snowflake_data_validation-1.47.0/tests/integration/test_sync_validation_integration.py +0 -655
- snowflake_data_validation-1.47.0/tests/unit/test_float_aggregate_reduction.py +0 -358
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/.gitignore +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/LICENSE +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/docs/README.md +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/azure_synapse_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/connector/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/connector/connector_azure_synapse.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/connector/connector_factory_azure_synapse.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/metadata_extractor_azure_synapse.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/model/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/model/azure_synapse_credentials_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/azure_synapse/script_writer/script_writer_azure_synapse.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/bigquery/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/comparison_orchestrator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/configuration_loader.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/model/configuration_model.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/model/connection_types.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/model/connections/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/model/logging_configuration.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/model/table_configuration.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/model/validation_configuration.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/model/view_configuration.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/configuration/singleton.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/connector/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/connector/connector_base.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/connector/connector_factory_base.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/connector/connector_failure_tracker.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/db2_lob_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/metadata_extractor_db2.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/db2/script_writer/script_writer_db2.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/executer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/executer/async_generation_executor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/executer/executor_factory.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/executer/extractor_types.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/executer/source_validation_executor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/executer/sync_validation_executor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/extractor/metadata_extractor_base.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/metadata_extractor_oracle.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/oracle_bfile.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/oracle_lob_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/oracle_statement_functions.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/oracle_vector_extraction.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/oracle_xmltype.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/oracle/script_writer/script_writer_oracle.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/orchestration/html_report/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/orchestration/html_report/html_report_builder.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/orchestration/html_report/report_metadata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/orchestration/parallel_execution_engine.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/orchestration/table_metadata_processor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/orchestration/validation_progress_reporter.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/orchestration/view_preprocessor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/connector/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/connector/connector_factory_postgresql.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/connector/connector_postgresql.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/metadata_extractor_postgresql.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_chunk_row_concatenated_insert_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_chunk_row_concatenated_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_chunk_row_md5_insert_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_chunk_row_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/model/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/model/postgresql_credentials_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/postgresql_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/postgresql_tz_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/query/charset_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/postgresql/script_writer/script_writer_postgresql.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/DATA_VALIDATION_API_OVERVIEW.md +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/_internal.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/_teradata_internal.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/async_mode/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/async_mode/file_loader.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/async_mode/script_writer.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/cli/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/cli/commands.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/configuration/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/connectors/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/context/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/data_validation_api.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/enums/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/execution/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/execution/query_executor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/generators/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/metadata/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/model/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/model/data_validation_exception.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/model/generated_query.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/model/metrics_result_shape.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/model/query_execution_result.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/model/query_generator_factory.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/model/result_set.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/model/validation_progress_callback.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/model/validation_result.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/query_generation/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/query_generation/metadata_queries.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/query_generation/row_validation_queries.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/query_validation/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/query_validation/query_comparison.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/reshape/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/reshape/metrics_reshape.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/result_set_validation/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/result_set_validation/result_set_comparison.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/snapshot/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/snapshot/snapshot_generation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/snapshot/snapshot_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/utils/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/utils/helpers.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/validation/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/validation/cell_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/validation/metrics_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/validation/row_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/public/validation/schema_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/charset_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/chunk_md5_tiered.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/decimal_text_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/extractor/templates/query_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/extractor/templates/query_modifiers.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/normalization_render_context.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/numeric_scale_resolution.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/query/query_generator_query.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/query_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/sql_type_families.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/time_precision_resolution.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/tsql_float_bits.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/tsql_float_remainder.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/query/vector_element_kind.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/connector/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/connector/connector_factory_redshift.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/connector/connector_redshift.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/metadata_extractor_redshift.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_insert_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_insert_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_show_columns_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/model/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/model/redshift_credentials_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/query/charset_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/redshift_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/redshift_super_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/redshift/script_writer/script_writer_redshift.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/snowflake_to_result_set_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/result_set/query/query_generator_result_set.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/result_set/result_set_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/script_writer/script_writer_base.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_factory_snowflake.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/metadata_extractor_snowflake.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/_wkt_despace.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_concatenated_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_md5_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_case_sensitive_columns.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_iceberg_format_version.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_temporary_table_from_view_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/l3/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/l3/pushdown_diff_sql.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/l3/signature_external_table.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/l3/warm_start.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/model/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_credentials_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_default_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_named_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/query/charset_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/script_writer/script_writer_snowflake.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/snowflake/snowflake_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/connector/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/connector/connector_factory_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/connector/connector_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/metadata_extractor_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_compute_md5_sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_to_sqlite_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/model/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/model/sqlite_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/query/query_generator_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlite/script_writer/script_writer_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/connector/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_factory_sql_server.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_sql_server.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/metadata_extractor_sqlserver.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_compute_md5_sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_temporary_table_internal_identifier_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_temporary_table_from_view_template.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/model/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/model/sqlserver_credentials_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/query/charset_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/script_writer_sqlserver.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_tz_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_uniqueidentifier_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/table_partitioning_strategy.md +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/connector/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/connector/connector_factory_teradata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/connector/connector_teradata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/metadata_extractor_teradata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_compute_md5_sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_concatenated.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_md5.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/model/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/model/teradata_credentials_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/query/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/script_writer/script_writer_teradata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/teradata_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/teradata/teradata_iso_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/arguments_manager_base.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/arguments_manager_factory.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/base_output_handler.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/catalog_column_size.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/column_grouping.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/configuration_file_editor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/configuration_file_synchronizer.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/connection_pool.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/connector_factory.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/console_output_handler.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/context.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/cpu_optimizer.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/dv_tracing.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/error_classifier.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/helper.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/helpers/helper_database.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/helpers/helper_dataframe.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/helpers/helper_io.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/helpers/helper_misc.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/helpers/helper_polars_cast.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/helpers/helper_query_result.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/helpers/helper_templates.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/index_key_format.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/iso_dv_common.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/lob_source_types.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/logging_config.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/logging_utils.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/measure_collation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/metrics_exclusion.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/model/chunk.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/model/column_metadata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/model/column_selection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/model/custom_templates.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/model/table_column_metadata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/model/templates_loader_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/period_common.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/progress_reporter.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/qvci_fallback.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/row_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/row_validation_lob_exclusion.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/run_context.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/semi_structured_json_canonicalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/shutdown_coordinator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/templates/configuration_file_templates.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/thread_safe_singleton.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/validation_utils.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/vector_common.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/utils/vector_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/accepted_transformation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/cell_data_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/column_pairing.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/dataframe_validator_base.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/lossy_number_mapping.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/metrics_data_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/metrics_tolerance.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/object_type_criterion.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/db2.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/redshift.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/registry.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/sqlserver.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/query_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/result_set_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/results_summary_report.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/row_data_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/row_validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/schema_data_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/validation_database/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/validation_database/sqlite_validation_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/validation_database/validation_database_connection_base.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/validation_database_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/validation_execution_context.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/src/snowflake/snowflake_data_validation/validation/validation_report_status.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/.coveragerc +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/conftest.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/integration/.coveragerc +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/integration/test_reference_integration.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Postgresql/test_postgresql_enum_metadata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Postgresql/test_postgresql_json_cell_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Postgresql/test_postgresql_jsonb_row_hash.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Postgresql/test_postgresql_numeric_leading_zero.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/model/test_redshift_credentials_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/query/test_query_generator_redshift.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/script_writer/test_script_writer_redshift.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_connector_redshift.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_redshift_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_redshift_columns_metadata_template.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_redshift_split_schema_query.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_redshift_super_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Redshift/test_redshift_timetz_sentinel_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_connector_teradata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_metadata_extractor_teradata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_period_varchar_l1.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_columns_metadata_precision_scale.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_table_metadata_float_precision.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_table_metadata_object_type.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_unicode_character_length.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_view_generate_boundary.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/Teradata/test_teradata_view_l1_metadata_templates.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/custom_templates_loader/snowflake_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/custom_templates_loader/snowflake_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/custom_templates_loader/snowflake_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_configuration_loader/test_load_configuration_model/conf.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_configuration_loader/test_load_configuration_model_reading_file_exception/conf.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_helpers/dummy_configuration_file.json +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_helpers/dummy_connection_source_db.toml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_helpers/dummy_datatypes_normalization_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_helpers/dummy_datatypes_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_helpers/dummy_metrics_template.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_helpers/dummy_metrics_template_datatypes.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_helpers/dummy_template.csv +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_helpers/not_valid_format.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_templates_loader_manager/snowflake_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/assets/test_templates_loader_manager/snowflake_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/azure_synapse/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/azure_synapse/test_azure_synapse_credentials_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/azure_synapse/test_azure_synapse_l3_convert_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/azure_synapse/test_azure_synapse_metadata_extractor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/azure_synapse/test_azure_synapse_query_generator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/azure_synapse/test_azure_synapse_row_queries.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/azure_synapse/test_connector_azure_synapse.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/azure_synapse/test_connector_factory_azure_synapse.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/bigquery/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/bigquery/test_bigquery_l1_string_length.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/bigquery/test_query_generator_factory_bigquery.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/conftest.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/db2/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/db2/test_db2_lob_dv_generation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/db2/test_db2_metadata_extractor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/db2/test_db2_registration.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/db2/test_db2_xml_long_dv_generation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_metadata_extractor_oracle_vector.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_configured_index_columns.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_lob_dv_generation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_lob_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_metadata_extractor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_normalization_templates.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_quoted_identifiers.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_type_mappings.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/oracle/test_oracle_xmltype.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/query/test_chunk_md5_tiered.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/query/test_normalization_render_context.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/query/test_template_object_name_bracketing.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/query/test_time_fraction_rendering.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/snowflake/test_snowflake_get_case_sensitive_columns.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/snowflake/test_snowflake_get_iceberg_format_version.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlite/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlite/test_connector_factory_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlite/test_connector_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlite/test_metadata_extractor_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlite/test_metadata_query_template_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlite/test_query_generator_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlite/test_script_writer_sqlite.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_connector_factory_sql_server.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_metadata_extractor_sqlserver_vector.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_datetimeoffset_full_ingest_utc.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_datetimeoffset_metrics_utc.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_datetimeoffset_physical_target.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_l1_catalog.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_l1_character_length.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_l1_character_maximum_length.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_l3_convert_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_row_count_overflow.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_spatial_l1_metadata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/sqlserver/test_sqlserver_uniqueidentifier_l3_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_accepted_transformation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_arguments_manager_base.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_arguments_manager_factory.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_batched_metrics_queries.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_boolean_binary_canonical_templates.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_case_sensitive_column_pairing.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_catalog_column_size.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_catalog_queries_take_actual_names.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_cell_data_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_cell_data_validator_threading.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_cell_validation_query_generation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_column_grouping.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_column_metadata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_column_normalization_override.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_column_selection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_column_selection_actual_names.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_comparison_orchestrator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_configuration_file_editor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_configuration_file_synchronizer.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_configuration_loader.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_configuration_model.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_connection_pool.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_connector_failure_tracker.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_cpu_optimizer.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_custom_templates_models.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_decfloat_l2_min_max.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_decimal_text_canonical.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_dv_tracing.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_empty_query_result_columns.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_error_classifier.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_escape_odbc_value.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_execute_query_internal.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_executor_factory.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_extraction_keeps_catalog_column_spelling.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_fetch_schema_metadata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_float_bit_canonical.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_get_configuration_file.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_get_target_cols.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_hatch_linter_environment.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_helper_dataframe.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_helper_io.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_helper_polars_cast.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_helper_polars_cast_threading.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_helpers.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_html_report_builder.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_index_key_format.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_internal_helpers.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_interval_common.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_iso_dv_common.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_l2_collation_metadata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_l2_count_distinct_opt_in_config.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_logging_config.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_lossy_number_mapping.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_metric_identifier_rendering.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_metrics_exclusion.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_metrics_reshape.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_metrics_result_shape.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_metrics_tolerance.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_normalize_shape_aware.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_numeric_scale_resolution.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_object_type_criterion.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_parallel_execution_engine_fatal_errors.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_period_common.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_platform_bridge.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_postgresql_tz_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_pushdown_diff_sql.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_query_cell_level_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_query_executor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_query_generator_numeric_scale.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_query_metrics_level_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_query_to_dataframe.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_query_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_qvci_fallback.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_qvci_fallback_na_skip.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_qvci_fallback_triggers.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_redshift_iceberg_timestamp_metrics.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_report_metadata.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_result_set_cell_level_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_result_set_column_metrics_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_result_set_snapshot_generation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_result_set_snapshot_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_result_set_to_dataframe.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_result_set_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_row_count_bigint_overflow.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_row_data_validator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_row_data_validator_empty_chunk.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_row_hash_column_delimiter.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_row_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_row_validation_lob_exclusion.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_row_validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_schema_column_selection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_schema_query_capability.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_shutdown_coordinator.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_signature_external_table.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_signature_row_md5_query.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_snapshot_validation_statements.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_snowflake_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_snowflake_binary_normalization_templates.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_snowflake_redshift_super_size_guard.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_source_validation_executor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_sql_catalog_template_guard.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_sql_literal_jinja_filter.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_sqlite_validation_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_sqlserver_arguments_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_sync_executor_qvci_fallback.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_sync_schema_validation_real_callbacks.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_table_column_metadata_model.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_table_configuration.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_table_context.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_table_metadata_processor.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_table_snapshot_generation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_table_snapshot_validation.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_target_platform_factory.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_telemetry.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_templates_loader_manager.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_teradata_iso_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_teradata_timetz_metric_domain.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_teradata_type_code_mapping.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_timestamp_golden_vectors.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_trace_bridge.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_validation_configuration.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_validation_database_connection.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_validation_execution_context.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_validation_progress_reporter.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_validation_report_status.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_validation_templates_dto.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_vector_common.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_vector_normalization.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_view_configuration.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/test_warm_start.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/utils/__init__.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/utils/test_constants.py +0 -0
- {snowflake_data_validation-1.47.0 → snowflake_data_validation-1.48.0}/tests/unit/utils/test_semi_structured_json_canonicalization.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: snowflake-data-validation
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.48.0
|
|
4
4
|
Summary: Snowflake Data Validation
|
|
5
5
|
Project-URL: Bug Tracker, https://github.com/snowflake-eng/migrations-data-validation/issues
|
|
6
6
|
Project-URL: Source code, https://github.com/snowflake-eng/migrations-data-validation/
|
|
@@ -79,7 +79,7 @@ Requires-Dist: psycopg[binary]>=3.2.0; extra == 'postgresql'
|
|
|
79
79
|
Provides-Extra: redshift
|
|
80
80
|
Requires-Dist: redshift-connector>=2.1.14; extra == 'redshift'
|
|
81
81
|
Provides-Extra: scai
|
|
82
|
-
Requires-Dist: snowflake-code-unit-registry>=0.9.
|
|
82
|
+
Requires-Dist: snowflake-code-unit-registry>=0.9.19; extra == 'scai'
|
|
83
83
|
Provides-Extra: sqlite
|
|
84
84
|
Requires-Dist: sqlean-py>=3.45.0; extra == 'sqlite'
|
|
85
85
|
Provides-Extra: sqlserver
|
|
@@ -164,7 +164,7 @@ An integer column mapped to a `NUMBER` with scale 0 is the exception to the prec
|
|
|
164
164
|
|
|
165
165
|
A PostgreSQL user-defined `ENUM` column is validated as `ENUM` against a Snowflake `VARCHAR`. `information_schema` reports every enum as `USER-DEFINED`, so the metadata queries read `pg_type.typtype` to tell enums apart, and report the longest label as the column's length. L2 and L3 compare the label text.
|
|
166
166
|
|
|
167
|
-
Snowflake database, schema and table names may contain a backslash or an apostrophe, for example `NAFMAIN\TUSDB102`. Snowflake reads backslash escapes inside a string literal, so the Snowflake metadata queries (table metadata, column metadata, case-sensitive columns
|
|
167
|
+
Snowflake database, schema and table names may contain a backslash or an apostrophe, for example `NAFMAIN\TUSDB102`. Snowflake reads backslash escapes inside a string literal, so the Snowflake metadata queries (table metadata, column metadata, case-sensitive columns, object-type lookups, and the column list and table list that column partitioning and the configuration generator read through `utils/catalog_literals.py`) write each name through `escape_snowflake_sql_literal` / `quote_snowflake_sql_literal` in `shared/queries/sql_literals.py`, which double backslashes as well as single quotes. Use these helpers, not `escape_sql_literal`, for any name embedded in a Snowflake string literal.
|
|
168
168
|
|
|
169
169
|
### Metrics Validation
|
|
170
170
|
Compares statistical metrics for each column:
|
|
@@ -266,10 +266,37 @@ empty result becomes an empty DataFrame with no columns.
|
|
|
266
266
|
|
|
267
267
|
For configuration options and examples, see the [official documentation](https://docs.snowflake.com/en/migrations/snowconvert-docs/data-validation-cli/CLI_QUICK_REFERENCE).
|
|
268
268
|
|
|
269
|
+
Async validation reads extracted schema and metrics files laid out as described in [Async validation files](../docs/snowflake-data-validation/async-validation-files.md).
|
|
270
|
+
|
|
269
271
|
---
|
|
270
272
|
|
|
271
273
|
## Changelog
|
|
272
274
|
|
|
275
|
+
### v1.48.0
|
|
276
|
+
|
|
277
|
+
**New features**
|
|
278
|
+
|
|
279
|
+
- Added a row checksum gate that validates a large matching table with one aggregate query per side before extracting row signatures.
|
|
280
|
+
- Added support for Snowflake `IPADDRESS` as an opt-in target for PostgreSQL `INET`.
|
|
281
|
+
- Added L1, L2, and L3 validation parity for Oracle Iceberg tables.
|
|
282
|
+
- Added validation of `INTERVAL` and `NUMBER(*)` target encodings.
|
|
283
|
+
- Added a validation config setting that names one `HASH_MD5` UDF for every Teradata source database.
|
|
284
|
+
- Added the adoption row-hash check for partially migrated Snowflake targets.
|
|
285
|
+
|
|
286
|
+
**Improvements**
|
|
287
|
+
|
|
288
|
+
- Improved L2 metrics by dropping the `FLOAT` sum, adding exact sign counts, and aligning the text and binary metric sets.
|
|
289
|
+
- Improved Oracle `SDO_GEOMETRY` validation by comparing the whole WKT by MD5 and keeping the SRID as EWKT on `GEOMETRY` targets.
|
|
290
|
+
|
|
291
|
+
**Bug fixes**
|
|
292
|
+
|
|
293
|
+
- Fixed Snowflake catalog and `SHOW` lookups not doubling backslashes in name literals.
|
|
294
|
+
- Fixed Azure Synapse `VARCHAR` time values not being compared as the text CETAS stored.
|
|
295
|
+
- Fixed `etl-validate` row validation by pairing each target column with its source type.
|
|
296
|
+
- Fixed Oracle dates and timestamps before year 1 losing their sign.
|
|
297
|
+
- Fixed Oracle integer spatial coordinates not being compared as Snowflake writes them.
|
|
298
|
+
- Fixed Teradata L3 false mismatches on non-ASCII values in `LATIN` columns.
|
|
299
|
+
|
|
273
300
|
### v1.47.0
|
|
274
301
|
|
|
275
302
|
**New features**
|
|
@@ -73,7 +73,7 @@ An integer column mapped to a `NUMBER` with scale 0 is the exception to the prec
|
|
|
73
73
|
|
|
74
74
|
A PostgreSQL user-defined `ENUM` column is validated as `ENUM` against a Snowflake `VARCHAR`. `information_schema` reports every enum as `USER-DEFINED`, so the metadata queries read `pg_type.typtype` to tell enums apart, and report the longest label as the column's length. L2 and L3 compare the label text.
|
|
75
75
|
|
|
76
|
-
Snowflake database, schema and table names may contain a backslash or an apostrophe, for example `NAFMAIN\TUSDB102`. Snowflake reads backslash escapes inside a string literal, so the Snowflake metadata queries (table metadata, column metadata, case-sensitive columns
|
|
76
|
+
Snowflake database, schema and table names may contain a backslash or an apostrophe, for example `NAFMAIN\TUSDB102`. Snowflake reads backslash escapes inside a string literal, so the Snowflake metadata queries (table metadata, column metadata, case-sensitive columns, object-type lookups, and the column list and table list that column partitioning and the configuration generator read through `utils/catalog_literals.py`) write each name through `escape_snowflake_sql_literal` / `quote_snowflake_sql_literal` in `shared/queries/sql_literals.py`, which double backslashes as well as single quotes. Use these helpers, not `escape_sql_literal`, for any name embedded in a Snowflake string literal.
|
|
77
77
|
|
|
78
78
|
### Metrics Validation
|
|
79
79
|
Compares statistical metrics for each column:
|
|
@@ -175,10 +175,37 @@ empty result becomes an empty DataFrame with no columns.
|
|
|
175
175
|
|
|
176
176
|
For configuration options and examples, see the [official documentation](https://docs.snowflake.com/en/migrations/snowconvert-docs/data-validation-cli/CLI_QUICK_REFERENCE).
|
|
177
177
|
|
|
178
|
+
Async validation reads extracted schema and metrics files laid out as described in [Async validation files](../docs/snowflake-data-validation/async-validation-files.md).
|
|
179
|
+
|
|
178
180
|
---
|
|
179
181
|
|
|
180
182
|
## Changelog
|
|
181
183
|
|
|
184
|
+
### v1.48.0
|
|
185
|
+
|
|
186
|
+
**New features**
|
|
187
|
+
|
|
188
|
+
- Added a row checksum gate that validates a large matching table with one aggregate query per side before extracting row signatures.
|
|
189
|
+
- Added support for Snowflake `IPADDRESS` as an opt-in target for PostgreSQL `INET`.
|
|
190
|
+
- Added L1, L2, and L3 validation parity for Oracle Iceberg tables.
|
|
191
|
+
- Added validation of `INTERVAL` and `NUMBER(*)` target encodings.
|
|
192
|
+
- Added a validation config setting that names one `HASH_MD5` UDF for every Teradata source database.
|
|
193
|
+
- Added the adoption row-hash check for partially migrated Snowflake targets.
|
|
194
|
+
|
|
195
|
+
**Improvements**
|
|
196
|
+
|
|
197
|
+
- Improved L2 metrics by dropping the `FLOAT` sum, adding exact sign counts, and aligning the text and binary metric sets.
|
|
198
|
+
- Improved Oracle `SDO_GEOMETRY` validation by comparing the whole WKT by MD5 and keeping the SRID as EWKT on `GEOMETRY` targets.
|
|
199
|
+
|
|
200
|
+
**Bug fixes**
|
|
201
|
+
|
|
202
|
+
- Fixed Snowflake catalog and `SHOW` lookups not doubling backslashes in name literals.
|
|
203
|
+
- Fixed Azure Synapse `VARCHAR` time values not being compared as the text CETAS stored.
|
|
204
|
+
- Fixed `etl-validate` row validation by pairing each target column with its source type.
|
|
205
|
+
- Fixed Oracle dates and timestamps before year 1 losing their sign.
|
|
206
|
+
- Fixed Oracle integer spatial coordinates not being compared as Snowflake writes them.
|
|
207
|
+
- Fixed Teradata L3 false mismatches on non-ASCII values in `LATIN` columns.
|
|
208
|
+
|
|
182
209
|
### v1.47.0
|
|
183
210
|
|
|
184
211
|
**New features**
|
|
@@ -106,7 +106,7 @@ db2 = [
|
|
|
106
106
|
# musllinux build, and SDV is published to public PyPI. Inside DMO/DEA the
|
|
107
107
|
# dependency is already declared, so SDV's logger tree is covered there.
|
|
108
108
|
scai = [
|
|
109
|
-
"snowflake-code-unit-registry>=0.9.
|
|
109
|
+
"snowflake-code-unit-registry>=0.9.19",
|
|
110
110
|
]
|
|
111
111
|
|
|
112
112
|
[project.urls]
|
|
@@ -18,27 +18,16 @@ BIGINT:
|
|
|
18
18
|
max:
|
|
19
19
|
metric_query: MAX("{{ col_name }}")
|
|
20
20
|
metric_return_datatype: BIGINT
|
|
21
|
-
count_distinct:
|
|
22
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
23
|
-
metric_return_datatype: INT
|
|
24
21
|
count_null:
|
|
25
22
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
26
23
|
metric_return_datatype: INT
|
|
27
24
|
count_zero:
|
|
28
25
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
29
26
|
metric_return_datatype: INT
|
|
30
|
-
avg:
|
|
31
|
-
metric_query: AVG(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
32
|
-
metric_return_datatype: FLOAT
|
|
33
|
-
metric_column_modifier: "% 2097143"
|
|
34
27
|
sum:
|
|
35
28
|
metric_query: SUM("{{ col_name }}" {{ modifier }})
|
|
36
29
|
metric_return_datatype: BIGINT
|
|
37
30
|
metric_column_modifier: "% 2097143"
|
|
38
|
-
stddev:
|
|
39
|
-
metric_query: STDEVP(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
40
|
-
metric_return_datatype: FLOAT
|
|
41
|
-
metric_column_modifier: "% 2097143"
|
|
42
31
|
|
|
43
32
|
INT:
|
|
44
33
|
min:
|
|
@@ -47,19 +36,12 @@ INT:
|
|
|
47
36
|
max:
|
|
48
37
|
metric_query: MAX("{{ col_name }}")
|
|
49
38
|
metric_return_datatype: INT
|
|
50
|
-
count_distinct:
|
|
51
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
52
|
-
metric_return_datatype: INT
|
|
53
39
|
count_null:
|
|
54
40
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
55
41
|
metric_return_datatype: INT
|
|
56
42
|
count_zero:
|
|
57
43
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
58
44
|
metric_return_datatype: INT
|
|
59
|
-
avg:
|
|
60
|
-
metric_query: AVG(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
61
|
-
metric_return_datatype: FLOAT
|
|
62
|
-
metric_column_modifier: "% 2097143"
|
|
63
45
|
sum:
|
|
64
46
|
metric_query: SUM(CAST("{{ col_name }}" {{ modifier }} AS BIGINT))
|
|
65
47
|
metric_return_datatype: BIGINT
|
|
@@ -69,10 +51,6 @@ INT:
|
|
|
69
51
|
# and spread small (inventory.inv_date_sk: 0-5.5 vs Snowflake 3.5 on identical data).
|
|
70
52
|
# 32-bit values keep n*SUM(x^2) inside DECIMAL(38) even with the modifier off; BIGINT
|
|
71
53
|
# stays on FLOAT STDEVP because raw 64-bit squares would overflow it.
|
|
72
|
-
stddev:
|
|
73
|
-
metric_query: SQRT(CAST(COUNT_BIG("{{ col_name }}") * SUM(CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0)) * CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0))) - SUM(CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0))) * SUM(CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0))) AS FLOAT)) / NULLIF(COUNT_BIG("{{ col_name }}"), 0)
|
|
74
|
-
metric_return_datatype: FLOAT
|
|
75
|
-
metric_column_modifier: "% 2097143"
|
|
76
54
|
|
|
77
55
|
SMALLINT:
|
|
78
56
|
min:
|
|
@@ -81,19 +59,12 @@ SMALLINT:
|
|
|
81
59
|
max:
|
|
82
60
|
metric_query: MAX("{{ col_name }}")
|
|
83
61
|
metric_return_datatype: SMALLINT
|
|
84
|
-
count_distinct:
|
|
85
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
86
|
-
metric_return_datatype: INT
|
|
87
62
|
count_null:
|
|
88
63
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
89
64
|
metric_return_datatype: INT
|
|
90
65
|
count_zero:
|
|
91
66
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
92
67
|
metric_return_datatype: INT
|
|
93
|
-
avg:
|
|
94
|
-
metric_query: AVG(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
95
|
-
metric_return_datatype: FLOAT
|
|
96
|
-
metric_column_modifier: "% 2097143"
|
|
97
68
|
sum:
|
|
98
69
|
metric_query: SUM(CAST("{{ col_name }}" {{ modifier }} AS BIGINT))
|
|
99
70
|
metric_return_datatype: BIGINT
|
|
@@ -103,10 +74,6 @@ SMALLINT:
|
|
|
103
74
|
# and spread small (inventory.inv_date_sk: 0-5.5 vs Snowflake 3.5 on identical data).
|
|
104
75
|
# 32-bit values keep n*SUM(x^2) inside DECIMAL(38) even with the modifier off; BIGINT
|
|
105
76
|
# stays on FLOAT STDEVP because raw 64-bit squares would overflow it.
|
|
106
|
-
stddev:
|
|
107
|
-
metric_query: SQRT(CAST(COUNT_BIG("{{ col_name }}") * SUM(CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0)) * CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0))) - SUM(CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0))) * SUM(CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0))) AS FLOAT)) / NULLIF(COUNT_BIG("{{ col_name }}"), 0)
|
|
108
|
-
metric_return_datatype: FLOAT
|
|
109
|
-
metric_column_modifier: "% 2097143"
|
|
110
77
|
|
|
111
78
|
TINYINT:
|
|
112
79
|
min:
|
|
@@ -115,19 +82,12 @@ TINYINT:
|
|
|
115
82
|
max:
|
|
116
83
|
metric_query: MAX("{{ col_name }}")
|
|
117
84
|
metric_return_datatype: TINYINT
|
|
118
|
-
count_distinct:
|
|
119
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
120
|
-
metric_return_datatype: INT
|
|
121
85
|
count_null:
|
|
122
86
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
123
87
|
metric_return_datatype: INT
|
|
124
88
|
count_zero:
|
|
125
89
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
126
90
|
metric_return_datatype: INT
|
|
127
|
-
avg:
|
|
128
|
-
metric_query: AVG(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
129
|
-
metric_return_datatype: FLOAT
|
|
130
|
-
metric_column_modifier: "% 2097143"
|
|
131
91
|
sum:
|
|
132
92
|
metric_query: SUM(CAST("{{ col_name }}" {{ modifier }} AS BIGINT))
|
|
133
93
|
metric_return_datatype: BIGINT
|
|
@@ -137,10 +97,6 @@ TINYINT:
|
|
|
137
97
|
# and spread small (inventory.inv_date_sk: 0-5.5 vs Snowflake 3.5 on identical data).
|
|
138
98
|
# 32-bit values keep n*SUM(x^2) inside DECIMAL(38) even with the modifier off; BIGINT
|
|
139
99
|
# stays on FLOAT STDEVP because raw 64-bit squares would overflow it.
|
|
140
|
-
stddev:
|
|
141
|
-
metric_query: SQRT(CAST(COUNT_BIG("{{ col_name }}") * SUM(CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0)) * CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0))) - SUM(CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0))) * SUM(CAST("{{ col_name }}" {{ modifier }} AS DECIMAL(38, 0))) AS FLOAT)) / NULLIF(COUNT_BIG("{{ col_name }}"), 0)
|
|
142
|
-
metric_return_datatype: FLOAT
|
|
143
|
-
metric_column_modifier: "% 2097143"
|
|
144
100
|
|
|
145
101
|
DECIMAL:
|
|
146
102
|
min:
|
|
@@ -149,27 +105,16 @@ DECIMAL:
|
|
|
149
105
|
max:
|
|
150
106
|
metric_query: MAX("{{ col_name }}")
|
|
151
107
|
metric_return_datatype: DECIMAL
|
|
152
|
-
count_distinct:
|
|
153
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
154
|
-
metric_return_datatype: INT
|
|
155
108
|
count_null:
|
|
156
109
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
157
110
|
metric_return_datatype: INT
|
|
158
111
|
count_zero:
|
|
159
112
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
160
113
|
metric_return_datatype: INT
|
|
161
|
-
avg:
|
|
162
|
-
metric_query: AVG(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
163
|
-
metric_return_datatype: FLOAT
|
|
164
|
-
metric_column_modifier: "% 2097143"
|
|
165
114
|
sum:
|
|
166
115
|
metric_query: SUM("{{ col_name }}" {{ modifier }})
|
|
167
116
|
metric_return_datatype: DECIMAL
|
|
168
117
|
metric_column_modifier: "% 2097143"
|
|
169
|
-
stddev:
|
|
170
|
-
metric_query: STDEVP(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
171
|
-
metric_return_datatype: FLOAT
|
|
172
|
-
metric_column_modifier: "% 2097143"
|
|
173
118
|
|
|
174
119
|
NUMERIC:
|
|
175
120
|
min:
|
|
@@ -178,27 +123,16 @@ NUMERIC:
|
|
|
178
123
|
max:
|
|
179
124
|
metric_query: MAX("{{ col_name }}")
|
|
180
125
|
metric_return_datatype: NUMERIC
|
|
181
|
-
count_distinct:
|
|
182
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
183
|
-
metric_return_datatype: INT
|
|
184
126
|
count_null:
|
|
185
127
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
186
128
|
metric_return_datatype: INT
|
|
187
129
|
count_zero:
|
|
188
130
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
189
131
|
metric_return_datatype: INT
|
|
190
|
-
avg:
|
|
191
|
-
metric_query: AVG(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
192
|
-
metric_return_datatype: FLOAT
|
|
193
|
-
metric_column_modifier: "% 2097143"
|
|
194
132
|
sum:
|
|
195
133
|
metric_query: SUM("{{ col_name }}" {{ modifier }})
|
|
196
134
|
metric_return_datatype: NUMERIC
|
|
197
135
|
metric_column_modifier: "% 2097143"
|
|
198
|
-
stddev:
|
|
199
|
-
metric_query: STDEVP(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
200
|
-
metric_return_datatype: FLOAT
|
|
201
|
-
metric_column_modifier: "% 2097143"
|
|
202
136
|
|
|
203
137
|
MONEY:
|
|
204
138
|
min:
|
|
@@ -207,27 +141,16 @@ MONEY:
|
|
|
207
141
|
max:
|
|
208
142
|
metric_query: MAX("{{ col_name }}")
|
|
209
143
|
metric_return_datatype: MONEY
|
|
210
|
-
count_distinct:
|
|
211
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
212
|
-
metric_return_datatype: INT
|
|
213
144
|
count_null:
|
|
214
145
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
215
146
|
metric_return_datatype: INT
|
|
216
147
|
count_zero:
|
|
217
148
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
218
149
|
metric_return_datatype: INT
|
|
219
|
-
avg:
|
|
220
|
-
metric_query: AVG(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
221
|
-
metric_return_datatype: FLOAT
|
|
222
|
-
metric_column_modifier: "% 2097143"
|
|
223
150
|
sum:
|
|
224
151
|
metric_query: SUM("{{ col_name }}" {{ modifier }})
|
|
225
152
|
metric_return_datatype: MONEY
|
|
226
153
|
metric_column_modifier: "% 2097143"
|
|
227
|
-
stddev:
|
|
228
|
-
metric_query: STDEVP(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
229
|
-
metric_return_datatype: FLOAT
|
|
230
|
-
metric_column_modifier: "% 2097143"
|
|
231
154
|
|
|
232
155
|
SMALLMONEY:
|
|
233
156
|
min:
|
|
@@ -236,31 +159,17 @@ SMALLMONEY:
|
|
|
236
159
|
max:
|
|
237
160
|
metric_query: MAX("{{ col_name }}")
|
|
238
161
|
metric_return_datatype: SMALLMONEY
|
|
239
|
-
count_distinct:
|
|
240
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
241
|
-
metric_return_datatype: INT
|
|
242
162
|
count_null:
|
|
243
163
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
244
164
|
metric_return_datatype: INT
|
|
245
165
|
count_zero:
|
|
246
166
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
247
167
|
metric_return_datatype: INT
|
|
248
|
-
avg:
|
|
249
|
-
metric_query: AVG(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
250
|
-
metric_return_datatype: FLOAT
|
|
251
|
-
metric_column_modifier: "% 2097143"
|
|
252
168
|
sum:
|
|
253
169
|
metric_query: SUM("{{ col_name }}" {{ modifier }})
|
|
254
170
|
metric_return_datatype: SMALLMONEY
|
|
255
171
|
metric_column_modifier: "% 2097143"
|
|
256
|
-
stddev:
|
|
257
|
-
metric_query: STDEVP(CAST("{{ col_name }}" {{ modifier }} AS FLOAT))
|
|
258
|
-
metric_return_datatype: FLOAT
|
|
259
|
-
metric_column_modifier: "% 2097143"
|
|
260
172
|
|
|
261
|
-
# avg/sum/stddev aggregate the binary64 value, as Snowflake aggregates its FLOAT
|
|
262
|
-
# (SNOW-4314808); REAL widens exactly. T-SQL has no FLOAT %, so the generator
|
|
263
|
-
# renders {{ modifier }} on this operand as Snowflake's float remainder (tsql_float_remainder.py).
|
|
264
173
|
FLOAT:
|
|
265
174
|
min:
|
|
266
175
|
metric_query: MIN("{{ col_name }}")
|
|
@@ -268,29 +177,18 @@ FLOAT:
|
|
|
268
177
|
max:
|
|
269
178
|
metric_query: MAX("{{ col_name }}")
|
|
270
179
|
metric_return_datatype: FLOAT
|
|
271
|
-
count_distinct:
|
|
272
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
273
|
-
metric_return_datatype: INT
|
|
274
180
|
count_null:
|
|
275
181
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
276
182
|
metric_return_datatype: INT
|
|
183
|
+
count_positive:
|
|
184
|
+
metric_query: SUM(CASE WHEN "{{ col_name }}" > 0 AND "{{ col_name }}" = "{{ col_name }}" THEN 1 ELSE 0 END)
|
|
185
|
+
metric_return_datatype: INT
|
|
186
|
+
count_negative:
|
|
187
|
+
metric_query: SUM(CASE WHEN "{{ col_name }}" < 0 AND "{{ col_name }}" = "{{ col_name }}" THEN 1 ELSE 0 END)
|
|
188
|
+
metric_return_datatype: INT
|
|
277
189
|
count_zero:
|
|
278
190
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
279
191
|
metric_return_datatype: INT
|
|
280
|
-
avg:
|
|
281
|
-
metric_query: AVG(CAST("{{ col_name }}" AS FLOAT) {{ modifier }})
|
|
282
|
-
metric_return_datatype: FLOAT
|
|
283
|
-
metric_column_modifier: "% 2097143"
|
|
284
|
-
sum:
|
|
285
|
-
metric_query: SUM(CAST("{{ col_name }}" AS FLOAT) {{ modifier }})
|
|
286
|
-
metric_return_datatype: FLOAT
|
|
287
|
-
metric_column_modifier: "% 2097143"
|
|
288
|
-
stddev:
|
|
289
|
-
metric_query: STDEVP(CAST("{{ col_name }}" AS FLOAT) {{ modifier }})
|
|
290
|
-
metric_return_datatype: FLOAT
|
|
291
|
-
metric_column_modifier: "% 2097143"
|
|
292
|
-
|
|
293
|
-
# avg/sum/stddev widen to binary64, as FLOAT's do (SNOW-4314808).
|
|
294
192
|
REAL:
|
|
295
193
|
min:
|
|
296
194
|
metric_query: MIN("{{ col_name }}")
|
|
@@ -298,29 +196,18 @@ REAL:
|
|
|
298
196
|
max:
|
|
299
197
|
metric_query: MAX("{{ col_name }}")
|
|
300
198
|
metric_return_datatype: REAL
|
|
301
|
-
count_distinct:
|
|
302
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
303
|
-
metric_return_datatype: INT
|
|
304
199
|
count_null:
|
|
305
200
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
306
201
|
metric_return_datatype: INT
|
|
202
|
+
count_positive:
|
|
203
|
+
metric_query: SUM(CASE WHEN "{{ col_name }}" > 0 AND "{{ col_name }}" = "{{ col_name }}" THEN 1 ELSE 0 END)
|
|
204
|
+
metric_return_datatype: INT
|
|
205
|
+
count_negative:
|
|
206
|
+
metric_query: SUM(CASE WHEN "{{ col_name }}" < 0 AND "{{ col_name }}" = "{{ col_name }}" THEN 1 ELSE 0 END)
|
|
207
|
+
metric_return_datatype: INT
|
|
307
208
|
count_zero:
|
|
308
209
|
metric_query: SUM(CASE WHEN "{{ col_name }}" = 0 THEN 1 ELSE 0 END)
|
|
309
210
|
metric_return_datatype: INT
|
|
310
|
-
avg:
|
|
311
|
-
metric_query: AVG(CAST("{{ col_name }}" AS FLOAT) {{ modifier }})
|
|
312
|
-
metric_return_datatype: FLOAT
|
|
313
|
-
metric_column_modifier: "% 2097143"
|
|
314
|
-
sum:
|
|
315
|
-
metric_query: SUM(CAST("{{ col_name }}" AS FLOAT) {{ modifier }})
|
|
316
|
-
metric_return_datatype: REAL
|
|
317
|
-
metric_column_modifier: "% 2097143"
|
|
318
|
-
stddev:
|
|
319
|
-
metric_query: STDEVP(CAST("{{ col_name }}" AS FLOAT) {{ modifier }})
|
|
320
|
-
metric_return_datatype: FLOAT
|
|
321
|
-
metric_column_modifier: "% 2097143"
|
|
322
|
-
|
|
323
|
-
# ---- Boolean type ----
|
|
324
211
|
|
|
325
212
|
BIT:
|
|
326
213
|
count_true:
|
|
@@ -346,40 +233,33 @@ CHAR:
|
|
|
346
233
|
count_empty:
|
|
347
234
|
metric_query: SUM(CASE WHEN LEN(RTRIM("{{ col_name }}")) = 0 THEN 1 ELSE 0 END)
|
|
348
235
|
metric_return_datatype: INT
|
|
349
|
-
count_distinct:
|
|
350
|
-
metric_query: COUNT(DISTINCT {{ measure_collation_prefix }}RTRIM("{{ col_name }}"){{ measure_collation_suffix }})
|
|
351
|
-
metric_return_datatype: INT
|
|
352
236
|
count_null:
|
|
353
237
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
354
238
|
metric_return_datatype: INT
|
|
355
|
-
|
|
356
|
-
metric_query:
|
|
239
|
+
sum:
|
|
240
|
+
metric_query: SUM(CAST(LEN(RTRIM("{{ col_name }}")) AS FLOAT))
|
|
357
241
|
metric_return_datatype: FLOAT
|
|
358
|
-
metric_column_modifier: "% 2097143"
|
|
359
242
|
|
|
360
243
|
VARCHAR:
|
|
361
244
|
# Characters, trailing spaces trimmed (SNOW-4292391, as SQL Server's SNOW-4283493).
|
|
362
245
|
# DATALENGTH counted bytes, so 'É' under a UTF-8 collation was 2 against Snowflake's 1.
|
|
363
246
|
# LEN ignores trailing spaces and the Snowflake side RTRIMs, so 'abc ' is 3 and ' '
|
|
364
|
-
# is empty on both sides.
|
|
247
|
+
# is empty on both sides.
|
|
365
248
|
min:
|
|
366
249
|
metric_query: MIN(LEN("{{ col_name }}"))
|
|
367
250
|
metric_return_datatype: INT
|
|
368
251
|
max:
|
|
369
252
|
metric_query: MAX(LEN("{{ col_name }}"))
|
|
370
253
|
metric_return_datatype: INT
|
|
371
|
-
avg:
|
|
372
|
-
metric_query: AVG(CAST(LEN("{{ col_name }}") AS FLOAT))
|
|
373
|
-
metric_return_datatype: FLOAT
|
|
374
254
|
count_empty:
|
|
375
255
|
metric_query: SUM(CASE WHEN LEN("{{ col_name }}") = 0 THEN 1 ELSE 0 END)
|
|
376
256
|
metric_return_datatype: INT
|
|
377
|
-
count_distinct:
|
|
378
|
-
metric_query: COUNT(DISTINCT {{ measure_collation_prefix }}CAST('|' + "{{ col_name }}" + '|' AS VARCHAR(MAX)){{ measure_collation_suffix }})
|
|
379
|
-
metric_return_datatype: INT
|
|
380
257
|
count_null:
|
|
381
258
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
382
259
|
metric_return_datatype: INT
|
|
260
|
+
sum:
|
|
261
|
+
metric_query: SUM(CAST(LEN("{{ col_name }}") AS FLOAT))
|
|
262
|
+
metric_return_datatype: FLOAT
|
|
383
263
|
|
|
384
264
|
NCHAR:
|
|
385
265
|
min:
|
|
@@ -388,18 +268,15 @@ NCHAR:
|
|
|
388
268
|
max:
|
|
389
269
|
metric_query: MAX(LEN(RTRIM("{{ col_name }}")))
|
|
390
270
|
metric_return_datatype: INT
|
|
391
|
-
avg:
|
|
392
|
-
metric_query: AVG(CAST(LEN(RTRIM("{{ col_name }}")) AS FLOAT))
|
|
393
|
-
metric_return_datatype: FLOAT
|
|
394
271
|
count_empty:
|
|
395
272
|
metric_query: SUM(CASE WHEN LEN(RTRIM("{{ col_name }}")) = 0 THEN 1 ELSE 0 END)
|
|
396
273
|
metric_return_datatype: INT
|
|
397
|
-
count_distinct:
|
|
398
|
-
metric_query: COUNT(DISTINCT {{ measure_collation_prefix }}RTRIM("{{ col_name }}"){{ measure_collation_suffix }})
|
|
399
|
-
metric_return_datatype: INT
|
|
400
274
|
count_null:
|
|
401
275
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
402
276
|
metric_return_datatype: INT
|
|
277
|
+
sum:
|
|
278
|
+
metric_query: SUM(CAST(LEN(RTRIM("{{ col_name }}")) AS FLOAT))
|
|
279
|
+
metric_return_datatype: FLOAT
|
|
403
280
|
|
|
404
281
|
NVARCHAR:
|
|
405
282
|
# As VARCHAR above (SNOW-4292391). count_empty uses the same LEN, so ' ' is empty
|
|
@@ -411,18 +288,15 @@ NVARCHAR:
|
|
|
411
288
|
max:
|
|
412
289
|
metric_query: MAX(LEN("{{ col_name }}"))
|
|
413
290
|
metric_return_datatype: INT
|
|
414
|
-
avg:
|
|
415
|
-
metric_query: AVG(CAST(LEN("{{ col_name }}") AS FLOAT))
|
|
416
|
-
metric_return_datatype: FLOAT
|
|
417
291
|
count_empty:
|
|
418
292
|
metric_query: SUM(CASE WHEN LEN("{{ col_name }}") = 0 THEN 1 ELSE 0 END)
|
|
419
293
|
metric_return_datatype: INT
|
|
420
|
-
count_distinct:
|
|
421
|
-
metric_query: COUNT(DISTINCT {{ measure_collation_prefix }}CAST(N'|' + CAST("{{ col_name }}" AS NVARCHAR(MAX)) + N'|' AS NVARCHAR(MAX)){{ measure_collation_suffix }})
|
|
422
|
-
metric_return_datatype: INT
|
|
423
294
|
count_null:
|
|
424
295
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
425
296
|
metric_return_datatype: INT
|
|
297
|
+
sum:
|
|
298
|
+
metric_query: SUM(CAST(LEN("{{ col_name }}") AS FLOAT))
|
|
299
|
+
metric_return_datatype: FLOAT
|
|
426
300
|
|
|
427
301
|
# ---- Date / Time types ----
|
|
428
302
|
|
|
@@ -517,9 +391,6 @@ VARBINARY:
|
|
|
517
391
|
# ---- Other types ----
|
|
518
392
|
|
|
519
393
|
UNIQUEIDENTIFIER:
|
|
520
|
-
count_distinct:
|
|
521
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
522
|
-
metric_return_datatype: INT
|
|
523
394
|
count_null:
|
|
524
395
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
525
396
|
metric_return_datatype: INT
|
|
@@ -527,9 +398,6 @@ UNIQUEIDENTIFIER:
|
|
|
527
398
|
# ---- Default fallback ----
|
|
528
399
|
|
|
529
400
|
DEFAULT:
|
|
530
|
-
count_distinct:
|
|
531
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
532
|
-
metric_return_datatype: INT
|
|
533
401
|
count_null:
|
|
534
402
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
535
403
|
metric_return_datatype: INT
|
|
@@ -55,6 +55,9 @@ TIME: LEFT(SUBSTRING(CONVERT(VARCHAR(27), CAST("{{ col_name }}" AS DATETIME2(7))
|
|
|
55
55
|
# Iceberg compatible TIME stored as VARCHAR (CETAS): the extract's own text, TIME(7)
|
|
56
56
|
# widened then '00', nine digits whatever the scale. '+' keeps NULL as NULL.
|
|
57
57
|
TIME_ICEBERG: CAST(CAST("{{ col_name }}" AS TIME(7)) AS VARCHAR(16)) + '00'
|
|
58
|
+
# CETAS text. Seven digits, not the six-digit DATETIME2 / DATETIMEOFFSET lines below.
|
|
59
|
+
DATETIME2_ICEBERG: STUFF(CONVERT(VARCHAR(27), CAST("{{ col_name }}" AS DATETIME2(7)), 121), 11, 1, 'T') + '00'
|
|
60
|
+
DATETIMEOFFSET_ICEBERG: STUFF(CONVERT(VARCHAR(27), CAST("{{ col_name }}" AS DATETIME2(7)), 121), 11, 1, 'T') + '00' + DATENAME(TZOFFSET, "{{ col_name }}")
|
|
58
61
|
DATETIME: STUFF(CONVERT(VARCHAR(27), CAST(CAST("{{ col_name }}" AS DATETIME2(3)) AS DATETIME2(7)), 121), 11, 1, 'T') + '00'
|
|
59
62
|
DATETIME2: LEFT(STUFF(CONVERT(VARCHAR(27), CAST("{{ col_name }}" AS DATETIME2(7)), 121), 11, 1, 'T'), 26) + '000'
|
|
60
63
|
SMALLDATETIME: CONVERT(VARCHAR(19), "{{ col_name }}", 126) + '.000000000'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{% import 'query_modifiers.sql.j2' as qm with context %}
|
|
2
2
|
{{ qm.locking_prefix(query_modifiers) }}
|
|
3
3
|
WITH rc_cte AS (
|
|
4
|
-
SELECT COUNT_BIG(*) AS ROW_COUNT {{ qm.render_from_clause(query_modifiers, fully_qualified_name) }} {% if has_where_clause %} WHERE {{ where_clause }} {% endif %}
|
|
4
|
+
{% if omit_row_count %}SELECT CAST(0 AS BIGINT) AS ROW_COUNT{% else %}SELECT COUNT_BIG(*) AS ROW_COUNT {{ qm.render_from_clause(query_modifiers, fully_qualified_name) }} {% if has_where_clause %} WHERE {{ where_clause }} {% endif %}{% endif %}
|
|
5
5
|
)
|
|
6
6
|
SELECT
|
|
7
7
|
C.COLUMN_NAME AS COLUMN_VALIDATED,
|
|
@@ -40,6 +40,7 @@ from snowflake.snowflake_data_validation.query.numeric_scale_resolution import (
|
|
|
40
40
|
from snowflake.snowflake_data_validation.query.query_generator_base import (
|
|
41
41
|
QueryGeneratorBase,
|
|
42
42
|
resolve_table_context_modifiers,
|
|
43
|
+
tsql_unsigned_hex_slice_sql,
|
|
43
44
|
)
|
|
44
45
|
from snowflake.snowflake_data_validation.query.tsql_float_bits import (
|
|
45
46
|
build_tsql_float_bit_canonical_expr,
|
|
@@ -96,6 +97,10 @@ class QueryGeneratorAzureSynapse(TsqlFloatMetricModifierMixin, QueryGeneratorBas
|
|
|
96
97
|
character_set_resolver=SqlServerCharacterSetResolver(),
|
|
97
98
|
)
|
|
98
99
|
|
|
100
|
+
def unsigned_hex_slice_sql(self, column: str, start: int, length: int = 8) -> str | None:
|
|
101
|
+
"""Read hex characters of *column* as an unsigned integer."""
|
|
102
|
+
return tsql_unsigned_hex_slice_sql(column, start, length)
|
|
103
|
+
|
|
99
104
|
def _measure_collation_tokens(self, column, metric_name: str) -> tuple[str, str]:
|
|
100
105
|
return tsql_measure_collation_tokens(
|
|
101
106
|
Platform.AZURE_SYNAPSE,
|