Skip to content

Tags: orenmazor/pony

Tags

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

0.7.2

Toggle 0.7.2's commit message
Pony ORM Release 0.7.2 (2017-07-17)

# New features

* All arguments of db.bind() can be specified as keyword arguments. Previously Pony required the first positional argument which specified the database provider. Now you can pass all the database parameters using the dict: db.bind(**db_params). See https://docs.ponyorm.com/api_reference.html#Database.bind
* The `optimistic` attribute option is added https://docs.ponyorm.com/api_reference.html#cmdoption-arg-optimistic

# Bugfixes

* Fixes ponyorm#219: when a database driver raises an error, sometimes this error was masked by the 'RollbackException: InterfaceError: connection already closed' exception. This happened because on error, Pony tried to rollback transaction, but the connection to the database was already closed and it masked the initial error. Now Pony displays the original error which helps to understand the cause of the problem.
* Fixes ponyorm#276: Memory leak
* Fixes the __all__ declaration. Previously IDEs, such as PyCharm, could not understand what is going to be imported by 'from pony.orm import *'. Now it works fine.
* Fixes ponyorm#232: negate check for numeric expressions now checks if value is zero or NULL
* Fixes ponyorm#238, fixes ponyorm#133: raise TransactionIntegrityError exception instead of AssertionError if obj.collection.create(**kwargs) creates a duplicate object
* Fixes ponyorm#221: issue with unicode json path keys
* Fixes bug when discriminator column is used as a part of a primary key
* Handle situation when SQLite blob column contains non-binary value