Skip to content

Version 0.7.0

Choose a tag to compare

@RafaelBarbosatec RafaelBarbosatec released this 24 Oct 21:28
· 5 commits to main since this release
f5ee7b6

The MySQL driver was upgraded from mysql_dart 1.2.1 to 3.0.3.

  • BREAKING: Queryflow now requires Dart >= 3.6.0, the minimum supported by
    mysql_dart 3.x.
  • MySQL 9 and caching_sha2_password authentication support.
  • JSON columns are decoded correctly.
  • Prepared statements are safer and the driver now serializes concurrent calls
    on a single connection (FIFO).
  • Pooled prepared statements use the driver's withConnection flow.
  • Zero dates (0000-00-00) are returned as null by default.
  • No public Queryflow API changes.

0.6.0

  • Fix UPDATE ignoring every WHERE condition after the first one
  • Fix DELETE concatenating conditions without AND/OR and losing OR
  • Implement notWhere negation for every WhereMatcher
  • Translate Equals(null)/Different(null) to IS NULL/IS NOT NULL
  • In now accepts any value type and rejects empty lists
  • UPDATE no longer hardcodes the id column as the primary key
  • INSERT now quotes column names and uses dialect placeholders
  • executeTransation keeps type adapters, schema definitions and logger
  • MySqlExecutor.executeTransation no longer requires a previous query
  • Nested transactions now fail with a clear UnsupportedError
  • insertModel can run inside a transaction without opening a nested one
  • Fix schema synchronization on PostgreSQL (INFORMATION_SCHEMA casing)
  • Fix foreign key constraints when adding columns during synchronization
  • Fix initalData inserts on PostgreSQL (auto increment and placeholders)
  • TypeEnum uses TEXT + CHECK on PostgreSQL instead of an invalid ENUM
  • Synchronization errors are no longer swallowed
  • Views are dropped before their tables when dropTable is used
  • View synchronization uses the correct schema on PostgreSQL
  • dropObsoleteColumns is now opt-in to avoid accidental data loss
  • columnDefinition now preserves nullability, defaults and constraints when
  • columnDefinition now preserves nullability, defaults and constraints when
    adding columns
  • PostgreSQL executors accept ? placeholders in pooled connections and inside
    transactions; the conversion skips quoted strings and dollar-quoted blocks
  • MySQL pooled prepared statements now run on the same connection that prepared
    them
  • close() is idempotent and connections/pools can be reused after closing
  • PostgreSQL no longer runs SELECT 1 before every query when reusing a healthy
    connection
  • insert() now returns the inserted primary key: uses INSERT ... RETURNING
    on PostgreSQL, honors explicitly provided keys and accepts a primaryKey
    parameter for tables whose key is not id
  • Add executeTransaction and synchronize; executeTransation/syncronize
    are deprecated aliases
  • Logging is silent by default; pass debug: true to enable query logs
  • Use lints instead of flutter_lints, pin the test dependency and update
    CI to run with the Dart SDK
  • Add professional documentation at https://docs.page/RafaelBarbosatec/queryflow