Skip to content

Tags: rosperitus/pony

Tags

v0.7.10

Toggle v0.7.10's commit message
PonyORM release 0.7.10 (2019-04-20)

# Bugfixes

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

v0.7.9

Toggle v0.7.9's commit message
PonyORM release 0.7.9 (2019-01-21)

# Bugfixes

* Fix handling of empty arrays and empty lists in queries
* Fix reading optional nullable array columns from database

0.7.8

Toggle 0.7.8's commit message
PonyORM release 0.7.8 (2019-01-19)

# Bugfixes

* ponyorm#414: prefetching Optional relationships fails on 0.7.7
* Fix a bug caused by incorrect deduplication of column values

v0.7.8

Toggle v0.7.8's commit message
PonyORM release 0.7.8 (2019-01-19)

# Bugfixes

* ponyorm#414: prefetching Optional relationships fails on 0.7.7
* Fix a bug caused by incorrect deduplication of column values

0.7.7

Toggle 0.7.7's commit message
PonyORM release 0.7.7 (2019-01-17)

# 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

* ponyorm#405: breaking change with cx_Oracle 7.0: DML RETURNING now returns a list
* ponyorm#380: db_session should work with async functions
* ponyorm#385: test fails with python3.6
* ponyorm#386: release unlocked lock error in SQLite
* ponyorm#390: TypeError: writable buffers are not hashable
* ponyorm#398: add auto coversion of numpy numeric types
* ponyorm#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

0.7.6

Toggle 0.7.6's commit message
Pony ORM Release 0.7.6 (2018-08-10)

# Features since 0.7.5:

* f-strings support in queries: `select(f'{s.name} - {s.age}' for s in Student)`
* ponyorm#344: It is now possible to specify offset without limit: `query.limit(offset=10)`
* ponyorm#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
* ponyorm#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)`
* ponyorm#373: 0.7.4/0.7.5 breaks queries using the `in` operator to test membership of another query result
* ponyorm#374: `auto=True` can be used with all PrimaryKey types, not only `int`
* ponyorm#369: Make QueryResult looks like a list object again: add concatenation with lists, `.shuffle()` and `.to_list()` methods
* ponyorm#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

0.7.6rc1

Toggle 0.7.6rc1's commit message
Pony ORM Release 0.7.6rc1 (2018-08-08)

# New features

* f-strings support in queries: select(f'{s.name} - {s.age}' for s in Student)
* ponyorm#344: It is now possible to specify offset without limit: `query.limit(offset=10)`
* ponyorm#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
* ponyorm#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)`
* ponyorm#373: 0.7.4/0.7.5 breaks queries using the `in` operator to test membership of another query result
* ponyorm#374: `auto=True` can be used with all PrimaryKey types, not only int
* ponyorm#369: Make QueryResult looks like a list object again: add concatenation with lists, `.shuffle()` and `.to_list()` methods
* ponyorm#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

0.7.5

Toggle 0.7.5's commit message
Pony ORM Release 0.7.5 (2018-07-24)

# Bugfixes

* `query.where` and `query.filter` method bug introduced in 0.7.4 was fixed

0.7.4

Toggle 0.7.4's commit message
Pony ORM Release 0.7.4 (2018-07-23)

# Major features

* Hybrid methods and properties added: https://docs.ponyorm.com/entities.html#hybrid-methods-and-properties
* Allow to base queries on another queries: `select(x.a for x in prev_query if x.b)`
* Added support of Python 3.7
* Added support of PyPy
* `group_concat()` aggregate function added
* pony.flask subpackage added for integration with Flask

# Other features

* `distinct` option added to aggregate functions
* Support of explicit casting to `float` and `bool` in queries

# Improvements

* Apply @cut_traceback decorator only when pony.MODE is 'INTERACTIVE'

# Bugfixes

* In SQLite3 `LIKE` is case sensitive now
* ponyorm#249: Fix incorrect mixin used for Timedelta
* ponyorm#251: correct dealing with qualified table names
* ponyorm#301: Fix aggregation over JSON Column
* ponyorm#306: Support of frozenset constants added
* ponyorm#308: Fixed an error when assigning JSON attribute value to the same attribute: obj.json_attr = obj.json_attr
* ponyorm#313: Fix missed retry on exception raised during db_session.__exit__
* ponyorm#314: Fix AttributeError: 'NoneType' object has no attribute 'seeds'
* ponyorm#315: Fix attribute lifting for JSON attributes
* ponyorm#321: Fix KeyError on obj.delete()
* ponyorm#325: duplicating percentage sign in raw SQL queries without parameters
* ponyorm#331: Overriding __len__ in entity fails
* ponyorm#336: entity declaration serialization
* ponyorm#357: reconnect after PostgreSQL server closed the connection unexpectedly
* Fix Python implementation of between() function and rename arguments: between(a, x, y) -> between(x, a, b)
* Fix retry handling: in PostgreSQL and Oracle an error can be raised during commit
* Fix optimistic update checks for composite foreign keys
* Don't raise OptimisticCheckError if db_session is not optimistic
* Handling incorrect datetime values in MySQL
* Improved ImportError exception messages when MySQLdb, pymysql, psycopg2 or psycopg2cffi driver was not found
* desc() function fixed to allow reverse its effect by calling desc(desc(x))
* __contains__ method should check if objects belong to the same db_session
* Fix pony.MODE detection; mod_wsgi detection according to official doc
* A lot of inner fixes

0.7.3

Toggle 0.7.3's commit message
Pony ORM Release 0.7.3 (2017-10-23)

# New features

* `where()` method added to query
* `coalesce()` function added
* `between(x, a, b)` function added
* ponyorm#295: Add `_table_options_` for entity class to specify engine, tablespace, etc.
* Make debug flag thread-local
* `sql_debugging` context manager added
* `sql_debug` and show_values arguments to db_session added
* `set_sql_debug` function added as alias to (to be deprecated) `sql_debug` function
* Allow `db_session` to accept `ddl` parameter when used as context manager
* Add `optimistic=True` option to db_session
* Skip optimistic checks for queries in `db_session` with `serializable=True`
* `fk_name` option added for attributes in order to specify foreign key name
* ponyorm#280: Now it's possible to specify `timeout` option, as well as pass other keyword arguments for `sqlite3.connect` function
* Add support of explicit casting to int in queries using `int()` function
* Added modulo division % native support in queries

# Bugfixes

* Fix bugs with composite table names
* Fix invalid foreign key & index names for tables which names include schema name
* For queries like `select(x for x in MyObject if not x.description)` add "OR x.info IS NULL" for nullable string columns
* Add optimistic checking for `delete()` method
* Show updated attributes when `OptimisticCheckError` is being raised
* Fix incorrect aliases in nested queries
* Correctly pass exception from user-defined functions in SQLite
* More clear error messages for `UnrepeatableReadError`
* Fix `db_session(strict=True)` which was broken in 2d3afb2
* Fixes ponyorm#170: Problem with a primary key column used as a part of another key
* Fixes ponyorm#223: incorrect result of `getattr(entity, attrname)` when the same lambda applies to different entities
* Fixes ponyorm#266: Add handler to `"pony.orm"` logger does not work
* Fixes ponyorm#278: Cascade delete error: FOREIGN KEY constraint failed, with complex entity relationships
* Fixes ponyorm#283: Lost Json update immediately after object creation
* Fixes ponyorm#284: `query.order_by()` orders Json numbers like strings
* Fixes ponyorm#288: Expression text parsing issue in Python 3
* Fixes ponyorm#293: translation of if-expressions in expression
* Fixes ponyorm#294: Real stack traces swallowed within IPython shell
* `Collection.count()` method should check if session is alive
* Set `obj._session_cache_` to None after exiting from db session for better garbage collection
* Unload collections which are not fully loaded after exiting from db session for better garbage collection
* Raise on unknown options for attributes that are part of relationship