{"action":"created","comment":{"url":"https://api.github.com/repos/TextDB/textdb/pulls/comments/72528881","id":72528881,"diff_hunk":"@@ -22,16 +45,39 @@\n \t * @param inner is the inner operator producing the tuples\n \t * @param joinPredicate is the predicate over which the join is made\n \t */\n-\tpublic Join(IOperator outer, IOperator inner, IPredicate joinPredicate) {\n-\t\tthis.outer = outer;\n-\t\tthis.inner = inner;\n-\t\tthis.joinPredicate = joinPredicate;\n+\tpublic Join(IOperator outerOperator, IOperator innerOperator, IPredicate joinPredicate) {\n+\t\tthis.outerOperator = outerOperator;\n+\t\tthis.innerOperator = innerOperator;\n+\t\tthis.joinPredicate = (JoinPredicate) joinPredicate;\n \t}\n \n \t@Override\n-\tpublic void open() throws Exception {\n-\t\t// TODO Auto-generated method stub\n-\t\t\n+\tpublic void open() throws Exception, DataFlowException {\n+\t\ttry {\n+\t\t\touterOperator.open();\n+\t\t\tinnerOperator.open();\n+\t\t} catch (Exception e) {\n+\t\t\te.printStackTrace();\n+\t\t\tthrow new DataFlowException(e.getMessage(), e);\n+\t\t}\n+\t\tif(!(joinPredicate.getjoinAttribute().getFieldType().equals(FieldType.STRING)||\n+\t\t\t\tjoinPredicate.getjoinAttribute().getFieldType().equals(FieldType.TEXT))) {\n+\t\t\touterOperator.close();\n+\t\t\tinnerOperator.close();\n+\t\t\tthrow new Exception(\"Fields other than \\\"STRING\\\" and \\\"TEXT\\\" are not supported by Join yet.\");\n+\t\t}\n+\t\t// Load the inner tuple list into memory on open.\n+\t\twhile((innerTuple = innerOperator.getNextTuple()) != null) {\n+\t\t\tinnerTupleList.add(innerTuple);\n+\t\t}\n+\t\t// Close the inner operator as all the required tuples are already ","path":"textdb/textdb-dataflow/src/main/java/edu/uci/ics/textdb/dataflow/join/Join.java","position":84,"original_position":84,"commit_id":"fb3c876ac5f2ffc488389bbf337251a9f1fd42f6","original_commit_id":"fb3c876ac5f2ffc488389bbf337251a9f1fd42f6","user":{"login":"chenlica","id":12926365,"avatar_url":"https://avatars.githubusercontent.com/u/12926365?v=3","gravatar_id":"","url":"https://api.github.com/users/chenlica","html_url":"https://github.com/chenlica","followers_url":"https://api.github.com/users/chenlica/followers","following_url":"https://api.github.com/users/chenlica/following{/other_user}","gists_url":"https://api.github.com/users/chenlica/gists{/gist_id}","starred_url":"https://api.github.com/users/chenlica/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chenlica/subscriptions","organizations_url":"https://api.github.com/users/chenlica/orgs","repos_url":"https://api.github.com/users/chenlica/repos","events_url":"https://api.github.com/users/chenlica/events{/privacy}","received_events_url":"https://api.github.com/users/chenlica/received_events","type":"User","site_admin":false},"body":"If the inner operator doesn't have any record, should we just inform the caller now or until they call the getNextTuple() later?","created_at":"2016-07-27T21:37:12Z","updated_at":"2016-07-27T21:37:12Z","html_url":"https://github.com/TextDB/textdb/pull/171#discussion_r72528881","pull_request_url":"https://api.github.com/repos/TextDB/textdb/pulls/171","_links":{"self":{"href":"https://api.github.com/repos/TextDB/textdb/pulls/comments/72528881"},"html":{"href":"https://github.com/TextDB/textdb/pull/171#discussion_r72528881"},"pull_request":{"href":"https://api.github.com/repos/TextDB/textdb/pulls/171"}}},"pull_request":{"url":"https://api.github.com/repos/TextDB/textdb/pulls/171","id":79088289,"html_url":"https://github.com/TextDB/textdb/pull/171","diff_url":"https://github.com/TextDB/textdb/pull/171.diff","patch_url":"https://github.com/TextDB/textdb/pull/171.patch","issue_url":"https://api.github.com/repos/TextDB/textdb/issues/171","number":171,"state":"open","locked":false,"title":"[Issue #111] Improved Join Implementation","user":{"login":"sripadks","id":2525061,"avatar_url":"https://avatars.githubusercontent.com/u/2525061?v=3","gravatar_id":"","url":"https://api.github.com/users/sripadks","html_url":"https://github.com/sripadks","followers_url":"https://api.github.com/users/sripadks/followers","following_url":"https://api.github.com/users/sripadks/following{/other_user}","gists_url":"https://api.github.com/users/sripadks/gists{/gist_id}","starred_url":"https://api.github.com/users/sripadks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sripadks/subscriptions","organizations_url":"https://api.github.com/users/sripadks/orgs","repos_url":"https://api.github.com/users/sripadks/repos","events_url":"https://api.github.com/users/sripadks/events{/privacy}","received_events_url":"https://api.github.com/users/sripadks/received_events","type":"User","site_admin":false},"body":"@chenlica @zuozhi @FlavioBayer \r\nAn improved version of the first implementation of Join operator. Changes are reduction of else blocks and improved checking of field types.","created_at":"2016-07-27T20:04:01Z","updated_at":"2016-07-27T21:37:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"53fdbfcea46d4c969e5296b21e19103bd815a6d9","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/TextDB/textdb/pulls/171/commits","review_comments_url":"https://api.github.com/repos/TextDB/textdb/pulls/171/comments","review_comment_url":"https://api.github.com/repos/TextDB/textdb/pulls/comments{/number}","comments_url":"https://api.github.com/repos/TextDB/textdb/issues/171/comments","statuses_url":"https://api.github.com/repos/TextDB/textdb/statuses/fb3c876ac5f2ffc488389bbf337251a9f1fd42f6","head":{"label":"TextDB:sripad-flavio-joinimp-implementation-branch","ref":"sripad-flavio-joinimp-implementation-branch","sha":"fb3c876ac5f2ffc488389bbf337251a9f1fd42f6","user":{"login":"TextDB","id":18126950,"avatar_url":"https://avatars.githubusercontent.com/u/18126950?v=3","gravatar_id":"","url":"https://api.github.com/users/TextDB","html_url":"https://github.com/TextDB","followers_url":"https://api.github.com/users/TextDB/followers","following_url":"https://api.github.com/users/TextDB/following{/other_user}","gists_url":"https://api.github.com/users/TextDB/gists{/gist_id}","starred_url":"https://api.github.com/users/TextDB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TextDB/subscriptions","organizations_url":"https://api.github.com/users/TextDB/orgs","repos_url":"https://api.github.com/users/TextDB/repos","events_url":"https://api.github.com/users/TextDB/events{/privacy}","received_events_url":"https://api.github.com/users/TextDB/received_events","type":"Organization","site_admin":false},"repo":{"id":53976910,"name":"textdb","full_name":"TextDB/textdb","owner":{"login":"TextDB","id":18126950,"avatar_url":"https://avatars.githubusercontent.com/u/18126950?v=3","gravatar_id":"","url":"https://api.github.com/users/TextDB","html_url":"https://github.com/TextDB","followers_url":"https://api.github.com/users/TextDB/followers","following_url":"https://api.github.com/users/TextDB/following{/other_user}","gists_url":"https://api.github.com/users/TextDB/gists{/gist_id}","starred_url":"https://api.github.com/users/TextDB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TextDB/subscriptions","organizations_url":"https://api.github.com/users/TextDB/orgs","repos_url":"https://api.github.com/users/TextDB/repos","events_url":"https://api.github.com/users/TextDB/events{/privacy}","received_events_url":"https://api.github.com/users/TextDB/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/TextDB/textdb","description":"Text-centric data management system","fork":false,"url":"https://api.github.com/repos/TextDB/textdb","forks_url":"https://api.github.com/repos/TextDB/textdb/forks","keys_url":"https://api.github.com/repos/TextDB/textdb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TextDB/textdb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TextDB/textdb/teams","hooks_url":"https://api.github.com/repos/TextDB/textdb/hooks","issue_events_url":"https://api.github.com/repos/TextDB/textdb/issues/events{/number}","events_url":"https://api.github.com/repos/TextDB/textdb/events","assignees_url":"https://api.github.com/repos/TextDB/textdb/assignees{/user}","branches_url":"https://api.github.com/repos/TextDB/textdb/branches{/branch}","tags_url":"https://api.github.com/repos/TextDB/textdb/tags","blobs_url":"https://api.github.com/repos/TextDB/textdb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TextDB/textdb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TextDB/textdb/git/refs{/sha}","trees_url":"https://api.github.com/repos/TextDB/textdb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TextDB/textdb/statuses/{sha}","languages_url":"https://api.github.com/repos/TextDB/textdb/languages","stargazers_url":"https://api.github.com/repos/TextDB/textdb/stargazers","contributors_url":"https://api.github.com/repos/TextDB/textdb/contributors","subscribers_url":"https://api.github.com/repos/TextDB/textdb/subscribers","subscription_url":"https://api.github.com/repos/TextDB/textdb/subscription","commits_url":"https://api.github.com/repos/TextDB/textdb/commits{/sha}","git_commits_url":"https://api.github.com/repos/TextDB/textdb/git/commits{/sha}","comments_url":"https://api.github.com/repos/TextDB/textdb/comments{/number}","issue_comment_url":"https://api.github.com/repos/TextDB/textdb/issues/comments{/number}","contents_url":"https://api.github.com/repos/TextDB/textdb/contents/{+path}","compare_url":"https://api.github.com/repos/TextDB/textdb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TextDB/textdb/merges","archive_url":"https://api.github.com/repos/TextDB/textdb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TextDB/textdb/downloads","issues_url":"https://api.github.com/repos/TextDB/textdb/issues{/number}","pulls_url":"https://api.github.com/repos/TextDB/textdb/pulls{/number}","milestones_url":"https://api.github.com/repos/TextDB/textdb/milestones{/number}","notifications_url":"https://api.github.com/repos/TextDB/textdb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TextDB/textdb/labels{/name}","releases_url":"https://api.github.com/repos/TextDB/textdb/releases{/id}","deployments_url":"https://api.github.com/repos/TextDB/textdb/deployments","created_at":"2016-03-15T20:38:46Z","updated_at":"2016-07-23T07:19:00Z","pushed_at":"2016-07-27T20:55:54Z","git_url":"git://github.com/TextDB/textdb.git","ssh_url":"git@github.com:TextDB/textdb.git","clone_url":"https://github.com/TextDB/textdb.git","svn_url":"https://github.com/TextDB/textdb","homepage":null,"size":17053,"stargazers_count":12,"watchers_count":12,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":9,"forks":4,"open_issues":9,"watchers":12,"default_branch":"master"}},"base":{"label":"TextDB:master","ref":"master","sha":"c04c449ee7f7869c0e329294dd069f4a66a30094","user":{"login":"TextDB","id":18126950,"avatar_url":"https://avatars.githubusercontent.com/u/18126950?v=3","gravatar_id":"","url":"https://api.github.com/users/TextDB","html_url":"https://github.com/TextDB","followers_url":"https://api.github.com/users/TextDB/followers","following_url":"https://api.github.com/users/TextDB/following{/other_user}","gists_url":"https://api.github.com/users/TextDB/gists{/gist_id}","starred_url":"https://api.github.com/users/TextDB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TextDB/subscriptions","organizations_url":"https://api.github.com/users/TextDB/orgs","repos_url":"https://api.github.com/users/TextDB/repos","events_url":"https://api.github.com/users/TextDB/events{/privacy}","received_events_url":"https://api.github.com/users/TextDB/received_events","type":"Organization","site_admin":false},"repo":{"id":53976910,"name":"textdb","full_name":"TextDB/textdb","owner":{"login":"TextDB","id":18126950,"avatar_url":"https://avatars.githubusercontent.com/u/18126950?v=3","gravatar_id":"","url":"https://api.github.com/users/TextDB","html_url":"https://github.com/TextDB","followers_url":"https://api.github.com/users/TextDB/followers","following_url":"https://api.github.com/users/TextDB/following{/other_user}","gists_url":"https://api.github.com/users/TextDB/gists{/gist_id}","starred_url":"https://api.github.com/users/TextDB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TextDB/subscriptions","organizations_url":"https://api.github.com/users/TextDB/orgs","repos_url":"https://api.github.com/users/TextDB/repos","events_url":"https://api.github.com/users/TextDB/events{/privacy}","received_events_url":"https://api.github.com/users/TextDB/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/TextDB/textdb","description":"Text-centric data management system","fork":false,"url":"https://api.github.com/repos/TextDB/textdb","forks_url":"https://api.github.com/repos/TextDB/textdb/forks","keys_url":"https://api.github.com/repos/TextDB/textdb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TextDB/textdb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TextDB/textdb/teams","hooks_url":"https://api.github.com/repos/TextDB/textdb/hooks","issue_events_url":"https://api.github.com/repos/TextDB/textdb/issues/events{/number}","events_url":"https://api.github.com/repos/TextDB/textdb/events","assignees_url":"https://api.github.com/repos/TextDB/textdb/assignees{/user}","branches_url":"https://api.github.com/repos/TextDB/textdb/branches{/branch}","tags_url":"https://api.github.com/repos/TextDB/textdb/tags","blobs_url":"https://api.github.com/repos/TextDB/textdb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TextDB/textdb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TextDB/textdb/git/refs{/sha}","trees_url":"https://api.github.com/repos/TextDB/textdb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TextDB/textdb/statuses/{sha}","languages_url":"https://api.github.com/repos/TextDB/textdb/languages","stargazers_url":"https://api.github.com/repos/TextDB/textdb/stargazers","contributors_url":"https://api.github.com/repos/TextDB/textdb/contributors","subscribers_url":"https://api.github.com/repos/TextDB/textdb/subscribers","subscription_url":"https://api.github.com/repos/TextDB/textdb/subscription","commits_url":"https://api.github.com/repos/TextDB/textdb/commits{/sha}","git_commits_url":"https://api.github.com/repos/TextDB/textdb/git/commits{/sha}","comments_url":"https://api.github.com/repos/TextDB/textdb/comments{/number}","issue_comment_url":"https://api.github.com/repos/TextDB/textdb/issues/comments{/number}","contents_url":"https://api.github.com/repos/TextDB/textdb/contents/{+path}","compare_url":"https://api.github.com/repos/TextDB/textdb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TextDB/textdb/merges","archive_url":"https://api.github.com/repos/TextDB/textdb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TextDB/textdb/downloads","issues_url":"https://api.github.com/repos/TextDB/textdb/issues{/number}","pulls_url":"https://api.github.com/repos/TextDB/textdb/pulls{/number}","milestones_url":"https://api.github.com/repos/TextDB/textdb/milestones{/number}","notifications_url":"https://api.github.com/repos/TextDB/textdb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TextDB/textdb/labels{/name}","releases_url":"https://api.github.com/repos/TextDB/textdb/releases{/id}","deployments_url":"https://api.github.com/repos/TextDB/textdb/deployments","created_at":"2016-03-15T20:38:46Z","updated_at":"2016-07-23T07:19:00Z","pushed_at":"2016-07-27T20:55:54Z","git_url":"git://github.com/TextDB/textdb.git","ssh_url":"git@github.com:TextDB/textdb.git","clone_url":"https://github.com/TextDB/textdb.git","svn_url":"https://github.com/TextDB/textdb","homepage":null,"size":17053,"stargazers_count":12,"watchers_count":12,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":9,"forks":4,"open_issues":9,"watchers":12,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/TextDB/textdb/pulls/171"},"html":{"href":"https://github.com/TextDB/textdb/pull/171"},"issue":{"href":"https://api.github.com/repos/TextDB/textdb/issues/171"},"comments":{"href":"https://api.github.com/repos/TextDB/textdb/issues/171/comments"},"review_comments":{"href":"https://api.github.com/repos/TextDB/textdb/pulls/171/comments"},"review_comment":{"href":"https://api.github.com/repos/TextDB/textdb/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/TextDB/textdb/pulls/171/commits"},"statuses":{"href":"https://api.github.com/repos/TextDB/textdb/statuses/fb3c876ac5f2ffc488389bbf337251a9f1fd42f6"}}}}
{"actor":{"display_login":"chenlica"}}