Releases: chdb-io/chdb
Releases · chdb-io/chdb
v3.6.0
What's Changed
- Fix open session after a previous failure by @wudidapaopao in #359
- Fix empty insert caused RuntimeError by @wudidapaopao in #361
- Fix drop table by @wudidapaopao in #364
- Fix memory tracker by @wudidapaopao in #367
- Universal wheel pkg across multiple Python versions by @wudidapaopao in #369
- Fix(sql): add support for query execution with explicit length for char safe handling by @kafka1991 in #373
- Feat(c++): more ergonomic cpp API and add cpp examples by @kafka1991 in #371
- Feat(DBAPI): support
?
as placeholder to improve compatibility forDBAPI
by @kafka1991 in #370 - Add chdb static library by @wudidapaopao in #362
New Contributors
- @kafka1991 made their first contribution in #373
Full Changelog: v3.5.0...v3.6.0
v3.5.0
What's Changed
- Fix multiple query by @wudidapaopao in #348
- Patch: split Resize/StrictResize to avoid lock contention by @wudidapaopao in #349
- Improve the prompt messages of the command-line tool by @wudidapaopao in #345
- Add version guide by @auxten in #351
- Add PyArrow RecordBatchReader support for streaming data export by @wudidapaopao in #354
# Example of Using PyArrow RecordBatchReader with `deltalake.write_deltalake`
import pyarrow as pa
from deltalake import write_deltalake
from chdb import session as chs
sess = chs.Session()
# Get streaming result in arrow format
stream_result = sess.send_query("SELECT * FROM numbers(100000)", "Arrow")
# Create RecordBatchReader with custom batch size (default rows_per_batch=1000000)
batch_reader = stream_result.record_batch(rows_per_batch=10000)
# Use RecordBatchReader with external libraries like Delta Lake
write_deltalake(
table_or_uri="./my_delta_table",
data=batch_reader,
mode="overwrite"
)
stream_result.close()
sess.close()
Full Changelog: v3.4.1...v3.5.0
v3.4.1
What's Changed
- Fix kafka table engine by @wudidapaopao in #341
- Support delta lake on linux x86-64 platform by @wudidapaopao in #343
- Revert previous changes to MemoryTracker by @wudidapaopao in #344
Full Changelog: v3.4.0...v3.4.1
v3.4.0
What's Changed
- Move session temp path management from Python to C++ by @wudidapaopao in #337
- Upgrade ClickHouse version to v25.5.2.47 by @wudidapaopao in #338
- Fix crash on macos x86 platform by @wudidapaopao in #340
Full Changelog: v3.3.0...v3.4.0
v3.3.0
What's Changed
- Fix signal loss by removing the signal handler in the ClickHouse engine by @wudidapaopao in #327
- Add README documentation for JSON type support and new interface by @wudidapaopao in #335
- Add storage_rows_read and storage_bytes_read interfaces for retrieving storage metrics by @wudidapaopao in #334
- Implement JSON type support by @wudidapaopao in #330
import chdb
import pandas as pd
dict_data = {
"a": [1, 2, 3, 4, 5, 6],
"b": ["tom", "jerry", "auxten", "tom", "jerry", "auxten"],
"dict_col": [
{'id': 1, 'tags': ['urgent', 'important'],
'metadata': {'created': '2024-01-01'}},
{'id': 2, 'tags': ['normal'],
'metadata': {'created': '2024-02-01'}},
{'id': 3, 'name': 'tom'},
{'id': 4, 'value': '100'},
{'id': 5, 'value': 101},
{'id': 6, 'value': 102},
],
}
df = pd.DataFrame(dict_data)
chdb.query("SELECT b, sum(a) FROM Python(df) GROUP BY b ORDER BY b").show()
# "auxten",9
# "jerry",7
# "tom",5
chdb.query(
"SELECT dict_col.id FROM Python(dict_data) WHERE dict_col.value='100'"
).show()
# 4
Full Changelog: v3.2.0...v3.3.0
v3.2.0
What's Changed
- Add connection based API example by @auxten in #319
- Fix the potential memory leak issue caused by query result memory not being properly released by @wudidapaopao in #320
- Add support for streaming query in chDB by @wudidapaopao in #326
New Contributors
- @wudidapaopao made their first contribution in #320
Streaming API
Full Changelog: v3.1.2...v3.2.0