All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased - ReleaseDate
- derive: support
serde::skip_deserializing
(#83). - the
quanta
feature, enabled by default. - inserter: can be limited by size, see
Inserter::with_max_bytes()
. - insert: apply options set on the client (#90).
- BREAKING inserter: there is no default limits anymore.
- BREAKING inserter:
Inserter::write
is synchronous now. - BREAKING inserter: rename
entries
torows
. - BREAKING drop the
wa-37420
feature. - BREAKING remove deprecated items.
- inserter: increase performance if the
quanta
feature is enabled. - inserter: increase performance if the time limit isn't used.
- derive: move to syn v2.
- watch: support a new syntax.
0.11.6 - 2023-09-27
- client: accept HTTPs urls if
tls
feature is enabled (#58).
0.11.5 - 2023-06-12
0.11.4 - 2023-05-14
- query:
Query::fetch_optional()
.
- query: increase performance up to 40%.
0.11.3 - 2023-02-19
- client: support HTTPS (#54).
- query: improve throughput (~8%).
- cursor: handle errors sent at the end of a response (#56).
0.11.2 - 2023-01-03
- insert:
with_timeouts
to manage timeouts. - inserter:
with_timeouts
andset_timeouts
to manage timeouts.
- insert: improve throughput (~30%).
- inserter: set a default value of
max_entries
to 500_000.
0.11.1 - 2022-11-25
- ipv4:
serde::ipv4
for ser/de theIPv4
type to/fromIpv4Addr
. Note thatIPv6
requires no annotations. - time:
serde::time::datetime(64)
for ser/de thetime::OffsetDateTime
type to/fromDateTime
andDateTime64
. - time:
serde::time::date(32)
for ser/de thetime::Date
type to/fromDate
andDate32
. - serde: add
::option
variants to supportOption<_>
.
- uuid: move to the
serde
submodule.
0.11.0 - 2022-11-10
- compression: implement Lz4/Lz4Hc compression modes for
INSERT
s (#39). - insert: the
wa-37420
feature to avoid ClickHouse#37420. - inserter: new method
Inserter::time_left()
. - uuid: the
uuid
feature and a corresponding module to ser/deuuid::Uuid
(#26).
- BREAKING decompression: HTTP compression (gzip, zlib and brotli) isn't available anymore, only Lz4.
- inserter: skip timer ticks if
INSERT
is too long (#20).
0.10.0 - 2022-01-18
- client:
Client::with_http_client
to use customhyper::Client
, e.g. for https (#27).
- watch: run
WATCH
queries withmax_execution_time=0
. - bind: implement
Bind
for allSerialize
instances (#33).
- Implement
Primitive
forf64
(#31).
0.9.3 - 2021-12-21
- Implement
Primitive
forf64
andf32
(#29).
- Reset quantities on errors to support reusing
Inserter
after errors (#30).
0.9.2 - 2021-11-01
- HTTP Keep-alive timeout is restricted to 2s explicitly.
- watch: make a cursor cancellation safe.
0.9.1 - 2021-10-25
- mock: add
record_ddl
handler to test DDL queries. - mock: add
watch
andwatch_only_events
handlers to test WATCH queries.
0.9.0 - 2021-10-25
- query: support borrowed long strings (#22).
- query: read the whole response of DDL queries.
- BREAKING: watch: require the
watch
feature. - BREAKING: watch: only struct rows are allowed because JSON requires names.
- query: queries with invalid URLs fail with
Error::InvalidParams
. - watch: use
JSONEachRowWithProgress
because of ClickHouse#22996 (#23).
0.8.1 - 2021-08-26
0.8.0 - 2021-07-28
RowBinarySerializer::is_human_readable()
returnsfalse
.
0.7.2 - 2021-05-07
Watch::refresh()
to specifyREFRESH
clause.
derive(Row)
: handle raw identifiers.
0.7.1 - 2021-06-29
- Get rid of "socket is not connected" errors.
- Set TCP keepalive to 60 seconds.
0.7.0 - 2021-05-31
- Replace
reflection::Reflection
withclickhouse::Row
. It's enough to implementRow
for top-levelstruct
s only.
#[derive(Row)]
0.6.8 - 2021-05-28
- docs: enable the
doc_cfg
feature.
0.6.7 - 2021-05-28
- docs: show features on docs.rs.
- Now
test-util
implieshyper/server
.
0.6.6 - 2021-05-28
test
module (available with thetest-util
feature).#[must_use]
forQuery
,Watch
,Insert
andInserter
.
0.6.5 - 2021-05-24
&String
values binding to SQL queries.
0.6.4 - 2021-05-14
- Depend explicitly on
tokio/macros
.
0.6.3 - 2021-05-11
- Support for
bool
values storage (#9). array
s' binding to SQL queries — useful atIN
operators, etc (#9).String
values binding to SQL queries (#9).Query::fetch_all()
sql::Identifier
- Expose
query::Bind
(#11). - Deprecate
Compression::encoding()
.
0.6.2 - 2021-04-12
- watch: bind fileds of the type param.
0.6.1 - 2021-04-09
- compression: decompress error messages (#7).
0.6.0 - 2021-03-24
- Use tokio v1, hyper v0.14, bytes v1.
0.5.1 - 2020-11-22
- decompression: lz4.
0.5.0 - 2020-11-19
- decompression: gzip, zlib and brotli.
0.4.0 - 2020-11-17
Query::fetch_one()
,Watch::fetch_one()
.Query::fetch()
as a replacement forQuery::rows()
.Watch::fetch()
as a replacement forWatch::rows()
.Watch::only_events().fetch()
as a replacement forWatch::events()
.
Error
isStdError + Send + Sync + 'static
now.
0.3.0 - 2020-10-28
- Expose cursors (
query::RowCursor
,watch::{RowCursor, EventCursor}
).
0.2.0 - 2020-10-14
Client::inserter()
for infinite inserting into tables.Client::watch()
forLIVE VIEW
related queries.
- Renamed
Query::fetch()
toQuery::rows()
. - Use
GET
requests forSELECT
statements.
0.1.0 - 2020-10-14
- Support basic types.
Client::insert()
for inserting into tables.Client::query()
for selecting from tables and DDL statements.