dblift 3.3.2__tar.gz → 3.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. {dblift-3.3.2 → dblift-3.3.3}/PKG-INFO +1 -1
  2. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cockroachdb/__init__.py +8 -0
  3. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cockroachdb/plugin.py +5 -1
  4. dblift-3.3.3/db/plugins/cockroachdb/sqlalchemy_dialect.py +124 -0
  5. dblift-3.3.3/db/plugins/cockroachdb/sqlalchemy_url.py +93 -0
  6. {dblift-3.3.2 → dblift-3.3.3}/dblift.egg-info/PKG-INFO +1 -1
  7. {dblift-3.3.2 → dblift-3.3.3}/dblift.egg-info/SOURCES.txt +2 -0
  8. {dblift-3.3.2 → dblift-3.3.3}/pyproject.toml +1 -1
  9. {dblift-3.3.2 → dblift-3.3.3}/LICENSE +0 -0
  10. {dblift-3.3.2 → dblift-3.3.3}/README.md +0 -0
  11. {dblift-3.3.2 → dblift-3.3.3}/api/__init__.py +0 -0
  12. {dblift-3.3.2 → dblift-3.3.3}/api/_cli_support.py +0 -0
  13. {dblift-3.3.2 → dblift-3.3.3}/api/_client_factory.py +0 -0
  14. {dblift-3.3.2 → dblift-3.3.3}/api/_client_operations.py +0 -0
  15. {dblift-3.3.2 → dblift-3.3.3}/api/_engine_config.py +0 -0
  16. {dblift-3.3.2 → dblift-3.3.3}/api/async_client.py +0 -0
  17. {dblift-3.3.2 → dblift-3.3.3}/api/client.py +0 -0
  18. {dblift-3.3.2 → dblift-3.3.3}/api/events.py +0 -0
  19. {dblift-3.3.2 → dblift-3.3.3}/api/migrations.py +0 -0
  20. {dblift-3.3.2 → dblift-3.3.3}/api/py.typed +0 -0
  21. {dblift-3.3.2 → dblift-3.3.3}/cli/__init__.py +0 -0
  22. {dblift-3.3.2 → dblift-3.3.3}/cli/_command_handlers.py +0 -0
  23. {dblift-3.3.2 → dblift-3.3.3}/cli/_config_helpers.py +0 -0
  24. {dblift-3.3.2 → dblift-3.3.3}/cli/_constants.py +0 -0
  25. {dblift-3.3.2 → dblift-3.3.3}/cli/_output.py +0 -0
  26. {dblift-3.3.2 → dblift-3.3.3}/cli/_parser_setup.py +0 -0
  27. {dblift-3.3.2 → dblift-3.3.3}/cli/commands/__init__.py +0 -0
  28. {dblift-3.3.2 → dblift-3.3.3}/cli/commands/config_command.py +0 -0
  29. {dblift-3.3.2 → dblift-3.3.3}/cli/db_utils.py +0 -0
  30. {dblift-3.3.2 → dblift-3.3.3}/cli/extensions.py +0 -0
  31. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/__init__.py +0 -0
  32. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/_shared.py +0 -0
  33. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/baseline.py +0 -0
  34. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/clean.py +0 -0
  35. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/import_flyway.py +0 -0
  36. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/info.py +0 -0
  37. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/migrate.py +0 -0
  38. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/repair.py +0 -0
  39. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/undo.py +0 -0
  40. {dblift-3.3.2 → dblift-3.3.3}/cli/handlers/validate.py +0 -0
  41. {dblift-3.3.2 → dblift-3.3.3}/cli/main.py +0 -0
  42. {dblift-3.3.2 → dblift-3.3.3}/cli/premium_manifest.py +0 -0
  43. {dblift-3.3.2 → dblift-3.3.3}/config/__init__.py +0 -0
  44. {dblift-3.3.2 → dblift-3.3.3}/config/_credential_masking.py +0 -0
  45. {dblift-3.3.2 → dblift-3.3.3}/config/_subclasses/__init__.py +0 -0
  46. {dblift-3.3.2 → dblift-3.3.3}/config/_subclasses/dummy_config.py +0 -0
  47. {dblift-3.3.2 → dblift-3.3.3}/config/_url_builder_mixin.py +0 -0
  48. {dblift-3.3.2 → dblift-3.3.3}/config/config_builder.py +0 -0
  49. {dblift-3.3.2 → dblift-3.3.3}/config/database_config.py +0 -0
  50. {dblift-3.3.2 → dblift-3.3.3}/config/dblift_config.py +0 -0
  51. {dblift-3.3.2 → dblift-3.3.3}/config/errors.py +0 -0
  52. {dblift-3.3.2 → dblift-3.3.3}/config/property_registry.py +0 -0
  53. {dblift-3.3.2 → dblift-3.3.3}/config/secrets/__init__.py +0 -0
  54. {dblift-3.3.2 → dblift-3.3.3}/config/secrets/_cache.py +0 -0
  55. {dblift-3.3.2 → dblift-3.3.3}/config/secrets/_provider_base.py +0 -0
  56. {dblift-3.3.2 → dblift-3.3.3}/config/secrets/_registry.py +0 -0
  57. {dblift-3.3.2 → dblift-3.3.3}/config/secrets/_resolver.py +0 -0
  58. {dblift-3.3.2 → dblift-3.3.3}/config/secrets/_secrets_config.py +0 -0
  59. {dblift-3.3.2 → dblift-3.3.3}/core/__init__.py +0 -0
  60. {dblift-3.3.2 → dblift-3.3.3}/core/constants.py +0 -0
  61. {dblift-3.3.2 → dblift-3.3.3}/core/dialect_boundary.py +0 -0
  62. {dblift-3.3.2 → dblift-3.3.3}/core/exceptions.py +0 -0
  63. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/__init__.py +0 -0
  64. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/_column_enricher.py +0 -0
  65. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/_partition_enricher.py +0 -0
  66. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/_schema_orchestrator.py +0 -0
  67. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/_utils.py +0 -0
  68. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/_vendor_property_applier.py +0 -0
  69. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/base_introspector.py +0 -0
  70. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/__init__.py +0 -0
  71. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/base_extractor.py +0 -0
  72. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/column_extractor.py +0 -0
  73. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/constraint_extractor.py +0 -0
  74. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/index_extractor.py +0 -0
  75. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/misc_extractor.py +0 -0
  76. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/procedure_extractor.py +0 -0
  77. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/sequence_extractor.py +0 -0
  78. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/table_extractor.py +0 -0
  79. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/trigger_extractor.py +0 -0
  80. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/extractors/view_extractor.py +0 -0
  81. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/introspector_factory.py +0 -0
  82. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/result.py +0 -0
  83. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/schema_introspector.py +0 -0
  84. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/vendor_queries_base.py +0 -0
  85. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/vendor_queries_factory.py +0 -0
  86. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/vendor_queries_protocols.py +0 -0
  87. {dblift-3.3.2 → dblift-3.3.3}/core/introspection/version_detector.py +0 -0
  88. {dblift-3.3.2 → dblift-3.3.3}/core/logger/__init__.py +0 -0
  89. {dblift-3.3.2 → dblift-3.3.3}/core/logger/_base.py +0 -0
  90. {dblift-3.3.2 → dblift-3.3.3}/core/logger/_factory.py +0 -0
  91. {dblift-3.3.2 → dblift-3.3.3}/core/logger/_formatters.py +0 -0
  92. {dblift-3.3.2 → dblift-3.3.3}/core/logger/_levels.py +0 -0
  93. {dblift-3.3.2 → dblift-3.3.3}/core/logger/_multi.py +0 -0
  94. {dblift-3.3.2 → dblift-3.3.3}/core/logger/_null.py +0 -0
  95. {dblift-3.3.2 → dblift-3.3.3}/core/logger/console.py +0 -0
  96. {dblift-3.3.2 → dblift-3.3.3}/core/logger/formatters/__init__.py +0 -0
  97. {dblift-3.3.2 → dblift-3.3.3}/core/logger/formatters/_formatter_impl.py +0 -0
  98. {dblift-3.3.2 → dblift-3.3.3}/core/logger/formatters/factory.py +0 -0
  99. {dblift-3.3.2 → dblift-3.3.3}/core/logger/formatters/formatter.py +0 -0
  100. {dblift-3.3.2 → dblift-3.3.3}/core/logger/formatters/htmlformatter.py +0 -0
  101. {dblift-3.3.2 → dblift-3.3.3}/core/logger/formatters/jsonformatter.py +0 -0
  102. {dblift-3.3.2 → dblift-3.3.3}/core/logger/log.py +0 -0
  103. {dblift-3.3.2 → dblift-3.3.3}/core/logger/results.py +0 -0
  104. {dblift-3.3.2 → dblift-3.3.3}/core/logger/templates/oldreport.html +0 -0
  105. {dblift-3.3.2 → dblift-3.3.3}/core/logger/templates/report.html +0 -0
  106. {dblift-3.3.2 → dblift-3.3.3}/core/migration/__init__.py +0 -0
  107. {dblift-3.3.2 → dblift-3.3.3}/core/migration/_type_match.py +0 -0
  108. {dblift-3.3.2 → dblift-3.3.3}/core/migration/clean_summary.py +0 -0
  109. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/__init__.py +0 -0
  110. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/_script_events.py +0 -0
  111. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/base_command.py +0 -0
  112. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/baseline_command.py +0 -0
  113. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/clean_command.py +0 -0
  114. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/import_flyway_command.py +0 -0
  115. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/info_command.py +0 -0
  116. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/migrate_command.py +0 -0
  117. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/repair_command.py +0 -0
  118. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/undo_command.py +0 -0
  119. {dblift-3.3.2 → dblift-3.3.3}/core/migration/commands/validate_command.py +0 -0
  120. {dblift-3.3.2 → dblift-3.3.3}/core/migration/encoding.py +0 -0
  121. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executor/__init__.py +0 -0
  122. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executor/execution_engine.py +0 -0
  123. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executor/migration_executor.py +0 -0
  124. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executor/migration_helpers.py +0 -0
  125. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executor/placeholder_manager.py +0 -0
  126. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executor/transaction_policy.py +0 -0
  127. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executors/__init__.py +0 -0
  128. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executors/base_executor.py +0 -0
  129. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executors/executor_factory.py +0 -0
  130. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executors/python_executor.py +0 -0
  131. {dblift-3.3.2 → dblift-3.3.3}/core/migration/executors/sql_executor.py +0 -0
  132. {dblift-3.3.2 → dblift-3.3.3}/core/migration/formats/__init__.py +0 -0
  133. {dblift-3.3.2 → dblift-3.3.3}/core/migration/formats/format_detector.py +0 -0
  134. {dblift-3.3.2 → dblift-3.3.3}/core/migration/formats/migration_format.py +0 -0
  135. {dblift-3.3.2 → dblift-3.3.3}/core/migration/history/__init__.py +0 -0
  136. {dblift-3.3.2 → dblift-3.3.3}/core/migration/history/migration_history_manager.py +0 -0
  137. {dblift-3.3.2 → dblift-3.3.3}/core/migration/journals/__init__.py +0 -0
  138. {dblift-3.3.2 → dblift-3.3.3}/core/migration/journals/migration_journal.py +0 -0
  139. {dblift-3.3.2 → dblift-3.3.3}/core/migration/migration.py +0 -0
  140. {dblift-3.3.2 → dblift-3.3.3}/core/migration/placeholders/__init__.py +0 -0
  141. {dblift-3.3.2 → dblift-3.3.3}/core/migration/placeholders/placeholder_service.py +0 -0
  142. {dblift-3.3.2 → dblift-3.3.3}/core/migration/rules/__init__.py +0 -0
  143. {dblift-3.3.2 → dblift-3.3.3}/core/migration/rules/migration_rules.py +0 -0
  144. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/__init__.py +0 -0
  145. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/migration_script_manager.py +0 -0
  146. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/undo_script_generator/__init__.py +0 -0
  147. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/undo_script_generator/_ddl_reversers.py +0 -0
  148. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/undo_script_generator/_dml_reversers.py +0 -0
  149. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/undo_script_generator/_extractors.py +0 -0
  150. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/undo_script_generator/_generator.py +0 -0
  151. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/undo_script_generator/_helpers.py +0 -0
  152. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/undo_script_generator/_models.py +0 -0
  153. {dblift-3.3.2 → dblift-3.3.3}/core/migration/scripting/undo_script_generator/_reversers.py +0 -0
  154. {dblift-3.3.2 → dblift-3.3.3}/core/migration/sql/__init__.py +0 -0
  155. {dblift-3.3.2 → dblift-3.3.3}/core/migration/sql/execution_statement.py +0 -0
  156. {dblift-3.3.2 → dblift-3.3.3}/core/migration/sql/sql_analyzer.py +0 -0
  157. {dblift-3.3.2 → dblift-3.3.3}/core/migration/sql/sql_execution_service.py +0 -0
  158. {dblift-3.3.2 → dblift-3.3.3}/core/migration/sql/statement_splitter.py +0 -0
  159. {dblift-3.3.2 → dblift-3.3.3}/core/migration/state/__init__.py +0 -0
  160. {dblift-3.3.2 → dblift-3.3.3}/core/migration/state/migration_data_service.py +0 -0
  161. {dblift-3.3.2 → dblift-3.3.3}/core/migration/state/migration_display_state.py +0 -0
  162. {dblift-3.3.2 → dblift-3.3.3}/core/migration/state/migration_formatter.py +0 -0
  163. {dblift-3.3.2 → dblift-3.3.3}/core/migration/state/migration_state.py +0 -0
  164. {dblift-3.3.2 → dblift-3.3.3}/core/migration/state/migration_state_manager.py +0 -0
  165. {dblift-3.3.2 → dblift-3.3.3}/core/migration/state/migration_state_service.py +0 -0
  166. {dblift-3.3.2 → dblift-3.3.3}/core/migration/ui/__init__.py +0 -0
  167. {dblift-3.3.2 → dblift-3.3.3}/core/migration/ui/data_collector.py +0 -0
  168. {dblift-3.3.2 → dblift-3.3.3}/core/migration/ui/display_formatters.py +0 -0
  169. {dblift-3.3.2 → dblift-3.3.3}/core/migration/ui/migration_analyzer.py +0 -0
  170. {dblift-3.3.2 → dblift-3.3.3}/core/migration/ui/migration_ui.py +0 -0
  171. {dblift-3.3.2 → dblift-3.3.3}/core/migration/ui/table_renderer.py +0 -0
  172. {dblift-3.3.2 → dblift-3.3.3}/core/migration/version_utils.py +0 -0
  173. {dblift-3.3.2 → dblift-3.3.3}/core/normalization/__init__.py +0 -0
  174. {dblift-3.3.2 → dblift-3.3.3}/core/normalization/dependency_resolver.py +0 -0
  175. {dblift-3.3.2 → dblift-3.3.3}/core/normalization/identifier_normalizer.py +0 -0
  176. {dblift-3.3.2 → dblift-3.3.3}/core/normalization/object_orderer.py +0 -0
  177. {dblift-3.3.2 → dblift-3.3.3}/core/normalization/type_constants.py +0 -0
  178. {dblift-3.3.2 → dblift-3.3.3}/core/normalization/type_mapper.py +0 -0
  179. {dblift-3.3.2 → dblift-3.3.3}/core/normalization/type_mappings.py +0 -0
  180. {dblift-3.3.2 → dblift-3.3.3}/core/normalization/type_normalizer.py +0 -0
  181. {dblift-3.3.2 → dblift-3.3.3}/core/seams/__init__.py +0 -0
  182. {dblift-3.3.2 → dblift-3.3.3}/core/seams/capabilities.py +0 -0
  183. {dblift-3.3.2 → dblift-3.3.3}/core/seams/client_factory.py +0 -0
  184. {dblift-3.3.2 → dblift-3.3.3}/core/seams/event_listeners.py +0 -0
  185. {dblift-3.3.2 → dblift-3.3.3}/core/seams/feature_loading.py +0 -0
  186. {dblift-3.3.2 → dblift-3.3.3}/core/seams/introspection.py +0 -0
  187. {dblift-3.3.2 → dblift-3.3.3}/core/seams/license_info.py +0 -0
  188. {dblift-3.3.2 → dblift-3.3.3}/core/seams/runtime_checks.py +0 -0
  189. {dblift-3.3.2 → dblift-3.3.3}/core/seams/sql_generators.py +0 -0
  190. {dblift-3.3.2 → dblift-3.3.3}/core/seams/tier_resolver.py +0 -0
  191. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/__init__.py +0 -0
  192. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/alter/__init__.py +0 -0
  193. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/alter/alter_generator_factory.py +0 -0
  194. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/alter/base_alter_generator.py +0 -0
  195. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/alter_generator.py +0 -0
  196. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/base_generator.py +0 -0
  197. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/basic_table_ddl_generator.py +0 -0
  198. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/dependency_analyzer.py +0 -0
  199. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/diff_converters/__init__.py +0 -0
  200. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/diff_converters/base_converter.py +0 -0
  201. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/formatter.py +0 -0
  202. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/generator_factory.py +0 -0
  203. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/options.py +0 -0
  204. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/script_organizer.py +0 -0
  205. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/sql_generator.py +0 -0
  206. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/sql_statement.py +0 -0
  207. {dblift-3.3.2 → dblift-3.3.3}/core/sql_generator/table_ddl_render.py +0 -0
  208. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/__init__.py +0 -0
  209. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/_base_parse_result.py +0 -0
  210. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/_base_sql_column.py +0 -0
  211. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/_base_sql_constraint.py +0 -0
  212. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/_base_sql_object.py +0 -0
  213. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/_base_sql_statement.py +0 -0
  214. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/base.py +0 -0
  215. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/constraint_validator.py +0 -0
  216. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/database_link.py +0 -0
  217. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/dialect.py +0 -0
  218. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/event.py +0 -0
  219. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/extension.py +0 -0
  220. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/feature_gates.py +0 -0
  221. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/foreign_data_wrapper.py +0 -0
  222. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/foreign_server.py +0 -0
  223. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/index.py +0 -0
  224. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/linked_server.py +0 -0
  225. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/module.py +0 -0
  226. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/package.py +0 -0
  227. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/partition.py +0 -0
  228. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/procedure.py +0 -0
  229. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/sequence.py +0 -0
  230. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/server_info.py +0 -0
  231. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/synonym.py +0 -0
  232. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/table.py +0 -0
  233. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/table_canonicalizer.py +0 -0
  234. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/table_options.py +0 -0
  235. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/trigger.py +0 -0
  236. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/user_defined_type.py +0 -0
  237. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/view.py +0 -0
  238. {dblift-3.3.2 → dblift-3.3.3}/core/sql_model/view_options.py +0 -0
  239. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/__init__.py +0 -0
  240. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/_partition_handler.py +0 -0
  241. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/_sqlglot_builders.py +0 -0
  242. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/base_statement_parser.py +0 -0
  243. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/base_tokenizer.py +0 -0
  244. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/common/__init__.py +0 -0
  245. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/common/base_parser.py +0 -0
  246. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/dialects/__init__.py +0 -0
  247. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/dialects/base_config.py +0 -0
  248. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/enhanced_regex_parser.py +0 -0
  249. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/hybrid_parser.py +0 -0
  250. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/parser_context.py +0 -0
  251. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/parser_factory.py +0 -0
  252. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/parser_interface.py +0 -0
  253. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/sqlglot_parser.py +0 -0
  254. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/tokens.py +0 -0
  255. {dblift-3.3.2 → dblift-3.3.3}/core/sql_parser/unified_regex_parser.py +0 -0
  256. {dblift-3.3.2 → dblift-3.3.3}/core/sql_validator/__init__.py +0 -0
  257. {dblift-3.3.2 → dblift-3.3.3}/core/sql_validator/_checksum_validator.py +0 -0
  258. {dblift-3.3.2 → dblift-3.3.3}/core/sql_validator/_flyway_compatibility.py +0 -0
  259. {dblift-3.3.2 → dblift-3.3.3}/core/sql_validator/_migration_filter.py +0 -0
  260. {dblift-3.3.2 → dblift-3.3.3}/core/sql_validator/_sql_syntax_validator.py +0 -0
  261. {dblift-3.3.2 → dblift-3.3.3}/core/sql_validator/_strict_mode_validator.py +0 -0
  262. {dblift-3.3.2 → dblift-3.3.3}/core/sql_validator/migration_validator.py +0 -0
  263. {dblift-3.3.2 → dblift-3.3.3}/core/state/sql_script_formatter.py +0 -0
  264. {dblift-3.3.2 → dblift-3.3.3}/core/state/sql_statement.py +0 -0
  265. {dblift-3.3.2 → dblift-3.3.3}/core/utils/__init__.py +0 -0
  266. {dblift-3.3.2 → dblift-3.3.3}/core/utils/database_url_parser.py +0 -0
  267. {dblift-3.3.2 → dblift-3.3.3}/core/utils/metadata_helpers.py +0 -0
  268. {dblift-3.3.2 → dblift-3.3.3}/core/utils/row_access.py +0 -0
  269. {dblift-3.3.2 → dblift-3.3.3}/core/utils/string_utils.py +0 -0
  270. {dblift-3.3.2 → dblift-3.3.3}/core/utils/url_masking.py +0 -0
  271. {dblift-3.3.2 → dblift-3.3.3}/db/__init__.py +0 -0
  272. {dblift-3.3.2 → dblift-3.3.3}/db/base_provider.py +0 -0
  273. {dblift-3.3.2 → dblift-3.3.3}/db/base_quirks.py +0 -0
  274. {dblift-3.3.2 → dblift-3.3.3}/db/constants.py +0 -0
  275. {dblift-3.3.2 → dblift-3.3.3}/db/dml_analysis.py +0 -0
  276. {dblift-3.3.2 → dblift-3.3.3}/db/error.py +0 -0
  277. {dblift-3.3.2 → dblift-3.3.3}/db/error_handler.py +0 -0
  278. {dblift-3.3.2 → dblift-3.3.3}/db/exceptions.py +0 -0
  279. {dblift-3.3.2 → dblift-3.3.3}/db/feature_gate.py +0 -0
  280. {dblift-3.3.2 → dblift-3.3.3}/db/native_connection_manager.py +0 -0
  281. {dblift-3.3.2 → dblift-3.3.3}/db/object_naming.py +0 -0
  282. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/__init__.py +0 -0
  283. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/_pg_compatible.py +0 -0
  284. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/alloydb/__init__.py +0 -0
  285. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/alloydb/plugin.py +0 -0
  286. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/aurora_postgresql/__init__.py +0 -0
  287. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/aurora_postgresql/plugin.py +0 -0
  288. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/base_history_manager.py +0 -0
  289. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/base_locking_manager.py +0 -0
  290. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/base_query_executor.py +0 -0
  291. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/base_schema_operations.py +0 -0
  292. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/base_snapshot_manager.py +0 -0
  293. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/base_undo_manager.py +0 -0
  294. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/citus/__init__.py +0 -0
  295. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/citus/plugin.py +0 -0
  296. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cockroachdb/provider.py +0 -0
  297. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cockroachdb/quirks.py +0 -0
  298. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/__init__.py +0 -0
  299. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/config.py +0 -0
  300. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/cosmosdb/__init__.py +0 -0
  301. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/cosmosdb/_sdk.py +0 -0
  302. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/cosmosdb/connection_manager.py +0 -0
  303. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/cosmosdb/history_manager.py +0 -0
  304. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/cosmosdb/locking_manager.py +0 -0
  305. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/cosmosdb/query_executor.py +0 -0
  306. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/cosmosdb/schema_operations.py +0 -0
  307. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/introspection/__init__.py +0 -0
  308. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/plugin.py +0 -0
  309. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/provider.py +0 -0
  310. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/cosmosdb/quirks.py +0 -0
  311. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/__init__.py +0 -0
  312. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/config.py +0 -0
  313. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/db2/__init__.py +0 -0
  314. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/db2/history_manager.py +0 -0
  315. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/db2/locking_manager.py +0 -0
  316. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/db2/schema_operations.py +0 -0
  317. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/introspection/__init__.py +0 -0
  318. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/parser/__init__.py +0 -0
  319. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/parser/db2_regex_parser.py +0 -0
  320. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/parser/parser_config.py +0 -0
  321. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/plugin.py +0 -0
  322. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/provider.py +0 -0
  323. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/quirks.py +0 -0
  324. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/db2/sqlalchemy_url.py +0 -0
  325. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/duckdb/__init__.py +0 -0
  326. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/duckdb/config.py +0 -0
  327. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/duckdb/parser/__init__.py +0 -0
  328. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/duckdb/parser/duckdb_regex_parser.py +0 -0
  329. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/duckdb/parser/parser_config.py +0 -0
  330. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/duckdb/plugin.py +0 -0
  331. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/duckdb/provider.py +0 -0
  332. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/duckdb/quirks.py +0 -0
  333. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/duckdb/sqlalchemy_url.py +0 -0
  334. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mariadb/__init__.py +0 -0
  335. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mariadb/plugin.py +0 -0
  336. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mariadb/provider.py +0 -0
  337. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mariadb/quirks.py +0 -0
  338. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/__init__.py +0 -0
  339. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/config.py +0 -0
  340. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/introspection/__init__.py +0 -0
  341. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/mysql/__init__.py +0 -0
  342. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/mysql/history_manager.py +0 -0
  343. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/mysql/locking_manager.py +0 -0
  344. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/mysql/schema_operations.py +0 -0
  345. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/parser/__init__.py +0 -0
  346. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/parser/mysql_regex_parser.py +0 -0
  347. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/parser/mysql_statement_parser.py +0 -0
  348. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/parser/mysql_tokenizer.py +0 -0
  349. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/parser/parser_config.py +0 -0
  350. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/plugin.py +0 -0
  351. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/provider.py +0 -0
  352. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/quirks.py +0 -0
  353. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/mysql/sqlalchemy_url.py +0 -0
  354. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/neon/__init__.py +0 -0
  355. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/neon/plugin.py +0 -0
  356. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/nosql_base/__init__.py +0 -0
  357. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/nosql_base/history.py +0 -0
  358. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/nosql_base/introspection.py +0 -0
  359. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/nosql_base/locking.py +0 -0
  360. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/__init__.py +0 -0
  361. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/config.py +0 -0
  362. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/introspection/__init__.py +0 -0
  363. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/introspection/oracle_utils.py +0 -0
  364. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/oracle/__init__.py +0 -0
  365. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/oracle/dbms_output.py +0 -0
  366. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/oracle/history_manager.py +0 -0
  367. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/oracle/locking_manager.py +0 -0
  368. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/oracle/schema_operations.py +0 -0
  369. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/__init__.py +0 -0
  370. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/_comments.py +0 -0
  371. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/_object_extractor.py +0 -0
  372. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/_plsql_block.py +0 -0
  373. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/_sqlplus.py +0 -0
  374. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/_statement_splitter.py +0 -0
  375. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/oracle_parser.py +0 -0
  376. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/oracle_statement_parser.py +0 -0
  377. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/oracle_tokenizer.py +0 -0
  378. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/parser_config.py +0 -0
  379. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/parser/sqlplus_context.py +0 -0
  380. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/plugin.py +0 -0
  381. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/provider.py +0 -0
  382. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/quirks.py +0 -0
  383. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/oracle/sqlalchemy_url.py +0 -0
  384. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/__init__.py +0 -0
  385. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/_provider_query_executor.py +0 -0
  386. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/config.py +0 -0
  387. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/introspection/__init__.py +0 -0
  388. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/parser/__init__.py +0 -0
  389. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/parser/parser_config.py +0 -0
  390. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/parser/postgresql_regex_parser.py +0 -0
  391. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/parser/postgresql_statement_parser.py +0 -0
  392. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/parser/postgresql_tokenizer.py +0 -0
  393. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/plugin.py +0 -0
  394. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/postgresql/__init__.py +0 -0
  395. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/postgresql/history_manager.py +0 -0
  396. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/postgresql/locking_manager.py +0 -0
  397. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/postgresql/schema_operations.py +0 -0
  398. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/provider.py +0 -0
  399. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/quirks.py +0 -0
  400. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/postgresql/sqlalchemy_url.py +0 -0
  401. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/redshift/__init__.py +0 -0
  402. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/redshift/plugin.py +0 -0
  403. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/redshift/provider.py +0 -0
  404. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/redshift/quirks.py +0 -0
  405. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/redshift/sqlalchemy_url.py +0 -0
  406. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/snowflake/__init__.py +0 -0
  407. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/snowflake/config.py +0 -0
  408. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/snowflake/plugin.py +0 -0
  409. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/snowflake/provider.py +0 -0
  410. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/snowflake/quirks.py +0 -0
  411. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/snowflake/sqlalchemy_url.py +0 -0
  412. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/__init__.py +0 -0
  413. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/config.py +0 -0
  414. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/introspection/__init__.py +0 -0
  415. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/parser/__init__.py +0 -0
  416. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/parser/parser_config.py +0 -0
  417. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/parser/sqlite_regex_parser.py +0 -0
  418. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/plugin.py +0 -0
  419. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/provider.py +0 -0
  420. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/quirks.py +0 -0
  421. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/sqlalchemy_url.py +0 -0
  422. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/sqlite/__init__.py +0 -0
  423. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/sqlite/connection_manager.py +0 -0
  424. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/sqlite/history_manager.py +0 -0
  425. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/sqlite/locking_manager.py +0 -0
  426. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/sqlite/query_executor.py +0 -0
  427. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlite/sqlite/schema_operations.py +0 -0
  428. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/__init__.py +0 -0
  429. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/config.py +0 -0
  430. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/introspection/__init__.py +0 -0
  431. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/parser/__init__.py +0 -0
  432. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/parser/parser_config.py +0 -0
  433. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/parser/sqlserver_regex_parser.py +0 -0
  434. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/parser/sqlserver_statement_parser.py +0 -0
  435. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/parser/sqlserver_tokenizer.py +0 -0
  436. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/parser/tsql_batch_separator.py +0 -0
  437. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/plugin.py +0 -0
  438. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/provider.py +0 -0
  439. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/quirks.py +0 -0
  440. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/sqlalchemy_url.py +0 -0
  441. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/sqlserver/__init__.py +0 -0
  442. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/sqlserver/history_manager.py +0 -0
  443. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/sqlserver/locking_manager.py +0 -0
  444. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/sqlserver/sqlserver/schema_operations.py +0 -0
  445. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/supabase/__init__.py +0 -0
  446. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/supabase/plugin.py +0 -0
  447. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/timescaledb/__init__.py +0 -0
  448. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/timescaledb/plugin.py +0 -0
  449. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/yugabytedb/__init__.py +0 -0
  450. {dblift-3.3.2 → dblift-3.3.3}/db/plugins/yugabytedb/plugin.py +0 -0
  451. {dblift-3.3.2 → dblift-3.3.3}/db/provider_capabilities.py +0 -0
  452. {dblift-3.3.2 → dblift-3.3.3}/db/provider_interfaces.py +0 -0
  453. {dblift-3.3.2 → dblift-3.3.3}/db/provider_registry.py +0 -0
  454. {dblift-3.3.2 → dblift-3.3.3}/db/sqlalchemy_provider.py +0 -0
  455. {dblift-3.3.2 → dblift-3.3.3}/db/value_utils.py +0 -0
  456. {dblift-3.3.2 → dblift-3.3.3}/dblift.egg-info/dependency_links.txt +0 -0
  457. {dblift-3.3.2 → dblift-3.3.3}/dblift.egg-info/entry_points.txt +0 -0
  458. {dblift-3.3.2 → dblift-3.3.3}/dblift.egg-info/requires.txt +0 -0
  459. {dblift-3.3.2 → dblift-3.3.3}/dblift.egg-info/top_level.txt +0 -0
  460. {dblift-3.3.2 → dblift-3.3.3}/integrations/__init__.py +0 -0
  461. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/__init__.py +0 -0
  462. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/_client.py +0 -0
  463. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/_engine.py +0 -0
  464. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/apps.py +0 -0
  465. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/checks.py +0 -0
  466. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/management/__init__.py +0 -0
  467. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/management/commands/__init__.py +0 -0
  468. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/management/commands/dblift_info.py +0 -0
  469. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/management/commands/dblift_migrate.py +0 -0
  470. {dblift-3.3.2 → dblift-3.3.3}/integrations/django/management/commands/dblift_validate.py +0 -0
  471. {dblift-3.3.2 → dblift-3.3.3}/integrations/fastapi.py +0 -0
  472. {dblift-3.3.2 → dblift-3.3.3}/integrations/flask.py +0 -0
  473. {dblift-3.3.2 → dblift-3.3.3}/integrations/opentelemetry.py +0 -0
  474. {dblift-3.3.2 → dblift-3.3.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dblift
3
- Version: 3.3.2
3
+ Version: 3.3.3
4
4
  Summary: A database migration tool that supports multiple databases with native Python drivers
5
5
  Classifier: Development Status :: 5 - Production/Stable
6
6
  Classifier: Intended Audience :: Developers
@@ -1,5 +1,13 @@
1
1
  """CockroachDB database provider plugin (PostgreSQL-compatible)."""
2
2
 
3
+ # Side-effect import: register the SQLAlchemy dialect so create_engine can
4
+ # resolve cockroachdb+psycopg even if plugin.py was not loaded yet.
5
+ from db.plugins.cockroachdb.sqlalchemy_dialect import ( # noqa: F401
6
+ register_cockroach_dialect,
7
+ )
8
+
9
+ register_cockroach_dialect()
10
+
3
11
  __plugin_name__ = "cockroachdb"
4
12
  __plugin_version__ = "1.0.0"
5
13
  __plugin_description__ = "CockroachDB database provider"
@@ -11,9 +11,13 @@ from __future__ import annotations
11
11
 
12
12
  from db.plugins.cockroachdb.provider import CockroachdbProvider
13
13
  from db.plugins.cockroachdb.quirks import CockroachdbQuirks
14
- from db.plugins.postgresql.sqlalchemy_url import build_sqlalchemy_url
14
+ from db.plugins.cockroachdb.sqlalchemy_dialect import register_cockroach_dialect
15
+ from db.plugins.cockroachdb.sqlalchemy_url import build_sqlalchemy_url
15
16
  from db.provider_registry import PluginInfo
16
17
 
18
+ # Register before any create_engine call can race plugin discovery.
19
+ register_cockroach_dialect()
20
+
17
21
  PLUGIN: PluginInfo = PluginInfo(
18
22
  name="cockroachdb",
19
23
  version="1.0.0",
@@ -0,0 +1,124 @@
1
+ """SQLAlchemy dialect for CockroachDB (PostgreSQL wire, CRDB version banner).
2
+
3
+ SQLAlchemy's stock PostgreSQL dialect requires a ``PostgreSQL X.Y`` (or
4
+ ``EnterpriseDB``) prefix from ``select version()``. CockroachDB returns banners
5
+ like::
6
+
7
+ CockroachDB CCL v24.3.18 (x86_64-pc-linux-gnu, built 2025/08/07 22:44:01, go1.22.8 ...)
8
+
9
+ which raise ``AssertionError: Could not determine version from string`` on every
10
+ ``create_engine`` connect. This dialect reuses the psycopg PostgreSQL dialect
11
+ and only overrides server-version parsing so the product version ``vX.Y.Z`` is
12
+ used — never the trailing ``go1.x.y`` fragment.
13
+ """
14
+
15
+ from __future__ import annotations
16
+
17
+ import re
18
+ from typing import Any, Optional, Tuple
19
+
20
+ from sqlalchemy.dialects.postgresql.psycopg import PGDialect_psycopg
21
+
22
+ # Prefer an explicit product "vMAJOR.MINOR[.PATCH]" token (CRDB's usual form).
23
+ _CRDB_V_TOKEN = re.compile(r"\bv(\d+)\.(\d+)(?:\.(\d+))?\b", re.IGNORECASE)
24
+ # Fallback when the banner omits the leading ``v`` (older strings).
25
+ _CRDB_DOTTED = re.compile(
26
+ r"CockroachDB(?:\s+CCL)?\s+(\d+)\.(\d+)(?:\.(\d+))?",
27
+ re.IGNORECASE,
28
+ )
29
+
30
+ _registered = False
31
+
32
+
33
+ def parse_cockroach_server_version(banner: str) -> Tuple[int, ...]:
34
+ """Return ``(major, minor[, patch])`` from a CockroachDB ``version()`` banner.
35
+
36
+ Raises:
37
+ AssertionError: when no product version can be extracted (same shape as
38
+ SQLAlchemy's PostgreSQL dialect failure).
39
+ """
40
+ text = banner or ""
41
+ match = _CRDB_V_TOKEN.search(text)
42
+ if match is None:
43
+ match = _CRDB_DOTTED.search(text)
44
+ if match is None:
45
+ raise AssertionError(f"Could not determine version from string '{banner}'")
46
+ major = int(match.group(1))
47
+ minor = int(match.group(2))
48
+ patch = match.group(3)
49
+ if patch is not None:
50
+ return (major, minor, int(patch))
51
+ return (major, minor)
52
+
53
+
54
+ class CockroachDBDialect_psycopg(PGDialect_psycopg):
55
+ """PostgreSQL+psycopg dialect that accepts CockroachDB version banners."""
56
+
57
+ name = "cockroachdb"
58
+ driver = "psycopg"
59
+ # Inherit PG caching semantics; SQLAlchemy warns if a subclass omits this.
60
+ supports_statement_cache = True
61
+
62
+ def _get_server_version_info(self, connection: Any) -> Tuple[int, ...]:
63
+ raw = connection.exec_driver_sql("select version()").scalar()
64
+ return parse_cockroach_server_version(str(raw) if raw is not None else "")
65
+
66
+
67
+ def register_cockroach_dialect() -> None:
68
+ """Register ``cockroachdb`` / ``cockroachdb.psycopg`` with SQLAlchemy once."""
69
+ global _registered
70
+ if _registered:
71
+ return
72
+ from sqlalchemy.dialects import registry
73
+
74
+ registry.register(
75
+ "cockroachdb",
76
+ "db.plugins.cockroachdb.sqlalchemy_dialect",
77
+ "CockroachDBDialect_psycopg",
78
+ )
79
+ registry.register(
80
+ "cockroachdb.psycopg",
81
+ "db.plugins.cockroachdb.sqlalchemy_dialect",
82
+ "CockroachDBDialect_psycopg",
83
+ )
84
+ _registered = True
85
+
86
+
87
+ def ensure_cockroach_drivername(drivername: str) -> str:
88
+ """Map a PostgreSQL-family drivername onto ``cockroachdb+psycopg``.
89
+
90
+ Only the ``psycopg`` DBAPI is registered for CockroachDB. Bare
91
+ ``postgresql`` / ``postgres`` / ``cockroachdb`` names and ``+psycopg``
92
+ variants rewrite cleanly; any other driver suffix (e.g. ``asyncpg``)
93
+ raises so ``create_engine`` does not fail later with an unloadable dialect.
94
+ """
95
+ if drivername in (
96
+ "cockroachdb",
97
+ "cockroachdb+psycopg",
98
+ "postgresql",
99
+ "postgres",
100
+ "postgresql+psycopg",
101
+ "postgres+psycopg",
102
+ ):
103
+ return "cockroachdb+psycopg"
104
+ if drivername.startswith(("postgresql+", "postgres+", "cockroachdb+")):
105
+ suffix = drivername.split("+", 1)[1]
106
+ if suffix != "psycopg":
107
+ raise ValueError(
108
+ "CockroachDB native connections require the psycopg driver "
109
+ f"(got {drivername!r}); use cockroachdb+psycopg or "
110
+ "postgresql+psycopg"
111
+ )
112
+ return "cockroachdb+psycopg"
113
+ raise ValueError(
114
+ "CockroachDB native connections require a PostgreSQL/CockroachDB "
115
+ f"SQLAlchemy URL (got drivername {drivername!r})"
116
+ )
117
+
118
+
119
+ __all__ = [
120
+ "CockroachDBDialect_psycopg",
121
+ "ensure_cockroach_drivername",
122
+ "parse_cockroach_server_version",
123
+ "register_cockroach_dialect",
124
+ ]
@@ -0,0 +1,93 @@
1
+ """SQLAlchemy URL construction for CockroachDB.
2
+
3
+ Reuses the PostgreSQL URL shape (host/user/sslmode/search_path) but forces the
4
+ ``cockroachdb+psycopg`` drivername so SQLAlchemy loads
5
+ :class:`CockroachDBDialect_psycopg` instead of the stock PostgreSQL dialect
6
+ that cannot parse CockroachDB ``version()`` banners.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from typing import Any, Dict
12
+
13
+ from sqlalchemy.engine import URL, make_url
14
+
15
+ from db.plugins.cockroachdb.sqlalchemy_dialect import (
16
+ ensure_cockroach_drivername,
17
+ register_cockroach_dialect,
18
+ )
19
+
20
+
21
+ def _string_mapping(values: Any) -> Dict[str, str]:
22
+ if not isinstance(values, dict):
23
+ return {}
24
+ return {str(key): str(value) for key, value in values.items()}
25
+
26
+
27
+ def _query_mapping(database_config: Any, base_query: Any = None) -> Dict[str, str]:
28
+ query = _string_mapping(base_query)
29
+ query.update(_string_mapping(getattr(database_config, "extra_params", None)))
30
+ query.update(_string_mapping(getattr(database_config, "options", None)))
31
+
32
+ connection_timeout = getattr(database_config, "connection_timeout", None)
33
+ if connection_timeout:
34
+ query["connect_timeout"] = str(connection_timeout)
35
+
36
+ ssl_mode = getattr(database_config, "ssl_mode", None)
37
+ if ssl_mode:
38
+ query["sslmode"] = str(ssl_mode)
39
+
40
+ schema = getattr(database_config, "schema", None)
41
+ if schema:
42
+ schema_option = f"-csearch_path={schema}"
43
+ query["options"] = (
44
+ f"{query['options']} {schema_option}" if query.get("options") else schema_option
45
+ )
46
+
47
+ return query
48
+
49
+
50
+ def build_sqlalchemy_url(database_config: Any) -> str:
51
+ """Build a CockroachDB SQLAlchemy URL (psycopg driver, CRDB dialect)."""
52
+ register_cockroach_dialect()
53
+
54
+ raw_url = getattr(database_config, "url", None)
55
+ if isinstance(raw_url, str) and raw_url:
56
+ # Same scheme gate as the PostgreSQL builder, plus cockroachdb:// so a
57
+ # pre-rewritten URL still validates. Other schemes raise immediately.
58
+ if not raw_url.startswith(
59
+ (
60
+ "postgresql://",
61
+ "postgresql+",
62
+ "postgres://",
63
+ "postgres+",
64
+ "cockroachdb://",
65
+ "cockroachdb+",
66
+ )
67
+ ):
68
+ raise ValueError(
69
+ "CockroachDB native connections require a PostgreSQL/CockroachDB SQLAlchemy URL"
70
+ )
71
+ url = make_url(raw_url)
72
+ url = url.set(drivername=ensure_cockroach_drivername(url.drivername))
73
+ username = getattr(database_config, "username", None) or url.username or None
74
+ password = getattr(database_config, "password", None) or url.password or None
75
+ if username != url.username or password != url.password:
76
+ url = url.set(username=username, password=password)
77
+ query = _query_mapping(database_config, url.query)
78
+ if query != dict(url.query):
79
+ url = url.set(query=query)
80
+ return url.render_as_string(hide_password=False)
81
+
82
+ return URL.create(
83
+ "cockroachdb+psycopg",
84
+ username=getattr(database_config, "username", None) or None,
85
+ password=getattr(database_config, "password", None) or None,
86
+ host=getattr(database_config, "host", None) or "localhost",
87
+ port=getattr(database_config, "port", None),
88
+ database=getattr(database_config, "database", None),
89
+ query=_query_mapping(database_config),
90
+ ).render_as_string(hide_password=False)
91
+
92
+
93
+ __all__ = ["build_sqlalchemy_url"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dblift
3
- Version: 3.3.2
3
+ Version: 3.3.3
4
4
  Summary: A database migration tool that supports multiple databases with native Python drivers
5
5
  Classifier: Development Status :: 5 - Production/Stable
6
6
  Classifier: Intended Audience :: Developers
@@ -295,6 +295,8 @@ db/plugins/cockroachdb/__init__.py
295
295
  db/plugins/cockroachdb/plugin.py
296
296
  db/plugins/cockroachdb/provider.py
297
297
  db/plugins/cockroachdb/quirks.py
298
+ db/plugins/cockroachdb/sqlalchemy_dialect.py
299
+ db/plugins/cockroachdb/sqlalchemy_url.py
298
300
  db/plugins/cosmosdb/__init__.py
299
301
  db/plugins/cosmosdb/config.py
300
302
  db/plugins/cosmosdb/plugin.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dblift"
7
- version = "3.3.2"
7
+ version = "3.3.3"
8
8
  description = "A database migration tool that supports multiple databases with native Python drivers"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes