Wail Y. Alkowaileet created ASTERIXDB-3311:
----------------------------------------------
Summary: Outer join query fails with column storage
Key: ASTERIXDB-3311
URL: https://issues.apache.org/jira/browse/ASTERIXDB-3311
Project: Apache AsterixDB
Issue Type: Bug
Components: COMP - Compiler, STO - Storage
Affects Versions: 0.9.9
Reporter: Wail Y. Alkowaileet
Assignee: Wail Y. Alkowaileet
Fix For: 0.9.9
Following are the set of statements to reproduce the issue
{noformat}create dataset ds1 primary key (id:int) WITH {"storage-format":
{"format": "column"}};
create dataset ds2 primary key (id:int) WITH {"storage-format": {"format":
"column"}};
insert into ds1 ({"id": 1, "a": 1, "b": 1 });
insert into ds1 ({"id": 2, "a": 1, "b": 2 });
insert into ds1 ({"id": 3, "a": 2, "b": 3 });
insert into ds1 ({"id": 4, "a": 2, "b": 4 });
insert into ds1 ({"id": 5, "a": 3, "b": 5 });
insert into ds1 ({"id": 6, "a": 3, "b": 6 });
insert into ds1 ({"id": 7, "a": 4, "b": 7 });
insert into ds2 ({"id": 100, "x": 2, "y": 100 });
insert into ds2 ({"id": 101, "x": 2, "y": 101 });
insert into ds2 ({"id": 102, "x": 3, "y": 102 });
create index idx_x on ds2(x:int);
select ds1.b, ds2.y
from ds1 left outer join ds2 on to_bigint(ds1.a) /* +indexnl */ = ds2.x
order by ds1.b, ds2.y;{noformat}
As reported by [~peeyushgupta1]
There are two issues here:
1- The compiler doesn't push field accesses to left-outer-unnest-map leading to
arrayCopy failing.
2- Columnar LSM cursors cannot read the same tuple twice. With index nested
loop joins, this could happen. As a result, the tuple projector should return
the previously assembled record without advancing the column readers.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)