You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Glenn Justo Galvizo (Jira)" <ji...@apache.org> on 2021/09/20 19:16:00 UTC

[jira] [Updated] (ASTERIXDB-2966) Non-equijoin in probe w/ array index gives different result

     [ https://issues.apache.org/jira/browse/ASTERIXDB-2966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Glenn Justo Galvizo updated ASTERIXDB-2966:
-------------------------------------------
    Description: 
*Found with RQG

The following query gives different results when the array index compiler flag is raised.
{code:java}
FROM ProbeDataset1 AS D2,
ProbeDataset2 AS D3,
IndexedDataset AS D1
WHERE ( SOME AND EVERY V1 IN D1.container_object_2.nesting_1.contained_object_1 SATISFIES ( V1.double_rand_4.contained_object_1 /* +indexnl */ >= (TO_DOUBLE(D3.integer_rand_4) + 0.5) ) )
SELECT COUNT(*);{code}
The problem seems to be with non-equijoins in the probe. This issue does not arise if we were to switch the order of the two probes (eliminating the join in the probe). I speculate it has something to do with the rewrites involved in producing non-hash joins in the probe.

  was:
*Found with RQG

The following query gives different results when the array index compiler flag is raised.
{code:java}
FROM ProbeDataset1 AS D2,
ProbeDataset2 AS D3,
IndexedDataset AS D1
WHERE ( SOME AND EVERY V1 IN D1.container_object_2.nesting_1.contained_object_1 SATISFIES ( V1.double_rand_4.contained_object_1 /* +indexnl */ >= (TO_DOUBLE(D3.integer_rand_4) + 0.5) ) )
SELECT COUNT(*);{code}

        Summary: Non-equijoin in probe w/ array index gives different result  (was: Cross product w/ array index gives different result)

> Non-equijoin in probe w/ array index gives different result
> -----------------------------------------------------------
>
>                 Key: ASTERIXDB-2966
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2966
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: IDX - Indexes
>            Reporter: Glenn Justo Galvizo
>            Assignee: Glenn Justo Galvizo
>            Priority: Major
>
> *Found with RQG
> The following query gives different results when the array index compiler flag is raised.
> {code:java}
> FROM ProbeDataset1 AS D2,
> ProbeDataset2 AS D3,
> IndexedDataset AS D1
> WHERE ( SOME AND EVERY V1 IN D1.container_object_2.nesting_1.contained_object_1 SATISFIES ( V1.double_rand_4.contained_object_1 /* +indexnl */ >= (TO_DOUBLE(D3.integer_rand_4) + 0.5) ) )
> SELECT COUNT(*);{code}
> The problem seems to be with non-equijoins in the probe. This issue does not arise if we were to switch the order of the two probes (eliminating the join in the probe). I speculate it has something to do with the rewrites involved in producing non-hash joins in the probe.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)