You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2019/05/15 18:16:00 UTC

[jira] [Commented] (ASTERIXDB-2555) Make hash join use logical comparison

    [ https://issues.apache.org/jira/browse/ASTERIXDB-2555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16840624#comment-16840624 ] 

ASF subversion and git services commented on ASTERIXDB-2555:
------------------------------------------------------------

Commit b09ec2d99277c2fbce0e6d2961aa4ca483963edd in asterixdb's branch refs/heads/master from Ali Alsuliman
[ https://gitbox.apache.org/repos/asf?p=asterixdb.git;h=b09ec2d ]

[ASTERIXDB-2555][RT][COMP] Make hash join use logical comparison

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
This patch changes the hash join operator to use the join condition
to evaluate if tuples are equal when joining. Binary physical comparators
have been removed. The join condition evaluator is in TuplePairEvaluator.

- extraced TuplePairEvaluatorFactory out of nested loop join class
into a separate class so that it is shared among nested loop and
hash join.
- switched from FrameTuplePairComparator to ITuplePairComparator in
in OptimizedHybridHashJoin and InMemoryHashJoin.
- moved debugging code from OptimizedHybridHashJoin into a separate
class, JoinUtil.
- temporarily made the logical comparison of multisets use raw binary
comparison instead of returning null until the logic is implemented.
- made IBinaryBooleanInspector a functional interface and updated
the implementations.
- updated record and array test cases to reflect the new
behaviour of hash join where logical comparison could produce null.
Also, updated sorting, group by and distinct test cases since
the input data has been modified.
- added two new input files arrays1nulls.adm & arrays2nulls.adm
to be used by the open dataset. previous arrays1.adm & arrays2.adm
are used by the closed dataset since it cannot accept arrays with
null values.

Change-Id: If1834967fdd913fdc76003f09636b2450d07cd5e
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3387
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Dmitry Lychagin <dm...@couchbase.com>
Reviewed-by: Murtadha Hubail <mh...@apache.org>


> Make hash join use logical comparison
> -------------------------------------
>
>                 Key: ASTERIXDB-2555
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2555
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: COMP - Compiler
>    Affects Versions: 0.9.5
>            Reporter: Ali Alsuliman
>            Assignee: Ali Alsuliman
>            Priority: Major
>             Fix For: 0.9.5
>
>
> Joins should use logical comparison. Nested loop join uses EQ function which does logical comparison. Hash join should do the same thing.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)