snowflake-data-validation 1.45.0__tar.gz → 1.45.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (708) hide show
  1. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/PKG-INFO +33 -1
  2. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/README.md +32 -0
  3. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/metadata_extractor_azure_synapse.py +0 -5
  4. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/query/query_generator_azure_synapse.py +3 -4
  5. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/script_writer/script_writer_azure_synapse.py +0 -2
  6. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_datatypes_normalization_templates.yaml +6 -0
  7. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/query/query_generator_bigquery.py +14 -1
  8. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/script_writer/script_writer_db2.py +0 -1
  9. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/executer/async_generation_executor.py +13 -4
  10. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/executer/source_validation_executor.py +16 -6
  11. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/executer/sync_validation_executor.py +65 -17
  12. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/extractor/metadata_extractor_base.py +20 -11
  13. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/extractor/sql_queries_template_generator.py +5 -1
  14. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/metadata_extractor_oracle.py +0 -9
  15. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/script_writer/script_writer_oracle.py +0 -2
  16. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/metadata_extractor_postgresql.py +0 -4
  17. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_get_columns_metadata.sql.j2 +10 -2
  18. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_table_metadata_query.sql.j2 +13 -2
  19. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/script_writer/script_writer_postgresql.py +0 -1
  20. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/__init__.py +18 -0
  21. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/_internal.py +104 -11
  22. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/_teradata_internal.py +12 -2
  23. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/data_validation_api.py +18 -0
  24. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/execution/query_executor.py +0 -2
  25. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/query_generation/__init__.py +18 -0
  26. snowflake_data_validation-1.45.1/src/snowflake/snowflake_data_validation/public/query_generation/schema_metrics_queries.py +375 -0
  27. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/snapshot/snapshot_generation.py +21 -7
  28. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/validation/metrics_validation.py +2 -0
  29. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/validation/schema_validation.py +123 -7
  30. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/query_generator_base.py +59 -9
  31. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/time_precision_resolution.py +16 -1
  32. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/metadata_extractor_redshift.py +0 -5
  33. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_cell_validation_data_select.sql.j2 +1 -1
  34. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_insert_template.sql.j2 +1 -1
  35. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_datatypes_normalization_templates.yaml +13 -8
  36. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_row_md5_select.sql.j2 +1 -0
  37. snowflake_data_validation-1.45.1/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_show_columns_query.sql.j2 +2 -0
  38. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/query/query_generator_redshift.py +173 -35
  39. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/script_writer/script_writer_redshift.py +0 -1
  40. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/script_writer/script_writer_base.py +7 -2
  41. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/metadata_extractor_snowflake.py +0 -2
  42. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_datatypes_normalization_templates.yaml +2 -2
  43. snowflake_data_validation-1.45.1/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_case_sensitive_columns.sql.j2 +16 -0
  44. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/query/query_generator_snowflake.py +6 -8
  45. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/metadata_extractor_sqlite.py +0 -4
  46. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/script_writer/script_writer_sqlite.py +0 -1
  47. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/metadata_extractor_sqlserver.py +0 -7
  48. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_datatypes_normalization_templates.yaml +3 -0
  49. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_table_metadata_query.sql.j2 +3 -0
  50. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/query/query_generator_sqlserver.py +44 -17
  51. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/script_writer_sqlserver.py +0 -2
  52. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_tz_normalization.py +16 -7
  53. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/metadata_extractor_teradata.py +0 -6
  54. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_get_columns_metadata.sql.j2 +8 -2
  55. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/query/query_generator_teradata.py +13 -6
  56. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/teradata_iso_normalization.py +0 -5
  57. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/constants.py +17 -0
  58. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/helpers/helper_dataframe.py +0 -8
  59. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/iceberg_dv_common.py +161 -114
  60. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/iso_dv_common.py +5 -12
  61. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/model/table_context.py +6 -5
  62. snowflake_data_validation-1.45.1/src/snowflake/snowflake_data_validation/validation/column_pairing.py +74 -0
  63. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/data_validator_base.py +21 -0
  64. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/metrics_data_validator.py +16 -42
  65. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/schema_data_validator.py +29 -55
  66. snowflake_data_validation-1.45.1/tests/unit/Postgresql/test_postgresql_enum_metadata.py +128 -0
  67. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/query/test_query_generator_redshift.py +98 -0
  68. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/test_redshift_collation.py +3 -4
  69. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/test_redshift_hllsketch_templates.py +6 -3
  70. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/test_redshift_spatial_templates.py +23 -19
  71. snowflake_data_validation-1.45.1/tests/unit/Redshift/test_redshift_split_schema_query.py +234 -0
  72. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/test_redshift_super_normalization.py +8 -30
  73. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Teradata/test_query_generator_teradata.py +50 -0
  74. snowflake_data_validation-1.45.1/tests/unit/Teradata/test_teradata_columns_metadata_precision_scale.py +99 -0
  75. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/azure_synapse/test_azure_synapse_metadata_extractor.py +5 -7
  76. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/bigquery/test_query_generator_bigquery.py +57 -0
  77. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/db2/test_db2_metadata_extractor.py +3 -6
  78. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_metadata_extractor_oracle_vector.py +0 -4
  79. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_metadata_extractor.py +0 -14
  80. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/query/test_time_fraction_rendering.py +5 -2
  81. snowflake_data_validation-1.45.1/tests/unit/snowflake/test_snowflake_get_case_sensitive_columns.py +65 -0
  82. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_metadata_extractor_sqlserver_vector.py +0 -1
  83. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_datetimeoffset_full_ingest_utc.py +29 -16
  84. snowflake_data_validation-1.45.1/tests/unit/sqlserver/test_sqlserver_datetimeoffset_physical_target.py +177 -0
  85. snowflake_data_validation-1.45.1/tests/unit/sqlserver/test_sqlserver_l1_character_length.py +77 -0
  86. snowflake_data_validation-1.45.1/tests/unit/test_case_sensitive_column_pairing.py +266 -0
  87. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_data_validator.py +37 -0
  88. snowflake_data_validation-1.45.1/tests/unit/test_extraction_keeps_catalog_column_spelling.py +45 -0
  89. snowflake_data_validation-1.45.1/tests/unit/test_fetch_schema_metadata.py +154 -0
  90. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_get_target_cols.py +45 -0
  91. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_helper_dataframe.py +3 -15
  92. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_iceberg_dv_l3_normalization.py +208 -82
  93. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_iceberg_v2_metrics_exclusion.py +23 -11
  94. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_iso_dv_common.py +37 -2
  95. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_result_set_snapshot_generation.py +11 -1
  96. snowflake_data_validation-1.45.1/tests/unit/test_schema_accepted_native_datatypes.py +291 -0
  97. snowflake_data_validation-1.45.1/tests/unit/test_schema_query_capability.py +93 -0
  98. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_source_validation_executor.py +25 -19
  99. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_spatial_wkt_canonicalization.py +2 -2
  100. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_sql_catalog_template_guard.py +5 -1
  101. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_sql_literal_jinja_filter.py +3 -8
  102. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_sync_executor_qvci_fallback.py +10 -2
  103. snowflake_data_validation-1.45.1/tests/unit/test_sync_schema_validation_real_callbacks.py +87 -0
  104. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_sync_validation_executor.py +11 -10
  105. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_table_metadata_processor.py +246 -0
  106. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_table_snapshot_generation.py +11 -6
  107. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_teradata_type_code_mapping.py +19 -0
  108. snowflake_data_validation-1.45.0/src/snowflake/snowflake_data_validation/public/query_generation/schema_metrics_queries.py +0 -191
  109. snowflake_data_validation-1.45.0/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_table_metadata_query.sql.j2 +0 -55
  110. snowflake_data_validation-1.45.0/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_case_sensitive_columns.sql.j2 +0 -8
  111. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/.gitignore +0 -0
  112. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/LICENSE +0 -0
  113. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/docs/README.md +0 -0
  114. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/pyproject.toml +0 -0
  115. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/__init__.py +0 -0
  116. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/__init__.py +0 -0
  117. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/azure_synapse_arguments_manager.py +0 -0
  118. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/connector/__init__.py +0 -0
  119. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/connector/connector_azure_synapse.py +0 -0
  120. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/connector/connector_factory_azure_synapse.py +0 -0
  121. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/__init__.py +0 -0
  122. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_cell_validation_data_select.sql.j2 +0 -0
  123. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_column_metrics_templates.yaml +0 -0
  124. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_datatypes_normalization_templates.yaml +0 -0
  125. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_get_columns_metadata.sql.j2 +0 -0
  126. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_row_count_query.sql.j2 +0 -0
  127. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_row_md5_select.sql.j2 +0 -0
  128. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_table_metadata_query.sql.j2 +0 -0
  129. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/extractor/templates/azure_synapse_to_snowflake_datatypes_mapping_template.yaml +0 -0
  130. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/model/__init__.py +0 -0
  131. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/model/azure_synapse_credentials_connection.py +0 -0
  132. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/query/__init__.py +0 -0
  133. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/azure_synapse/script_writer/__init__.py +0 -0
  134. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/__init__.py +0 -0
  135. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/extractor/__init__.py +0 -0
  136. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_cell_validation_data_select.sql.j2 +0 -0
  137. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_column_metrics_templates.yaml +0 -0
  138. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_get_columns_metadata.sql.j2 +0 -0
  139. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_row_count_query.sql.j2 +0 -0
  140. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_row_md5_select.sql.j2 +0 -0
  141. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_table_metadata_query.sql.j2 +0 -0
  142. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/extractor/templates/bigquery_to_snowflake_datatypes_mapping_template.yaml +0 -0
  143. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/bigquery/query/__init__.py +0 -0
  144. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/comparison_orchestrator.py +0 -0
  145. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/__init__.py +0 -0
  146. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/configuration_loader.py +0 -0
  147. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/model/configuration_model.py +0 -0
  148. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/model/connection_types.py +0 -0
  149. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/model/connections/__init__.py +0 -0
  150. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/model/logging_configuration.py +0 -0
  151. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/model/table_configuration.py +0 -0
  152. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/model/validation_configuration.py +0 -0
  153. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/model/view_configuration.py +0 -0
  154. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/configuration/singleton.py +0 -0
  155. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/connector/__init__.py +0 -0
  156. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/connector/connector_base.py +0 -0
  157. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/connector/connector_factory_base.py +0 -0
  158. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/connector/connector_failure_tracker.py +0 -0
  159. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/__init__.py +0 -0
  160. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/db2_lob_normalization.py +0 -0
  161. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/__init__.py +0 -0
  162. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/metadata_extractor_db2.py +0 -0
  163. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_cell_validation_data_select.sql.j2 +0 -0
  164. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_column_metrics_templates.yaml +0 -0
  165. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_datatypes_normalization_templates.yaml +0 -0
  166. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_get_columns_metadata.sql.j2 +0 -0
  167. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_row_count_query.sql.j2 +0 -0
  168. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_row_md5_select.sql.j2 +0 -0
  169. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_table_metadata_query.sql.j2 +0 -0
  170. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/extractor/templates/db2_to_snowflake_datatypes_mapping_template.yaml +0 -0
  171. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/query/__init__.py +0 -0
  172. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/query/query_generator_db2.py +0 -0
  173. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/db2/script_writer/__init__.py +0 -0
  174. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/executer/__init__.py +0 -0
  175. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/executer/async_validation_executor.py +0 -0
  176. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/executer/base_validation_executor.py +0 -0
  177. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/executer/executor_factory.py +0 -0
  178. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/executer/extractor_types.py +0 -0
  179. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/extractor/__init__.py +0 -0
  180. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/__init__.py +0 -0
  181. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/__init__.py +0 -0
  182. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_cell_validation_data_select.sql.j2 +0 -0
  183. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_column_metrics_templates.yaml +0 -0
  184. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_datatypes_normalization_templates.yaml +0 -0
  185. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_get_columns_metadata.sql.j2 +0 -0
  186. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_row_count_query.sql.j2 +0 -0
  187. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_row_md5_select.sql.j2 +0 -0
  188. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_table_metadata_query.sql.j2 +0 -0
  189. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/extractor/templates/oracle_to_snowflake_datatypes_mapping_template.yaml +0 -0
  190. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/oracle_bfile.py +0 -0
  191. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/oracle_iso_normalization.py +0 -0
  192. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/oracle_lob_normalization.py +0 -0
  193. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/oracle_statement_functions.py +0 -0
  194. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/oracle_vector_extraction.py +0 -0
  195. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/oracle_xmltype.py +0 -0
  196. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/query/__init__.py +0 -0
  197. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/query/query_generator_oracle.py +0 -0
  198. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/oracle/script_writer/__init__.py +0 -0
  199. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/orchestration/html_report/__init__.py +0 -0
  200. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/orchestration/html_report/html_report_builder.py +0 -0
  201. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/orchestration/html_report/report_metadata.py +0 -0
  202. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/orchestration/parallel_execution_engine.py +0 -0
  203. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/orchestration/table_metadata_processor.py +0 -0
  204. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/orchestration/validation_progress_reporter.py +0 -0
  205. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/orchestration/view_preprocessor.py +0 -0
  206. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/__init__.py +0 -0
  207. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/connector/__init__.py +0 -0
  208. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/connector/connector_factory_postgresql.py +0 -0
  209. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/connector/connector_postgresql.py +0 -0
  210. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/__init__.py +0 -0
  211. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_cell_validation_data_select.sql.j2 +0 -0
  212. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_chunk_row_concatenated_insert_template.sql.j2 +0 -0
  213. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_chunk_row_concatenated_table_template.sql.j2 +0 -0
  214. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_chunk_row_md5_insert_template.sql.j2 +0 -0
  215. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_chunk_row_md5_table_template.sql.j2 +0 -0
  216. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_column_metrics_templates.yaml +0 -0
  217. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_datatypes_normalization_templates.yaml +0 -0
  218. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_extract_md5_rows_chunk.sql.j2 +0 -0
  219. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_row_count_query.sql.j2 +0 -0
  220. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_row_md5_select.sql.j2 +0 -0
  221. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/extractor/templates/postgresql_to_snowflake_datatypes_mapping_template.yaml +0 -0
  222. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/model/__init__.py +0 -0
  223. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/model/postgresql_credentials_connection.py +0 -0
  224. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/postgresql_arguments_manager.py +0 -0
  225. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/postgresql_tz_normalization.py +0 -0
  226. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/query/__init__.py +0 -0
  227. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/query/charset_normalization.py +0 -0
  228. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/query/query_generator_postgresql.py +0 -0
  229. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/postgresql/script_writer/__init__.py +0 -0
  230. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/DATA_VALIDATION_API_OVERVIEW.md +0 -0
  231. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/async_mode/__init__.py +0 -0
  232. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/async_mode/file_loader.py +0 -0
  233. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/async_mode/script_writer.py +0 -0
  234. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/cli/__init__.py +0 -0
  235. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/cli/commands.py +0 -0
  236. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/configuration/__init__.py +0 -0
  237. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/connectors/__init__.py +0 -0
  238. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/context/__init__.py +0 -0
  239. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/enums/__init__.py +0 -0
  240. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/execution/__init__.py +0 -0
  241. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/generators/__init__.py +0 -0
  242. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/metadata/__init__.py +0 -0
  243. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/model/__init__.py +0 -0
  244. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/model/data_validation_exception.py +0 -0
  245. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/model/generated_query.py +0 -0
  246. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/model/metrics_result_shape.py +0 -0
  247. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/model/query_execution_result.py +0 -0
  248. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/model/query_generator_factory.py +0 -0
  249. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/model/result_set.py +0 -0
  250. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/model/validation_progress_callback.py +0 -0
  251. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/model/validation_result.py +0 -0
  252. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/query_generation/metadata_queries.py +0 -0
  253. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/query_generation/row_validation_queries.py +0 -0
  254. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/query_validation/__init__.py +0 -0
  255. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/query_validation/query_comparison.py +0 -0
  256. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/reshape/__init__.py +0 -0
  257. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/reshape/metrics_reshape.py +0 -0
  258. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/result_set_validation/__init__.py +0 -0
  259. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/result_set_validation/result_set_comparison.py +0 -0
  260. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/snapshot/__init__.py +0 -0
  261. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/snapshot/snapshot_validation.py +0 -0
  262. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/utils/__init__.py +0 -0
  263. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/utils/helpers.py +0 -0
  264. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/validation/__init__.py +0 -0
  265. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/validation/cell_validation.py +0 -0
  266. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/public/validation/row_validation.py +0 -0
  267. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/__init__.py +0 -0
  268. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/charset_normalization.py +0 -0
  269. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/chunk_md5_tiered.py +0 -0
  270. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/decimal_text_normalization.py +0 -0
  271. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/extractor/templates/query_column_metrics_templates.yaml +0 -0
  272. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/extractor/templates/query_datatypes_normalization_templates.yaml +0 -0
  273. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/extractor/templates/query_modifiers.sql.j2 +0 -0
  274. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/float_aggregate_reduction.py +0 -0
  275. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/float_bit_normalization.py +0 -0
  276. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/numeric_scale_resolution.py +0 -0
  277. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/query/query_generator_query.py +0 -0
  278. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/query_arguments_manager.py +0 -0
  279. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/sql_type_families.py +0 -0
  280. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/tsql_float_remainder.py +0 -0
  281. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/query/vector_element_kind.py +0 -0
  282. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/__init__.py +0 -0
  283. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/connector/__init__.py +0 -0
  284. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/connector/connector_factory_redshift.py +0 -0
  285. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/connector/connector_redshift.py +0 -0
  286. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_concatenated_table_template.sql.j2 +0 -0
  287. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_insert_template.sql.j2 +0 -0
  288. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_chunk_row_md5_table_template.sql.j2 +0 -0
  289. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_column_metrics_templates.yaml +0 -0
  290. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_extract_md5_rows_chunk.sql.j2 +0 -0
  291. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_get_columns_metadata.sql.j2 +0 -0
  292. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_row_count_query.sql.j2 +0 -0
  293. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/extractor/templates/redshift_to_snowflake_datatypes_mapping_template.yaml +0 -0
  294. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/model/__init__.py +0 -0
  295. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/model/redshift_credentials_connection.py +0 -0
  296. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/query/__init__.py +0 -0
  297. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/query/charset_normalization.py +0 -0
  298. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/redshift_arguments_manager.py +0 -0
  299. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/redshift_super_normalization.py +0 -0
  300. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/redshift/script_writer/__init__.py +0 -0
  301. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_cell_validation_data_select.sql.j2 +0 -0
  302. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_column_metrics_templates.yaml +0 -0
  303. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/result_set_datatypes_normalization_templates.yaml +0 -0
  304. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/result_set/extractor/templates/snowflake_to_result_set_datatypes_mapping_template.yaml +0 -0
  305. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/result_set/query/query_generator_result_set.py +0 -0
  306. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/result_set/result_set_arguments_manager.py +0 -0
  307. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/script_writer/__init__.py +0 -0
  308. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/__init__.py +0 -0
  309. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_factory_snowflake.py +0 -0
  310. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/connector/connector_snowflake.py +0 -0
  311. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/_wkt_despace.sql.j2 +0 -0
  312. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_cell_validation_data_select.sql.j2 +0 -0
  313. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_concatenated_template.sql.j2 +0 -0
  314. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_chunk_row_md5_template.sql.j2 +0 -0
  315. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_column_metrics_templates.yaml +0 -0
  316. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_extract_md5_rows_chunk.sql.j2 +0 -0
  317. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_get_columns_metadata.sql.j2 +0 -0
  318. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_row_count_query.sql.j2 +0 -0
  319. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_row_md5_select.sql.j2 +0 -0
  320. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_table_metadata_query.sql.j2 +0 -0
  321. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_temporary_table_from_view_template.sql.j2 +0 -0
  322. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/extractor/templates/snowflake_to_snowflake_datatypes_mapping_template.yaml +0 -0
  323. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/l3/__init__.py +0 -0
  324. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/l3/pushdown_diff_sql.py +0 -0
  325. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/l3/signature_external_table.py +0 -0
  326. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/l3/warm_start.py +0 -0
  327. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/model/__init__.py +0 -0
  328. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_credentials_connection.py +0 -0
  329. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_default_connection.py +0 -0
  330. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/model/snowflake_named_connection.py +0 -0
  331. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/query/__init__.py +0 -0
  332. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/query/charset_normalization.py +0 -0
  333. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/script_writer/__init__.py +0 -0
  334. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/script_writer/script_writer_snowflake.py +0 -0
  335. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/snowflake/snowflake_arguments_manager.py +0 -0
  336. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/__init__.py +0 -0
  337. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/connector/__init__.py +0 -0
  338. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/connector/connector_factory_sqlite.py +0 -0
  339. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/connector/connector_sqlite.py +0 -0
  340. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/__init__.py +0 -0
  341. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_cell_validation_data_select.sql.j2 +0 -0
  342. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_column_metrics_templates.yaml +0 -0
  343. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_compute_md5_sql.j2 +0 -0
  344. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_datatypes_normalization_templates.yaml +0 -0
  345. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_extract_md5_rows_chunk.sql.j2 +0 -0
  346. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_get_columns_metadata.sql.j2 +0 -0
  347. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_row_count_query.sql.j2 +0 -0
  348. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_row_md5_select.sql.j2 +0 -0
  349. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_table_metadata_query.sql.j2 +0 -0
  350. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_to_snowflake_datatypes_mapping_template.yaml +0 -0
  351. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/extractor/templates/sqlite_to_sqlite_datatypes_mapping_template.yaml +0 -0
  352. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/model/__init__.py +0 -0
  353. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/model/sqlite_connection.py +0 -0
  354. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/query/__init__.py +0 -0
  355. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/query/query_generator_sqlite.py +0 -0
  356. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlite/script_writer/__init__.py +0 -0
  357. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/__init__.py +0 -0
  358. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/connector/__init__.py +0 -0
  359. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_factory_sql_server.py +0 -0
  360. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/connector/connector_sql_server.py +0 -0
  361. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/__init__.py +0 -0
  362. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_cell_validation_data_select.sql.j2 +0 -0
  363. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_column_metrics_templates.yaml +0 -0
  364. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_compute_md5_sql.j2 +0 -0
  365. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_extract_md5_rows_chunk.sql.j2 +0 -0
  366. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_columns_metadata.sql.j2 +0 -0
  367. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_get_temporary_table_internal_identifier_template.sql.j2 +0 -0
  368. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_row_count_query.sql.j2 +0 -0
  369. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_row_md5_select.sql.j2 +0 -0
  370. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_temporary_table_from_view_template.sql.j2 +0 -0
  371. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/extractor/templates/sqlserver_to_snowflake_datatypes_mapping_template.yaml +0 -0
  372. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/model/__init__.py +0 -0
  373. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/model/sqlserver_credentials_connection.py +0 -0
  374. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/query/__init__.py +0 -0
  375. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/query/charset_normalization.py +0 -0
  376. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/script_writer/__init__.py +0 -0
  377. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_arguments_manager.py +0 -0
  378. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_string_length_normalization.py +0 -0
  379. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/sqlserver/sqlserver_uniqueidentifier_normalization.py +0 -0
  380. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/table_partitioning_strategy.md +0 -0
  381. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/__init__.py +0 -0
  382. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/connector/__init__.py +0 -0
  383. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/connector/connector_factory_teradata.py +0 -0
  384. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/connector/connector_teradata.py +0 -0
  385. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/__init__.py +0 -0
  386. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_cell_validation_data_select.sql.j2 +0 -0
  387. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_column_metrics_templates.yaml +0 -0
  388. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_compute_md5_sql.j2 +0 -0
  389. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_concatenated.sql.j2 +0 -0
  390. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_create_row_md5.sql.j2 +0 -0
  391. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_datatypes_normalization_templates.yaml +0 -0
  392. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_extract_md5_rows_chunk.sql.j2 +0 -0
  393. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_row_count_query.sql.j2 +0 -0
  394. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_row_md5_select.sql.j2 +0 -0
  395. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_table_metadata_query.sql.j2 +0 -0
  396. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/extractor/templates/teradata_to_snowflake_datatypes_mapping_template.yaml +0 -0
  397. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/model/__init__.py +0 -0
  398. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/model/teradata_credentials_connection.py +0 -0
  399. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/query/__init__.py +0 -0
  400. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/query/charset_normalization.py +0 -0
  401. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/script_writer/__init__.py +0 -0
  402. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/script_writer/script_writer_teradata.py +0 -0
  403. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/teradata/teradata_arguments_manager.py +0 -0
  404. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/__init__.py +0 -0
  405. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/arguments_manager_base.py +0 -0
  406. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/arguments_manager_factory.py +0 -0
  407. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/base_output_handler.py +0 -0
  408. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/catalog_column_size.py +0 -0
  409. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/column_grouping.py +0 -0
  410. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/column_partitioning_strategy.py +0 -0
  411. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/configuration_file_editor.py +0 -0
  412. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/configuration_file_generator.py +0 -0
  413. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/configuration_file_synchronizer.py +0 -0
  414. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/connection_pool.py +0 -0
  415. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/connector_factory.py +0 -0
  416. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/console_output_handler.py +0 -0
  417. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/context.py +0 -0
  418. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/cpu_optimizer.py +0 -0
  419. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/dv_tracing.py +0 -0
  420. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/error_classifier.py +0 -0
  421. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/helper.py +0 -0
  422. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/helpers/helper_database.py +0 -0
  423. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/helpers/helper_io.py +0 -0
  424. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/helpers/helper_misc.py +0 -0
  425. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/helpers/helper_polars_cast.py +0 -0
  426. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/helpers/helper_query_result.py +0 -0
  427. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/helpers/helper_templates.py +0 -0
  428. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/index_key_format.py +0 -0
  429. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/interval_common.py +0 -0
  430. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/lob_source_types.py +0 -0
  431. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/logging_config.py +0 -0
  432. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/logging_utils.py +0 -0
  433. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/measure_collation.py +0 -0
  434. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/model/chunk.py +0 -0
  435. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/model/column_metadata.py +0 -0
  436. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/model/column_selection.py +0 -0
  437. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/model/custom_templates.py +0 -0
  438. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/model/table_column_metadata.py +0 -0
  439. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/model/templates_loader_manager.py +0 -0
  440. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/period_common.py +0 -0
  441. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/progress_reporter.py +0 -0
  442. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/qvci_fallback.py +0 -0
  443. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/row_partitioning_strategy.py +0 -0
  444. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/row_validation_lob_exclusion.py +0 -0
  445. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/run_context.py +0 -0
  446. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/semi_structured_json_canonicalization.py +0 -0
  447. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/shutdown_coordinator.py +0 -0
  448. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/snapshot_validation_statements.py +0 -0
  449. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/telemetry.py +0 -0
  450. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/templates/configuration_file_templates.py +0 -0
  451. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/teradata_string_rtrim.py +0 -0
  452. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/thread_safe_singleton.py +0 -0
  453. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/validation_utils.py +0 -0
  454. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/vector_common.py +0 -0
  455. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/utils/vector_normalization.py +0 -0
  456. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/__init__.py +0 -0
  457. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/accepted_transformation.py +0 -0
  458. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/cell_data_validator.py +0 -0
  459. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/comparison_codec.py +0 -0
  460. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/dataframe_validator_base.py +0 -0
  461. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/metrics_tolerance.py +0 -0
  462. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/object_type_criterion.py +0 -0
  463. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/__init__.py +0 -0
  464. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/base.py +0 -0
  465. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/db2.py +0 -0
  466. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/redshift.py +0 -0
  467. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/registry.py +0 -0
  468. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/snowflake.py +0 -0
  469. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/sqlite.py +0 -0
  470. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/sqlserver.py +0 -0
  471. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/platform_text_codec/teradata.py +0 -0
  472. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/query_validator.py +0 -0
  473. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/result_set_validator.py +0 -0
  474. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/results_summary_report.py +0 -0
  475. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/row_data_validator.py +0 -0
  476. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/row_validation_report_buffer.py +0 -0
  477. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/validation_database/__init__.py +0 -0
  478. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/validation_database/sqlite_validation_connection.py +0 -0
  479. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/validation_database/validation_database_connection_base.py +0 -0
  480. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/validation_database_manager.py +0 -0
  481. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/validation_execution_context.py +0 -0
  482. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/validation_report_buffer.py +0 -0
  483. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/src/snowflake/snowflake_data_validation/validation/validation_report_status.py +0 -0
  484. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/.coveragerc +0 -0
  485. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/conftest.py +0 -0
  486. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/integration/.coveragerc +0 -0
  487. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/integration/Redshift/test_metadata_extractor_integration.py +0 -0
  488. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/integration/test_async_generation_integration.py +0 -0
  489. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/integration/test_async_validation_integration.py +0 -0
  490. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/integration/test_reference_integration.py +0 -0
  491. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/integration/test_source_validation_integration.py +0 -0
  492. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/integration/test_sync_validation_integration.py +0 -0
  493. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Postgresql/test_postgresql_bit_count_distinct.py +0 -0
  494. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Postgresql/test_postgresql_collation.py +0 -0
  495. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Postgresql/test_postgresql_json_cell_validation.py +0 -0
  496. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Postgresql/test_postgresql_jsonb_row_hash.py +0 -0
  497. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Postgresql/test_postgresql_numeric_leading_zero.py +0 -0
  498. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Postgresql/test_postgresql_spatial_templates.py +0 -0
  499. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/model/test_redshift_credentials_connection.py +0 -0
  500. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/script_writer/test_script_writer_redshift.py +0 -0
  501. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/test_connector_redshift.py +0 -0
  502. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/test_redshift_arguments_manager.py +0 -0
  503. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/test_redshift_columns_metadata_template.py +0 -0
  504. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/test_redshift_timetz_sentinel_normalization.py +0 -0
  505. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Redshift/test_redshift_varchar_count_distinct.py +0 -0
  506. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Teradata/test_connector_teradata.py +0 -0
  507. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Teradata/test_metadata_extractor_teradata.py +0 -0
  508. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Teradata/test_period_varchar_l1.py +0 -0
  509. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Teradata/test_teradata_collation.py +0 -0
  510. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Teradata/test_teradata_row_md5_select_template.py +0 -0
  511. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Teradata/test_teradata_spatial_templates.py +0 -0
  512. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Teradata/test_teradata_view_generate_boundary.py +0 -0
  513. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/Teradata/test_teradata_view_l1_metadata_templates.py +0 -0
  514. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/__init__.py +0 -0
  515. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/custom_templates_loader/snowflake_column_metrics_templates.yaml +0 -0
  516. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/custom_templates_loader/snowflake_datatypes_normalization_templates.yaml +0 -0
  517. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/custom_templates_loader/snowflake_table_metadata_query.sql.j2 +0 -0
  518. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_configuration_loader/test_load_configuration_model/conf.yaml +0 -0
  519. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_configuration_loader/test_load_configuration_model_reading_file_exception/conf.yaml +0 -0
  520. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_helpers/dummy_configuration_file.json +0 -0
  521. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_helpers/dummy_connection_source_db.toml +0 -0
  522. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_helpers/dummy_datatypes_normalization_template.yaml +0 -0
  523. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_helpers/dummy_datatypes_template.yaml +0 -0
  524. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_helpers/dummy_metrics_template.yaml +0 -0
  525. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_helpers/dummy_metrics_template_datatypes.yaml +0 -0
  526. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_helpers/dummy_template.csv +0 -0
  527. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_helpers/not_valid_format.yaml +0 -0
  528. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_templates_loader_manager/snowflake_column_metrics_templates.yaml +0 -0
  529. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/assets/test_templates_loader_manager/snowflake_datatypes_normalization_templates.yaml +0 -0
  530. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/azure_synapse/__init__.py +0 -0
  531. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/azure_synapse/test_azure_synapse_credentials_connection.py +0 -0
  532. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/azure_synapse/test_azure_synapse_l3_convert_normalization.py +0 -0
  533. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/azure_synapse/test_azure_synapse_metrics_templates.py +0 -0
  534. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/azure_synapse/test_azure_synapse_query_generator.py +0 -0
  535. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/azure_synapse/test_azure_synapse_row_queries.py +0 -0
  536. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/azure_synapse/test_connector_azure_synapse.py +0 -0
  537. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/azure_synapse/test_connector_factory_azure_synapse.py +0 -0
  538. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/bigquery/__init__.py +0 -0
  539. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/bigquery/test_bigquery_l1_string_length.py +0 -0
  540. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/bigquery/test_bigquery_spatial_templates.py +0 -0
  541. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/bigquery/test_query_generator_factory_bigquery.py +0 -0
  542. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/conftest.py +0 -0
  543. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/db2/__init__.py +0 -0
  544. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/db2/test_db2_lob_dv_generation.py +0 -0
  545. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/db2/test_db2_query_generator.py +0 -0
  546. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/db2/test_db2_registration.py +0 -0
  547. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/db2/test_db2_xml_long_dv_generation.py +0 -0
  548. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/db2/test_db2_xml_long_metrics.py +0 -0
  549. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/__init__.py +0 -0
  550. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_configured_index_columns.py +0 -0
  551. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_iso_normalization.py +0 -0
  552. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_lob_dv_generation.py +0 -0
  553. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_lob_normalization.py +0 -0
  554. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_metrics_templates.py +0 -0
  555. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_normalization_templates.py +0 -0
  556. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_query_generator.py +0 -0
  557. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_query_modifiers.py +0 -0
  558. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_quoted_identifiers.py +0 -0
  559. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/oracle/test_oracle_type_mappings.py +0 -0
  560. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/query/test_chunk_md5_tiered.py +0 -0
  561. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/snowflake/test_snowflake_spatial_metrics_templates.py +0 -0
  562. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlite/__init__.py +0 -0
  563. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlite/test_connector_factory_sqlite.py +0 -0
  564. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlite/test_connector_sqlite.py +0 -0
  565. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlite/test_metadata_extractor_sqlite.py +0 -0
  566. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlite/test_metadata_query_template_sqlite.py +0 -0
  567. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlite/test_query_generator_sqlite.py +0 -0
  568. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlite/test_script_writer_sqlite.py +0 -0
  569. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/__init__.py +0 -0
  570. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_connector_factory_sql_server.py +0 -0
  571. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_datetimeoffset_metrics_utc.py +0 -0
  572. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_json.py +0 -0
  573. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_l1_catalog.py +0 -0
  574. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_l3_convert_normalization.py +0 -0
  575. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_length_metrics_chars.py +0 -0
  576. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_row_count_overflow.py +0 -0
  577. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_row_queries.py +0 -0
  578. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_spatial_l1_metadata.py +0 -0
  579. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_spatial_metrics_templates.py +0 -0
  580. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_string_length_pairing.py +0 -0
  581. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_uniqueidentifier_l3_normalization.py +0 -0
  582. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_sqlserver_xml_image_metrics.py +0 -0
  583. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/sqlserver/test_tsql_integer_stddev_exact.py +0 -0
  584. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_accepted_transformation.py +0 -0
  585. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_arguments_manager_base.py +0 -0
  586. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_arguments_manager_factory.py +0 -0
  587. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_batched_metrics_queries.py +0 -0
  588. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_boolean_binary_canonical_templates.py +0 -0
  589. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_catalog_column_size.py +0 -0
  590. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_catalog_queries_take_actual_names.py +0 -0
  591. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_cell_data_validator.py +0 -0
  592. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_cell_data_validator_threading.py +0 -0
  593. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_cell_validation_query_generation.py +0 -0
  594. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_charset_normalization.py +0 -0
  595. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_column_grouping.py +0 -0
  596. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_column_metadata.py +0 -0
  597. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_column_normalization_override.py +0 -0
  598. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_column_partitioning_strategy.py +0 -0
  599. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_column_selection.py +0 -0
  600. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_column_selection_actual_names.py +0 -0
  601. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_comparison_codec.py +0 -0
  602. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_comparison_orchestrator.py +0 -0
  603. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_configuration_file_editor.py +0 -0
  604. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_configuration_file_generator.py +0 -0
  605. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_configuration_file_synchronizer.py +0 -0
  606. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_configuration_loader.py +0 -0
  607. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_configuration_model.py +0 -0
  608. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_connection_pool.py +0 -0
  609. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_connector_failure_tracker.py +0 -0
  610. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_connector_snowflake.py +0 -0
  611. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_cpu_optimizer.py +0 -0
  612. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_custom_templates_models.py +0 -0
  613. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_decimal_text_canonical.py +0 -0
  614. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_dv_tracing.py +0 -0
  615. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_error_classifier.py +0 -0
  616. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_escape_odbc_value.py +0 -0
  617. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_executor_factory.py +0 -0
  618. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_float_aggregate_reduction.py +0 -0
  619. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_float_bit_canonical.py +0 -0
  620. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_float_canonical_templates.py +0 -0
  621. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_get_configuration_file.py +0 -0
  622. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_helper_io.py +0 -0
  623. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_helper_polars_cast.py +0 -0
  624. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_helper_polars_cast_threading.py +0 -0
  625. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_helpers.py +0 -0
  626. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_html_report_builder.py +0 -0
  627. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_index_key_format.py +0 -0
  628. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_internal_helpers.py +0 -0
  629. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_interval_common.py +0 -0
  630. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_l2_collation_metadata.py +0 -0
  631. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_l2_count_distinct_opt_in_config.py +0 -0
  632. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_logging_config.py +0 -0
  633. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_metric_identifier_rendering.py +0 -0
  634. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_metrics_reshape.py +0 -0
  635. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_metrics_result_shape.py +0 -0
  636. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_metrics_templates_casts.py +0 -0
  637. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_metrics_tolerance.py +0 -0
  638. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_normalize_shape_aware.py +0 -0
  639. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_numeric_scale_resolution.py +0 -0
  640. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_object_type_criterion.py +0 -0
  641. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_parallel_execution_engine_fatal_errors.py +0 -0
  642. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_period_common.py +0 -0
  643. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_platform_bridge.py +0 -0
  644. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_postgresql_normalization_templates.py +0 -0
  645. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_postgresql_tz_normalization.py +0 -0
  646. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_pushdown_diff_sql.py +0 -0
  647. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_query_cell_level_validation.py +0 -0
  648. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_query_executor.py +0 -0
  649. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_query_generator_numeric_scale.py +0 -0
  650. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_query_metrics_level_validation.py +0 -0
  651. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_query_to_dataframe.py +0 -0
  652. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_query_validator.py +0 -0
  653. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_qvci_fallback.py +0 -0
  654. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_qvci_fallback_na_skip.py +0 -0
  655. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_qvci_fallback_triggers.py +0 -0
  656. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_redshift_native_timestamptz_ltz.py +0 -0
  657. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_report_metadata.py +0 -0
  658. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_result_set_cell_level_validation.py +0 -0
  659. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_result_set_column_metrics_validation.py +0 -0
  660. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_result_set_snapshot_validation.py +0 -0
  661. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_result_set_to_dataframe.py +0 -0
  662. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_result_set_validator.py +0 -0
  663. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_row_count_bigint_overflow.py +0 -0
  664. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_row_data_validator.py +0 -0
  665. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_row_data_validator_empty_chunk.py +0 -0
  666. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_row_hash_column_delimiter.py +0 -0
  667. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_row_partitioning_strategy.py +0 -0
  668. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_row_validation_lob_exclusion.py +0 -0
  669. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_row_validation_report_buffer.py +0 -0
  670. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_schema_column_selection.py +0 -0
  671. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_shutdown_coordinator.py +0 -0
  672. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_signature_external_table.py +0 -0
  673. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_signature_row_md5_query.py +0 -0
  674. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_snapshot_validation_statements.py +0 -0
  675. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_snowflake_arguments_manager.py +0 -0
  676. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_snowflake_binary_normalization_templates.py +0 -0
  677. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_snowflake_redshift_super_size_guard.py +0 -0
  678. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_sqlite_validation_connection.py +0 -0
  679. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_sqlserver_arguments_manager.py +0 -0
  680. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_sqlserver_multi_version_support.py +0 -0
  681. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_table_column_metadata_model.py +0 -0
  682. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_table_configuration.py +0 -0
  683. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_table_context.py +0 -0
  684. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_table_snapshot_validation.py +0 -0
  685. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_target_platform_factory.py +0 -0
  686. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_telemetry.py +0 -0
  687. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_templates_loader_manager.py +0 -0
  688. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_teradata_iso_normalization.py +0 -0
  689. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_teradata_string_rtrim_policy.py +0 -0
  690. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_teradata_timetz_metric_domain.py +0 -0
  691. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_timestamp_golden_vectors.py +0 -0
  692. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_trace_bridge.py +0 -0
  693. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_tsql_float_l2_aggregates.py +0 -0
  694. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_validation_configuration.py +0 -0
  695. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_validation_database_connection.py +0 -0
  696. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_validation_execution_context.py +0 -0
  697. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_validation_progress_reporter.py +0 -0
  698. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_validation_report_buffer.py +0 -0
  699. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_validation_report_status.py +0 -0
  700. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_validation_templates_dto.py +0 -0
  701. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_vector_bit_normalization.py +0 -0
  702. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_vector_common.py +0 -0
  703. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_vector_normalization.py +0 -0
  704. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_view_configuration.py +0 -0
  705. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/test_warm_start.py +0 -0
  706. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/utils/__init__.py +0 -0
  707. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/utils/test_constants.py +0 -0
  708. {snowflake_data_validation-1.45.0 → snowflake_data_validation-1.45.1}/tests/unit/utils/test_semi_structured_json_canonicalization.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: snowflake-data-validation
3
- Version: 1.45.0
3
+ Version: 1.45.1
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/
@@ -154,6 +154,14 @@ Compares table structure between source and target:
154
154
  - Precision, scale, and length
155
155
  - Nullable constraints
156
156
 
157
+ Some differences are reported as `WARNING` and do not fail L1:
158
+ - Snowflake still holds every source value: a different column order, a Snowflake precision or scale that can hold the source's, and a `NOT NULL` source column whose Snowflake column is nullable (a Snowflake virtual column is always nullable).
159
+ - Snowflake may truncate or reject source values, so review it: a source character length longer than Snowflake's.
160
+
161
+ A nullable source column on a `NOT NULL` Snowflake column still fails, since Snowflake can reject the source's NULLs.
162
+
163
+ A PostgreSQL user-defined `ENUM` column is validated as `ENUM` against a Snowflake `VARCHAR`. `information_schema` reports every enum as `USER-DEFINED`, so the metadata queries read `pg_type.typtype` to tell enums apart, and report the longest label as the column's length. L2 and L3 compare the label text.
164
+
157
165
  ### Metrics Validation
158
166
  Compares statistical metrics for each column:
159
167
  - Row count
@@ -164,6 +172,10 @@ Compares statistical metrics for each column:
164
172
 
165
173
  For some types these metrics do not depend on the values themselves (for SQL Server: `VECTOR`, `XML`, `IMAGE`, `SQL_VARIANT`, `JSON`, `GEOGRAPHY`, `GEOMETRY`, `UNIQUEIDENTIFIER`), so a changed value can pass L2. Use L3 row validation to compare those columns' values. The per-type list is in `docs/data-migration-orchestrator/sqlserver-data-type-coverage.md` in this repo.
166
174
 
175
+ ### Column pairing (L1 and L2)
176
+
177
+ L1 and L2 read each column's catalog spelling rather than an upper-cased name, so the report shows PostgreSQL `order_id` and SQL Server `OrderId` as the catalog spells them. They pair a source column with its target column by the source platform's identifier rule, the same rule data migration uses: the exact name; on a case-insensitive source (SQL Server, Teradata, Redshift, Azure Synapse, BigQuery, SQLite) a name differing only by case; else the name as Snowflake reads it unquoted, so PostgreSQL `order_id` pairs with `ORDER_ID`. On Oracle, PostgreSQL and DB2, `MixedCase` and `mixedcase` are two columns, and a mixed-case source column whose target exists only as `MIXEDCASE` is reported missing from the target. A `column_mappings` key names a source column by the same rule: on Oracle the key `MixedCase` names `MIXEDCASE`, and `"MixedCase"` names `MixedCase`. Result-set and query inputs pair names exactly, else ignoring case.
178
+
167
179
  ### Views
168
180
 
169
181
  For **Redshift** and **Teradata** sources, views are validated on the view itself (no `CREATE TABLE AS SELECT` materialization in local sync mode). Other platforms may still materialize views to temporary tables before L1/L2/L3. **Teradata** views are read via `DBC.ColumnsQV` (Teradata's Query View Column Information catalog), so view L1 covers the full field set — column existence, datatype, precision, scale, length, nullability, and ordinal position — matching the table path. When `DBC.ColumnsQV` is unavailable (QVCI disabled → Teradata error 9719, missing `SELECT` grant, any other failure of that catalog query, or a degenerate result with null `DATA_TYPE`), the extractor falls back to `HELP COLUMN` with `basic_validation=True` and emits one WARNING schema row per view naming the trigger and the remediation. If HELP fails or source schema metadata still has no usable `DATA_TYPE` (including a view validated as a table whose `ColumnsV` types are null), L1 fails that object and does not continue to L2/L3. **Redshift** uses full schema metadata like tables.
@@ -214,6 +226,26 @@ For configuration options and examples, see the [official documentation](https:/
214
226
 
215
227
  ## Changelog
216
228
 
229
+ ### v1.45.1
230
+
231
+ **Improvements**
232
+
233
+ - Improved schema-level metadata retrieval by using `SHOW COLUMNS`.
234
+ - Improved Iceberg timestamp normalization to follow the target physical type.
235
+
236
+ **Bug fixes**
237
+
238
+ - Fixed schema validation failing for source columns whose names end in a space.
239
+ - Fixed BigQuery `ARRAY<INT64>` elements beyond 2^53 being compared as quoted JSON strings.
240
+ - Fixed validation never passing for a SQL Server `NOT NULL` computed column migrated as a Snowflake virtual column.
241
+ - Fixed L1 and L2 pairing of source and target columns to ignore case for case-sensitive sources when no target names are given.
242
+ - Fixed SQL Server Iceberg L1 schema validation reporting a missing Snowflake character length.
243
+ - Fixed Redshift `DATE`, `TIMESTAMP` and `TIMESTAMPTZ` values on Iceberg losing signed-year values.
244
+ - Fixed Teradata numeric L3 text exceeding the `TO_CHAR` digit limit.
245
+ - Fixed PostgreSQL `ENUM` columns surfacing as `USER-DEFINED`, so `ENUM` type rules never matched.
246
+ - Fixed Teradata column metadata not reporting precision and scale, which made `TIME` pairing fall back to 6.
247
+ - Fixed L1 failing `CHARACTER_MAXIMUM_LENGTH` for a SQL Server `xml` column migrated as `VARIANT`.
248
+
217
249
  ### v1.45.0
218
250
 
219
251
  **New features**
@@ -63,6 +63,14 @@ Compares table structure between source and target:
63
63
  - Precision, scale, and length
64
64
  - Nullable constraints
65
65
 
66
+ Some differences are reported as `WARNING` and do not fail L1:
67
+ - Snowflake still holds every source value: a different column order, a Snowflake precision or scale that can hold the source's, and a `NOT NULL` source column whose Snowflake column is nullable (a Snowflake virtual column is always nullable).
68
+ - Snowflake may truncate or reject source values, so review it: a source character length longer than Snowflake's.
69
+
70
+ A nullable source column on a `NOT NULL` Snowflake column still fails, since Snowflake can reject the source's NULLs.
71
+
72
+ A PostgreSQL user-defined `ENUM` column is validated as `ENUM` against a Snowflake `VARCHAR`. `information_schema` reports every enum as `USER-DEFINED`, so the metadata queries read `pg_type.typtype` to tell enums apart, and report the longest label as the column's length. L2 and L3 compare the label text.
73
+
66
74
  ### Metrics Validation
67
75
  Compares statistical metrics for each column:
68
76
  - Row count
@@ -73,6 +81,10 @@ Compares statistical metrics for each column:
73
81
 
74
82
  For some types these metrics do not depend on the values themselves (for SQL Server: `VECTOR`, `XML`, `IMAGE`, `SQL_VARIANT`, `JSON`, `GEOGRAPHY`, `GEOMETRY`, `UNIQUEIDENTIFIER`), so a changed value can pass L2. Use L3 row validation to compare those columns' values. The per-type list is in `docs/data-migration-orchestrator/sqlserver-data-type-coverage.md` in this repo.
75
83
 
84
+ ### Column pairing (L1 and L2)
85
+
86
+ L1 and L2 read each column's catalog spelling rather than an upper-cased name, so the report shows PostgreSQL `order_id` and SQL Server `OrderId` as the catalog spells them. They pair a source column with its target column by the source platform's identifier rule, the same rule data migration uses: the exact name; on a case-insensitive source (SQL Server, Teradata, Redshift, Azure Synapse, BigQuery, SQLite) a name differing only by case; else the name as Snowflake reads it unquoted, so PostgreSQL `order_id` pairs with `ORDER_ID`. On Oracle, PostgreSQL and DB2, `MixedCase` and `mixedcase` are two columns, and a mixed-case source column whose target exists only as `MIXEDCASE` is reported missing from the target. A `column_mappings` key names a source column by the same rule: on Oracle the key `MixedCase` names `MIXEDCASE`, and `"MixedCase"` names `MixedCase`. Result-set and query inputs pair names exactly, else ignoring case.
87
+
76
88
  ### Views
77
89
 
78
90
  For **Redshift** and **Teradata** sources, views are validated on the view itself (no `CREATE TABLE AS SELECT` materialization in local sync mode). Other platforms may still materialize views to temporary tables before L1/L2/L3. **Teradata** views are read via `DBC.ColumnsQV` (Teradata's Query View Column Information catalog), so view L1 covers the full field set — column existence, datatype, precision, scale, length, nullability, and ordinal position — matching the table path. When `DBC.ColumnsQV` is unavailable (QVCI disabled → Teradata error 9719, missing `SELECT` grant, any other failure of that catalog query, or a degenerate result with null `DATA_TYPE`), the extractor falls back to `HELP COLUMN` with `basic_validation=True` and emits one WARNING schema row per view naming the trigger and the remediation. If HELP fails or source schema metadata still has no usable `DATA_TYPE` (including a view validated as a table whose `ColumnsV` types are null), L1 fails that object and does not continue to L2/L3. **Redshift** uses full schema metadata like tables.
@@ -123,6 +135,26 @@ For configuration options and examples, see the [official documentation](https:/
123
135
 
124
136
  ## Changelog
125
137
 
138
+ ### v1.45.1
139
+
140
+ **Improvements**
141
+
142
+ - Improved schema-level metadata retrieval by using `SHOW COLUMNS`.
143
+ - Improved Iceberg timestamp normalization to follow the target physical type.
144
+
145
+ **Bug fixes**
146
+
147
+ - Fixed schema validation failing for source columns whose names end in a space.
148
+ - Fixed BigQuery `ARRAY<INT64>` elements beyond 2^53 being compared as quoted JSON strings.
149
+ - Fixed validation never passing for a SQL Server `NOT NULL` computed column migrated as a Snowflake virtual column.
150
+ - Fixed L1 and L2 pairing of source and target columns to ignore case for case-sensitive sources when no target names are given.
151
+ - Fixed SQL Server Iceberg L1 schema validation reporting a missing Snowflake character length.
152
+ - Fixed Redshift `DATE`, `TIMESTAMP` and `TIMESTAMPTZ` values on Iceberg losing signed-year values.
153
+ - Fixed Teradata numeric L3 text exceeding the `TO_CHAR` digit limit.
154
+ - Fixed PostgreSQL `ENUM` columns surfacing as `USER-DEFINED`, so `ENUM` type rules never matched.
155
+ - Fixed Teradata column metadata not reporting precision and scale, which made `TIME` pairing fall back to 6.
156
+ - Fixed L1 failing `CHARACTER_MAXIMUM_LENGTH` for a SQL Server `xml` column migrated as `VARIANT`.
157
+
126
158
  ### v1.45.0
127
159
 
128
160
  **New features**
@@ -78,13 +78,11 @@ class MetadataExtractorAzureSynapse(MetadataExtractorBase):
78
78
  def process_schema_query_result(
79
79
  self,
80
80
  result: list,
81
- apply_column_validated_uppercase: bool = True,
82
81
  ) -> pd.DataFrame:
83
82
  """Process schema query results into a DataFrame for Azure Synapse.
84
83
 
85
84
  Args:
86
85
  result: Query result containing (columns_names, data_rows).
87
- apply_column_validated_uppercase: Whether to uppercase column names.
88
86
 
89
87
  Returns:
90
88
  pd.DataFrame: Processed DataFrame with schema metadata.
@@ -94,7 +92,6 @@ class MetadataExtractorAzureSynapse(MetadataExtractorBase):
94
92
  df = self.helper_dataframe.process_query_result_to_dataframe(
95
93
  columns_names=list(columns_names),
96
94
  data_rows=list(metadata_info),
97
- apply_column_validated_uppercase=apply_column_validated_uppercase,
98
95
  sort_and_reset_index=True,
99
96
  )
100
97
  if COLUMN_DATATYPE in df.columns:
@@ -115,7 +112,6 @@ class MetadataExtractorAzureSynapse(MetadataExtractorBase):
115
112
  return self.helper_dataframe.process_query_result_to_dataframe(
116
113
  columns_names=list(result_columns),
117
114
  data_rows=list(result_data),
118
- apply_column_validated_uppercase=True,
119
115
  sort_and_reset_index=True,
120
116
  )
121
117
 
@@ -173,6 +169,5 @@ class MetadataExtractorAzureSynapse(MetadataExtractorBase):
173
169
  return self.helper_dataframe.process_query_result_to_dataframe(
174
170
  columns_names=list(result_columns),
175
171
  data_rows=list(result),
176
- apply_column_validated_uppercase=False,
177
172
  sort_and_reset_index=False,
178
173
  )
@@ -54,6 +54,7 @@ from snowflake.snowflake_data_validation.utils.constants import (
54
54
  Platform,
55
55
  )
56
56
  from snowflake.snowflake_data_validation.utils.iceberg_dv_common import (
57
+ IcebergProfile,
57
58
  resolve_iceberg_compatible_tsql_source_normalization_key,
58
59
  )
59
60
  from snowflake.snowflake_data_validation.utils.iso_dv_common import get_paired_target_column_types
@@ -146,14 +147,12 @@ class QueryGeneratorAzureSynapse(TsqlFloatMetricModifierMixin, QueryGeneratorBas
146
147
  rendered: dict[str, str] = {}
147
148
  renderer_columns = self._row_md5_normalization_columns(table_context)
148
149
  paired_target_types = get_paired_target_column_types(table_context)
149
- iceberg_spec = table_context.iceberg_spec
150
- storage_mode = table_context.storage_mode
150
+ is_iceberg = IcebergProfile.from_table_context(table_context).is_active
151
151
  for column in renderer_columns:
152
152
  lookup_key = resolve_iceberg_compatible_tsql_source_normalization_key(
153
153
  (column.data_type or "").strip().upper(),
154
154
  paired_target_type=paired_target_types.get(column.name),
155
- iceberg_spec=iceberg_spec,
156
- storage_mode=storage_mode,
155
+ is_iceberg=is_iceberg,
157
156
  )
158
157
  normalization_template = self._lookup_normalization_template(
159
158
  datatypes_normalization_templates,
@@ -99,7 +99,6 @@ class ScriptWriterAzureSynapse(ScriptWriterBase):
99
99
  return self.helper_dataframe.process_query_result_to_dataframe(
100
100
  columns_names=result_columns,
101
101
  data_rows=result,
102
- apply_column_validated_uppercase=False,
103
102
  sort_and_reset_index=False,
104
103
  )
105
104
 
@@ -137,6 +136,5 @@ class ScriptWriterAzureSynapse(ScriptWriterBase):
137
136
  return self.helper_dataframe.process_query_result_to_dataframe(
138
137
  columns_names=list(result_columns),
139
138
  data_rows=list(result),
140
- apply_column_validated_uppercase=False,
141
139
  sort_and_reset_index=False,
142
140
  )
@@ -82,6 +82,12 @@ TIMESTAMP: FORMAT_TIMESTAMP('%E4Y-%m-%dT%H:%M:%E9S%Ez', `{{ col_name }}`, 'UTC')
82
82
  ARRAY: NULLIF(TO_JSON_STRING(PARSE_JSON(TO_JSON_STRING(`{{ col_name }}`))), 'null')
83
83
  STRUCT: NULLIF(TO_JSON_STRING(PARSE_JSON(TO_JSON_STRING(`{{ col_name }}`))), 'null')
84
84
  JSON: NULLIF(TO_JSON_STRING(PARSE_JSON(TO_JSON_STRING(`{{ col_name }}`))), 'null')
85
+ # An ARRAY / STRUCT holding no NUMERIC / BIGNUMERIC (QueryGeneratorBigQuery picks this key)
86
+ # goes through TO_JSON, as data migration extracts it: TO_JSON_STRING quotes an INT64 beyond
87
+ # +/-2^53, while TO_JSON keeps it the number Snowflake holds. TO_JSON sorts object keys
88
+ # itself, so no PARSE_JSON round trip. One holding a decimal keeps the keys above, since
89
+ # TO_JSON rounds a wide NUMERIC to FLOAT64.
90
+ NESTED_TO_JSON: NULLIF(TO_JSON_STRING(TO_JSON(`{{ col_name }}`)), 'null')
85
91
  # Spatial → WKT for L3 hashing. BigQuery ST_ASTEXT may emit "POINT (x y)" (space after
86
92
  # the type keyword) and ", " between vertices; Snowflake ST_ASWKT does not. Canonicalize
87
93
  # with chained REPLACE — preserve SQL NULL so null rows use the shared L3 sentinel.
@@ -17,7 +17,7 @@ from __future__ import annotations
17
17
 
18
18
  import logging
19
19
 
20
- from shared.datatypes.bigquery import BigQueryType
20
+ from shared.datatypes.bigquery import BigQueryType, serializes_exactly_through_to_json
21
21
  from shared.datatypes.common import CommonType
22
22
  from shared.datatypes.snowflake import SnowflakeType
23
23
  from snowflake.snowflake_data_validation.query.decimal_text_normalization import (
@@ -46,6 +46,7 @@ from snowflake.snowflake_data_validation.utils.model.table_context import TableC
46
46
  from snowflake.snowflake_data_validation.validation.comparison_codec import (
47
47
  ComparisonCodec,
48
48
  apply_text_codec_to_renderer_templates,
49
+ has_custom_column_normalization,
49
50
  resolve_column_normalization_template,
50
51
  )
51
52
 
@@ -55,6 +56,9 @@ LOGGER = logging.getLogger(__name__)
55
56
  _WIDE_NUMERIC_BASE_TYPES = frozenset({BigQueryType.BIGNUMERIC, BigQueryType.BIGDECIMAL})
56
57
  # Normalization key for a BIGNUMERIC / BIGDECIMAL whose Snowflake mirror is DECFLOAT.
57
58
  BIGNUMERIC_DECFLOAT_NORMALIZATION_KEY = "BIGNUMERIC_DECFLOAT"
59
+ # Normalization key for an ARRAY / STRUCT holding no NUMERIC / BIGNUMERIC, which data
60
+ # migration serializes through TO_JSON so a wide INT64 lands as a number.
61
+ NESTED_TO_JSON_NORMALIZATION_KEY = "NESTED_TO_JSON"
58
62
 
59
63
 
60
64
  def build_bigquery_float_bit_canonical_expr(col_ref: str) -> str:
@@ -239,6 +243,15 @@ class QueryGeneratorBigQuery(QueryGeneratorBase):
239
243
  base_type = self.normalize_bigquery_type(column.data_type)
240
244
  if self._lands_in_decfloat(column, table_context):
241
245
  base_type = BIGNUMERIC_DECFLOAT_NORMALIZATION_KEY
246
+ elif serializes_exactly_through_to_json(column.data_type) and not has_custom_column_normalization(
247
+ column.name,
248
+ base_type,
249
+ column_normalization_map=None,
250
+ templates_loader_manager=table_context.templates_loader_manager,
251
+ ):
252
+ # A workflow or custom-YAML override of ``ARRAY`` / ``STRUCT`` wins over the
253
+ # built-in TO_JSON text; a per-column rule replaces the template afterwards.
254
+ base_type = NESTED_TO_JSON_NORMALIZATION_KEY
242
255
  normalization_template = datatypes_normalization_templates.get(base_type)
243
256
  if normalization_template is None:
244
257
  LOGGER.debug(
@@ -88,6 +88,5 @@ class ScriptWriterDb2(ScriptWriterOracle):
88
88
  return self.helper_dataframe.process_query_result_to_dataframe(
89
89
  columns_names=result_columns,
90
90
  data_rows=result,
91
- apply_column_validated_uppercase=False,
92
91
  sort_and_reset_index=False,
93
92
  )
@@ -66,19 +66,28 @@ class AsyncGenerationExecutor(BaseValidationExecutor):
66
66
 
67
67
  """
68
68
  try:
69
- source_query = data_validation_api.generate_schema_query(source_table_context)
70
- target_query = data_validation_api.generate_schema_query(target_table_context)
69
+ from snowflake.snowflake_data_validation.public.model import GeneratedQuery
70
+ from snowflake.snowflake_data_validation.public.query_generation.schema_metrics_queries import (
71
+ schema_queries_as_script_sql,
72
+ )
73
+
74
+ source_script = schema_queries_as_script_sql(
75
+ data_validation_api.generate_schema_queries(source_table_context)
76
+ )
77
+ target_script = schema_queries_as_script_sql(
78
+ data_validation_api.generate_schema_queries(target_table_context)
79
+ )
71
80
 
72
81
  data_validation_api.write_schema_query_to_script(
73
82
  table_context=source_table_context,
74
- generated_query=source_query,
83
+ generated_query=GeneratedQuery(query_string=source_script),
75
84
  output_directory=self.source_extractor.report_path,
76
85
  timestamp=self.context.run_start_time,
77
86
  )
78
87
 
79
88
  data_validation_api.write_schema_query_to_script(
80
89
  table_context=target_table_context,
81
- generated_query=target_query,
90
+ generated_query=GeneratedQuery(query_string=target_script),
82
91
  output_directory=self.source_extractor.report_path,
83
92
  timestamp=self.context.run_start_time,
84
93
  )
@@ -160,13 +160,23 @@ class SourceValidationExecutor:
160
160
  source_table_context: Source table context
161
161
 
162
162
  """
163
- generated_query = data_validation_api.generate_schema_query(source_table_context)
164
- query_result = data_validation_api.execute_query(
165
- table_context=source_table_context,
166
- connector=self.source_extractor.connector,
167
- generated_query=generated_query,
163
+ from snowflake.snowflake_data_validation.public.model import GeneratedQuery
164
+ from snowflake.snowflake_data_validation.public.model.query_generator_factory import (
165
+ QueryGeneratorFactory,
166
+ )
167
+
168
+ queries = data_validation_api.generate_schema_queries(source_table_context)
169
+ generator = QueryGeneratorFactory.create(source_table_context.platform)
170
+ schema_df = data_validation_api.fetch_schema_metadata(
171
+ queries,
172
+ lambda sql: data_validation_api.execute_query(
173
+ table_context=source_table_context,
174
+ connector=self.source_extractor.connector,
175
+ generated_query=GeneratedQuery(query_string=sql),
176
+ ).dataframe,
177
+ generator,
178
+ source_table_context,
168
179
  )
169
- schema_df = query_result.dataframe
170
180
 
171
181
  output_path = self._get_output_path("schema", source_table_context)
172
182
  self._save_dataframe_as_parquet(schema_df, output_path)
@@ -28,10 +28,15 @@ public workflow API module:
28
28
 
29
29
  import hashlib
30
30
 
31
+ from collections.abc import Callable
31
32
  from concurrent.futures import ThreadPoolExecutor
33
+ from typing import Any
32
34
 
33
35
  import pandas as pd
34
36
 
37
+ from snowflake.snowflake_data_validation.connector.connector_base import (
38
+ ConnectorBase,
39
+ )
35
40
  from snowflake.snowflake_data_validation.executer.base_validation_executor import (
36
41
  BaseValidationExecutor,
37
42
  )
@@ -41,6 +46,7 @@ from snowflake.snowflake_data_validation.public import (
41
46
  from snowflake.snowflake_data_validation.public.model import (
42
47
  ConfigurationError,
43
48
  DataValidationExceptionError,
49
+ GeneratedQuery,
44
50
  MetricsValidationError,
45
51
  QueryExecutionResult,
46
52
  SchemaValidationError,
@@ -83,6 +89,20 @@ from snowflake.snowflake_data_validation.validation.validation_report_buffer imp
83
89
  )
84
90
 
85
91
 
92
+ # ``execute_query``'s ``result_processor(raw_result, apply_column_validated_uppercase)``.
93
+ SchemaResultProcessor = Callable[[list[Any], bool], pd.DataFrame]
94
+
95
+
96
+ def _ignoring_case_flag(process: Callable[[list], pd.DataFrame]) -> Callable[[list, bool], pd.DataFrame]:
97
+ """Adapt an extractor's one-argument result callback to ``execute_query``'s processor contract.
98
+
99
+ ``execute_query`` calls ``result_processor(raw_result, apply_column_validated_uppercase)``.
100
+ The extractors take the raw result alone: they keep each column's catalog
101
+ spelling, and the validators pair names by the source's identifier rule.
102
+ """
103
+ return lambda result, _apply_column_validated_uppercase: process(result)
104
+
105
+
86
106
  class SyncValidationExecutor(BaseValidationExecutor):
87
107
  """Executor for synchronous validation operations.
88
108
 
@@ -99,6 +119,24 @@ class SyncValidationExecutor(BaseValidationExecutor):
99
119
  parallelization of source and target operations.
100
120
  """
101
121
 
122
+ def _schema_side_executor(
123
+ self,
124
+ table_context: TableContext,
125
+ connector: ConnectorBase,
126
+ processor: SchemaResultProcessor,
127
+ ) -> Callable[[str], pd.DataFrame]:
128
+ """Return the runner for one side's schema statements."""
129
+
130
+ def execute(sql: str) -> pd.DataFrame:
131
+ return data_validation_api.execute_query(
132
+ table_context=table_context,
133
+ connector=connector,
134
+ generated_query=GeneratedQuery(query_string=sql),
135
+ result_processor=processor,
136
+ ).dataframe
137
+
138
+ return execute
139
+
102
140
  @report_telemetry(params_list=["source_table_context", "target_table_context"])
103
141
  def execute_schema_validation(
104
142
  self,
@@ -121,11 +159,13 @@ class SyncValidationExecutor(BaseValidationExecutor):
121
159
 
122
160
  """
123
161
  try:
124
- source_query = data_validation_api.generate_schema_query(source_table_context)
125
- target_query = data_validation_api.generate_schema_query(target_table_context)
162
+ source_queries = data_validation_api.generate_schema_queries(source_table_context)
163
+ target_queries = data_validation_api.generate_schema_queries(target_table_context)
164
+ source_generator = QueryGeneratorFactory.create(source_table_context.platform)
165
+ target_generator = QueryGeneratorFactory.create(target_table_context.platform)
126
166
 
127
167
  self.source_extractor.prepare_for_table(source_table_context)
128
- source_processor = self.source_extractor.process_schema_query_result
168
+ source_processor = _ignoring_case_flag(self.source_extractor.process_schema_query_result)
129
169
 
130
170
  # SNOW-3981941: Teradata view L1 now hits DBC.ColumnsQV. If that
131
171
  # catalog query fails for any reason (9719, access, wrapped/masked
@@ -136,12 +176,17 @@ class SyncValidationExecutor(BaseValidationExecutor):
136
176
  is_teradata_view = source_table_context.object_type == ObjectType.VIEW and self.context.source_platform == Platform.TERADATA
137
177
 
138
178
  try:
139
- source_result = data_validation_api.execute_query(
140
- table_context=source_table_context,
141
- connector=self.source_extractor.connector,
142
- generated_query=source_query,
143
- result_processor=source_processor,
179
+ source_df = data_validation_api.fetch_schema_metadata(
180
+ source_queries,
181
+ self._schema_side_executor(
182
+ source_table_context,
183
+ self.source_extractor.connector,
184
+ source_processor,
185
+ ),
186
+ source_generator,
187
+ source_table_context,
144
188
  )
189
+ source_result = QueryExecutionResult(dataframe=source_df)
145
190
  except Exception as exc:
146
191
  if not is_teradata_view:
147
192
  raise
@@ -176,12 +221,17 @@ class SyncValidationExecutor(BaseValidationExecutor):
176
221
  object_name=source_table_context.fully_qualified_name,
177
222
  )
178
223
 
179
- target_result = data_validation_api.execute_query(
180
- table_context=target_table_context,
181
- connector=self.target_extractor.connector,
182
- generated_query=target_query,
183
- result_processor=self.target_extractor.process_schema_query_result,
224
+ target_df = data_validation_api.fetch_schema_metadata(
225
+ target_queries,
226
+ self._schema_side_executor(
227
+ target_table_context,
228
+ self.target_extractor.connector,
229
+ _ignoring_case_flag(self.target_extractor.process_schema_query_result),
230
+ ),
231
+ target_generator,
232
+ target_table_context,
184
233
  )
234
+ target_result = QueryExecutionResult(dataframe=target_df)
185
235
 
186
236
  # SNOW-3981941: Teradata views used to be forced through
187
237
  # ``normalize_table_metadata`` + ``basic_validation=True``, stripping
@@ -308,8 +358,7 @@ class SyncValidationExecutor(BaseValidationExecutor):
308
358
  if not source_queries or not target_queries:
309
359
  raise RuntimeError(f"generate_batched_metrics_queries returned no queries for {source_table_context.fully_qualified_name}")
310
360
 
311
- def source_processor(result, _):
312
- return self.source_extractor.process_metrics_query_result(result)
361
+ source_processor = _ignoring_case_flag(self.source_extractor.process_metrics_query_result)
313
362
 
314
363
  source_dfs: list[pd.DataFrame] = []
315
364
  for source_batch in source_queries:
@@ -322,8 +371,7 @@ class SyncValidationExecutor(BaseValidationExecutor):
322
371
  source_dfs.append(reshape_wide_metrics_result(batch_result.dataframe, source_batch.result_shape))
323
372
  source_result = QueryExecutionResult(dataframe=pd.concat(source_dfs, ignore_index=True))
324
373
 
325
- def target_processor(result, _):
326
- return self.target_extractor.process_metrics_query_result(result)
374
+ target_processor = _ignoring_case_flag(self.target_extractor.process_metrics_query_result)
327
375
 
328
376
  target_dfs: list[pd.DataFrame] = []
329
377
  for target_batch in target_queries:
@@ -109,10 +109,26 @@ class MetadataExtractorBase(ABC):
109
109
  table_context.fully_qualified_name,
110
110
  )
111
111
 
112
- sql_query = self.query_generator.generate_schema_query(table_context)
112
+ from snowflake.snowflake_data_validation.public.query_generation.schema_metrics_queries import (
113
+ fetch_schema_metadata,
114
+ generate_schema_queries,
115
+ )
116
+
117
+ queries = generate_schema_queries(table_context, self.query_generator)
118
+
119
+ def _execute(sql: str) -> pd.DataFrame:
120
+ result = self.connector.execute_query(sql)
121
+ if not result:
122
+ return pd.DataFrame()
123
+ return self.process_schema_query_result(result)
113
124
 
114
125
  try:
115
- result = self.connector.execute_query(sql_query)
126
+ dataframe = fetch_schema_metadata(
127
+ queries,
128
+ _execute,
129
+ self.query_generator,
130
+ table_context,
131
+ )
116
132
  except Exception:
117
133
  error_message = self._get_error_message(
118
134
  "Schema validation query failed",
@@ -121,17 +137,12 @@ class MetadataExtractorBase(ABC):
121
137
  LOGGER.critical(error_message)
122
138
  raise
123
139
 
124
- if not result:
140
+ if dataframe.empty:
125
141
  output_handler.handle_message(
126
142
  message=f"No metadata found for table: {table_context.fully_qualified_name}",
127
143
  level=OutputMessageLevel.WARNING,
128
144
  )
129
- return pd.DataFrame()
130
-
131
- return self.process_schema_query_result(
132
- result,
133
- True,
134
- )
145
+ return dataframe
135
146
 
136
147
  @log
137
148
  def extract_metrics_metadata(
@@ -232,7 +243,6 @@ class MetadataExtractorBase(ABC):
232
243
  origin: Origin,
233
244
  result: list,
234
245
  output_handler: OutputHandlerBase,
235
- apply_column_validated_uppercase: bool = True,
236
246
  ) -> pd.DataFrame:
237
247
  """Process schema query results into a DataFrame.
238
248
 
@@ -240,7 +250,6 @@ class MetadataExtractorBase(ABC):
240
250
  origin: The origin enum value.
241
251
  result: Query result list containing columns and data.
242
252
  output_handler: Output handler for logging and reporting.
243
- apply_column_validated_uppercase: whether returned dataframe should have columns in uppercase.
244
253
 
245
254
  Returns:
246
255
  pd.DataFrame: Processed DataFrame with schema metadata.
@@ -742,6 +742,7 @@ class SQLQueriesTemplateGenerator:
742
742
  hash_md5_function: str | None = None,
743
743
  row_hash_collation_suffix: str = "",
744
744
  write_identifier: IdentifierWriter | None = None,
745
+ extra_from_joins: list[str] | None = None,
745
746
  ) -> str:
746
747
  """Render an inline SELECT that returns (index_cols, ROW_MD5) directly.
747
748
 
@@ -749,7 +750,9 @@ class SQLQueriesTemplateGenerator:
749
750
  no temp tables and no OFFSET/FETCH. When *order_by_columns* is
750
751
  provided the result set is sorted by those columns. ``write_identifier``
751
752
  writes a column name as the dialect's identifier (see
752
- ``column_sql_names``).
753
+ ``column_sql_names``). ``extra_from_joins`` (Redshift SUPER sorted-object
754
+ joins) is appended after the base ``FROM``; templates that omit it are
755
+ unaffected.
753
756
  """
754
757
  template_file = f"{platform}_row_md5_select.sql.j2"
755
758
  try:
@@ -765,6 +768,7 @@ class SQLQueriesTemplateGenerator:
765
768
  order_by_columns=order_by_columns or [],
766
769
  order_by_collation_expressions=order_by_collation_expressions or {},
767
770
  row_hash_collation_suffix=row_hash_collation_suffix,
771
+ extra_from_joins=extra_from_joins or [],
768
772
  **column_sql_names(platform, write_identifier),
769
773
  )
770
774
  if column_groups is not None:
@@ -151,14 +151,12 @@ class MetadataExtractorOracle(MetadataExtractorBase):
151
151
 
152
152
  return self.process_schema_query_result(
153
153
  result,
154
- True,
155
154
  table_context=table_context,
156
155
  )
157
156
 
158
157
  def process_schema_query_result(
159
158
  self,
160
159
  result: list,
161
- apply_column_validated_uppercase: bool = True,
162
160
  *,
163
161
  table_context: TableContext | None = None,
164
162
  ) -> pd.DataFrame:
@@ -166,9 +164,6 @@ class MetadataExtractorOracle(MetadataExtractorBase):
166
164
 
167
165
  Args:
168
166
  result: Query result containing (columns_names, data_rows).
169
- apply_column_validated_uppercase: Whether to uppercase the
170
- COLUMN_VALIDATED values. Defaults to True; Oracle returns
171
- column names in uppercase so this is normally a no-op.
172
167
  table_context: When provided, run a VECTOR_INFO follow-up if
173
168
  phase-1 schema shows VECTOR columns without dimension.
174
169
 
@@ -180,7 +175,6 @@ class MetadataExtractorOracle(MetadataExtractorBase):
180
175
  df = self.helper_dataframe.process_query_result_to_dataframe(
181
176
  columns_names=list(columns_names),
182
177
  data_rows=list(metadata_info),
183
- apply_column_validated_uppercase=apply_column_validated_uppercase,
184
178
  sort_and_reset_index=True,
185
179
  )
186
180
 
@@ -240,7 +234,6 @@ class MetadataExtractorOracle(MetadataExtractorBase):
240
234
  vector_df = self.helper_dataframe.process_query_result_to_dataframe(
241
235
  columns_names=list(result_columns),
242
236
  data_rows=list(vector_rows),
243
- apply_column_validated_uppercase=False,
244
237
  sort_and_reset_index=False,
245
238
  )
246
239
  merge_vector_metadata(rows, vector_df.to_dict(orient="records"))
@@ -260,7 +253,6 @@ class MetadataExtractorOracle(MetadataExtractorBase):
260
253
  return self.helper_dataframe.process_query_result_to_dataframe(
261
254
  columns_names=list(result_columns),
262
255
  data_rows=list(result_data),
263
- apply_column_validated_uppercase=True,
264
256
  sort_and_reset_index=True,
265
257
  )
266
258
 
@@ -327,6 +319,5 @@ class MetadataExtractorOracle(MetadataExtractorBase):
327
319
  return self.helper_dataframe.process_query_result_to_dataframe(
328
320
  columns_names=list(result_columns),
329
321
  data_rows=list(result),
330
- apply_column_validated_uppercase=False,
331
322
  sort_and_reset_index=False,
332
323
  )
@@ -95,7 +95,6 @@ class ScriptWriterOracle(ScriptWriterBase):
95
95
  return self.helper_dataframe.process_query_result_to_dataframe(
96
96
  columns_names=result_columns,
97
97
  data_rows=result,
98
- apply_column_validated_uppercase=False,
99
98
  sort_and_reset_index=False,
100
99
  )
101
100
 
@@ -131,6 +130,5 @@ class ScriptWriterOracle(ScriptWriterBase):
131
130
  return self.helper_dataframe.process_query_result_to_dataframe(
132
131
  columns_names=list(result_columns),
133
132
  data_rows=list(result),
134
- apply_column_validated_uppercase=False,
135
133
  sort_and_reset_index=False,
136
134
  )