infi.clickhouse_orm/CHANGELOG.md

217 lines
7.6 KiB
Markdown
Raw Permalink Normal View History

2017-02-07 17:22:04 +03:00
Change Log
==========
2018-04-07 15:20:33 +03:00
2022-11-29 16:15:57 +03:00
v2.1.3
------
- Fix pagination for models with alias columns
2022-07-19 10:56:22 +03:00
v2.1.2
------
2022-07-19 11:06:19 +03:00
- Add `QuerySet.model` to support django-rest-framework 3
2022-07-19 10:56:22 +03:00
2021-10-21 14:12:46 +03:00
v2.1.1
------
- Improve support of ClickHouse v21.9 (mangototango)
- Ignore non-numeric parts in ClickHouse version (mangototango)
- Fix precedence of ~ operator in Q objects (mangototango)
- Support for adding a column to the beginning of a table (meanmail)
- Add stddevPop and stddevSamp functions (k.peskov)
2020-07-16 07:21:35 +03:00
v2.1.0
------
2020-06-06 11:07:01 +03:00
- Support for model constraints
2020-06-06 20:56:32 +03:00
- Support for data skipping indexes
- Support for mutations: `QuerySet.update` and `QuerySet.delete`
- Added functions for working with external dictionaries
2020-06-23 11:37:41 +03:00
- Support FINAL for `ReplacingMergeTree` (chripede)
- Added `DateTime64Field` (NiyazNz)
- Make `DateTimeField` and `DateTime64Field` timezone-aware (NiyazNz)
2020-07-16 07:21:35 +03:00
**Backwards incompatible changes**
2020-07-16 07:21:35 +03:00
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.
2020-06-06 11:07:01 +03:00
2020-05-30 15:30:17 +03:00
v2.0.1
------
- Remove unnecessary import of `six`
2020-05-16 12:15:14 +03:00
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.
2020-05-16 09:26:43 +03:00
v1.4.0
------
2020-05-01 16:35:39 +03:00
- Added primary_key parameter to MergeTree engines (M1hacka)
2020-05-01 16:44:54 +03:00
- Support negative enum values (Romamo)
2020-05-01 16:35:39 +03:00
2020-02-07 15:58:42 +03:00
v1.3.0
------
- Support LowCardinality columns in ad-hoc queries
- Support for LIMIT BY in querysets (utapyngo)
2019-07-13 10:45:19 +03:00
v1.2.0
------
2019-06-25 07:46:37 +03:00
- Add support for per-field compression codecs (rbelio, Chocorean)
- Add support for low cardinality fields (rbelio)
2019-06-13 17:20:35 +03:00
v1.1.0
------
2019-02-27 09:42:09 +03:00
- Add PREWHERE support to querysets (M1hacka)
2019-02-27 09:58:41 +03:00
- Add WITH TOTALS support to querysets (M1hacka)
2019-02-26 22:40:55 +03:00
- 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
2019-06-13 05:19:16 +03:00
- 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
2019-02-26 22:40:55 +03:00
2019-01-28 11:32:41 +03:00
v1.0.4
------
2018-12-14 09:20:43 +03:00
- Added `timeout` parameter to database initializer (SUHAR1K)
- Added `verify_ssl_cert` parameter to database initializer
2018-12-14 09:34:40 +03:00
- Added `final()` method to querysets (M1hacka)
- Fixed a migrations problem - cannot add a new materialized field after a regular field
2018-12-14 09:20:43 +03:00
2018-10-24 16:34:53 +03:00
v1.0.3
------
- Bug fix: `QuerySet.count()` ignores slicing
- Bug fix: wrong parentheses when building queries using Q objects
2018-10-13 23:19:43 +03:00
- Support Decimal fields
- Added `Database.add_setting` method
2018-08-21 16:01:10 +03:00
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
2018-08-19 18:38:30 +03:00
- Support for `IS NULL` and `IS NOT NULL` in querysets (kalombos)
2018-08-13 08:44:26 +03:00
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`
2018-06-11 13:33:17 +03:00
v1.0.0
------
2018-04-07 15:20:33 +03:00
- Add support for compound filters with Q objects (desile)
- Add support for BETWEEN operator (desile)
2018-04-21 12:10:30 +03:00
- 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)
2018-05-06 14:30:29 +03:00
- Added support for custom partitioning (M1hacka)
2018-04-21 13:48:00 +03:00
- 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)
2018-04-21 13:53:06 +03:00
- 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
2018-06-10 14:30:40 +03:00
- Fix queryset bug when field name contains double underscores (YouCanKeepSilence)
- Prevent exception when determining timezone of old ClickHouse versions (vv-p)
2017-02-07 17:22:04 +03:00
2017-10-31 12:48:32 +03:00
v0.9.8
------
2017-10-30 16:15:12 +03:00
- Bug fix: add field names list explicitly to Database.insert method (anci)
- Added RunPython and RunSQL migrations (M1hacka)
2017-10-30 16:29:49 +03:00
- Allow ISO-formatted datetime values (tsionyx)
- Show field name in error message when invalid value assigned (tsionyx)
2017-10-30 16:49:53 +03:00
- 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.
2017-10-30 16:15:12 +03:00
2017-09-13 12:24:51 +03:00
v0.9.7
------
2017-09-10 17:17:04 +03:00
- Add `distinct` method to querysets
- Add `AlterTableWithBuffer` migration operation
2017-09-13 12:24:51 +03:00
- Support Merge engine (M1hacka)
2017-08-23 08:15:03 +03:00
v0.9.6
------
2017-08-20 10:36:21 +03:00
- Fix python3 compatibility (TvoroG)
- Nullable arrays not supported in latest ClickHouse version
- system.parts table no longer includes "replicated" column in latest ClickHouse version
2017-08-15 23:26:21 +03:00
v0.9.5
------
- Added `QuerySet.paginate()`
- Support for basic aggregation in querysets
2017-06-26 11:10:18 +03:00
v0.9.4
------
- Migrations: when creating a table for a `BufferModel`, create the underlying table too if necessary
2017-06-24 12:59:35 +03:00
v0.9.3
------
2017-06-23 11:56:05 +03:00
- Changed license from PSF to BSD
- Nullable fields support (yamiou)
2017-06-24 12:28:42 +03:00
- Support for queryset slicing
2017-06-23 11:56:05 +03:00
2017-06-15 14:49:43 +03:00
v0.9.2
2017-06-15 14:48:39 +03:00
------
- 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
2017-05-11 05:46:42 +03:00
v0.9.0
------
2017-05-11 05:30:17 +03:00
- 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
2017-04-06 15:12:39 +03:00
v0.8.2
------
- Fix broken Python 3 support (M1hacka)
2017-04-05 18:37:14 +03:00
v0.8.1
------
2017-04-04 15:26:15 +03:00
- 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()
2017-04-04 15:26:15 +03:00
2017-02-22 11:52:03 +03:00
v0.8.0
------
2017-02-07 17:22:04 +03:00
- 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)
2017-02-19 10:30:19 +03:00
- 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)
2017-02-07 17:22:04 +03:00
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