velocity-python 0.1.41__tar.gz → 0.1.42__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.
- {velocity_python-0.1.41/src/velocity_python.egg-info → velocity_python-0.1.42}/PKG-INFO +1 -1
- {velocity_python-0.1.41 → velocity_python-0.1.42}/pyproject.toml +1 -1
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/__init__.py +1 -1
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/table.py +14 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42/src/velocity_python.egg-info}/PKG-INFO +1 -1
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_table_alter.py +17 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/LICENSE +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/README.md +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/setup.cfg +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/amplify.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/amplify_build.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/assets/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/assets/backfill.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/assets/indexing.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/assets/references.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/assets/service.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/assets/usage_index.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/dirty_pipeline.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/context.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/context_factory.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/perf.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/s3.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/ssm_config.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/async_support.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/transaction.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/core/view.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/migrations.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/tablehelper.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_tablehelper.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_view_helper.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/logging.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/pdf.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/__init__.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/authorizenet_adapter.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/authorizenet_mirror.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/base_adapter.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/braintree_adapter.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/braintree_mirror.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/charge_rules.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/stripe_adapter.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/stripe_mirror.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity_python.egg-info/entry_points.txt +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_amplify_build.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_asset_indexing.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_asset_references.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_assets_service.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_async_support.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_batch_operations.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_concurrency_safety.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_connection_pool.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_connection_resilience.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_context_job_descriptions.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_decorators.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_dirty_pipeline_fast_path.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_email_processing.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_iconv_money_to_cents.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_lambda_handler.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_lambda_handler_auth.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_mixins_import.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_n_plus_one.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_observability.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_payment_authorizenet_adapter.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_payment_braintree_adapter.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_payment_braintree_mirror.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_payment_stripe_adapter.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_pdf.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_prepared_statements.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_psycopg3_upgrade.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_query_cache.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_row_batch_update.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_row_cache_staleness.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_row_dirty_tracking.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_schema_migrations.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_security_hardening.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_server_cursor.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_sqs_per_record_transactions.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_where_clause_validation.py +0 -0
|
@@ -211,12 +211,26 @@ def _extract_parenthesized(text, start_index):
|
|
|
211
211
|
raise ValueError(f"Unbalanced parentheses in SQL fragment: {text}")
|
|
212
212
|
|
|
213
213
|
|
|
214
|
+
def _strip_redundant_outer_parens(text):
|
|
215
|
+
value = str(text or "").strip()
|
|
216
|
+
while value.startswith("(") and value.endswith(")"):
|
|
217
|
+
try:
|
|
218
|
+
inner, closing_index = _extract_parenthesized(value, 0)
|
|
219
|
+
except ValueError:
|
|
220
|
+
break
|
|
221
|
+
if closing_index != len(value) - 1:
|
|
222
|
+
break
|
|
223
|
+
value = inner.strip()
|
|
224
|
+
return value
|
|
225
|
+
|
|
226
|
+
|
|
214
227
|
def _normalize_index_expression(expression):
|
|
215
228
|
normalized = str(expression or "").strip().replace('"', "")
|
|
216
229
|
normalized = re.sub(r"::[a-zA-Z0-9_\[\]\s\.]+", "", normalized)
|
|
217
230
|
normalized = re.sub(r"\s+", " ", normalized)
|
|
218
231
|
normalized = re.sub(r"\(\s+", "(", normalized)
|
|
219
232
|
normalized = re.sub(r"\s+\)", ")", normalized)
|
|
233
|
+
normalized = _strip_redundant_outer_parens(normalized)
|
|
220
234
|
return normalized.strip().lower()
|
|
221
235
|
|
|
222
236
|
|
|
@@ -2,6 +2,7 @@ import datetime
|
|
|
2
2
|
import unittest
|
|
3
3
|
from unittest.mock import MagicMock
|
|
4
4
|
|
|
5
|
+
from velocity.db.core.table import _parse_index_signature
|
|
5
6
|
from velocity.db.core.table import Table
|
|
6
7
|
from velocity.db import exceptions
|
|
7
8
|
from velocity.db.servers.postgres import types as postgres_types
|
|
@@ -541,6 +542,22 @@ class TableAlterTests(unittest.TestCase):
|
|
|
541
542
|
indexes=[{"name": "users_status_idx", "columns": ["status"], "unique": True}]
|
|
542
543
|
)
|
|
543
544
|
|
|
545
|
+
def test_parse_index_signature_ignores_redundant_where_parentheses(self):
|
|
546
|
+
existing = (
|
|
547
|
+
"CREATE UNIQUE INDEX idx_invoices_invoice_number "
|
|
548
|
+
"ON public.invoices USING btree (invoice_number) "
|
|
549
|
+
"WHERE (invoice_number IS NOT NULL)"
|
|
550
|
+
)
|
|
551
|
+
desired = (
|
|
552
|
+
"CREATE UNIQUE INDEX idx_invoices_invoice_number "
|
|
553
|
+
"ON invoices (invoice_number) WHERE invoice_number IS NOT NULL"
|
|
554
|
+
)
|
|
555
|
+
|
|
556
|
+
self.assertEqual(
|
|
557
|
+
_parse_index_signature(existing),
|
|
558
|
+
_parse_index_signature(desired),
|
|
559
|
+
)
|
|
560
|
+
|
|
544
561
|
|
|
545
562
|
if __name__ == "__main__":
|
|
546
563
|
unittest.main()
|
|
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
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/context_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/lambda_handler.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/mixins/data_service.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/aws/handlers/mixins/web_handler.py
RENAMED
|
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
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/base/initializer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/mysql/operators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/postgres/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/postgres/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlite/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlite/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlite/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlserver/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlserver/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlserver/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/servers/sqlserver/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_column.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_connections.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_database.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_imports.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_result.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_row.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_sequence.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/postgres/test_transaction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_cursor_rowcount_fix.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_postgres_unchanged.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_result_caching.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/db/tests/test_result_sql_aware.py
RENAMED
|
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
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/misc/tests/test_original_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/authorizenet_adapter.py
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity/payment/authorizenet_mirror.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity_python.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/src/velocity_python.egg-info/top_level.txt
RENAMED
|
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
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_payment_authorizenet_adapter.py
RENAMED
|
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
|
{velocity_python-0.1.41 → velocity_python-0.1.42}/tests/test_sys_modified_count_postgres_demo.py
RENAMED
|
File without changes
|
|
File without changes
|