7.1 KiB
7.1 KiB
Change Log
v2.1.0
- Support for model constraints
- Support for data skipping indexes
- Support for mutations:
QuerySet.updateandQuerySet.delete - Added functions for working with external dictionaries
- Support FINAL for
ReplacingMergeTree(chripede) - Added
DateTime64Field(NiyazNz) - Make
DateTimeFieldandDateTime64Fieldtimezone-aware (NiyazNz)
Backwards incompatible changes
Previously, DateTimeField always converted its value from the database timezone to UTC. This is no longer the case: the field's value now preserves the timezone it was defined with, or if not specified - the database's global timezone. This change has no effect if your database timezone is set to UTC.
v2.0.1
- Remove unnecessary import of
six
v2.0.0
- Dropped support for Python 2.x
- New flexible syntax for database expressions and functions
- Expressions as default values for model fields
- Support for IPv4 and IPv6 fields
- Automatic generation of models by inspecting existing tables
- Convenient ways to import ORM classes
See What's new in version 2 for details.
v1.4.0
- Added primary_key parameter to MergeTree engines (M1hacka)
- Support negative enum values (Romamo)
v1.3.0
- Support LowCardinality columns in ad-hoc queries
- Support for LIMIT BY in querysets (utapyngo)
v1.2.0
- Add support for per-field compression codecs (rbelio, Chocorean)
- Add support for low cardinality fields (rbelio)
v1.1.0
- Add PREWHERE support to querysets (M1hacka)
- Add WITH TOTALS support to querysets (M1hacka)
- Extend date field range (trthhrtz)
- Fix parsing of server errors in ClickHouse v19.3.3+
- Fix pagination when asking for the last page on a query that matches no records
- Use HTTP Basic Authentication instead of passing the credentials in the URL
- Support default/alias/materialized for nullable fields
- Add UUIDField (kpotehin)
- Add
log_statementsparameter to database initializer - Fix test_merge which fails on ClickHouse v19.8.3
- Fix querysets using the SystemPart model
v1.0.4
- Added
timeoutparameter to database initializer (SUHAR1K) - Added
verify_ssl_certparameter to database initializer - Added
final()method to querysets (M1hacka) - Fixed a migrations problem - cannot add a new materialized field after a regular field
v1.0.3
- Bug fix:
QuerySet.count()ignores slicing - Bug fix: wrong parentheses when building queries using Q objects
- Support Decimal fields
- Added
Database.add_settingmethod
v1.0.2
- Include alias and materialized fields in queryset results
- Check for database existence, to allow delayed creation
- Added
Database.does_table_existmethod - Support for
IS NULLandIS NOT NULLin querysets (kalombos)
v1.0.1
- NullableField: take extra_null_values into account in
validateandto_python - Added
Field.isinstancemethod - Validate the inner field passed to
ArrayField
v1.0.0
- Add support for compound filters with Q objects (desile)
- Add support for BETWEEN operator (desile)
- Distributed engine support (tsionyx)
_fieldsand_writable_fieldsare OrderedDicts - note that this might break backwards compatibility (tsionyx)- Improve error messages returned from the database with the
ServerErrorclass (tsionyx) - Added support for custom partitioning (M1hacka)
- Added attribute
server_versionto Database class (M1hacka) - Changed
Engine.create_table_sql(),Engine.drop_table_sql(),Model.create_table_sql(),Model.drop_table_sql()parameter to db from db_name (M1hacka) - Fix parsing of datetime column type when it includes a timezone (M1hacka)
- Rename
Model.systemtoModel._systemto prevent collision with a column that has the same name - Rename
Model.readonlytoModel._readonlyto prevent collision with a column that has the same name - The
field_namesargument toModel.to_tsvis now mandatory - Improve creation time of model instances by keeping a dictionary of default values
- Fix queryset bug when field name contains double underscores (YouCanKeepSilence)
- Prevent exception when determining timezone of old ClickHouse versions (vv-p)
v0.9.8
- Bug fix: add field names list explicitly to Database.insert method (anci)
- Added RunPython and RunSQL migrations (M1hacka)
- Allow ISO-formatted datetime values (tsionyx)
- Show field name in error message when invalid value assigned (tsionyx)
- Bug fix: select query fails when query contains '$' symbol (M1hacka)
- Prevent problems with AlterTable migrations related to field order (M1hacka)
- Added documentation about custom fields.
v0.9.7
- Add
distinctmethod to querysets - Add
AlterTableWithBuffermigration operation - Support Merge engine (M1hacka)
v0.9.6
- Fix python3 compatibility (TvoroG)
- Nullable arrays not supported in latest ClickHouse version
- system.parts table no longer includes "replicated" column in latest ClickHouse version
v0.9.5
- Added
QuerySet.paginate() - Support for basic aggregation in querysets
v0.9.4
- Migrations: when creating a table for a
BufferModel, create the underlying table too if necessary
v0.9.3
- Changed license from PSF to BSD
- Nullable fields support (yamiou)
- Support for queryset slicing
v0.9.2
- Added
neandnot_inqueryset operators - Querysets no longer have a default order unless
order_byis called - Added
autocreateflag to database initializer - Fix some Python 2/3 incompatibilities (TvoroG, tsionyx)
- To work around a JOIN bug in ClickHouse,
$tablenow inserts only the table name, and the database name is sent in the query params instead
v0.9.0
- Major new feature: building model queries using QuerySets
- Refactor and expand the documentation
- Add support for FixedString fields
- Add support for more engine types: TinyLog, Log, Memory
- Bug fix: Do not send readonly=1 when connection is already in readonly mode
v0.8.2
- Fix broken Python 3 support (M1hacka)
v0.8.1
- Add support for ReplacingMergeTree (leenr)
- Fix problem with SELECT WITH TOTALS (pilosus)
- Update serialization format of DateTimeField to 10 digits, zero padded (nikepan)
- Greatly improve performance when inserting large strings (credit to M1hacka for identifying the problem)
- Reduce memory footprint of Database.insert()
v0.8.0
- Always keep datetime fields in UTC internally, and convert server timezone to UTC when parsing query results
- Support for ALIAS and MATERIALIZED fields (M1ha)
- Pagination: passing -1 as the page number now returns the last page
- Accept datetime values for date fields (Zloool)
- Support readonly mode in Database class (tswr)
- Added support for the Buffer table engine (emakarov)
- Added the SystemPart readonly model, which provides operations on partitions (M1ha)
- Added Model.to_dict() that converts a model instance to a dictionary (M1ha)
- Added Database.raw() to perform arbitrary queries (M1ha)
v0.7.1
- Accept '0000-00-00 00:00:00' as a datetime value (tsionyx)
- Bug fix: parse_array fails on int arrays
- Improve performance when inserting many rows
v0.7.0
- Support array fields
- Support enum fields
v0.6.3
- Python 3 support