Releases: coleifer/peewee
Releases · coleifer/peewee
3.17.8
3.17.7
- Add db_url support for psycopg3 via
psycopg3://
. - Ensure double-quotes are escaped properly when introspecting constraints.
- A few documentation-related fixes.
3.17.6
- Fix bug in recursive
model.delete_instance()
when a table contains foreign-keys at multiple depths of the graph, #2893. - Fix regression in pool behavior on systems where
time.time()
returns identical values for two connections. This adds a no-op comparable sentinel to the heap to prevent any recurrence of this problem, #2901. - Ensure that subqueries inside
CASE
statements generate correct SQL. - Fix regression that broke server-side cursors with Postgres (introduced in 3.16.0).
- Fix to ensure compatibility with psycopg3 - the libpq TransactionStatus constants are no longer available on the
Connection
instance. - Fix quoting issue in pwiz that could generate invalid python code for double-quoted string literals used as column defaults.
3.17.5
3.17.4
- Fix bug that could occur when using CASE inside a function, and one or more of the CASE clauses consisted of a subquery. Refs #2873. new fix in #2872 for regression in truthiness of cursor.
- Fix bug in the conversion of TIMESTAMP type in Sqlite on Python 3.12+.
- Fix for hybrid properties on subclasses when aliased (#2888).
- Many fixes for SqliteQueueDatabase (#2874, #2876, #2877).
3.17.3
3.17.2
3.17.1
- Add bitwise and other helper methods to
BigBitField
, #2802. - Add
add_column_default
anddrop_column_default
migrator methods for specifying a server-side default value, #2803. - The new
star
attribute was causing issues for users who had a field named star on their models. This attribute is now renamed to__star__
. #2796. - Fix compatibility issues with 3.12 related to utcnow() deprecation.
- Add stricter locking on connection pool to prevent race conditions.
- Add adapters and converters to Sqlite to replace ones deprecated in 3.12.
- Fix bug in
model_to_dict()
when only aliases are present. - Fix version check for Sqlite native drop column support.
- Do not specify a
reconnect=
argument toping()
if using MySQL 8.x.
3.17.0
- Only roll-back in the outermost
@db.transaction
decorator/ctx manager if an unhandled exception occurs. Previously, an unhandled exception that occurred in a nestedtransaction
context would trigger a rollback. The use of nestedtransaction
has long been discouraged in the documentation: the recommendation is to always usedb.atomic
, which will use savepoints to properly handle nested blocks. However, the new behavior should make it easier to reason about transaction boundaries - see #2767 for discussion. - Cover transaction
BEGIN
in the reconnect-mixin. Given that no transaction has been started, reconnecting when beginning a new transaction ensures that a reconnect will occur if it is safe to do so. - Add support for setting
isolation_level
indb.atomic()
anddb.transaction()
when using Postgres and MySQL/MariaDB, which will apply to the wrapped transaction. Note: Sqlite has supported a similarlock_type
parameter for some time. - Add support for the Sqlite
SQLITE_DETERMINISTIC
function flag. This allows user-defined Sqlite functions to be used in indexes and may be used by the query planner. - Fix unreported bug in dataset import when inferred field name differs from column name.
3.16.3
- Support for Cython 3.0.
- Add flag to
ManyToManyField
to prevent setting/getting values on unsaved instances. This is worthwhile, since reading or writing a many-to-many has no meaning when the instance is unsaved. - Adds a
star()
helper toSource
base-class for selecting all columns. - Fix missing
binary
types for mysql-connector and mariadb-connector. - Add
extract()
method to MySQLJSONField
for extracting a jsonpath.