-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Labels
Description
What happens?
Dear DuckDB Developers,
I have encountered a internal error in joins and have prepared a reproducible case, which I’ve included below. I would greatly appreciate it if you could take a moment to review it.
CREATE TABLE t1(c0 DOUBLE, c1 INT8);
CREATE TABLE t3(c0 VARCHAR);
INSERT INTO t1(c1) VALUES (1);
SELECT * FROM t3, t1 INNER JOIN ( SELECT t3.c0 ) as subQuery1 ON ( t1.c0 > ((t3.c0) ::DOUBLE) );
INTERNAL Error:
Unsupported type for NumericValueUnionToValue
Stack Trace:
0 duckdb::Exception::Exception(duckdb::ExceptionType, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 64
1 duckdb::InternalException::InternalException(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 20
2 duckdb::NumericValueUnionToValueInternal(duckdb::LogicalType const&, duckdb::NumericValueUnion const&) + 432
3 duckdb::NumericStats::Min(duckdb::BaseStatistics const&) + 60
4 duckdb::NumericStats::HasMinMax(duckdb::BaseStatistics const&) + 80
5 duckdb::StatisticsPropagator::PropagateComparison(duckdb::BaseStatistics&, duckdb::BaseStatistics&, duckdb::ExpressionType) + 88
6 duckdb::StatisticsPropagator::PropagateStatistics(duckdb::LogicalComparisonJoin&, duckdb::unique_ptr<duckdb::LogicalOperator, std::__1::default_delete<duckdb::LogicalOperator>, true>&) + 716
7 duckdb::StatisticsPropagator::PropagateStatistics(duckdb::LogicalJoin&, duckdb::unique_ptr<duckdb::LogicalOperator, std::__1::default_delete<duckdb::LogicalOperator>, true>&) + 476
8 duckdb::StatisticsPropagator::PropagateStatistics(duckdb::LogicalOperator&, duckdb::unique_ptr<duckdb::LogicalOperator, std::__1::default_delete<duckdb::LogicalOperator>, true>&) + 108
9 duckdb::StatisticsPropagator::PropagateStatistics(duckdb::LogicalProjection&, duckdb::unique_ptr<duckdb::LogicalOperator, std::__1::default_delete<duckdb::LogicalOperator>, true>&) + 72
10 duckdb::StatisticsPropagator::PropagateStatistics(duckdb::LogicalOperator&, duckdb::unique_ptr<duckdb::LogicalOperator, std::__1::default_delete<duckdb::LogicalOperator>, true>&) + 164
11 std::__1::__function::__func<duckdb::Optimizer::RunBuiltInOptimizers()::$_21, std::__1::allocator<duckdb::Optimizer::RunBuiltInOptimizers()::$_21>, void ()>::operator()() + 84
12 duckdb::Optimizer::RunOptimizer(duckdb::OptimizerType, std::__1::function<void ()> const&) + 152
13 duckdb::Optimizer::RunBuiltInOptimizers() + 1860
14 duckdb::Optimizer::Optimize(duckdb::unique_ptr<duckdb::LogicalOperator, std::__1::default_delete<duckdb::LogicalOperator>, true>) + 244
15 duckdb::ClientContext::CreatePreparedStatementInternal(duckdb::ClientContextLock&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, duckdb::optional_ptr<std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, duckdb::BoundParameterData, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, duckdb::BoundParameterData>>>, true>) + 840
16 duckdb::ClientContext::CreatePreparedStatement(duckdb::ClientContextLock&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, duckdb::optional_ptr<std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, duckdb::BoundParameterData, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, duckdb::BoundParameterData>>>, true>, duckdb::PreparedStatementMode) + 1024
17 duckdb::ClientContext::PendingStatementInternal(duckdb::ClientContextLock&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, duckdb::PendingQueryParameters const&) + 128
18 duckdb::ClientContext::PendingStatementOrPreparedStatement(duckdb::ClientContextLock&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, duckdb::shared_ptr<duckdb::PreparedStatementData, true>&, duckdb::PendingQueryParameters const&) + 248
19 duckdb::ClientContext::PendingStatementOrPreparedStatementInternal(duckdb::ClientContextLock&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, duckdb::shared_ptr<duckdb::PreparedStatementData, true>&, duckdb::PendingQueryParameters const&) + 1556
20 duckdb::ClientContext::PendingQueryInternal(duckdb::ClientContextLock&, duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, duckdb::PendingQueryParameters const&, bool) + 136
21 duckdb::ClientContext::PendingQuery(duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, duckdb::BoundParameterData, duckdb::CaseInsensitiveStringHashFunction, duckdb::CaseInsensitiveStringEquality, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, duckdb::BoundParameterData>>>&, bool) + 224
22 duckdb::ClientContext::PendingQuery(duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, bool) + 64
23 duckdb::Connection::PendingQuery(duckdb::unique_ptr<duckdb::SQLStatement, std::__1::default_delete<duckdb::SQLStatement>, true>, bool) + 64
24 duckdb_shell_sqlite3_prepare_v2 + 1024
25 duckdb_shell::ShellState::ExecuteSQL(char const*, char**) + 108
26 duckdb_shell::ShellState::RunOneSqlLine(duckdb_shell::InputMode, char*) + 256
27 duckdb_shell::ShellState::ProcessInput(duckdb_shell::InputMode) + 876
28 main + 4004
29 start + 6000
To Reproduce
CREATE TABLE t1(c0 DOUBLE, c1 INT8);
CREATE TABLE t3(c0 VARCHAR);
INSERT INTO t1(c1) VALUES (1);
SELECT * FROM t3, t1 INNER JOIN ( SELECT t3.c0 ) as subQuery1 ON ( t1.c0 > ((t3.c0) ::DOUBLE) );OS:
MacOS
DuckDB Version:
DuckDB v1.4.0-dev1655 (Development Version) 59382ca
DuckDB Client:
CLI
Hardware:
No response
Full Name:
TheoristCoder
Affiliation:
Personal Project
What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.
I have tested with a nightly build
Did you include all relevant data sets for reproducing the issue?
Yes
Did you include all code required to reproduce the issue?
- Yes, I have
Did you include all relevant configuration (e.g., CPU architecture, Python version, Linux distribution) to reproduce the issue?
- Yes, I have
Reactions are currently unavailable