Changelog

[0.1.7] - 2026-06-05

Added

  • Cross-database migration via migrate_table() in sqlpyhelper.migration

  • Supports all five database combinations with batched inserts

  • Best-effort type mapping across SQLite, PostgreSQL, MySQL, SQL Server, Oracle

  • MigrationError exception for migration-specific failures

  • Migration documentation page on ReadTheDocs

  • 37 new tests for migration module (96 total)

[0.1.6] - 2026-06-05

Added

  • ReadTheDocs documentation site at https://sqlpyhelper.readthedocs.io

  • Documentation badge in README

  • Documentation link in PyPI project_urls

[0.1.5] - 2026-06-05

Added

  • Python logging module replacing unused log_query() function

  • Full type annotations on all public methods

  • commit_transaction() method for explicit transaction commits

  • pre-commit.sh script for local code quality checks

Changed

  • Replaced deprecated cx_Oracle with python-oracledb

  • begin_transaction() is now database-agnostic

  • rollback_transaction() uses connection.rollback() directly

[0.1.4] - 2026-06-04

Security

  • Fixed SQL injection vulnerability in fetch_by_param, create_table, insert_bulk, backup_table, and insert_dynamic

  • Fixed command injection in backup_database

Fixed

  • reconnect() no longer crashes

  • return_connection_to_pool() now correctly returns connections to pool

  • SQLite queries now use ? placeholder throughout

  • Errors now raise typed exceptions instead of being silently printed

[0.1.3] - 2025

  • Initial public release