snowflake-data-validation 1.3.2__tar.gz → 1.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/.gitignore +1 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/PKG-INFO +5 -3
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/pyproject.toml +4 -2
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/__init__.py +14 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/__version__.py +1 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/model/validation_configuration.py +10 -5
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/executer/async_generation_executor.py +255 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/executer/async_validation_executor.py +84 -137
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/executer/base_validation_executor.py +12 -6
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/executer/executor_factory.py +0 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/executer/source_validation_executor.py +23 -11
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/executer/sync_validation_executor.py +327 -180
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/extractor/metadata_extractor_base.py +0 -98
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/orchestration/parallel_execution_engine.py +7 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/orchestration/table_metadata_processor.py +326 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/orchestration/view_preprocessor.py +137 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/DATA_VALIDATION_API_OVERVIEW.md +162 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/__init__.py +212 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/_internal.py +226 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/configuration/__init__.py +32 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/connectors/__init__.py +105 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/context/__init__.py +28 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/data_validation_api.py +1290 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/enums/__init__.py +34 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/generators/__init__.py +28 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/metadata/__init__.py +32 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/model/__init__.py +40 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/model/data_validation_exception.py +60 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/model/generated_query.py +32 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/model/query_execution_result.py +37 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/model/query_generator_factory.py +47 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/public/model/validation_result.py +37 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/query/query_generator_base.py +15 -18
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/metadata_extractor_redshift.py +1 -19
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/redshift_cte_generator.py +3 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/script_writer/script_writer_base.py +2 -2
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/metadata_extractor_snowflake.py +1 -20
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/snowflake_cte_generator.py +1 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/script_writer/script_writer_snowflake.py +1 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_factory_sql_server.py +11 -3
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_sql_server.py +147 -52
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/metadata_extractor_sqlserver.py +1 -19
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/sqlserver_cte_generator.py +3 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_column_metrics_templates.yaml +10 -10
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/model/sqlserver_credentials_connection.py +34 -17
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/script_writer_sqlserver.py +1 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/metadata_extractor_teradata.py +1 -19
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/teradata_cte_generator.py +3 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/constants.py +21 -0
- snowflake_data_validation-1.3.3/src/snowflake/snowflake_data_validation/validation/cell_data_validator.py +93 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/data_validator_base.py +51 -99
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/metrics_data_validator.py +3 -14
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/schema_data_validator.py +6 -15
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/integration/test_async_generation_integration.py +1 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Teradata/test_metadata_extractor_teradata.py +0 -1
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Teradata/test_query_generator_teradata.py +1 -4
- snowflake_data_validation-1.3.3/tests/unit/test_cell_data_validator.py +121 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_configuration_loader.py +4 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_configuration_model.py +6 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_data_validator.py +30 -54
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_source_validation_executor.py +41 -36
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_sqlserver_multi_version_support.py +335 -40
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_table_configuration.py +3 -0
- snowflake_data_validation-1.3.3/tests/unit/test_table_metadata_processor.py +722 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_validation_configuration.py +5 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_view_configuration.py +3 -0
- snowflake_data_validation-1.3.2/src/snowflake/snowflake_data_validation/executer/async_generation_executor.py +0 -166
- snowflake_data_validation-1.3.2/src/snowflake/snowflake_data_validation/orchestration/table_metadata_processor.py +0 -514
- snowflake_data_validation-1.3.2/src/snowflake/snowflake_data_validation/orchestration/view_preprocessor.py +0 -59
- snowflake_data_validation-1.3.2/tests/unit/test_table_metadata_processor.py +0 -506
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/LICENSE +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/README.md +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/__main__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/common_cli/cli_partitioning.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/common_cli/cli_sync_validation.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/comparison_orchestrator.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/configuration_loader.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/model/configuration_model.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/model/connection_types.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/model/connections/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/model/logging_configuration.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/model/table_configuration.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/model/view_configuration.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/configuration/singleton.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/connector/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/connector/connector_base.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/connector/connector_factory_base.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/connector/connector_failure_tracker.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/executer/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/executer/extractor_types.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/extractor/sql_queries_template_generator.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/main_cli.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/orchestration/console_progress_reporter.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/orchestration/html_report/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/orchestration/html_report/html_report_builder.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/orchestration/html_report/report_metadata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/orchestration/validation_progress_reporter.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/query/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/connector/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/connector/connector_factory_redshift.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/connector/connector_redshift.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_insert_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_insert_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunks_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_columns_cte_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_extract_chunks_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_insert_chunk_row_md5_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/model/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/model/redshift_credentials_connection.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/query/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/query/query_generator_redshift.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/redshift_arguments_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/redshift_cli.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/redshift/script_writer/script_writer_redshift.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_factory_snowflake.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_snowflake.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_concatenated_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_md5_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunks_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_columns_cte_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_extract_chunks_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_case_sensitive_columns.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_insert_chunk_row_md5_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_temporary_table_from_view_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/model/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_credentials_connection.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_default_connection.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_named_connection.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/query/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/query/query_generator_snowflake.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/snowflake_arguments_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/snowflake/snowflake_cli.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/connector/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_chunks_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_columns_cte_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_compute_md5_sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_extract_chunks_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_temporary_table_internal_identifier_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_temporary_table_from_view_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/model/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/query/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/query/query_generator_sqlserver.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_arguments_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_cli.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/table_partitioning_strategy.md +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/connector/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/connector/connector_factory_teradata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/connector/connector_teradata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_chunks_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_columns_cte_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_compute_md5_sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_concatenated.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_md5.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_extract_chunks_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/model/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/model/teradata_credentials_connection.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/query/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/query/query_generator_teradata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/script_writer/script_writer_teradata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/teradata_arguments_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/teradata/teradata_cli.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/arguments_manager_base.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/arguments_manager_factory.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/base_output_handler.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/column_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/configuration_file_editor.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/configuration_file_generator.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/configuration_file_synchronizer.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/connection_pool.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/connector_factory.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/console_output_handler.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/context.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/cpu_optimizer.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/helper.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/helpers/helper_database.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/helpers/helper_dataframe.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/helpers/helper_io.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/helpers/helper_misc.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/helpers/helper_query_result.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/helpers/helper_templates.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/logging_config.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/logging_utils.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/model/chunk.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/model/column_metadata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/model/table_column_metadata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/model/table_context.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/model/templates_loader_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/progress_reporter.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/row_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/run_context.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/telemetry.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/templates/configuration_file_templates.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/thread_safe_singleton.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/utils/validation_utils.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/results_summary_report.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/row_data_validator.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/row_validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/validation_database/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/validation_database/sqlite_validation_connection.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/validation_database/validation_database_connection_base.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/validation_database_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/validation_execution_context.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/src/snowflake/snowflake_data_validation/validation/validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/.coveragerc +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/integration/.coveragerc +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/integration/Redshift/test_metadata_extractor_integration.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/integration/test_async_validation_integration.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/integration/test_reference_integration.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/integration/test_source_validation_integration.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/integration/test_sync_validation_integration.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/cli/test_redshift_cli_general.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/cli/test_redshift_cli_generate_validation_scripts.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/cli/test_redshift_cli_get_configuration_files.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/cli/test_redshift_cli_run_async_validation.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/cli/test_redshift_cli_run_validation.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/cli/test_redshift_cli_run_validation_ipc.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/model/test_redshift_credentials_connection.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/query/test_query_generator_redshift.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/script_writer/test_script_writer_redshift.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/test_connector_redshift.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/test_redshift_arguments_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/test_redshift_cte_generator.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Redshift/test_redshift_metrics_templates.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Teradata/test_connector_teradata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Teradata/test_teradata_cli.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/Teradata/test_teradata_metrics_validation.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/custom_templates_loader/snowflake_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/custom_templates_loader/snowflake_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/custom_templates_loader/snowflake_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_configuration_loader/test_load_configuration_model/conf.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_configuration_loader/test_load_configuration_model_reading_file_exception/conf.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_helpers/dummy_configuration_file.json +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_helpers/dummy_connection_source_db.toml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_helpers/dummy_datatypes_normalization_template.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_helpers/dummy_datatypes_template.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_helpers/dummy_metrics_template.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_helpers/dummy_metrics_template_datatypes.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_helpers/dummy_template.csv +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_helpers/not_valid_format.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_templates_loader_manager/snowflake_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/assets/test_templates_loader_manager/snowflake_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_arguments_manager_base.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_arguments_manager_factory.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_column_metadata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_column_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_comparison_orchestrator.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_configuration_file_editor.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_configuration_file_synchronizer.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_connection_pool.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_connector_failure_tracker.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_connector_snowflake.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_console_progress_reporter.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_cpu_optimizer.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_executor_factory.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_helper_dataframe.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_helpers.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_html_report_builder.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_logging_config.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_metrics_templates.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_report_metadata.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_row_data_validator.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_row_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_row_validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_snowflake_arguments_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_snowflake_cli.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_sqlite_validation_connection.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_sqlserver_arguments_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_sqlserver_cli.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_table_column_metadata_model.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_table_context.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_telemetry.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_templates_loader_manager.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_validation_database_connection.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_validation_execution_context.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_validation_progress_reporter.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/test_validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/utils/__init__.py +0 -0
- {snowflake_data_validation-1.3.2 → snowflake_data_validation-1.3.3}/tests/unit/utils/test_constants.py +0 -0
|
@@ -104,7 +104,7 @@ ipython_config.py
|
|
|
104
104
|
# pyenv
|
|
105
105
|
# For a library or package, you might want to ignore these files since the code is
|
|
106
106
|
# intended to run in multiple environments; otherwise, check them in:
|
|
107
|
-
|
|
107
|
+
.python-version
|
|
108
108
|
|
|
109
109
|
# pipenv
|
|
110
110
|
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowflake-data-validation
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.3
|
|
4
4
|
Summary: Snowflake Data Validation
|
|
5
|
-
Project-URL: Bug Tracker, https://github.com/
|
|
6
|
-
Project-URL: Source code, https://github.com/
|
|
5
|
+
Project-URL: Bug Tracker, https://github.com/snowflake-eng/migrations-data-validation/issues
|
|
6
|
+
Project-URL: Source code, https://github.com/snowflake-eng/migrations-data-validation/
|
|
7
7
|
Author-email: "Snowflake, Inc." <snowflake-python-libraries-dl@snowflake.com>
|
|
8
8
|
License: Snowflake Conversion Software Terms
|
|
9
9
|
License-File: LICENSE
|
|
@@ -30,9 +30,11 @@ Requires-Dist: cryptography>=3.4.0
|
|
|
30
30
|
Requires-Dist: deepdiff>=8.0.0
|
|
31
31
|
Requires-Dist: jinja2>=3.1.6
|
|
32
32
|
Requires-Dist: pandas>=2.2.3
|
|
33
|
+
Requires-Dist: polars>=1.0.0
|
|
33
34
|
Requires-Dist: pyarrow>=14.0.0
|
|
34
35
|
Requires-Dist: pydantic-yaml>=1.4.0
|
|
35
36
|
Requires-Dist: pydantic>=2.0
|
|
37
|
+
Requires-Dist: pyyaml>=6.0
|
|
36
38
|
Requires-Dist: ruamel-yaml>=0.18.0
|
|
37
39
|
Requires-Dist: snowflake-connector-python>=4.0.0
|
|
38
40
|
Requires-Dist: toml>=0.10.2
|
|
@@ -30,7 +30,9 @@ dependencies = [
|
|
|
30
30
|
"deepdiff>=8.0.0",
|
|
31
31
|
"snowflake-connector-python>=4.0.0",
|
|
32
32
|
"pandas>=2.2.3",
|
|
33
|
+
"polars>=1.0.0",
|
|
33
34
|
"pyarrow>=14.0.0",
|
|
35
|
+
"PyYAML>=6.0",
|
|
34
36
|
"ruamel.yaml>=0.18.0",
|
|
35
37
|
"toml>=0.10.2",
|
|
36
38
|
"jinja2>=3.1.6",
|
|
@@ -85,8 +87,8 @@ redshift = [
|
|
|
85
87
|
]
|
|
86
88
|
|
|
87
89
|
[project.urls]
|
|
88
|
-
"Bug Tracker" = "https://github.com/
|
|
89
|
-
"Source code" = "https://github.com/
|
|
90
|
+
"Bug Tracker" = "https://github.com/snowflake-eng/migrations-data-validation/issues"
|
|
91
|
+
"Source code" = "https://github.com/snowflake-eng/migrations-data-validation/"
|
|
90
92
|
|
|
91
93
|
[tool.hatch.version]
|
|
92
94
|
path = "src/snowflake/snowflake_data_validation/__version__.py"
|
|
@@ -34,6 +34,10 @@ Main Components
|
|
|
34
34
|
ComparisonOrchestrator
|
|
35
35
|
Main class for orchestrating data comparisons between source and target systems
|
|
36
36
|
|
|
37
|
+
public
|
|
38
|
+
Library API module providing decoupled validation steps (query generation,
|
|
39
|
+
execution, validation) that can be called independently
|
|
40
|
+
|
|
37
41
|
CLI Interface
|
|
38
42
|
Command-line interface available via `main_cli` module for:
|
|
39
43
|
- Setting up database connections
|
|
@@ -47,7 +51,7 @@ Supported Dialects
|
|
|
47
51
|
|
|
48
52
|
Example Usage
|
|
49
53
|
-------------
|
|
50
|
-
Programmatic API:
|
|
54
|
+
Programmatic API (Orchestrator):
|
|
51
55
|
>>> from snowflake.snowflake_data_validation import ComparisonOrchestrator
|
|
52
56
|
>>> # Set up extractors, context, and configuration
|
|
53
57
|
>>> orchestrator = ComparisonOrchestrator(
|
|
@@ -57,6 +61,13 @@ Programmatic API:
|
|
|
57
61
|
... )
|
|
58
62
|
>>> orchestrator.run_sync_comparison()
|
|
59
63
|
|
|
64
|
+
Programmatic API (Decoupled Steps):
|
|
65
|
+
>>> from snowflake.snowflake_data_validation import public
|
|
66
|
+
>>> # Generate and execute queries independently
|
|
67
|
+
>>> schema_query = public.generate_schema_query(table_context)
|
|
68
|
+
>>> result = public.execute_query(table_context, connector, schema_query)
|
|
69
|
+
>>> validation_result = public.validate_schema(source_df, target_df)
|
|
70
|
+
|
|
60
71
|
Command Line Interface:
|
|
61
72
|
|
|
62
73
|
.. code-block:: bash
|
|
@@ -86,6 +97,7 @@ import snowflake.snowflake_data_validation.utils as utils
|
|
|
86
97
|
import snowflake.snowflake_data_validation.snowflake as snowflake
|
|
87
98
|
import snowflake.snowflake_data_validation.sqlserver as sqlserver
|
|
88
99
|
import snowflake.snowflake_data_validation.redshift as redshift
|
|
100
|
+
import snowflake.snowflake_data_validation.public as public
|
|
89
101
|
import logging
|
|
90
102
|
|
|
91
103
|
|
|
@@ -105,6 +117,7 @@ __all__ = [
|
|
|
105
117
|
"snowflake",
|
|
106
118
|
"sqlserver",
|
|
107
119
|
"redshift",
|
|
120
|
+
"public",
|
|
108
121
|
]
|
|
109
122
|
|
|
110
123
|
|
|
@@ -19,16 +19,21 @@ from pydantic import BaseModel, model_validator
|
|
|
19
19
|
|
|
20
20
|
from snowflake.snowflake_data_validation.utils.constants import (
|
|
21
21
|
MAX_FAILED_ROWS_NUMBER_DEFAULT_VALUE,
|
|
22
|
+
RowValidationMode,
|
|
22
23
|
)
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
class ValidationConfiguration(BaseModel):
|
|
26
|
-
"""Class representing the validation levels to be applied to a table.
|
|
27
|
+
"""Class representing the validation levels to be applied to a table.
|
|
28
|
+
|
|
29
|
+
`row_validation` enables/disables row-level validation.
|
|
30
|
+
`row_validation_mode` selects the mode: 'default', 'cell', or other supported modes.
|
|
31
|
+
"""
|
|
27
32
|
|
|
28
33
|
schema_validation: bool | None = False
|
|
29
34
|
metrics_validation: bool | None = False
|
|
30
|
-
row_validation: bool
|
|
31
|
-
|
|
35
|
+
row_validation: bool = False
|
|
36
|
+
row_validation_mode: RowValidationMode = RowValidationMode.ROW
|
|
32
37
|
custom_templates_path: Path | None = None
|
|
33
38
|
max_failed_rows_number: int = MAX_FAILED_ROWS_NUMBER_DEFAULT_VALUE
|
|
34
39
|
exclude_metrics: bool = False
|
|
@@ -38,10 +43,10 @@ class ValidationConfiguration(BaseModel):
|
|
|
38
43
|
def validate_configuration(self) -> "ValidationConfiguration":
|
|
39
44
|
"""Validate the configuration after initialization.
|
|
40
45
|
|
|
41
|
-
This method checks if at least one validation type is enabled.
|
|
46
|
+
This method checks if at least one validation type is enabled and validates row_validation_mode.
|
|
42
47
|
|
|
43
48
|
Raises:
|
|
44
|
-
ValueError: If no validation type is enabled.
|
|
49
|
+
ValueError: If no validation type is enabled or invalid mode is set.
|
|
45
50
|
|
|
46
51
|
"""
|
|
47
52
|
if not self.model_dump(exclude_none=True):
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Copyright 2026 Snowflake Inc.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
16
|
+
"""Asynchronous Query Generation Executor with decoupled workflow steps.
|
|
17
|
+
|
|
18
|
+
This module provides the AsyncGenerationExecutor class that generates async
|
|
19
|
+
comparison queries and writes them to files instead of executing actual validation.
|
|
20
|
+
|
|
21
|
+
The generation workflow follows the decoupled pattern using the public workflow API:
|
|
22
|
+
1. Query Generation - Uses data_validation_api.generate_schema_query / generate_metrics_query
|
|
23
|
+
2. Query Output - Write generated queries to files via public API functions
|
|
24
|
+
|
|
25
|
+
Note: This executor only performs query generation (Step 1) and writes the queries
|
|
26
|
+
to files. The execution and validation steps happen separately in async validation mode.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
import logging
|
|
30
|
+
|
|
31
|
+
from snowflake.snowflake_data_validation.executer.base_validation_executor import (
|
|
32
|
+
BaseValidationExecutor,
|
|
33
|
+
validation_handler,
|
|
34
|
+
)
|
|
35
|
+
from snowflake.snowflake_data_validation.public import (
|
|
36
|
+
data_validation_api,
|
|
37
|
+
)
|
|
38
|
+
from snowflake.snowflake_data_validation.utils.base_output_handler import (
|
|
39
|
+
OutputMessageLevel,
|
|
40
|
+
)
|
|
41
|
+
from snowflake.snowflake_data_validation.utils.logging_utils import log
|
|
42
|
+
from snowflake.snowflake_data_validation.utils.model.table_context import TableContext
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
LOGGER = logging.getLogger(__name__)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class AsyncGenerationExecutor(BaseValidationExecutor):
|
|
49
|
+
"""Executor for asynchronous query generation operations.
|
|
50
|
+
|
|
51
|
+
This executor generates async comparison queries and writes them to files
|
|
52
|
+
instead of executing actual validation. Uses script writers to delegate
|
|
53
|
+
the actual file generation and writing operations.
|
|
54
|
+
|
|
55
|
+
The workflow is decoupled to clearly separate query generation from
|
|
56
|
+
the file writing operation:
|
|
57
|
+
1. Generate queries for source and target platforms
|
|
58
|
+
2. Write queries to files using script writers
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
@validation_handler(
|
|
62
|
+
"Schema validation async generation failed.",
|
|
63
|
+
"Error generating schema validation queries: {error}",
|
|
64
|
+
)
|
|
65
|
+
@log
|
|
66
|
+
def execute_schema_validation(
|
|
67
|
+
self,
|
|
68
|
+
source_table_context: TableContext,
|
|
69
|
+
target_table_context: TableContext,
|
|
70
|
+
column_mappings: dict[str, str],
|
|
71
|
+
) -> bool:
|
|
72
|
+
"""Generate schema validation queries and write to files.
|
|
73
|
+
|
|
74
|
+
This method uses the decoupled workflow with public API:
|
|
75
|
+
1. Generate schema query for source using data_validation_api
|
|
76
|
+
2. Generate schema query for target using data_validation_api
|
|
77
|
+
3. Write both queries to files via public API functions
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
source_table_context: Source table context.
|
|
81
|
+
target_table_context: Target table context.
|
|
82
|
+
column_mappings: Mapping of source to target columns.
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
bool: True if queries are successfully generated and written.
|
|
86
|
+
|
|
87
|
+
"""
|
|
88
|
+
LOGGER.info(
|
|
89
|
+
"Generating schema validation queries for table: %s",
|
|
90
|
+
source_table_context.fully_qualified_name,
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
try:
|
|
94
|
+
# Step 1: Generate queries using public API
|
|
95
|
+
source_query = data_validation_api.generate_schema_query(
|
|
96
|
+
source_table_context
|
|
97
|
+
)
|
|
98
|
+
target_query = data_validation_api.generate_schema_query(
|
|
99
|
+
target_table_context
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
LOGGER.debug(
|
|
103
|
+
"Generated schema queries for source: %s and target: %s",
|
|
104
|
+
source_table_context.fully_qualified_name,
|
|
105
|
+
target_table_context.fully_qualified_name,
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
# Step 2: Write queries to files via public API
|
|
109
|
+
# Use report_path from extractors (ScriptWriterBase instances)
|
|
110
|
+
data_validation_api.write_schema_query_to_script(
|
|
111
|
+
table_context=source_table_context,
|
|
112
|
+
generated_query=source_query,
|
|
113
|
+
output_directory=self.source_extractor.report_path,
|
|
114
|
+
timestamp=self.context.run_start_time,
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
data_validation_api.write_schema_query_to_script(
|
|
118
|
+
table_context=target_table_context,
|
|
119
|
+
generated_query=target_query,
|
|
120
|
+
output_directory=self.source_extractor.report_path,
|
|
121
|
+
timestamp=self.context.run_start_time,
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
self.context.output_handler.handle_message(
|
|
125
|
+
header="Schema validation queries generated.",
|
|
126
|
+
message=f"Queries generated for table: {source_table_context.fully_qualified_name}",
|
|
127
|
+
level=OutputMessageLevel.SUCCESS,
|
|
128
|
+
)
|
|
129
|
+
return True
|
|
130
|
+
except Exception:
|
|
131
|
+
return False
|
|
132
|
+
|
|
133
|
+
@validation_handler(
|
|
134
|
+
"Metrics validation async generation failed.",
|
|
135
|
+
"Error generating metrics validation queries: {error}",
|
|
136
|
+
)
|
|
137
|
+
@log
|
|
138
|
+
def execute_metrics_validation(
|
|
139
|
+
self,
|
|
140
|
+
source_table_context: TableContext,
|
|
141
|
+
target_table_context: TableContext,
|
|
142
|
+
column_mappings: dict[str, str],
|
|
143
|
+
) -> bool:
|
|
144
|
+
"""Generate metrics validation queries and write to files.
|
|
145
|
+
|
|
146
|
+
This method uses the decoupled workflow with public API:
|
|
147
|
+
1. Generate metrics query for source using data_validation_api
|
|
148
|
+
2. Generate metrics query for target using data_validation_api
|
|
149
|
+
3. Write both queries to files via public API functions
|
|
150
|
+
|
|
151
|
+
Args:
|
|
152
|
+
source_table_context: Source table context.
|
|
153
|
+
target_table_context: Target table context.
|
|
154
|
+
column_mappings: Mapping of source to target columns.
|
|
155
|
+
|
|
156
|
+
Returns:
|
|
157
|
+
bool: True if queries are successfully generated and written.
|
|
158
|
+
|
|
159
|
+
"""
|
|
160
|
+
LOGGER.info(
|
|
161
|
+
"Generating metrics validation queries for table: %s",
|
|
162
|
+
source_table_context.fully_qualified_name,
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
try:
|
|
166
|
+
source_query = data_validation_api.generate_metrics_query(
|
|
167
|
+
source_table_context
|
|
168
|
+
)
|
|
169
|
+
target_query = data_validation_api.generate_metrics_query(
|
|
170
|
+
target_table_context
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
LOGGER.debug(
|
|
174
|
+
"Generated metrics queries for source: %s and target: %s",
|
|
175
|
+
source_table_context.fully_qualified_name,
|
|
176
|
+
target_table_context.fully_qualified_name,
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
data_validation_api.write_metrics_query_to_script(
|
|
180
|
+
table_context=source_table_context,
|
|
181
|
+
generated_query=source_query,
|
|
182
|
+
output_directory=self.source_extractor.report_path,
|
|
183
|
+
timestamp=self.context.run_start_time,
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
data_validation_api.write_metrics_query_to_script(
|
|
187
|
+
table_context=target_table_context,
|
|
188
|
+
generated_query=target_query,
|
|
189
|
+
output_directory=self.target_extractor.report_path,
|
|
190
|
+
timestamp=self.context.run_start_time,
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
self.context.output_handler.handle_message(
|
|
194
|
+
header="Metrics validation queries generated.",
|
|
195
|
+
message=f"Queries generated for table: {target_table_context.fully_qualified_name}",
|
|
196
|
+
level=OutputMessageLevel.SUCCESS,
|
|
197
|
+
)
|
|
198
|
+
return True
|
|
199
|
+
except Exception:
|
|
200
|
+
return False
|
|
201
|
+
|
|
202
|
+
@validation_handler(
|
|
203
|
+
"Row validation async generation failed.",
|
|
204
|
+
"Error in row validation async generation: {error}",
|
|
205
|
+
)
|
|
206
|
+
@log
|
|
207
|
+
def execute_row_validation(
|
|
208
|
+
self,
|
|
209
|
+
source_table_context: TableContext,
|
|
210
|
+
target_table_context: TableContext,
|
|
211
|
+
) -> bool:
|
|
212
|
+
"""Generate row validation queries (placeholder implementation).
|
|
213
|
+
|
|
214
|
+
Note: Row validation async generation is not yet implemented.
|
|
215
|
+
|
|
216
|
+
Args:
|
|
217
|
+
source_table_context: Source table context for validation.
|
|
218
|
+
target_table_context: Target table context for validation.
|
|
219
|
+
|
|
220
|
+
Returns:
|
|
221
|
+
bool: True (placeholder - always succeeds).
|
|
222
|
+
|
|
223
|
+
"""
|
|
224
|
+
LOGGER.info(
|
|
225
|
+
"Row validation async generation skipped for table: %s",
|
|
226
|
+
source_table_context.fully_qualified_name,
|
|
227
|
+
)
|
|
228
|
+
|
|
229
|
+
self.context.output_handler.handle_message(
|
|
230
|
+
header="Row validation async generation skipped.",
|
|
231
|
+
message="Row validation async generation is not yet implemented.",
|
|
232
|
+
level=OutputMessageLevel.INFO,
|
|
233
|
+
)
|
|
234
|
+
return True
|
|
235
|
+
|
|
236
|
+
def _get_schema_validation_message(self, table_configuration: TableContext) -> str:
|
|
237
|
+
"""Get async generation message for schema validation."""
|
|
238
|
+
return (
|
|
239
|
+
f"Generating async schema validation queries for {table_configuration.fully_qualified_name} "
|
|
240
|
+
f"with columns {table_configuration.column_selection_list}."
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
def _get_metrics_validation_message(self, table_configuration: TableContext) -> str:
|
|
244
|
+
"""Get async generation message for metrics validation."""
|
|
245
|
+
return (
|
|
246
|
+
f"Generating async metrics validation queries for {table_configuration.fully_qualified_name} "
|
|
247
|
+
f"with columns {table_configuration.column_selection_list}."
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
def _get_row_validation_message(self, table_configuration: TableContext) -> str:
|
|
251
|
+
"""Get async generation message for row validation."""
|
|
252
|
+
return (
|
|
253
|
+
f"Generating async row validation queries for {table_configuration.fully_qualified_name} "
|
|
254
|
+
f"with columns {table_configuration.column_selection_list}."
|
|
255
|
+
)
|