mirror of
https://github.com/Infinidat/infi.clickhouse_orm.git
synced 2024-11-23 17:43:43 +03:00
192 lines
6.5 KiB
Markdown
192 lines
6.5 KiB
Markdown
Change Log
|
|
==========
|
|
|
|
Unreleased
|
|
----------
|
|
- Support for model constraints
|
|
- Support for data skipping indexes
|
|
|
|
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](docs/whats_new_in_version_2.md) 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_statements` parameter to database initializer
|
|
- Fix test_merge which fails on ClickHouse v19.8.3
|
|
- Fix querysets using the SystemPart model
|
|
|
|
v1.0.4
|
|
------
|
|
- Added `timeout` parameter to database initializer (SUHAR1K)
|
|
- Added `verify_ssl_cert` parameter 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_setting` method
|
|
|
|
v1.0.2
|
|
----------
|
|
- Include alias and materialized fields in queryset results
|
|
- Check for database existence, to allow delayed creation
|
|
- Added `Database.does_table_exist` method
|
|
- Support for `IS NULL` and `IS NOT NULL` in querysets (kalombos)
|
|
|
|
v1.0.1
|
|
------
|
|
- NullableField: take extra_null_values into account in `validate` and `to_python`
|
|
- Added `Field.isinstance` method
|
|
- 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)
|
|
- `_fields` and `_writable_fields` are OrderedDicts - note that this might break backwards compatibility (tsionyx)
|
|
- Improve error messages returned from the database with the `ServerError` class (tsionyx)
|
|
- Added support for custom partitioning (M1hacka)
|
|
- Added attribute `server_version` to 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.system` to `Model._system` to prevent collision with a column that has the same name
|
|
- Rename `Model.readonly` to `Model._readonly` to prevent collision with a column that has the same name
|
|
- The `field_names` argument to `Model.to_tsv` is 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 `distinct` method to querysets
|
|
- Add `AlterTableWithBuffer` migration 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 `ne` and `not_in` queryset operators
|
|
- Querysets no longer have a default order unless `order_by` is called
|
|
- Added `autocreate` flag to database initializer
|
|
- Fix some Python 2/3 incompatibilities (TvoroG, tsionyx)
|
|
- To work around a JOIN bug in ClickHouse, `$table` now 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
|
|
|
|
|