0.2.2 - 2022-08-24
- Table and column comments creation and reflection. Solves issue #149.
- [HTTP] Use query params to specify clickhouse data format. Pull request #180 by save-my-heart.
- Switch from nose test runner to pytest.
0.2.1 - 2022-06-13
- Add
supports_statement_cache = True
. Solves issue #169. - Add
cache_ok = True
for IP types. - Mixed
text()
and pure strings in engine parameters handling. Solves issue #173. - Engine creation in alembic migrations.
CREATE
andDROP
Materialized views. Solves issue #177.
With changes from 0.1.9 and 0.1.10.
0.2.0 - 2022-02-20
- Supported SQLAlchemy version is 1.4.
0.1.10 - 2022-06-06
- Documentation on Read the Docs: https://clickhouse-sqlalchemy.readthedocs.io
AFTER
clause rendering inADD COLUMN
.- Broken Materialized views creation via
.create()
. - Engine creation in migrations for alembic 1.6+.
Engine
is subclass ofConstraint
now.
0.1.9 - 2022-05-08
- ReplicatedReplacingMergeTree reflection. Solves issue #164.
- Inline inserts with literal binds for alembic support.
0.1.8 - 2022-02-03
- Tuple and Map types. Pull request #163 by joelynch.
- Materialized views alembic migrations autogeneration.
- Handle unsupported engines in table reflection.
EXISTS
andDESCRIBE
table quoting.- Default Unicode error handler to
replace
. Pull request #166 by cwurm. - [Native] Inserts with
literal_column
values. Solves issue #133. - Alembic nullable reflection.
- Migrate from Travis CI to GitHub Actions.
0.1.7 - 2021-11-18
- Support for distinctness comparisons (
is_distinct_from
/isnot_distinct_from
). Pull request #144 by wlhjason. Solves issue #143. - [HTTP] Cert auth. Pull request #128 by evgG.
- [HTTP] Session factories. Pull request #131 by carlosefr.
- [HTTP] Raw engine execute. Pull request #134 by FishermanZzhang.
- [HTTP] DateTime('timezone') support. Pull request #141 by lance-plusai.
- Optional disabling engine reflection. Solves issue #140.
AFTER
clause inALTER TABLE ... ADD COLUMN
. Pull request #153 by eivasch.- Column default reflection from
DESCRIBE TABLE
default_expression. Pull request #153 by eivasch.
- SAMPLE BY reflection. Solves issue #127.
- [HTTP]
verify
behavior in requests. Pull request #128 by evgG.
0.1.6 - 2021-03-15
- [HTTP] Optional custom
requests.Session
. Pull request #119 by carlosefr. - DateTime64 type. Pull request #116 by aamalev.
- [HTTP] Keep HTTP connection open between queries. Pull request #117 by carlosefr.
- [HTTP] Don't lose information on unicode conversion. Pull request #120 by carlosefr.
- [HTTP] Fix server version parsing (non-numeric build). Pull request #118 by carlosefr.
- [HTTP] Handle nullable columns. Pull request #121 by carlosefr.
- Reflection for schema and views handling. Pull request #125 by hodgesrm.
- Expressions reflection in *MergeTree engines. Solves issue #123.
- Columns compilation fix. Replace default dialect. Solves issue #124.
- [HTTP] Proper handling
verify
flag when parsing DSN. Pull request #126 by yhvicey.
0.1.5 - 2020-12-14
MATERIALIZED
andALIAS
column options.LIMIT BY
clause support. Pull request #97 by ods.- Basic engines reflection.
TTL
param for *MergeTree engines. Pull request #111 by aamalev.
- Session parametrization in tests.
- Exclude table name from
DEFAULT
column option. - Allow multiple columns in
PARTITION BY
. - Replace
uuid1
withuuid4
for automatic query_id generation. Solves issue #99.
- Remove table names during
JOIN
withUSING
clause. - [Native] Case insensitive
VALUES
clause check for (%s)-templates. - Render
sqlalchemy.Boolean
asUInt8
instead ofBOOLEAN
. Solves issue #93. - Allow multiple columns in SummingMergeTree.
- Proper
JOIN
clause rendering. Solves issue #108.
- Drop Python 3.4 support due to urllib3 drop.
0.1.4 - 2020-04-30
if_exists
andon_cluster
AttributeError on table drop. Pull request #94 by vmarkovtsev.
0.1.3 - 2020-04-04
- Engines: ReplicatedReplacingMergeTree, VersionedCollapsingMergeTree, ReplicatedVersionedCollapsingMergeTree. Solves issue #70.
- File engine. Pull request #72 by armymaksim.
- [HTTP] SSL certificates verification. Pull request #75 by NiyazNz.
- Decimal type reflection. Pull request #74 by armymaksim.
ALTER DELETE
. Pull request #81 by sdrenn. Solves issue #65.ALTER UPDATE
. Pull request #82 by sdrenn. Solves issue #65.- [HTTP] Session tests, assorted fixes. Pull request #73 by hhell.
FINAL
clause. Pull request #79 by sdrenn.CODEC
column option. Pull request #89 by athre0z.- Add literal binds support to IP types. Improve IP types
IN
andNOT IN
comparators. Pull request #91 by AchilleAsh.
- Minimal SQLAlchemy version supported is 1.3 now.
- Named arguments should go after positional in ReplacingMergeTree, SummingMergeTree. Pull request #80 by sdrenn.
sample
keyword argument changed tosample_by
in *MergeTree.version_col,
keyword argument changed toversion
in ReplacingMergeTree.
- [Native] Remove (%s)-templates from
VALUES
clause. - [HTTP]
fetchone
elements order. Solves issue #77. - Fix ReplacingMergeTree creation with no version.
- License file now included in the package. Solves issue #86.
- Columns are now prefixed with table name if necessary. Solves issue #35 and issue #87.
- Generate pure DLL without literals on Replicated tables creation.
0.1.2 - 2019-11-06
- Generic
Table
reflection in case ofautoload=True
. - [HTTP] Fix
get_schema_names
.
0.1.1 - 2019-10-31
- Set default strictness to
INNER
for join. - MergeTree
PARTITION BY
clause now accepts functions.
0.1.0 - 2019-10-31
- Enum without explicit size. Pull request #69 by ei-grad.
- [Native] Passing all parameters to
clickhouse-driver
by using querystring in DSN. - [Native] Bypass
types_check
toclickhouse-driver
viaexecution_options
. - [Native] Store rowcount on
INSERT
. Returning rows count fromINSERT FROM SELECT
is not supported. - Python 3.8 in Travis CI build matrix.
- Assorted fixes and improvements from a downstream internal fork. Pull request #62 by hhell.
- LowCardinality type modifier. Pull request #59 by hhell.
- [Native] IPv4 and IPv6 types. Pull request #52 by AchilleAsh.
- Nested types. Pull request #49 by aCLr.
- Support for
FULL
parameter inJOIN
rendering. Pull request #50 by PiwikPRO. ARRAY JOIN
clause. Pull request #44 by aCLr.
- [Native] Allow empty auth in DSN.
- [Native] Allow default secure port.
- Engine columns bool comparison errors.
- [HTTP]
UnicodeDecodeError
. Pull request #51 by aminought.
- Ability to use custom partition key and primary keys differs from sorting keys for *MergeTree. Pull request #48 by aCLr.
- Cursor performance increased in
fetchmany
andfetchall
. - Add dependencies environment markers in setup.py. Pull request #58 by nitoqq.
- Joins support refactor. Added
strictness
(ANY
/ALL
),distribution
(GLOBAL
) parameters. Pull request #53 by aCLr.
0.0.10 - 2019-02-05
- Self-signed certificate support. Pull request #46 by rrockru.
- UUID type. Pull request #41 by BolshakovNO.
- Enum type reflection. Pull request #33 by sochi.
- Decimal type. Pull request #38 by nikitka.
- Minimal SQLAlchemy version supported is 1.2 now.
- Handling additional column
comment_expression
inDESCRIBE TABLE
results during reflection (in ClickHouse server >= 18.15).
0.0.9 - 2019-01-21
ON CLUSTER
clause inCREATE TABLE
,DROP TABLE
.
- Raw connection execute. Pull request #40 by AchilleAsh. Solves issue #39.
0.0.8 - 2018-11-25
- Streaming support via
yield_per
. - Python 3.7 in Travis CI build matrix.
- Handling boolean values of
secure
query parameter of database url. Cursor.__iter__
now conforms with PEP 479. Pull request #29 by khvn26. Solves issue #27.- Multiprocessing/asyncio pickling issues. Pull request #36 by jhirniak. Solves issue #13.
0.0.7 - 2018-07-31
0.0.6 - 2018-07-20
- Schema names as databases support. Pull request #16 by AchilleAsh.
- DateTime type.
- Reflection Array, FixedString and Nullable types.
- Pip install in editable mode.
- Python 3.3 support.
0.0.5 - 2017-11-06
JOIN
clause support viatuple_()
.- Version detection in setup.py.
- Using native driver parameters substitution via pyformat.
- Binary mod operation compilation issue #8.
0.0.4 - 2017-10-03
SAMPLE
clause.- Code coverage.
- Additional engines: AggregatingMergeTree, GraphiteMergeTree, ReplacingMergeTree, ReplicatedMergeTree, ReplicatedCollapsingMergeTree, ReplicatedAggregatingMergeTree, ReplicatedSummingMergeTree. Distributed, Log, TinyLog, Null.
- Changelog.
- Lambda functions generation.
0.0.3 - 2017-07-16
extract('year', x)
alias totoYear(x)
/toMonth(x)
/toDayOfMonth(x)
. Pull request #2 by gribanov-d.- External tables in native interface support.
- Nullable type support in
CREATE TABLE
. WITH TOTALS
clause support forGROUP BY
.- Passing settings via
execution_options
.
- Native driver elements reverse order issue fixed.
- Fixed
count(expr)
rendering. Pull request #3 by gribanov-d. - Fixed empty string parse error over HTTP. Pull request #5 by gribanov-d.
- Nested Array type generation fixed.
- Structure refactored.
0.0.2 - 2017-06-23
- Travis CI.
- flake8 syntax check.
- Native (TCP) interface support.
- Python 3.3+ support.
ELSE
clause is required inCASE
.
- HTTP/HTTPS protocol support.
- Python 2.7 support.
- Engine declaration support in
__table_args__
DROP TABLE IF EXISTS
clause.- Automatic registering as dialect
clickhouse://
. - Chunked
INSERT INTO
in one request. - Engines: MergeTree, CollapsingMergeTree, SummingMergeTree, Buffer, Memory.