citusdata / citusdata/citus

Cannot enlarge string buffer problem in large table join with 6 dual joins

Open
#542 14 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C
Stars
12.8k
Forks
794
Avg merge
2d 14h
Merged PRs (30d)
31

Description

This query errors out;

``` sql
select
o_year,
sum(case
when nation = 'JAPAN' then volume
else 0
end) / sum(volume) as mkt_share
from
(
select
extract(year from o_orderdate) as o_year,
l_extendedprice * (1 - l_discount) as volume,
n2.n_name as nation
from
part,
supplier,
lineitem,
orders,
customer,
nation n1,
nation n2,
region
where
p_partkey = l_partkey
and s_suppkey = l_suppkey
and l_orderkey = o_orderkey
and o_custkey = c_custkey
and c_nationkey = n1.n_nationkey
and n1.n_regionkey = r_regionkey
and r_name = 'ASIA'
and s_nationkey = n2.n_nationkey
and o_orderdate between date '1995-01-01' and date '1996-12-31'
and p_type = 'PROMO PLATED TIN'
) as all_nations
group by
o_year
order by
o_year;
```

This is the error message;

ERROR: out of memory
DETAIL: Cannot enlarge string buffer containing 1073741818 bytes by 32 more bytes.

This is the join order;
LOG: join order: [ "lineitem" ][ local partition join "orders" ][ dual partition join "part" ][ dual partition join "supplier" ][ dual partition join "customer" ][ dual partition join "nation" ][ dual partition join "nation" ][ dual partition join "region" ]

All tables are hash-partitioned with 10 shards and replication count equals to 1.

This problem is reported in citus-users group.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.