snowflake-data-validation 1.35.1__tar.gz → 1.35.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/PKG-INFO +13 -1
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/README.md +12 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_column_metrics_templates.yaml +10 -10
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_datatypes_normalization_templates.yaml +5 -7
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/query/query_generator_azure_synapse.py +3 -3
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_cell_validation_data_select.sql.j2 +2 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_datatypes_normalization_templates.yaml +4 -5
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_row_md5_select.sql.j2 +6 -6
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/query/query_generator_bigquery.py +4 -21
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_column_metrics_templates.yaml +19 -13
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_datatypes_normalization_templates.yaml +14 -12
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_row_md5_select.sql.j2 +6 -7
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/query/query_generator_db2.py +4 -43
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/extractor/sql_queries_template_generator.py +0 -4
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_column_metrics_templates.yaml +12 -13
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_datatypes_normalization_templates.yaml +19 -19
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_row_md5_select.sql.j2 +5 -6
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/query/query_generator_oracle.py +9 -38
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_cell_validation_data_select.sql.j2 +2 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_column_metrics_templates.yaml +16 -16
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_datatypes_normalization_templates.yaml +14 -14
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_row_md5_select.sql.j2 +6 -6
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/query/query_generator_postgresql.py +9 -40
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/float_bit_normalization.py +22 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/numeric_scale_resolution.py +3 -3
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/query_generator_base.py +44 -22
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_cell_validation_data_select.sql.j2 +2 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_insert_template.sql.j2 +4 -4
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_column_metrics_templates.yaml +50 -13
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_datatypes_normalization_templates.yaml +15 -10
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_row_md5_select.sql.j2 +4 -4
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/query/query_generator_redshift.py +5 -25
- snowflake_data_validation-1.35.2/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_cell_validation_data_select.sql.j2 +5 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_cell_validation_data_select.sql.j2 +2 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_concatenated_template.sql.j2 +6 -6
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_column_metrics_templates.yaml +6 -7
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_datatypes_normalization_templates.yaml +5 -5
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_row_md5_select.sql.j2 +6 -6
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/l3/__init__.py +4 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/l3/signature_external_table.py +25 -6
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/l3/warm_start.py +2 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/query/query_generator_snowflake.py +51 -22
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_cell_validation_data_select.sql.j2 +2 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_datatypes_normalization_templates.yaml +6 -7
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/query/query_generator_sqlite.py +3 -3
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_column_metrics_templates.yaml +11 -11
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_datatypes_normalization_templates.yaml +14 -19
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/query/query_generator_sqlserver.py +9 -30
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_cell_validation_data_select.sql.j2 +2 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_column_metrics_templates.yaml +5 -5
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_compute_md5_sql.j2 +8 -8
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_datatypes_normalization_templates.yaml +21 -21
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_row_md5_select.sql.j2 +9 -9
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/query/charset_normalization.py +4 -1
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/query/query_generator_teradata.py +17 -22
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/constants.py +3 -9
- snowflake_data_validation-1.35.2/src/snowflake/snowflake_data_validation/utils/teradata_string_rtrim.py +81 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/redshift.py +3 -6
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Redshift/query/test_query_generator_redshift.py +6 -7
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Redshift/test_redshift_varchar_count_distinct.py +17 -4
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Teradata/test_query_generator_teradata.py +13 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Teradata/test_teradata_row_md5_select_template.py +6 -6
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/azure_synapse/test_azure_synapse_row_queries.py +15 -14
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/bigquery/test_query_generator_bigquery.py +4 -4
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/db2/test_db2_query_generator.py +34 -5
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_oracle_lob_dv_generation.py +1 -1
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_oracle_query_generator.py +4 -4
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlite/test_metadata_query_template_sqlite.py +2 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlite/test_query_generator_sqlite.py +2 -2
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlserver/test_sqlserver_row_queries.py +4 -4
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_cell_validation_query_generation.py +179 -77
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_charset_normalization.py +7 -5
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_comparison_codec.py +8 -9
- snowflake_data_validation-1.35.1/tests/unit/test_float_tme_canonical.py → snowflake_data_validation-1.35.2/tests/unit/test_float_bit_canonical.py +47 -70
- snowflake_data_validation-1.35.2/tests/unit/test_float_canonical_templates.py +91 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_numeric_scale_resolution.py +3 -3
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_query_generator_numeric_scale.py +2 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_signature_external_table.py +12 -4
- snowflake_data_validation-1.35.2/tests/unit/test_teradata_string_rtrim_policy.py +170 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_timestamp_golden_vectors.py +5 -4
- snowflake_data_validation-1.35.2/tests/unit/test_vector_bit_normalization.py +113 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_warm_start.py +1 -1
- snowflake_data_validation-1.35.1/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_cell_validation_data_select.sql.j2 +0 -5
- snowflake_data_validation-1.35.1/src/snowflake/snowflake_data_validation/utils/redshift_tab_safe_rtrim.py +0 -17
- snowflake_data_validation-1.35.1/tests/unit/test_float_canonical_templates.py +0 -91
- snowflake_data_validation-1.35.1/tests/unit/test_vector_tme_normalization.py +0 -111
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/.gitignore +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/LICENSE +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/docs/README.md +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/pyproject.toml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/azure_synapse_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/connector/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/connector/connector_azure_synapse.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/connector/connector_factory_azure_synapse.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/metadata_extractor_azure_synapse.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/model/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/model/azure_synapse_credentials_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/azure_synapse/script_writer/script_writer_azure_synapse.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/bigquery/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/comparison_orchestrator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/configuration_loader.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/model/configuration_model.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/model/connection_types.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/model/connections/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/model/logging_configuration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/model/table_configuration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/model/validation_configuration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/model/view_configuration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/configuration/singleton.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/connector/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/connector/connector_base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/connector/connector_factory_base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/connector/connector_failure_tracker.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/metadata_extractor_db2.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/db2/script_writer/script_writer_db2.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/executer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/executer/async_generation_executor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/executer/async_validation_executor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/executer/base_validation_executor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/executer/executor_factory.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/executer/extractor_types.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/executer/source_validation_executor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/executer/sync_validation_executor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/extractor/metadata_extractor_base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/metadata_extractor_oracle.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/oracle_iso_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/oracle_lob_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/oracle_vector_extraction.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/oracle/script_writer/script_writer_oracle.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/orchestration/html_report/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/orchestration/html_report/html_report_builder.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/orchestration/html_report/report_metadata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/orchestration/parallel_execution_engine.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/orchestration/table_metadata_processor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/orchestration/validation_progress_reporter.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/orchestration/view_preprocessor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/connector/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/connector/connector_factory_postgresql.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/connector/connector_postgresql.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/metadata_extractor_postgresql.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/model/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/model/postgresql_credentials_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/postgresql_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/postgresql_tz_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/postgresql/script_writer/script_writer_postgresql.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/DATA_VALIDATION_API_OVERVIEW.md +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/_internal.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/_teradata_internal.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/async_mode/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/async_mode/file_loader.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/async_mode/script_writer.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/cli/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/cli/commands.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/configuration/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/connectors/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/context/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/data_validation_api.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/enums/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/execution/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/execution/query_executor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/generators/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/metadata/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/model/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/model/data_validation_exception.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/model/generated_query.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/model/metrics_result_shape.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/model/query_execution_result.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/model/query_generator_factory.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/model/result_set.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/model/validation_progress_callback.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/model/validation_result.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/query_generation/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/query_generation/metadata_queries.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/query_generation/row_validation_queries.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/query_generation/schema_metrics_queries.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/query_validation/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/query_validation/query_comparison.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/reshape/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/reshape/metrics_reshape.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/result_set_validation/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/result_set_validation/result_set_comparison.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/snapshot/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/snapshot/snapshot_generation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/snapshot/snapshot_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/utils/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/utils/helpers.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/validation/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/validation/cell_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/validation/metrics_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/validation/row_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/public/validation/schema_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/charset_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/chunk_md5_tiered.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/extractor/templates/query_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/extractor/templates/query_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/extractor/templates/query_modifiers.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/query/query_generator_query.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/query/query_arguments_manager.py +0 -0
- /snowflake_data_validation-1.35.1/src/snowflake/snowflake_data_validation/query/vector_tme_normalization.py → /snowflake_data_validation-1.35.2/src/snowflake/snowflake_data_validation/query/vector_element_kind.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/connector/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/connector/connector_factory_redshift.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/connector/connector_redshift.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/metadata_extractor_redshift.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_insert_template.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_table_template.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/model/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/model/redshift_credentials_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/query/charset_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/redshift_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/redshift/script_writer/script_writer_redshift.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/snowflake_to_result_set_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/result_set/query/query_generator_result_set.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/result_set/result_set_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/script_writer/script_writer_base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_factory_snowflake.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_snowflake.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/metadata_extractor_snowflake.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_md5_template.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_case_sensitive_columns.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_temporary_table_from_view_template.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/l3/pushdown_diff_sql.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/model/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_credentials_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_default_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_named_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/query/charset_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/script_writer/script_writer_snowflake.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/snowflake/snowflake_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/connector/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/connector/connector_factory_sqlite.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/connector/connector_sqlite.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/metadata_extractor_sqlite.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_compute_md5_sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_to_sqlite_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/model/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/model/sqlite_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlite/script_writer/script_writer_sqlite.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/connector/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_factory_sql_server.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_sql_server.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/metadata_extractor_sqlserver.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_cell_validation_data_select.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_compute_md5_sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_temporary_table_internal_identifier_template.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_row_md5_select.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_temporary_table_from_view_template.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/model/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/model/sqlserver_credentials_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/query/charset_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/script_writer_sqlserver.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/table_partitioning_strategy.md +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/connector/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/connector/connector_factory_teradata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/connector/connector_teradata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/metadata_extractor_teradata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_concatenated.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_md5.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_extract_md5_rows_chunk.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_get_columns_metadata.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_row_count_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_to_snowflake_datatypes_mapping_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/model/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/model/teradata_credentials_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/query/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/script_writer/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/script_writer/script_writer_teradata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/teradata_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/teradata/teradata_iso_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/arguments_manager_base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/arguments_manager_factory.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/base_output_handler.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/column_grouping.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/column_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/configuration_file_editor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/configuration_file_generator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/configuration_file_synchronizer.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/connection_pool.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/connector_factory.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/console_output_handler.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/context.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/cpu_optimizer.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/helper.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/helpers/helper_database.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/helpers/helper_dataframe.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/helpers/helper_io.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/helpers/helper_misc.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/helpers/helper_polars_cast.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/helpers/helper_query_result.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/helpers/helper_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/iceberg_dv_common.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/index_key_format.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/interval_common.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/iso_dv_common.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/logging_config.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/logging_utils.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/model/chunk.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/model/column_metadata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/model/custom_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/model/table_column_metadata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/model/table_context.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/model/templates_loader_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/progress_reporter.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/qvci_fallback.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/row_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/run_context.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/shutdown_coordinator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/snapshot_validation_statements.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/telemetry.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/templates/configuration_file_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/thread_safe_singleton.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/validation_utils.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/vector_common.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/utils/vector_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/accepted_transformation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/cell_data_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/comparison_codec.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/data_validator_base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/dataframe_validator_base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/metrics_data_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/metrics_tolerance.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/db2.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/registry.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/snowflake.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/sqlite.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/sqlserver.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/teradata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/query_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/result_set_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/results_summary_report.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/row_data_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/row_validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/schema_data_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/validation_database/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/validation_database/sqlite_validation_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/validation_database/validation_database_connection_base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/validation_database_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/validation_execution_context.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/src/snowflake/snowflake_data_validation/validation/validation_report_status.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/.coveragerc +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/conftest.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/integration/.coveragerc +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/integration/Redshift/test_metadata_extractor_integration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/integration/test_async_generation_integration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/integration/test_async_validation_integration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/integration/test_reference_integration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/integration/test_source_validation_integration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/integration/test_sync_validation_integration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Postgresql/test_postgresql_spatial_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Redshift/model/test_redshift_credentials_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Redshift/script_writer/test_script_writer_redshift.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Redshift/test_connector_redshift.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Redshift/test_redshift_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Redshift/test_redshift_hllsketch_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Redshift/test_redshift_spatial_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Teradata/test_connector_teradata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Teradata/test_metadata_extractor_teradata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Teradata/test_teradata_spatial_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Teradata/test_teradata_view_generate_boundary.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/Teradata/test_teradata_view_l1_metadata_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/custom_templates_loader/snowflake_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/custom_templates_loader/snowflake_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/custom_templates_loader/snowflake_table_metadata_query.sql.j2 +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_configuration_loader/test_load_configuration_model/conf.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_configuration_loader/test_load_configuration_model_reading_file_exception/conf.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_helpers/dummy_configuration_file.json +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_helpers/dummy_connection_source_db.toml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_helpers/dummy_datatypes_normalization_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_helpers/dummy_datatypes_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_helpers/dummy_metrics_template.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_helpers/dummy_metrics_template_datatypes.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_helpers/dummy_template.csv +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_helpers/not_valid_format.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_templates_loader_manager/snowflake_column_metrics_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/assets/test_templates_loader_manager/snowflake_datatypes_normalization_templates.yaml +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/azure_synapse/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/azure_synapse/test_azure_synapse_credentials_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/azure_synapse/test_azure_synapse_metadata_extractor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/azure_synapse/test_azure_synapse_metrics_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/azure_synapse/test_azure_synapse_query_generator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/azure_synapse/test_connector_azure_synapse.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/azure_synapse/test_connector_factory_azure_synapse.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/bigquery/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/bigquery/test_bigquery_spatial_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/bigquery/test_query_generator_factory_bigquery.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/db2/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/db2/test_db2_metadata_extractor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/db2/test_db2_registration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_metadata_extractor_oracle_vector.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_oracle_iso_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_oracle_lob_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_oracle_metadata_extractor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_oracle_metrics_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_oracle_normalization_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_oracle_query_modifiers.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/oracle/test_oracle_type_mappings.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/query/test_chunk_md5_tiered.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/snowflake/test_snowflake_spatial_metrics_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlite/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlite/test_connector_factory_sqlite.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlite/test_connector_sqlite.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlite/test_metadata_extractor_sqlite.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlite/test_script_writer_sqlite.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlserver/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlserver/test_connector_factory_sql_server.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlserver/test_metadata_extractor_sqlserver_vector.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlserver/test_sqlserver_spatial_l1_metadata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/sqlserver/test_sqlserver_spatial_metrics_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_accepted_transformation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_arguments_manager_base.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_arguments_manager_factory.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_batched_metrics_queries.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_boolean_binary_canonical_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_cell_data_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_column_grouping.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_column_metadata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_column_normalization_override.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_column_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_comparison_orchestrator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_configuration_file_editor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_configuration_file_generator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_configuration_file_synchronizer.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_configuration_loader.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_configuration_model.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_connection_pool.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_connector_failure_tracker.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_connector_snowflake.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_cpu_optimizer.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_custom_templates_models.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_data_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_escape_odbc_value.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_executor_factory.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_get_configuration_file.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_get_target_cols.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_helper_dataframe.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_helper_polars_cast.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_helpers.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_html_report_builder.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_iceberg_dv_l3_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_index_key_format.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_internal_helpers.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_interval_common.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_iso_dv_common.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_logging_config.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_metrics_reshape.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_metrics_result_shape.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_metrics_templates_casts.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_metrics_tolerance.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_normalize_shape_aware.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_platform_bridge.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_postgresql_normalization_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_postgresql_tz_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_pushdown_diff_sql.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_query_cell_level_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_query_metrics_level_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_query_to_dataframe.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_query_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_qvci_fallback.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_qvci_fallback_na_skip.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_qvci_fallback_triggers.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_report_metadata.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_result_set_cell_level_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_result_set_column_metrics_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_result_set_snapshot_generation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_result_set_snapshot_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_result_set_to_dataframe.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_result_set_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_row_data_validator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_row_hash_column_delimiter.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_row_partitioning_strategy.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_row_validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_shutdown_coordinator.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_signature_row_md5_query.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_snapshot_validation_statements.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_snowflake_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_snowflake_binary_normalization_templates.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_source_validation_executor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_spatial_wkt_canonicalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_sql_catalog_template_guard.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_sql_literal_jinja_filter.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_sqlite_validation_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_sqlserver_arguments_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_sqlserver_multi_version_support.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_sync_executor_qvci_fallback.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_sync_validation_executor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_table_column_metadata_model.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_table_configuration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_table_context.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_table_metadata_processor.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_table_snapshot_generation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_table_snapshot_validation.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_target_platform_factory.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_telemetry.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_templates_loader_manager.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_teradata_iso_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_validation_configuration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_validation_database_connection.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_validation_execution_context.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_validation_progress_reporter.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_validation_report_buffer.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_validation_report_status.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_validation_templates_dto.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_vector_common.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_vector_normalization.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/test_view_configuration.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/utils/__init__.py +0 -0
- {snowflake_data_validation-1.35.1 → snowflake_data_validation-1.35.2}/tests/unit/utils/test_constants.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: snowflake-data-validation
|
|
3
|
-
Version: 1.35.
|
|
3
|
+
Version: 1.35.2
|
|
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/
|
|
@@ -188,6 +188,18 @@ For configuration options and examples, see the [official documentation](https:/
|
|
|
188
188
|
|
|
189
189
|
## Changelog
|
|
190
190
|
|
|
191
|
+
### v1.35.2
|
|
192
|
+
|
|
193
|
+
**New features**
|
|
194
|
+
|
|
195
|
+
- Added L3 signature comparison with Snowflake pushdown.
|
|
196
|
+
- Added as-stored string comparison, with space-only `RTRIM` for padded `CHAR` types.
|
|
197
|
+
|
|
198
|
+
**Bug fixes**
|
|
199
|
+
|
|
200
|
+
- Fixed Teradata `FLOAT` comparison to use IEEE-754 bit identity.
|
|
201
|
+
- Unified float comparison to IEEE-754 bit identity and removed decimal `TME` from data validation.
|
|
202
|
+
|
|
191
203
|
### v1.35.1
|
|
192
204
|
|
|
193
205
|
**New features**
|
|
@@ -99,6 +99,18 @@ For configuration options and examples, see the [official documentation](https:/
|
|
|
99
99
|
|
|
100
100
|
## Changelog
|
|
101
101
|
|
|
102
|
+
### v1.35.2
|
|
103
|
+
|
|
104
|
+
**New features**
|
|
105
|
+
|
|
106
|
+
- Added L3 signature comparison with Snowflake pushdown.
|
|
107
|
+
- Added as-stored string comparison, with space-only `RTRIM` for padded `CHAR` types.
|
|
108
|
+
|
|
109
|
+
**Bug fixes**
|
|
110
|
+
|
|
111
|
+
- Fixed Teradata `FLOAT` comparison to use IEEE-754 bit identity.
|
|
112
|
+
- Unified float comparison to IEEE-754 bit identity and removed decimal `TME` from data validation.
|
|
113
|
+
|
|
102
114
|
### v1.35.1
|
|
103
115
|
|
|
104
116
|
**New features**
|
|
@@ -317,22 +317,22 @@ BIT:
|
|
|
317
317
|
|
|
318
318
|
CHAR:
|
|
319
319
|
min:
|
|
320
|
-
metric_query: MIN(DATALENGTH("{{ col_name }}"))
|
|
320
|
+
metric_query: MIN(DATALENGTH(RTRIM("{{ col_name }}")))
|
|
321
321
|
metric_return_datatype: INT
|
|
322
322
|
max:
|
|
323
|
-
metric_query: MAX(DATALENGTH("{{ col_name }}"))
|
|
323
|
+
metric_query: MAX(DATALENGTH(RTRIM("{{ col_name }}")))
|
|
324
324
|
metric_return_datatype: INT
|
|
325
325
|
count_empty:
|
|
326
|
-
metric_query: SUM(CASE WHEN DATALENGTH("{{ col_name }}") = 0 THEN 1 ELSE 0 END)
|
|
326
|
+
metric_query: SUM(CASE WHEN DATALENGTH(RTRIM("{{ col_name }}")) = 0 THEN 1 ELSE 0 END)
|
|
327
327
|
metric_return_datatype: INT
|
|
328
328
|
count_distinct:
|
|
329
|
-
metric_query: COUNT(DISTINCT
|
|
329
|
+
metric_query: COUNT(DISTINCT RTRIM("{{ col_name }}"))
|
|
330
330
|
metric_return_datatype: INT
|
|
331
331
|
count_null:
|
|
332
332
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
333
333
|
metric_return_datatype: INT
|
|
334
334
|
avg:
|
|
335
|
-
metric_query: AVG(CAST(DATALENGTH("{{ col_name }}") AS FLOAT))
|
|
335
|
+
metric_query: AVG(CAST(DATALENGTH(RTRIM("{{ col_name }}")) AS FLOAT))
|
|
336
336
|
metric_return_datatype: FLOAT
|
|
337
337
|
metric_column_modifier: "% 2097143"
|
|
338
338
|
|
|
@@ -358,19 +358,19 @@ VARCHAR:
|
|
|
358
358
|
|
|
359
359
|
NCHAR:
|
|
360
360
|
min:
|
|
361
|
-
metric_query: MIN(LEN("{{ col_name }}"))
|
|
361
|
+
metric_query: MIN(LEN(RTRIM("{{ col_name }}")))
|
|
362
362
|
metric_return_datatype: INT
|
|
363
363
|
max:
|
|
364
|
-
metric_query: MAX(LEN("{{ col_name }}"))
|
|
364
|
+
metric_query: MAX(LEN(RTRIM("{{ col_name }}")))
|
|
365
365
|
metric_return_datatype: INT
|
|
366
366
|
avg:
|
|
367
|
-
metric_query: AVG(CAST(LEN("{{ col_name }}") AS FLOAT))
|
|
367
|
+
metric_query: AVG(CAST(LEN(RTRIM("{{ col_name }}")) AS FLOAT))
|
|
368
368
|
metric_return_datatype: FLOAT
|
|
369
369
|
count_empty:
|
|
370
|
-
metric_query: SUM(CASE WHEN "{{ col_name }}" = '' THEN 1 ELSE 0 END)
|
|
370
|
+
metric_query: SUM(CASE WHEN RTRIM("{{ col_name }}") = '' THEN 1 ELSE 0 END)
|
|
371
371
|
metric_return_datatype: INT
|
|
372
372
|
count_distinct:
|
|
373
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
373
|
+
metric_query: COUNT(DISTINCT RTRIM("{{ col_name }}"))
|
|
374
374
|
metric_return_datatype: INT
|
|
375
375
|
count_null:
|
|
376
376
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
@@ -18,19 +18,17 @@ DECIMAL: FORMAT("{{ col_name }}", '{{ numeric_format_mask }}')
|
|
|
18
18
|
NUMERIC: FORMAT("{{ col_name }}", '{{ numeric_format_mask }}')
|
|
19
19
|
MONEY: FORMAT("{{ col_name }}", '{{ numeric_format_mask }}')
|
|
20
20
|
SMALLMONEY: FORMAT("{{ col_name }}", '{{ numeric_format_mask }}')
|
|
21
|
-
FLOAT: '{{
|
|
22
|
-
REAL: '{{
|
|
21
|
+
FLOAT: '{{ float_bit_shim }}'
|
|
22
|
+
REAL: '{{ float_bit_shim }}'
|
|
23
23
|
|
|
24
24
|
# ---- Boolean type ----
|
|
25
25
|
BIT: CASE WHEN "{{ col_name }}" = 1 THEN 'TRUE' WHEN "{{ col_name }}" = 0 THEN 'FALSE' END
|
|
26
26
|
|
|
27
27
|
# ---- Character types ----
|
|
28
|
-
# RTRIM aligns fixed-width CHAR/NCHAR padding and trailing VARCHAR spaces with the
|
|
29
|
-
# Snowflake VARCHAR mirror. Use RTRIM (not TRIM) so leading spaces stay significant.
|
|
30
28
|
CHAR: RTRIM("{{ col_name }}")
|
|
31
|
-
VARCHAR:
|
|
29
|
+
VARCHAR: '"{{ col_name }}"'
|
|
32
30
|
NCHAR: RTRIM("{{ col_name }}")
|
|
33
|
-
NVARCHAR:
|
|
31
|
+
NVARCHAR: '"{{ col_name }}"'
|
|
34
32
|
|
|
35
33
|
# ---- Date / Time types ----
|
|
36
34
|
# Append '00' to FORMAT('.fffffff') so the output reaches FF9 (Snowflake TIMESTAMP_NTZ format).
|
|
@@ -49,7 +47,7 @@ VARBINARY: UPPER(CONVERT(VARCHAR(MAX), "{{ col_name }}", 2))
|
|
|
49
47
|
|
|
50
48
|
# ---- Other types ----
|
|
51
49
|
UNIQUEIDENTIFIER: LOWER(CONVERT(VARCHAR(36), "{{ col_name }}"))
|
|
52
|
-
SYSNAME:
|
|
50
|
+
SYSNAME: CONVERT(VARCHAR(128), "{{ col_name }}")
|
|
53
51
|
|
|
54
52
|
# ---- Default fallback ----
|
|
55
53
|
DEFAULT: CONVERT(VARCHAR(MAX), "{{ col_name }}")
|
|
@@ -34,7 +34,7 @@ from snowflake.snowflake_data_validation.query.float_bit_normalization import (
|
|
|
34
34
|
build_binary64_canonical_expr,
|
|
35
35
|
)
|
|
36
36
|
from snowflake.snowflake_data_validation.query.numeric_scale_resolution import (
|
|
37
|
-
|
|
37
|
+
float_bit_input_expr,
|
|
38
38
|
)
|
|
39
39
|
from snowflake.snowflake_data_validation.query.query_generator_base import (
|
|
40
40
|
QueryGeneratorBase,
|
|
@@ -70,8 +70,8 @@ class QueryGeneratorAzureSynapse(QueryGeneratorBase):
|
|
|
70
70
|
def _float_column_reference(self, column) -> str:
|
|
71
71
|
return f'"{column.name}"'
|
|
72
72
|
|
|
73
|
-
def
|
|
74
|
-
value_expr =
|
|
73
|
+
def build_float_bit_shim(self, column, col_ref: str) -> str:
|
|
74
|
+
value_expr = float_bit_input_expr(
|
|
75
75
|
col_ref,
|
|
76
76
|
getattr(column, "data_type", "") or "",
|
|
77
77
|
dialect=self.platform.value,
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
{{ qm.locking_prefix(query_modifiers) }}SELECT
|
|
3
3
|
{% for column in column_collection %}
|
|
4
4
|
{% if column.nullable %}
|
|
5
|
-
|
|
5
|
+
COALESCE({{ datatypes_normalization_renderer_templates[column.name] }}, '{{ null_hashing_sentinel }}') AS `{{ column.name }}`{% if not loop.last %},{% endif %}
|
|
6
6
|
{% else %}
|
|
7
|
-
|
|
7
|
+
{{ datatypes_normalization_renderer_templates[column.name] }} AS `{{ column.name }}`{% if not loop.last %},{% endif %}
|
|
8
8
|
{% endif %}
|
|
9
9
|
{% endfor %}
|
|
10
10
|
FROM (
|
|
@@ -37,10 +37,9 @@ INT64: FORMAT('{{ numeric_format_mask }}', CAST(`{{ col_name }}` AS NUMERIC))
|
|
|
37
37
|
INTEGER: FORMAT('{{ numeric_format_mask }}', CAST(`{{ col_name }}` AS NUMERIC))
|
|
38
38
|
|
|
39
39
|
# FLOAT64 maps to Snowflake FLOAT. L3 compares IEEE-754 bit identity
|
|
40
|
-
# (sign|exponent|significand)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
FLOAT: '{{ float_tme_shim }}'
|
|
40
|
+
# (sign|exponent|significand). See QueryGeneratorBigQuery.build_float_bit_shim.
|
|
41
|
+
FLOAT64: '{{ float_bit_shim }}'
|
|
42
|
+
FLOAT: '{{ float_bit_shim }}'
|
|
44
43
|
|
|
45
44
|
# NUMERIC/BIGNUMERIC map to Snowflake NUMBER, which renders scale-aware via
|
|
46
45
|
# TO_CHAR(col, 'FM...0.00..0'). BigQuery mirrors that scale with the resolved
|
|
@@ -57,7 +56,7 @@ BIGDECIMAL: FORMAT('{{ numeric_format_mask }}', `{{ col_name }}`)
|
|
|
57
56
|
BOOL: CASE WHEN `{{ col_name }}` THEN 'TRUE' WHEN NOT `{{ col_name }}` THEN 'FALSE' END
|
|
58
57
|
BOOLEAN: CASE WHEN `{{ col_name }}` THEN 'TRUE' WHEN NOT `{{ col_name }}` THEN 'FALSE' END
|
|
59
58
|
|
|
60
|
-
STRING:
|
|
59
|
+
STRING: '`{{ col_name }}`'
|
|
61
60
|
# Snowflake BINARY normalizes via HEX_ENCODE (uppercase hex, no 0x prefix); match
|
|
62
61
|
# it exactly so the row hashes agree.
|
|
63
62
|
BYTES: UPPER(TO_HEX(`{{ col_name }}`))
|
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
CONCAT(
|
|
9
9
|
{% for group in column_groups %}
|
|
10
10
|
{% if not loop.first %}, {% endif %}
|
|
11
|
-
UPPER(TO_HEX(MD5(
|
|
11
|
+
UPPER(TO_HEX(MD5(CONCAT(
|
|
12
12
|
{% for col in group %}`{{ col.name }}`{% if not loop.last %}, '{{ row_hash_column_delimiter }}', {% endif %}{% endfor %}
|
|
13
|
-
))))
|
|
13
|
+
))))
|
|
14
14
|
{% endfor %}
|
|
15
15
|
)
|
|
16
16
|
{% elif column_collection|length > 1 %}
|
|
17
|
-
|
|
17
|
+
CONCAT({% for col in column_collection %}`{{ col.name }}`{% if not loop.last %}, '{{ row_hash_column_delimiter }}', {% endif %}{% endfor %})
|
|
18
18
|
{% else %}
|
|
19
|
-
|
|
19
|
+
{% for col in column_collection %}`{{ col.name }}`{% endfor %}
|
|
20
20
|
{% endif %}
|
|
21
21
|
))) AS ROW_MD5
|
|
22
22
|
FROM
|
|
@@ -26,9 +26,9 @@ FROM
|
|
|
26
26
|
{% endfor %}
|
|
27
27
|
{% for column in column_collection %}
|
|
28
28
|
{% if column.nullable %}
|
|
29
|
-
|
|
29
|
+
COALESCE({{ datatypes_normalization_renderer_templates[column.name] }}, '{{ null_hashing_sentinel }}') AS `{{ column.name }}`{% if not loop.last %},{% endif %}
|
|
30
30
|
{% else %}
|
|
31
|
-
|
|
31
|
+
{{ datatypes_normalization_renderer_templates[column.name] }} AS `{{ column.name }}`{% if not loop.last %},{% endif %}
|
|
32
32
|
{% endif %}
|
|
33
33
|
{% endfor %}
|
|
34
34
|
{{ qm.render_from_clause(query_modifiers, fully_qualified_name, 'src') }}
|
|
@@ -21,7 +21,7 @@ from snowflake.snowflake_data_validation.query.float_bit_normalization import (
|
|
|
21
21
|
build_binary64_canonical_expr,
|
|
22
22
|
)
|
|
23
23
|
from snowflake.snowflake_data_validation.query.numeric_scale_resolution import (
|
|
24
|
-
|
|
24
|
+
float_bit_input_expr,
|
|
25
25
|
)
|
|
26
26
|
from snowflake.snowflake_data_validation.query.query_generator_base import (
|
|
27
27
|
QueryGeneratorBase,
|
|
@@ -43,23 +43,6 @@ from snowflake.snowflake_data_validation.validation.comparison_codec import (
|
|
|
43
43
|
LOGGER = logging.getLogger(__name__)
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
def build_bigquery_float_tme_shim(col_ref: str) -> str:
|
|
47
|
-
"""Return inline BigQuery SQL that renders *col_ref* in Snowflake ``TME`` shape.
|
|
48
|
-
|
|
49
|
-
Kept for migration-staging / decimal TME compatibility. L3 float validation
|
|
50
|
-
uses :func:`build_bigquery_float_bit_canonical_expr` instead.
|
|
51
|
-
"""
|
|
52
|
-
base = f"LOWER(FORMAT('%.15e', {col_ref}))"
|
|
53
|
-
mantissa = f"SPLIT({base}, 'e')[OFFSET(0)]"
|
|
54
|
-
exponent = f"CAST(SPLIT({base}, 'e')[OFFSET(1)] AS INT64)"
|
|
55
|
-
mantissa_trimmed = f"RTRIM(RTRIM({mantissa}, '0'), '.')"
|
|
56
|
-
return (
|
|
57
|
-
f"CASE WHEN {col_ref} IS NULL THEN NULL "
|
|
58
|
-
f"WHEN {col_ref} = 0 THEN '0E0' "
|
|
59
|
-
f"ELSE CONCAT({mantissa_trimmed}, 'E', CAST({exponent} AS STRING)) END"
|
|
60
|
-
)
|
|
61
|
-
|
|
62
|
-
|
|
63
46
|
def build_bigquery_float_bit_canonical_expr(col_ref: str) -> str:
|
|
64
47
|
"""Return the exact binary64 tuple used for BigQuery float validation."""
|
|
65
48
|
return build_binary64_canonical_expr(col_ref, dialect=Platform.BIGQUERY.value)
|
|
@@ -124,12 +107,12 @@ class QueryGeneratorBigQuery(QueryGeneratorBase):
|
|
|
124
107
|
return self.normalize_bigquery_type(col.data_type)
|
|
125
108
|
|
|
126
109
|
def _float_column_reference(self, column) -> str:
|
|
127
|
-
"""Backtick-quote the column for the float
|
|
110
|
+
"""Backtick-quote the column for the float bit shim (BigQuery identifiers)."""
|
|
128
111
|
return f"`{column.name}`"
|
|
129
112
|
|
|
130
|
-
def
|
|
113
|
+
def build_float_bit_shim(self, column, col_ref: str) -> str:
|
|
131
114
|
"""Render *col_ref* as the shared IEEE-754 ``sign|exponent|significand`` tuple."""
|
|
132
|
-
value_expr =
|
|
115
|
+
value_expr = float_bit_input_expr(
|
|
133
116
|
col_ref,
|
|
134
117
|
getattr(column, "data_type", "") or "",
|
|
135
118
|
dialect=self.platform.value,
|
|
@@ -382,16 +382,22 @@ DECFLOAT:
|
|
|
382
382
|
# INTEGER (integer division truncates), so an un-cast AVG yields e.g. 5 for
|
|
383
383
|
# lengths averaging 5.1, while Snowflake's AVG returns 5.1 -> another spurious L2
|
|
384
384
|
# mismatch. CAST(... AS FLOAT) forces DB2 to average in floating point (gotcha W).
|
|
385
|
+
#
|
|
386
|
+
# 3. CHAR/NCHAR RTRIM (gotcha Z): DB2 CHAR is blank-padded; the Snowflake mirror is
|
|
387
|
+
# TEXT. Length metrics RTRIM the pad so they match VARCHAR/TEXT as stored.
|
|
388
|
+
# RTRIM (not TRIM) keeps leading spaces significant, matching the L3 hash and
|
|
389
|
+
# the RTRIM the Snowflake generator applies to the paired mirror column.
|
|
390
|
+
# VARCHAR itself is not trimmed.
|
|
385
391
|
|
|
386
392
|
CHARACTER:
|
|
387
393
|
min:
|
|
388
|
-
metric_query: MIN(CHARACTER_LENGTH(
|
|
394
|
+
metric_query: MIN(CHARACTER_LENGTH(RTRIM("{{ col_name }}"), CODEUNITS32))
|
|
389
395
|
metric_return_datatype: INTEGER
|
|
390
396
|
max:
|
|
391
|
-
metric_query: MAX(CHARACTER_LENGTH(
|
|
397
|
+
metric_query: MAX(CHARACTER_LENGTH(RTRIM("{{ col_name }}"), CODEUNITS32))
|
|
392
398
|
metric_return_datatype: INTEGER
|
|
393
399
|
avg:
|
|
394
|
-
metric_query: AVG(CAST(CHARACTER_LENGTH(
|
|
400
|
+
metric_query: AVG(CAST(CHARACTER_LENGTH(RTRIM("{{ col_name }}"), CODEUNITS32) AS FLOAT))
|
|
395
401
|
metric_return_datatype: FLOAT
|
|
396
402
|
count_distinct:
|
|
397
403
|
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
@@ -400,18 +406,18 @@ CHARACTER:
|
|
|
400
406
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
401
407
|
metric_return_datatype: INTEGER
|
|
402
408
|
count_empty:
|
|
403
|
-
metric_query: SUM(CASE WHEN
|
|
409
|
+
metric_query: SUM(CASE WHEN RTRIM("{{ col_name }}") = '' THEN 1 ELSE 0 END)
|
|
404
410
|
metric_return_datatype: INTEGER
|
|
405
411
|
|
|
406
412
|
CHAR:
|
|
407
413
|
min:
|
|
408
|
-
metric_query: MIN(CHARACTER_LENGTH(
|
|
414
|
+
metric_query: MIN(CHARACTER_LENGTH(RTRIM("{{ col_name }}"), CODEUNITS32))
|
|
409
415
|
metric_return_datatype: INTEGER
|
|
410
416
|
max:
|
|
411
|
-
metric_query: MAX(CHARACTER_LENGTH(
|
|
417
|
+
metric_query: MAX(CHARACTER_LENGTH(RTRIM("{{ col_name }}"), CODEUNITS32))
|
|
412
418
|
metric_return_datatype: INTEGER
|
|
413
419
|
avg:
|
|
414
|
-
metric_query: AVG(CAST(CHARACTER_LENGTH(
|
|
420
|
+
metric_query: AVG(CAST(CHARACTER_LENGTH(RTRIM("{{ col_name }}"), CODEUNITS32) AS FLOAT))
|
|
415
421
|
metric_return_datatype: FLOAT
|
|
416
422
|
count_distinct:
|
|
417
423
|
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
@@ -420,7 +426,7 @@ CHAR:
|
|
|
420
426
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
421
427
|
metric_return_datatype: INTEGER
|
|
422
428
|
count_empty:
|
|
423
|
-
metric_query: SUM(CASE WHEN
|
|
429
|
+
metric_query: SUM(CASE WHEN RTRIM("{{ col_name }}") = '' THEN 1 ELSE 0 END)
|
|
424
430
|
metric_return_datatype: INTEGER
|
|
425
431
|
|
|
426
432
|
VARCHAR:
|
|
@@ -443,16 +449,16 @@ VARCHAR:
|
|
|
443
449
|
metric_query: SUM(CASE WHEN CHARACTER_LENGTH("{{ col_name }}", CODEUNITS32) = 0 THEN 1 ELSE 0 END)
|
|
444
450
|
metric_return_datatype: INTEGER
|
|
445
451
|
|
|
446
|
-
# National character (Unicode) fixed-length: same metrics as CHAR (LENGTH(
|
|
452
|
+
# National character (Unicode) fixed-length: same metrics as CHAR (LENGTH(RTRIM)).
|
|
447
453
|
NCHAR:
|
|
448
454
|
min:
|
|
449
|
-
metric_query: MIN(CHARACTER_LENGTH(
|
|
455
|
+
metric_query: MIN(CHARACTER_LENGTH(RTRIM("{{ col_name }}"), CODEUNITS32))
|
|
450
456
|
metric_return_datatype: INTEGER
|
|
451
457
|
max:
|
|
452
|
-
metric_query: MAX(CHARACTER_LENGTH(
|
|
458
|
+
metric_query: MAX(CHARACTER_LENGTH(RTRIM("{{ col_name }}"), CODEUNITS32))
|
|
453
459
|
metric_return_datatype: INTEGER
|
|
454
460
|
avg:
|
|
455
|
-
metric_query: AVG(CAST(CHARACTER_LENGTH(
|
|
461
|
+
metric_query: AVG(CAST(CHARACTER_LENGTH(RTRIM("{{ col_name }}"), CODEUNITS32) AS FLOAT))
|
|
456
462
|
metric_return_datatype: FLOAT
|
|
457
463
|
count_distinct:
|
|
458
464
|
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
@@ -461,7 +467,7 @@ NCHAR:
|
|
|
461
467
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
462
468
|
metric_return_datatype: INTEGER
|
|
463
469
|
count_empty:
|
|
464
|
-
metric_query: SUM(CASE WHEN
|
|
470
|
+
metric_query: SUM(CASE WHEN RTRIM("{{ col_name }}") = '' THEN 1 ELSE 0 END)
|
|
465
471
|
metric_return_datatype: INTEGER
|
|
466
472
|
|
|
467
473
|
# National character (Unicode) varying: same metrics as VARCHAR (LENGTH).
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
# - TO_CHAR() is available but REJECTS the Oracle FM fill-mode prefix (SQL20476N).
|
|
15
15
|
# - {{ numeric_format_mask }} is a pre-built DB2-valid 9…90 mask (no FM prefix)
|
|
16
16
|
# from the query generator's _build_fm_to_char_mask override.
|
|
17
|
-
# - {{
|
|
17
|
+
# - {{ float_bit_shim }} expands to the IEEE-754 sign|exponent|significand tuple.
|
|
18
18
|
# - HEX(HASH(val, 0)) computes MD5 in DB2 11.5 (algorithm 0 = MD5) using the built-in
|
|
19
19
|
# SYSIBM.HASH scalar — no special privilege (unlike SYSPROC.HASH2, which is often absent).
|
|
20
20
|
# - Double-quoted column names handle lowercase/mixed-case identifiers.
|
|
@@ -33,27 +33,29 @@ INT: TRIM(TO_CHAR("{{ col_name }}", '{{ numeric_format_mask }}'))
|
|
|
33
33
|
BIGINT: TRIM(TO_CHAR("{{ col_name }}", '{{ numeric_format_mask }}'))
|
|
34
34
|
SMALLINT: TRIM(TO_CHAR("{{ col_name }}", '{{ numeric_format_mask }}'))
|
|
35
35
|
# Float types use the IEEE-754 binary64 tuple (same contract as Snowflake FLOAT).
|
|
36
|
-
FLOAT: '{{
|
|
37
|
-
REAL: '{{
|
|
38
|
-
DOUBLE: '{{
|
|
39
|
-
DOUBLE PRECISION: '{{
|
|
40
|
-
DECFLOAT: '{{
|
|
36
|
+
FLOAT: '{{ float_bit_shim }}'
|
|
37
|
+
REAL: '{{ float_bit_shim }}'
|
|
38
|
+
DOUBLE: '{{ float_bit_shim }}'
|
|
39
|
+
DOUBLE PRECISION: '{{ float_bit_shim }}'
|
|
40
|
+
DECFLOAT: '{{ float_bit_shim }}'
|
|
41
41
|
|
|
42
42
|
# ---- Character types (text family) ----
|
|
43
|
-
#
|
|
43
|
+
# CHAR/NCHAR are blank-padded; the Snowflake E2E/SCAI mirror is VARCHAR/TEXT.
|
|
44
|
+
# RTRIM trailing pads so L3 matches as-stored VARCHAR. VARCHAR/NVARCHAR stay
|
|
45
|
+
# identity (compared as stored). NULL passes through for the sentinel wrap.
|
|
44
46
|
CHARACTER: RTRIM("{{ col_name }}")
|
|
45
47
|
CHAR: RTRIM("{{ col_name }}")
|
|
46
|
-
VARCHAR:
|
|
48
|
+
VARCHAR: '"{{ col_name }}"'
|
|
47
49
|
# CLOB / DBCLOB → Snowflake VARCHAR. MD5 hash via HEX(HASH(.., 0)) (built-in SYSIBM.HASH,
|
|
48
50
|
# no special privilege), CASE-guarded for NULL. HASH rejects LOB arguments (SQL0171N), so the
|
|
49
51
|
# LOB is cast to VARCHAR(32672) — DB2's max VARCHAR — before hashing. Values beyond 32672 bytes
|
|
50
52
|
# are truncated for the hash; test fixtures stay within that bound.
|
|
51
53
|
CLOB: CASE WHEN "{{ col_name }}" IS NULL THEN NULL ELSE UPPER(HEX(HASH(CAST("{{ col_name }}" AS VARCHAR(32672)), 0))) END
|
|
52
54
|
DBCLOB: CASE WHEN "{{ col_name }}" IS NULL THEN NULL ELSE UPPER(HEX(HASH(CAST("{{ col_name }}" AS VARCHAR(32672)), 0))) END
|
|
53
|
-
# National character
|
|
54
|
-
#
|
|
55
|
+
# National character: NCHAR is blank-padded like CHAR; NVARCHAR is as-stored.
|
|
56
|
+
# NCLOB is a LOB, hashed via HEX(HASH(.., 0)) like DBCLOB.
|
|
55
57
|
NCHAR: RTRIM("{{ col_name }}")
|
|
56
|
-
NVARCHAR:
|
|
58
|
+
NVARCHAR: '"{{ col_name }}"'
|
|
57
59
|
NCLOB: CASE WHEN "{{ col_name }}" IS NULL THEN NULL ELSE UPPER(HEX(HASH(CAST("{{ col_name }}" AS VARCHAR(32672)), 0))) END
|
|
58
60
|
|
|
59
61
|
# ---- Boolean ----
|
|
@@ -84,4 +86,4 @@ TIME: TO_CHAR("{{ col_name }}", 'HH24:MI:SS')
|
|
|
84
86
|
TIMESTAMP: TO_CHAR("{{ col_name }}", 'YYYY-MM-DD') || 'T' || TO_CHAR("{{ col_name }}", 'HH24:MI:SS.FF6') || '000'
|
|
85
87
|
|
|
86
88
|
# ---- Default fallback ----
|
|
87
|
-
DEFAULT:
|
|
89
|
+
DEFAULT: CAST("{{ col_name }}" AS VARCHAR(1000))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{% import 'query_modifiers.sql.j2' as qm with context %}
|
|
2
|
-
-- DB2 L3 row hashing. Uses the Oracle-compatible SQL surface (||, NVL
|
|
2
|
+
-- DB2 L3 row hashing. Uses the Oracle-compatible SQL surface (||, NVL)
|
|
3
3
|
-- with DB2's built-in MD5 primitive HEX(HASH(expr, 0)) in place of Oracle's
|
|
4
4
|
-- STANDARD_HASH/RAWTOHEX. SYSIBM.HASH(expr, 0) returns the 16-byte MD5 digest
|
|
5
5
|
-- (algorithm 0 = MD5, no special privilege required, unlike SYSPROC.HASH2);
|
|
@@ -12,19 +12,18 @@ SELECT
|
|
|
12
12
|
{% if use_column_groups %}
|
|
13
13
|
{% for group in column_groups %}
|
|
14
14
|
{% if not loop.first %} || {% endif %}
|
|
15
|
-
UPPER(HEX(HASH(
|
|
15
|
+
UPPER(HEX(HASH(
|
|
16
16
|
{% for col in group %}
|
|
17
17
|
NVL("{{ col.name }}", '{{ null_hashing_sentinel }}')
|
|
18
18
|
{% if not loop.last %} || '{{ row_hash_column_delimiter }}' || {% endif %}
|
|
19
19
|
{% endfor %}
|
|
20
|
-
|
|
20
|
+
, 0)))
|
|
21
21
|
{% endfor %}
|
|
22
22
|
{% else %}
|
|
23
|
-
RTRIM(
|
|
24
23
|
{% for column in column_collection %}
|
|
25
24
|
NVL("{{ column.name }}", '{{ null_hashing_sentinel }}')
|
|
26
25
|
{% if not loop.last %} || '{{ row_hash_column_delimiter }}' || {% endif %}
|
|
27
|
-
{% endfor %}
|
|
26
|
+
{% endfor %}
|
|
28
27
|
{% endif %}
|
|
29
28
|
, 0))) AS ROW_MD5
|
|
30
29
|
FROM
|
|
@@ -34,9 +33,9 @@ FROM
|
|
|
34
33
|
{% endfor %}
|
|
35
34
|
{% for column in column_collection %}
|
|
36
35
|
{% if column.nullable %}
|
|
37
|
-
|
|
36
|
+
NVL({{ datatypes_normalization_renderer_templates[column.name] }}, '{{ null_hashing_sentinel }}') AS "{{ column.name }}"{% if not loop.last %},{% endif %}
|
|
38
37
|
{% else %}
|
|
39
|
-
|
|
38
|
+
{{ datatypes_normalization_renderer_templates[column.name] }} AS "{{ column.name }}"{% if not loop.last %},{% endif %}
|
|
40
39
|
{% endif %}
|
|
41
40
|
{% endfor %}
|
|
42
41
|
{{ qm.render_from_clause(query_modifiers, fully_qualified_name, 'src') }}
|
|
@@ -19,7 +19,7 @@ below give DB2 its own DB2-valid rendering that still matches Snowflake
|
|
|
19
19
|
Oracle ``REGEXP_REPLACE`` leading-zero wrapper is needed.
|
|
20
20
|
* ``render_normalization_template`` — bypasses Oracle's ``FM``+``REGEXP`` numeric
|
|
21
21
|
canonical wrapper and uses the base substitution with the DB2 mask.
|
|
22
|
-
* ``
|
|
22
|
+
* ``build_float_bit_shim`` — IEEE-754 ``sign|exponent|significand`` tuple (same
|
|
23
23
|
contract as Snowflake FLOAT). DB2 ``LN``/``POWER`` run in ``DOUBLE``.
|
|
24
24
|
"""
|
|
25
25
|
|
|
@@ -34,7 +34,7 @@ from snowflake.snowflake_data_validation.query.float_bit_normalization import (
|
|
|
34
34
|
build_binary64_canonical_expr,
|
|
35
35
|
)
|
|
36
36
|
from snowflake.snowflake_data_validation.query.numeric_scale_resolution import (
|
|
37
|
-
|
|
37
|
+
float_bit_input_expr,
|
|
38
38
|
)
|
|
39
39
|
from snowflake.snowflake_data_validation.query.query_generator_base import (
|
|
40
40
|
QueryGeneratorBase,
|
|
@@ -49,9 +49,6 @@ from snowflake.snowflake_data_validation.utils.constants import (
|
|
|
49
49
|
)
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
# Mantissa is normalized to [1, 10); one integer 9 plus 15 fractional zeros gives
|
|
53
|
-
# the same 15-decimal rounding Oracle's ROUND(mantissa, 15) + TM9 produces.
|
|
54
|
-
_DB2_MANTISSA_MASK = "9.000000000000000"
|
|
55
52
|
# Wide enough for BIGINT (19 digits) and DECIMAL(31); the trailing 0 forces the
|
|
56
53
|
# leading zero for |v| < 1 (matching Snowflake TO_VARCHAR).
|
|
57
54
|
_DB2_INTEGER_NINES = 31
|
|
@@ -70,42 +67,6 @@ def build_db2_float_bit_canonical_expr(col_ref: str) -> str:
|
|
|
70
67
|
return build_binary64_canonical_expr(ieee_expr, dialect=Platform.DB2.value)
|
|
71
68
|
|
|
72
69
|
|
|
73
|
-
def build_db2_float_tme_shim(col_ref: str) -> str:
|
|
74
|
-
"""DB2 analogue of ``build_oracle_float_tme_shim`` (DB2-valid casts/masks).
|
|
75
|
-
|
|
76
|
-
Identical LN/POWER canonical form, but the exponent is cast ``AS INTEGER``
|
|
77
|
-
(DB2 has no ``NUMBER`` type) and the mantissa is rendered with a plain
|
|
78
|
-
``9.0…0`` mask (DB2 ``TO_CHAR`` rejects Oracle's ``TM9``). The trailing-zero
|
|
79
|
-
trimming below still collapses ``1.000000000000000`` → ``1`` and drops the
|
|
80
|
-
dangling decimal point, matching Snowflake ``TME`` (e.g. ``100`` → ``1E2``).
|
|
81
|
-
"""
|
|
82
|
-
abs_ref = f"ABS({col_ref})"
|
|
83
|
-
log10 = f"(LN({abs_ref}) / LN(10))"
|
|
84
|
-
exp0 = f"CAST(FLOOR({log10}) AS INTEGER)"
|
|
85
|
-
mant0 = f"({col_ref} / POWER(10, {exp0}))"
|
|
86
|
-
exp_int = f"CASE WHEN ABS({mant0}) >= 10 THEN {exp0} + 1 WHEN ABS({mant0}) < 1 THEN {exp0} - 1 ELSE {exp0} END"
|
|
87
|
-
mantissa = f"({col_ref} / POWER(10, {exp_int}))"
|
|
88
|
-
mantissa_rounded = f"ROUND({mantissa}, 15)"
|
|
89
|
-
mantissa_base = f"TRIM(TO_CHAR({mantissa_rounded}, '{_DB2_MANTISSA_MASK}'))"
|
|
90
|
-
decimal_pos = f"NULLIF(INSTR({mantissa_base}, '.'), 0)"
|
|
91
|
-
# 2-arg SUBSTR (to end of string): DB2's 3-arg SUBSTR blank-pads the result to
|
|
92
|
-
# the requested length, which would leave trailing spaces that defeat the
|
|
93
|
-
# RTRIM('0') trailing-zero trim (Oracle's 3-arg SUBSTR returns only the
|
|
94
|
-
# available chars). The fraction is always the mask's 15 decimals.
|
|
95
|
-
fraction = f"SUBSTR({mantissa_base}, {decimal_pos} + 1)"
|
|
96
|
-
fraction_trimmed = f"RTRIM({fraction}, '0')"
|
|
97
|
-
mantissa_trimmed = (
|
|
98
|
-
f"CASE WHEN {decimal_pos} IS NULL THEN {mantissa_base} "
|
|
99
|
-
f"ELSE SUBSTR({mantissa_base}, 1, {decimal_pos} - 1) || "
|
|
100
|
-
f"CASE WHEN {fraction_trimmed} IS NULL OR {fraction_trimmed} = '' THEN '' ELSE '.' || {fraction_trimmed} END END"
|
|
101
|
-
)
|
|
102
|
-
return (
|
|
103
|
-
f"CASE WHEN {col_ref} IS NULL THEN NULL "
|
|
104
|
-
f"WHEN {col_ref} = 0 THEN '0E0' "
|
|
105
|
-
f"ELSE UPPER({mantissa_trimmed}) || 'E' || TRIM(TO_CHAR({exp_int})) END"
|
|
106
|
-
)
|
|
107
|
-
|
|
108
|
-
|
|
109
70
|
class QueryGeneratorDb2(QueryGeneratorOracle):
|
|
110
71
|
"""DB2 LUW query generator (see module docstring for the DB2-vs-Oracle rendering rationale)."""
|
|
111
72
|
|
|
@@ -141,10 +102,10 @@ class QueryGeneratorDb2(QueryGeneratorOracle):
|
|
|
141
102
|
"""Use base substitution: DB2's mask needs no Oracle ``FM``+``REGEXP`` wrapper."""
|
|
142
103
|
return QueryGeneratorBase.render_normalization_template(self, template, column)
|
|
143
104
|
|
|
144
|
-
def
|
|
105
|
+
def build_float_bit_shim(self, column, col_ref: str) -> str:
|
|
145
106
|
"""Render *col_ref* as the shared IEEE-754 ``sign|exponent|significand`` tuple."""
|
|
146
107
|
data_type = getattr(column, "data_type", "") or ""
|
|
147
|
-
value_expr =
|
|
108
|
+
value_expr = float_bit_input_expr(col_ref, data_type, dialect=self.platform.value)
|
|
148
109
|
return build_db2_float_bit_canonical_expr(value_expr)
|
|
149
110
|
|
|
150
111
|
# ------------------------------------------------------------------
|
|
@@ -42,9 +42,6 @@ from snowflake.snowflake_data_validation.utils.model.column_metadata import Colu
|
|
|
42
42
|
from snowflake.snowflake_data_validation.utils.qvci_fallback import (
|
|
43
43
|
object_type_render_value,
|
|
44
44
|
)
|
|
45
|
-
from snowflake.snowflake_data_validation.utils.redshift_tab_safe_rtrim import (
|
|
46
|
-
build_redshift_tab_safe_rtrim,
|
|
47
|
-
)
|
|
48
45
|
|
|
49
46
|
|
|
50
47
|
class SQLQueriesTemplateGenerator:
|
|
@@ -79,7 +76,6 @@ class SQLQueriesTemplateGenerator:
|
|
|
79
76
|
)
|
|
80
77
|
)
|
|
81
78
|
self.env.filters["escape_sql_literal"] = escape_sql_literal
|
|
82
|
-
self.env.globals["redshift_tab_safe_rtrim"] = build_redshift_tab_safe_rtrim
|
|
83
79
|
# Single source of truth for the NULL sentinel used by L3 row-MD5 and
|
|
84
80
|
# cell-validation normalization. Exposed to every template so the
|
|
85
81
|
# COALESCE fallback can keep a real SQL NULL distinct from "".
|
|
@@ -306,44 +306,43 @@ REAL:
|
|
|
306
306
|
|
|
307
307
|
CHAR:
|
|
308
308
|
min:
|
|
309
|
-
metric_query: MIN(LENGTH(
|
|
309
|
+
metric_query: MIN(LENGTH(RTRIM("{{ col_name }}")))
|
|
310
310
|
metric_return_datatype: INTEGER
|
|
311
311
|
max:
|
|
312
|
-
metric_query: MAX(LENGTH(
|
|
312
|
+
metric_query: MAX(LENGTH(RTRIM("{{ col_name }}")))
|
|
313
313
|
metric_return_datatype: INTEGER
|
|
314
314
|
avg:
|
|
315
|
-
metric_query: AVG(LENGTH(
|
|
315
|
+
metric_query: AVG(LENGTH(RTRIM("{{ col_name }}")))
|
|
316
316
|
metric_return_datatype: FLOAT
|
|
317
317
|
count_distinct:
|
|
318
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
318
|
+
metric_query: COUNT(DISTINCT RTRIM("{{ col_name }}"))
|
|
319
319
|
metric_return_datatype: INTEGER
|
|
320
320
|
count_null:
|
|
321
321
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
322
322
|
metric_return_datatype: INTEGER
|
|
323
|
-
# Oracle
|
|
324
|
-
# in Oracle), so use IS NULL rather than = '' to detect blank-only values.
|
|
323
|
+
# Oracle coerces '' to NULL; LENGTH = 0 matches the VARCHAR2 empty metric.
|
|
325
324
|
count_empty:
|
|
326
|
-
metric_query: SUM(CASE WHEN
|
|
325
|
+
metric_query: SUM(CASE WHEN LENGTH(RTRIM("{{ col_name }}")) = 0 THEN 1 ELSE 0 END)
|
|
327
326
|
metric_return_datatype: INTEGER
|
|
328
327
|
|
|
329
328
|
NCHAR:
|
|
330
329
|
min:
|
|
331
|
-
metric_query: MIN(LENGTH(
|
|
330
|
+
metric_query: MIN(LENGTH(RTRIM("{{ col_name }}")))
|
|
332
331
|
metric_return_datatype: INTEGER
|
|
333
332
|
max:
|
|
334
|
-
metric_query: MAX(LENGTH(
|
|
333
|
+
metric_query: MAX(LENGTH(RTRIM("{{ col_name }}")))
|
|
335
334
|
metric_return_datatype: INTEGER
|
|
336
335
|
avg:
|
|
337
|
-
metric_query: AVG(LENGTH(
|
|
336
|
+
metric_query: AVG(LENGTH(RTRIM("{{ col_name }}")))
|
|
338
337
|
metric_return_datatype: FLOAT
|
|
339
338
|
count_distinct:
|
|
340
|
-
metric_query: COUNT(DISTINCT "{{ col_name }}")
|
|
339
|
+
metric_query: COUNT(DISTINCT RTRIM("{{ col_name }}"))
|
|
341
340
|
metric_return_datatype: INTEGER
|
|
342
341
|
count_null:
|
|
343
342
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|
|
344
343
|
metric_return_datatype: INTEGER
|
|
345
344
|
count_empty:
|
|
346
|
-
metric_query: SUM(CASE WHEN
|
|
345
|
+
metric_query: SUM(CASE WHEN LENGTH(RTRIM("{{ col_name }}")) = 0 THEN 1 ELSE 0 END)
|
|
347
346
|
metric_return_datatype: INTEGER
|
|
348
347
|
|
|
349
348
|
VARCHAR2:
|
|
@@ -591,7 +590,7 @@ BOOL:
|
|
|
591
590
|
|
|
592
591
|
VECTOR:
|
|
593
592
|
count_distinct:
|
|
594
|
-
metric_query: 'COUNT(DISTINCT ({{
|
|
593
|
+
metric_query: 'COUNT(DISTINCT ({{ vector_bit_shim }}))'
|
|
595
594
|
metric_return_datatype: INTEGER
|
|
596
595
|
count_null:
|
|
597
596
|
metric_query: SUM(CASE WHEN "{{ col_name }}" IS NULL THEN 1 ELSE 0 END)
|