Skip to content

Fuzzer issues 5 #5984

@PedroTadim

Description

@PedroTadim

What happens?

This is the follow-up to #5435. I know you are very busy and the previous list has not been cleared yet, so I transferred the unresolved ones to the list before the previous one becomes too long. There's no pressure to get them fixed right away :)

I will keep updating this issue with new issues from fuzzers I find.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68

To Reproduce

1. Set number of threads deadlock (fixed)

It seems the deadlock from issue 5 in #4978 still happens:

#include <duckdb.hpp>
#include <thread>

int main(void) {
	duckdb::DuckDB db(nullptr);

	for (int i = 0 ; i < 8; i++) {
		std::thread worker1, worker2;

		worker1 = std::thread(([&](void) {
			duckdb::Connection con(db);
			con.SendQuery("CREATE TABLE t0 (c0 TIME);");
			con.SendQuery("PRAGMA PERFECT_HT_THRESHOLD=32;");
			con.SendQuery("SELECT 1 FROM t0 GROUP BY ALL ORDER BY c0;");
			con.SendQuery("DROP TABLE t0;");
		}));

		worker2 = std::thread(([&](void) {
			duckdb::Connection con(db);
			con.SendQuery("PRAGMA THREADS=4;");
		}));

		worker1.join();
		worker2.join();
	}
	return 0;
}

2. percentile_disc error (fixed)

SELECT percentile_disc(CAST('NaN' AS REAL)) WITHIN GROUP (ORDER BY 1);

src/planner/logical_operator.cpp:109: virtual void duckdb::LogicalOperator::Verify(duckdb::ClientContext &): Assertion `Expression::Equals(expressions[expr_idx].get(), copy.get())' failed.

Also with an empty list:

SELECT percentile_disc([]) WITHIN GROUP (ORDER BY LAST);

ABORT THROWN BY INTERNAL EXCEPTION: Value::LIST without providing a child-type requires a non-empty list of values. Use Value::LIST(child_type, list) instead.

3. Stack-buffer-overflows in ICU (fixed)

PRAGMA TIMEZONE='Asia/Baghdad';
SELECT strftime(TIMESTAMPTZ '-268535-1-1 0:0:0 America/Pangnirtung','%Z');

or

PRAGMA TIMEZONE='Indian/Cocos';
SELECT strftime(TIMESTAMPTZ '-181015-8-24 0:15:31 Asia/Irkutsk','%Z');

or

PRAGMA TIMEZONE='Pacific/Truk';
SELECT strftime(TIMESTAMPTZ '-217208-11-5 1:47:22 America/Merida','%Z');

AddressSanitizer: stack-buffer-overflow at duckdb::StrfTimeFormat::WriteStandardSpecifier

I think the next two are related

SELECT strftime(TIMESTAMPTZ '-204873-8-9 6:35:55 America/North_Dakota/Beulah','x%Z');

or

SELECT strftime(TIMESTAMPTZ '292555-4-29 18:38:18 Asia/Damascus','e%Z');

AddressSanitizer: stack-buffer-overflow at duckdb::StrfTimeFormat::WriteStandardSpecifier

4. Logical column index out of range (fixed)

CREATE TABLE t0(c1 INT);
CREATE TABLE t1(c0 INT, c2 INT);
CREATE TABLE t2(c1 INT, c2 INT);
SELECT 1 FROM t1 t2(c1) NATURAL RIGHT JOIN t0, t2 t1(c0) WHERE t2.c2 >= c0;

ABORT THROWN BY INTERNAL EXCEPTION: Logical column index 1 out of range

5. Insert return rowid with alias (fixed)

This seems to be a follow-up to issue 8 in #4978

CREATE TABLE t1 (c1 AS ('abc'), c2 INT);
INSERT INTO t1 SELECT 1 RETURNING rowid c1;

ABORT THROWN BY INTERNAL EXCEPTION: Failed to bind column reference "c1" [9.1] (bindings: [9.0])

6. Drop generated column (now fixed)

CREATE TABLE t0 (c0 INT AS (0), c1 INT, CHECK(c1 > 0));
ALTER TABLE t0 DROP c0;

ABORT THROWN BY INTERNAL EXCEPTION: Column at position 0 is not a physical column

7. Sequence drop UBSAN error (fixed)

CREATE SEQUENCE t2;
CREATE TEMP TABLE t0 (c0 INT, CHECK(nextval('t2')));

Then restart the connection and do

DROP SEQUENCE t2;

src/catalog/dependency_manager.cpp:47:35: runtime error: member access within address 0x615000020b00 which does not point to an object of type 'duckdb::CatalogEntry'

8. Another binder error (fixed)

SELECT 1 FROM (SELECT 1) t2(c1) GROUP BY ALL HAVING (SELECT c1);

src/execution/column_binding_resolver.cpp:74: virtual unique_ptrduckdb::Expression duckdb::ColumnBindingResolver::VisitReplace(duckdb::BoundColumnRefExpression &, unique_ptrduckdb::Expression *): Assertion `expr.depth == 0' failed

9. Sample at nasty group by (now fixed)

SELECT 1 FROM (SELECT 1) t2(c0) GROUP BY (SELECT 1 FROM (SELECT c0) USING SAMPLE (1%));

ABORT THROWN BY INTERNAL EXCEPTION: Logical operator type "SAMPLE" for dependent join

10. Join bind error (fixed)

CREATE TABLE t0 (c1 INT);
UPDATE t0 SET c1 = 0 FROM (SELECT 1) t2 JOIN (SELECT 1) t1 ON (0, c1);

src/planner/joinside.cpp:76: static duckdb::JoinSide duckdb::JoinSide::GetJoinSide(duckdb::idx_t, unordered_setduckdb::idx_t &, unordered_setduckdb::idx_t &): Assertion `right_bindings.find(table_binding) != right_bindings.end()' failed.

Similar issue

CREATE TABLE t0(c0 INT);
SELECT rowid c2 FROM t0 GROUP BY ALL ORDER BY (t0.rowid, c2);

ABORT THROWN BY INTERNAL EXCEPTION: Failed to bind column reference "v2" [1.0] (bindings: [7.0])

11. Heap-use-after-free at duckdb::UpdateSegment::FetchRow (fixed)

CREATE TABLE t2 (c2 INT);
START TRANSACTION;
INSERT INTO t2 VALUES (1),(0);
UPDATE t2 SET c2 = DEFAULT;
COMMIT;
TRUNCATE t2;

Heap-use-after-free at duckdb::UpdateSegment::FetchRow

12. Pushdown error (fixed)

SELECT 1 FROM (SELECT 1) t1(c0) GROUP BY ALL HAVING EXISTS (SELECT 1 FROM (SELECT 1) t0(c2) HAVING c0);

src/optimizer/pushdown/pushdown_projection.cpp:12: unique_ptrduckdb::Expression duckdb::ReplaceProjectionBindings(duckdb::LogicalProjection &, unique_ptrduckdb::Expression): Assertion `colref.binding.table_index == proj.table_index' failed

I got this assertion from this:

CREATE TABLE t2 (c2 INT, c0 INT, PRIMARY KEY (c2, c0));
CREATE TABLE t1 (c1 INT, c0 INT);
CREATE VIEW t0 AS SELECT 1 c2 FROM t2;
CREATE TABLE t2 AS SELECT 1 FROM t1 t20 GROUP BY ALL HAVING EXISTS (SELECT 0 FROM t0 GROUP BY ALL HAVING c0);

Strangely t2 already exists, shouldn't that be checked before binding the query, ie triggering the above assertion?

13. WAL cannot alter table (related to #4891)

For this one, I was only able to reproduce it with a database restart after a crash. Run this program:

#include <duckdb.hpp>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

int main(void) {
	int status = 0;
	pid_t child = fork();

	if (child == -1) {
		perror("Failed to fork");
		return 1;
	} else if (child == 0) {
		duckdb::DuckDB db("duck.db");
		duckdb::Connection con(db);
		int *ups = nullptr;

		con.SendQuery("CREATE TABLE t2(c1 INT);");
		con.SendQuery("CREATE INDEX i0 ON t2(c1);");
		con.SendQuery("CHECKPOINT;");
		con.SendQuery("DROP INDEX i0;");
		con.SendQuery("ALTER TABLE t2 ALTER c1 SET DEFAULT 0;");
		*ups = 1; /* SEGV! */
	} else if (waitpid(child, &status, 0) == -1) {
		perror("Failed to waitpid");
		return 1;
	}

	duckdb::DuckDB db("duck.db");
	duckdb::Connection con(db);
	con.SendQuery("DROP TABLE t2;");
	return 0;
}

On the WAL playback an error is thrown:
Exception in WAL playback: Dependency Error: Cannot alter entry "t2" because there are entries that depend on it.

14. Segment tree index issue (fixed)

CREATE TABLE t0 (c1 INT);
INSERT INTO t0 VALUES (0);
START TRANSACTION;
INSERT INTO t0 VALUES (1);
DELETE FROM t0 USING (SELECT 1) t1;

src/storage/table/segment_tree.cpp:74: bool duckdb::SegmentTree::TryGetSegmentIndex(duckdb::SegmentLock &, duckdb::idx_t, duckdb::idx_t &): Assertion `row_number < nodes.back().row_start + nodes.back().node->count' failed

15. Pushdown set error (fixed)

This one maybe is related to issue 34.

CREATE TABLE t1 (c0 INT);
SELECT 0 c0 FROM t1 GROUP BY ALL HAVING c0 < ALL(SELECT 0 FROM ((SELECT 2) UNION (SELECT 2)) t2 WHERE substr('b', 1, c0) GROUP BY ALL);

src/optimizer/pushdown/pushdown_set_operation.cpp:18: void duckdb::ReplaceSetOpBindings(vectorduckdb::ColumnBinding &, duckdb::Filter &, duckdb::Expression &, duckdb::LogicalSetOperation &): Assertion `colref.binding.table_index == setop.table_index' failed

16. Between type mismatch

CREATE TABLE t0 (c1 USMALLINT);
SELECT 1 FROM (SELECT 1) t1(c0) JOIN t0 ON c1 BETWEEN c0 AND 1;

src/common/vector_operations/comparison_operators.cpp:209: static void duckdb::ComparisonExecutor::Execute(duckdb::Vector &, duckdb::Vector &, duckdb::Vector &, duckdb::idx_t) [OP = duckdb::LessThanEquals]: Assertion `left.GetType() == right.GetType() && result.GetType() == LogicalType::BOOLEAN' failed

Same situation with

CREATE TABLE t0 (c0 INT);
SELECT 0 FROM t0 WHERE c0 IN (0) SIMILAR TO decode('a'::BLOB);

17. Vector type mismatch 2 (fixed)

SELECT count() c0 FROM (SELECT 1) t1(c2) HAVING 1 = (SELECT c0 WHERE EXISTS (SELECT 1));

or

SELECT (SELECT c0 EXCEPT (SELECT 'a')) FROM (SELECT 1) t1(c0);

src/common/types/vector.cpp:98: void duckdb::Vector::Reference(duckdb::Vector &): Assertion `other.GetType() == GetType()' failed

18. Index not updated assertion error

This one was very hard to make a reproducible script when these two events were happening at the same time:

CREATE INDEX i1 ON t1 (c1);

and

UPDATE t1 AS t1 SET c1 = 2;

src/storage/data_table.cpp:865: auto duckdb::DataTable::VerifyUpdateConstraints(duckdb::ClientContext &, duckdb::TableCatalogEntry &, duckdb::DataChunk &, const vectorduckdb::PhysicalIndex &)::(anonymous class)::operator()(duckdb::Index &) const: Assertion `!index.IndexIsUpdated(column_ids)' failed

19. Index memory leak (fixed)

CREATE TABLE t1 (c1 INT);
INSERT INTO t1 VALUES (2), (1), (1), (540000);
CREATE UNIQUE INDEX i1 ON t1 (c1);  --Error: Constraint Error: New data contains duplicates on indexed column(s)

While exiting a memory leak is reported:

Direct leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x55b0a058172e in malloc (...) (BuildId: 46bf59ea1b7b7f322e647fd6355824d4470431f3)
    #1 0x7fc8a9411ee0 in duckdb::Allocator::DefaultAllocate(duckdb::PrivateAllocatorData*, unsigned long) src/include/duckdb/common/allocator.hpp:83:22
    #2 0x7fc8a936178e in duckdb::Allocator::AllocateData(unsigned long) src/common/allocator.cpp:127:16
    #3 0x7fc8aa377ee5 in duckdb::Node4* duckdb::AllocateObject<duckdb::Node4>() src/include/duckdb/common/allocator.hpp:122:44
    #4 0x7fc8aa337970 in duckdb::Node4::New() src/execution/index/art/node.cpp:136:9
    #5 0x7fc8aa33753f in duckdb::Node::New(duckdb::NodeType&, duckdb::Node*&) src/execution/index/art/node.cpp:119:18
    #6 0x7fc8aa3608a5 in duckdb::Construct(std::vector<duckdb::Key, std::allocator<duckdb::Key> >&, long*, duckdb::Node*&, duckdb::KeySection&, bool&) src/execution/index/art/art.cpp:287:3
    #7 0x7fc8aa360db8 in duckdb::Construct(std::vector<duckdb::Key, std::allocator<duckdb::Key> >&, long*, duckdb::Node*&, duckdb::KeySection&, bool&) src/execution/index/art/art.cpp:295:4
    #8 0x7fc8aa362b2c in duckdb::ART::ConstructAndMerge(duckdb::IndexLock&, duckdb::PayloadScanner&, duckdb::Allocator&) src/execution/index/art/art.cpp:342:3
    #9 0x7fc8aa1f8f43 in duckdb::PhysicalCreateIndex::Combine(duckdb::ExecutionContext&, duckdb::GlobalSinkState&, duckdb::LocalSinkState&) const src/execution/operator/schema/physical_create_index.cpp:145:24
    #10 0x7fc8aaa50b9c in duckdb::PipelineExecutor::PushFinalize() src/parallel/pipeline_executor.cpp:201:17
    #11 0x7fc8aaa4e587 in duckdb::PipelineExecutor::Execute(unsigned long) src/parallel/pipeline_executor.cpp:61:2
    #12 0x7fc8aaae2c0a in duckdb::PipelineTask::ExecuteTask(duckdb::TaskExecutionMode) src/parallel/pipeline.cpp:37:39
    #13 0x7fc8aaa2e1a6 in duckdb::ExecutorTask::Execute(duckdb::TaskExecutionMode) src/parallel/executor_task.cpp:17:10
    #14 0x7fc8aaa3d8a6 in duckdb::Executor::ExecuteTask() src/parallel/executor.cpp:392:24
    #15 0x7fc8aa737c23 in duckdb::ClientContext::ExecuteTaskInternal(duckdb::ClientContextLock&, duckdb::PendingQueryResult&) src/main/client_context.cpp:413:41
    #16 0x7fc8aa77c773 in duckdb::PendingQueryResult::ExecuteTaskInternal(duckdb::ClientContextLock&) src/main/pending_query_result.cpp:53:18
    #17 0x7fc8aa740dca in duckdb::PendingQueryResult::ExecuteInternal(duckdb::ClientContextLock&) src/main/pending_query_result.cpp:58:9
    #18 0x7fc8aa7439f9 in duckdb::ClientContext::ExecutePendingQueryInternal(duckdb::ClientContextLock&, duckdb::PendingQueryResult&) src/main/client_context.cpp:860:15
    #19 0x7fc8aa74d22d in duckdb::ClientContext::Query(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) src/main/client_context.cpp:791:21
    #20 0x7fc8aa75e81f in duckdb::Connection::Query(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/main/connection.cpp:75:25
    #21 0x7fc8aa4ca5e6 in duckdb_query src/main/capi/duckdb-c.cpp:67:22

20. Delimiter join error (fixed)

This seems to come from the new lateral join feature:

CREATE TABLE t1 (c1 INT);
CREATE INDEX i0 ON t1 (c1);
PRAGMA FORCE_INDEX_JOIN;
SELECT 1 FROM t1 JOIN (SELECT t1.c1) t0(c0) ON 1 = CAST(72837647112 AS UINTEGER);

src/execution/operator/scan/physical_column_data_scan.cpp:46: virtual void duckdb::PhysicalColumnDataScan::BuildPipelines(duckdb::Pipeline &, duckdb::MetaPipeline &): Assertion `entry != state.delim_join_dependencies.end()' failed

21. ART Index assertion error (fixed)

CREATE TABLE t1 (c1 DECIMAL(4,3));
INSERT INTO t1(c1) VALUES (1),(-0.505);
CREATE INDEX i0 ON t1 (TRY_CAST(c1 AS USMALLINT));
INSERT INTO t1(c1) VALUES (2),(3);

src/execution/index/art/prefix.cpp:71: uint8_t &duckdb::Prefix::operator: Assertion `idx < Size()' failed

22. Another Index error (fixed)

CREATE TABLE t1 (c1 VARCHAR);
CREATE INDEX i0 ON t1 (c1);
INSERT INTO t1 VALUES (decode('g\x00'::BLOB)::VARCHAR),('g');

src/execution/index/art/leaf.cpp:38: duckdb::Leaf::Leaf(duckdb::Key &, uint32_t, duckdb::row_t): Assertion `value.len >= depth' failed

23. Lateral join issue (fixed)

SELECT 1 FROM (SELECT 1) t1(c1), (SELECT TRUE IN (TRUE, t1.c1 LIKE 'a' ESCAPE NULL));

ABORT THROWN BY INTERNAL EXCEPTION: Lateral Binder: could not find correlated column in binder

24. Date diff overflow

SELECT date_diff('isoyear',TIMESTAMPTZ '-191639-5-3 0:6:50 America/Antigua',TIMESTAMPTZ '-118403-6-4 3:8:51 Asia/Novosibirsk');

src/extension/icu/third_party/icu/i18n/gregoimp.h:294:18: runtime error: signed integer overflow: -2146712927 - 2440588 cannot be represented in type 'int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/extension/icu/third_party/icu/i18n/gregoimp.h:294:18

25. C/C++ API missing backslash interpretation

These are the remaining queries with issues from issue 1 from #4978

UPDATE t0 SET c0 = (~1);
SELECT CAST((((1!) << CASE WHEN 1 THEN 1 WHEN 1 THEN 1 END) IS NULL) AS USMALLINT);

From the C++ API

#include <duckdb.hpp>

int main(void) {
	duckdb::DuckDB db(nullptr);
	duckdb::Connection con(db);

	con.SendQuery("PRAGMA VERIFY_EXTERNAL;");
	con.SendQuery("SELECT lead(1) OVER (PARTITION BY (1!) ROWS CURRENT ROW);"); 
        con.SendQuery("SELECT 1 WHERE 1 BETWEEN (decode('a'::BLOB) COLLATE ur) AND 0;");
	return 0;
}

For both queries
ABORT THROWN BY INTERNAL EXCEPTION: Parsed statement verification failed.

26. Serialization error

SELECT (SELECT 1) c0, c0;

Error: Serialization Error: Cannot copy BoundSubqueryExpression

The query is wrong, but I expect this error to not be thrown?

Same issue:

SELECT 1 ORDER BY min(1 ORDER BY (SELECT 1));

and

SELECT 1 FROM (SELECT 2) t1(c1) JOIN (SELECT c1) ON (SELECT 3);

27. Window function NULL pointer (fixed)

PRAGMA DEBUG_WINDOW_MODE='separate';
CREATE TABLE t1 (c1 INT);
INSERT INTO t1(c1) VALUES (1);
SELECT count(*) OVER () FROM t1;

runtime error: reference binding to null pointer of type 'duckdb::Vector'

28. Checkpoint and out-of-memory

This one is tricky. The checkpoint fails because of the memory limitation, but is the error message expected? On a persisted database do:

CREATE TABLE t1 (c0 INT);
INSERT INTO t1 (c0) VALUES (0);
CHECKPOINT;
INSERT INTO t1 (c0) VALUES (1);
PRAGMA MEMORY_LIMIT='1KB';
CHECKPOINT;

ABORT THROWN BY INTERNAL EXCEPTION: Could not find node in column segment tree!
Attempting to find row number "0" in 0 nodes

29. Checkpoint and out-of-memory 2

On a persisted database do:

CREATE TABLE t1 (c0 VARCHAR(32));
INSERT INTO t1 VALUES ('a');
CHECKPOINT;
PRAGMA MEMORY_LIMIT='1MB';
SELECT DISTINCT 'b' FROM t1 ORDER BY c0;

src/function/aggregate/distributive/first.cpp:126:14: runtime error: load of value 165, which is not a valid value for type 'bool'

30. Bitpacking overflow (fixed)

On a persisted database do:

CREATE TABLE t1 (c1 BIGINT);
INSERT INTO t1 (c1) VALUES (NULL),(-9223372036854775808),(-1);

While exiting an assertion error is triggered:
src/storage/compression/bitpacking.cpp:215:14: runtime error: signed integer overflow: 0 - -9223372036854775808 cannot be represented in type 'long'

31. Buffer manager out-of-memory issue (fixed)

PRAGMA MEMORY_LIMIT='10MB';
SELECT ((SELECT 1) EXCEPT (SELECT ('\xF1\x85\x96\xBA'::BLOB)::VARCHAR GROUP BY 1 ORDER BY 1));

src/storage/buffer_manager.cpp:145: unique_ptrduckdb::FileBuffer duckdb::BlockHandle::UnloadAndTakeBlock(): Assertion `!unswizzled' failed

This case also gives memory leaks:

PRAGMA MEMORY_LIMIT='2MB';
SELECT t0.*, min(1 ORDER BY ALL) FROM (VALUES ('1')) t0(c0) GROUP BY ALL;
Direct leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x55f7e7bb85bd in operator new(unsigned long) (...) (BuildId: fca7334ead8bb84fa2541f6771eff3642b753244)
    #1 0x7f49a9dd5884 in __gnu_cxx::new_allocator<duckdb::Vector>::allocate(unsigned long, void const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h:127:27
    #2 0x7f49a9dd57ba in std::allocator_traits<std::allocator<duckdb::Vector> >::allocate(std::allocator<duckdb::Vector>&, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:464:20
    #3 0x7f49a9dd513f in std::_Vector_base<duckdb::Vector, std::allocator<duckdb::Vector> >::_M_allocate(unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:346:20
    #4 0x7f49ab364c57 in void std::vector<duckdb::Vector, std::allocator<duckdb::Vector> >::_M_realloc_insert<duckdb::VectorCache&>(__gnu_cxx::__normal_iterator<duckdb::Vector*, std::vector<duckdb::Vector, std::allocator<duckdb::Vector> > >, duckdb::VectorCache&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/vector.tcc:440:33
    #5 0x7f49ab2b77d9 in void std::vector<duckdb::Vector, std::allocator<duckdb::Vector> >::emplace_back<duckdb::VectorCache&>(duckdb::VectorCache&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/vector.tcc:121:4
    #6 0x7f49ab13cab1 in duckdb::DataChunk::Initialize(duckdb::Allocator&, __gnu_cxx::__normal_iterator<duckdb::LogicalType const*, std::vector<duckdb::LogicalType, std::allocator<duckdb::LogicalType> > >, __gnu_cxx::__normal_iterator<duckdb::LogicalType const*, std::vector<duckdb::LogicalType, std::allocator<duckdb::LogicalType> > >, unsigned long) src/common/types/data_chunk.cpp:50:8
    #7 0x7f49ab10957f in duckdb::DataChunk::Initialize(duckdb::Allocator&, std::vector<duckdb::LogicalType, std::allocator<duckdb::LogicalType> > const&, unsigned long) src/common/types/data_chunk.cpp:36:2
    #8 0x7f49a92093fd in duckdb::SortedAggregateState::InitializeBuffer(duckdb::DataChunk&, std::vector<duckdb::LogicalType, std::allocator<duckdb::LogicalType> > const&) src/function/aggregate/sorted_aggregate_function.cpp:81:10
    #9 0x7f49a921701e in duckdb::SortedAggregateState::Update(duckdb::SortedAggregateBindData&, duckdb::DataChunk&, duckdb::DataChunk&) src/function/aggregate/sorted_aggregate_function.cpp:101:3
    #10 0x7f49a921cc59 in duckdb::SortedAggregateState::Combine(duckdb::SortedAggregateBindData&, duckdb::SortedAggregateState&) src/function/aggregate/sorted_aggregate_function.cpp:147:4
    #11 0x7f49a921c821 in void duckdb::SortedAggregateFunction::Combine<duckdb::SortedAggregateState, duckdb::SortedAggregateFunction>(duckdb::SortedAggregateState const&, duckdb::SortedAggregateState*, duckdb::AggregateInputData&) src/function/aggregate/sorted_aggregate_function.cpp:263:11
    #12 0x7f49a921c571 in void duckdb::AggregateExecutor::Combine<duckdb::SortedAggregateState, duckdb::SortedAggregateFunction>(duckdb::Vector&, duckdb::Vector&, duckdb::AggregateInputData&, unsigned long) src/include/duckdb/common/vector_operations/aggregate_executor.hpp:317:4
    #13 0x7f49a91fee00 in void duckdb::AggregateFunction::StateCombine<duckdb::SortedAggregateState, duckdb::SortedAggregateFunction>(duckdb::Vector&, duckdb::Vector&, duckdb::AggregateInputData&, unsigned long) src/include/duckdb/function/aggregate_function.hpp:266:3
    #14 0x7f49aaf0c86c in duckdb::RowOperations::CombineStates(duckdb::RowLayout&, duckdb::Vector&, duckdb::Vector&, unsigned long) src/common/row_operations/row_aggregate.cpp:78:3
    #15 0x7f49acadce25 in duckdb::GroupedAggregateHashTable::FlushMove(duckdb::FlushMoveState&, duckdb::Vector&, duckdb::Vector&, unsigned long) src/execution/aggregate_hashtable.cpp:521:2
    #16 0x7f49acade551 in duckdb::GroupedAggregateHashTable::Combine(duckdb::GroupedAggregateHashTable&) src/execution/aggregate_hashtable.cpp:556:2
    #17 0x7f49acb39b3f in duckdb::RadixPartitionedHashTable::Finalize(duckdb::ClientContext&, duckdb::GlobalSinkState&) const src/execution/radix_partitioned_hashtable.cpp:253:30
    #18 0x7f49ac3d23c2 in duckdb::PhysicalHashAggregate::FinalizeInternal(duckdb::Pipeline&, duckdb::Event&, duckdb::ClientContext&, duckdb::GlobalSinkState&, bool) const src/execution/operator/aggregate/physical_hash_aggregate.cpp:796:45
    #19 0x7f49ac3d2986 in duckdb::PhysicalHashAggregate::Finalize(duckdb::Pipeline&, duckdb::Event&, duckdb::ClientContext&, duckdb::GlobalSinkState&) const src/execution/operator/aggregate/physical_hash_aggregate.cpp:810:9
    #20 0x7f49ad1ab4f7 in duckdb::Pipeline::Finalize(duckdb::Event&) src/parallel/pipeline.cpp:194:27
    #21 0x7f49ad1b67fb in duckdb::PipelineFinishEvent::FinishEvent() src/parallel/pipeline_finish_event.cpp:13:12
    #22 0x7f49ad1a4be5 in duckdb::Event::Finish() src/parallel/event.cpp:29:2
    #23 0x7f49ad1a4864 in duckdb::Event::CompleteDependency() src/parallel/event.cpp:22:4
    #24 0x7f49ad1a505b in duckdb::Event::Finish() src/parallel/event.cpp:38:11
    #25 0x7f49ad1a5b48 in duckdb::Event::FinishTask() src/parallel/event.cpp:62:3
    #26 0x7f49ad2445d2 in duckdb::PipelineTask::ExecuteTask(duckdb::TaskExecutionMode) src/parallel/pipeline.cpp:44:10
    #27 0x7f49ad190156 in duckdb::ExecutorTask::Execute(duckdb::TaskExecutionMode) src/parallel/executor_task.cpp:17:10
    #28 0x7f49ad19f856 in duckdb::Executor::ExecuteTask() src/parallel/executor.cpp:392:24
    #29 0x7f49ace7d753 in duckdb::ClientContext::ExecuteTaskInternal(duckdb::ClientContextLock&, duckdb::PendingQueryResult&) src/main/client_context.cpp:438:41

and others

32. Create index global-buffer-overflow (fixed)

CREATE TABLE t1(c1 INT);
INSERT INTO t1 VALUES (0),(85491);
CREATE INDEX i1 ON t1 (c1, (TRY_CAST(c1 AS USMALLINT)));

AddressSanitizer: global-buffer-overflow at src/execution/index/art/art_key.cpp:90

33. Bindings error (fixed)

CREATE TABLE t1 (c0 INT);
SELECT 1 FROM t1 GROUP BY ALL HAVING (SELECT 1 WHERE c0 = EXISTS (SELECT 2));

src/optimizer/pushdown/pushdown_projection.cpp:32: unique_ptrduckdb::LogicalOperator duckdb::FilterPushdown::PushdownProjection(unique_ptrduckdb::LogicalOperator): Assertion `f.bindings.size() <= 1' failed

Seems related to issue 30.

34. Filter assertion error (fixed)

CREATE TABLE t1 (c0 INT);
SELECT count(*) c1 HAVING EXISTS (SELECT 1 FROM t1 WHERE c1 BETWEEN c0 AND 0);

src/planner/filter/constant_filter.cpp:15: virtual duckdb::FilterPropagateResult duckdb::ConstantFilter::CheckStatistics(duckdb::BaseStatistics &): Assertion `constant.type().id() == stats.type.id()' failed

By replacing the between:

CREATE TABLE t1 (c0 INT);
SELECT count(*) c1 HAVING EXISTS (SELECT 1 FROM t1 WHERE c1 = c0);

ABORT THROWN BY INTERNAL EXCEPTION: Failed to bind column reference "c1" [2.0] (bindings: [15.0])

35. Floating-point conversion overflow (now fixed)

SELECT CAST(4294967295 AS REAL) IN ('a', CAST(2 AS UINTEGER));

src/include/duckdb/common/operator/numeric_cast.hpp:35:18: runtime error: 4.29497e+09 is outside the range of representable values of type 'unsigned int'

36. Grapheme function overflow (fixed)

SELECT right_grapheme('a', -9223372036854775808);
SELECT "right"('a', -9223372036854775808);

src/function/scalar/string/left_right.cpp:68:67: runtime error: negation of -9223372036854775808 cannot be represented in type 'int64_t' (aka 'long'); cast to an unsigned type to negate this value to itself

37. Wrong optimization (fixed)

This TLP query gives wrong results for the true and null predicates. There's a count(*) aggregate being pushed up, which shouldn't.

CREATE TABLE t0 (c0 INT);
CREATE VIEW t1(c1, c0) AS (SELECT 1, max(c0) FROM t0);

SELECT 1 FROM t1; --1 row
SELECT 1 FROM t1 WHERE '\x96'::BLOB IN (1); --1 row, wrong?
SELECT 1 FROM t1 WHERE NOT ('\x96'::BLOB IN (1)); --1 row
SELECT 1 FROM t1 WHERE ('\x96'::BLOB IN (1)) IS NULL; --1 row, wrong?

Similar case:

CREATE VIEW t1(c0) AS (SELECT (SELECT 1 WHERE FALSE));

SELECT 1 FROM t1;
SELECT 1 FROM t1 WHERE decode('\xC0'::BLOB) IS NULL; --1 row, wrong?
SELECT 1 FROM t1 WHERE NOT (decode('\xC0'::BLOB) IS NULL); --1 row
SELECT 1 FROM t1 WHERE (decode('\xC0'::BLOB) IS NULL) IS NULL; --1 row, wrong?

38. SEGV at argmax (now fixed)

CREATE TABLE t1 (c0 INT, c1 TINYINT);
INSERT INTO t1(c0,c1) VALUES (1,43);
DELETE FROM t1;
INSERT INTO t1(c0,c1) VALUES (1,52);
SELECT argmax(c1,c0) FROM t1;

SEGV at src/common/vector_operations/vector_copy.cpp:22

Adding a filter clause to the aggregate gives a heap-buffer-overflow at src/include/duckdb/common/types/selection_vector.hpp:73

39. Wrong result for query (fixed)

CREATE TABLE t1(c0 INT);
INSERT INTO t1(c0) VALUES (1),(2),(3);
SELECT 1 FROM t1;
SELECT 1 FROM t1 WHERE -9223372036854775808 >= (6892203265207104503 - (-7595956987701092486)); --right
SELECT 1 FROM t1 WHERE NOT (-9223372036854775808 >= (6892203265207104503 - (-7595956987701092486))); --wrong?
SELECT 1 FROM t1 WHERE (-9223372036854775808 >= (6892203265207104503 - (-7595956987701092486))) IS NULL; --right

The three queries with predicate return an empty result. The NOT query predicate is true, so 3 rows are expected.

40. Update error (now fixed)

With vector size 2 do:

CREATE TABLE t1 (c0 INT);
INSERT INTO t1(c0) VALUES (1),(2),(3);
UPDATE t1 SET c0 = DEFAULT;

src/execution/expression_executor.cpp:175: void duckdb::ExpressionExecutor::Execute(const duckdb::Expression &, duckdb::ExpressionState *, const duckdb::SelectionVector *, duckdb::idx_t, duckdb::Vector &): Assertion `FlatVector::Validity(result).CheckAllValid(count)' failed

or a persisted database with vector size 2048:

CREATE TABLE t1 (c2 INT, c0 INT);
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (NULL, 3);
PRAGMA DEBUG_FORCE_EXTERNAL=1;
UPDATE t1 SET c0 = (SELECT c0), c2 = DEFAULT;

41. Out-of-memory error not caught

On a persisted database do:

CREATE TABLE t1 AS (SELECT 1 c1, 'a' c2);
CREATE INDEX i1 ON t1 (c1);
PRAGMA MEMORY_LIMIT='2MB';
CHECKPOINT;
INSERT INTO t1(c2) (SELECT DISTINCT 'b');

The insert will throw an out-of-memory error:
terminate called after throwing an instance of 'duckdb::OutOfMemoryException'
what(): Out of Memory Error: failed to pin block of size 262144

42. NaN as seed (now fixed)

SELECT setseed(CAST('NaN' AS REAL));

src/function/scalar/math/setseed.cpp:42:24: runtime error: nan is outside the range of representable values of type 'unsigned int'

43. Substring generating an invalid string (now fixed)

SELECT substring(decode('u\xD5\x8D1'::BLOB)::VARCHAR, -1);

src/common/types/string_type.cpp:15: void duckdb::string_t::Verify() const: Assertion `utf_type != UnicodeType::INVALID' failed

44. Memory size mismatch (fixed)

CREATE TABLE t1 (c1 BOOLEAN);
CREATE INDEX i1 ON t1 (c1);
INSERT INTO t1 VALUES (1),(0),(1),(1);
UPDATE t1 SET c1 = NULL;

or

CREATE TABLE t0 (c1 INT);
CREATE INDEX i0 ON t0 (c1);
INSERT INTO t0(c1) VALUES (1),(1),(1);
TRUNCATE t0;

ABORT THROWN BY INTERNAL EXCEPTION: Memory_size value (16) does not match actual memory size (0).

45. Memory leak on "last" aggregate (fixed)

CREATE TABLE t0 (c1 VARCHAR(3));
INSERT INTO t0(c1) VALUES (NULL), ('a'),('-801673450963');
SELECT "last"(c1) FROM t0;

The leak sanitizer reports a memory leak:

Direct leak of 13 byte(s) in 1 object(s) allocated from:
    #0 0x55c9547336cd in operator new[](unsigned long) (...) (BuildId: fca7334ead8bb84fa2541f6771eff3642b753244)
    #1 0x7fe1639ad8d9 in void duckdb::FirstFunctionString<true, false>::SetValue<duckdb::FirstState<duckdb::string_t> >(duckdb::FirstState<duckdb::string_t>*, duckdb::string_t, bool) src/function/aggregate/distributive/first.cpp:87:16
    #2 0x7fe1639ad31e in void duckdb::FirstFunctionString<true, false>::Operation<duckdb::string_t, duckdb::FirstState<duckdb::string_t>, duckdb::FirstFunctionString<true, false> >(duckdb::FirstState<duckdb::string_t>*, duckdb::AggregateInputData&, duckdb::string_t*, duckdb::ValidityMask&, unsigned long) src/function/aggregate/distributive/first.cpp:98:4
    #3 0x7fe1639af9c8 in void duckdb::AggregateExecutor::UnaryFlatUpdateLoop<duckdb::FirstState<duckdb::string_t>, duckdb::string_t, duckdb::FirstFunctionString<true, false> >(duckdb::string_t*, duckdb::AggregateInputData&, duckdb::FirstState<duckdb::string_t>*, unsigned long, duckdb::ValidityMask&) src/include/duckdb/common/vector_operations/aggregate_executor.hpp:112:6
    #4 0x7fe1639af4f5 in void duckdb::AggregateExecutor::UnaryUpdate<duckdb::FirstState<duckdb::string_t>, duckdb::string_t, duckdb::FirstFunctionString<true, false> >(duckdb::Vector&, duckdb::AggregateInputData&, unsigned char*, unsigned long) src/include/duckdb/common/vector_operations/aggregate_executor.hpp:271:4
    #5 0x7fe1639ab7ea in void duckdb::AggregateFunction::UnaryUpdate<duckdb::FirstState<duckdb::string_t>, duckdb::string_t, duckdb::FirstFunctionString<true, false> >(duckdb::Vector*, duckdb::AggregateInputData&, unsigned long, unsigned char*, unsigned long) src/include/duckdb/function/aggregate_function.hpp:237:3
    #6 0x7fe1676114a9 in duckdb::PhysicalUngroupedAggregate::Sink(duckdb::ExecutionContext&, duckdb::GlobalSinkState&, duckdb::LocalSinkState&, duckdb::DataChunk&) const src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp:270:3
    #7 0x7fe1683e02f4 in duckdb::PipelineExecutor::ExecutePushInternal(duckdb::DataChunk&, unsigned long) src/parallel/pipeline_executor.cpp:104:38
    #8 0x7fe1683de696 in duckdb::PipelineExecutor::Execute(unsigned long) src/parallel/pipeline_executor.cpp:52:17
    #9 0x7fe1684724ea in duckdb::PipelineTask::ExecuteTask(duckdb::TaskExecutionMode) src/parallel/pipeline.cpp:37:39
    #10 0x7fe1683be3b6 in duckdb::ExecutorTask::Execute(duckdb::TaskExecutionMode) src/parallel/executor_task.cpp:17:10
    #11 0x7fe1683cdab6 in duckdb::Executor::ExecuteTask() src/parallel/executor.cpp:392:24
    #12 0x7fe1680ab9b3 in duckdb::ClientContext::ExecuteTaskInternal(duckdb::ClientContextLock&, duckdb::PendingQueryResult&) src/main/client_context.cpp:438:41
    #13 0x7fe1680f7683 in duckdb::PendingQueryResult::ExecuteTaskInternal(duckdb::ClientContextLock&) src/main/pending_query_result.cpp:53:18
    #14 0x7fe1680b4e5a in duckdb::PendingQueryResult::ExecuteInternal(duckdb::ClientContextLock&) src/main/pending_query_result.cpp:58:9
    #15 0x7fe1680b7aa9 in duckdb::ClientContext::ExecutePendingQueryInternal(duckdb::ClientContextLock&, duckdb::PendingQueryResult&) src/main/client_context.cpp:893:15
    #16 0x7fe1680c16d3 in duckdb::ClientContext::Query(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) src/main/client_context.cpp:824:21
    #17 0x7fe1680d520f in duckdb::Connection::Query(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/main/connection.cpp:75:25
    #18 0x7fe167e25906 in duckdb_query src/main/capi/duckdb-c.cpp:67:22
	...

46. Another parser error?

Compile and link this program using the C-API:

#include <duckdb.h>
#include <iostream>

int main(void) {
	duckdb_result dr;
	duckdb_database db;
	duckdb_connection dc;
	char *error = nullptr;

	if (duckdb_open_ext(nullptr, &db, nullptr, &error) == DuckDBError) {
		std::cerr << error << std::endl;
		duckdb_free(error);
		return 1;
	}
	if (duckdb_connect(db, &dc) == DuckDBError) {
		duckdb_close(&db);
		std::cerr << "Error while opening connection" << std::endl;
		return 1;
	}
	if (duckdb_query(dc, "PRAGMA VERIFY_SERIALIZER;", &dr) == DuckDBError) {
		duckdb_disconnect(&dc);
		duckdb_close(&db);
		std::cerr << "Error on query 1: " << duckdb_result_error(&dr) << std::endl;
		duckdb_destroy_result(&dr);
		return 1;
	}
	duckdb_destroy_result(&dr);
	if (duckdb_query(dc, "VALUES (17014118346046923173168730371588410572),(1E0);", &dr) == DuckDBError) {
		duckdb_disconnect(&dc);
		duckdb_close(&db);
		std::cerr << "Error on query 2: " << duckdb_result_error(&dr) << std::endl;
		duckdb_destroy_result(&dr);
		return 1;
	}
	duckdb_destroy_result(&dr);
	duckdb_disconnect(&dc);
	duckdb_close(&db);
	return 0;
}

The second query will result in an error:

Error on query 2: Invalid Error: Parsed statement differs from original result!
Original Result:
col0
DOUBLE
[ Rows: 2]
1.7014118346046924e+37
1.0

Parsed:
Conversion Error: Could not cast value 17014118346046923173168730371588410572 to DECIMAL(38,1)

47. New bit type issues (fixed)

SELECT CAST(BLOB 'q' AS BIT); is attempting to do an allocation of 18446744073709551503 bytes in size. Something is wrong here.

VALUES (CAST(BLOB 'q}4\xE4\xCD\xD8\x0FF\xBEh\xBB*\x9C\x7F\xB3\xD6\xAA' AS BIT));

src/common/types/vector.cpp:1146: static void duckdb::Vector::Verify(duckdb::Vector &, const duckdb::SelectionVector &, duckdb::idx_t): Assertion `*buf >= 0 && *buf < 8' failed

SELECT 1 BETWEEN CAST('1' AS BIT) AND BLOB 'dN\x17\xAE\x15\x89\x97\x98\xC4itp\xC8\xE6\x0D';

stack-buffer-overflow at src/common/types/bit.cpp:78

48. Another segment tree issue

This is a follow-up to issue 14. on this list

CREATE TABLE t0 (c0 INT, c1 INT);
INSERT INTO t0(c1) VALUES (1);
START TRANSACTION;
INSERT INTO t0(c1) VALUES (1);
UPDATE t0 SET c0 = (SELECT 2);
COMMIT;

src/storage/table/segment_tree.cpp:74: bool duckdb::SegmentTree::TryGetSegmentIndex(duckdb::SegmentLock &, duckdb::idx_t, duckdb::idx_t &): Assertion `row_number < nodes.back().row_start + nodes.back().node->count' failed.

49. Buffer manager resize issue (fixed)

CREATE TABLE t1 (c1 INT, c0 INT);
CREATE TABLE t2 (c1 INT, c0 INT);
START TRANSACTION;
CREATE INDEX i1 ON t2 (c1);
CREATE INDEX i1 ON t1 (c0);
COMMIT;
CREATE UNIQUE INDEX i1 ON t2 (c1);
INSERT INTO t2(c1,c0) VALUES (235,36),(43,81),(246,187),(28,149),(206,20),(135,11),(170,205),(202,63),(69,78),(160,50),(6,34),(207,28);
INSERT INTO t2(c1,c0) VALUES (86,98),(96,107),(237,190),(253,242),(229,9),(6,147);

src/storage/buffer_manager.cpp:30: void duckdb::BufferPoolReservation::Resize(atomicduckdb::idx_t &, duckdb::idx_t): Assertion `delta > 0 || (int64_t)counter >= -delta' failed

50. Alter table heap-use-after-free

Compile and link this C++ program:

#include <duckdb.hpp>

int main(void) {
	duckdb::DuckDB db(nullptr);
	duckdb::Connection con(db);

	con.SendQuery("CREATE TABLE t0(c0 INT);");
	con.SendQuery("ALTER TABLE t0 ADD c1 TIMESTAMP_SEC;"); 
	return 0;
}

heap-use-after-free at memcpy called from catalog_set.cpp:375

51. Insert or replace issue 1 (fixed)

CREATE TABLE t2 (c1 INT PRIMARY KEY);
INSERT OR REPLACE INTO t2 VALUES (1);

src/planner/binder/statement/bind_insert.cpp:336: void duckdb::Binder::BindOnConflictClause(duckdb::LogicalInsert &, duckdb::TableCatalogEntry &, duckdb::InsertStatement &): Assertion `!set_info.columns.empty()' failed.

52. Insert or replace issue 2 (fixed)

Compile and link this C++ program:

#include <duckdb.hpp>

int main(void) {
	duckdb::DuckDB db(nullptr);
	duckdb::Connection con(db);

	con.SendQuery("CREATE TABLE t2 (c1 INT);");
	con.SendQuery("PRAGMA VERIFY_EXTERNAL;");
	con.SendQuery("EXPLAIN INSERT OR REPLACE INTO t2 VALUES (1);");
	return 0;
}

src/planner/binder/statement/bind_insert.cpp:195:2: runtime error: member access within null pointer of type 'duckdb::TableRef'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/planner/binder/statement/bind_insert.cpp:195:2 in

53. Address sanitizer crash (fixed)

CREATE TABLE t1 (c0 INT);
SELECT first_value((1 || mode() WITHIN GROUP (ORDER BY 1)) IGNORE NULLS) OVER () FROM t1;

unknown crash at src/common/types/string_heap.cpp:43

54. Rollup queries with wrong results (fixed)

CREATE TABLE t1 (c1 INT, c0 BOOLEAN);
INSERT INTO t1(c1,c0) VALUES (24,0),(-100,0);
SELECT 1 FROM t1 GROUP BY 1, ROLLUP (c1); --3 rows
SELECT 1 FROM t1 GROUP BY 1, ROLLUP (c1) HAVING (c1 > 1); --2 rows
SELECT 1 FROM t1 GROUP BY 1, ROLLUP (c1) HAVING (NOT (c1 > 1)); --2 rows
SELECT 1 FROM t1 GROUP BY 1, ROLLUP (c1) HAVING ((c1 > 1) IS NULL); --0 rows

Should each HAVING query produce 1 row?

55. Unimplemented type for HyperLogLog (fixed)

CREATE TABLE t1 AS (VALUES ([]));
INSERT INTO t1("col0") VALUES ([]);
VACUUM t1;

ABORT THROWN BY INTERNAL EXCEPTION: Unimplemented type for HyperLogLog::ComputeHashes

56. Window function timeout (fixed)

CREATE TABLE t0 (c0 TIME);
SELECT count(*) OVER (ORDER BY INTERVAL '17768853205' HOUR) FROM t0 GROUP BY ROLLUP (c0);

The process hangs forever because the interval is too large. A mutex release on error missing?

57. Foreign key issue (fixed)

CREATE TABLE t0 (c0 INT, FOREIGN KEY (c0, c0) REFERENCES t0(c0, c0), UNIQUE (c0, c0));

or

CREATE TABLE t0 (c0 INT, FOREIGN KEY (c0, c0) REFERENCES t0(c0, c0), PRIMARY KEY (c0, c0));

src/include/duckdb/planner/constraints/bound_foreign_key_constraint.hpp:24: duckdb::BoundForeignKeyConstraint::BoundForeignKeyConstraint(duckdb::ForeignKeyInfo, duckdb::physical_index_set_t, duckdb::physical_index_set_t): Assertion `info.pk_keys.size() == pk_key_set.size()' failed

58. Window function infinite recursion call (fixed)

SELECT count(*) OVER w1 WINDOW w1 AS (ORDER BY count(*) OVER w1);

Results in a stack overflow, because "w1" is being used on its own definition. A check is missing.

59. ART prefix error (fixed)

Another issue with NULL character in BLOBs

CREATE TABLE t0 (c0 BLOB PRIMARY KEY);
INSERT INTO t0(c0) VALUES (BLOB '\x00a'),(BLOB '');

src/execution/index/art/leaf.cpp:42: duckdb::Leaf::Leaf(duckdb::Key &, uint32_t, duckdb::row_t): Assertion `value.len >= depth' failed

60. Another bit issue (fixed)

SELECT CAST('' AS BIT);

src/planner/logical_operator.cpp:124: virtual void duckdb::LogicalOperator::Verify(duckdb::ClientContext &): Assertion `!str.empty()' failed

61. Physical column index out of range (fixed)

CREATE TABLE t0 (c1 INT, c0 INT CONSTRAINT k1 REFERENCES t0(c0) UNIQUE);
CREATE TABLE t1 AS (SELECT 1);
CREATE TEMP TABLE t0 AS (SELECT 1);
SHOW t1;

ABORT THROWN BY INTERNAL EXCEPTION: Physical column index 1 out of range

62. Generated columns and Parquet (fixed)

CREATE TABLE t0 (c0 INT AS (1), c1 INT);
EXPORT DATABASE '<path>' (FORMAT PARQUET);

Then on another database:

IMPORT DATABASE '<path>';

extension/parquet/parquet-extension.cpp:202: static unique_ptrduckdb::FunctionData duckdb::ParquetScanFunction::ParquetReadBind(duckdb::ClientContext &, duckdb::CopyInfo &, vectorstd::string &, vectorduckdb::LogicalType &): Assertion `expected_names.size() == expected_types.size()' failed

63. Another sequence issue (fixed)

CREATE SEQUENCE t1;
CREATE TABLE t1 (c1 INT, CHECK(nextval('t1')));
CREATE TEMP SEQUENCE t1;
ALTER TABLE t1 ADD c0 INT;

Restart the connection and do:

INSERT INTO t1 VALUES (1,1);

src/function/scalar/sequence/nextval.cpp:94:69: runtime error: member access within address ... which does not point to an object of type 'duckdb::CatalogEntry'

64. Another buffer manager memory issue (fixed)

PRAGMA MEMORY_LIMIT='2MB';
SELECT 0 FROM ((SELECT 1 GROUP BY ALL ORDER BY ALL) UNION ((SELECT 2) INTERSECT (SELECT 2))) GROUP BY TIME '1:8:3';

src/storage/buffer_manager.cpp:146: unique_ptrduckdb::FileBuffer duckdb::BlockHandle::UnloadAndTakeBlock(): Assertion `!unswizzled' failed

65. Bit type not in C-API

Compile, link and run this program:

#include <duckdb.h>
#include <iostream>

int main(void) {
	duckdb_result dr;
	duckdb_database db;
	duckdb_connection dc;
	char *error = nullptr;

	if (duckdb_open_ext(nullptr, &db, nullptr, &error) == DuckDBError) {
		std::cerr << error << std::endl;
		duckdb_free(error);
		return 1;
	}
	if (duckdb_connect(db, &dc) == DuckDBError) {
		duckdb_close(&db);
		std::cerr << "Error while opening connection" << std::endl;
		return 1;
	}
	if (duckdb_query(dc, "SELECT CAST('1' AS BIT);", &dr) == DuckDBError) {
		duckdb_disconnect(&dc);
		duckdb_close(&db);
		std::cerr << "Error on query: " << duckdb_result_error(&dr) << std::endl;
		duckdb_destroy_result(&dr);
		return 1;
	}
	std::cout << "Rows changed: " << duckdb_rows_changed(&dr) << std::endl;
	duckdb_destroy_result(&dr);
	duckdb_disconnect(&dc);
	duckdb_close(&db);
	return 0;
}

src/main/capi/helper-c.cpp:171: duckdb::idx_t duckdb::GetCTypeSize(duckdb_type): Assertion `0' failed

66. Validation failure (fixed)

This one got this far indeed :)

CREATE TABLE t1 (c0 USMALLINT);
INSERT INTO t1(c0) VALUES (55400),(62125),(21932),(15101),(19303),(14448),(29076),(61338),(45331),(39062),(36759),(NULL),(NULL),(29982),(7683),(31221),(12770),(37468),(61984),(50414),(37797),(40379),(23215),(63015),(26227),(29032),(25664),(20253),(32852),(63052),(52177),(30729),(45073),(21799),(8647),(49000),(53832),(3808),(60310),(19935),(46266),(55999),(19537),(47276),(48878),(50807),(28399),(53022),(41860),(56109),(65043),(65499),(48489),(42806),(59095),(62977),(59542),(51061),(59722),(12269),(1642),(52048),(54558),(59869),(NULL),(12988),(32573),(30),(43474),(4452),(36432),(51351),(15504),(23912),(36050),(51646),(924),(38912),(46053),(17695),(34594),(24966),(43083),(22606),(20558),(22085),(53836),(23341),(26335),(12661),(32814),(57147),(15633),(14252),(62368),(NULL),(4886),(15090),(19377),(43519);
INSERT INTO t1(c0) VALUES (56475),(47920),(53284),(48517),(65387),(17312),(57695),(53568),(5604),(22898),(48659),(32591),(30958),(NULL),(14468);
INSERT INTO t1(c0) VALUES (63840),(13374),(61559),(NULL),(NULL);
INSERT INTO t1(c0) VALUES (NULL),(30769),(48200),(54688),(23987),(15996),(65459),(NULL),(45859),(3395),(25280),(14512),(3042),(6131),(2380);
INSERT INTO t1(c0) VALUES (21609),(33724),(26855),(5185),(62568),(13309),(9429),(25670);
INSERT INTO t1(c0) VALUES (NULL),(34354),(14872);
INSERT INTO t1(c0) VALUES (13797),(39760),(27969),(36369),(10634),(22534),(50479),(53975),(56261),(3543),(46673),(58415),(23065),(23304),(23103),(18172),(23419),(39548),(61073),(55593);
INSERT INTO t1(c0) VALUES (60480),(56311),(700),(59885),(28749),(37631),(61186),(12205),(64236),(37860),(6144),(7315),(1253),(41063),(32737),(31392),(54403),(34385),(44264),(6975);
INSERT INTO t1(c0) VALUES (NULL),(12899),(11883);
INSERT INTO t1(c0) VALUES (20814),(10668),(14753),(20203),(1756),(NULL),(23325),(13579),(59818),(50387),(39522),(40627),(21223),(60789),(30687),(40829),(23253),(10187),(37864),(23909);
INSERT INTO t1(c0) VALUES (51578),(29658),(15533),(31834),(47761),(59641),(60006),(47367),(50904),(6596),(64851),(26453),(52102),(5045),(9580),(40567),(31488),(43694),(19773),(NULL);
INSERT INTO t1(c0) VALUES (NULL),(302),(52487),(3786),(59779),(53459),(59368),(21353),(8010),(47102),(45060),(33622),(19718),(56426),(53706),(52287),(38573),(51704),(6120),(13816);
INSERT INTO t1(c0) VALUES (20051);
INSERT INTO t1(c0) VALUES (20847),(40784),(23522);
INSERT INTO t1(c0) VALUES (45163),(47240),(53299),(12087),(38761),(28880),(19446),(61855),(10138),(24055),(50642),(NULL),(63152),(27808),(44377),(57920),(10953),(52728),(NULL),(62990),(53098),(36284),(18494),(35450),(11604),(28610),(11185),(35364),(34281),(28245),(5829),(3837),(43244),(18024),(35813),(33505),(36243),(NULL),(61366),(63050),(64162),(NULL),(11827),(45195),(31478),(5028),(56158),(12342),(53489),(19188),(15796),(11213),(38503),(29528),(53957),(28935),(51759),(61843),(24086),(5907),(7364),(63988),(43861),(34618),(48842),(NULL),(53414),(62708),(30902),(6768),(50015),(15657),(49199),(34641),(48602),(30161),(6802),(9787),(31139),(3283),(233),(48543),(6622),(49096),(59826),(41823),(6126),(20635),(63046),(35742),(57404),(46575),(25525),(48191),(48694),(57862),(36296),(16578),(40746),(56617);
INSERT INTO t1(c0) VALUES (NULL),(19006),(32735),(27313),(10689),(26644),(12392),(4747),(42279),(NULL),(50213),(54583),(25499),(41894),(15169),(37975),(15890),(25196),(62219),(12992),(3730),(13093),(13654),(78),(24857),(65122),(45052),(52918),(9723),(13094),(35163),(63213),(50351),(56264),(23823),(64746),(162),(19133),(37714),(5349),(4937),(63005),(40356),(37886),(27407),(28940),(35957),(NULL),(36470),(25954);
INSERT INTO t1(c0) VALUES (29046),(7776),(25325),(25846),(7649),(36190),(50827),(27707);
INSERT INTO t1(c0) VALUES (9280),(31695),(28540),(43801),(49526),(31129),(62564),(46230),(42923),(16830),(59925),(NULL),(48269),(15939),(NULL);
INSERT INTO t1(c0) VALUES (52730),(38278),(50697),(30762),(58430),(27877),(16106),(36079),(9321),(46560),(16555),(7265),(39384),(37651),(19905),(65351),(40448),(28157),(17549),(53933),(33175),(25890),(25889),(30572),(NULL),(13742),(22517),(29477),(8488),(48978),(63257),(16563),(12908),(62682),(26703),(39907),(55129),(45679),(5408),(59457),(10231),(28972),(3790),(19291),(35752),(36013),(54867),(41010),(26194),(NULL),(64121),(25681),(NULL),(55508),(59029),(NULL),(4115),(26470),(53574),(NULL),(63875),(42238),(44110),(30802),(47424),(38417),(23741),(13667),(3601),(22581),(63837),(44288),(49143),(65281),(11971),(34635),(25573),(14429),(60772),(99),(60320),(19673),(55273),(9473),(6132),(9872),(9350),(58609),(15805),(2377),(52247),(34097),(5450),(53556),(NULL),(16985),(55029),(51570),(63601),(14397);
INSERT INTO t1(c0) VALUES (39057),(44750),(27679),(18126),(48523),(38824),(15101),(31424),(51893),(52316),(37870),(54337),(26814),(40101),(48716);
INSERT INTO t1(c0) VALUES (30915),(60530),(46184),(43104),(59463);
INSERT INTO t1(c0) VALUES (62496),(20241),(41999),(1559),(29852),(51156),(48809),(27541),(1837),(36657);
INSERT INTO t1(c0) VALUES (5807),(60846),(7965),(NULL),(51799),(39940),(48336),(21210),(25908),(59165),(4764),(59173),(47771),(3471),(36192),(15182),(33325),(24181),(49208),(701),(47829),(30638),(51583),(12091),(51532),(13487),(10308),(6671),(16545),(54406),(16641),(58149),(50205),(41867),(12433),(52999),(49665),(56640),(227),(10572),(38310),(30282),(56190),(54661),(56441),(63153),(25653),(20483),(2569),(42107);
INSERT INTO t1(c0) VALUES (46031),(48773);
INSERT INTO t1(c0) VALUES (64402);
INSERT INTO t1(c0) VALUES (48081),(NULL),(63503),(16532),(46509),(40206),(20103),(NULL),(36675),(16369),(37553),(52247),(17723),(56081),(51298),(14199),(46719),(41261),(1930),(NULL),(16939),(2811),(40655),(56385),(NULL),(NULL),(59396),(60556),(8884),(48270),(49866),(49673),(43362),(231),(8040),(1286),(63360),(6833),(49425),(57286),(42616),(6980),(6191),(34271),(33429),(12048),(29641),(47352),(20527),(289);
INSERT INTO t1(c0) VALUES (49120),(27572),(NULL),(33586),(6393),(4912),(45101),(55422),(37168),(45268),(NULL),(42054),(5110),(29241),(36661),(53819),(48335),(60893),(NULL),(58429),(58856),(64215),(NULL),(13342),(28937),(41029),(37354),(13802),(62103),(43562),(29655),(55553),(48332),(48807),(52703),(1824),(57949),(54795),(30684),(47607),(44877),(29354),(36216),(37785),(41022),(48636),(40037),(61441),(3176),(33973),(15518),(31187),(53437),(49254),(8923),(NULL),(32750),(40609),(37178),(50611),(18150),(27168),(64203),(41026),(15218),(24405),(973),(35328),(24737),(37921),(7224),(11854),(22234),(5272),(1635),(13988),(11776),(43042),(NULL),(30658),(17903),(62427),(8575),(33497),(59324),(50029),(48052),(38562),(25423),(33606),(4708),(32450),(52698),(37856),(57463),(49176),(2160),(22538),(13003),(NULL);
INSERT INTO t1(c0) VALUES (15507),(21508),(59438),(61479),(11781),(47768),(2816),(58194),(10647),(NULL),(64859),(51806),(46585),(61715),(3719),(41921),(40464),(8497),(37323),(63738),(23522),(14484),(23701),(29557),(63326),(23449),(10524),(55760),(54779),(48026),(24860),(15555),(18428),(8423),(NULL),(36773),(28024),(8024),(15409),(21667),(52478),(16904),(47856),(62724),(14289),(35982),(643),(14815),(58586),(61054);
INSERT INTO t1(c0) VALUES (28554),(54449),(56100),(36618),(28500),(10695),(18485),(38039),(52258),(14986);
INSERT INTO t1(c0) VALUES (30709),(46006),(57821),(36264),(11190),(64089),(20047),(3835),(26058),(6106),(23131),(33816),(48235),(56625),(39442);
INSERT INTO t1(c0) VALUES (47679),(1542),(29203),(30591),(23088),(16118),(63440),(41795),(61211),(58939);
INSERT INTO t1(c0) VALUES (29830),(8365),(14540),(26285),(26072),(45722),(45447),(15352),(37740),(33731),(6312),(57026),(22292),(445),(62870),(45717),(60622),(49298),(50558),(55896),(56835),(44375),(41066),(755),(33229),(5997),(26197),(41337),(54830),(27665),(43507),(40564),(42468),(32379),(37040),(46146),(21074),(10016),(42574),(60511),(7546),(51092),(61876),(8249),(61517),(55583),(12357),(34645),(8872),(12066);
INSERT INTO t1(c0) VALUES (151),(15102),(65508),(57716),(40653),(5003),(27351),(52526),(2905),(58665),(47831),(31160),(8264),(49083),(11722),(41263),(51891),(7205),(12362),(61909);
INSERT INTO t1(c0) VALUES (21040),(32822),(25262),(2081),(20415),(46901),(5780),(34566),(20741),(48798),(49108),(6177),(10310),(60622),(4354),(20840),(23828),(41303),(40385),(21884);
INSERT INTO t1(c0) VALUES (48788),(46798),(60561),(45528),(NULL),(36326),(60889),(5921);
INSERT INTO t1(c0) VALUES (49408),(33778),(2802),(41258),(51789),(4543),(27491),(12012),(19178),(12600),(58487),(5130),(25782),(37364),(20735),(59524),(35076),(10321),(27938),(40586),(19071),(45098),(32022),(39982),(16824),(4929),(35782),(64664),(43217),(NULL),(26070),(12592),(31928),(20438),(12292),(42650),(45533),(36775),(14355),(46477),(54275),(58533),(20009),(22466),(56549),(13834),(65224),(49000),(47035),(9916),(45908),(45156),(3984),(48879),(20236),(NULL),(2070),(21848),(NULL),(61422),(61143),(190),(8596),(3074),(52703),(14955),(25230),(41030),(11152),(12027),(56166),(54661),(11656),(48536),(8449),(6371),(11667),(51047),(29853),(NULL),(58823),(62153),(NULL),(17148),(49963),(NULL),(24834),(44928),(28381),(4858),(48446),(34654),(56236),(5622),(3518),(20782),(43728),(1171),(45879),(34044);
INSERT INTO t1(c0) VALUES (34027),(37924),(44640),(12230),(22054),(43329),(37642),(40524),(41129),(1846),(6748),(17552),(39242),(35988),(11942),(59757),(65275),(52188),(47631),(45692),(48498),(30921),(NULL),(49970),(21840),(10077),(49209),(8028),(58573),(2993),(NULL),(34627),(NULL),(20440),(21362),(18147),(22912),(34187),(17422),(11796),(64576),(39852),(55470),(48185),(5684),(56880),(46344),(57141),(46549),(53627),(53950),(NULL),(33518),(62984),(7482),(NULL),(64507),(NULL),(19360),(23132),(53874),(17270),(18743),(9818),(43705),(39693),(13406),(NULL),(17573),(40981),(18743),(62856),(60426),(40666),(12592),(54876),(59727),(42194),(5865),(39744),(13095),(18305),(45544),(48016),(46013),(57032),(57800),(NULL),(1050),(10430),(4151),(14722),(20863),(44326),(36183),(59850),(55922),(32558),(37527),(60217);
INSERT INTO t1(c0) VALUES (41219),(29368),(63393),(38448),(63737),(61487),(58775),(10935),(43240),(22588),(13892),(29309),(55026),(59390),(21340),(19746),(53465),(43548),(7121),(32485),(11764),(41530),(48388),(9675),(46286),(8565),(31587),(45468),(30477),(19867),(18597),(58750),(15411),(33848),(52835),(17742),(25945),(29998),(15930),(36554),(40921),(5967),(22951),(52092),(55855),(26552),(15070),(43354),(38747),(6709),(54584),(15801),(35751),(8019),(39068),(44981),(31471),(NULL),(49135),(20187),(45849),(3361),(62864),(63049),(20633),(41069),(3495),(6206),(48585),(52845),(28669),(5654),(40254),(65113),(53955),(33304),(61767),(23464),(4469),(63007),(15799),(57518),(56211),(20008),(41936),(61851),(16343),(21936),(53349),(31326),(NULL),(33372),(33190),(7454),(36580),(42835),(3618),(46601),(16835),(53871);
INSERT INTO t1(c0) VALUES (17725),(56210),(32961),(28422),(7513),(24159),(NULL),(28336),(10186),(14421),(31032),(27109),(56462),(12906),(50212);
INSERT INTO t1(c0) VALUES (1667),(6699),(37907),(22433),(45804),(37143),(853),(56517),(1225),(22841),(57184),(41104),(63522),(5984),(42296),(50084),(36512),(11449),(28698),(3186),(12154),(13969),(32376),(56988),(38715),(1782),(9617),(46865),(NULL),(12271),(55683),(17825),(16564),(48436),(32880),(52399),(7824),(NULL),(41929),(48680),(61201),(12085),(13330),(10693),(NULL),(16168),(42990),(58875),(60873),(12260);
INSERT INTO t1(c0) VALUES (26368),(9844),(7019),(15551),(58163),(31723),(37657),(65498),(16754),(61317),(5784),(4717),(9324),(4756),(54338),(25030),(27971),(60822),(59309),(21726),(34930),(15016),(51561),(NULL),(29190),(39970),(31388),(43593),(65392),(36412),(63831),(23544),(5052),(9784),(48494),(5256),(30496),(38675),(35421),(10518),(30718),(26724),(43514),(44907),(22027),(31309),(17377),(16837),(6253),(32780),(58284),(21554),(62843),(49453),(7405),(25950),(21524),(25849),(12878),(10506),(16917),(23494),(37461),(16076),(20629),(NULL),(18149),(40071),(65308),(55965),(19206),(NULL),(59394),(16860),(55999),(23920),(15763),(31770),(19526),(55335),(52106),(48947),(12796),(63568),(29752),(NULL),(56959),(11567),(24853),(18300),(48921),(44489),(5051),(18690),(28345),(36716),(28020),(46837),(60955),(19486);
INSERT INTO t1(c0) VALUES (17527),(NULL),(37892);
INSERT INTO t1(c0) VALUES (7912);
INSERT INTO t1(c0) VALUES (39853),(34024),(1467);
INSERT INTO t1(c0) VALUES (21),(16317),(58398),(35465),(14973),(3578),(4333),(51138),(62223),(1332),(27702),(16377),(140),(52443),(18167);
INSERT INTO t1(c0) VALUES (58232),(53786),(5626),(23202),(39279),(NULL),(53143),(31603),(46901),(46601),(64797),(36701),(14223),(44953),(60038),(2719),(29462),(16318),(5315),(1533);
INSERT INTO t1(c0) VALUES (59),(24704),(7483),(11114),(43853),(58008),(20407),(61430),(62866),(22187),(54502),(35659),(56102),(7394),(39659);
INSERT INTO t1(c0) VALUES (42700),(44172),(43150),(38082),(23460),(8667),(15671),(64378),(46329),(5592),(8018),(4442),(16502),(55564),(43096),(9690),(53420),(36992),(57142),(5084),(26725),(16085),(33586),(14778),(20431),(64937),(55069),(11296),(12466),(32722),(1088),(36611),(29832),(54535),(35997),(57017),(22423),(20718),(46449),(54714),(35686),(58459),(24151),(22087),(39914),(38030),(31235),(11210),(28672),(11033);
INSERT INTO t1(c0) VALUES (26076),(1205),(53153),(21149),(56805),(61101),(4527),(11720),(NULL),(42032),(25672),(64340),(34785),(8260),(57179),(31517),(10965),(9506),(31477),(9807),(16769),(62200),(27044),(54438),(21232),(49467),(NULL),(25057),(4592),(27946),(18087),(31577),(3656),(13651),(18120),(17093),(58209),(62337),(15248),(16831),(43344),(40432),(13971),(37166),(11743),(25218),(26097),(32497),(2519),(30613),(44447),(14576),(62572),(65241),(8336),(55942),(17456),(31212),(25655),(43256),(1094),(42321),(49676),(26198),(30178),(8626),(35517),(35526),(29822),(53691),(19410),(17188),(42316),(57624),(44323),(62692),(36348),(47770),(47750),(19933),(53531),(16423),(8233),(37886),(51245),(47813),(16564),(32943),(29940),(4811),(62870),(12993),(5298),(60812),(29666),(30460),(5225),(16596),(45651),(7712);
INSERT INTO t1(c0) VALUES (43434),(50698),(783),(20948),(44622),(48579),(61677),(58658),(60242),(7256),(51049),(36527),(63397),(38064),(47401),(11478),(45182),(15733),(53943),(902),(33185),(59888),(9945),(55542),(25071),(8494),(25360),(56927),(16156),(31047),(49730),(9666),(13863),(14049),(37410),(18301),(26171),(23740),(47055),(62585),(3402),(62143),(49538),(42606),(55672),(62917),(64930),(29464),(20050),(33750),(6641),(4142),(19966),(32240),(29350),(40072),(34163),(30494),(29071),(18484),(NULL),(3883),(55890),(NULL),(30459),(NULL),(10548),(64802),(49626),(43070),(51099),(55976),(23340),(3816),(23215),(19223),(57861),(2048),(39956),(14895),(15708),(47283),(61505),(23394),(32649),(58198),(57015),(26848),(52711),(34432),(NULL),(59118),(23084),(53875),(26118),(31434),(9572),(33392),(49674),(8556);
INSERT INTO t1(c0) VALUES (55396),(15656),(43323),(44136),(2662);
INSERT INTO t1(c0) VALUES (60955),(6818),(45064),(55148),(34087),(16447),(14037),(44378),(31096),(40308);
INSERT INTO t1(c0) VALUES (51179),(27051),(34230),(NULL),(49701),(43338),(35991),(36966),(22870),(58525),(23909),(27703),(6538),(59137),(35559),(5999),(39123),(7328),(274),(59263),(44791),(61026),(16893),(9201),(7226),(37218),(30313),(11020),(25253),(11496),(49729),(18552),(1145),(6595),(NULL),(38127),(34625),(19007),(24366),(25341),(65131),(28224),(2277),(10701),(11065),(4165),(44956),(20776),(35046),(22413),(65058),(2722),(4571),(33431),(57035),(18840),(48872),(43388),(40016),(17193),(30818),(23642),(19370),(13107),(57902),(6205),(29378),(NULL),(40047),(65360),(41679),(52808),(7490),(19968),(22753),(15133),(43601),(52323),(49132),(NULL),(57549),(5371),(4178),(3089),(16505),(20832),(NULL),(32915),(NULL),(29241),(25409),(5799),(54925),(48816),(60830),(39593),(42711),(57303),(20532),(1358);
INSERT INTO t1(c0) VALUES (13123),(10388),(41445),(40905),(16357),(50964),(27795),(NULL),(14402),(NULL),(52688),(63386),(42204),(54370),(42547);
INSERT INTO t1(c0) VALUES (64923);
INSERT INTO t1(c0) VALUES (23961),(58367),(52059),(NULL),(46205),(48074),(36915),(NULL),(411),(62145),(2363),(NULL),(NULL),(39143),(26729),(18722),(59062),(26446),(37219),(65301),(36320),(55533),(NULL),(46281),(8223),(10939),(47459),(NULL),(50643),(16090),(54751),(2477),(30042),(16480),(40277),(34113),(41414),(63904),(50667),(51929),(64816),(11384),(NULL),(36301),(24242),(9999),(24867),(63845),(19141),(23258);
INSERT INTO t1(c0) VALUES (15689),(41882),(26466),(36876),(26956),(50183),(48150),(NULL);
INSERT INTO t1(c0) VALUES (35440),(39017),(14011),(24603),(40448),(65021),(17260),(65512),(21157),(48688),(6181),(28505),(19484),(3774),(45118),(59634),(22052),(24461),(35774),(36570),(49946),(52726),(35941),(27499),(35505),(15186),(46980),(46602),(58716),(54482),(NULL),(47393),(47465),(64515),(35446),(NULL),(NULL),(56925),(27624),(2916),(26603),(32208),(44857),(49914),(19243),(32215),(42283),(4346),(30557),(47999),(40744),(20336),(NULL),(5172),(27874),(4516),(29208),(62212),(39012),(19535),(46589),(1184),(7662),(52136),(7466),(63042),(54008),(17988),(23382),(55605),(54063),(65035),(50770),(51286),(17529),(59473),(53997),(36833),(3123),(54583),(4842),(27297),(25346),(53492),(37720),(33093),(44240),(2282),(55452),(60199),(40622),(58048),(30586),(36326),(NULL),(45999),(16625),(NULL),(55281),(62845);
INSERT INTO t1(c0) VALUES (32564),(12966);
INSERT INTO t1(c0) VALUES (1312),(56833),(11489),(44997),(20783);
INSERT INTO t1(c0) VALUES (26710),(22209),(62213),(59277),(NULL),(46076),(45368),(56582),(21762),(4555),(2088),(47294),(51205),(60681),(40248),(32255),(10337),(58807),(61330),(5368);
INSERT INTO t1(c0) VALUES (61000),(11647);
INSERT INTO t1(c0) VALUES (35722),(49931),(9228),(22260),(41490),(30916),(48234),(29492);
INSERT INTO t1(c0) VALUES (62462),(45580),(6809),(12948),(46313),(42750),(25326),(12449),(23844),(6713),(58196),(60084),(34355),(12355),(NULL),(7984),(48618),(39749),(7989),(58487);
ALTER TABLE t1 ALTER c0 TYPE USMALLINT;

src/execution/expression_executor.cpp:175: void duckdb::ExpressionExecutor::Execute(const duckdb::Expression &, duckdb::ExpressionState *, const duckdb::SelectionVector *, duckdb::idx_t, duckdb::Vector &): Assertion `FlatVector::Validity(result).CheckAllValid(count)' failed

67. Buffer manager resize issue

This may be related to the previous one:

CREATE TABLE t1 (c0 USMALLINT);
INSERT INTO t1(c0) VALUES (56475),(47920),(53284),(48517),(65387),(17312),(57695),(53568),(5604),(22898),(48659),(32591),(30958),(NULL),(14468);
INSERT INTO t1(c0) VALUES (63840),(13374),(61559),(NULL),(NULL),(NULL),(30769),(48200),(54688),(23987),(15996),(65459),(NULL),(45859),(3395),(25280),(14512),(3042),(6131),(2380);
INSERT INTO t1(c0) VALUES (21609),(33724),(26855),(5185),(62568),(13309),(9429),(25670);
INSERT INTO t1(c0) VALUES (NULL),(34354),(14872),(13797),(39760),(27969),(36369),(10634),(22534),(50479),(53975),(56261),(3543),(46673),(58415),(23065),(23304),(23103),(18172),(23419),(39548),(61073),(55593);
INSERT INTO t1(c0) VALUES (60480),(56311),(700),(59885),(28749),(37631),(61186),(12205),(64236),(37860),(6144),(7315),(1253),(41063),(32737),(31392),(54403),(34385),(44264),(6975);
INSERT INTO t1(c0) VALUES (62834),(7688),(50622),(17514),(12780),(55459),(46209),(6902),(8027),(60461),(42320),(31341),(56056),(59611);
INSERT INTO t1(c0) VALUES (36164),(48851),(9524),(41136),(57474),(64450),(45700),(65065),(443),(9884),(30980);
INSERT INTO t1(c0) VALUES (20785),(5582),(28877),(17872),(49320),(8399),(42537),(60055),(62580),(58154),(30253),(55378),(62569),(17536),(42645),(27415),(16103),(17948),(22807),(17315);
INSERT INTO t1(c0) VALUES (29569),(57178),(29038),(31113),(28372),(18736),(23021),(18751),(46744),(3295),(18830),(60713),(48030),(25671),(18208),(14163),(53598),(25413),(19928),(3527),(29734),(8021),(5962),(29343),(NULL),(20903),(11213),(12226),(52936),(42537),(42459),(31538),(15655),(52699),(29335),(23389),(59253),(NULL),(11666),(57504),(24321),(41122),(NULL),(65175),(56381),(40747),(62409),(7915),(34649),(52055),(30624),(61321),(38561),(8331),(57706),(20953),(57863),(53822),(4683),(1201),(25695),(30163),(49841),(18163),(39556),(4514),(39763),(36478),(11365),(35952),(42520),(61958),(51933),(4250),(23748),(12571),(7093),(NULL),(NULL),(NULL),(21777),(55476),(31593),(23949),(9606),(62765),(18929),(43782),(6353),(6325),(24194),(59104),(42764),(28385),(NULL),(60607),(259),(47267),(6853),(54435),(28840),(44615),(11315),(11021),(9090);
INSERT INTO t1(c0) VALUES (44725),(16109),(20540),(19646),(63187),(8452),(25062),(63896),(103),(7669),(58490),(65255),(51859),(14981),(64156),(2686),(64914),(12642),(3429),(58409),(42410),(35325),(53651),(35841),(54610),(20233),(42542),(45840),(33139),(51283),(4705),(522),(47219),(31738),(704),(53445),(9891),(48492),(42672),(2167),(NULL),(51484),(30555),(33140),(14253),(18647),(6297),(12626),(34663),(9216),(39902),(16193),(42634),(62488),(37472),(42804),(64908),(1850),(6796),(11299),(48023),(6563),(NULL),(NULL),(53466),(58038),(35301),(45792),(31815),(53575),(28272),(13902),(55235),(22070),(14284),(53475),(15866),(7242),(49916),(5825),(26586),(7092),(13713),(65114),(58800),(45235),(3806),(3943),(64976),(10126),(28884),(5032),(31244),(2158),(2606),(55648),(45904),(60634),(12539),(23809),(NULL);
INSERT INTO t1(c0) VALUES (21599),(26501),(51075),(NULL),(58718),(48984),(NULL),(48745),(14613),(12856),(55568),(NULL),(14170),(NULL),(31433),(29930),(24613),(56510),(55755),(5363);
INSERT INTO t1(c0) VALUES (53035),(28404),(27965),(29281),(39306),(39566),(19351),(7482),(24821),(31415),(31645),(26076),(38017),(12043),(NULL),(31888),(22635),(45575),(13732),(NULL),(NULL),(24928),(56360),(8008),(62127),(49641),(28432),(58825),(14288),(64606),(45040),(31963),(51928),(61049),(58483),(14946),(16033),(262),(NULL),(23398),(58174),(NULL),(10283),(58056),(33105),(17479),(9763),(62313),(40099),(41026);
INSERT INTO t1(c0) VALUES (1511),(49711),(9526),(16766),(38387),(13020),(48567),(44157),(56869),(24674),(NULL),(61445),(33149),(43563),(24613),(19430),(13693),(58547),(26528),(62317),(27060),(54161),(61852),(17650),(41637),(19403),(5935),(15145),(25580),(9751),(32633),(20676),(43946),(26227),(59228),(9217),(22499),(49302),(26620),(47982),(NULL),(20659),(43645),(7023),(20668),(48635),(35662),(5942),(7719),(14634);
INSERT INTO t1(c0) VALUES (45766),(13421),(53722),(41688),(22712),(50268),(5323),(8424),(11014),(26734),(41260),(23066),(7251),(61600),(13498),(45651),(8227),(10905),(51112),(6528),(45118),(47159),(65214),(22496),(44476),(15599),(11923),(59579),(867),(59967),(37209),(1520),(5964),(41800),(5506),(5686),(21829),(62850),(40526),(16181),(14471),(63749),(7486),(62389),(20667),(2875),(NULL),(680),(26468),(2802),(25617),(40944),(NULL),(12907),(16864),(61121),(11028),(53199),(52723),(43327),(26805),(17150),(42802),(38962),(17482),(46347),(24295),(25342),(28991),(58457),(29264),(30195),(46984),(45703),(17967),(31352),(45559),(8118),(49024),(43626),(62751),(21910),(48330),(33216),(38362),(14779),(20998),(63431),(25116),(49114),(13094),(14077),(45581),(15678),(28081),(18369),(59524),(15317),(16549),(38435);
INSERT INTO t1(c0) VALUES (5993),(8617),(31174),(53250),(9745),(11661),(30054),(35068),(54640),(34125),(54543),(30760),(32877),(47608),(3502),(31318),(NULL),(45467),(15166),(48239),(39808),(45057),(7893),(NULL),(30576),(43245),(6064),(NULL),(5802),(59398),(20853),(10011),(60416),(41058),(20231),(54168),(35489),(48345),(56006),(36198),(52794),(20369),(29732),(352),(48832),(19963),(63253),(NULL),(27365),(10680),(17838);
INSERT INTO t1(c0) VALUES (NULL),(20209),(30246),(33353),(18129),(29126),(32206),(54419),(53289),(31974),(NULL),(30900),(24292),(30052),(23259),(21222),(15232);
INSERT INTO t1(c0) VALUES (14218),(51940),(12299),(7147),(5124),(48886),(45870),(26704),(22877),(56172),(5066),(29519),(28430),(21572),(17735);
INSERT INTO t1(c0) VALUES (35981),(24695),(15006),(797),(8885),(2463),(59347),(26159),(7250),(25606),(60958),(569),(62477),(21375),(17501),(12348),(48776),(61212),(21537),(60203),(31649),(32682),(3232),(15571),(15811);
INSERT INTO t1(c0) VALUES (17828),(23297),(840),(9130),(NULL),(4483),(36169),(22456),(24318),(12043),(7267),(16957),(10026),(31251),(47538),(6216),(37912),(18204),(24806),(38557),(19872),(55336),(8151),(42856),(27195),(32381),(43071),(39746),(NULL),(60102),(NULL),(46342),(39191),(13281),(35633),(19452),(2058),(15555),(11279),(54995),(59808),(52403),(48413),(10462),(53991),(57253),(22194),(43983),(49282),(13702);
INSERT INTO t1(c0) VALUES (NULL),(34559),(2562),(27794),(18621),(3015),(10643),(8945),(48266),(30644),(52342),(4416),(6742),(37662),(58544);
INSERT INTO t1(c0) VALUES (47842),(23738),(NULL),(NULL),(38477),(16639),(49686),(18320),(17419),(4988),(52914),(4319),(27549),(14137),(59824),(13183),(55361),(35841),(30056),(44317),(51548),(15833),(54070),(2413),(39499),(31943),(61859),(48244),(3239),(61928),(55165),(63600),(48761),(15532),(16983),(54000),(28267),(29358),(10792),(65510),(55017),(44898),(19857),(37497),(10545),(2525),(21465),(24133),(26572),(23075),(25469),(37219),(53458),(60342),(49215),(52661),(57140),(48256),(19545),(13149),(NULL),(58995),(28221),(54931),(16435),(36653),(55394),(59311),(60138),(NULL),(29502),(31607),(31772),(50143),(36283),(57119),(11418),(11109),(11567),(26267),(26720),(37246),(NULL),(43509),(190),(54141),(46064),(40884),(62635),(7181),(35531),(3043),(21271),(NULL),(38904),(16407),(40992),(8236),(9582),(61090);
INSERT INTO t1(c0) VALUES (NULL),(19491),(29415),(39179),(6482),(2932),(19146),(NULL),(55220),(22010);
INSERT INTO t1(c0) VALUES (15723),(58544),(34821),(20939),(55812),(40358),(61992),(41834),(1748),(29305),(24593),(49059),(15331),(53985),(36896),(11391),(39363),(25835),(58638),(35009),(29900),(36823),(57830),(53437),(2150),(10205),(33227),(18480),(14234),(29403),(28912),(55524),(33703),(20383),(1702),(8300),(21891),(42740),(20061),(18712),(28895),(27409),(18228),(11162),(54566),(62809),(63123),(6780),(54280),(47640),(23232),(36808),(NULL),(12594),(36863),(46112),(16537),(60706),(12468),(19894),(62020),(6436),(49637),(48303),(23061),(57615),(30802),(41383),(2311),(58641),(46122),(21750),(15471),(4536),(20270),(48435),(61568),(NULL),(62757),(50369),(14746),(9452),(14384),(34146),(51101),(12388),(43269),(32720),(24630),(14879),(50877),(24538),(41790),(9019),(59856),(50549),(35946),(5023),(14130),(56620);
INSERT INTO t1(c0) VALUES (53628),(23134),(21165),(16657),(49808),(10930),(59608),(55752),(58783),(26609),(53773),(44291),(19951),(48197),(37923);
INSERT INTO t1(c0) VALUES (2696),(1950),(907),(20982),(40254),(24443),(46252),(33836),(1217),(47513),(11466),(50626),(65227),(33683),(12568),(11593),(20498),(35571),(32675),(53420);
INSERT INTO t1(c0) VALUES (9857),(58796),(34585),(54967),(5354),(62866),(8106),(6436),(43925),(23433),(63317),(13099),(48842),(30985),(57131),(NULL),(1736),(5555),(3777),(27045),(52675),(62822),(13374),(14497),(20416),(18261),(17692),(31493),(57249),(39763),(9741),(48158),(60407),(26988),(22844),(13124),(289),(47776),(56855),(7262),(3577),(10934),(1834),(45363),(42241),(50887),(56145),(24870),(54360),(41201),(42883),(8948),(29545);
INSERT INTO t1(c0) VALUES (59118),(31011),(34166),(55896),(NULL),(11616),(33648),(31149),(17827),(9481),(51277),(35336),(19737),(39787),(11817),(7937),(44695),(49700),(61759),(45882);
INSERT INTO t1(c0) VALUES (27381),(48026),(39135),(NULL),(46802),(4537),(35118),(12072),(34654),(17917),(NULL),(65185),(15445),(47753),(940),(5984),(1225),(10044),(33151),(29538),(58928),(29223),(42900),(44306),(37337),(61979),(56033),(63708),(45485),(26167),(29042),(44969),(12339),(36117),(26348),(52237),(36271),(52082),(487),(11455),(58284),(46030),(37706),(57518),(45897),(13641),(32),(7697),(16984),(27835);
INSERT INTO t1(c0) VALUES (31170),(62950),(36515),(10727),(11860),(48390),(16843),(2288),(36068),(36509),(48664),(51933),(51850),(1448),(57131),(19086),(5875),(9437);
INSERT INTO t1(c0) VALUES (520),(65315),(18240),(4122),(718),(44876),(61153),(59230),(42951),(64792),(12053),(57504),(13407),(51707),(49930),(52171);
INSERT INTO t1(c0) VALUES (20892),(50903),(45942),(3635),(44146),(52651),(5664),(11052),(NULL),(47818),(2432),(64881),(53261),(60620),(41432),(17162),(25196),(39828),(17380),(49125),(21537),(1502),(63703),(41658),(55132),(37487),(64723),(21224),(NULL),(17313),(60139),(36769),(32855),(24269),(54785),(25236),(7436),(58613),(49518),(13626),(51887),(2267),(27651),(6543),(59439),(40179),(24122),(44314),(38392),(23145);
INSERT INTO t1(c0) VALUES (18533),(23633),(34638),(NULL),(33068),(20404),(34245),(40568),(17016),(7477),(16801),(51249),(20387),(27421),(8888),(26089),(55676),(21453),(9574),(31869),(47040),(7900),(34813),(29951),(4411),(58646),(64992),(30704),(41058),(5341),(44617),(27461),(42439),(33405),(14663),(15030),(6604),(4925),(12274),(18665),(57949),(17465),(13017),(39610),(25252),(31870),(56229),(1830),(55100),(43115);
INSERT INTO t1(c0) VALUES (17178),(4246),(16175),(17087),(41859),(1342),(60238),(52763),(32058),(NULL);
INSERT INTO t1(c0) VALUES (4912),(51953),(58412),(22488),(9484),(56700),(42972),(28725),(59734),(48255),(33544),(1090),(15590),(58852),(34510),(NULL),(52965),(59010),(3045),(31185),(2791),(23054),(16524),(41472),(22843),(55228),(39716),(16961),(19469),(64323),(2523),(23569),(54004),(2173),(22137),(49605),(37030),(46759),(20975),(41118),(63268),(59758),(11318),(NULL),(3521),(38620),(28944),(47650),(30590),(8873),(47683),(9454),(55658),(1523),(4947),(45457),(57454),(2002),(660),(36001),(22147),(20440),(28774),(5226),(10541),(4261),(53393),(34537),(6186),(7254),(35532),(12886),(NULL),(37974),(63091),(48651),(19463),(60891),(41445),(98),(31075),(47005),(32403),(25218),(47923),(55667),(37003),(58869),(45691),(45189),(22752),(57233),(60904),(27957),(9329),(39569),(28556),(37044),(35279),(54568);
INSERT INTO t1(c0) VALUES (60543),(37583),(25814),(44690),(NULL),(55050),(22772),(18754),(53340),(49699),(57142),(39251),(50548),(26222),(29144),(45459),(17083),(1915),(62205),(33055),(10764),(13965),(30820),(44964),(5679),(34762),(58590),(47213),(25078),(54586),(39572),(NULL),(6977),(36264),(10563),(32445),(65235),(3133),(43085),(58755),(17397),(56679),(4589),(63863),(47885),(13947),(51621),(8857),(36578),(64454);
INSERT INTO t1(c0) VALUES (11024),(15337),(49115),(28120),(8195),(26288),(5368),(20005),(17467),(19913),(32585),(57918),(52832),(62426),(2198),(34038),(29674),(38190),(3119),(6169),(NULL),(60269),(47504),(18993),(25717),(64090),(NULL),(55438),(412),(35874),(5442),(20998),(NULL),(5725),(29248),(61984),(5467),(44395),(6457),(713),(35143),(24755),(41345),(22107),(45448),(23723),(NULL),(27589),(29430),(30718),(NULL),(12899),(11883);
INSERT INTO t1(c0) VALUES (20814),(10668),(14753),(20203),(1756),(NULL),(23325),(13579),(59818),(50387),(39522),(40627),(21223),(60789),(30687),(40829),(23253),(10187),(37864),(23909);
INSERT INTO t1(c0) VALUES (51578),(29658),(15533),(31834),(47761),(59641),(60006),(47367),(50904),(6596),(64851),(26453),(52102),(5045),(9580),(40567),(31488),(43694),(19773),(NULL);
INSERT INTO t1(c0) VALUES (NULL),(302),(52487),(3786),(59779),(53459),(59368),(21353),(8010),(47102),(45060),(33622),(19718),(56426),(53706),(52287),(38573),(51704),(6120),(13816);
INSERT INTO t1(c0) VALUES (20051),(20847),(40784),(23522),(45163),(47240),(53299),(12087),(38761),(28880),(19446),(61855),(10138),(24055),(50642),(NULL),(63152),(27808),(44377),(57920),(10953),(52728),(NULL),(62990),(53098),(36284),(18494),(35450),(11604),(28610),(11185),(35364),(34281),(28245),(5829),(3837),(43244),(18024),(35813),(33505),(36243),(NULL),(61366),(63050),(64162),(NULL),(11827),(45195),(31478),(5028),(56158),(12342),(53489),(19188),(15796),(11213),(38503),(29528),(53957),(28935),(51759),(61843),(24086),(5907),(7364),(63988),(43861),(34618),(48842),(NULL),(53414),(62708),(30902),(6768),(50015),(15657),(49199),(34641),(48602),(30161),(6802),(9787),(31139),(3283),(233),(48543),(6622),(49096),(59826),(41823),(6126),(20635),(63046),(35742),(57404),(46575),(25525),(48191),(48694),(57862),(36296),(16578),(40746),(56617);
INSERT INTO t1(c0) VALUES (NULL),(19006),(32735),(27313),(10689),(26644),(12392),(4747),(42279),(NULL),(50213),(54583),(25499),(41894),(15169),(37975),(15890),(25196),(62219),(12992),(3730),(13093),(13654),(78),(24857),(65122),(45052),(52918),(9723),(13094),(35163),(63213),(50351),(56264),(23823),(64746),(162),(19133),(37714),(5349),(4937),(63005),(40356),(37886),(27407),(28940),(35957),(NULL),(36470),(25954);
INSERT INTO t1(c0) VALUES (51106),(11819),(61144),(20404),(5275),(58267),(9271),(51905),(55210),(2476),(49019),(20976),(2629),(19208),(64394),(9498),(44793),(54314),(NULL),(NULL);
INSERT INTO t1(c0) VALUES (29046),(7776),(25325),(25846),(7649),(36190),(50827),(27707),(9280),(31695),(28540),(43801),(49526),(31129),(62564),(46230),(42923),(16830),(59925),(NULL),(48269),(15939),(NULL);
INSERT INTO t1(c0) VALUES (52730),(38278),(50697),(30762),(58430),(27877),(16106),(36079),(9321),(46560),(16555),(7265),(39384),(37651),(19905),(65351),(40448),(28157),(17549),(53933),(33175),(25890),(25889),(30572),(NULL),(13742),(22517),(29477),(8488),(48978),(63257),(16563),(12908),(62682),(26703),(39907),(55129),(45679),(5408),(59457),(10231),(28972),(3790),(19291),(35752),(36013),(54867),(41010),(26194),(NULL),(64121),(25681),(NULL),(55508),(59029),(NULL),(4115),(26470),(53574),(NULL),(63875),(42238),(44110),(30802),(47424),(38417),(23741),(13667),(3601),(22581),(63837),(44288),(49143),(65281),(11971),(34635),(25573),(14429),(60772),(99),(60320),(19673),(55273),(9473),(6132),(9872),(9350),(58609),(15805),(2377),(52247),(34097),(5450),(53556),(NULL),(16985),(55029),(51570),(63601),(14397);
PRAGMA VERIFY_PARALLELISM;
INSERT INTO t1(c0) VALUES (39057),(44750),(27679),(18126),(48523),(38824),(15101),(31424),(51893),(52316),(37870),(54337),(26814),(40101),(48716),(41570),(NULL),(32934),(30895),(NULL),(14668),(59074),(57104),(NULL),(NULL),(36414),(9473),(48520),(3401),(18244);
INSERT INTO t1(c0) VALUES (30915),(60530),(46184),(43104),(59463),(62496),(20241),(41999),(1559),(29852),(51156),(48809),(27541),(1837),(36657);
INSERT INTO t1(c0) VALUES (5807),(60846),(7965),(NULL),(51799),(39940),(48336),(21210),(25908),(59165),(4764),(59173),(47771),(3471),(36192),(15182),(33325),(24181),(49208),(701),(47829),(30638),(51583),(12091),(51532),(13487),(10308),(6671),(16545),(54406),(16641),(58149),(50205),(41867),(12433),(52999),(49665),(56640),(227),(10572),(38310),(30282),(56190),(54661),(56441),(63153),(25653),(20483),(2569),(42107),(46031),(48773),(64402);
INSERT INTO t1(c0) VALUES (48081),(NULL),(63503),(16532),(46509),(40206),(20103),(NULL),(36675),(16369),(37553),(52247),(17723),(56081),(51298),(14199),(46719),(41261),(1930),(NULL),(16939),(2811),(40655),(56385),(NULL),(NULL),(59396),(60556),(8884),(48270),(49866),(49673),(43362),(231),(8040),(1286),(63360),(6833),(49425),(57286),(42616),(6980),(6191),(34271),(33429),(12048),(29641),(47352),(20527),(289);
INSERT INTO t1(c0) VALUES (49120),(27572),(NULL),(33586),(6393),(4912),(45101),(55422),(37168),(45268),(NULL),(42054),(5110),(29241),(36661),(53819),(48335),(60893),(NULL),(58429),(58856),(64215),(NULL),(13342),(28937),(41029),(37354),(13802),(62103),(43562),(29655),(55553),(48332),(48807),(52703),(1824),(57949),(54795),(30684),(47607),(44877),(29354),(36216),(37785),(41022),(48636),(40037),(61441),(3176),(33973),(15518),(31187),(53437),(49254),(8923),(NULL),(32750),(40609),(37178),(50611),(18150),(27168),(64203),(41026),(15218),(24405),(973),(35328),(24737),(37921),(7224),(11854),(22234),(5272),(1635),(13988),(11776),(43042),(NULL),(30658),(17903),(62427),(8575),(33497),(59324),(50029),(48052),(38562),(25423),(33606),(4708),(32450),(52698),(37856),(57463),(49176),(2160),(22538),(13003),(NULL);
CREATE UNIQUE INDEX i1 ON t1(c0);

src/storage/buffer_manager.cpp:31: void duckdb::BufferPoolReservation::Resize(atomicduckdb::idx_t &, duckdb::idx_t): Assertion `delta > 0 || (int64_t)counter >= -delta' failed

68. Another out-of-memory issue

PRAGMA MEMORY_LIMIT='5MB';
(SELECT DISTINCT 1 FROM (SELECT 2) t0 ORDER BY 1) EXCEPT (SELECT 1 FROM (SELECT 2) t0 GROUP BY 1);

src/storage/buffer/block_handle.cpp:93: duckdb::unique_ptrduckdb::FileBuffer duckdb::BlockHandle::UnloadAndTakeBlock(): Assertion `!unswizzled' failed.

OS:

Linux

DuckDB Version:

latest from sources

DuckDB Client:

Shell and C/C++ API

Full Name:

Pedro Ferreira

Affiliation:

Huawei

Have you tried this on the latest master branch?

  • I agree

Have you tried the steps to reproduce? Do they include all relevant data and configuration? Does the issue you report still appear there?

  • I agree

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions