Skip to content

Releases: duckdb/duckdb

v0.10.3 Bugfix Release

22 May 13:30
70fd6a8
Compare
Choose a tag to compare

This is a bug fix release for various issues discovered after we released 0.10.2. There are no new major features, just bug fixes. Database files created by DuckDB v0.10.* or v0.9.* can be read by DuckDB v0.10.3.

Highlights

Even though this is "only" a bug fix release, there have been some major areas of work that warrant a separate mention:

  • We have added a feature to update extensions using the UPDATE EXTENSIONS syntax #11677
  • There have been some serious internal improvements around checkpointing, most notably, checkpoints can run while other connections are reading, and no longer block new connections while checkpointing #11918. Also, FORCE CHECKPOINT no longer actively cancels transactions, it now waits until it can checkpoint #12061
  • DuckDB now has native support to load data from HuggingFace using the hf:// prefix #11831
  • We have slightly changed NULL casting behaviour with the MAP type #11745
  • The Java JDBC driver has been moved to its own repo: https://github.com/duckdb/duckdb-java #11873
  • DuckDB now cleanly compiles with -Wconversion and all conversions are actually being checked #11716, #11673

What's Changed

  • Add setting to control the maximum swap space by @Tishj in #10978
  • [Python][Dev] Dynamically generate the Connection wrapper methods by @Tishj in #11202
  • Fixes duckdb wasm by @carlopi in #11688
  • Checked conversions between signed and unsigned integers by @hannes in #11673
  • Bump Julia to v0.10.2 by @Mytherin in #11700
  • Minor improvements to sql_reduce script by @Mytherin in #11701
  • Properly avoid build-time dependency on Python by @carlopi in #11713
  • Test dockerized compilation in Alpine:latest and Ubuntu:20.04 by @carlopi in #11708
  • [COPY CSV] Enable TIMESTAMP_TZ formats by @Tishj in #11711
  • Full conversion warnings / checks by @hannes in #11716
  • [Safety] Add safety checks to shared_ptr access by @Tishj in #11696
  • Remove bound_defaults from BoundCreateTableInfo by @Mytherin in #11721
  • Improve mkdir error reporting by @Mytherin in #11723
  • [Dev] Fix failing CI in Python SQLLogicTest Runner by @Tishj in #11724
  • More docker tests, fix compilation up to C++23 standard by @carlopi in #11725
  • Upload staging: from 'git describe --tags' to 'git log -1' by @carlopi in #11715
  • Internal #1848: Window Progress by @hawkfish in #11702
  • Remove BoundConstraint from the TableCatalogEntry by @Mytherin in #11735
  • Implicit Cast for any Date/Timestamp by @pdet in #11733
  • feat: rewrite which_secret() into a table function by @stephaniewang526 in #11726
  • [Map] Rework MAP creation method behavior when input is NULL by @Tishj in #11730
  • [Dev] Always use SQLStatement->Copy() when ALTERNATIVE_VERIFY is defined by @Tishj in #11732
  • Reconstruct Error Messages for Flush Cast by @pdet in #11736
  • Getting Rid of Value.TryCast in the CSV Sniffer by @pdet in #11717
  • Fix Join order optimizer so that plan generation is always via the most current entry in the DP table. by @Tmonster in #11719
  • fix(py): support DuckDBPyType#children for array and enum by @Mause in #11754
  • Consider not null values when doing export database by @pdet in #11679
  • Add missing space in error message by @szarnyasg in #11759
  • Allow to build python packages without c++ sources by @carlopi in #11758
  • No Mark to Semi join conversion in statistics propagation by @Tmonster in #11596
  • Hive partitioned write: lazy partitioning initialization by @Mytherin in #11765
  • Hive partitioning: avoid calling CreateDirectories for every flush, instead create the directory for a partition only when that partition is instantiated by @Mytherin in #11777
  • [Parquet] Support reading the non-standard NULL ConvertedType by @Tishj in #11774
  • Only store CSV Errors if we are doing rejects table, otherwise just ignore it. by @pdet in #11763
  • CI: Add job for 'expected behavior' label by @szarnyasg in #11784
  • Move recursive_query_csv.test to slow test by @pdet in #11770
  • [StatementVerifier] Fix up issues in ToString implementations of classes derived from SQLStatement by @Tishj in #11625
  • Hive partitioning: make OVERWRITE_OR_IGNORE remove files on local file systems by @Mytherin in #11787
  • [ODBC] Add ODBC Test for Database Reconnection and Data Persistence by @maiadegraaf in #11783
  • Correctly parse dollar-quoted strings in sqlite3_complete and linenoise by @Mytherin in #11789
  • Add a configurable compression_level parameter to the parquet writer by @Mytherin in #11791
  • Close file after file lock failure by @awitten1 in #11795
  • Python: Add missing options to write_parquet by @jzavala-gonzalez in #11790
  • [PythonDev] Fix up failing tests in CI by @Tishj in #11801
  • Fix static bitpacking_width_t FindMinimumBitWidth(T *values, idx_t count) in class BitpackingPrimitives by @Lloyd-Pottiger in #11757
  • Add note on CMAKE_BUILD_PARALLEL_LEVEL by @mlafeldt in #11808
  • Elaborate on internal errors by @szarnyasg in #11816
  • Fix #11756: Don't throw exception on CREATE UNIQUE INDEX IF NOT EXISTS if index already exists by @ewencp in #11821
  • Python CI fixes: skip two tests by @carlopi in #11818
  • Fix #11798 - lateral join parameters should not be visible in views by @Mytherin in #11825
  • Fix #11804: make sure json_type can check null by @lnkuiper in #11807
  • Fixing performance regression in [u]hugeint cast by @hannes in #11829
  • [Dev] ClientContextWrapper yak shaving by @Tishj in #11830
  • [Python] Add checkpoint method, improve shutdown experience by @Tishj in #11810
  • [Benchmark] Enable benchmarking result collection by @Tishj in #11529
  • [DependencyManager] Create dependencies between foreign key tables and primary key tables. by @Tishj in #11524
  • [Python] Synchronize defaults of DuckDBPyRelation method fetch_df_chunk by @Tishj in #11834
  • Internal #1888 TIMETZ Collation Keys by @hawkfish in #11861
  • Removing old code that used to check if a buffer was the last buffer from the file handler by @pdet in #11846
  • Use ToSQLString() in ConstantFilter for escaped filter output by @rcurtin in #11797
  • [StatementVerifier] Add ToString for every remaining SQLStatement, is pure virtual now by @Tishj in #11788
  • Pushdown Tables Types to CSV Scanner by @pdet in #11792
  • [Python Dev] Fix shift between requirements-dev.txt and pyproject.toml before-test section by @Tishj in #11863
  • Join order optimizer asan bug Follow up by @Tmonster in #11794
  • BugFix: Introducing Introducing Delim Joins and Delim_Get(s) should respect positionally by @Tmonster in #11812
  • Provide the native OID of PG type in pg_type by @goldmedal in #11746
  • Move JDBC (Java) Driver to Separate Repo by @hannes in #11873
  • Link Java client in issue template by @szarnyasg in #11877
  • Change specificity of sniffed types to check time related types earlier by @pdet in #11878
  • fix complex top n test case for constant vector verification by @Tmonster in #11882
  • [Dev] Merge overloads for HUGEINT cast functions by @Tishj in #11879
  • Make " default for quote and " default for escape by @pdet in #11880
  • Set secret directory to a test directory when running sqllogictest by @Mytherin in #11885
  • Bugfixes by @lnkuiper in #11785
  • [Map] Rework interaction (entries, keys, values, extr...
Read more

v0.10.2 Bugfix Release

17 Apr 13:50
1601d94
Compare
Choose a tag to compare

This is a bug fix release for various issues discovered after we released 0.10.1. There are no new features, just bug fixes. Database files created by DuckDB v0.10.* or v0.9.* can be read by DuckDB v0.10.2.

SQL Modifications

This release has a number of bug fixes that change SQL semantics in a few edge cases:

  • Nested Boolean Comparisons now have consistent NULL comparison semantics - #11496
  • Structs with non-matching keys require explicit casts when compared or combined - #11396

What's Changed

Read more

v0.10.1 Bugfix Release

18 Mar 16:02
4a89d97
Compare
Choose a tag to compare

This is a bug fix release for various issues discovered after we released 0.10.0. There are no new features, just bug fixes. Database files created by DuckDB v0.10.0 or v0.9.* can be read by DuckDB v0.10.1.

What's Changed

Read more

DuckDB 0.10.0 "Fusca"

13 Feb 13:10
20b1486
Compare
Choose a tag to compare

This release of DuckDB is named "Fusca" after the Velvet Scooter native to Europe.

Note: The on-disk storage format is backwards-compatible with the 0.9 releases of DuckDB. For details, please see the release announcement blog post.

Also note that we've dropped' the "Preview" designation with this release. DuckDB has matured quite a bit since we started creating releases back in 2019, and it is no longer appropriate.

What's Changed

Read more

0.9.2 Bugfix Release

14 Nov 08:32
3c695d7
Compare
Choose a tag to compare

This is a bug fix release for various issues discovered after we released 0.9.1. There are no new features, just bug fixes. Database files created by DuckDB v0.9.0 or v0.9.1 can be read by DuckDB v0.9.2 (i.e. v0.9.2 is backwards compatible with both v0.9.0 and 0.9.1 and vice versa).

What's Changed

Read more

0.9.1 Bugfix Release

11 Oct 10:28
401c806
Compare
Choose a tag to compare

This is a bug fix release for various issues discovered after we released 0.9.0. There are no new features, just bug fixes. Database files created by DuckDB v0.9.0 can be read by DuckDB v0.9.1 (i.e. v0.9.1 is backwards compatible with v0.9.0 and vice versa).

What's Changed

0.9.0 Preview Release "Undulata"

26 Sep 09:57
0d84ccf
Compare
Choose a tag to compare

This preview release of DuckDB is named "Undulata" after the aptly named Yellow-billed duck native to Africa.

Note: Again, this release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the EXPORT DATABASE command with the old version followed by IMPORT DATABASE with the new version to migrate your data. See the documentation for details.

What's Changed

Read more

0.8.1 Bugfix Release

13 Jun 08:32
6536a77
Compare
Choose a tag to compare

This is a bug fix release for various issues discovered after we released 0.8.0. There are no new features, just bug fixes. Database files created by DuckDB v0.8.0 can be read by DuckDB v0.8.1 (i.e. v0.8.1 is backwards compatible with v0.8.0). Note that database files created by v0.8.1 cannot be read by DuckDB v0.8.0 (i.e. v0.8.0 is not forwards compatible with v0.8.1).

Changes

  • [Julia] Update DuckDB_jll to v0.8.0 by @Mytherin in #7568
  • CSV reader - allow parallel option to be set in COPY statement as well by @Mytherin in #7579
  • shell: Remove .dbinfo command. by @omo in #7569
  • Catalog::LookupEntry(): Remove unused code. by @omo in #7557
  • Add the default scheme to the CREATE TYPE's type search path. by @omo in #7555
  • Use std::all_of instead of raw loop in Disjoint. by @ttsugriy in #7549
  • feat: introduce a common grammar/types file for libpgquery parser and update Python scripts to take source/target directory paths as argument by @stephaniewang526 in #7574
  • Fix #7582 - correctly set "last_offset" in InitializeScanWithOffset and turn assertion into run-time check by @Mytherin in #7586
  • Partially fix #7551 - throw internal exception in case of type mismatch in ExpressionExecutor by @Mytherin in #7587
  • Fix #7602 - allow reserved keywords in named parameters by @Mytherin in #7604
  • Fix #7599 - output a clear error message when a subquery is used in a table function that does not support it by @Mytherin in #7603
  • Rework Code Coverage CI - Remove CodeCov and instead track uncovered lines explicitly + turn lack of coverage into a CI failure by @Mytherin in #7611
  • Use unordered_set insert range overload. by @ttsugriy in #7615
  • Reserve expression_costs storage. by @ttsugriy in #7608
  • [ADBC] Testing Unhappy Paths, Fixing Memory Leaks from Error Setting, Removing Macros by @pdet in #7589
  • Windows - path is only absolute if path starts with a single back-slash by @Mytherin in #7623
  • Fix #7564 - if the auto-complete extension is not enabled, inline it into the shell by @Mytherin in #7621
  • Remove 2 extra bytes from magic string pattern. by @ttsugriy in #7626
  • Avoid unnecessary table lookup. by @ttsugriy in #7630
  • Reserve enough storage for unbound_expressions. by @ttsugriy in #7627
  • Increment code coverage by @Mytherin in #7636
  • Remove all C-style casts and add clang-tidy rule to forbid them by @Mytherin in #7656
  • Fix sql auto complete extension CI issue by @Mytherin in #7650
  • Add missing entries to ParquetDecodeUtils::BITPACK_MASKS by @Tishj in #7658
  • Fix: allow distinct and order by in list aggregates by @taniabogatsch in #7638
  • Rework the AggregateExecutor interface to no longer have unnecessary pointers and arrays by @Mytherin in #7671
  • Fix #7660 - avoid exporting the same catalog multiple times in EXPORT by @Mytherin in #7676
  • Move BindUpdateConstraints into a virtual function that is implemented by the DuckTableEntry by @Mytherin in #7679
  • Fix #7567 - when setting the schema to a different schema within another catalog, keep the correct catalog by @Mytherin in #7678
  • Fix exception fmt by @carlopi in #7683
  • Fix amalgamation build by avoiding overloading multiplication by @carlopi in #7661
  • Fix #7659 - use correct catalog when replaying a CREATE TABLE in the WAL by @Mytherin in #7675
  • Implement #7662 - add the "lock_configuration" setting which allows configurations to be locked down by @Mytherin in #7682
  • Fix #7663 - add in_search_path function, correctly show temporary views in SHOW TABLES, and show views in SHOW ALL TABLES by @Mytherin in #7680
  • expose the StripUnicodeSpaces parser utility method by @stephaniewang526 in #7705
  • Add FuzzyDuck fuzzer - and move fuzzer CI to separate repo by @Mytherin in #7712
  • Add missing std::move for old GCCs by @Mytherin in #7714
  • [Dev] Fix failing assertion in python debug by @Tishj in #7722
  • Fix crash in ArrowTableFunction::GetArrowLogicalType on Linux by @Tishj in #7718
  • Allow core duckdb to handle unrecognized JDBC configuration by @elefeint in #7713
  • [ADBC] Transactions and explicitly not-supporting Partition Reading/Execution by @pdet in #7639
  • Verify that Parallel CSV Reader skips lines mid-threads by @pdet in #7637
  • Fix issue with setup.py builds without dependencies by @samansmink in #7695
  • [Python] Fix tests for Pandas 2.0.2 by @Tishj in #7726
  • Code Coverage CI check - allow one uncovered line by @Mytherin in #7724
  • Generate default_types from json files by @Tishj in #7646
  • Fix fuzzer issues found by new fuzzer CI runs by @Mytherin in #7736
  • [Python] Fix conversion of deeply nested dictionaries by @Tishj in #7739
  • Fix TupleDataCollection List serialization by @lnkuiper in #7741
  • Fuzzer #156: Copy Before Swizzle by @hawkfish in #7747
  • Minor fixes to failing CI runs by @carlopi in #7768
  • Fix more fuzzer issues found by new fuzzer CI by @Mytherin in #7759
  • Add option to disable serialization by @stephaniewang526 in #7745
  • fix(httpfs): correct listobjectv2_url for strict s3/http servers by @Mause in #7761
  • Fuzzer #209: Multiple Scalar Blocks by @hawkfish in #7764
  • Fuzzer #206: Fix Cast Overflow by @hawkfish in #7770
  • More minor CI fixes by @Mytherin in #7779
  • Add Exception on dependency verification for Enum Types and Temp Tables by @pdet in #7641
  • Add fuzz_all_functions fuzzer, and add support for varargs to test_vector_types by @Mytherin in #7754
  • JSON fixes by @lnkuiper in #7762
  • [Julia] Fix issue related to table function callbacks and IO by @Tishj in #7783
  • [Dev] Use sql in the python_regression_test.py. by @Tishj in #7787
  • Allow core duckdb to handle unrecognized C API configuration by @elefeint in #7804
  • Fuzzer #214: ROWS BETWEEN Overflow by @hawkfish in #7767
  • Add tests to cover issue 5132 and enable force reload by @taniabogatsch in #7800
  • Fuzzer #215: Timestamp Arithmetic Overflow by @hawkfish in #7769
  • Remove grammar support for CREATE/DROP DATABASE by @stephaniewang526 in #7806
  • Serialize: fix some uncovered cases, part 1 by @carlopi in #7810
  • CodeCov tweaks by @carlopi in #7815
  • fix(jdbc): arrow error handling by @Mause in #7814
  • Fix duck fuzzer #218 and #220 by @carlopi in #7818
  • Add msan and ubsan to cifuzz (+ fix zstd + msan) by @carlopi in #7813
  • Art bug fixes by @taniabogatsch in #7801
  • Check GlobalSortState for external scan in PhysicalWindow by @lnkuiper in #7827
  • remove un-used PGNodeTag by @stephaniewang526 in #7833
  • refactor(fsspec): remove seekable flag by @Mause in #6585
  • Unnest_rewriter fixes by @taniabogatsch in #7836
  • [Julia] Fix comments on #7783 by @Tishj in #7843
  • Disable attaching on-disk DuckDB databases if external access is disabled by @Mytherin in #7850
  • Fix #7711 - disallow detaching the currently USEd database by @Mytherin in #7851
  • [Python] only execute in DuckDBPyRelation::Close if it was never executed before by @Tishj in #7844
  • Add rel_from_table_function to R relational API by @hannes in https://github.com/duckdb/d...
Read more

0.8.0 Preview Release "Fulvigula"

17 May 09:30
e8e4cea
Compare
Choose a tag to compare

This preview release of DuckDB is named "Fulvigula" after the Mottled duck (Anas fulvigula) which lives in the Gulf of Mexico, where it is apparently highly prized amongst (heartless) hunters.

There are two SQL-level breaking changes in this release:

  • #7174 The default sort order switched from NULLS FIRST to NULLS LAST because this is more intuitive, especially in conjunction with LIMIT.
  • #7082 The division operator / will now always lead to a floating point result even with integer parameters. The new operator // retains the old semantics. This change is consistent with Python.

Note: Again, this release introduces a backwards-incompatible change to the on-disk storage format. We suggest you use the EXPORT DATABASE command with the old version followed by IMPORT DATABASE with the new version to migrate your data. See the documentation for details.

What's Changed

  • Issue 5984 #4 LogicalColumnIndex out of range Error by @Tmonster in #6303
  • Implementing Integration with PyTorch by @pdet in #6295
  • Implement #4941: Python client: for streaming fetches construct a streaming result (fetch_one, record_batch_reader, etc) by @Mytherin in #6346
  • Implement sharable Buffer Pool across DatabaseInstances by @jkub in #6299
  • Add table functions range and generate_series for TIMESTAMPTZ by @papparapa in #6285
  • Add Initial DuckDB Swift API by @tcldr in #6351
  • Integration with TensorFlow Tensors by @pdet in #6348
  • Windows - remove delayload code and enable statically linking extensions by default by @Mytherin in #6399
  • Add support for Pivot/Unpivot statements by @Mytherin in #6387
  • [C-API] Add support for StreamQueryResult by @Tishj in #6318
  • [Swift] add remaining non-composite types by @tcldr in #6422
  • [Swift] Add Prepared Statements by @tcldr in #6459
  • [Python] Exclude jemalloc files while pip install on Android OS by @papparapa in #6450
  • CI: Swap cron for repository_dispatch by @carlopi in #6498
  • CI improvements + add version badge to README by @carlopi in #6493
  • Storage: store lists as uint64 offsets instead of as list_entry_t by @Mytherin in #6499
  • two changes facilitating sending table/column stats over the wire (M… by @peterboncz in #6440
  • Rework Value class internals to have a similar structure to LogicalType and others by @Mytherin in #6503
  • Remove unswizzle flag from SortedData::Unswizzle by @lnkuiper in #6501
  • [Swift] Add Appender by @tcldr in #6482
  • JDBC: Remove DuckDBDatabase by @MariusVolkhart in #6426
  • Add nan and inf arithmetic by @Tmonster in #6415
  • Update tools/rpkg README.md by @Tishj in #6530
  • Merge feature into master by @Mytherin in #6534
  • Restrict threads for reliability. by @hawkfish in #6540
  • Replace replace with format strings by @domoritz in #6542
  • Add missing escape for " by @domoritz in #6543
  • Blob <-> Bitstring casting by @LindsayWray in #6488
  • Mapfunctions: map_entries, map_values, map_keys by @LindsayWray in #6522
  • Issue #5920: Ordered Aggregate Buffering by @hawkfish in #6539
  • Handle SQL-tagged strings correctly with dplyr::tbl, fixes #6506 by @rsund in #6536
  • CI: Update Swift.yml by @carlopi in #6553
  • Update SwiftRelease.yml by @carlopi in #6554
  • Java: Implement JDBC 4.1 by @MariusVolkhart in #6376
  • Bitstring aggregations by @LindsayWray in #6417
  • Make our default threads setting Cgroup-aware on Linux by @Tishj in #6550
  • [Swift] Add composite type support by @tcldr in #6557
  • Statistics Rework: Switch to single BaseStatistics class, use separate static classes for methods on the stats instead by @Mytherin in #6560
  • Introduce Syntax for SEMI and ANTI joins by @Tmonster in #6480
  • Update storage_info with version 0.7.1 by @carlopi in #6572
  • [Python] Add the ability to supply a DuckDBPyRelation instance to register by @Tishj in #6483
  • [Python] map now defaults to original type when analyzed type at bind is NULL by @Tishj in #6571
  • [Dev] Fix broken test_filesystem.py test by @Tishj in #6582
  • CI: Node.js, add common NPM-setup step by @carlopi in #6590
  • build: add builds for nodejs linux arm64 by @Mause in #6586
  • CI: move to setup-node@v3 by @carlopi in #6596
  • Issue #6604: TIMESTAMP <=> TIMESTAMPTZ by @hawkfish in #6605
  • [Python] Add support for EXPLAIN ANALYZE to explain method by @Tishj in #6561
  • Add ICU list functions generate_series and range by @papparapa in #6445
  • feat(nodejs): add errorType attribute to DuckDbError by @Mause in #6434
  • Fix TPC-DS date insertion by @ywelsch in #6591
  • Fix #4016: Test amalgamation with --split param by @carlopi in #6587
  • feat(python): throw HTTPExceptions instead of IOException for http errors by @Mause in #6533
  • Add httpfs config to support packaging it as an extension by @ankrgyl in #6608
  • Issue #6595: N-Ary Positional Joins by @hawkfish in #6598
  • [Swift] inline documentation plus API tweaks by @tcldr in #6614
  • Fix #6602: add inet extension to build/distribute script by @Mytherin in #6610
  • CI remove amalgama x8 + swift release by @carlopi in #6615
  • Fix too many open file handles during JSON schema detection by @lnkuiper in #6613
  • Issue #6580: Parquet Int96 Timestamps by @hawkfish in #6601
  • Exception_static_build defalt: Partial revert of dabbead by @carlopi in #6620
  • Make DISTINCT ON respect the ORDER BY clause similar to Postgres + several ordered aggregate improvements by @Mytherin in #6616
  • fix url encode issue for R2 by @samansmink in #6609
  • [Swift] Database.Configuration type + documentation enhancements by @tcldr in #6617
  • R: Avoid passing SEXP by reference by @krlmlr in #6475
  • Test and fix preservation of class attribute in external pointers by @krlmlr in #6526
  • Add support for lambda functions to COLUMNS, and allow COLUMNS to be used in the ORDER BY/WHERE clauses by @Mytherin in #6621
  • [R] Remove duplicate occurrence of dependency by @Tishj in #6625
  • Automatically Fully Download Files through HTTPFS if no length header is provided by @pdet in #6448
  • Remove some function calls that can throw potential false positives in CI by @Tmonster in #6623
  • [Python] Add __getattr__ and __getitem__ implementations for DuckDBPyRelation by @Tishj in #6624
  • [Optimizer] Regex Optimization Rule fix by @Tishj in #6634
  • [Bug Fix] Enum Serialization by @pdet in #6040
  • Update interval for arrow by @handstuyennn in #6515
  • SQLLogicTest - instead of moving prepared statements over avoid restarting database when there are prepared statements by @Mytherin in #6638
  • Bind replace table function by @samansmink in #6639
  • Fix #6630: correctly set bind_data->types in the Parquet scan when using union_by_name by @Mytherin in #6642
  • [Python] read_csv can now read from a file-like object. by @Tishj in #6568
  • Fix #6640: correctly throw an error on altering schemas by @Mytherin in #6643
  • Support multiple aggregates in top-level pivot by @m...
Read more

0.7.1 Bugfix Release

27 Feb 13:22
b00b93f
Compare
Choose a tag to compare

This is a bug fix release for various issues discovered after we released 0.7.0. There are no new features, just bug fixes. Notably, there is no incompatibility with database files created with v0.7.0

Changes

Read more