Skip to content

0.8.7 - R*Tree spatial indexing, CHECK constraints, better DEFAULT and type handling

Choose a tag to compare

@ocean ocean released this 16 Jan 03:53
· 111 commits to main since this release

Added

  • CHECK Constraint Support - Column-level CHECK constraints in migrations
  • R*Tree Spatial Indexing - Full support for SQLite R*Tree virtual tables with 1D-5D indexing, validation, and comprehensive test coverage
  • ecto_sqlite3 Compatibility Test Suite - Comprehensive tests ensuring feature parity with ecto_sqlite3
  • Type Encoding Improvements - Automatic JSON encoding for plain maps, DateTime/Decimal parameter encoding, improved type coercion
  • Comprehensive Type Loader/Dumper Support - Full support for encoding/decoding temporal types (DateTime, NaiveDateTime, Date, Time), Decimal, and special nil values with proper ISO 8601 formatting
  • Default Value Type Handling - Support for Decimal, DateTime, NaiveDateTime, Date, Time, and :null as default values in migrations with warning logging for unsupported types
  • Connection Recovery Testing - Test suite for connection failure scenarios and recovery patterns
  • Query Encoding Improvements - Explicit test coverage for query parameter encoding with various data types and edge cases

Fixed

  • DateTime Microsecond Type Loading - Fixed :utc_datetime_usec, :naive_datetime_usec, and :time_usec loading from ISO 8601 strings with microsecond precision
  • Parameter Encoding - Automatic map-to-JSON conversion, DateTime/Decimal encoding for compatibility with Oban and other libraries
  • Migration Robustness - Handle :serial/:bigserial types, improved default value handling with warnings for unsupported types
  • JSON and RETURNING Clauses - Fixed JSON encoding in RETURNING queries and datetime function calls
  • Test Isolation - Comprehensive database cleanup across all test suites, per-test table clearing, improved resource management
  • DateTime Type Handling - Fixed datetime_decode to handle timezone-aware ISO 8601 strings and nil value encoding for date/time/bool types
  • Decimal Type Handling - Updated assertions to accept both numeric and string representations of decimal values in database queries
  • Datetime Roundtrip Preservation - Strengthened microsecond precision preservation in datetime round-trip tests

Changed

  • Test Suite Consolidation - Streamlined and improved test organisation with better coverage of edge cases, error handling, and concurrent operations
  • Documentation - Updated documentation with SQLite-specific query limitations, compatibility testing results, and guidance for type encoding edge cases

Full Changelog: 0.8.6...0.8.7