All Versions
16
Latest Version
Avg Release Cycle
149 days
Latest Release
1250 days ago

Changelog History
Page 1

  • v0.7.14 Changes

    November 23, 2020

    ๐Ÿ”‹ Features

    • โž• Add Python 3.9 support
    • Allow to use kwargs in select: Entity.select(**kwargs) and obj.collection.select(**kwargs), a feature that was announced but actually missed from 0.7.7
    • โž• Add support for volatile collection attributes that don't throw "Phantom object appeared/disappeared" exceptions

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix negative timedelta conversions
    • Pony should reconnect to PostgreSQL when receiving 57P01 error (AdminShutdown)
    • ๐Ÿ‘ Allow mixing compatible types (like int and float) in coalesce() arguments
    • ๐Ÿ‘Œ Support of subqueries in coalesce() arguments
    • ๐Ÿ›  Fix using aggregated subqueries in ORDER BY section
    • ๐Ÿ›  Fix queries with expressions like (x, y) in ((a, b), (c, d))
    • #451: KeyError for seeds with unique attributes in SessionCache.update_simple_index()
  • v0.7.13 Changes

    March 03, 2020

    ๐Ÿ›  This release contains no new features or bugfixes. The only reason for this release is to test our CI/CD process.

  • v0.7.12 Changes

    February 04, 2020

    ๐Ÿ”‹ Features

    • ๐Ÿ‘ CockroachDB support added
    • โœ… CI testing for SQLite, PostgreSQL & CockroachDB

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix translation of getting array items with negative indexes
    • ๐Ÿ›  Fix string getitem translation for slices and negative indexes
    • ๐Ÿ›  PostgreSQL DISTINCT bug fixed for queries with ORDER BY clause
    • ๐Ÿ›  Fix date difference syntax in PostgreSQL
    • ๐Ÿ›  Fix casting json to dobule in PostgreSQL
    • ๐Ÿ›  Fix count by several columns in PostgreSQL
    • ๐Ÿ›  Fix PostgreSQL MIN and MAX expressions on boolean columns
    • ๐Ÿ›  Fix determination of interactive mode in PyCharm
    • ๐Ÿ›  Fix column definition when sql_default is specified: DEFAULT should be before NOT NULL
    • โšก๏ธ Relax checks on updating in-memory cache indexes (don't throw CacheIndexError on valid cases)
    • ๐Ÿ›  Fix deduplication logic for attribute values
  • v0.7.11 Changes

    October 23, 2019

    ๐Ÿ”‹ Features

    • ๐Ÿ‘ #472: Python 3.8 support
    • ๐Ÿ‘Œ Support of hybrid functions (inlining simple Python functions into query)
    • ๐Ÿ‘ #438: support datetime-datetime, datetime-timedelta, datetime+timedelta in queries

    ๐Ÿ›  Bugfixes

    • #430: add ON DELETE CASCADE for many-to-many relationships
    • #465: Should reconnect to MySQL on OperationalError 2013 'Lost connection to MySQL server during query'
    • #468: Tuple-value comparisons generate incorrect queries
    • ๐Ÿ—„ #470 fix PendingDeprecationWarning of imp module
    • ๐Ÿ›  Fix incorrect unpickling of objects with Json attributes
    • Check value of discriminator column on object creation if set explicitly
    • Correctly handle Flask current_user proxy when adding new items to collections
    • ๐Ÿ›  Some bugs in syntax of aggregated queries were fixed
    • ๐Ÿ›  Fix syntax of bulk delete queries
    • Bulk delete queries should clear query results cache so next select will get correct result from the database
    • ๐Ÿ›  Fix error message when hybrid method is too complex to decompile
  • v0.7.10 Changes

    April 20, 2019

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Python3.7 and PyPy decompiling fixes
    • ๐Ÿ›  Fix reading NULL from Optional nullable array column
    • ๐Ÿ›  Fix handling of empty arrays in queries
    • #415: error message typo
    • #432: PonyFlask - request object can trigger teardown_request without real request
    • ๐Ÿ›  Fix GROUP CONCAT separator for MySQL
  • v0.7.9 Changes

    January 21, 2019

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix handling of empty arrays and empty lists in queries
    • ๐Ÿ›  Fix reading optional nullable array columns from database
  • v0.7.8 Changes

    January 19, 2019

    ๐Ÿš€ This is a bug fix release

    ๐Ÿ›  Bugfixes

    • #414: prefetching Optional relationships fails on 0.7.7
    • ๐Ÿ›  Fix a bug caused by incorrect deduplication of column values
  • v0.7.7 Changes

    January 17, 2019

    Major features

    • ๐Ÿ‘ Array type support for PostgreSQL and SQLite
    • ๐Ÿ‘ isinstance() support in queries
    • ๐Ÿ‘Œ Support of queries based on collections: select(x for x in y.items)

    Other features

    • Support of Entity.select(**kwargs)
    • ๐Ÿ‘Œ Support of SKIP LOCKED option in 'SELECT ... FOR UPDATE'
    • New function make_proxy(obj) to make cros-db_session proxy objects
    • Specify ON DELETE CASCADE/SET NULL in foreign keys
    • ๐Ÿ‘Œ Support of LIMIT in SELECT FROM (SELECT ...) type of queries
    • ๐Ÿ‘Œ Support for negative JSON array indexes in SQLite

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ‘Œ Improved query prefetching: use fewer number of SQL queries
    • Memory optimization: deduplication of values recieved from the database in the same session
    • increase DBAPIProvider.max_params_count value

    ๐Ÿ›  Bugfixes

    • #405: breaking change with cx_Oracle 7.0: DML RETURNING now returns a list
    • #380: db_session should work with async functions
    • โœ… #385: test fails with python3.6
    • ๐Ÿš€ #386: release unlocked lock error in SQLite
    • #390: TypeError: writable buffers are not hashable
    • #398: add auto coversion of numpy numeric types
    • #404: GAE local run detection
    • ๐Ÿ›  Fix Flask compatibility: add support of LocalProxy object
    • db_session(sql_debug=True) should log SQL commands also during db_session. exit ()
    • ๐Ÿ›  Fix duplicated table join in FROM clause
    • ๐Ÿ›  Fix accessing global variables from hybrid methods and properties
    • ๐Ÿ›  Fix m2m collection loading bug
    • ๐Ÿ›  Fix composite index bug: stackoverflow.com/questions/53147694
    • ๐Ÿ›  Fix MyEntity[obj.get_pk()] if pk is composite
    • MySQL group_concat_max_len option set to max of 32bit platforms to avoid truncation
    • ๐Ÿ‘‰ Show all attribute options in show(Entity) call
    • For nested db_session retry option should be ignored
    • Fix py_json_unwrap
    • ๐Ÿ›  Other minor fixes
  • v0.7.6 Changes

    August 10, 2018

    ๐Ÿ”‹ Features since 0.7.5:

    • ๐Ÿ‘ f-strings support in queries: select(f'{s.name} - {s.age}' for s in Student)
    • #344: It is now possible to specify offset without limit: query.limit(offset=10)
    • ๐Ÿ‘ #371: Support of explicit casting of JSON expressions to str, int or float
    • ๐Ÿ“„ @db.on_connect decorator added

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix bulk delete bug introduced in 0.7.4
    • #370 Fix memory leak introduced in 0.7.4
    • Now exists() in query does not throw away condition in generator expression:
      exists(s.gpa > 3 for s in Student)
    • โœ… #373: 0.7.4/0.7.5 breaks queries using the in operator to test membership of another query result
    • #374: auto=True can be used with all PrimaryKey types, not only int
    • #369: Make QueryResult looks like a list object again: add concatenation with lists, .shuffle() and .to_list() methods
    • #355: Fix binary primary keys PrimaryKey(buffer) in Python2
    • ๐Ÿ‘ Interactive mode support for PyCharm console
    • ๐Ÿ›  Fix wrong table aliases in complex queries
    • ๐Ÿ›  Fix query optimization code for complex queries
    • ๐Ÿ›  Fix a bug with hybrid properties that use external functions
  • v0.7.6.rc1 Changes

    August 08, 2018

    ๐Ÿ›  This is mostly bugfix release to fix bugs introduced in 0.7.4

    ๐Ÿ†• New features

    • ๐Ÿ‘ f-strings support in queries: select(f'{s.name} - {s.age}' for s in Student)
    • #344: It is now possible to specify offset without limit: query.limit(offset=10)
    • ๐Ÿ‘ #371: Support of explicit casting of JSON expressions to str, int or float
    • #367: @db.on_connect decorator added

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix bulk delete bug introduced in 0.7.4
    • #370 Fix memory leak introduced in 0.7.4
    • Now exists() in query does not throw away condition in generator expression: exists(s.gpa > 3 for s in Student)
    • โœ… #373: 0.7.4/0.7.5 breaks queries using the in operator to test membership of another query result
    • #374: auto=True can be used with all PrimaryKey types, not only int
    • #369: Make QueryResult looks like a list object again: add concatenation with lists, .shuffle() and .to_list() methods
    • #355: Fix binary primary keys PrimaryKey(buffer) in Python2
    • ๐Ÿ‘ Interactive mode support for PyCharm console
    • ๐Ÿ›  Fix wrong table aliases in complex queries
    • ๐Ÿ›  Fix query optimization code for complex queries