Skip to content

ABORT THROWN BY INTERNAL EXCEPTION: Failed to find function array_cat(VARCHAR) #4296

@fuzzerofducks

Description

@fuzzerofducks

Issue found by DuckFuzz on git commit hash a7ebe using seed 272252084.

To Reproduce

create table all_types as select * exclude(small_enum, medium_enum, large_enum) from test_all_types() limit 0;
SELECT array_cat(NULL)

Error Message

ABORT THROWN BY INTERNAL EXCEPTION: Failed to find function array_cat(VARCHAR)

Stack Trace

Binder Error: No function matches the given name and argument types 'array_cat(VARCHAR)'. You might need to add explicit type casts.
	Candidate functions:
	array_cat([ANY[]...]) -> ANY[]


duckdb::StackTrace::GetStackTrace[abi:cxx11](unsigned long) 
duckdb::InternalException::InternalException(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) 
duckdb::InternalException::InternalException<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) 
duckdb::ScalarFunctionSet::GetFunctionByArguments(duckdb::ClientContext&, duckdb::vector<duckdb::LogicalType, true> const&) 
duckdb::ScalarFunction duckdb::FunctionSerializer::DeserializeFunction<duckdb::ScalarFunction, duckdb::ScalarFunctionCatalogEntry>(duckdb::ClientContext&, duckdb::CatalogType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::vector<duckdb::LogicalType, true> const&, duckdb::vector<duckdb::LogicalType, true> const&) 
std::pair<duckdb::ScalarFunction, bool> duckdb::FunctionSerializer::DeserializeBase<duckdb::ScalarFunction, duckdb::ScalarFunctionCatalogEntry>(duckdb::Deserializer&, duckdb::CatalogType, duckdb::optional_ptr<duckdb::vector<duckdb::unique_ptr<duckdb::Expression, std::default_delete<duckdb::Expression>, true>, true>, true>) 
std::pair<duckdb::ScalarFunction, duckdb::unique_ptr<duckdb::FunctionData, std::default_delete<duckdb::FunctionData>, true> > duckdb::FunctionSerializer::Deserialize<duckdb::ScalarFunction, duckdb::ScalarFunctionCatalogEntry>(duckdb::Deserializer&, duckdb::CatalogType, duckdb::vector<duckdb::unique_ptr<duckdb::Expression, std::default_delete<duckdb::Expression>, true>, true>&, duckdb::LogicalType) 
duckdb::BoundFunctionExpression::Deserialize(duckdb::Deserializer&) 
duckdb::Expression::Deserialize(duckdb::Deserializer&) 
duckdb::unique_ptr<duckdb::Expression, std::default_delete<duckdb::Expression>, true> duckdb::BinaryDeserializer::Deserialize<duckdb::Expression>() 
duckdb::unique_ptr<duckdb::Expression, std::default_delete<duckdb::Expression>, true> duckdb::BinaryDeserializer::Deserialize<duckdb::Expression>(duckdb::ReadStream&, duckdb::ClientContext&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, duckdb::shared_ptr<duckdb::BoundParameterData, true>, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::shared_ptr<duckdb::BoundParameterData, true> > > >&) 
duckdb::LogicalOperator::Verify(duckdb::ClientContext&) 
duckdb::ClientContext::CreatePreparedStatementInternal(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::optional_ptr<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, duckdb::BoundParameterData, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::BoundParameterData> > >, true>) 
duckdb::ClientContext::CreatePreparedStatement(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::optional_ptr<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, duckdb::BoundParameterData, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::BoundParameterData> > >, true>, duckdb::PreparedStatementMode) 
duckdb::ClientContext::PendingStatementInternal(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::PendingQueryParameters const&) 
duckdb::ClientContext::PendingStatementOrPreparedStatement(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::shared_ptr<duckdb::PreparedStatementData, true>&, duckdb::PendingQueryParameters const&) 
duckdb::ClientContext::PendingStatementOrPreparedStatementInternal(duckdb::ClientContextLock&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::shared_ptr<duckdb::PreparedStatementData, true>&, duckdb::PendingQueryParameters const&) 
duckdb::ClientContext::PendingQueryInternal(duckdb::ClientContextLock&, duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, duckdb::PendingQueryParameters const&, bool) 
duckdb::ClientContext::PendingQuery(duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, duckdb::BoundParameterData, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, duckdb::BoundParameterData> > >&, bool) 
duckdb::ClientContext::PendingQuery(duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, bool) 
duckdb::Connection::PendingQuery(duckdb::unique_ptr<duckdb::SQLStatement, std::default_delete<duckdb::SQLStatement>, true>, bool) 
duckdb_shell_sqlite3_prepare_v2 
duckdb_shell::ShellState::ExecuteSQL(char const*, char**) 
duckdb_shell::ShellState::RunOneSqlLine(duckdb_shell::InputMode, char*) 
duckdb_shell::ShellState::ProcessInput(duckdb_shell::InputMode) 
main 
_start

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions