Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

Issue #20 - Hash join implementations #501

Merged
merged 49 commits into from
Oct 28, 2013

Conversation

maryannxue
Copy link
Contributor

The main impact on interfaces in the current master:

  1. QueryCompiler: the original logic of compile() now goes into compileSingleQuery(), and the call compile() is now used as entry for both single select statements and join statements. Join statement compilation might go through recursive calls of compileSingleQuery() and compileJoinQuery().
  2. ServerCacheClient: the original interface takes a TableRef in the constructor, while the parameter has now been moved to addServerCache(), for the reason that we might want to reuse ServerCacheClient for multiple calls in completing a query, and the parameter "cacheUsingTableRef" could be different among these multiple calls.

bitSet.or(value);
schema.iterator(value, ptr, position, bitSet);
Boolean hasValue = schema.next(ptr, position, value.getOffset() + value.getLength(), bitSet);
if (hasValue == null || !hasValue.booleanValue())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Subtle difference between these two. Should be:

  if (hasValue == null) {
      return false; // expression could not be evaluated
  }
  if (!hasValue.booleanValue()) {
        return true; // expression was evaluated, but evaluated to null
  }

@jtaylor-sfdc
Copy link
Contributor

Fantastic job, @maryannxue. Please add javadoc, comments, and respond to the above minor comments on a followup pull request. So excited to have hash joins now! We'll give it some perf testing and let you know what we find out.

jtaylor-sfdc added a commit that referenced this pull request Oct 28, 2013
Issue #20 - Hash join implementations
@jtaylor-sfdc jtaylor-sfdc merged commit 5b7c264 into forcedotcom:master Oct 28, 2013
@maryannxue
Copy link
Contributor Author

Will do. Really appreciate these very detailed comments, James!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants